[gnome-system-monitor] Save sort column and order when they change



commit 5b836afa87a27691f008a26bba9e3829d2b31be6
Author: Stefano Facchini <stefano facchini gmail com>
Date:   Wed Jul 31 12:02:32 2013 +0200

    Save sort column and order when they change
    
    Instead of doing that at shutdown and delaying exit
    
    https://bugzilla.gnome.org/show_bug.cgi?id=649398

 src/procman-app.cpp |    3 ---
 src/proctable.cpp   |   28 +++++++++++++++++++++++-----
 2 files changed, 23 insertions(+), 8 deletions(-)
---
diff --git a/src/procman-app.cpp b/src/procman-app.cpp
index 706e72b..93614c0 100644
--- a/src/procman-app.cpp
+++ b/src/procman-app.cpp
@@ -507,9 +507,6 @@ procman_save_tree_state (GSettings *settings, GtkWidget *tree, const gchar *chil
 void
 ProcmanApp::save_config ()
 {
-    procman_save_tree_state (settings, tree, "proctree");
-    procman_save_tree_state (settings, disk_list, "disktreenew");
-
     config.width  = gdk_window_get_width (gtk_widget_get_window (main_window));
     config.height = gdk_window_get_height(gtk_widget_get_window (main_window));
     gtk_window_get_position(GTK_WINDOW(main_window), &config.xpos, &config.ypos);
diff --git a/src/proctable.cpp b/src/proctable.cpp
index 05f7368..8fa9741 100644
--- a/src/proctable.cpp
+++ b/src/proctable.cpp
@@ -84,6 +84,15 @@ cb_columns_changed(GtkTreeView *treeview, gpointer data)
                             "proctree");
 }
 
+static void
+cb_sort_changed (GtkTreeSortable *model, gpointer data)
+{
+    ProcmanApp *app = (ProcmanApp *) data;
+
+    procman_save_tree_state (app->settings,
+                             GTK_WIDGET (app->tree),
+                             "proctree");
+}
 
 static GtkTreeViewColumn*
 my_gtk_tree_view_get_column_with_sort_column_id(GtkTreeView *treeview, int id)
@@ -186,7 +195,13 @@ search_equal_func(GtkTreeModel *model,
 static void
 cb_proctree_destroying (GtkTreeView *self, gpointer data)
 {
-    g_signal_handlers_disconnect_by_func(self, (gpointer) cb_columns_changed, data);
+    g_signal_handlers_disconnect_by_func (self,
+                                          (gpointer) cb_columns_changed,
+                                          data);
+
+    g_signal_handlers_disconnect_by_func (gtk_tree_view_get_model (self),
+                                          (gpointer) cb_sort_changed,
+                                          data);
 }
 
 static gboolean
@@ -606,12 +621,15 @@ proctable_new (ProcmanApp * const app)
     g_signal_connect (G_OBJECT (proctree), "button_press_event",
                       G_CALLBACK (cb_tree_button_pressed), app);
 
-    g_signal_connect (G_OBJECT(proctree), "destroy",
-                      G_CALLBACK(cb_proctree_destroying),
+    g_signal_connect (G_OBJECT (proctree), "destroy",
+                      G_CALLBACK (cb_proctree_destroying),
                       app);
 
-    g_signal_connect (G_OBJECT(proctree), "columns-changed",
-                      G_CALLBACK(cb_columns_changed), app);
+    g_signal_connect (G_OBJECT (proctree), "columns-changed",
+                      G_CALLBACK (cb_columns_changed), app);
+
+    g_signal_connect (G_OBJECT (model), "sort-column-changed",
+                      G_CALLBACK (cb_sort_changed), app);
 
     gtk_widget_show (proctree);
 


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