Пример #1
0
    def __init__(self, parent):
        """
        Constructor.
        
        Positional arguments:
        parent -- Parent window of this dialog
        """
        Gtk.Dialog.__init__(self)
        self.parent = parent

        builder = Gtk.Builder()
        builder.set_translation_domain("cournal")
        builder.add_from_file(
            os.path.join(cournal.__path__[0], "connectiondialog.glade"))
        grid = builder.get_object("grid_main")

        self.multipage = builder.get_object("multipage")
        self.error_label = builder.get_object("error_label")
        self.server_details = ServerDetails(self, builder)
        self.connecting_page = ConnectingPage(self, builder)
        self.document_chooser = DocumentChooser(self)

        self.get_content_area().add(grid)
        self.multipage.append_page(self.server_details, None)
        self.multipage.append_page(self.connecting_page, None)
        self.multipage.append_page(self.document_chooser, None)

        self.set_modal(False)
        self.set_has_resize_grip(False)
        self.set_resizable(False)
        self.set_title(_("Connect to Server"))
        self.set_transient_for(parent)
        self.add_button(Gtk.STOCK_CANCEL, Gtk.ResponseType.CANCEL)
        self.add_button(Gtk.STOCK_CONNECT, Gtk.ResponseType.ACCEPT)
        self.set_default_response(Gtk.ResponseType.ACCEPT)

        self.set_page(0)

        self.connect("response", self.response)
        self.server_details.connect("connecting", self.show_connecting_page)
        self.server_details.connect(
            "connected", lambda x: self.document_chooser.get_document_list())
        self.server_details.connect("connection_failed",
                                    lambda x: self.set_page(0))
        self.document_chooser.connect("got_document_list",
                                      lambda x: self.set_page(2))
        self.document_chooser.connect("joining_document",
                                      self.show_joining_document_page)
        self.document_chooser.connect("joined_document",
                                      lambda x: self.destroy())