[dconf-editor] Define list_model in RegistryList.



commit 838b6779ce304bc375193173fefa354536bf6432
Author: Arnaud Bonatti <arnaud bonatti gmail com>
Date:   Sun Feb 18 11:43:32 2018 +0100

    Define list_model in RegistryList.

 editor/browser-stack.vala   |   30 +++++++---------------
 editor/registry-search.vala |   50 +++++++++++++------------------------
 editor/registry-view.vala   |   56 +++++++++++++++++++-----------------------
 3 files changed, 53 insertions(+), 83 deletions(-)
---
diff --git a/editor/browser-stack.vala b/editor/browser-stack.vala
index 3064009..cc62a30 100644
--- a/editor/browser-stack.vala
+++ b/editor/browser-stack.vala
@@ -51,10 +51,8 @@ class BrowserStack : Grid
 
     public string get_selected_row_name ()
     {
-        if (current_view == ViewType.FOLDER)
-            return browse_view.get_selected_row_name ();
-        if (current_view == ViewType.SEARCH)
-            return search_results_view.get_selected_row_name ();
+        if (current_view != ViewType.OBJECT)
+            return ((RegistryList) stack.get_visible_child ()).get_selected_row_name ();
         return "";
     }
 
@@ -121,35 +119,27 @@ class BrowserStack : Grid
 
     public bool show_row_popover ()
     {
-        if (current_view == ViewType.FOLDER)
-            return browse_view.show_row_popover ();
-        if (current_view == ViewType.SEARCH)
-            return search_results_view.show_row_popover ();
+        if (current_view != ViewType.OBJECT)
+            return ((RegistryList) stack.get_visible_child ()).show_row_popover ();
         return false;
     }
 
     public void toggle_boolean_key ()
     {
-        if (current_view == ViewType.FOLDER)
-            browse_view.toggle_boolean_key ();
-        else if (current_view == ViewType.SEARCH)
-            search_results_view.toggle_boolean_key ();
+        if (current_view != ViewType.OBJECT)
+            ((RegistryList) stack.get_visible_child ()).toggle_boolean_key ();
     }
 
     public void set_selected_to_default ()
     {
-        if (current_view == ViewType.FOLDER)
-            browse_view.set_selected_to_default ();
-        else if (current_view == ViewType.SEARCH)
-            search_results_view.set_selected_to_default ();
+        if (current_view != ViewType.OBJECT)
+            ((RegistryList) stack.get_visible_child ()).set_selected_to_default ();
     }
 
     public void discard_row_popover ()
     {
-        if (current_view == ViewType.FOLDER)
-            browse_view.discard_row_popover ();
-        else if (current_view == ViewType.SEARCH)
-            search_results_view.discard_row_popover ();
+        if (current_view != ViewType.OBJECT)
+            ((RegistryList) stack.get_visible_child ()).discard_row_popover ();
     }
 
     public void invalidate_popovers ()
diff --git a/editor/registry-search.vala b/editor/registry-search.vala
index b530451..720c37e 100644
--- a/editor/registry-search.vala
+++ b/editor/registry-search.vala
@@ -25,8 +25,6 @@ class RegistrySearch : RegistryList
 
     public ModificationsHandler modifications_handler { private get; set; }
 
-    private GLib.ListStore search_results_model = new GLib.ListStore (typeof (SettingObject));
-
     construct
     {
         placeholder.label = _("No matches");
@@ -151,7 +149,7 @@ class RegistrySearch : RegistryList
     public bool up_or_down_pressed (bool is_down)
     {
         ListBoxRow? selected_row = key_list_box.get_selected_row ();
-        uint n_items = search_results_model.get_n_items ();
+        uint n_items = list_model.get_n_items ();
 
         if (selected_row != null)
         {
@@ -182,18 +180,6 @@ class RegistrySearch : RegistryList
         return false;
     }
 
-    public string get_selected_row_name ()
-    {
-        ListBoxRow? selected_row = key_list_box.get_selected_row ();
-        if (selected_row != null)
-        {
-            int position = ((!) selected_row).get_index ();
-            return ((SettingObject) ((!) search_results_model).get_object (position)).full_name;
-        }
-        else
-            return "";
-    }
-
     /*\
     * * Keyboard calls
     \*/
@@ -233,7 +219,7 @@ class RegistrySearch : RegistryList
     {
         key_list_box.bind_model (null, null);
         stop_global_search ();
-        search_results_model.remove_all ();
+        list_model.remove_all ();
         post_local = -1;
         post_bookmarks = -1;
         post_folders = -1;
@@ -267,13 +253,13 @@ class RegistrySearch : RegistryList
         else
         {
             stop_global_search ();
-            search_results_model.remove_all ();
+            list_model.remove_all ();
             post_local = -1;
             post_folders = -1;
 
             local_search (model, sorting_options, SettingsModel.get_base_path (current_path), term);
             bookmark_search (model, current_path, term, bookmarks);
-            key_list_box.bind_model (search_results_model, new_list_box_row);
+            key_list_box.bind_model (list_model, new_list_box_row);
 
             select_first_row ();
 
@@ -287,13 +273,13 @@ class RegistrySearch : RegistryList
     {
         for (int i = post_local - 1; i >= 0; i--)
         {
-            SettingObject item = (SettingObject) search_results_model.get_item (i);
+            SettingObject item = (SettingObject) list_model.get_item (i);
             if (!(term in item.name))
             {
                 post_local--;
                 post_bookmarks--;
                 post_folders--;
-                search_results_model.remove (i);
+                list_model.remove (i);
             }
         }
     }
@@ -302,31 +288,31 @@ class RegistrySearch : RegistryList
     {
         for (int i = post_bookmarks - 1; i >= post_local; i--)
         {
-            SettingObject item = (SettingObject) search_results_model.get_item (i);
+            SettingObject item = (SettingObject) list_model.get_item (i);
             if (!(term in item.name))
             {
                 post_bookmarks--;
                 post_folders--;
-                search_results_model.remove (i);
+                list_model.remove (i);
             }
         }
     }
 
     private void refine_global_results (string term)
     {
-        for (int i = (int) search_results_model.get_n_items () - 1; i >= post_folders; i--)
+        for (int i = (int) list_model.get_n_items () - 1; i >= post_folders; i--)
         {
-            SettingObject item = (SettingObject) search_results_model.get_item (i);
+            SettingObject item = (SettingObject) list_model.get_item (i);
             if (!(term in item.name))
-                search_results_model.remove (i);
+                list_model.remove (i);
         }
         for (int i = post_folders - 1; i >= post_local; i--)
         {
-            SettingObject item = (SettingObject) search_results_model.get_item (i);
+            SettingObject item = (SettingObject) list_model.get_item (i);
             if (!(term in item.name))
             {
                 post_folders--;
-                search_results_model.remove (i);
+                list_model.remove (i);
             }
         }
     }
@@ -343,10 +329,10 @@ class RegistrySearch : RegistryList
             {
                 SettingObject item = (SettingObject) ((!) key_model).get_item (i);
                 if (term in item.name)
-                    search_results_model.insert_sorted (item, compare);
+                    list_model.insert_sorted (item, compare);
             }
         }
-        post_local = (int) search_results_model.get_n_items ();
+        post_local = (int) list_model.get_n_items ();
         post_bookmarks = post_local;
         post_folders = post_local;
 
@@ -377,7 +363,7 @@ class RegistrySearch : RegistryList
             {
                 post_bookmarks++;
                 post_folders++;
-                search_results_model.insert (post_bookmarks - 1, (!) setting_object);
+                list_model.insert (post_bookmarks - 1, (!) setting_object);
             }
         }
 
@@ -432,13 +418,13 @@ class RegistrySearch : RegistryList
                 if (item is Directory)
                 {
                     if (!local_again && term in item.name)
-                        search_results_model.insert (post_folders++, item);
+                        list_model.insert (post_folders++, item);
                     search_nodes.push_tail ((Directory) item); // we still search local children
                 }
                 else
                 {
                     if (!local_again && term in item.name)
-                        search_results_model.append (item);
+                        list_model.append (item);
                 }
             }
 
diff --git a/editor/registry-view.vala b/editor/registry-view.vala
index 449552c..a9c3fd6 100644
--- a/editor/registry-view.vala
+++ b/editor/registry-view.vala
@@ -24,6 +24,8 @@ class RegistryList : Grid, BrowsableView
     [GtkChild] protected RegistryPlaceholder placeholder;
     [GtkChild] private ScrolledWindow scrolled;
 
+    protected GLib.ListStore list_model = new GLib.ListStore (typeof (SettingObject));
+
     protected GLib.ListStore rows_possibly_with_popover = new GLib.ListStore (typeof (ClickableListBoxRow));
 
     protected bool _small_keys_list_rows;
@@ -65,6 +67,18 @@ class RegistryList : Grid, BrowsableView
         rows_possibly_with_popover.remove_all ();
     }
 
+    public string get_selected_row_name ()
+    {
+        ListBoxRow? selected_row = key_list_box.get_selected_row ();
+        if (selected_row != null)
+        {
+            int position = ((!) selected_row).get_index ();
+            return ((SettingObject) list_model.get_object (position)).full_name;
+        }
+        else
+            return "";
+    }
+
     /*\
     * * Keyboard calls
     \*/
@@ -132,8 +146,6 @@ class RegistryList : Grid, BrowsableView
 
 class RegistryView : RegistryList
 {
-    private GLib.ListStore? key_model = null;
-
     public ModificationsHandler modifications_handler { private get; set; }
 
     construct
@@ -146,23 +158,21 @@ class RegistryView : RegistryList
     * * Updating
     \*/
 
-    public void set_key_model (GLib.ListStore _key_model)
+    public void set_key_model (GLib.ListStore key_model)
     {
-        key_model = _key_model;
-        key_list_box.bind_model (key_model, new_list_box_row);
+        list_model = key_model;
+        key_list_box.bind_model (list_model, new_list_box_row);
     }
 
     public bool check_reload (GLib.ListStore fresh_key_model)
     {
-        if (key_model == null) // should not happen?
-            return true;
-        if (((!) key_model).get_n_items () != fresh_key_model.get_n_items ())
+        if (list_model.get_n_items () != fresh_key_model.get_n_items ())
             return true;
-        for (uint i = 0; i < ((!) key_model).get_n_items (); i++)
+        for (uint i = 0; i < list_model.get_n_items (); i++)
         {
-            SettingObject setting_object = (SettingObject) ((!) key_model).get_item (i);
+            SettingObject setting_object = (SettingObject) list_model.get_item (i);
             bool found = false;
-            for (uint j = 0; j < ((!) fresh_key_model).get_n_items (); j++)
+            for (uint j = 0; j < fresh_key_model.get_n_items (); j++)
             {
                 SettingObject fresh_setting_object = (SettingObject) fresh_key_model.get_item (j);
                 if (setting_object.get_type () != fresh_setting_object.get_type ())
@@ -177,7 +187,7 @@ class RegistryView : RegistryList
             if (!found)
                 return true;
         }
-        if (((!) fresh_key_model).get_n_items () > 0)
+        if (fresh_key_model.get_n_items () > 0)
             return true;
         return false;
     }
@@ -199,13 +209,12 @@ class RegistryView : RegistryList
             scroll_to_row ((!) row, grab_focus);
     }
     private int get_row_position (string selected, string context)
-        requires (key_model != null)
     {
         uint position = 0;
         uint fallback = 0;
-        while (position < ((!) key_model).get_n_items ())
+        while (position < list_model.get_n_items ())
         {
-            SettingObject object = (SettingObject) ((!) key_model).get_object (position);
+            SettingObject object = (SettingObject) list_model.get_object (position);
             if (object.full_name == selected)
             {
                 if (object is Directory
@@ -320,11 +329,8 @@ class RegistryView : RegistryList
 
     public bool up_or_down_pressed (bool is_down)
     {
-        if (key_model == null)
-            return false;
-
         ListBoxRow? selected_row = key_list_box.get_selected_row ();
-        uint n_items = ((!) key_model).get_n_items ();
+        uint n_items = list_model.get_n_items ();
 
         if (selected_row != null)
         {
@@ -351,16 +357,4 @@ class RegistryView : RegistryList
         }
         return false;
     }
-
-    public string get_selected_row_name ()
-    {
-        ListBoxRow? selected_row = key_list_box.get_selected_row ();
-        if (selected_row != null)
-        {
-            int position = ((!) selected_row).get_index ();
-            return ((SettingObject) ((!) key_model).get_object (position)).full_name;
-        }
-        else
-            return "";
-    }
 }


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