[gnome-builder] sidebar: add preference to toggle "Open Pages" section
- From: Christian Hergert <chergert src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-builder] sidebar: add preference to toggle "Open Pages" section
- Date: Tue, 14 Nov 2017 23:02:01 +0000 (UTC)
commit d0766e0f33febf8348ab25882f268735e984d204
Author: Christian Hergert <chergert redhat com>
Date: Tue Nov 14 15:01:29 2017 -0800
sidebar: add preference to toggle "Open Pages" section
This adds a new gsetting that can be used to toggle the visibility of the
open pages section in the sidebar.
data/gsettings/org.gnome.builder.gschema.xml | 5 +++
src/libide/editor/ide-editor-sidebar.c | 30 ++++++++++++++++++++++
src/libide/preferences/ide-preferences-builtin.c | 3 ++
3 files changed, 38 insertions(+), 0 deletions(-)
---
diff --git a/data/gsettings/org.gnome.builder.gschema.xml b/data/gsettings/org.gnome.builder.gschema.xml
index 03c653d..52b5ca7 100644
--- a/data/gsettings/org.gnome.builder.gschema.xml
+++ b/data/gsettings/org.gnome.builder.gschema.xml
@@ -30,5 +30,10 @@
<summary>Restore Previous Files</summary>
<description>Restore previously opened files when loading a project.</description>
</key>
+ <key name="show-open-files" type="b">
+ <default>true</default>
+ <summary>Show Open Files</summary>
+ <description>Display the open files list in the project sidebar.</description>
+ </key>
</schema>
</schemalist>
diff --git a/src/libide/editor/ide-editor-sidebar.c b/src/libide/editor/ide-editor-sidebar.c
index d9bcc9d..9898905 100644
--- a/src/libide/editor/ide-editor-sidebar.c
+++ b/src/libide/editor/ide-editor-sidebar.c
@@ -41,6 +41,9 @@ struct _IdeEditorSidebar
{
IdeLayoutPane parent_instance;
+ GSettings *settings;
+ GListModel *open_pages;
+
/* Template widgets */
GtkBox *box;
GtkStackSwitcher *stack_switcher;
@@ -143,6 +146,18 @@ ide_editor_sidebar_open_pages_items_changed (IdeEditorSidebar *self,
}
static void
+ide_editor_sidebar_changed_show_open_files (IdeEditorSidebar *self,
+ const gchar *key,
+ GSettings *settings)
+{
+ g_assert (IDE_IS_EDITOR_SIDEBAR (self));
+ g_assert (G_IS_SETTINGS (settings));
+
+ if (self->open_pages != NULL)
+ ide_editor_sidebar_open_pages_items_changed (self, 0, 0, 0, self->open_pages);
+}
+
+static void
ide_editor_sidebar_destroy (GtkWidget *widget)
{
IdeEditorSidebar *self = (IdeEditorSidebar *)widget;
@@ -150,6 +165,9 @@ ide_editor_sidebar_destroy (GtkWidget *widget)
if (self->open_pages_list_box != NULL)
gtk_list_box_bind_model (self->open_pages_list_box, NULL, NULL, NULL, NULL);
+ g_clear_object (&self->open_pages);
+ g_clear_object (&self->settings);
+
GTK_WIDGET_CLASS (ide_editor_sidebar_parent_class)->destroy (widget);
}
@@ -185,6 +203,16 @@ ide_editor_sidebar_init (IdeEditorSidebar *self)
"notify::visible-child",
G_CALLBACK (ide_editor_sidebar_stack_notify_visible_child),
self);
+
+ self->settings = g_settings_new ("org.gnome.builder");
+
+ g_signal_connect_object (self->settings,
+ "changed::show-open-files",
+ G_CALLBACK (ide_editor_sidebar_changed_show_open_files),
+ self,
+ G_CONNECT_SWAPPED);
+
+ ide_editor_sidebar_changed_show_open_files (self, NULL, self->settings);
}
/**
@@ -449,6 +477,8 @@ _ide_editor_sidebar_set_open_pages (IdeEditorSidebar *self,
g_return_if_fail (!open_pages ||
g_list_model_get_item_type (open_pages) == IDE_TYPE_LAYOUT_VIEW);
+ g_set_object (&self->open_pages, open_pages);
+
if (open_pages != NULL)
g_signal_connect_object (open_pages,
"items-changed",
diff --git a/src/libide/preferences/ide-preferences-builtin.c
b/src/libide/preferences/ide-preferences-builtin.c
index e1ac633..105b49c 100644
--- a/src/libide/preferences/ide-preferences-builtin.c
+++ b/src/libide/preferences/ide-preferences-builtin.c
@@ -151,6 +151,9 @@ ide_preferences_builtin_register_editor (DzlPreferences *preferences)
{
dzl_preferences_add_page (preferences, "editor", _("Editor"), 100);
+ dzl_preferences_add_list_group (preferences, "editor", "general", _("General"), GTK_SELECTION_NONE, -5);
+ dzl_preferences_add_switch (preferences, "editor", "general", "org.gnome.builder", "show-open-files",
NULL, NULL, _("Display list of open files"), _("Display the list of all open files in the within the project
sidebar"), NULL, 0);
+
dzl_preferences_add_list_group (preferences, "editor", "position", _("Cursor"), GTK_SELECTION_NONE, 0);
dzl_preferences_add_switch (preferences, "editor", "position", "org.gnome.builder.editor",
"restore-insert-mark", NULL, NULL, _("Restore cursor position"), _("Restore cursor position when a file is
reopened"), NULL, 0);
dzl_preferences_add_switch (preferences, "editor", "position", "org.gnome.builder.editor", "wrap-text",
NULL, NULL, _("Enable text wrapping"), _("Wrap text that is too wide to display"), NULL, 5);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]