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
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)
self.pack_start(noteVbox, expand = True, fill = True, padding = 3)
self.load_notes()
- self._topBox.connect("reload_notes", 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:
_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_category()
+ search = self._search.get_search_pattern()
notes = self._db.searchNotes(search, self._categoryName)
if notes is not None:
else:
self._db.saveNote(self.noteId, buf, self._categoryName)
- self._topBox.define_this_category()
+ self._category.define_this_category()
def show_history(self, *args):
if self.noteId == -1:
rows = self._db.getNoteHistory(self.noteId)
import history
- dialog = history.Dialog()
+ dialog = history.HistorySelectionDialog()
lastNoteStr = ""
for row in rows:
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):
"""
@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)