[gnome-system-monitor] Save the sort column on the disks tree too



commit bcedd6ee0a33653bc18fc65c579084c214e36a05
Author: Robert Roth <robert roth off gmail com>
Date:   Thu Aug 1 06:00:57 2013 +0300

    Save the sort column on the disks tree too

 src/disks.cpp       |   15 +++++++++++++++
 src/procman-app.cpp |    8 ++------
 src/proctable.cpp   |    2 +-
 3 files changed, 18 insertions(+), 7 deletions(-)
---
diff --git a/src/disks.cpp b/src/disks.cpp
index 3df5e9e..d18242a 100644
--- a/src/disks.cpp
+++ b/src/disks.cpp
@@ -33,7 +33,15 @@ enum DiskColumns
     DISK_N_COLUMNS
 };
 
+static void
+cb_sort_changed (GtkTreeSortable *model, gpointer data)
+{
+    ProcmanApp *app = (ProcmanApp *) data;
 
+    procman_save_tree_state (app->settings,
+                             GTK_WIDGET (app->disk_list),
+                             "disktreenew");
+}
 
 static void
 fsusage_stats(const glibtop_fsusage *buf,
@@ -334,6 +342,10 @@ static void
 cb_disk_list_destroying (GtkWidget *self, gpointer data)
 {
     g_signal_handlers_disconnect_by_func(self, (gpointer) cb_disk_columns_changed, data);
+    
+    g_signal_handlers_disconnect_by_func (gtk_tree_view_get_model (GTK_TREE_VIEW(self)),
+                                          (gpointer) cb_sort_changed,
+                                          data);
 }
 
 void
@@ -468,5 +480,8 @@ create_disk_view(ProcmanApp *app, GtkBuilder *builder)
 
     g_signal_connect (G_OBJECT(disk_tree), "columns-changed",
                       G_CALLBACK(cb_disk_columns_changed), app);
+                      
+    g_signal_connect (G_OBJECT (model), "sort-column-changed",
+                      G_CALLBACK (cb_sort_changed), app);
     gtk_widget_show (disk_tree);
 }
diff --git a/src/procman-app.cpp b/src/procman-app.cpp
index 93614c0..561db0e 100644
--- a/src/procman-app.cpp
+++ b/src/procman-app.cpp
@@ -364,9 +364,7 @@ procman_get_tree_state (GSettings *settings, GtkWidget *tree, const gchar *child
 
     GSettings *pt_settings = g_settings_get_child (settings, child_schema);
     model = gtk_tree_view_get_model (GTK_TREE_VIEW (tree));
-    if (!g_strcmp0(child_schema, "proctree"))
-        model = gtk_tree_model_filter_get_model (GTK_TREE_MODEL_FILTER (gtk_tree_model_sort_get_model 
(GTK_TREE_MODEL_SORT (model))));
-
+    
     sort_col = g_settings_get_int (pt_settings, "sort-col");
 
     order = static_cast<GtkSortType>(g_settings_get_int (pt_settings, "sort-order"));
@@ -469,9 +467,7 @@ procman_save_tree_state (GSettings *settings, GtkWidget *tree, const gchar *chil
 
     GSettings *pt_settings = g_settings_get_child (settings, child_schema);
     model = gtk_tree_view_get_model (GTK_TREE_VIEW (tree));
-    if (!g_strcmp0(child_schema, "proctree")) 
-        model = gtk_tree_model_filter_get_model (GTK_TREE_MODEL_FILTER (gtk_tree_model_sort_get_model 
(GTK_TREE_MODEL_SORT (model))));
-        
+   
     if (gtk_tree_sortable_get_sort_column_id (GTK_TREE_SORTABLE (model), &sort_col,
                                               &order)) {
         g_settings_set_int (pt_settings, "sort-col", sort_col);
diff --git a/src/proctable.cpp b/src/proctable.cpp
index 1ba0b18..cea258d 100644
--- a/src/proctable.cpp
+++ b/src/proctable.cpp
@@ -629,7 +629,7 @@ proctable_new (ProcmanApp * const 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_signal_connect (G_OBJECT (model_sort), "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]