From: epage Date: Sat, 9 Jan 2010 03:58:19 +0000 (+0000) Subject: Cleanup to history handling X-Git-Url: http://git.maemo.org/git/?p=quicknote;a=commitdiff_plain;h=e7ed3fe45e917216b7365e585af670c3f6f2a920;hp=e653b985054688e1f7f7d2c83f31ed7c8794b79a Cleanup to history handling git-svn-id: file:///svnroot/quicknote/trunk@106 bb7704e3-badb-4cfa-9ab3-9374dc87eaa2 --- diff --git a/src/history.py b/src/history.py index c897cd9..1f21fba 100644 --- a/src/history.py +++ b/src/history.py @@ -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() diff --git a/src/notizen.py b/src/notizen.py index be85c49..c3eb0f6 100644 --- a/src/notizen.py +++ b/src/notizen.py @@ -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(" <> "), 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(" <> "), 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) diff --git a/support/builddeb.py b/support/builddeb.py index 10cf3ce..193dcc4 100755 --- a/support/builddeb.py +++ b/support/builddeb.py @@ -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