[gnome-system-monitor] Update tree_store_update versions with all templates to check for column visibility.



commit 03a241c3f76091d3ba7fc8251b86b36c44f03af9
Author: Robert Roth <robert roth off gmail com>
Date:   Tue Dec 11 02:46:10 2012 +0200

    Update tree_store_update versions with all templates
    to check for column visibility.

 src/util.cpp |   16 +++++++++-------
 src/util.h   |   10 +++++-----
 2 files changed, 14 insertions(+), 12 deletions(-)
---
diff --git a/src/util.cpp b/src/util.cpp
index 874ede4..bdecc53 100644
--- a/src/util.cpp
+++ b/src/util.cpp
@@ -579,16 +579,18 @@ namespace procman
     }
 
     template<>
-    void tree_store_update<const char>(GtkTreeModel* model, GtkTreeIter* iter, int column, const char* new_value)
+    void tree_store_update<const char>(GtkTreeView* tree, GtkTreeModel* model, GtkTreeIter* iter, int column, const char* new_value)
     {
-        char* current_value;
+        GtkTreeViewColumn* tree_column = gtk_tree_view_get_column(tree, column+1);
+        if (gtk_tree_view_column_get_visible(tree_column)) {
+            char* current_value;
 
-        gtk_tree_model_get(model, iter, column, &current_value, -1);
+            gtk_tree_model_get(model, iter, column, &current_value, -1);
 
-        if (g_strcmp0(current_value, new_value) != 0)
-            gtk_tree_store_set(GTK_TREE_STORE(model), iter, column, new_value, -1);
-
-        g_free(current_value);
+            if (g_strcmp0(current_value, new_value) != 0)
+                gtk_tree_store_set(GTK_TREE_STORE(model), iter, column, new_value, -1);
+            g_free(current_value);
+        }
     }
 
 
diff --git a/src/util.h b/src/util.h
index 07074f4..ab74c06 100644
--- a/src/util.h
+++ b/src/util.h
@@ -123,7 +123,7 @@ namespace procman
     template<typename T>
     void tree_store_update(GtkTreeView* tree, GtkTreeModel* model, GtkTreeIter* iter, int column, const T& new_value)
     {
-        GtkTreeViewColumn* tree_column = gtk_tree_view_get_column(tree, column);
+        GtkTreeViewColumn* tree_column = gtk_tree_view_get_column(tree, column+1);
         if (gtk_tree_view_column_get_visible(tree_column)) {
             T current_value;
 
@@ -138,16 +138,16 @@ namespace procman
     // catch every thing about pointers
     // just to make sure i'm not doing anything wrong
     template<typename T>
-    void tree_store_update(GtkTreeModel* model, GtkTreeIter* iter, int column, T* new_value);
+    void tree_store_update(GtkTreeView* tree, GtkTreeModel* model, GtkTreeIter* iter, int column, T* new_value);
 
     // specialized versions for strings
     template<>
-    void tree_store_update<const char>(GtkTreeModel* model, GtkTreeIter* iter, int column, const char* new_value);
+    void tree_store_update<const char>(GtkTreeView* tree, GtkTreeModel* model, GtkTreeIter* iter, int column, const char* new_value);
 
     template<>
-    inline void tree_store_update<char>(GtkTreeModel* model, GtkTreeIter* iter, int column, char* new_value)
+    inline void tree_store_update<char>(GtkTreeView* tree, GtkTreeModel* model, GtkTreeIter* iter, int column, char* new_value)
     {
-        tree_store_update<const char>(model, iter, column, new_value);
+        tree_store_update<const char>(tree, model, iter, column, new_value);
     }
 
     gchar* format_size(guint64 size, guint64 max = 0, bool want_bits = false);



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