Exemple #1
0
class RenamePageDialog(BaseDialog):
    
    def __init__(self, skapp):
        self.app = skapp
        self.parent = skapp.window
        self.curpage = self.app.curpage
        self.history = HistoryManager(skapp.db, "rename_history",
            skapp.opt.get_int("max_history"), True)
        self.hmodel = gtk.ListStore(gobject.TYPE_STRING)
        self.page_name = None
        self.create_redirect = skapp.opt.get_bool("rename_create_redirect")
        self._load_interface()

    def _load_interface(self):
        self.ui_init("rename-page-dialog.ui")
        self.dlg = self.ui.get_object("dlgRenamePage")
        self.lbCurrentName = self.ui.get_object("lbCurrentName")
        self.cbCreateRedirect = self.ui.get_object("cbCreateRedirect")
        self.cbeNewName = self.ui.get_object("cbeNewName")
        self.txNewName = self.cbeNewName.child
        self.cbeNewName.set_model(self.hmodel)
        self.cbeNewName.set_text_column(0)
        self.cbCreateRedirect.set_active(self.create_redirect)

    def run(self):
        self.hmodel.clear()
        for item in self.history.get_items():
            self.hmodel.append([item])
        self.lbCurrentName.set_text(self.curpage.name)
        self.txNewName.set_text(self.curpage.name)
        self.dlg.set_transient_for(self.parent)
        self.dlg.set_modal(True)
        while True:
            val = self.dlg.run()
            if val == gtk.RESPONSE_OK:
                newpagename = self.txNewName.get_text().decode("utf-8")
                newpage = self.app.pm.load(newpagename)
                if newpage == None or \
                newpage.normalized_name == self.curpage.normalized_name:
                    self.dlg.destroy()
                    self.history.add(newpagename)
                    self.history.save()
                    self.page_name = newpagename
                    self.create_redirect = self.cbCreateRedirect.get_active()
                    self.app.opt.set_bool("rename_create_redirect",
                        self.create_redirect)
                    return newpagename
                else:
                    error_dialog(self.dlg, u"Page already exists.")
            elif val == gtk.RESPONSE_CANCEL:
                self.dlg.destroy()
                self.history.save()
                return None
        return None
Exemple #2
0
class InsertPageTextDialog(BaseDialog):
    
    def __init__(self, skapp):
        self.app = skapp
        self.parent = skapp.window
        self.history = HistoryManager(skapp.db, "insert_history",
            skapp.opt.get_int("max_history"), True)
        self.hmodel = gtk.ListStore(gobject.TYPE_STRING)
        self._load_interface()

    def _load_interface(self):
        self.ui_init("insert-page-dialog.ui")
        self.dlg = self.ui.get_object("dlgInsertPageText")
        self.cbePageName = self.ui.get_object("cbePageName")
        self.txPageName = self.cbePageName.child
        self.cbePageName.set_model(self.hmodel)
        self.cbePageName.set_text_column(0)

    def run(self):
        self.hmodel.clear()
        for item in self.history.get_items():
            self.hmodel.append([item])
        self.dlg.set_transient_for(self.parent)
        self.dlg.set_modal(True)
        while True:
            val = self.dlg.run()
            if val == gtk.RESPONSE_OK:
                page = self.txPageName.get_text().decode("utf-8")
                if self.app.pm.exists(page):
                    self.dlg.destroy()
                    self.history.add(page)
                    self.history.save()
                    return page
                else:
                    error_dialog(self.dlg, u"Page not found.")
            elif val == gtk.RESPONSE_CANCEL:
                self.dlg.destroy()
                self.history.save()
                return None
        return None