summaryrefslogtreecommitdiff
path: root/src/library/FlaggedPage.vala
diff options
context:
space:
mode:
Diffstat (limited to 'src/library/FlaggedPage.vala')
-rw-r--r--src/library/FlaggedPage.vala54
1 files changed, 54 insertions, 0 deletions
diff --git a/src/library/FlaggedPage.vala b/src/library/FlaggedPage.vala
new file mode 100644
index 0000000..28bc57b
--- /dev/null
+++ b/src/library/FlaggedPage.vala
@@ -0,0 +1,54 @@
+/* Copyright 2010-2014 Yorba Foundation
+ *
+ * This software is licensed under the GNU LGPL (version 2.1 or later).
+ * See the COPYING file in this distribution.
+ */
+
+public class FlaggedPage : CollectionPage {
+ public const string NAME = _("Flagged");
+
+ private class FlaggedViewManager : CollectionViewManager {
+ public FlaggedViewManager(FlaggedPage owner) {
+ base (owner);
+ }
+
+ public override bool include_in_view(DataSource source) {
+ Flaggable? flaggable = source as Flaggable;
+
+ return (flaggable != null) && flaggable.is_flagged();
+ }
+ }
+
+ private class FlaggedSearchViewFilter : CollectionPage.CollectionSearchViewFilter {
+ public override uint get_criteria() {
+ return SearchFilterCriteria.TEXT | SearchFilterCriteria.MEDIA |
+ SearchFilterCriteria.RATING;
+ }
+ }
+
+ private ViewManager view_manager;
+ private Alteration prereq = new Alteration("metadata", "flagged");
+ private FlaggedSearchViewFilter search_filter = new FlaggedSearchViewFilter();
+
+ public FlaggedPage() {
+ base (NAME);
+
+ view_manager = new FlaggedViewManager(this);
+
+ foreach (MediaSourceCollection sources in MediaCollectionRegistry.get_instance().get_all())
+ get_view().monitor_source_collection(sources, view_manager, prereq);
+ }
+
+ protected override void get_config_photos_sort(out bool sort_order, out int sort_by) {
+ Config.Facade.get_instance().get_library_photos_sort(out sort_order, out sort_by);
+ }
+
+ protected override void set_config_photos_sort(bool sort_order, int sort_by) {
+ Config.Facade.get_instance().set_library_photos_sort(sort_order, sort_by);
+ }
+
+ public override SearchViewFilter get_search_view_filter() {
+ return search_filter;
+ }
+}
+