Example #1
0
    def init_view(self):
        if self.wk is None:
            # delaying this import make the window appear on the raspi
            # 3s quicker
            from softwarecenter.ui.gtk3.widgets.webkit import (
                ScrolledWebkitWindow)
            self.wk = ScrolledWebkitWindow()
            self.pack_start(self.wk, True, True, 0)
            # automatically fill in the email in the login page
            self.wk.webkit.set_auto_insert_email(self.config.email)
            #self.wk.webkit.connect("new-window-policy-decision-requested",
            #    self._on_new_window)
            self.wk.webkit.connect("create-web-view", self._on_create_web_view)
            self.wk.webkit.connect("close-web-view", self._on_close_web_view)
            self.wk.webkit.connect("console-message", self._on_console_message)

            # check if the user wants url debugging
            if os.environ.get("SOFTWARE_CENTER_DEBUG_WEBKIT"):
                self.wk.webkit.connect("notify::uri", self._log_debug_output)

            # a possible way to do IPC (script or title change)
            self.wk.webkit.connect("script-alert", self._on_script_alert)
            self.wk.webkit.connect("title-changed", self._on_title_changed)
            self.wk.webkit.connect("notify::load-status",
                                   self._on_load_status_changed)
        # unblock signal handlers if needed when showing the purchase webkit
        # view in case they were blocked after a previous purchase was
        # completed or canceled
        self._unblock_wk_handlers()
 def __init__(self, parent):
     Gtk.Dialog.__init__(self)
     self.set_default_size(420, 400)
     self.set_transient_for(parent)
     self.set_title(_("Terms of Use"))
     # buttons
     self.add_button(_("Decline"), Gtk.ResponseType.NO)
     self.add_button(_("Accept"), Gtk.ResponseType.YES)
     # label
     self.label = Gtk.Label.new(_(u"One moment, please\u2026"))
     self.label.show()
     # add the label
     box = self.get_action_area()
     box.pack_start(self.label, False, False, 0)
     box.set_child_secondary(self.label, True)
     # hrm, hrm, there really should be a better way
     for itm in box.get_children():
         if itm.get_label() == _("Accept"):
             self.button_accept = itm
             break
     self.button_accept.set_sensitive(False)
     # webkit
     wb = ScrolledWebkitWindow()
     wb.show_all()
     self.webkit = wb.webkit
     self.webkit.connect(
         "notify::load-status", self._on_load_status_changed)
     # content
     content = self.get_content_area()
     self.spinner = SpinnerNotebook(wb)
     self.spinner.show_all()
     content.pack_start(self.spinner, True, True, 0)
Example #3
0
 def _on_create_web_view(self, view, frame):
     from softwarecenter.ui.gtk3.widgets.webkit import (ScrolledWebkitWindow
                                                        )
     win = Gtk.Window()
     win.set_size_request(400, 400)
     wk = ScrolledWebkitWindow(include_progress_ui=True)
     wk.webkit.connect("close-web-view", self._on_close_web_view)
     win.add(wk)
     win.show_all()
     # make sure close will work later
     wk.webkit.parent_win = win
     # find and set parent
     w = self.wk.get_parent()
     while w.get_parent():
         w = w.get_parent()
     win.set_transient_for(w)
     return wk.webkit