[gnome-documents] view: cleanup the saved setting state to be a GdMainWindowType
- From: Cosimo Cecchi <cosimoc src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-documents] view: cleanup the saved setting state to be a GdMainWindowType
- Date: Mon, 23 Jan 2012 21:30:10 +0000 (UTC)
commit 8e3869598d67a7068f4ee9d99022f1586d7217f5
Author: Cosimo Cecchi <cosimoc gnome org>
Date: Mon Jan 23 16:29:00 2012 -0500
view: cleanup the saved setting state to be a GdMainWindowType
So we can use the enums<->string utilities provided in GSettings
directly to convert from one representation to the other.
data/Makefile.am | 4 ++++
data/org.gnome.documents.gschema.xml.in | 8 ++++----
src/application.js | 11 ++++++-----
src/documents.js | 2 +-
src/utils.js | 22 ++++++++--------------
src/view.js | 8 ++------
6 files changed, 25 insertions(+), 30 deletions(-)
---
diff --git a/data/Makefile.am b/data/Makefile.am
index bc0ce9c..8cd6ae9 100644
--- a/data/Makefile.am
+++ b/data/Makefile.am
@@ -15,6 +15,10 @@ $(service_DATA): $(service_in_files) Makefile
service_in_files = org.gnome.Documents.GDataMiner.service.in
+gsettings_ENUM_NAMESPACE = org.gnome.Documents
+gsettings_ENUM_FILES = \
+ $(top_srcdir)/src/lib/gd-main-view.h
+
gsettingsschema_in_files = org.gnome.documents.gschema.xml.in
gsettings_SCHEMAS = $(gsettingsschema_in_files:.xml.in=.xml)
.PRECIOUS: $(gsettings_SCHEMAS)
diff --git a/data/org.gnome.documents.gschema.xml.in b/data/org.gnome.documents.gschema.xml.in
index 7895189..3be5597 100644
--- a/data/org.gnome.documents.gschema.xml.in
+++ b/data/org.gnome.documents.gschema.xml.in
@@ -1,9 +1,9 @@
<schemalist gettext-domain="gnome-documents">
<schema id="org.gnome.documents" path="/org/gnome/documents/">
- <key name="list-view" type="b">
- <default>false</default>
- <_summary>List view</_summary>
- <_description>Enable list view</_description>
+ <key name="view-as" enum="org.gnome.Documents.GdMainViewType">
+ <default>'icon'</default>
+ <_summary>View as</_summary>
+ <_description>View as type</_description>
</key>
<key name="active-source" type="s">
<default>'all'</default>
diff --git a/src/application.js b/src/application.js
index 99e72ac..4b68508 100644
--- a/src/application.js
+++ b/src/application.js
@@ -101,16 +101,17 @@ Application.prototype = {
}));
this.application.add_action(fsAction);
+ /* FIXME: use GSettings.create_action() once it's introspectable */
let viewAsAction = Gio.SimpleAction.new_stateful('view-as',
GLib.VariantType.new('s'),
- Utils.listSettingToMenu());
+ Global.settings.get_value('view-as'));
viewAsAction.connect('activate', Lang.bind(this,
function(action, variant) {
- Global.settings.set_boolean('list-view', Utils.listMenuToSetting(variant));
+ Global.settings.set_value('view-as', variant);
}));
- Global.settings.connect('changed::list-view', Lang.bind(this,
+ Global.settings.connect('changed::view-as', Lang.bind(this,
function() {
- viewAsAction.state = Utils.listSettingToMenu();
+ viewAsAction.state = Global.settings.get_value('view-as');
}));
this.application.add_action(viewAsAction);
@@ -119,7 +120,7 @@ Application.prototype = {
menu.append(_("Quit"), 'app.quit');
let viewAs = new Gio.Menu();
- viewAs.append(_("Grid"), 'app.view-as::grid');
+ viewAs.append(_("Grid"), 'app.view-as::icon');
viewAs.append(_("List"), 'app.view-as::list');
menu.prepend_section(_("View as"), viewAs);
diff --git a/src/documents.js b/src/documents.js
index add3ccc..8d2bb29 100644
--- a/src/documents.js
+++ b/src/documents.js
@@ -301,7 +301,7 @@ DocCommon.prototype = {
this.populateFromCursor(cursor);
this._refreshIconId =
- Global.settings.connect('changed::list-view',
+ Global.settings.connect('changed::view-as',
Lang.bind(this, this.refreshIcon));
this._filterId =
Global.searchCategoryManager.connect('active-changed',
diff --git a/src/utils.js b/src/utils.js
index be66052..156cfd9 100644
--- a/src/utils.js
+++ b/src/utils.js
@@ -37,10 +37,16 @@ let debugInit = false;
let debugEnabled = false;
function getIconSize() {
- return Global.settings.get_boolean('list-view') ? _LIST_VIEW_SIZE : _ICON_VIEW_SIZE;
+ let viewType = Global.settings.get_enum('view-as');
+
+ if (viewType == Gd.MainViewType.LIST)
+ return _LIST_VIEW_SIZE;
+ else
+ return _ICON_VIEW_SIZE;
}
function getThumbnailFrameBorder() {
+ let viewType = Global.settings.get_enum('view-as');
let slice = new Gtk.Border();
let border = null;
@@ -49,7 +55,7 @@ function getThumbnailFrameBorder() {
slice.bottom = 6;
slice.left = 4;
- if (Global.settings.get_boolean('list-view')) {
+ if (viewType == Gd.MainViewType.LIST) {
border = new Gtk.Border();
border.top = 1;
border.right = 1;
@@ -104,18 +110,6 @@ function isSearchEvent(event) {
return retval;
}
-function listSettingToMenu() {
- let isList = Global.settings.get_boolean('list-view');
- let variant = GLib.Variant.new('s', isList ? 'list' : 'grid');
-
- return variant;
-}
-
-function listMenuToSetting(variant) {
- let string = variant.get_string()[0];
- return (string == 'list') ? true : false;
-}
-
function debug(str) {
if (!debugInit) {
let env = GLib.getenv('DOCUMENTS_DEBUG');
diff --git a/src/view.js b/src/view.js
index 4e419de..11c7f72 100644
--- a/src/view.js
+++ b/src/view.js
@@ -123,7 +123,7 @@ View.prototype = {
// connect to settings change for list/grid view
this._viewSettingsId =
- Global.settings.connect('changed::list-view',
+ Global.settings.connect('changed::view-as',
Lang.bind(this, this._updateTypeForSettings));
this._updateTypeForSettings();
@@ -143,11 +143,7 @@ View.prototype = {
},
_updateTypeForSettings: function() {
- let isList = Global.settings.get_boolean('list-view');
- let viewType = Gd.MainViewType.ICON;
- if (isList)
- viewType = Gd.MainViewType.LIST;
-
+ let viewType = Global.settings.get_enum('view-as');
this.widget.set_view_type(viewType);
},
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]