[gnome-builder] project-tree: stop using Gtk filechooser setting for sort ordering



commit e56812f4594a925d6885c6f53e8b6fc9d82695aa
Author: Christian Hergert <chergert redhat com>
Date:   Wed Aug 2 01:30:09 2017 +0100

    project-tree: stop using Gtk filechooser setting for sort ordering
    
    We discussed at the BoF that we should just maintain our own setting for
    this, as the setting that comes from Gtk isn't going to make sense for
    our users.

 .../org.gnome.builder.project-tree.gschema.xml     |    5 +++++
 plugins/project-tree/gb-project-tree-actions.c     |   18 ++++++++----------
 plugins/project-tree/gb-project-tree-builder.c     |   11 +++++------
 3 files changed, 18 insertions(+), 16 deletions(-)
---
diff --git a/data/gsettings/org.gnome.builder.project-tree.gschema.xml 
b/data/gsettings/org.gnome.builder.project-tree.gschema.xml
index 4c8f686..80bc514 100644
--- a/data/gsettings/org.gnome.builder.project-tree.gschema.xml
+++ b/data/gsettings/org.gnome.builder.project-tree.gschema.xml
@@ -10,5 +10,10 @@
       <summary>Show Ignored Files</summary>
       <description>If enabled, the project tree will display files that are ignored by the VCS.</description>
     </key>
+    <key name="sort-directories-first" type="b">
+      <default>true</default>
+      <summary>Sort Directories First</summary>
+      <description>If enabled, the project tree will sort directories before regular files.</description>
+    </key>
   </schema>
 </schemalist>
diff --git a/plugins/project-tree/gb-project-tree-actions.c b/plugins/project-tree/gb-project-tree-actions.c
index 0dd1f8a..2bdefe3 100644
--- a/plugins/project-tree/gb-project-tree-actions.c
+++ b/plugins/project-tree/gb-project-tree-actions.c
@@ -832,28 +832,22 @@ static GActionEntry GbProjectTreeActions[] = {
 void
 gb_project_tree_actions_init (GbProjectTree *self)
 {
-  g_autoptr(GSettings) settings = NULL;
   g_autoptr(GSettings) tree_settings = NULL;
   g_autoptr(GSimpleActionGroup) actions = NULL;
   GAction *action;
 
   actions = g_simple_action_group_new ();
-
-  settings = g_settings_new ("org.gtk.Settings.FileChooser");
-  action = g_settings_create_action (settings, "sort-directories-first");
-  g_action_map_add_action (G_ACTION_MAP (actions), action);
-  g_clear_object (&action);
-
   g_action_map_add_action_entries (G_ACTION_MAP (actions),
                                    GbProjectTreeActions,
                                    G_N_ELEMENTS (GbProjectTreeActions),
                                    self);
-  gtk_widget_insert_action_group (GTK_WIDGET (self),
-                                  "project-tree",
-                                  G_ACTION_GROUP (actions));
 
   tree_settings = g_settings_new ("org.gnome.builder.project-tree");
 
+  action = g_settings_create_action (tree_settings, "sort-directories-first");
+  g_action_map_add_action (G_ACTION_MAP (actions), action);
+  g_clear_object (&action);
+
   action = g_settings_create_action (tree_settings, "show-ignored-files");
   g_action_map_add_action (G_ACTION_MAP (actions), action);
   g_clear_object (&action);
@@ -862,6 +856,10 @@ gb_project_tree_actions_init (GbProjectTree *self)
   g_action_map_add_action (G_ACTION_MAP (actions), action);
   g_clear_object (&action);
 
+  gtk_widget_insert_action_group (GTK_WIDGET (self),
+                                  "project-tree",
+                                  G_ACTION_GROUP (actions));
+
   gb_project_tree_actions_update (self);
 }
 
diff --git a/plugins/project-tree/gb-project-tree-builder.c b/plugins/project-tree/gb-project-tree-builder.c
index c6519aa..398ee10 100644
--- a/plugins/project-tree/gb-project-tree-builder.c
+++ b/plugins/project-tree/gb-project-tree-builder.c
@@ -27,7 +27,7 @@ struct _GbProjectTreeBuilder
 {
   DzlTreeBuilder  parent_instance;
 
-  GSettings      *file_chooser_settings;
+  GSettings      *settings;
 
   guint           sort_directories_first : 1;
 };
@@ -390,7 +390,7 @@ gb_project_tree_builder_finalize (GObject *object)
 {
   GbProjectTreeBuilder *self = (GbProjectTreeBuilder *)object;
 
-  g_clear_object (&self->file_chooser_settings);
+  g_clear_object (&self->settings);
 
   G_OBJECT_CLASS (gb_project_tree_builder_parent_class)->finalize (object);
 }
@@ -411,11 +411,10 @@ gb_project_tree_builder_class_init (GbProjectTreeBuilderClass *klass)
 static void
 gb_project_tree_builder_init (GbProjectTreeBuilder *self)
 {
-  self->file_chooser_settings = g_settings_new ("org.gtk.Settings.FileChooser");
-  self->sort_directories_first = g_settings_get_boolean (self->file_chooser_settings,
-                                                         "sort-directories-first");
+  self->settings = g_settings_new ("org.gnome.builder.project-tree");
+  self->sort_directories_first = g_settings_get_boolean (self->settings, "sort-directories-first");
 
-  g_signal_connect_object (self->file_chooser_settings,
+  g_signal_connect_object (self->settings,
                            "changed::sort-directories-first",
                            G_CALLBACK (gb_project_tree_builder_rebuild),
                            self,


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