[bijiben: 6/11] noteBook: start fixing the changed signal



commit d92a10415d3d30fb5b0b20b2ca27bbb0044afdf8
Author: Pierre-Yves Luyten <py luyten fr>
Date:   Sun Apr 28 06:48:45 2013 +0200

    noteBook: start fixing the changed signal
    
    The signal now sends an item, receiver should check for type

 src/bjb-controller.c         |   44 ++++++++++++++++++++++-------------------
 src/libbiji/biji-note-book.c |   14 ++++++------
 src/libbiji/biji-note-book.h |    6 ++--
 3 files changed, 34 insertions(+), 30 deletions(-)
---
diff --git a/src/bjb-controller.c b/src/bjb-controller.c
index 425d3c9..fdd6af6 100644
--- a/src/bjb-controller.c
+++ b/src/bjb-controller.c
@@ -438,23 +438,23 @@ refresh_completion(BjbController *self)
 }
 
 static gboolean
-bjb_controller_get_iter_at_note (BjbController *self, BijiNoteObj *note, GtkTreeIter **iter)
+bjb_controller_get_iter_at_item (BjbController *self, BijiItem *item, GtkTreeIter **iter)
 {
   BjbControllerPrivate *priv = self->priv;
-  gchar *needle = biji_item_get_uuid (BIJI_ITEM (note));
+  gchar *needle = biji_item_get_uuid (item);
   gboolean retval = FALSE;
   gboolean still = gtk_tree_model_get_iter_first (priv->model, *iter);
 
   while (still)
   {
-    gchar *note_path;
+    gchar *item_path;
 
-    gtk_tree_model_get (priv->model, *iter, GD_MAIN_COLUMN_URI, &note_path,-1);
+    gtk_tree_model_get (priv->model, *iter, GD_MAIN_COLUMN_URI, &item_path,-1);
 
-    if (g_strcmp0 (note_path, needle)==0)
+    if (g_strcmp0 (item_path, needle)==0)
       retval = TRUE;
 
-    g_free (note_path);
+    g_free (item_path);
 
     if (retval)
       break;
@@ -472,12 +472,12 @@ bjb_controller_get_iter_at_note (BjbController *self, BijiNoteObj *note, GtkTree
 static void
 on_book_changed (BijiNoteBook           *book,
                  BijiNoteBookChangeFlag  flag,
-                 gpointer               *note_obj,
+                 gpointer               *biji_item,
                  BjbController          *self)
 {
   BjbControllerPrivate *priv = self->priv;
-  BijiNoteObj *note = BIJI_NOTE_OBJ (note_obj);
-  BijiItem    *item = BIJI_ITEM (note);
+  BijiItem    *item = BIJI_ITEM (biji_item);
+  BijiNoteObj *note = NULL;
   GtkTreeIter iter;
   GtkTreeIter *p_iter = &iter;
 
@@ -485,16 +485,20 @@ on_book_changed (BijiNoteBook           *book,
   {
     /* If this is a *new* note, per def prepend
      * But do not add a new note to a search window */
-    case BIJI_BOOK_NOTE_ADDED:
-        bjb_controller_add_note_if_needed (self, note, TRUE);
-        priv->items_to_show = g_list_prepend (priv->items_to_show, note);
-        g_signal_emit (G_OBJECT (self), bjb_controller_signals[DISPLAY_NOTES_CHANGED],0);
+    case BIJI_BOOK_ITEM_ADDED:
+        /* Todo : handle collection as well */
+        if (BIJI_IS_NOTE_OBJ (item))
+        {
+          note = BIJI_NOTE_OBJ (item);
+          bjb_controller_add_note_if_needed (self, note, TRUE);
+          priv->items_to_show = g_list_prepend (priv->items_to_show, note);
+          g_signal_emit (G_OBJECT (self), bjb_controller_signals[DISPLAY_NOTES_CHANGED],0);
+        }
       break;
 
-    /* If the note is *amended*, then per definition we prepend.
-     * but if we add other ordering this does not work */
+    /* FIXME - a note has to be added after the collections... */
     case BIJI_BOOK_NOTE_AMENDED:
-      if (bjb_controller_get_iter_at_note (self, note, &p_iter))
+      if (bjb_controller_get_iter_at_item (self, item, &p_iter))
       {
         gtk_list_store_remove (GTK_LIST_STORE (priv->model), p_iter);
         bjb_controller_add_note_if_needed (self, note, TRUE);
@@ -505,18 +509,18 @@ on_book_changed (BijiNoteBook           *book,
     case BIJI_BOOK_NOTE_COLORED:
       if (bjb_main_view_get_view_type (
              bjb_window_base_get_main_view (self->priv->window)) == GD_MAIN_VIEW_ICON
-          && bjb_controller_get_iter_at_note (self, note, &p_iter))
+          && bjb_controller_get_iter_at_item (self, item, &p_iter))
         gtk_list_store_set (GTK_LIST_STORE (priv->model), p_iter,
                             GD_MAIN_COLUMN_ICON, biji_item_get_icon (item), -1);
       else if (bjb_main_view_get_view_type (
              bjb_window_base_get_main_view (self->priv->window)) == GD_MAIN_VIEW_LIST
-          && bjb_controller_get_iter_at_note (self, note, &p_iter))
+          && bjb_controller_get_iter_at_item (self, item, &p_iter))
         gtk_list_store_set (GTK_LIST_STORE (priv->model), p_iter,
                             GD_MAIN_COLUMN_ICON, biji_item_get_emblem (item), -1);
       break;
 
-    case BIJI_BOOK_NOTE_TRASHED:
-      if (bjb_controller_get_iter_at_note (self, note, &p_iter))
+    case BIJI_BOOK_ITEM_TRASHED:
+      if (bjb_controller_get_iter_at_item (self, item, &p_iter))
         gtk_list_store_remove (GTK_LIST_STORE (priv->model), p_iter);
 
       priv->items_to_show = g_list_remove (priv->items_to_show, note);
diff --git a/src/libbiji/biji-note-book.c b/src/libbiji/biji-note-book.c
index 0be7c6c..a754cb6 100644
--- a/src/libbiji/biji-note-book.c
+++ b/src/libbiji/biji-note-book.c
@@ -173,22 +173,22 @@ biji_note_book_get_unique_title (BijiNoteBook *book, gchar *title)
 gboolean
 biji_note_book_notify_changed (BijiNoteBook            *book,
                                BijiNoteBookChangeFlag   flag,
-                               BijiNoteObj              *note)
+                               BijiItem                *item)
 {
-  g_signal_emit (G_OBJECT (book), biji_book_signals[BOOK_AMENDED], 0, flag, note);
+  g_signal_emit (G_OBJECT (book), biji_book_signals[BOOK_AMENDED], 0, flag, item);
   return FALSE;
 }
 
 void
 book_on_note_changed_cb (BijiNoteObj *note, BijiNoteBook *book)
 {
-  biji_note_book_notify_changed (book, BIJI_BOOK_NOTE_AMENDED, note);
+  biji_note_book_notify_changed (book, BIJI_BOOK_NOTE_AMENDED, BIJI_ITEM (note));
 }
 
 static void
 book_on_note_color_changed_cb (BijiNoteObj *note, BijiNoteBook *book)
 {
-  biji_note_book_notify_changed (book, BIJI_BOOK_NOTE_COLORED, note);
+  biji_note_book_notify_changed (book, BIJI_BOOK_NOTE_COLORED, BIJI_ITEM (note));
 }
 
 static void
@@ -394,7 +394,7 @@ biji_note_book_remove_item (BijiNoteBook *book, BijiItem *item)
   g_return_val_if_fail (BIJI_IS_NOTE_BOOK (book), FALSE);
   g_return_val_if_fail (BIJI_IS_ITEM      (item), FALSE);
 
-  BijiNoteObj *to_delete = NULL;
+  BijiItem *to_delete = NULL;
   gchar *path;
   gboolean retval = FALSE;
 
@@ -405,7 +405,7 @@ biji_note_book_remove_item (BijiNoteBook *book, BijiItem *item)
   {
     /* Signal before doing anything here. So the note is still
      * fully available for signal receiver. */
-    biji_note_book_notify_changed (book, BIJI_BOOK_NOTE_TRASHED, to_delete);
+    biji_note_book_notify_changed (book, BIJI_BOOK_ITEM_TRASHED, to_delete);
 
     /* Ref note first, hash_table won't finalize it & we can delete it*/
     g_object_ref (to_delete);
@@ -429,7 +429,7 @@ biji_note_book_append_new_note (BijiNoteBook *book, BijiNoteObj *note, gboolean
   _biji_note_book_add_one_note (book,note);
 
   if (notify)
-    biji_note_book_notify_changed (book, BIJI_BOOK_NOTE_ADDED, note);
+    biji_note_book_notify_changed (book, BIJI_BOOK_ITEM_ADDED, BIJI_ITEM (note));
 }
 
 GList *
diff --git a/src/libbiji/biji-note-book.h b/src/libbiji/biji-note-book.h
index d262c93..083942a 100644
--- a/src/libbiji/biji-note-book.h
+++ b/src/libbiji/biji-note-book.h
@@ -14,10 +14,10 @@ typedef enum
 {
   BIJI_BOOK_CHANGE_FLAG,
   BIJI_BOOK_MASS_CHANGE,   // Startup, mass import.. rather rebuild the whole.
-  BIJI_BOOK_NOTE_ADDED,    // Single note added
+  BIJI_BOOK_ITEM_ADDED,    // Single item added
+  BIJI_BOOK_ITEM_TRASHED,  // Single item trashed
   BIJI_BOOK_NOTE_AMENDED,  // Single note amended (title, content)
   BIJI_BOOK_NOTE_COLORED,  // Single note color
-  BIJI_BOOK_NOTE_TRASHED,  // Single note trashed
 } BijiNoteBookChangeFlag;
 
 #define BIJI_TYPE_NOTE_BOOK             (biji_note_book_get_type ())
@@ -53,7 +53,7 @@ void biji_note_book_append_new_note (BijiNoteBook *book, BijiNoteObj *note, gboo
 
 gboolean biji_note_book_notify_changed (BijiNoteBook           *book,
                                         BijiNoteBookChangeFlag  flag,
-                                        BijiNoteObj            *note);
+                                        BijiItem               *item);
 
 gboolean biji_note_book_remove_item (BijiNoteBook *book, BijiItem *item);
 


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]