Beispiel #1
0
 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)
Beispiel #2
0
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)
Beispiel #3
0
 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)