[shotwell/wip/phako/configure-sidebar: 248/254] wip3
- From: Jens Georg <jensgeorg src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [shotwell/wip/phako/configure-sidebar: 248/254] wip3
- Date: Sat, 25 May 2019 17:48:59 +0000 (UTC)
commit 8004b801dacbe249ffd76a24d2a623559aac33e1
Author: Jens Georg <mail jensge org>
Date: Wed Jul 11 13:15:57 2018 +0200
wip3
data/ui/preferences_dialog_list_row.ui | 2 +-
src/Resources.vala | 15 ++++++++++++++-
src/camera/CameraBranch.vala | 6 ++++--
src/events/EventsBranch.vala | 4 +++-
src/folders/FoldersBranch.vala | 5 +++--
src/import-roll/ImportRollBranch.vala | 6 ++++--
src/library/LibraryBranch.vala | 5 ++++-
src/searches/SearchesBranch.vala | 5 +++--
src/sidebar/Branch.vala | 18 ++++++++++++++----
src/sidebar/Tree.vala | 2 +-
src/sidebar/common.vala | 4 ++--
src/tags/TagsBranch.vala | 4 +++-
12 files changed, 56 insertions(+), 20 deletions(-)
---
diff --git a/data/ui/preferences_dialog_list_row.ui b/data/ui/preferences_dialog_list_row.ui
index db3fc047..82769298 100644
--- a/data/ui/preferences_dialog_list_row.ui
+++ b/data/ui/preferences_dialog_list_row.ui
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- Generated with glade 3.22.0 -->
<interface>
- <requires lib="gtk+" version="3.20"/>
+ <requires lib="gtk+" version="3.18"/>
<template class="SidebarPreferencesListRow" parent="GtkListBoxRow">
<property name="visible">True</property>
<property name="can_focus">True</property>
diff --git a/src/Resources.vala b/src/Resources.vala
index d9b3f043..2a3a4285 100644
--- a/src/Resources.vala
+++ b/src/Resources.vala
@@ -1183,7 +1183,20 @@ along with Shotwell; if not, write to the Free Software Foundation, Inc.,
public static string map_subtree_name(string name) {
- return name;
+ switch (name) {
+ case Events.Branch.HANDLE: return _("Events");
+ case Camera.Branch.HANDLE: return _("Cameras");
+#if ENABLE_FACES
+ case Faces.Branch.HANDLE: return _("Faces");
+#endif
+ case Folders.Branch.HANDLE: return _("Folders");
+ case ImportRoll.Branch.HANDLE: return _("Imports");
+ case Library.Branch.HANDLE: return _("Library");
+ case Searches.Branch.HANDLE: return _("Saved Searches");
+ case Tags.Branch.HANDLE : return _("Tags");
+ default:
+ return name;
+ }
}
}
diff --git a/src/camera/CameraBranch.vala b/src/camera/CameraBranch.vala
index 052f0933..21c1e595 100644
--- a/src/camera/CameraBranch.vala
+++ b/src/camera/CameraBranch.vala
@@ -10,8 +10,10 @@ public class Camera.Branch : Sidebar.Branch {
private Gee.HashMap<DiscoveredCamera, Camera.SidebarEntry> camera_map = new Gee.HashMap<
DiscoveredCamera, Camera.SidebarEntry>();
+ internal const string HANDLE = "cameras";
+
public Branch() {
- base (new Camera.Header(),
+ base (new Camera.Header(), Branch.HANDLE,
Sidebar.Branch.Options.HIDE_IF_EMPTY | Sidebar.Branch.Options.AUTO_OPEN_ON_NEW_CHILD,
camera_comparator);
@@ -82,7 +84,7 @@ public class Camera.Branch : Sidebar.Branch {
public class Camera.Header : Sidebar.Header {
public Header() {
- base (_("Cameras"), _("List of all discovered camera devices"));
+ base (Resources.map_subtree_name(Branch.HANDLE), _("List of all discovered camera devices"));
}
}
diff --git a/src/events/EventsBranch.vala b/src/events/EventsBranch.vala
index 097a6640..f6a381e3 100644
--- a/src/events/EventsBranch.vala
+++ b/src/events/EventsBranch.vala
@@ -20,9 +20,11 @@ public class Events.Branch : Sidebar.Branch {
private Events.UndatedDirectoryEntry undated_entry = new Events.UndatedDirectoryEntry();
private Events.NoEventEntry no_event_entry = new Events.NoEventEntry();
private Events.MasterDirectoryEntry all_events_entry = new Events.MasterDirectoryEntry();
+ internal const string HANDLE = "events";
public Branch() {
- base (new Sidebar.Header(_("Events"), _("Browse through your events")),
+ base (new Sidebar.Header(Resources.map_subtree_name(Branch.HANDLE), _("Browse through your events")),
+ Branch.HANDLE,
Sidebar.Branch.Options.STARTUP_EXPAND_TO_FIRST_CHILD,
event_year_comparator);
diff --git a/src/folders/FoldersBranch.vala b/src/folders/FoldersBranch.vala
index 5de7082e..2ffd254c 100644
--- a/src/folders/FoldersBranch.vala
+++ b/src/folders/FoldersBranch.vala
@@ -8,9 +8,10 @@ public class Folders.Branch : Sidebar.Branch {
private Gee.HashMap<File, Folders.SidebarEntry> entries =
new Gee.HashMap<File, Folders.SidebarEntry>(file_hash, file_equal);
private File home_dir;
+ internal const string HANDLE = "folders";
public class Branch() {
- base (new Folders.Root(),
+ base (new Folders.Root(), Branch.HANDLE,
Sidebar.Branch.Options.STARTUP_OPEN_GROUPING
| Sidebar.Branch.Options.HIDE_IF_EMPTY,
comparator);
@@ -141,7 +142,7 @@ public class Folders.Branch : Sidebar.Branch {
private class Folders.Root : Sidebar.Header {
public Root() {
- base (_("Folders"), _("Browse the library’s folder structure"));
+ base (Resources.map_subtree_name(Branch.HANDLE), _("Browse the library’s folder structure"));
}
}
diff --git a/src/import-roll/ImportRollBranch.vala b/src/import-roll/ImportRollBranch.vala
index 0c582ac8..15844d37 100644
--- a/src/import-roll/ImportRollBranch.vala
+++ b/src/import-roll/ImportRollBranch.vala
@@ -1,8 +1,10 @@
public class ImportRoll.Branch : Sidebar.Branch {
private Gee.HashMap<int64?, ImportRoll.SidebarEntry> entries;
+ internal const string HANDLE = "import-roll";
+
public class Branch() {
- base (new ImportRoll.Root(),
+ base (new ImportRoll.Root(), Branch.HANDLE,
Sidebar.Branch.Options.HIDE_IF_EMPTY,
ImportRoll.Branch.comparator);
@@ -39,6 +41,6 @@ public class ImportRoll.Branch : Sidebar.Branch {
private class ImportRoll.Root : Sidebar.Header {
public Root() {
- base (_("Imports"), _("Browse the library’s import history"));
+ base (Resources.map_subtree_name(Branch.HANDLE), _("Browse the library’s import history"));
}
}
diff --git a/src/library/LibraryBranch.vala b/src/library/LibraryBranch.vala
index 622162e3..55a50a40 100644
--- a/src/library/LibraryBranch.vala
+++ b/src/library/LibraryBranch.vala
@@ -14,6 +14,8 @@ public class Library.Branch : Sidebar.Branch {
public Library.OfflineSidebarEntry offline_entry { get; private set; }
public Library.TrashSidebarEntry trash_entry { get; private set; }
+ internal const string HANDLE = "library";
+
// This lists the order of the library items in the sidebar. To re-order, simply move
// the item in this list to a new position. These numbers should *not* persist anywhere
// outside the app.
@@ -27,7 +29,8 @@ public class Library.Branch : Sidebar.Branch {
}
public Branch() {
- base(new Sidebar.Header(_("Library"), _("Organize and browse your photos")),
+ base(new Sidebar.Header(Resources.map_subtree_name(Branch.HANDLE), _("Organize and browse your
photos")),
+ Branch.HANDLE,
Sidebar.Branch.Options.STARTUP_OPEN_GROUPING, comparator);
photos_entry = new Library.PhotosEntry();
diff --git a/src/searches/SearchesBranch.vala b/src/searches/SearchesBranch.vala
index 22a38e26..b0ef3510 100644
--- a/src/searches/SearchesBranch.vala
+++ b/src/searches/SearchesBranch.vala
@@ -7,9 +7,10 @@
public class Searches.Branch : Sidebar.Branch {
private Gee.HashMap<SavedSearch, Searches.SidebarEntry> entry_map =
new Gee.HashMap<SavedSearch, Searches.SidebarEntry>();
+ internal const string HANDLE = "saved-searches";
public Branch() {
- base (new Searches.Header(),
+ base (new Searches.Header(), Branch.HANDLE,
Sidebar.Branch.Options.HIDE_IF_EMPTY
| Sidebar.Branch.Options.AUTO_OPEN_ON_NEW_CHILD
| Sidebar.Branch.Options.STARTUP_EXPAND_TO_FIRST_CHILD,
@@ -65,7 +66,7 @@ public class Searches.Header : Sidebar.Header, Sidebar.Contextable {
private Gtk.Menu? context_menu = null;
public Header() {
- base (_("Saved Searches"), _("Organize your saved searches"));
+ base (Resources.map_subtree_name(Branch.HANDLE), _("Organize your saved searches"));
setup_context_menu();
}
diff --git a/src/sidebar/Branch.vala b/src/sidebar/Branch.vala
index bba8cc45..ae6104ba 100644
--- a/src/sidebar/Branch.vala
+++ b/src/sidebar/Branch.vala
@@ -190,6 +190,7 @@ public class Sidebar.Branch : Object {
private bool shown = true;
private CompareFunc<Sidebar.Entry> default_comparator;
private Gee.HashMap<Sidebar.Entry, Node> map = new Gee.HashMap<Sidebar.Entry, Node>();
+ private string handle;
public signal void entry_added(Sidebar.Entry entry);
@@ -203,16 +204,17 @@ public class Sidebar.Branch : Object {
public signal void show_branch(bool show);
- public Branch(Sidebar.Entry root, Options options, CompareFunc<Sidebar.Entry> default_comparator,
+ public Branch(Sidebar.Entry root, string handle, Options options, CompareFunc<Sidebar.Entry>
default_comparator,
CompareFunc<Sidebar.Entry>? root_comparator = null) {
this.default_comparator = default_comparator;
this.root = new Node(root, null,
(root_comparator != null) ? root_comparator : default_comparator);
this.options = options;
+ this.handle = handle;
map.set(root, this.root);
- if (options.is_hide_if_empty())
+ if (options.is_hide_if_empty() || is_disabled_in_config())
set_show_branch(false);
}
@@ -223,8 +225,12 @@ public class Sidebar.Branch : Object {
public void set_show_branch(bool shown) {
if (this.shown == shown)
return;
-
- this.shown = shown;
+
+ if (is_disabled_in_config())
+ this.shown = false;
+ else
+ this.shown = shown;
+
show_branch(shown);
}
@@ -430,5 +436,9 @@ public class Sidebar.Branch : Object {
private void children_reordered_callback(Node node) {
children_reordered(node.entry);
}
+
+ private bool is_disabled_in_config() {
+ return !(this.handle in Config.Facade.get_instance().get_sidebar_content());
+ }
}
diff --git a/src/sidebar/Tree.vala b/src/sidebar/Tree.vala
index 0750d778..46b5945c 100644
--- a/src/sidebar/Tree.vala
+++ b/src/sidebar/Tree.vala
@@ -705,7 +705,7 @@ public class Sidebar.Tree : Gtk.TreeView {
private void on_branch_children_reordered(Sidebar.Branch branch, Sidebar.Entry entry) {
Gee.List<Sidebar.Entry>? children = branch.get_children(entry);
- if (children == null)
+ if (children == null || branch.get_show_branch() == false)
return;
// This works by moving the entries to the bottom of the tree's list in the order they
diff --git a/src/sidebar/common.vala b/src/sidebar/common.vala
index ebdba518..b12ac54f 100644
--- a/src/sidebar/common.vala
+++ b/src/sidebar/common.vala
@@ -98,8 +98,8 @@ public abstract class Sidebar.SimplePageEntry : Object, Sidebar.Entry, Sidebar.S
// A simple Sidebar.Branch where the root node is the branch in entirety.
public class Sidebar.RootOnlyBranch : Sidebar.Branch {
- public RootOnlyBranch(Sidebar.Entry root) {
- base (root, Sidebar.Branch.Options.NONE, null_comparator);
+ public RootOnlyBranch(Sidebar.Entry root, string handle) {
+ base (root, handle, Sidebar.Branch.Options.NONE, null_comparator);
}
private static int null_comparator(Sidebar.Entry a, Sidebar.Entry b) {
diff --git a/src/tags/TagsBranch.vala b/src/tags/TagsBranch.vala
index e11ea5d5..3f8c5f3c 100644
--- a/src/tags/TagsBranch.vala
+++ b/src/tags/TagsBranch.vala
@@ -6,9 +6,11 @@
public class Tags.Branch : Sidebar.Branch {
private Gee.HashMap<Tag, Tags.SidebarEntry> entry_map = new Gee.HashMap<Tag, Tags.SidebarEntry>();
+ internal const string HANDLE = "tags";
public Branch() {
base (new Tags.Header(),
+ Branch.HANDLE,
Sidebar.Branch.Options.HIDE_IF_EMPTY
| Sidebar.Branch.Options.AUTO_OPEN_ON_NEW_CHILD
| Sidebar.Branch.Options.STARTUP_OPEN_GROUPING,
@@ -128,7 +130,7 @@ public class Tags.Header : Sidebar.Header, Sidebar.InternalDropTargetEntry,
private Gtk.Menu? context_menu = null;
public Header() {
- base (_("Tags"), _("Organize and browse your photo’s tags"));
+ base (Resources.map_subtree_name(Branch.HANDLE), _("Organize and browse your photo’s tags"));
setup_context_menu();
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]