[dconf-editor] Move set_delayed_icon inside KeyListBoxRow



commit 678ff4b4289788d2a73e3ad00a28a0b5f1339dcd
Author: Davi da Silva Böger <dsboger gmail com>
Date:   Sun Dec 3 19:58:51 2017 -0200

    Move set_delayed_icon inside KeyListBoxRow

 editor/key-list-box-row.vala |   35 ++++++++++++++++++++++++++++++++++-
 editor/registry-search.vala  |   32 +-------------------------------
 editor/registry-view.vala    |   32 +-------------------------------
 3 files changed, 36 insertions(+), 63 deletions(-)
---
diff --git a/editor/key-list-box-row.vala b/editor/key-list-box-row.vala
index c9b3969..797b351 100644
--- a/editor/key-list-box-row.vala
+++ b/editor/key-list-box-row.vala
@@ -230,11 +230,19 @@ private abstract class KeyListBoxRow : ClickableListBoxRow
         update ();
         key_name_label.set_label (search_result_mode ? abstract_key.full_name : abstract_key.name);
 
+        ulong key_planned_change_handler = abstract_key.notify ["planned-change"].connect (() => 
set_delayed_icon ());
+        ulong key_planned_value_handler = abstract_key.notify ["planned-value"].connect (() => 
set_delayed_icon ());
+        set_delayed_icon ();
+
         ulong key_value_changed_handler = abstract_key.value_changed.connect (() => {
                 update ();
                 destroy_popover ();
             });
-        destroy.connect (() => abstract_key.disconnect (key_value_changed_handler));
+        destroy.connect (() => {
+                abstract_key.disconnect (key_planned_change_handler);
+                abstract_key.disconnect (key_planned_value_handler);
+                abstract_key.disconnect (key_value_changed_handler);
+            });
     }
     private abstract Key abstract_key { get; }
     protected abstract void update ();
@@ -245,6 +253,31 @@ private abstract class KeyListBoxRow : ClickableListBoxRow
             return;
         ((!) boolean_switch).set_active (!((!) boolean_switch).get_active ());
     }
+
+    private void set_delayed_icon ()
+    {
+        Key key = abstract_key;
+        StyleContext context = get_style_context ();
+        if (key.planned_change)
+        {
+            context.add_class ("delayed");
+            if (key is DConfKey)
+            {
+                if (key.planned_value == null)
+                    context.add_class ("erase");
+                else
+                    context.remove_class ("erase");
+            }
+        }
+        else
+        {
+            context.remove_class ("delayed");
+            if (key is DConfKey && ((DConfKey) key).is_ghost)
+                context.add_class ("erase");
+            else
+                context.remove_class ("erase");
+        }
+    }
 }
 
 private class KeyListBoxRowEditableNoSchema : KeyListBoxRow
diff --git a/editor/registry-search.vala b/editor/registry-search.vala
index 2a64c1a..ddbd944 100644
--- a/editor/registry-search.vala
+++ b/editor/registry-search.vala
@@ -161,18 +161,12 @@ class RegistrySearch : Grid, PathElement, BrowsableView
             key_row.small_keys_list_rows = _small_keys_list_rows;
 
             on_delete_call_handler = row.on_delete_call.connect (() => set_key_value (key, null));
-            ulong set_key_value_handler = key_row.set_key_value.connect ((variant) => { set_key_value (key, 
variant); set_delayed_icon (row, key); });
+            ulong set_key_value_handler = key_row.set_key_value.connect ((variant) => { set_key_value (key, 
variant); });
             ulong change_dismissed_handler = key_row.change_dismissed.connect (() => revealer.dismiss_change 
(key));
 
-            ulong key_planned_change_handler = key.notify ["planned-change"].connect (() => set_delayed_icon 
(row, key));
-            ulong key_planned_value_handler = key.notify ["planned-value"].connect (() => set_delayed_icon 
(row, key));
-            set_delayed_icon (row, key);
-
             row.destroy.connect (() => {
                     key_row.disconnect (set_key_value_handler);
                     key_row.disconnect (change_dismissed_handler);
-                    key.disconnect (key_planned_change_handler);
-                    key.disconnect (key_planned_value_handler);
                 });
         }
 
@@ -200,30 +194,6 @@ class RegistrySearch : Grid, PathElement, BrowsableView
         return wrapper;
     }
 
-    private void set_delayed_icon (ClickableListBoxRow row, Key key)
-    {
-        StyleContext context = row.get_style_context ();
-        if (key.planned_change)
-        {
-            context.add_class ("delayed");
-            if (key is DConfKey)
-            {
-                if (key.planned_value == null)
-                    context.add_class ("erase");
-                else
-                    context.remove_class ("erase");
-            }
-        }
-        else
-        {
-            context.remove_class ("delayed");
-            if (key is DConfKey && ((DConfKey) key).is_ghost)
-                context.add_class ("erase");
-            else
-                context.remove_class ("erase");
-        }
-    }
-
     private bool on_button_pressed (Widget widget, Gdk.EventButton event)
     {
         ListBoxRow list_box_row = (ListBoxRow) widget.get_parent ();
diff --git a/editor/registry-view.vala b/editor/registry-view.vala
index dabb988..fc117ac 100644
--- a/editor/registry-view.vala
+++ b/editor/registry-view.vala
@@ -154,18 +154,12 @@ class RegistryView : Grid, PathElement, BrowsableView
             key_row.small_keys_list_rows = _small_keys_list_rows;
 
             on_delete_call_handler = row.on_delete_call.connect (() => set_key_value (key, null));
-            ulong set_key_value_handler = key_row.set_key_value.connect ((variant) => { set_key_value (key, 
variant); set_delayed_icon (row, key); });
+            ulong set_key_value_handler = key_row.set_key_value.connect ((variant) => { set_key_value (key, 
variant); });
             ulong change_dismissed_handler = key_row.change_dismissed.connect (() => revealer.dismiss_change 
(key));
 
-            ulong key_planned_change_handler = key.notify ["planned-change"].connect (() => set_delayed_icon 
(row, key));
-            ulong key_planned_value_handler = key.notify ["planned-value"].connect (() => set_delayed_icon 
(row, key));
-            set_delayed_icon (row, key);
-
             row.destroy.connect (() => {
                     key_row.disconnect (set_key_value_handler);
                     key_row.disconnect (change_dismissed_handler);
-                    key.disconnect (key_planned_change_handler);
-                    key.disconnect (key_planned_value_handler);
                 });
         }
 
@@ -189,30 +183,6 @@ class RegistryView : Grid, PathElement, BrowsableView
         return wrapper;
     }
 
-    private void set_delayed_icon (ClickableListBoxRow row, Key key)
-    {
-        StyleContext context = row.get_style_context ();
-        if (key.planned_change)
-        {
-            context.add_class ("delayed");
-            if (key is DConfKey)
-            {
-                if (key.planned_value == null)
-                    context.add_class ("erase");
-                else
-                    context.remove_class ("erase");
-            }
-        }
-        else
-        {
-            context.remove_class ("delayed");
-            if (key is DConfKey && ((DConfKey) key).is_ghost)
-                context.add_class ("erase");
-            else
-                context.remove_class ("erase");
-        }
-    }
-
     private bool on_button_pressed (Widget widget, Gdk.EventButton event)
     {
         ListBoxRow list_box_row = (ListBoxRow) widget.get_parent ();


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