[gnome-documents] application: Add new action sort-by
- From: Debarshi Ray <debarshir src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-documents] application: Add new action sort-by
- Date: Mon, 2 Nov 2015 18:10:22 +0000 (UTC)
commit e9865fea3f7c2003f3716cc971c6008a2ba15fc8
Author: Arnel A. Borja <arnelborja src gnome org>
Date: Thu Apr 3 17:45:21 2014 +0800
application: Add new action sort-by
Add a new action and setting "sort-by" which changes the column used
for sorting the documents in the overview.
https://bugzilla.gnome.org/show_bug.cgi?id=683563
data/Makefile.am | 3 ++-
data/org.gnome.documents.gschema.xml | 5 +++++
src/application.js | 22 ++++++++++++++++++++++
3 files changed, 29 insertions(+), 1 deletions(-)
---
diff --git a/data/Makefile.am b/data/Makefile.am
index 06d66b9..85f3ae6 100644
--- a/data/Makefile.am
+++ b/data/Makefile.am
@@ -39,7 +39,8 @@ check-local: org.gnome.Documents.desktop org.gnome.Books.desktop
gsettings_ENUM_NAMESPACE = org.gnome.Documents
gsettings_ENUM_FILES = \
- $(top_srcdir)/libgd/libgd/gd-main-view.h
+ $(top_srcdir)/libgd/libgd/gd-main-view.h \
+ $(top_srcdir)/libgd/libgd/gd-main-view-generic.h
gsettings_SCHEMAS = org.gnome.documents.gschema.xml org.gnome.books.gschema.xml
.PRECIOUS: $(gsettings_SCHEMAS)
diff --git a/data/org.gnome.documents.gschema.xml b/data/org.gnome.documents.gschema.xml
index e4c8a72..83f24b6 100644
--- a/data/org.gnome.documents.gschema.xml
+++ b/data/org.gnome.documents.gschema.xml
@@ -5,6 +5,11 @@
<summary>View as</summary>
<description>View as type</description>
</key>
+ <key name="sort-by" enum="org.gnome.Documents.GdMainColumns">
+ <default>'mtime'</default>
+ <summary>Sort by</summary>
+ <description>Sort by type</description>
+ </key>
<key name="window-size" type="ai">
<default>[768, 600]</default>
<summary>Window size</summary>
diff --git a/src/application.js b/src/application.js
index 785fb18..f0b28b0 100644
--- a/src/application.js
+++ b/src/application.js
@@ -201,6 +201,15 @@ const Application = new Lang.Class({
gtkSettings.gtk_application_prefer_dark_theme = state.get_boolean();
},
+ _sortByCreateHook: function(action) {
+ settings.connect('changed::sort-by', Lang.bind(this,
+ function() {
+ let state = settings.get_value('sort-by');
+ if (state.get_string()[0] != action.state.get_string()[0])
+ action.state = state;
+ }));
+ },
+
_onActionQuit: function() {
this._mainWindow.destroy();
},
@@ -233,6 +242,11 @@ const Application = new Lang.Class({
settings.set_value('view-as', parameter);
},
+ _onActionSortBy: function(action, parameter) {
+ if (parameter.get_string()[0] != action.state.get_string()[0])
+ settings.set_value('sort-by', parameter);
+ },
+
_onActionOpenCurrent: function() {
let doc = documentManager.getActiveItem();
if (doc)
@@ -549,6 +563,14 @@ const Application = new Lang.Class({
window_modes: [WindowMode.WindowMode.COLLECTIONS,
WindowMode.WindowMode.DOCUMENTS,
WindowMode.WindowMode.SEARCH] },
+ { name: 'sort-by',
+ callback: this._onActionSortBy,
+ create_hook: this._sortByCreateHook,
+ parameter_type: 's',
+ state: settings.get_value('sort-by'),
+ window_modes: [WindowMode.WindowMode.COLLECTIONS,
+ WindowMode.WindowMode.DOCUMENTS,
+ WindowMode.WindowMode.SEARCH] },
{ name: 'open-current',
callback: this._onActionOpenCurrent,
window_mode: WindowMode.WindowMode.PREVIEW },
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]