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
def endElement(self, name): if self._state == SkedContentHandler.IN_CONFIG_OPTION \ and name == "option": if self.import_config: self._opt.set_str(self._tmp_name, self._tmp_data) self._tmp_name = None self._tmp_data = None self._state = SkedContentHandler.IN_CONFIG elif self._state == SkedContentHandler.IN_CONFIG \ and name == "configuration": if self.import_config: self._opt.save() self._state = SkedContentHandler.IN_SKEDDATA elif self._state == SkedContentHandler.IN_HISTORY_ITEM \ and name == "item": self._tmp_hist_items.append(self._tmp_data) self._tmp_data = None self._state = SkedContentHandler.IN_HISTORY elif self._state == SkedContentHandler.IN_HISTORY \ and name == "history": if self.import_history: hist = HistoryManager(self._db, self._tmp_name.encode("utf-8")) hist.set_items(self._tmp_hist_items) hist.save() self._tmp_name = None self._tmp_hist_items = None self._state = SkedContentHandler.IN_SKEDDATA elif self._state == SkedContentHandler.IN_ENTRY \ and name == "entry": if self.import_pages: self._pm.save(Page(self._tmp_name, self._tmp_data), False) self._tmp_name = None self._tmp_data = None self._state = SkedContentHandler.IN_SKEDDATA elif self._state == SkedContentHandler.IN_SKEDDATA \ and name == "skeddata": self._state = SkedContentHandler.DONE else: raise DataFormatError
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