Example #1
0
 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
Example #2
0
    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