[baobab/wip/valacharts] Charts: connect model signals



commit e98106b2b4b8fbc4e3164f8a5e032756693e4282
Author: Stefano Facchini <stefano facchini gmail com>
Date:   Tue Jun 11 13:44:55 2013 +0200

    Charts: connect model signals

 src/baobab-chart.vala |   30 ++++++++++++++++++++++++++----
 1 files changed, 26 insertions(+), 4 deletions(-)
---
diff --git a/src/baobab-chart.vala b/src/baobab-chart.vala
index 733ef93..3f82431 100644
--- a/src/baobab-chart.vala
+++ b/src/baobab-chart.vala
@@ -65,9 +65,15 @@ namespace Baobab {
                     return;
                 }
 
+                if (model_ != null) {
+                    disconnect_model_signals (model_);
+                }
+
                 model_ = value;
                 root = null;
 
+                connect_model_signals (model_);
+
                 queue_draw ();
             }
             get {
@@ -375,10 +381,10 @@ namespace Baobab {
             update_draw (path);
         }
 
-        void row_reordered (Gtk.TreeModel model,
-                            Gtk.TreePath path,
-                            Gtk.TreeIter iter,
-                            int new_order) {
+        void rows_reordered (Gtk.TreeModel model,
+                             Gtk.TreePath path,
+                             Gtk.TreeIter? iter,
+                             void *new_order) {
             model_changed = true;
             update_draw (path);
         }
@@ -557,5 +563,21 @@ namespace Baobab {
                 context_menu.popup (null, null, null, 0, Gtk.get_current_event_time ());
             }
         }
+
+        void connect_model_signals (Gtk.TreeModel m) {
+            m.row_changed.connect (row_changed);
+            m.row_inserted.connect (row_inserted);
+            m.row_has_child_toggled.connect (row_has_child_toggled);
+            m.row_deleted.connect (row_deleted);
+            m.rows_reordered.connect (rows_reordered);
+        }
+
+        void disconnect_model_signals (Gtk.TreeModel m) {
+            m.row_changed.disconnect (row_changed);
+            m.row_inserted.disconnect (row_inserted);
+            m.row_has_child_toggled.disconnect (row_has_child_toggled);
+            m.row_deleted.disconnect (row_deleted);
+            m.rows_reordered.disconnect (rows_reordered);
+        }
     }
 }
\ No newline at end of file


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