[bijiben: 6/11] noteBook: start fixing the changed signal
- From: Pierre-Yves Luyten <pyluyten src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [bijiben: 6/11] noteBook: start fixing the changed signal
- Date: Sun, 28 Apr 2013 23:14:47 +0000 (UTC)
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, ¬e_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]