[nautilus] bookmark-list: port to G_DECLARE* type declaration



commit dcd4eb31444d62760a5ae79dfc4e1ac7b33aab44
Author: Sirbu Lavinia Stefania <sirbu lavinia stefania gmail com>
Date:   Tue Sep 27 06:41:09 2016 -0400

    bookmark-list: port to G_DECLARE* type declaration
    
    Currently we are using the old GObject class declarations, which have two
    problems.
    
    One problem is that we cannot use smart pointers like g_autoptr. The other
    problem is the boilerplate code generated that makes the code less readable,
    so harder to understand.
    
    To fix this use G_DECLARE* type.
    
    https://bugzilla.gnome.org/show_bug.cgi?id=771838

 src/nautilus-bookmark-list.c |   12 ++++++++++--
 src/nautilus-bookmark-list.h |   31 +++++--------------------------
 2 files changed, 15 insertions(+), 28 deletions(-)
---
diff --git a/src/nautilus-bookmark-list.c b/src/nautilus-bookmark-list.c
index 58d9c9a..7a358b1 100644
--- a/src/nautilus-bookmark-list.c
+++ b/src/nautilus-bookmark-list.c
@@ -36,6 +36,15 @@
 #define LOAD_JOB 1
 #define SAVE_JOB 2
 
+struct _NautilusBookmarkList
+{
+    GObject parent_instance;
+
+    GList *list; 
+    GFileMonitor *monitor;
+    GQueue *pending_ops;
+};
+
 enum
 {
     CHANGED,
@@ -184,8 +193,7 @@ nautilus_bookmark_list_class_init (NautilusBookmarkListClass *class)
         g_signal_new ("changed",
                       G_TYPE_FROM_CLASS (object_class),
                       G_SIGNAL_RUN_LAST,
-                      G_STRUCT_OFFSET (NautilusBookmarkListClass,
-                                       changed),
+                      0,
                       NULL, NULL,
                       g_cclosure_marshal_VOID__VOID,
                       G_TYPE_NONE, 0);
diff --git a/src/nautilus-bookmark-list.h b/src/nautilus-bookmark-list.h
index 699a8b7..c3f1f5d 100644
--- a/src/nautilus-bookmark-list.h
+++ b/src/nautilus-bookmark-list.h
@@ -29,35 +29,12 @@
 #include "nautilus-bookmark.h"
 #include <gio/gio.h>
 
-typedef struct NautilusBookmarkList NautilusBookmarkList;
-typedef struct NautilusBookmarkListClass NautilusBookmarkListClass;
+G_BEGIN_DECLS
 
-#define NAUTILUS_TYPE_BOOKMARK_LIST nautilus_bookmark_list_get_type()
-#define NAUTILUS_BOOKMARK_LIST(obj) \
-  (G_TYPE_CHECK_INSTANCE_CAST ((obj), NAUTILUS_TYPE_BOOKMARK_LIST, NautilusBookmarkList))
-#define NAUTILUS_BOOKMARK_LIST_CLASS(klass) \
-  (G_TYPE_CHECK_CLASS_CAST ((klass), NAUTILUS_TYPE_BOOKMARK_LIST, NautilusBookmarkListClass))
-#define NAUTILUS_IS_BOOKMARK_LIST(obj) \
-  (G_TYPE_CHECK_INSTANCE_TYPE ((obj), NAUTILUS_TYPE_BOOKMARK_LIST))
-#define NAUTILUS_IS_BOOKMARK_LIST_CLASS(klass) \
-  (G_TYPE_CHECK_CLASS_TYPE ((klass), NAUTILUS_TYPE_BOOKMARK_LIST))
-#define NAUTILUS_BOOKMARK_LIST_GET_CLASS(obj) \
-  (G_TYPE_INSTANCE_GET_CLASS ((obj), NAUTILUS_TYPE_BOOKMARK_LIST, NautilusBookmarkListClass))
+#define NAUTILUS_TYPE_BOOKMARK_LIST (nautilus_bookmark_list_get_type())
 
-struct NautilusBookmarkList {
-       GObject object;
+G_DECLARE_FINAL_TYPE (NautilusBookmarkList, nautilus_bookmark_list, NAUTILUS, BOOKMARK_LIST, GObject)
 
-       GList *list; 
-       GFileMonitor *monitor;
-       GQueue *pending_ops;
-};
-
-struct NautilusBookmarkListClass {
-       GObjectClass parent_class;
-       void (* changed) (NautilusBookmarkList *bookmarks);
-};
-
-GType                   nautilus_bookmark_list_get_type            (void);
 NautilusBookmarkList *  nautilus_bookmark_list_new                 (void);
 void                    nautilus_bookmark_list_append              (NautilusBookmarkList   *bookmarks,
                                                                    NautilusBookmark *bookmark);
@@ -68,4 +45,6 @@ gboolean                nautilus_bookmark_list_can_bookmark_location (NautilusBo
                                                                      GFile                *location);
 GList *                 nautilus_bookmark_list_get_all             (NautilusBookmarkList   *bookmarks);
 
+G_END_DECLS
+
 #endif /* NAUTILUS_BOOKMARK_LIST_H */


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