def window_closing(self, sender, args): if not self._commited: if self._reserved_key: try: kdb.release_key(self._conn, self._reserved_key, category=self._cat) except System.TimeoutException as toutex: forms.alert(toutex.Message) except Exception: pass try: kdb.end_edit(self._conn) except System.TimeoutException as toutex: forms.alert(toutex.Message) except Exception: pass
def commit(self): if self._mode == kdb.EDIT_MODE_ADD_CATEG: if not self.active_key: forms.alert('Category must have a unique key.') return False elif not self.active_text.strip(): forms.alert('Category must have a title.') return False logger.debug('Adding category: {} {}'.format( self.active_key, self.active_text)) try: self._res = kdb.add_category(self._conn, self.active_key, self.active_text) kdb.end_edit(self._conn) except System.TimeoutException as toutex: forms.alert(toutex.Message) return False elif self._mode == kdb.EDIT_MODE_EDIT_CATEG: if not self.active_text: forms.alert('Existing title is removed. ' 'Category must have a title.') return False try: # update category key if changed if self.active_key != self._rkeynote.key: self._res = kdb.rekey_category(self._conn, self._rkeynote.key, self.active_key) # update category title if changed if self.active_text != self._rkeynote.text: kdb.update_category_title(self._conn, self.active_key, self.active_text) kdb.end_edit(self._conn) except System.TimeoutException as toutex: forms.alert(toutex.Message) return False elif self._mode == kdb.EDIT_MODE_ADD_KEYNOTE: if not self.active_key: forms.alert('Keynote must have a unique key.') return False elif not self.active_text: forms.alert('Keynote must have text.') return False elif not self.active_parent_key: forms.alert('Keynote must have a parent.') return False try: self._res = kdb.add_keynote(self._conn, self.active_key, self.active_text, self.active_parent_key) kdb.end_edit(self._conn) except System.TimeoutException as toutex: forms.alert(toutex.Message) return False elif self._mode == kdb.EDIT_MODE_EDIT_KEYNOTE: if not self.active_text: forms.alert( 'Existing text is removed. Keynote must have text.') return False try: # update keynote key if changed if self.active_key != self._rkeynote.key: self._res = kdb.rekey_keynote(self._conn, self._rkeynote.key, self.active_key) # update keynote title if changed if self.active_text != self._rkeynote.text: kdb.update_keynote_text(self._conn, self.active_key, self.active_text) # update keynote parent if self.active_parent_key != self._rkeynote.parent_key: kdb.move_keynote(self._conn, self.active_key, self.active_parent_key) kdb.end_edit(self._conn) except System.TimeoutException as toutex: forms.alert(toutex.Message) return False return True