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
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