[geany/geany] 203644: plugins: refactor GtkListStore population code into separate function

Thomas Martitz git-noreply at xxxxx
Mon Oct 5 20:11:12 UTC 2015


Branch:      refs/heads/master
Author:      Thomas Martitz <kugel at rockbox.org>
Committer:   Thomas Martitz <kugel at rockbox.org>
Date:        Mon, 05 Oct 2015 20:11:12 UTC
Commit:      203644a23397a0f4bca56eff820bac547208561b
             https://github.com/geany/geany/commit/203644a23397a0f4bca56eff820bac547208561b

Log Message:
-----------
plugins: refactor GtkListStore population code into separate function


Modified Paths:
--------------
    src/plugins.c

Modified: src/plugins.c
57 lines changed, 33 insertions(+), 24 deletions(-)
===================================================================
@@ -1278,6 +1278,9 @@ static void pm_selection_changed(GtkTreeSelection *selection, gpointer user_data
 }
 
 
+static void pm_populate(GtkListStore *store);
+
+
 static void pm_plugin_toggled(GtkCellRendererToggle *cell, gchar *pth, gpointer data)
 {
 	gboolean old_state, state;
@@ -1339,6 +1342,33 @@ static void pm_plugin_toggled(GtkCellRendererToggle *cell, gchar *pth, gpointer
 	g_free(file_name);
 }
 
+static void pm_populate(GtkListStore *store)
+{
+	GtkTreeIter iter;
+	GList *list;
+
+	gtk_list_store_clear(store);
+	list = g_list_first(plugin_list);
+	if (list == NULL)
+	{
+		gtk_list_store_append(store, &iter);
+		gtk_list_store_set(store, &iter, PLUGIN_COLUMN_CHECK, FALSE,
+				PLUGIN_COLUMN_PLUGIN, NULL, -1);
+	}
+	else
+	{
+		for (; list != NULL; list = list->next)
+		{
+			Plugin *p = list->data;
+
+			gtk_list_store_append(store, &iter);
+			gtk_list_store_set(store, &iter,
+				PLUGIN_COLUMN_CHECK, is_active_plugin(p),
+				PLUGIN_COLUMN_PLUGIN, p,
+				-1);
+		}
+	}
+}
 
 static gboolean pm_treeview_query_tooltip(GtkWidget *widget, gint x, gint y,
 		gboolean keyboard_mode, GtkTooltip *tooltip, gpointer user_data)
@@ -1504,8 +1534,6 @@ static void pm_prepare_treeview(GtkWidget *tree, GtkListStore *store)
 	GtkCellRenderer *text_renderer, *checkbox_renderer;
 	GtkTreeViewColumn *column;
 	GtkTreeModel *filter_model;
-	GtkTreeIter iter;
-	GList *list;
 	GtkTreeSelection *sel;
 
 	g_signal_connect(tree, "query-tooltip", G_CALLBACK(pm_treeview_query_tooltip), NULL);
@@ -1539,27 +1567,6 @@ static void pm_prepare_treeview(GtkWidget *tree, GtkListStore *store)
 
 	g_signal_connect(tree, "button-press-event", G_CALLBACK(pm_treeview_button_press_cb), NULL);
 
-	list = g_list_first(plugin_list);
-	if (list == NULL)
-	{
-		gtk_list_store_append(store, &iter);
-		gtk_list_store_set(store, &iter, PLUGIN_COLUMN_CHECK, FALSE,
-				PLUGIN_COLUMN_PLUGIN, NULL, -1);
-	}
-	else
-	{
-		Plugin *p;
-		for (; list != NULL; list = list->next)
-		{
-			p = list->data;
-
-			gtk_list_store_append(store, &iter);
-			gtk_list_store_set(store, &iter,
-				PLUGIN_COLUMN_CHECK, is_active_plugin(p),
-				PLUGIN_COLUMN_PLUGIN, p,
-				-1);
-		}
-	}
 	/* filter */
 	filter_model = gtk_tree_model_filter_new(GTK_TREE_MODEL(store), NULL);
 	gtk_tree_model_filter_set_visible_func(
@@ -1567,8 +1574,9 @@ static void pm_prepare_treeview(GtkWidget *tree, GtkListStore *store)
 
 	/* set model to tree view */
 	gtk_tree_view_set_model(GTK_TREE_VIEW(tree), filter_model);
-	g_object_unref(store);
 	g_object_unref(filter_model);
+
+	pm_populate(store);
 }
 
 
@@ -1679,6 +1687,7 @@ static void pm_show_dialog(GtkMenuItem *menuitem, gpointer user_data)
 	pm_widgets.store = gtk_list_store_new(
 		PLUGIN_N_COLUMNS, G_TYPE_BOOLEAN, G_TYPE_POINTER);
 	pm_prepare_treeview(pm_widgets.tree, pm_widgets.store);
+	g_object_unref(pm_widgets.store);
 
 	swin = gtk_scrolled_window_new(NULL, NULL);
 	gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(swin),



--------------
This E-Mail was brought to you by github_commit_mail.py (Source: https://github.com/geany/infrastructure).


More information about the Commits mailing list