Prepping for Mer support
[quicknote] / src / libnotizen.py
index 82fa2a1..a2edfda 100644 (file)
@@ -7,8 +7,6 @@
 This program is free software; you can redistribute it and/or modify
 it under the terms of the GNU General Public License version 2 as
 published by the Free Software Foundation.
-
-@todo Add hiding of the history button on zoom
 """
 
 import time
@@ -41,7 +39,7 @@ class Notizen(gtk.HBox):
                logging.info("libnotizen, init")
 
                self._noteslist = simple_list.SimpleList()
-               self._noteslist.set_eventfunction__cursor_changed(self._update_noteslist)
+               self._noteslist.set_eventfunction_cursor_changed(self._update_noteslist)
 
                self._noteslist.set_size_request(250, -1)
 
@@ -81,17 +79,17 @@ class Notizen(gtk.HBox):
                vbox = gtk.VBox(homogeneous = False, spacing = 0)
                vbox.pack_start(frame, expand = True, fill = True, padding = 3)
 
-               hbox = gtk.HBox(homogeneous = False, spacing = 0)
+               self._historyBox = gtk.HBox(homogeneous = False, spacing = 0)
 
-               self._statusLabel = gtk.Label("Test")
-               self._statusLabel.set_alignment(0.0, 0.5)
-               hbox.pack_start(self._statusLabel, expand = True, fill = True, padding = 3)
+               self._historyStatusLabel = gtk.Label(_("No History"))
+               self._historyStatusLabel.set_alignment(0.0, 0.5)
+               self._historyBox.pack_start(self._historyStatusLabel, expand = True, fill = True, padding = 3)
 
                button = gtk.Button(_("History"))
                button.connect("clicked", self._on_show_history, None)
-               hbox.pack_start(button, expand = True, fill = True, padding = 3)
+               self._historyBox.pack_start(button, expand = True, fill = True, padding = 3)
 
-               vbox.pack_start(hbox, expand = False, fill = True, padding = 3)
+               vbox.pack_start(self._historyBox, expand = False, fill = True, padding = 3)
 
                self.pack_start(vbox, expand = True, fill = True, padding = 3)
 
@@ -106,27 +104,30 @@ class Notizen(gtk.HBox):
                        self._noteScrollWindow.set_policy(gtk.POLICY_AUTOMATIC, gtk.POLICY_AUTOMATIC)
                        self._noteBodyView.set_wrap_mode(gtk.WRAP_NONE)
 
-       def _get_title(self, buf):
-               """
-               @returns the title of the current note
-               """
-               eol = buf.find("\n")
-               if -1 == eol:
-                       eol = len(buf)
-               title = buf[:eol]
-               return title
+       def show_history_area(self, visible):
+               if visible:
+                       self._historyBox.show()
+               else:
+                       self._historyBox.hide()
 
-       def _on_note_changed(self, widget = None, data = None):
-               if self._pos == -1 or self.noteId == -1:
-                       return
+       def load_notes(self, data = None):
+               logging.info("load_notes params: pos:"+str(self._pos)+" noteid:"+str(self.noteId))
+               self._noteslist.clear_items()
+               self._noteslist.append_item(_("New Note..."), "new")
 
-               buf = self._noteBodyView.get_buffer().get_text(self._noteBodyView.get_buffer().get_start_iter(), self._noteBodyView.get_buffer().get_end_iter())
+               self._categoryName = self._topBox.get_category()
+               search = self._topBox.get_search_pattern()
+               notes = self._db.searchNotes(search, self._categoryName)
 
-               title = self._get_title(buf)
-               value, key = self._noteslist.get_item(self._pos)
+               if notes is not None:
+                       for note in notes:
+                               noteid, category, noteText = note
+                               title = self._get_title(noteText)
+                               self._noteslist.append_item(title, noteid)
 
-               if value != title:
-                       self._noteslist.change_item(self._pos, title, self.noteId)
+               self.noteId = -1
+               self._pos = -1
+               self._noteBodyView.get_buffer().set_text("")
 
        def save_note(self, widget = None, data = None, data2 = None):
                logging.info("save_note params: pos:"+str(self._pos)+" noteid:"+str(self.noteId))
@@ -142,14 +143,24 @@ class Notizen(gtk.HBox):
                if self._pos == -1 or self.noteId == -1:
                        self._pos = -1
                        self.noteId = str(uuid.uuid4())
-                       self._db.save_note(self.noteId, buf, self._categoryName)
+                       self._db.saveNote(self.noteId, buf, self._categoryName)
                        self._noteslist.append_item(self._get_title(buf), self.noteId)
                        self._pos = self._noteslist.select_last_item()
                else:
-                       self._db.save_note(self.noteId, buf, self._categoryName)
+                       self._db.saveNote(self.noteId, buf, self._categoryName)
 
                self._topBox.define_this_category()
 
+       def _get_title(self, buf):
+               """
+               @returns the title of the current note
+               """
+               eol = buf.find("\n")
+               if -1 == eol:
+                       eol = len(buf)
+               title = buf[:eol]
+               return title
+
        def _set_focus(self):
                self._noteBodyView.grab_focus()
                return False
@@ -170,7 +181,7 @@ class Notizen(gtk.HBox):
                if key == "new" or data == "new":
                        #both methods supported click add note or new note (first one disabled)
                        self.noteId = str(uuid.uuid4())
-                       self._db.save_note(self.noteId, "", self._categoryName)
+                       self._db.saveNote(self.noteId, "", self._categoryName)
                        self._pos = -1
                        self._noteslist.append_item("", self.noteId)
                        self._noteBodyView.get_buffer().set_text("")
@@ -178,12 +189,24 @@ class Notizen(gtk.HBox):
                else:
                        self._pos = pos
                        self.noteId, pcdatum, self._categoryName, self._noteBody = self._db.loadNote(key)
-                       self._statusLabel.set_text(time.strftime(_("Last change: %d.%m.%y %H:%M"), time.localtime(pcdatum)))
+                       self._historyStatusLabel.set_text(time.strftime(_("Last change: %d.%m.%y %H:%M"), time.localtime(pcdatum)))
                        buf = self._noteBodyView.get_buffer()
                        buf.set_text(self._noteBody)
 
                gobject.timeout_add(200, self._set_focus)
 
+       def _on_note_changed(self, widget = None, data = None):
+               if self._pos == -1 or self.noteId == -1:
+                       return
+
+               buf = self._noteBodyView.get_buffer().get_text(self._noteBodyView.get_buffer().get_start_iter(), self._noteBodyView.get_buffer().get_end_iter())
+
+               title = self._get_title(buf)
+               value, key = self._noteslist.get_item(self._pos)
+
+               if value != title:
+                       self._noteslist.change_item(self._pos, title, self.noteId)
+
        def _on_add_note(self, widget = None, data = None):
                self._update_noteslist("new")
 
@@ -201,25 +224,6 @@ class Notizen(gtk.HBox):
                        self._pos = -1
                        self._noteBodyView.get_buffer().set_text("")
 
-       def load_notes(self, data = None):
-               logging.info("load_notes params: pos:"+str(self._pos)+" noteid:"+str(self.noteId))
-               self._noteslist.clear_items()
-               self._noteslist.append_item(_("new Note"), "new")
-
-               self._categoryName = self._topBox.get_category()
-               search = self._topBox.get_search_pattern()
-               notes = self._db.searchNotes(search, self._categoryName)
-
-               if notes is not None:
-                       for note in notes:
-                               noteid, category, noteText = note
-                               title = self._get_title(noteText)
-                               self._noteslist.append_item(title, noteid)
-
-               self.noteId = -1
-               self._pos = -1
-               self._noteBodyView.get_buffer().set_text("")
-
        def _on_show_history(self, widget = None, data = None, label = None):
                if self.noteId == -1:
                        mbox =  gtk.MessageDialog(None, gtk.DIALOG_MODAL, gtk.MESSAGE_INFO, gtk.BUTTONS_OK, _("No note selected."))