X-Git-Url: http://git.maemo.org/git/?p=quicknote;a=blobdiff_plain;f=src%2Fnotizen.py;h=46b37291e9b71165fa7d356b565aab4cc990f528;hp=95ed016c74c9fe6d20336e04748a1205b44add9d;hb=67091fc14ae79b74498c85ee75d2ecf1003e775a;hpb=8c7b4b28649f686a455948ee70ac126ae56b1f5b diff --git a/src/notizen.py b/src/notizen.py index 95ed016..46b3729 100644 --- a/src/notizen.py +++ b/src/notizen.py @@ -39,9 +39,10 @@ _moduleLogger = logging.getLogger("notizen") class Notizen(gtk.HBox): - def __init__(self, db, topBox): + def __init__(self, db, category, search): self._db = db - self._topBox = topBox + self._category = category + self._search = search self.noteId = -1 self._pos = -1 self._noteBody = None #Last notetext @@ -66,6 +67,7 @@ class Notizen(gtk.HBox): buttonHBox.pack_start(button, expand = True, fill = True, padding = 3) listVbox = gtk.VBox(homogeneous = False, spacing = 0) + listVbox.pack_start(self._category, expand = False, fill = True, padding = 3) listVbox.pack_start(self._noteslist.widget, expand = True, fill = True, padding = 3) listVbox.pack_start(buttonHBox, expand = False, fill = True, padding = 3) self.pack_start(listVbox, expand = False, fill = True, padding = 3) @@ -92,7 +94,8 @@ class Notizen(gtk.HBox): self.pack_start(noteVbox, expand = True, fill = True, padding = 3) self.load_notes() - self._topBox.connect("category_changed", self.load_notes) + self._category.connect("category_changed", self.load_notes) + self._search.connect("search_changed", self.load_notes) def set_wordwrap(self, enableWordWrap): if enableWordWrap: @@ -106,8 +109,8 @@ class Notizen(gtk.HBox): _moduleLogger.info("load_notes params: pos:"+str(self._pos)+" noteid:"+str(self.noteId)) self._noteslist.clear_items() - self._categoryName = self._topBox.get_category() - search = self._topBox.get_search_pattern() + self._categoryName = self._category.get_queryable_category() + search = self._search.get_search_pattern() notes = self._db.searchNotes(search, self._categoryName) if notes is not None: @@ -141,8 +144,6 @@ class Notizen(gtk.HBox): else: self._db.saveNote(self.noteId, buf, self._categoryName) - self._topBox.define_this_category() - def show_history(self, *args): if self.noteId == -1: mbox = gtk.MessageDialog(None, gtk.DIALOG_MODAL, gtk.MESSAGE_INFO, gtk.BUTTONS_OK, _("No note selected.")) @@ -154,7 +155,7 @@ class Notizen(gtk.HBox): rows = self._db.getNoteHistory(self.noteId) import history - dialog = history.Dialog() + dialog = history.HistorySelectionDialog() lastNoteStr = "" for row in rows: @@ -166,16 +167,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): """ @@ -244,13 +248,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)