[gnome-system-monitor] Show/hide columns by doubleclicking the row in preferences (bgo #703240)
- From: Robert Roth <robertroth src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-system-monitor] Show/hide columns by doubleclicking the row in preferences (bgo #703240)
- Date: Thu, 8 Aug 2013 19:33:36 +0000 (UTC)
commit 2e2076470bec6a24011b9f3c1b17e8c3143b3fc3
Author: Robert Roth <robert roth off gmail com>
Date: Thu Aug 8 22:33:05 2013 +0300
Show/hide columns by doubleclicking the row in preferences (bgo #703240)
src/prefsdialog.cpp | 24 ++++++++++++++++++------
1 files changed, 18 insertions(+), 6 deletions(-)
---
diff --git a/src/prefsdialog.cpp b/src/prefsdialog.cpp
index a649464..7ec155f 100644
--- a/src/prefsdialog.cpp
+++ b/src/prefsdialog.cpp
@@ -65,7 +65,7 @@ private:
};
static void
-field_toggled (const gchar *gsettings_parent, GtkCellRendererToggle *cell, gchar *path_str, gpointer data)
+field_toggled (const gchar *gsettings_parent, gchar *path_str, gpointer data)
{
GtkTreeModel *model = static_cast<GtkTreeModel*>(data);
GtkTreePath *path = gtk_tree_path_new_from_string (path_str);
@@ -82,8 +82,8 @@ field_toggled (const gchar *gsettings_parent, GtkCellRendererToggle *cell, gchar
gtk_tree_model_get_iter (model, &iter, path);
gtk_tree_model_get (model, &iter, 2, &column, -1);
- toggled = gtk_cell_renderer_toggle_get_active (cell);
+ gtk_tree_model_get (model, &iter, 0, &toggled, -1);
gtk_list_store_set (GTK_LIST_STORE (model), &iter, 0, !toggled, -1);
gtk_tree_view_column_set_visible (column, !toggled);
@@ -97,16 +97,26 @@ field_toggled (const gchar *gsettings_parent, GtkCellRendererToggle *cell, gchar
}
+static void
+field_row_activated ( GtkTreeView *tree, GtkTreePath *path,
+ GtkTreeViewColumn *column, gpointer data)
+{
+ GtkTreeModel * model = gtk_tree_view_get_model (tree);
+ gchar * path_str = gtk_tree_path_to_string (path);
+ field_toggled((gchar*)data, path_str, model );
+ g_free (path_str);
+}
+
static void
proc_field_toggled (GtkCellRendererToggle *cell, gchar *path_str, gpointer data)
{
- field_toggled("proctree", cell, path_str, data);
+ field_toggled("proctree", path_str, data);
}
static void
disk_field_toggled (GtkCellRendererToggle *cell, gchar *path_str, gpointer data)
{
- field_toggled("disktreenew", cell, path_str, data);
+ field_toggled("disktreenew", path_str, data);
}
static void
@@ -125,7 +135,7 @@ create_field_page(GtkBuilder* builder, GtkWidget *tree, const gchar *widgetname)
model = gtk_list_store_new (3, G_TYPE_BOOLEAN, G_TYPE_STRING, G_TYPE_POINTER);
- gtk_tree_view_set_model (GTK_TREE_VIEW(treeview), GTK_TREE_MODEL(model));
+ gtk_tree_view_set_model (GTK_TREE_VIEW (treeview), GTK_TREE_MODEL(model));
g_object_unref (G_OBJECT (model));
column = gtk_tree_view_column_new ();
@@ -139,7 +149,9 @@ create_field_page(GtkBuilder* builder, GtkWidget *tree, const gchar *widgetname)
g_signal_connect (G_OBJECT (cell), "toggled", G_CALLBACK (proc_field_toggled), model);
else if(!g_strcmp0(widgetname, "disktreenew"))
g_signal_connect (G_OBJECT (cell), "toggled", G_CALLBACK (disk_field_toggled), model);
-
+
+ g_signal_connect (G_OBJECT (GTK_TREE_VIEW (treeview)), "row-activated", G_CALLBACK
(field_row_activated), (gpointer)widgetname);
+
gtk_tree_view_column_set_clickable (column, TRUE);
gtk_tree_view_append_column (GTK_TREE_VIEW (treeview), column);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]