[devhelp/gnome-2-32] book manager: new signal to emit when list of disabled books changes



commit c80ce2f5aba85b3c6b6c32d5239972d6e3da7ea3
Author: Aleksander Morgado <aleksander lanedo com>
Date:   Thu May 20 12:38:25 2010 +0200

    book manager: new signal to emit when list of disabled books changes

 src/dh-book-manager.c |   23 +++++++++++++++++++++++
 src/dh-book-manager.h |    3 +++
 src/dh-marshal.list   |    1 +
 3 files changed, 27 insertions(+), 0 deletions(-)
---
diff --git a/src/dh-book-manager.c b/src/dh-book-manager.c
index ca07836..a9415e4 100644
--- a/src/dh-book-manager.c
+++ b/src/dh-book-manager.c
@@ -28,12 +28,20 @@
 #include "dh-util.h"
 #include "dh-book.h"
 #include "dh-book-manager.h"
+#include "dh-marshal.h"
 
 typedef struct {
         /* The list of all DhBooks found in the system */
         GList *books;
 } DhBookManagerPriv;
 
+enum {
+        DISABLED_BOOK_LIST_UPDATED,
+        LAST_SIGNAL
+};
+
+static gint signals[LAST_SIGNAL] = { 0 };
+
 G_DEFINE_TYPE (DhBookManager, dh_book_manager, G_TYPE_OBJECT);
 
 #define GET_PRIVATE(instance) G_TYPE_INSTANCE_GET_PRIVATE       \
@@ -76,6 +84,16 @@ dh_book_manager_class_init (DhBookManagerClass *klass)
 
         object_class->finalize = book_manager_finalize;
 
+        signals[DISABLED_BOOK_LIST_UPDATED] =
+                g_signal_new ("open-link",
+                              G_TYPE_FROM_CLASS (klass),
+                              G_SIGNAL_RUN_LAST,
+                              G_STRUCT_OFFSET (DhBookManagerClass, disabled_book_list_updated),
+                              NULL, NULL,
+                              _dh_marshal_VOID__VOID,
+                              G_TYPE_NONE,
+                              0);
+
 	g_type_class_add_private (klass, sizeof (DhBookManagerPriv));
 }
 
@@ -365,6 +383,11 @@ dh_book_manager_update (DhBookManager *book_manager)
         /* Store in conf */
         dh_util_state_store_disabled_books (disabled_books);
 
+        /* Emit signal to notify others */
+        g_signal_emit (book_manager,
+                       signals[DISABLED_BOOK_LIST_UPDATED],
+                       0);
+
         book_manager_clean_list_of_disabled_books (disabled_books);
 }
 
diff --git a/src/dh-book-manager.h b/src/dh-book-manager.h
index bda6b98..1fbaeea 100644
--- a/src/dh-book-manager.h
+++ b/src/dh-book-manager.h
@@ -46,6 +46,9 @@ struct _DhBookManager {
 
 struct _DhBookManagerClass {
         GObjectClass parent_class;
+
+        /* Signals */
+        void (* disabled_book_list_updated) (DhBookManager *book_manager);
 };
 
 GType          dh_book_manager_get_type         (void) G_GNUC_CONST;
diff --git a/src/dh-marshal.list b/src/dh-marshal.list
index 969dff3..2023eaf 100644
--- a/src/dh-marshal.list
+++ b/src/dh-marshal.list
@@ -1,5 +1,6 @@
 VOID:BOOLEAN
 VOID:POINTER
 VOID:STRING
+VOID:VOID
 BOOLEAN:STRING
 VOID:STRING,FLAGS



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