[epiphany] EphyBookmarkAction: Use g_object_class_install_properties.



commit 464efbc8d5ac93add13b100d52827157ad9d7a80
Author: Arnaud Bonatti <arnaud bonatti gmail com>
Date:   Sat Dec 12 17:37:59 2015 +0100

    EphyBookmarkAction: Use g_object_class_install_properties.
    
    https://bugzilla.gnome.org/show_bug.cgi?id=759401

 src/bookmarks/ephy-bookmark-action.c |   62 ++++++++++++++++-----------------
 1 files changed, 30 insertions(+), 32 deletions(-)
---
diff --git a/src/bookmarks/ephy-bookmark-action.c b/src/bookmarks/ephy-bookmark-action.c
index 163b0e9..4baca2b 100644
--- a/src/bookmarks/ephy-bookmark-action.c
+++ b/src/bookmarks/ephy-bookmark-action.c
@@ -53,9 +53,12 @@ enum
        PROP_TOOLTIP,
        PROP_LOCATION,
        PROP_SMART_URL,
-       PROP_ICON
+       PROP_ICON,
+       LAST_PROP
 };
 
+static GParamSpec *obj_properties[LAST_PROP];
+
 typedef struct
 {
        GObject *weak_ptr;
@@ -80,7 +83,7 @@ favicon_changed_cb (WebKitFaviconDatabase *database,
                 g_signal_handler_disconnect (database, action->priv->cache_handler);
                 action->priv->cache_handler = 0;
 
-                g_object_notify (G_OBJECT (action), "icon");
+                g_object_notify_by_pspec (G_OBJECT (action), obj_properties[PROP_ICON]);
         }
 }
 
@@ -269,7 +272,7 @@ ephy_bookmark_action_updated (EphyBookmarkAction *action)
 
        /* Set smart_url */
        action->priv->smart_url = ephy_node_has_child (smart, node);
-       g_object_notify (G_OBJECT (action), "smarturl");
+       g_object_notify_by_pspec (G_OBJECT (action), obj_properties[PROP_SMART_URL]);
 
        /* Set title */
        title = ephy_node_get_property_string (node, EPHY_NODE_BMK_PROP_TITLE);
@@ -279,8 +282,8 @@ ephy_bookmark_action_updated (EphyBookmarkAction *action)
        g_value_unset (&value);
 
        /* Notify all other properties */
-       g_object_notify (G_OBJECT (action), "location");
-       g_object_notify (G_OBJECT (action), "icon");
+       g_object_notify_by_pspec (G_OBJECT (action), obj_properties[PROP_LOCATION]);
+       g_object_notify_by_pspec (G_OBJECT (action), obj_properties[PROP_ICON]);
 
        g_object_thaw_notify (G_OBJECT (action));
 
@@ -309,7 +312,7 @@ ephy_bookmark_action_set_bookmark (EphyBookmarkAction *action,
 
        g_object_freeze_notify (object);
 
-       g_object_notify (object, "bookmark");
+       g_object_notify_by_pspec (G_OBJECT (action), obj_properties[PROP_BOOKMARK]);
        ephy_bookmark_action_updated (action);
 
        g_object_thaw_notify (object);
@@ -410,34 +413,29 @@ ephy_bookmark_action_class_init (EphyBookmarkActionClass *class)
        object_class->set_property = ephy_bookmark_action_set_property;
        object_class->get_property = ephy_bookmark_action_get_property;
 
-       g_object_class_install_property (object_class,
-                                        PROP_BOOKMARK,
-                                        g_param_spec_pointer ("bookmark", NULL, NULL,
-                                                              G_PARAM_READWRITE | G_PARAM_STATIC_NAME | 
G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB |
-                                                              G_PARAM_CONSTRUCT_ONLY));
+       obj_properties[PROP_BOOKMARK] =
+               g_param_spec_pointer ("bookmark", NULL, NULL,
+                                     G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_CONSTRUCT_ONLY);
 
        /* overwrite GtkActionClass::tooltip, so we can use the url as tooltip */
-       g_object_class_install_property (object_class,
-                                        PROP_TOOLTIP,
-                                        g_param_spec_string  ("tooltip", NULL, NULL,
-                                                              NULL,
-                                                              G_PARAM_READABLE | G_PARAM_STATIC_NAME | 
G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB));
-
-       g_object_class_install_property (object_class,
-                                        PROP_LOCATION,
-                                        g_param_spec_string  ("location", NULL, NULL,
-                                                              NULL,
-                                                              G_PARAM_READABLE | G_PARAM_STATIC_NAME | 
G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB));
-       g_object_class_install_property (object_class,
-                                        PROP_SMART_URL,
-                                        g_param_spec_boolean  ("smarturl", NULL, NULL,
-                                                               FALSE,
-                                                               G_PARAM_READABLE | G_PARAM_STATIC_NAME | 
G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB));
-       g_object_class_install_property (object_class,
-                                        PROP_ICON,
-                                        g_param_spec_string  ("icon", NULL, NULL,
-                                                              NULL,
-                                                              G_PARAM_READABLE | G_PARAM_STATIC_NAME | 
G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB));
+       obj_properties[PROP_TOOLTIP] =
+               g_param_spec_string  ("tooltip", NULL, NULL,
+                                     NULL,
+                                     G_PARAM_READABLE | G_PARAM_STATIC_STRINGS);
+       obj_properties[PROP_LOCATION] =
+               g_param_spec_string  ("location", NULL, NULL,
+                                     NULL,
+                                     G_PARAM_READABLE | G_PARAM_STATIC_STRINGS);
+       obj_properties[PROP_SMART_URL] =
+               g_param_spec_boolean  ("smarturl", NULL, NULL,
+                                      FALSE,
+                                      G_PARAM_READABLE | G_PARAM_STATIC_STRINGS);
+       obj_properties[PROP_ICON] =
+               g_param_spec_string  ("icon", NULL, NULL,
+                                     NULL,
+                                     G_PARAM_READABLE | G_PARAM_STATIC_STRINGS);
+
+       g_object_class_install_properties (object_class, LAST_PROP, obj_properties);
 
        g_type_class_add_private (object_class, sizeof(EphyBookmarkActionPrivate));
 }


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