diff options
author | Yash Singh <yashdev10p@gmail.com> | 2017-02-01 19:17:20 +0530 |
---|---|---|
committer | Ernestas Kulik <ernestask@src.gnome.org> | 2017-02-15 11:15:09 +0200 |
commit | ca169977dc4bdf0606bb815e3ae517cb36d78ab3 (patch) | |
tree | 75e04bdacaeabe2aea1375c7938e735546aa673c | |
parent | 24c0222e809f02a39f244566cc3f79212e7d1552 (diff) | |
download | nautilus-ca169977dc4bdf0606bb815e3ae517cb36d78ab3.tar.gz |
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
-rw-r--r-- | src/nautilus-column-chooser.c | 139 | ||||
-rw-r--r-- | 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 bb3bb8bf6..24a77386e 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 371379e7c..8a1b5df88 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, |