def __init__(self, ephemeral=False, parent=None, webview=None): """ Init view @param ephemeral as bool @param as parent as View @param webview as WebView """ Gtk.Overlay.__init__(self) self.__reading_view = None self.__parent = parent if parent is not None: parent.connect("destroy", self.__on_parent_destroy) if webview is None: if ephemeral: self.__webview = WebView.new_ephemeral() else: self.__webview = WebView.new() else: self.__webview = webview self.__webview.show() self.__find_widget = FindWidget(self.__webview) self.__find_widget.show() grid = Gtk.Grid() grid.set_orientation(Gtk.Orientation.VERTICAL) grid.add(self.__find_widget) grid.add(self.__webview) grid.show() self.add(grid) self.__uri_label = UriLabel() self.add_overlay(self.__uri_label) self.__webview.connect("mouse-target-changed", self.__on_mouse_target_changed)
def get_new_webview(ephemeral): """ Get a new webview @return webview as WebView """ if ephemeral: return WebView.new_ephemeral() else: return WebView.new()
def get_new_webview(ephemeral, window): """ Get a new webview @return webview as WebView @param window as Window """ if ephemeral: return WebView.new_ephemeral(window) else: return WebView.new(window)
def switch_read_mode(self): """ Show a readable version of page if available. If in read mode, switch back to page If force, always go in read mode @param force as bool """ system = Gio.Settings.new("org.gnome.desktop.interface") document_font_name = system.get_value( "document-font-name").get_string() document_font_size = str(int(document_font_name[-2:]) * 1.3) + "pt" if self.__reading_view is None: self.__reading_view = WebView.new(self._window) self.__reading_view.show() self.add_overlay(self.__reading_view) if self.__webview.readable_content: self.__in_read_mode = True html = "<html><head>\ <style type='text/css'>\ *:not(img) {font-size: %s;\ background-color: #333333;\ color: #e6e6e6;\ margin-left: auto;\ margin-right: auto;\ width: %s}\ </style></head>" % (document_font_size, self.get_allocated_width() / 1.5) html += "<title>%s</title>" % self.__webview.get_title() html += self.__webview.readable_content html += "</html>" GLib.idle_add(self.__reading_view.load_html, html, None) else: self.__reading_view.destroy() self.__reading_view = None
def __on_create(self, related, navigation_action): """ Create a new view for action @param related as WebView @param navigation_action as WebKit2.NavigationAction """ # Block popups, see WebView::set_popup_exception() for details popup_block = El().settings.get_value("popupblock") parsed_request = urlparse(navigation_action.get_request().get_uri()) parsed_related = urlparse(related.get_uri()) exception = El().adblock.is_an_exception(parsed_related.netloc) or\ El().adblock.is_an_exception(parsed_related.netloc + parsed_related.path) or\ parsed_request.netloc == parsed_related.netloc if not exception and popup_block and\ navigation_action.get_navigation_type() in [ WebKit2.NavigationType.OTHER, WebKit2.NavigationType.RELOAD, WebKit2.NavigationType.BACK_FORWARD] and\ parsed_request.netloc != related.popup_exception: related.set_popup_exception(parsed_request.netloc) return from eolie.view_web import WebView webview = WebView.new_with_related_view(related) webview.connect("ready-to-show", self.__on_ready_to_show) return webview
def __on_new_page(self, webview, uri, window_type): """ Open a new page, switch to view if show is True @param webview as WebView @param uri as str @param window_type as Gdk.WindowType """ if uri: if window_type == Gdk.WindowType.SUBSURFACE: if webview.ephemeral: webview = WebView.new_ephemeral() else: webview = WebView.new() self.popup_webview(webview) GLib.idle_add(webview.load_uri, uri) else: parent = self.__get_view_for_webview(webview) self.add_webview(uri, window_type, webview.ephemeral, parent)
def __on_new_page(self, webview, uri, window_type): """ Open a new page, switch to view if show is True @param webview as WebView @param uri as str @param window_type as Gdk.WindowType """ if uri: if window_type == Gdk.WindowType.SUBSURFACE: if webview.ephemeral: webview = WebView.new_ephemeral(self._window) else: webview = WebView.new(self._window) self._window.container.popup_webview(webview, True) GLib.idle_add(webview.load_uri, uri) else: self._window.container.add_webview(uri, window_type, webview.ephemeral, self)
def __on_create(self, related, navigation_action): """ Create a new view for action @param related as WebView @param navigation_action as WebKit2.NavigationAction @param force as bool """ webview = WebView.new_with_related_view(related) webview.connect("ready-to-show", self.__on_ready_to_show, related, navigation_action) return webview