[nautilus] column-chooser: Port to G_DECLARE* type declaration



commit ca169977dc4bdf0606bb815e3ae517cb36d78ab3
Author: Yash Singh <yashdev10p gmail com>
Date:   Wed Feb 1 19:17:20 2017 +0530

    column-chooser: Port to G_DECLARE* type declaration
    
    Currently, the type declaration is done manually. This patch reduces the no. of macros being used and 
improves
    readability. It removes NautilusColumnChooserClass struct and changes the NautilusColumnChooser's type to
    final as there is no need for data-hiding here, and it is not being subclassed anywhere.
    
    https://bugzilla.gnome.org/show_bug.cgi?id=777609

 src/nautilus-column-chooser.c |  139 +++++++++++++++++++---------------------
 src/nautilus-column-chooser.h |   26 +-------
 2 files changed, 67 insertions(+), 98 deletions(-)
---
diff --git a/src/nautilus-column-chooser.c b/src/nautilus-column-chooser.c
index bb3bb8b..24a7738 100644
--- a/src/nautilus-column-chooser.c
+++ b/src/nautilus-column-chooser.c
@@ -28,8 +28,10 @@
 
 #include "nautilus-column-utilities.h"
 
-struct _NautilusColumnChooserDetails
+struct _NautilusColumnChooser
 {
+    GtkBox parent;
+
     GtkTreeView *view;
     GtkListStore *store;
 
@@ -64,7 +66,6 @@ enum
 };
 static guint signals[LAST_SIGNAL];
 
-
 G_DEFINE_TYPE (NautilusColumnChooser, nautilus_column_chooser, GTK_TYPE_BOX);
 
 static void nautilus_column_chooser_constructed (GObject *object);
@@ -83,7 +84,7 @@ nautilus_column_chooser_set_property (GObject      *object,
     {
         case PROP_FILE:
         {
-            chooser->details->file = g_value_get_object (value);
+            chooser->file = g_value_get_object (value);
         }
         break;
 
@@ -109,9 +110,7 @@ nautilus_column_chooser_class_init (NautilusColumnChooserClass *chooser_class)
                            ("changed",
                            G_TYPE_FROM_CLASS (chooser_class),
                            G_SIGNAL_RUN_LAST,
-                           G_STRUCT_OFFSET (NautilusColumnChooserClass,
-                                            changed),
-                           NULL, NULL,
+                           0, NULL, NULL,
                            g_cclosure_marshal_VOID__VOID,
                            G_TYPE_NONE, 0);
 
@@ -119,9 +118,7 @@ nautilus_column_chooser_class_init (NautilusColumnChooserClass *chooser_class)
                                ("use-default",
                                G_TYPE_FROM_CLASS (chooser_class),
                                G_SIGNAL_RUN_LAST,
-                               G_STRUCT_OFFSET (NautilusColumnChooserClass,
-                                                use_default),
-                               NULL, NULL,
+                               0, NULL, NULL,
                                g_cclosure_marshal_VOID__VOID,
                                G_TYPE_NONE, 0);
 
@@ -134,7 +131,6 @@ nautilus_column_chooser_class_init (NautilusColumnChooserClass *chooser_class)
                                                           G_PARAM_CONSTRUCT_ONLY |
                                                           G_PARAM_WRITABLE));
 
-    g_type_class_add_private (chooser_class, sizeof (NautilusColumnChooserDetails));
 }
 
 static void
@@ -143,7 +139,7 @@ update_buttons (NautilusColumnChooser *chooser)
     GtkTreeSelection *selection;
     GtkTreeIter iter;
 
-    selection = gtk_tree_view_get_selection (chooser->details->view);
+    selection = gtk_tree_view_get_selection (chooser->view);
 
     if (gtk_tree_selection_get_selected (selection, NULL, &iter))
     {
@@ -153,12 +149,12 @@ update_buttons (NautilusColumnChooser *chooser)
         GtkTreePath *first;
         GtkTreePath *path;
 
-        gtk_tree_model_get (GTK_TREE_MODEL (chooser->details->store),
+        gtk_tree_model_get (GTK_TREE_MODEL (chooser->store),
                             &iter,
                             COLUMN_VISIBLE, &visible,
                             -1);
 
-        path = gtk_tree_model_get_path (GTK_TREE_MODEL (chooser->details->store),
+        path = gtk_tree_model_get_path (GTK_TREE_MODEL (chooser->store),
                                         &iter);
         first = gtk_tree_path_new_first ();
 
@@ -167,19 +163,19 @@ update_buttons (NautilusColumnChooser *chooser)
         gtk_tree_path_free (path);
         gtk_tree_path_free (first);
 
-        bottom = !gtk_tree_model_iter_next (GTK_TREE_MODEL (chooser->details->store),
+        bottom = !gtk_tree_model_iter_next (GTK_TREE_MODEL (chooser->store),
                                             &iter);
 
-        gtk_widget_set_sensitive (chooser->details->move_up_button,
+        gtk_widget_set_sensitive (chooser->move_up_button,
                                   !top);
-        gtk_widget_set_sensitive (chooser->details->move_down_button,
+        gtk_widget_set_sensitive (chooser->move_down_button,
                                   !bottom);
     }
     else
     {
-        gtk_widget_set_sensitive (chooser->details->move_up_button,
+        gtk_widget_set_sensitive (chooser->move_up_button,
                                   FALSE);
-        gtk_widget_set_sensitive (chooser->details->move_down_button,
+        gtk_widget_set_sensitive (chooser->move_down_button,
                                   FALSE);
     }
 }
@@ -198,11 +194,11 @@ toggle_path (NautilusColumnChooser *chooser,
     GtkTreeIter iter;
     gboolean visible;
 
-    gtk_tree_model_get_iter (GTK_TREE_MODEL (chooser->details->store),
+    gtk_tree_model_get_iter (GTK_TREE_MODEL (chooser->store),
                              &iter, path);
-    gtk_tree_model_get (GTK_TREE_MODEL (chooser->details->store),
+    gtk_tree_model_get (GTK_TREE_MODEL (chooser->store),
                         &iter, COLUMN_VISIBLE, &visible, -1);
-    gtk_list_store_set (chooser->details->store,
+    gtk_list_store_set (chooser->store,
                         &iter, COLUMN_VISIBLE, !visible, -1);
     list_changed (chooser);
 }
@@ -301,8 +297,8 @@ add_tree_view (NautilusColumnChooser *chooser)
                                                  "sensitive", COLUMN_SENSITIVE,
                                                  NULL);
 
-    chooser->details->view = GTK_TREE_VIEW (view);
-    chooser->details->store = store;
+    chooser->view = GTK_TREE_VIEW (view);
+    chooser->store = store;
 
     gtk_widget_show (view);
 
@@ -315,7 +311,7 @@ add_tree_view (NautilusColumnChooser *chooser)
     gtk_widget_show (GTK_WIDGET (scrolled));
 
     gtk_container_add (GTK_CONTAINER (scrolled), view);
-    gtk_box_pack_start (GTK_BOX (chooser->details->main_box), scrolled, TRUE, TRUE, 0);
+    gtk_box_pack_start (GTK_BOX (chooser->main_box), scrolled, TRUE, TRUE, 0);
 }
 
 static void
@@ -328,18 +324,18 @@ move_up_clicked_callback (GtkWidget *button,
 
     chooser = NAUTILUS_COLUMN_CHOOSER (user_data);
 
-    selection = gtk_tree_view_get_selection (chooser->details->view);
+    selection = gtk_tree_view_get_selection (chooser->view);
 
     if (gtk_tree_selection_get_selected (selection, NULL, &iter))
     {
         GtkTreePath *path;
         GtkTreeIter prev;
 
-        path = gtk_tree_model_get_path (GTK_TREE_MODEL (chooser->details->store), &iter);
+        path = gtk_tree_model_get_path (GTK_TREE_MODEL (chooser->store), &iter);
         gtk_tree_path_prev (path);
-        if (gtk_tree_model_get_iter (GTK_TREE_MODEL (chooser->details->store), &prev, path))
+        if (gtk_tree_model_get_iter (GTK_TREE_MODEL (chooser->store), &prev, path))
         {
-            gtk_list_store_move_before (chooser->details->store,
+            gtk_list_store_move_before (chooser->store,
                                         &iter,
                                         &prev);
         }
@@ -359,7 +355,7 @@ move_down_clicked_callback (GtkWidget *button,
 
     chooser = NAUTILUS_COLUMN_CHOOSER (user_data);
 
-    selection = gtk_tree_view_get_selection (chooser->details->view);
+    selection = gtk_tree_view_get_selection (chooser->view);
 
     if (gtk_tree_selection_get_selected (selection, NULL, &iter))
     {
@@ -367,9 +363,9 @@ move_down_clicked_callback (GtkWidget *button,
 
         next = iter;
 
-        if (gtk_tree_model_iter_next (GTK_TREE_MODEL (chooser->details->store), &next))
+        if (gtk_tree_model_iter_next (GTK_TREE_MODEL (chooser->store), &next))
         {
-            gtk_list_store_move_after (chooser->details->store,
+            gtk_list_store_move_after (chooser->store,
                                        &iter,
                                        &next);
         }
@@ -399,7 +395,7 @@ add_buttons (NautilusColumnChooser *chooser)
 
     style_context = gtk_widget_get_style_context (GTK_WIDGET (inline_toolbar));
     gtk_style_context_add_class (style_context, GTK_STYLE_CLASS_INLINE_TOOLBAR);
-    gtk_box_pack_start (GTK_BOX (chooser->details->main_box), inline_toolbar,
+    gtk_box_pack_start (GTK_BOX (chooser->main_box), inline_toolbar,
                         FALSE, FALSE, 0);
 
     box = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0);
@@ -407,21 +403,21 @@ add_buttons (NautilusColumnChooser *chooser)
     gtk_container_add (GTK_CONTAINER (tool_item), box);
     gtk_container_add (GTK_CONTAINER (inline_toolbar), GTK_WIDGET (tool_item));
 
-    chooser->details->move_up_button = gtk_button_new_from_icon_name ("go-up-symbolic",
-                                                                      GTK_ICON_SIZE_SMALL_TOOLBAR);
-    g_signal_connect (chooser->details->move_up_button,
+    chooser->move_up_button = gtk_button_new_from_icon_name ("go-up-symbolic",
+                                                             GTK_ICON_SIZE_SMALL_TOOLBAR);
+    g_signal_connect (chooser->move_up_button,
                       "clicked", G_CALLBACK (move_up_clicked_callback),
                       chooser);
-    gtk_widget_set_sensitive (chooser->details->move_up_button, FALSE);
-    gtk_container_add (GTK_CONTAINER (box), chooser->details->move_up_button);
+    gtk_widget_set_sensitive (chooser->move_up_button, FALSE);
+    gtk_container_add (GTK_CONTAINER (box), chooser->move_up_button);
 
-    chooser->details->move_down_button = gtk_button_new_from_icon_name ("go-down-symbolic",
-                                                                        GTK_ICON_SIZE_SMALL_TOOLBAR);
-    g_signal_connect (chooser->details->move_down_button,
+    chooser->move_down_button = gtk_button_new_from_icon_name ("go-down-symbolic",
+                                                               GTK_ICON_SIZE_SMALL_TOOLBAR);
+    g_signal_connect (chooser->move_down_button,
                       "clicked", G_CALLBACK (move_down_clicked_callback),
                       chooser);
-    gtk_widget_set_sensitive (chooser->details->move_down_button, FALSE);
-    gtk_container_add (GTK_CONTAINER (box), chooser->details->move_down_button);
+    gtk_widget_set_sensitive (chooser->move_down_button, FALSE);
+    gtk_container_add (GTK_CONTAINER (box), chooser->move_down_button);
 
     tool_item = gtk_separator_tool_item_new ();
     gtk_separator_tool_item_set_draw (GTK_SEPARATOR_TOOL_ITEM (tool_item), FALSE);
@@ -433,13 +429,13 @@ add_buttons (NautilusColumnChooser *chooser)
     gtk_container_add (GTK_CONTAINER (tool_item), box);
     gtk_container_add (GTK_CONTAINER (inline_toolbar), GTK_WIDGET (tool_item));
 
-    chooser->details->use_default_button = gtk_button_new_with_mnemonic (_("Reset to De_fault"));
-    gtk_widget_set_tooltip_text (chooser->details->use_default_button,
+    chooser->use_default_button = gtk_button_new_with_mnemonic (_("Reset to De_fault"));
+    gtk_widget_set_tooltip_text (chooser->use_default_button,
                                  _("Replace the current List Columns settings with the default settings"));
-    g_signal_connect (chooser->details->use_default_button,
+    g_signal_connect (chooser->use_default_button,
                       "clicked", G_CALLBACK (use_default_clicked_callback),
                       chooser);
-    gtk_container_add (GTK_CONTAINER (box), chooser->details->use_default_button);
+    gtk_container_add (GTK_CONTAINER (box), chooser->use_default_button);
 
     gtk_widget_show_all (inline_toolbar);
 }
@@ -450,7 +446,7 @@ populate_tree (NautilusColumnChooser *chooser)
     GList *columns;
     GList *l;
 
-    columns = nautilus_get_columns_for_file (chooser->details->file);
+    columns = nautilus_get_columns_for_file (chooser->file);
 
     for (l = columns; l != NULL; l = l->next)
     {
@@ -473,8 +469,8 @@ populate_tree (NautilusColumnChooser *chooser)
             sensitive = FALSE;
         }
 
-        gtk_list_store_append (chooser->details->store, &iter);
-        gtk_list_store_set (chooser->details->store, &iter,
+        gtk_list_store_append (chooser->store, &iter);
+        gtk_list_store_set (chooser->store, &iter,
                             COLUMN_VISIBLE, visible,
                             COLUMN_LABEL, label,
                             COLUMN_NAME, name,
@@ -497,25 +493,23 @@ nautilus_column_chooser_constructed (GObject *object)
 
     populate_tree (chooser);
 
-    g_signal_connect (chooser->details->store, "row-deleted",
+    g_signal_connect (chooser->store, "row-deleted",
                       G_CALLBACK (row_deleted_callback), chooser);
 }
 
 static void
 nautilus_column_chooser_init (NautilusColumnChooser *chooser)
 {
-    chooser->details = G_TYPE_INSTANCE_GET_PRIVATE ((chooser), NAUTILUS_TYPE_COLUMN_CHOOSER, 
NautilusColumnChooserDetails);
-
     g_object_set (G_OBJECT (chooser),
                   "homogeneous", FALSE,
                   "spacing", 8,
                   "orientation", GTK_ORIENTATION_HORIZONTAL,
                   NULL);
 
-    chooser->details->main_box = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0);
-    gtk_widget_set_hexpand (chooser->details->main_box, TRUE);
-    gtk_widget_show (chooser->details->main_box);
-    gtk_container_add (GTK_CONTAINER (chooser), chooser->details->main_box);
+    chooser->main_box = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0);
+    gtk_widget_set_hexpand (chooser->main_box, TRUE);
+    gtk_widget_show (chooser->main_box);
+    gtk_container_add (GTK_CONTAINER (chooser), chooser->main_box);
 
     add_tree_view (chooser);
     add_buttons (chooser);
@@ -539,7 +533,7 @@ set_visible_columns (NautilusColumnChooser  *chooser,
                              visible_columns[i]);
     }
 
-    if (gtk_tree_model_get_iter_first (GTK_TREE_MODEL (chooser->details->store),
+    if (gtk_tree_model_get_iter_first (GTK_TREE_MODEL (chooser->store),
                                        &iter))
     {
         do
@@ -547,20 +541,20 @@ set_visible_columns (NautilusColumnChooser  *chooser,
             char *name;
             gboolean visible;
 
-            gtk_tree_model_get (GTK_TREE_MODEL (chooser->details->store),
+            gtk_tree_model_get (GTK_TREE_MODEL (chooser->store),
                                 &iter,
                                 COLUMN_NAME, &name,
                                 -1);
 
             visible = (g_hash_table_lookup (visible_columns_hash, name) != NULL);
 
-            gtk_list_store_set (chooser->details->store,
+            gtk_list_store_set (chooser->store,
                                 &iter,
                                 COLUMN_VISIBLE, visible,
                                 -1);
             g_free (name);
         }
-        while (gtk_tree_model_iter_next (GTK_TREE_MODEL (chooser->details->store), &iter));
+        while (gtk_tree_model_iter_next (GTK_TREE_MODEL (chooser->store), &iter));
     }
 
     g_hash_table_destroy (visible_columns_hash);
@@ -574,14 +568,14 @@ get_column_names (NautilusColumnChooser *chooser,
     GtkTreeIter iter;
 
     ret = g_ptr_array_new ();
-    if (gtk_tree_model_get_iter_first (GTK_TREE_MODEL (chooser->details->store),
+    if (gtk_tree_model_get_iter_first (GTK_TREE_MODEL (chooser->store),
                                        &iter))
     {
         do
         {
             char *name;
             gboolean visible;
-            gtk_tree_model_get (GTK_TREE_MODEL (chooser->details->store),
+            gtk_tree_model_get (GTK_TREE_MODEL (chooser->store),
                                 &iter,
                                 COLUMN_VISIBLE, &visible,
                                 COLUMN_NAME, &name,
@@ -596,7 +590,7 @@ get_column_names (NautilusColumnChooser *chooser,
                 g_free (name);
             }
         }
-        while (gtk_tree_model_iter_next (GTK_TREE_MODEL (chooser->details->store), &iter));
+        while (gtk_tree_model_iter_next (GTK_TREE_MODEL (chooser->store), &iter));
     }
     g_ptr_array_add (ret, NULL);
 
@@ -612,15 +606,14 @@ get_column_iter (NautilusColumnChooser *chooser,
 
     g_object_get (NAUTILUS_COLUMN (column), "name", &column_name, NULL);
 
-    if (gtk_tree_model_get_iter_first (GTK_TREE_MODEL (chooser->details->store),
+    if (gtk_tree_model_get_iter_first (GTK_TREE_MODEL (chooser->store),
                                        iter))
     {
         do
         {
             char *name;
 
-
-            gtk_tree_model_get (GTK_TREE_MODEL (chooser->details->store),
+            gtk_tree_model_get (GTK_TREE_MODEL (chooser->store),
                                 iter,
                                 COLUMN_NAME, &name,
                                 -1);
@@ -633,7 +626,7 @@ get_column_iter (NautilusColumnChooser *chooser,
 
             g_free (name);
         }
-        while (gtk_tree_model_iter_next (GTK_TREE_MODEL (chooser->details->store), iter));
+        while (gtk_tree_model_iter_next (GTK_TREE_MODEL (chooser->store), iter));
     }
     g_free (column_name);
     return FALSE;
@@ -647,10 +640,10 @@ set_column_order (NautilusColumnChooser  *chooser,
     GList *l;
     GtkTreePath *path;
 
-    columns = nautilus_get_columns_for_file (chooser->details->file);
+    columns = nautilus_get_columns_for_file (chooser->file);
     columns = nautilus_sort_columns (columns, column_order);
 
-    g_signal_handlers_block_by_func (chooser->details->store,
+    g_signal_handlers_block_by_func (chooser->store,
                                      G_CALLBACK (row_deleted_callback),
                                      chooser);
 
@@ -664,21 +657,21 @@ set_column_order (NautilusColumnChooser  *chooser,
             GtkTreeIter before;
             if (path)
             {
-                gtk_tree_model_get_iter (GTK_TREE_MODEL (chooser->details->store),
+                gtk_tree_model_get_iter (GTK_TREE_MODEL (chooser->store),
                                          &before, path);
-                gtk_list_store_move_after (chooser->details->store,
+                gtk_list_store_move_after (chooser->store,
                                            &iter, &before);
                 gtk_tree_path_next (path);
             }
             else
             {
-                gtk_list_store_move_after (chooser->details->store,
+                gtk_list_store_move_after (chooser->store,
                                            &iter, NULL);
             }
         }
     }
     gtk_tree_path_free (path);
-    g_signal_handlers_unblock_by_func (chooser->details->store,
+    g_signal_handlers_unblock_by_func (chooser->store,
                                        G_CALLBACK (row_deleted_callback),
                                        chooser);
 
diff --git a/src/nautilus-column-chooser.h b/src/nautilus-column-chooser.h
index 371379e..8a1b5df 100644
--- a/src/nautilus-column-chooser.h
+++ b/src/nautilus-column-chooser.h
@@ -27,33 +27,9 @@
 #include "nautilus-file.h"
 
 #define NAUTILUS_TYPE_COLUMN_CHOOSER nautilus_column_chooser_get_type()
-#define NAUTILUS_COLUMN_CHOOSER(obj) \
-  (G_TYPE_CHECK_INSTANCE_CAST ((obj), NAUTILUS_TYPE_COLUMN_CHOOSER, NautilusColumnChooser))
-#define NAUTILUS_COLUMN_CHOOSER_CLASS(klass) \
-  (G_TYPE_CHECK_CLASS_CAST ((klass), NAUTILUS_TYPE_COLUMN_CHOOSER, NautilusColumnChooserClass))
-#define NAUTILUS_IS_COLUMN_CHOOSER(obj) \
-  (G_TYPE_CHECK_INSTANCE_TYPE ((obj), NAUTILUS_TYPE_COLUMN_CHOOSER))
-#define NAUTILUS_IS_COLUMN_CHOOSER_CLASS(klass) \
-  (G_TYPE_CHECK_CLASS_TYPE ((klass), NAUTILUS_TYPE_COLUMN_CHOOSER))
-#define NAUTILUS_COLUMN_CHOOSER_GET_CLASS(obj) \
-  (G_TYPE_INSTANCE_GET_CLASS ((obj), NAUTILUS_TYPE_COLUMN_CHOOSER, NautilusColumnChooserClass))
 
-typedef struct _NautilusColumnChooserDetails NautilusColumnChooserDetails;
+G_DECLARE_FINAL_TYPE (NautilusColumnChooser, nautilus_column_chooser, NAUTILUS, COLUMN_CHOOSER, GtkBox);
 
-typedef struct {
-       GtkBox parent;
-       
-       NautilusColumnChooserDetails *details;
-} NautilusColumnChooser;
-
-typedef struct {
-        GtkBoxClass parent_slot;
-
-       void (*changed) (NautilusColumnChooser *chooser);
-       void (*use_default) (NautilusColumnChooser *chooser);
-} NautilusColumnChooserClass;
-
-GType      nautilus_column_chooser_get_type            (void);
 GtkWidget *nautilus_column_chooser_new                 (NautilusFile *file);
 void       nautilus_column_chooser_set_settings    (NautilusColumnChooser   *chooser,
                                                    char                   **visible_columns, 


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