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)
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
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)
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)
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)
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)
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)
def load_main(self): uri = 'https://' + settings.get_string( 'search-language') + '.m.wikipedia.org' self.load_wiki(uri)
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()
def load_random(self): try: uri = wikipedia.get_random(settings.get_string('search-language')) self.load_wiki(uri) except: self.load_message('notfound', None)
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()