Exemple #1
0
    def _set_style(self):
        user_content = self.get_user_content_manager()
        user_content.remove_all_style_sheets()

        gfile = Gio.File.new_for_uri(
            'resource:///com/github/hugolabe/Wike/styles/view.min.css')
        try:
            gfile_contents = gfile.load_contents(None)
        except:
            print('Can\'t load css file from resources')
            return
        else:
            css_view = gfile_contents[1].decode('utf-8')

        style_view = WebKit2.UserStyleSheet(
            css_view, WebKit2.UserContentInjectedFrames.ALL_FRAMES,
            WebKit2.UserStyleLevel.USER, None, None)
        user_content.add_style_sheet(style_view)

        if settings.get_boolean('custom-font'):
            css_font = 'body,h1,h2{font-family:"' + settings.get_string(
                'font-family') + '"!important}'
            style_font = WebKit2.UserStyleSheet(
                css_font, WebKit2.UserContentInjectedFrames.ALL_FRAMES,
                WebKit2.UserStyleLevel.USER, None, None)
            user_content.add_style_sheet(style_font)
Exemple #2
0
 def _search_wikipedia(self, text):
     try:
         self.results_list = wikipedia.search(
             text.lower(), settings.get_string('search-language'), 10)
     except:
         self.results_list = None
     self._results_changed = True
Exemple #3
0
    def populate_list(self):
        rows = self.languages_list.get_children()
        for row in rows:
            self.languages_list.remove(row)

        if len(languages.items) > 0:
            for lang_id in sorted(languages.items):
                lang_name = languages.items[lang_id].capitalize()
                check_mark = (
                    lang_id == settings.get_string('search-language'))
                row = SearchLangBoxRow(lang_name, lang_id, check_mark)
                self.languages_list.add(row)
Exemple #4
0
 def do_activate(self):
     text = self.get_text()
     if text != '':
         try:
             result = wikipedia.search(
                 text.lower(), settings.get_string('search-language'), 1)
         except:
             self.window.page.wikiview.load_message('notfound', None)
         else:
             if result != None:
                 uri = result[1][0]
                 self.window.page.wikiview.load_wiki(uri)
             else:
                 self.window.page.wikiview.load_message('notfound', None)
Exemple #5
0
    def __init__(self, search_button):
        super().__init__()

        self.settings_popover = SettingsPopover(self)
        self.suggestions_popover = SuggestionsPopover(self)
        self.results_list = None
        self._results_changed = False

        lang_id = settings.get_string('search-language')
        self.set_icon_tooltip_text(Gtk.EntryIconPosition.PRIMARY,
                                   languages.wikilangs[lang_id].capitalize())

        self.connect('show', self._entry_show_cb)
        self.connect('key-press-event', self._key_press_cb, search_button)
        self.connect('icon-release', self._icon_release_cb)
Exemple #6
0
 def _populate_custom_font_combo(self):
     model = Gio.ListStore.new(Handy.ValueObject)
     fonts = []
     custom_font = settings.get_string('font-family')
     pango_context = self.get_pango_context()
     for font_familie in pango_context.list_families():
         fonts.append(font_familie.get_name())
     fonts.sort(key=str.lower)
     selected = 0
     for index, font in enumerate(fonts):
         model.insert(index, Handy.ValueObject.new(font))
         if font == custom_font: selected = index
     self.custom_font_combo.bind_name_model(model,
                                            Handy.ValueObject.dup_string)
     self.custom_font_combo.set_selected_index(selected)
Exemple #7
0
    def set_style(self):
        data_manager = web_context.get_website_data_manager()
        data_manager.clear(WebKit2.WebsiteDataTypes.MEMORY_CACHE, 0, None,
                           None, None)
        self.user_content.remove_all_style_sheets()

        style_view = WebKit2.UserStyleSheet(
            self._css_view, WebKit2.UserContentInjectedFrames.ALL_FRAMES,
            WebKit2.UserStyleLevel.USER, None, None)
        self.user_content.add_style_sheet(style_view)

        theme = settings.get_int('theme')
        if theme == 1:
            style_dark = WebKit2.UserStyleSheet(
                self._css_dark, WebKit2.UserContentInjectedFrames.ALL_FRAMES,
                WebKit2.UserStyleLevel.USER, None, None)
            self.user_content.add_style_sheet(style_dark)
        elif theme == 2:
            style_sepia = WebKit2.UserStyleSheet(
                self._css_sepia, WebKit2.UserContentInjectedFrames.ALL_FRAMES,
                WebKit2.UserStyleLevel.USER, None, None)
            self.user_content.add_style_sheet(style_sepia)
        elif theme == 3:
            if self.style_manager.get_dark():
                style_dark = WebKit2.UserStyleSheet(
                    self._css_dark,
                    WebKit2.UserContentInjectedFrames.ALL_FRAMES,
                    WebKit2.UserStyleLevel.USER, None, None)
                self.user_content.add_style_sheet(style_dark)

        if settings.get_boolean('custom-font'):
            css_font = 'body,h1,h2{font-family:"' + settings.get_string(
                'font-family') + '"!important}'
            style_font = WebKit2.UserStyleSheet(
                css_font, WebKit2.UserContentInjectedFrames.ALL_FRAMES,
                WebKit2.UserStyleLevel.USER, None, None)
            self.user_content.add_style_sheet(style_font)

        if not settings.get_boolean('preview-popups'):
            css_previews = '.mwe-popups{display:none!important}'
            style_previews = WebKit2.UserStyleSheet(
                css_previews, WebKit2.UserContentInjectedFrames.ALL_FRAMES,
                WebKit2.UserStyleLevel.USER, None, None)
            self.user_content.add_style_sheet(style_previews)
Exemple #8
0
 def load_main(self):
     uri = 'https://' + settings.get_string(
         'search-language') + '.m.wikipedia.org'
     self.load_wiki(uri)
Exemple #9
0
    def __init__(self, app):
        super().__init__(title='Wike', application=app)

        self.set_default_size(settings.get_int('window-width'),
                              settings.get_int('window-height'))
        if settings.get_boolean('window-max'): self.maximize()

        self.box.pack_end(wikiview, True, True, 0)

        self.headerbar = HeaderBar()
        self.set_titlebar(self.headerbar)

        actions = [('prev_page', self._prev_page_cb, ('<Alt>Left', )),
                   ('next_page', self._next_page_cb, ('<Alt>Right', )),
                   ('show_search', self._show_search_cb, ('F2', )),
                   ('show_bookmarks', self._show_bookmarks_cb, ('<Ctrl>B', )),
                   ('add_bookmark', self._add_bookmark_cb, ('<Ctrl>D', )),
                   ('show_langlinks', self._show_langlinks_cb, ('<Ctrl>L', )),
                   ('show_toc', self._show_toc_cb, ('<Ctrl>T', )),
                   ('main_page', self._main_page_cb, ('<Alt>Home', )),
                   ('random_article', self._random_article_cb, None),
                   ('show_historic', self._show_historic_cb, ('<Ctrl>H', )),
                   ('reload_page', self._reload_page_cb, ('F5', )),
                   ('search_text', self._search_text_cb, ('<Ctrl>F', )),
                   ('open_browser', self._open_browser_cb, None),
                   ('copy_url', self._copy_url_cb, ('<Ctrl>U', ))]

        for action, callback, accel in actions:
            simple_action = Gio.SimpleAction.new(action, None)
            simple_action.connect('activate', callback)
            self.add_action(simple_action)
            if accel: app.set_accels_for_action('win.' + action, accel)

        find_controller = wikiview.get_find_controller()
        nav_list = wikiview.get_back_forward_list()
        self.search_bar.connect_entry(self.textsearch_entry)

        wikiview.connect('load-wiki', self._wikiview_load_wiki_cb)
        wikiview.connect('load-changed', self._wikiview_load_changed_cb)
        wikiview.connect('load-failed', self._wikiview_load_failed_cb)
        wikiview.connect('add-bookmark', self._wikiview_add_bookmark_cb)
        self.textsearch_entry.connect('changed',
                                      self._textsearch_entry_changed_cb,
                                      find_controller)
        self.textsearch_entry.connect('activate',
                                      self._textsearch_entry_activate_cb,
                                      find_controller)
        self.textsearch_prev_button.connect(
            'clicked', self._textsearch_prev_button_clicked_cb,
            find_controller)
        self.textsearch_next_button.connect(
            'clicked', self._textsearch_next_button_clicked_cb,
            find_controller)
        find_controller.connect('found-text', self._find_controller_found_cb)
        find_controller.connect('failed-to-find-text',
                                self._find_controller_not_found_cb)
        find_controller.connect('counted-matches',
                                self._find_controller_matches_cb)
        nav_list.connect('changed', self._nav_list_changed_cb)
        self.notification_close_button.connect('clicked',
                                               self._hide_notification_cb)

        if settings.get_string('on-start-load') == 'main':
            wikiview.load_main()
        elif settings.get_string('on-start-load') == 'random':
            wikiview.load_random()
        else:
            if settings.get_string('last-uri'):
                wikiview.load_wiki(settings.get_string('last-uri'))
            else:
                wikiview.load_main()
Exemple #10
0
 def load_random(self):
     try:
         uri = wikipedia.get_random(settings.get_string('search-language'))
         self.load_wiki(uri)
     except:
         self.load_message('notfound', None)
Exemple #11
0
    def __init__(self, app, launch_uri):
        super().__init__(title='Wike', application=app)

        # Set default window icon name for XFCE, LXQt, MATE
        self.set_default_icon_name('com.github.hugolabe.Wike')

        self.set_default_size(settings.get_int('window-width'),
                              settings.get_int('window-height'))
        if settings.get_boolean('window-max'):
            self.maximize()

        self.page = PageBox(self)
        tabpage = self.tabview.append(self.page)

        self.headerbar = HeaderBar(self)
        self.window_box.pack_start(self.headerbar, False, True, 0)

        actions = [('prev_page', self._prev_page_cb, ('<Alt>Left', )),
                   ('next_page', self._next_page_cb, ('<Alt>Right', )),
                   ('new_tab', self._new_tab_cb, ('<Ctrl>N', )),
                   ('close_tab', self._close_tab_cb, ('<Ctrl>W', )),
                   ('next_tab', self._next_tab_cb, ('<Ctrl>Tab', )),
                   ('prev_tab', self._prev_tab_cb, ('<Shift><Ctrl>Tab', )),
                   ('show_search', self._show_search_cb, (
                       'F2',
                       '<Ctrl>K',
                   )), ('show_menu', self._show_menu_cb, ('F10', )),
                   ('show_bookmarks', self._show_bookmarks_cb, ('<Ctrl>B', )),
                   ('add_bookmark', self._add_bookmark_cb, ('<Ctrl>D', )),
                   ('show_langlinks', self._show_langlinks_cb, ('<Ctrl>L', )),
                   ('show_toc', self._show_toc_cb, ('<Ctrl>T', )),
                   ('main_page', self._main_page_cb, ('<Alt>Home', )),
                   ('random_article', self._random_article_cb, None),
                   ('show_historic', self._show_historic_cb, ('<Ctrl>H', )),
                   ('reload_page', self._reload_page_cb, (
                       'F5',
                       '<Ctrl>R',
                   )), ('search_text', self._search_text_cb, ('<Ctrl>F', )),
                   ('open_browser', self._open_browser_cb, None),
                   ('copy_url', self._copy_url_cb, ('<Ctrl>U', ))]

        for action, callback, accel in actions:
            simple_action = Gio.SimpleAction.new(action, None)
            simple_action.connect('activate', callback)
            self.add_action(simple_action)
            if accel:
                app.set_accels_for_action('win.' + action, accel)

        self.handler_selpage = self.tabview.connect(
            'notify::selected-page', self._tabview_selected_page_cb)
        self.tabview.connect('close-page', self._tabview_close_page_cb)
        self.notification_close_button.connect('clicked',
                                               self._hide_notification_cb)

        if launch_uri == 'notfound':
            self.page.wikiview.load_message(launch_uri, None)
        else:
            if launch_uri != '':
                self.page.wikiview.load_wiki(launch_uri)
            else:
                if settings.get_int('on-start-load') == 0:
                    self.page.wikiview.load_main()
                elif settings.get_int('on-start-load') == 1:
                    self.page.wikiview.load_random()
                else:
                    if settings.get_string('last-uri'):
                        self.page.wikiview.load_wiki(
                            settings.get_string('last-uri'))
                    else:
                        self.page.wikiview.load_main()