def populate_page_popup_cb(self, webview, context_menu, hit_result_event, event): context_menu.remove_all() action1 = Gtk.Action.new('تفسير الآيات', 'تفسير الآيات', None) action1.connect('activate', self.tafsir_ayat) option1 = WebKit2.ContextMenuItem().new(action1) context_menu.append(option1)
def on_context_menu(self, view, menu, event, htr): ''' ################ # Custom Items # ################ ''' context = htr.get_context() action = WebKit2.ContextMenuAction.OUTLINE if context == 18: if htr.context_is_media(): for c, i in enumerate(menu.get_items()): if not i.is_separator(): if i.get_stock_action() ==\ WebKit2.ContextMenuAction.ENTER_VIDEO_FULLSCREEN: url = htr.get_media_uri() if "://" in url: item = WebKit2.ContextMenuItem().\ new_from_stock_action_with_label(action, _("Video pop out")) a = item.get_action() a.connect("activate", lambda x: self.video_popout(view.get_title(), url)) a.set_stock_id("gtk-fullscreen") item = item.new(a) menu.insert(item, c) if context == 14 or context == 10: if htr.context_is_image(): url = htr.get_image_uri() if "://" in url: item = WebKit2.ContextMenuItem().\ new_from_stock_action_with_label(action, _("Apply as theme")) a = item.get_action() a.connect("activate", lambda x: self.apply_theme(url)) a.set_stock_id("gtk-select-color") item = item.new(a) menu.insert(item, 0) menu.insert(WebKit2.ContextMenuItem().new_separator(), 1) if context == 130 or context == 134: if context == 134: menu.insert(WebKit2.ContextMenuItem().\ new_from_stock_action(WebKit2.ContextMenuAction.COPY), 4) if not search_engine: return True text = Gtk.Clipboard.get(Gdk.SELECTION_PRIMARY) if htr.context_is_selection(): text = text.wait_for_text() isurl = validators.url(text) if isurl: item = WebKit2.ContextMenuItem().\ new_from_stock_action_with_label(action, "{} \"{}\"."\ .format(_("Go to"), minify(text, 30))) else: item = WebKit2.ContextMenuItem().\ new_from_stock_action_with_label(action, "{} \"{}\" {}."\ .format(_("Search"), minify(text, 30), _("in the web"))) a = item.get_action() if isurl: a.connect("activate", lambda x: view.load_uri(text)) a.set_stock_id("gtk-open") else: a.connect("activate", lambda x: view.load_uri("{}{}"\ .format(search_engine, text))) a.set_stock_id("gtk-find") item = item.new(a) menu.insert(item, 0) menu.insert(WebKit2.ContextMenuItem().new_separator(), 1)
def _on_append_items(self, webview, context_menu, hit_result_event, event): """Attach custom actions to browser context menu""" action = Gtk.Action("rebuild", "Force a database rebuild", None, None) action.connect("activate", self.rebuild_database) option = WebKit.ContextMenuItem().new(action) context_menu.append(option)