Cleanup to history handling
authorepage <eopage@byu.net>
Sat, 9 Jan 2010 03:58:19 +0000 (03:58 +0000)
committerepage <eopage@byu.net>
Sat, 9 Jan 2010 03:58:19 +0000 (03:58 +0000)
git-svn-id: file:///svnroot/quicknote/trunk@106 bb7704e3-badb-4cfa-9ab3-9374dc87eaa2

src/history.py
src/notizen.py
support/builddeb.py

index c897cd9..1f21fba 100644 (file)
@@ -24,14 +24,14 @@ except NameError:
 _moduleLogger = logging.getLogger("history")
 
 
-class Dialog(gtk.Dialog):
+class HistorySelectionDialog(gtk.Dialog):
 
        def __init__(self, daten = None):
-               super(Dialog, self).__init__(
+               super(HistorySelectionDialog, self).__init__(
                        _("History:"),
                        None,
                        gtk.DIALOG_MODAL | gtk.DIALOG_DESTROY_WITH_PARENT,
-                       (gtk.STOCK_CANCEL, gtk.RESPONSE_REJECT, gtk.STOCK_OK, gtk.RESPONSE_ACCEPT),
+                       (gtk.STOCK_CANCEL, gtk.RESPONSE_REJECT, gtk.STOCK_SAVE, gtk.RESPONSE_ACCEPT),
                )
                self.set_position(gtk.WIN_POS_CENTER)
 
@@ -43,26 +43,22 @@ class Dialog(gtk.Dialog):
                        str #param schön
                )
 
-               # create the TreeView using liststore
                self._historyView = gtk.TreeView(self.noteHistory)
                self._historyView.set_rules_hint(True)
-               # create a CellRenderers to render the data
-               self._timestampCell = gtk.CellRendererText()
-               self._noteCell = gtk.CellRendererText()
 
-               # create the TreeViewColumns to display the data
+               self._timestampCell = gtk.CellRendererText()
                self._timestampColumn = gtk.TreeViewColumn(_('Timestamp'))
-               self._noteColumn = gtk.TreeViewColumn(_('Note'))
-               # add columns to treeview
-               self._historyView.append_column(self._timestampColumn)
-               self._historyView.append_column(self._noteColumn)
-
-               # add the cells to the columns - 2 in the first
                self._timestampColumn.pack_start(self._timestampCell, True)
-               self._noteColumn.pack_start(self._noteCell, True)
                self._timestampColumn.set_attributes(self._timestampCell, text = 1) #Spalten setzten hier!!!!
+
+               self._noteCell = gtk.CellRendererText()
+               self._noteColumn = gtk.TreeViewColumn(_('Note'))
+               self._noteColumn.pack_start(self._noteCell, True)
                self._noteColumn.set_attributes(self._noteCell, text = 4)
 
+               # add columns to treeview
+               self._historyView.append_column(self._timestampColumn)
+               self._historyView.append_column(self._noteColumn)
                self._historyView.set_reorderable(False)
 
                scrolled_window = gtk.ScrolledWindow()
index be85c49..c3eb0f6 100644 (file)
@@ -157,7 +157,7 @@ class Notizen(gtk.HBox):
                rows = self._db.getNoteHistory(self.noteId)
 
                import history
-               dialog = history.Dialog()
+               dialog = history.HistorySelectionDialog()
 
                lastNoteStr = ""
                for row in rows:
@@ -169,16 +169,19 @@ class Notizen(gtk.HBox):
                dialog.vbox.show_all()
                dialog.set_size_request(600, 380)
 
-               if dialog.run() == gtk.RESPONSE_ACCEPT:
-                       print "saving"
-                       self.save_note()
-                       data = dialog.get_selected_row()
-                       if data is not None:
-                               self._db.speichereSQL(data[2], data[3].split(" <<Tren-ner>> "), rowid = self.noteId)
-                               _moduleLogger.info("loading History")
-                               self._update_noteslist()
+               try:
+                       userResponse = dialog.run()
 
-               dialog.destroy()
+                       if userResponse == gtk.RESPONSE_ACCEPT:
+                               self.save_note()
+                               data = dialog.get_selected_row()
+                               if data is not None:
+                                       self._db.speichereSQL(data[2], data[3].split(" <<Tren-ner>> "), rowid = self.noteId)
+                                       _moduleLogger.info("loading History")
+                                       self._update_noteslist()
+
+               finally:
+                       dialog.destroy()
 
        def _get_title(self, buf):
                """
@@ -247,13 +250,23 @@ class Notizen(gtk.HBox):
 
        @gtk_toolbox.log_exception(_moduleLogger)
        def _on_delete_note(self, widget = None, data = None):
-               if (self.noteId == -1):
+               if self.noteId == -1:
                        return
-               mbox = gtk.MessageDialog(None, gtk.DIALOG_MODAL, gtk.MESSAGE_WARNING, gtk.BUTTONS_YES_NO, _("Really delete?"))
-               response = mbox.run()
-               mbox.hide()
-               mbox.destroy()
-               if response == gtk.RESPONSE_YES:
+
+               doDeletion = False
+               if self._noteBodyView.get_buffer().get_char_count() == 0:
+                       doDeletion = True
+               else:
+                       mbox = gtk.MessageDialog(None, gtk.DIALOG_MODAL, gtk.MESSAGE_WARNING, gtk.BUTTONS_YES_NO, _("Really delete?"))
+                       try:
+                               response = mbox.run()
+                       finally:
+                               mbox.hide()
+                               mbox.destroy()
+
+                       doDeletion = response == gtk.RESPONSE_YES
+
+               if doDeletion:
                        self._db.delNote(self.noteId)
                        self.noteId = -1
                        self._noteslist.remove_item(self._pos)
index 10cf3ce..193dcc4 100755 (executable)
@@ -25,6 +25,8 @@ __changelog__ = """
  * Moved history to the (app)menu
  * Moved search to Ctrl+f and (app)menu
  * Switched category selection over to a touch selector entry, making it prettier and easier
+ * Deleting empty notes no longer prompts the user
+ * Cleaned up the history dialog a smidge
  * Ctrl+w/q to quit
 
 0.7.9