[gnome-control-center] search: Replace GObject boilerplace with G_DECLARE_TYPE



commit 880ac4a89d14fc53669482a1bede52f1d549b563
Author: Robert Ancell <robert ancell canonical com>
Date:   Tue May 29 11:49:42 2018 +1200

    search: Replace GObject boilerplace with G_DECLARE_TYPE

 panels/search/cc-search-locations-dialog.h |  11 +--
 panels/search/cc-search-panel.c            | 133 ++++++++++++++---------------
 panels/search/cc-search-panel.h            |  41 +--------
 3 files changed, 71 insertions(+), 114 deletions(-)
---
diff --git a/panels/search/cc-search-locations-dialog.h b/panels/search/cc-search-locations-dialog.h
index 7aa489e34..26424d1d5 100644
--- a/panels/search/cc-search-locations-dialog.h
+++ b/panels/search/cc-search-locations-dialog.h
@@ -24,15 +24,10 @@
 #include "cc-search-panel.h"
 
 #define CC_SEARCH_LOCATIONS_DIALOG_TYPE (cc_search_locations_dialog_get_type ())
-#define CC_SEARCH_LOCATIONS_DIALOG(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), CC_SEARCH_LOCATIONS_DIALOG_TYPE, 
CcSearchLocationsDialog))
+G_DECLARE_FINAL_TYPE (CcSearchLocationsDialog, cc_search_locations_dialog, CC, SEARCH_LOCATIONS_DIALOG, 
GtkDialog)
 
-typedef struct _CcSearchLocationsDialog      CcSearchLocationsDialog;
-typedef struct _CcSearchLocationsDialogClass CcSearchLocationsDialogClass;
+CcSearchLocationsDialog *cc_search_locations_dialog_new (CcSearchPanel *panel);
 
-GType                    cc_search_locations_dialog_get_type   (void);
-
-CcSearchLocationsDialog *cc_search_locations_dialog_new        (CcSearchPanel *panel);
-
-gboolean cc_search_locations_dialog_is_available (void);
+gboolean cc_search_locations_dialog_is_available        (void);
 
 #endif /* _CC_SEARCH_LOCATIONS_DIALOG_H */
diff --git a/panels/search/cc-search-panel.c b/panels/search/cc-search-panel.c
index 7c5051ae2..96dc7541f 100644
--- a/panels/search/cc-search-panel.c
+++ b/panels/search/cc-search-panel.c
@@ -26,12 +26,12 @@
 #include <gio/gdesktopappinfo.h>
 #include <glib/gi18n.h>
 
-CC_PANEL_REGISTER (CcSearchPanel, cc_search_panel)
-
-#define WID(s) GTK_WIDGET (gtk_builder_get_object (self->priv->builder, s))
+#define WID(s) GTK_WIDGET (gtk_builder_get_object (self->builder, s))
 
-struct _CcSearchPanelPrivate
+struct _CcSearchPanel
 {
+  CcPanel     parent_instance;
+
   GtkBuilder *builder;
   GtkWidget  *list_box;
   GtkWidget  *up_button;
@@ -44,6 +44,8 @@ struct _CcSearchPanelPrivate
   CcSearchLocationsDialog  *locations_dialog;
 };
 
+CC_PANEL_REGISTER (CcSearchPanel, cc_search_panel)
+
 #define SHELL_PROVIDER_GROUP "Shell Search Provider"
 
 static gint
@@ -67,11 +69,11 @@ list_sort_func (gconstpointer a,
   idx_a = -1;
   idx_b = -1;
 
-  lookup = g_hash_table_lookup (self->priv->sort_order, id_a);
+  lookup = g_hash_table_lookup (self->sort_order, id_a);
   if (lookup)
     idx_a = GPOINTER_TO_INT (lookup) - 1;
 
-  lookup = g_hash_table_lookup (self->priv->sort_order, id_b);
+  lookup = g_hash_table_lookup (self->sort_order, id_b);
   if (lookup)
     idx_b = GPOINTER_TO_INT (lookup) - 1;
 
@@ -98,8 +100,8 @@ search_panel_invalidate_button_state (CcSearchPanel *self)
   gboolean is_first, is_last;
   GtkListBoxRow *row;
 
-  row = gtk_list_box_get_selected_row (GTK_LIST_BOX (self->priv->list_box));
-  children = gtk_container_get_children (GTK_CONTAINER (self->priv->list_box));
+  row = gtk_list_box_get_selected_row (GTK_LIST_BOX (self->list_box));
+  children = gtk_container_get_children (GTK_CONTAINER (self->list_box));
 
   if (!row || !children)
     return;
@@ -107,8 +109,8 @@ search_panel_invalidate_button_state (CcSearchPanel *self)
   is_first = (row == g_list_first (children)->data);
   is_last = (row == g_list_last (children)->data);
 
-  gtk_widget_set_sensitive (self->priv->up_button, !is_first);
-  gtk_widget_set_sensitive (self->priv->down_button, !is_last);
+  gtk_widget_set_sensitive (self->up_button, !is_first);
+  gtk_widget_set_sensitive (self->down_button, !is_last);
 
   g_list_free (children);
 }
@@ -119,13 +121,13 @@ search_panel_invalidate_sort_order (CcSearchPanel *self)
   gchar **sort_order;
   gint idx;
 
-  g_hash_table_remove_all (self->priv->sort_order);
-  sort_order = g_settings_get_strv (self->priv->search_settings, "sort-order");
+  g_hash_table_remove_all (self->sort_order);
+  sort_order = g_settings_get_strv (self->search_settings, "sort-order");
 
   for (idx = 0; sort_order[idx] != NULL; idx++)
-    g_hash_table_insert (self->priv->sort_order, g_strdup (sort_order[idx]), GINT_TO_POINTER (idx + 1));
+    g_hash_table_insert (self->sort_order, g_strdup (sort_order[idx]), GINT_TO_POINTER (idx + 1));
 
-  gtk_list_box_invalidate_sort (GTK_LIST_BOX (self->priv->list_box));
+  gtk_list_box_invalidate_sort (GTK_LIST_BOX (self->list_box));
   g_strfreev (sort_order);
 
   search_panel_invalidate_button_state (self);
@@ -140,8 +142,8 @@ propagate_compare_func (gconstpointer a,
   const gchar *key_a = a, *key_b = b;
   gint idx_a, idx_b;
 
-  idx_a = GPOINTER_TO_INT (g_hash_table_lookup (self->priv->sort_order, key_a));
-  idx_b = GPOINTER_TO_INT (g_hash_table_lookup (self->priv->sort_order, key_b));
+  idx_a = GPOINTER_TO_INT (g_hash_table_lookup (self->sort_order, key_a));
+  idx_b = GPOINTER_TO_INT (g_hash_table_lookup (self->sort_order, key_b));
 
   return (idx_a - idx_b);
 }
@@ -153,14 +155,14 @@ search_panel_propagate_sort_order (CcSearchPanel *self)
   GPtrArray *sort_order;
 
   sort_order = g_ptr_array_new ();
-  keys = g_hash_table_get_keys (self->priv->sort_order);
+  keys = g_hash_table_get_keys (self->sort_order);
   keys = g_list_sort_with_data (keys, propagate_compare_func, self);
 
   for (l = keys; l != NULL; l = l->next)
     g_ptr_array_add (sort_order, l->data);
 
   g_ptr_array_add (sort_order, NULL);
-  g_settings_set_strv (self->priv->search_settings, "sort-order",
+  g_settings_set_strv (self->search_settings, "sort-order",
                        (const gchar **) sort_order->pdata);
 
   g_ptr_array_unref (sort_order);
@@ -173,12 +175,12 @@ search_panel_set_no_providers (CcSearchPanel *self)
   GtkWidget *w;
 
   /* center the list box in the scrolled window */
-  gtk_widget_set_valign (self->priv->list_box, GTK_ALIGN_CENTER);
+  gtk_widget_set_valign (self->list_box, GTK_ALIGN_CENTER);
 
   w = gtk_label_new (_("No applications found"));
   gtk_widget_show (w);
 
-  gtk_container_add (GTK_CONTAINER (self->priv->list_box), w);
+  gtk_container_add (GTK_CONTAINER (self->list_box), w);
 }
 
 static void
@@ -194,11 +196,11 @@ search_panel_move_selected (CcSearchPanel *self,
   gboolean found;
   GList *children, *l, *other;
 
-  row = gtk_list_box_get_selected_row (GTK_LIST_BOX (self->priv->list_box));
+  row = gtk_list_box_get_selected_row (GTK_LIST_BOX (self->list_box));
   app_info = g_object_get_data (G_OBJECT (row), "app-info");
   app_id = g_app_info_get_id (app_info);
 
-  children = gtk_container_get_children (GTK_CONTAINER (self->priv->list_box));
+  children = gtk_container_get_children (GTK_CONTAINER (self->list_box));
 
   /* The assertions are valid only as long as we don't move the first
      or the last item. */
@@ -223,7 +225,7 @@ search_panel_move_selected (CcSearchPanel *self,
      one we want to move, if moving up, or the neighbor, if moving down.
   */
   last_good_app = target_app = app_id;
-  found = g_hash_table_lookup_extended (self->priv->sort_order, last_good_app, NULL, &idx_ptr);
+  found = g_hash_table_lookup_extended (self->sort_order, last_good_app, NULL, &idx_ptr);
   while (!found)
     {
       GAppInfo *tmp;
@@ -240,7 +242,7 @@ search_panel_move_selected (CcSearchPanel *self,
       tmp_id = g_app_info_get_id (tmp);
 
       last_good_app = tmp_id;
-      found = g_hash_table_lookup_extended (self->priv->sort_order, tmp_id, NULL, &idx_ptr);
+      found = g_hash_table_lookup_extended (self->sort_order, tmp_id, NULL, &idx_ptr);
     }
 
   /* For simplicity's sake, set all sort orders to the previously visible state
@@ -272,18 +274,18 @@ search_panel_move_selected (CcSearchPanel *self,
       tmp = g_object_get_data (G_OBJECT (l->data), "app-info");
       tmp_id = g_app_info_get_id (tmp);
 
-      g_hash_table_replace (self->priv->sort_order, g_strdup (tmp_id), GINT_TO_POINTER (idx));
+      g_hash_table_replace (self->sort_order, g_strdup (tmp_id), GINT_TO_POINTER (idx));
 
       l = g_list_next (l);
       idx++;
       last_good_app = tmp_id;
     }
 
-  other_idx = GPOINTER_TO_INT (g_hash_table_lookup (self->priv->sort_order, app_id));
+  other_idx = GPOINTER_TO_INT (g_hash_table_lookup (self->sort_order, app_id));
   idx = down ? (other_idx + 1) : (other_idx - 1);
 
-  g_hash_table_replace (self->priv->sort_order, g_strdup (other_app_id), GINT_TO_POINTER (other_idx));
-  g_hash_table_replace (self->priv->sort_order, g_strdup (app_id), GINT_TO_POINTER (idx));
+  g_hash_table_replace (self->sort_order, g_strdup (other_app_id), GINT_TO_POINTER (other_idx));
+  g_hash_table_replace (self->sort_order, g_strdup (app_id), GINT_TO_POINTER (idx));
 
   search_panel_propagate_sort_order (self);
 
@@ -310,14 +312,14 @@ settings_button_clicked (GtkWidget *widget,
 {
   CcSearchPanel *self = user_data;
 
-  if (self->priv->locations_dialog == NULL)
+  if (self->locations_dialog == NULL)
     {
-      self->priv->locations_dialog = cc_search_locations_dialog_new (self);
-      g_object_add_weak_pointer (G_OBJECT (self->priv->locations_dialog),
-                                 (gpointer *) &self->priv->locations_dialog);
+      self->locations_dialog = cc_search_locations_dialog_new (self);
+      g_object_add_weak_pointer (G_OBJECT (self->locations_dialog),
+                                 (gpointer *) &self->locations_dialog);
     }
 
-  gtk_window_present (GTK_WINDOW (self->priv->locations_dialog));
+  gtk_window_present (GTK_WINDOW (self->locations_dialog));
 }
 
 static GVariant *
@@ -337,7 +339,7 @@ switch_settings_mapping_set_generic (const GValue *value,
   remove = !!g_value_get_boolean (value) == !!default_enabled;
   found = FALSE;
   new_apps = g_ptr_array_new_with_free_func (g_free);
-  apps = g_settings_get_strv (self->priv->search_settings,
+  apps = g_settings_get_strv (self->search_settings,
                               default_enabled ? "disabled" : "enabled");
 
   for (idx = 0; apps[idx] != NULL; idx++)
@@ -446,7 +448,7 @@ search_panel_add_one_app_info (CcSearchPanel *self,
     return;
 
   /* reset valignment of the list box */
-  gtk_widget_set_valign (self->priv->list_box, GTK_ALIGN_FILL);
+  gtk_widget_set_valign (self->list_box, GTK_ALIGN_FILL);
 
   row = gtk_list_box_row_new ();
   box = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 10);
@@ -456,7 +458,7 @@ search_panel_add_one_app_info (CcSearchPanel *self,
   g_object_set_data_full (G_OBJECT (row), "app-info",
                           g_object_ref (app_info), g_object_unref);
   g_object_set_data (G_OBJECT (row), "self", self);
-  gtk_container_add (GTK_CONTAINER (self->priv->list_box), row);
+  gtk_container_add (GTK_CONTAINER (self->list_box), row);
 
   icon = g_app_info_get_icon (app_info);
   if (icon == NULL)
@@ -479,7 +481,7 @@ search_panel_add_one_app_info (CcSearchPanel *self,
 
   if (default_enabled)
     {
-      g_settings_bind_with_mapping (self->priv->search_settings, "disabled",
+      g_settings_bind_with_mapping (self->search_settings, "disabled",
                                     w, "active",
                                     G_SETTINGS_BIND_DEFAULT,
                                     switch_settings_mapping_get_default_enabled,
@@ -488,7 +490,7 @@ search_panel_add_one_app_info (CcSearchPanel *self,
     }
   else
     {
-      g_settings_bind_with_mapping (self->priv->search_settings, "enabled",
+      g_settings_bind_with_mapping (self->search_settings, "enabled",
                                     w, "active",
                                     G_SETTINGS_BIND_DEFAULT,
                                     switch_settings_mapping_get_default_disabled,
@@ -576,7 +578,7 @@ search_providers_discover_ready (GObject *source,
       return;
     }
 
-  g_clear_object (&self->priv->load_cancellable);
+  g_clear_object (&self->load_cancellable);
 
   if (providers == NULL)
     {
@@ -682,8 +684,8 @@ populate_search_providers (CcSearchPanel *self)
 {
   GTask *task;
 
-  self->priv->load_cancellable = g_cancellable_new ();
-  task = g_task_new (self, self->priv->load_cancellable,
+  self->load_cancellable = g_cancellable_new ();
+  task = g_task_new (self, self->load_cancellable,
                      search_providers_discover_ready, self);
   g_task_run_in_thread (task, search_providers_discover_thread);
   g_object_unref (task);
@@ -692,11 +694,11 @@ populate_search_providers (CcSearchPanel *self)
 static void
 cc_search_panel_dispose (GObject *object)
 {
-  CcSearchPanelPrivate *priv = CC_SEARCH_PANEL (object)->priv;
+  CcSearchPanel *self = CC_SEARCH_PANEL (object);
 
-  if (priv->load_cancellable != NULL)
-    g_cancellable_cancel (priv->load_cancellable);
-  g_clear_object (&priv->load_cancellable);
+  if (self->load_cancellable != NULL)
+    g_cancellable_cancel (self->load_cancellable);
+  g_clear_object (&self->load_cancellable);
 
   G_OBJECT_CLASS (cc_search_panel_parent_class)->dispose (object);
 }
@@ -704,14 +706,14 @@ cc_search_panel_dispose (GObject *object)
 static void
 cc_search_panel_finalize (GObject *object)
 {
-  CcSearchPanelPrivate *priv = CC_SEARCH_PANEL (object)->priv;
+  CcSearchPanel *self = CC_SEARCH_PANEL (object);
 
-  g_clear_object (&priv->builder);
-  g_clear_object (&priv->search_settings);
-  g_hash_table_destroy (priv->sort_order);
+  g_clear_object (&self->builder);
+  g_clear_object (&self->search_settings);
+  g_hash_table_destroy (self->sort_order);
 
-  if (priv->locations_dialog)
-    gtk_widget_destroy (GTK_WIDGET (priv->locations_dialog));
+  if (self->locations_dialog)
+    gtk_widget_destroy (GTK_WIDGET (self->locations_dialog));
 
   G_OBJECT_CLASS (cc_search_panel_parent_class)->finalize (object);
 }
@@ -732,7 +734,7 @@ cc_search_panel_constructed (GObject *object)
   gtk_widget_set_valign (widget, GTK_ALIGN_CENTER);
   gtk_box_pack_start (GTK_BOX (box), widget, FALSE, FALSE, 4);
 
-  g_settings_bind (self->priv->search_settings, "disable-external",
+  g_settings_bind (self->search_settings, "disable-external",
                    widget, "active",
                    G_SETTINGS_BIND_DEFAULT |
                    G_SETTINGS_BIND_INVERT_BOOLEAN);
@@ -754,13 +756,12 @@ cc_search_panel_init (CcSearchPanel *self)
   GtkWidget *frame;
   guint res;
 
-  self->priv = G_TYPE_INSTANCE_GET_PRIVATE (self, CC_TYPE_SEARCH_PANEL, CcSearchPanelPrivate);
   g_resources_register (cc_search_get_resource ());
 
-  self->priv->builder = gtk_builder_new ();
+  self->builder = gtk_builder_new ();
 
   error = NULL;
-  res = gtk_builder_add_from_resource (self->priv->builder,
+  res = gtk_builder_add_from_resource (self->builder,
                                        "/org/gnome/control-center/search/search.ui",
                                        &error);
 
@@ -778,31 +779,31 @@ cc_search_panel_init (CcSearchPanel *self)
                               (GtkListBoxSortFunc)list_sort_func, self, NULL);
   gtk_list_box_set_header_func (GTK_LIST_BOX (widget), cc_list_box_update_header_func, NULL, NULL);
   gtk_container_add (GTK_CONTAINER (frame), widget);
-  self->priv->list_box = widget;
+  self->list_box = widget;
   gtk_widget_show (widget);
 
   g_signal_connect_swapped (widget, "row-selected",
                             G_CALLBACK (search_panel_invalidate_button_state), self);
 
-  self->priv->up_button = WID ("up_button");
-  g_signal_connect (self->priv->up_button, "clicked",
+  self->up_button = WID ("up_button");
+  g_signal_connect (self->up_button, "clicked",
                     G_CALLBACK (up_button_clicked), self);
-  gtk_widget_set_sensitive (self->priv->up_button, FALSE);
+  gtk_widget_set_sensitive (self->up_button, FALSE);
 
-  self->priv->down_button = WID ("down_button");
-  g_signal_connect (self->priv->down_button, "clicked",
+  self->down_button = WID ("down_button");
+  g_signal_connect (self->down_button, "clicked",
                     G_CALLBACK (down_button_clicked), self);
-  gtk_widget_set_sensitive (self->priv->down_button, FALSE);
+  gtk_widget_set_sensitive (self->down_button, FALSE);
 
   widget = WID ("settings_button");
   g_signal_connect (widget, "clicked",
                     G_CALLBACK (settings_button_clicked), self);
   gtk_widget_set_sensitive (widget, cc_search_locations_dialog_is_available ());
 
-  self->priv->search_settings = g_settings_new ("org.gnome.desktop.search-providers");
-  self->priv->sort_order = g_hash_table_new_full (g_str_hash, g_str_equal,
+  self->search_settings = g_settings_new ("org.gnome.desktop.search-providers");
+  self->sort_order = g_hash_table_new_full (g_str_hash, g_str_equal,
                                                   g_free, NULL);
-  g_signal_connect_swapped (self->priv->search_settings, "changed::sort-order",
+  g_signal_connect_swapped (self->search_settings, "changed::sort-order",
                             G_CALLBACK (search_panel_invalidate_sort_order), self);
   search_panel_invalidate_sort_order (self);
 
@@ -820,6 +821,4 @@ cc_search_panel_class_init (CcSearchPanelClass *klass)
   oclass->constructed = cc_search_panel_constructed;
   oclass->dispose = cc_search_panel_dispose;
   oclass->finalize = cc_search_panel_finalize;
-
-  g_type_class_add_private (klass, sizeof (CcSearchPanelPrivate));
 }
diff --git a/panels/search/cc-search-panel.h b/panels/search/cc-search-panel.h
index 9a3ac0d18..39de4695c 100644
--- a/panels/search/cc-search-panel.h
+++ b/panels/search/cc-search-panel.h
@@ -25,45 +25,8 @@
 
 G_BEGIN_DECLS
 
-#define CC_TYPE_SEARCH_PANEL cc_search_panel_get_type()
-
-#define CC_SEARCH_PANEL(obj) \
-  (G_TYPE_CHECK_INSTANCE_CAST ((obj), \
-  CC_TYPE_SEARCH_PANEL, CcSearchPanel))
-
-#define CC_SEARCH_PANEL_CLASS(klass) \
-  (G_TYPE_CHECK_CLASS_CAST ((klass), \
-  CC_TYPE_SEARCH_PANEL, CcSearchPanelClass))
-
-#define CC_IS_SEARCH_PANEL(obj) \
-  (G_TYPE_CHECK_INSTANCE_TYPE ((obj), \
-  CC_TYPE_SEARCH_PANEL))
-
-#define CC_IS_SEARCH_PANEL_CLASS(klass) \
-  (G_TYPE_CHECK_CLASS_TYPE ((klass), \
-  CC_TYPE_SEARCH_PANEL))
-
-#define CC_SEARCH_PANEL_GET_CLASS(obj) \
-  (G_TYPE_INSTANCE_GET_CLASS ((obj), \
-  CC_TYPE_SEARCH_PANEL, CcSearchPanelClass))
-
-typedef struct _CcSearchPanel CcSearchPanel;
-typedef struct _CcSearchPanelClass CcSearchPanelClass;
-typedef struct _CcSearchPanelPrivate CcSearchPanelPrivate;
-
-struct _CcSearchPanel
-{
-  CcPanel parent;
-
-  CcSearchPanelPrivate *priv;
-};
-
-struct _CcSearchPanelClass
-{
-  CcPanelClass parent_class;
-};
-
-GType cc_search_panel_get_type (void) G_GNUC_CONST;
+#define CC_TYPE_SEARCH_PANEL (cc_search_panel_get_type ())
+G_DECLARE_FINAL_TYPE (CcSearchPanel, cc_search_panel, CC, SEARCH_PANEL, CcPanel)
 
 G_END_DECLS
 


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