[gnome-shell-extensions/gnome-3-2] all: remove all GSettings usage



commit 374abed8a13f81d514bcccc2ed4b4f18e7d8d058
Author: Giovanni Campagna <gcampagna src gnome org>
Date:   Fri Dec 16 22:03:08 2011 +0100

    all: remove all GSettings usage
    
    Since GSettings is not supported in extensions in 3.2, all settings
    have been replaced by constants in JS files (except for user-theme,
    whose only purpose is to actually bridge GSettings to the shell).
    Customizations are still supported in master, and distributions
    packaging these extensions for system-wide install may consider
    reverting this bug.

 extensions/alternate-tab/Makefile.am               |   11 --
 extensions/alternate-tab/extension.js              |   21 ++---
 ...e.shell.extensions.alternate-tab.gschema.xml.in |   18 ----
 extensions/auto-move-windows/Makefile.am           |   11 --
 extensions/auto-move-windows/extension.js          |   10 +-
 ...ell.extensions.auto-move-windows.gschema.xml.in |   10 --
 extensions/dock/Makefile.am                        |   11 --
 extensions/dock/extension.js                       |  101 +++-----------------
 .../org.gnome.shell.extensions.dock.gschema.xml.in |   38 --------
 extensions/native-window-placement/Makefile.am     |   11 --
 extensions/native-window-placement/extension.js    |   25 ++---
 ...tensions.native-window-placement.gschema.xml.in |   26 -----
 po/POTFILES.in                                     |    4 -
 13 files changed, 38 insertions(+), 259 deletions(-)
---
diff --git a/extensions/alternate-tab/Makefile.am b/extensions/alternate-tab/Makefile.am
index bade7cd..b8fde76 100644
--- a/extensions/alternate-tab/Makefile.am
+++ b/extensions/alternate-tab/Makefile.am
@@ -1,14 +1,3 @@
 EXTENSION_ID = alternate-tab
 
 include ../../extension.mk
-
-gschemas_in = $(gschemabase).alternate-tab.gschema.xml.in
-
- INTLTOOL_XML_NOMERGE_RULE@
-
-gsettings_SCHEMAS = $(gschemas_in:.xml.in=.xml)
-
- GSETTINGS_RULES@
-
-CLEANFILES += $(gschemas_in:.xml.in=.valid) $(gsettings_SCHEMAS)
-EXTRA_DIST += $(gschemas_in)
diff --git a/extensions/alternate-tab/extension.js b/extensions/alternate-tab/extension.js
index a53b396..ce65bf5 100644
--- a/extensions/alternate-tab/extension.js
+++ b/extensions/alternate-tab/extension.js
@@ -26,9 +26,9 @@ const N_ = function(e) { return e };
 
 const POPUP_DELAY_TIMEOUT = 150; // milliseconds
 
-const SETTINGS_SCHEMA = 'org.gnome.shell.extensions.alternate-tab';
-const SETTINGS_BEHAVIOUR_KEY = 'behaviour';
-const SETTINGS_FIRST_TIME_KEY = 'first-time';
+// Settings: choose one of MODES, the description is in MESSAGE
+// (master branch has a nice dialog, but we cannot in gnome 3.2)
+const BEHAVIOUR = 'all_thumbnails';
 
 const MODES = {
     all_thumbnails: function(shellwm, binding, mask, window, backwards) {
@@ -267,6 +267,8 @@ WindowSwitcher.prototype = {
     }
 };
 
+/* This object is never instantiated in the current branch, but
+   I don't trust git merge enough to remove it */
 function AltTabSettingsDialog() {
     this._init();
 }
@@ -598,16 +600,9 @@ function init(metadata) {
 }
 
 function doAltTab(shellwm, binding, mask, window, backwards) {
-    let settings = new Gio.Settings({ schema: SETTINGS_SCHEMA });
-
-
-    if(settings.get_boolean(SETTINGS_FIRST_TIME_KEY)) {
-        new AltTabSettingsDialog().open();
-    } else {
-        let behaviour = settings.get_string(SETTINGS_BEHAVIOUR_KEY);
-        if(behaviour in MODES) {
-            MODES[behaviour](shellwm, binding, mask, window, backwards);
-        }
+    let behaviour = BEHAVIOUR;
+    if(behaviour in MODES) {
+        MODES[behaviour](shellwm, binding, mask, window, backwards);
     }
 }
 
diff --git a/extensions/auto-move-windows/Makefile.am b/extensions/auto-move-windows/Makefile.am
index be6e7bc..a0bca70 100644
--- a/extensions/auto-move-windows/Makefile.am
+++ b/extensions/auto-move-windows/Makefile.am
@@ -1,14 +1,3 @@
 EXTENSION_ID = auto-move-windows
 
 include ../../extension.mk
-
-gschemas_in = $(gschemabase).auto-move-windows.gschema.xml.in
-
- INTLTOOL_XML_NOMERGE_RULE@
-
-gsettings_SCHEMAS = $(gschemas_in:.xml.in=.xml)
-
- GSETTINGS_RULES@
-
-CLEANFILES += $(gschemas_in:.xml.in=.valid) $(gsettings_SCHEMAS)
-EXTRA_DIST += $(gschemas_in)
diff --git a/extensions/auto-move-windows/extension.js b/extensions/auto-move-windows/extension.js
index fe5d7f9..b08b0e3 100644
--- a/extensions/auto-move-windows/extension.js
+++ b/extensions/auto-move-windows/extension.js
@@ -11,8 +11,9 @@ const St = imports.gi.St;
 
 const Main = imports.ui.main;
 
-const SETTINGS_SCHEMA = 'org.gnome.shell.extensions.auto-move-windows';
-const SETTINGS_KEY = 'application-list';
+// list of applications and workspace pairs
+// format: "desktop-file-id.desktop:<num>"
+const APPLICATIONS = [ ];
 
 function WindowMover() {
     this._init();
@@ -20,7 +21,6 @@ function WindowMover() {
 
 WindowMover.prototype = {
     _init: function() {
-        this._settings = new Gio.Settings({ schema: SETTINGS_SCHEMA });
         this._windowTracker = Shell.WindowTracker.get_default();
 
         let display = global.screen.get_display();
@@ -46,7 +46,7 @@ WindowMover.prototype = {
         if (!this._windowTracker.is_window_interesting(window))
             return;
 
-        let spaces = this._settings.get_strv(SETTINGS_KEY);
+        let spaces = APPLICATIONS;
 
         let app = this._windowTracker.get_window_app(window);
         if (!app) {
@@ -159,4 +159,4 @@ function enable() {
 function disable() {
     Main._checkWorkspaces = prevCheckWorkspaces;
     winMover.destroy();
-}
\ No newline at end of file
+}
diff --git a/extensions/dock/Makefile.am b/extensions/dock/Makefile.am
index 827f81c..2531858 100644
--- a/extensions/dock/Makefile.am
+++ b/extensions/dock/Makefile.am
@@ -1,14 +1,3 @@
 EXTENSION_ID = dock
 
 include ../../extension.mk
-
-gschemas_in = $(gschemabase).dock.gschema.xml.in
-
- INTLTOOL_XML_NOMERGE_RULE@
-
-gsettings_SCHEMAS = $(gschemas_in:.xml.in=.xml)
-
- GSETTINGS_RULES@
-
-CLEANFILES += $(gschemas_in:.xml.in=.valid) $(gsettings_SCHEMAS)
-EXTRA_DIST += $(gschemas_in)
diff --git a/extensions/dock/extension.js b/extensions/dock/extension.js
index cc53827..d851bb8 100644
--- a/extensions/dock/extension.js
+++ b/extensions/dock/extension.js
@@ -25,15 +25,6 @@ const AltTab = imports.ui.altTab;
 const Gettext = imports.gettext.domain('gnome-shell-extensions');
 const _ = Gettext.gettext;
 
-// Settings
-const DOCK_SETTINGS_SCHEMA = 'org.gnome.shell.extensions.dock';
-const DOCK_POSITION_KEY = 'position';
-const DOCK_SIZE_KEY = 'size';
-const DOCK_HIDE_KEY = 'autohide';
-const DOCK_EFFECTHIDE_KEY = 'hide-effect';
-const DOCK_AUTOHIDE_ANIMATION_TIME_KEY = 'hide-effect-duration';
-
-
 //hide
 //const autohide_animation_time = 0.3;
 
@@ -49,6 +40,15 @@ const AutoHideEffect = {
     MOVE: 2
 };
 
+// Settings
+const DOCK_POSITION = PositionMode.RIGHT;
+const DOCK_SIZE = 48;
+const DOCK_AUTOHIDE = true;
+const DOCK_EFFECTHIDE = AutoHideEffect.MOVE;
+const DOCK_AUTOHIDE_ANIMATION_TIME = 0.3;
+// Do not change anything below this line (it is intentionally duplicate to keep in
+// sync with master branch)
+
 let position = PositionMode.RIGHT;
 let dockicon_size = 48;
 let hideable = true;
@@ -340,15 +340,11 @@ Dock.prototype = {
         this._favorites = [];
 
         // Load Settings
-        this._settings = new Gio.Settings({ schema: DOCK_SETTINGS_SCHEMA });
-        position = this._settings.get_enum(DOCK_POSITION_KEY);
-        dockicon_size = this._settings.get_int(DOCK_SIZE_KEY);
-        hideDock = hideable = this._settings.get_boolean(DOCK_HIDE_KEY);
-        hideEffect = this._settings.get_enum(DOCK_EFFECTHIDE_KEY);
-        autohide_animation_time = this._settings.get_double(DOCK_AUTOHIDE_ANIMATION_TIME_KEY);
-        //global.log("POSITION: " + position);
-        //global.log("dockicon_size: " + dockicon_size);
-
+        position = DOCK_POSITION;
+        dockicon_size = DOCK_SIZE;
+        hideDock = hideable = DOCK_AUTOHIDE;
+        hideEffect = DOCK_EFFECTHIDE;
+        autohide_animation_time = DOCK_AUTOHIDE_ANIMATION_TIME;
 
         this._spacing = 4;
         this._item_size = dockicon_size;
@@ -382,72 +378,6 @@ Dock.prototype = {
         }));
         Main.layoutManager.addChrome(this.actor);
 
-        //hidden
-        this._settings.connect('changed::'+DOCK_POSITION_KEY, Lang.bind(this, function (){
-                if (!this._settings)
-                    return;
-
-                let primary = Main.layoutManager.primaryMonitor;
-                position = this._settings.get_enum(DOCK_POSITION_KEY);
-                this.actor.y=primary.y;
-                this._redisplay();
-        }));
-
-        this._settings.connect('changed::'+DOCK_SIZE_KEY, Lang.bind(this, function (){
-                if (!this._settings)
-                    return;
-
-                dockicon_size = this._settings.get_int(DOCK_SIZE_KEY);
-                this._redisplay();
-        }));
-
-        this._settings.connect('changed::'+DOCK_HIDE_KEY, Lang.bind(this, function (){
-                if (!this._settings)
-                    return;
-
-                hideable = this._settings.get_boolean(DOCK_HIDE_KEY);
-                if (hideable){
-                        hideDock=false;
-                        this._hideDock();
-                } else {
-                        hideDock=true;
-                        this._showDock();
-                }
-        }));
-
-        this._settings.connect('changed::'+DOCK_EFFECTHIDE_KEY, Lang.bind(this, function () {
-                if (!this._settings)
-                    return;
-
-                hideEffect = this._settings.get_enum(DOCK_EFFECTHIDE_KEY);
-
-                switch (hideEffect) {
-                        case AutoHideEffect.RESCALE:
-                           this._item_size=dockicon_size;
-                           break;
-                        case AutoHideEffect.RESIZE:
-                           this.actor.set_scale (1,1);
-                           break;
-                        case AutoHideEffect.MOVE:
-                           ;
-                }
-                this.actor.disconnect(this._leave_event);
-                this.actor.disconnect(this._enter_event);
-
-                this._selectFunctionsHide ();
-
-                this._leave_event = this.actor.connect('leave-event', Lang.bind(this, this._hideDock));
-                this._enter_event = this.actor.connect('enter-event', Lang.bind(this, this._showDock));
-                this._redisplay();
-        }));
-
-        this._settings.connect('changed::'+DOCK_AUTOHIDE_ANIMATION_TIME_KEY, Lang.bind(this,function (){
-                if (!this._settings)
-                    return;
-
-                autohide_animation_time = this._settings.get_double(DOCK_AUTOHIDE_ANIMATION_TIME_KEY);
-        }));
-
         this._leave_event = this.actor.connect('leave-event', Lang.bind(this, this._hideDock));
         this._enter_event = this.actor.connect('enter-event', Lang.bind(this, this._showDock));
 
@@ -483,14 +413,13 @@ Dock.prototype = {
         this.actor.destroy();
 
         // Break reference cycles
-        this._settings = null;
         this._appSystem = null;
         this._tracker = null;
     },
 
     // fuctions hide
     _restoreHideDock: function(){
-        hideable = this._settings.get_boolean(DOCK_HIDE_KEY);
+        hideable = DOCK_AUTOHIDE;
     },
 
     _disableHideDock: function (){
diff --git a/extensions/native-window-placement/Makefile.am b/extensions/native-window-placement/Makefile.am
index 0d6c4bc..c53a614 100644
--- a/extensions/native-window-placement/Makefile.am
+++ b/extensions/native-window-placement/Makefile.am
@@ -1,14 +1,3 @@
 EXTENSION_ID = native-window-placement
 
 include ../../extension.mk
-
-gschemas_in = $(gschemabase).native-window-placement.gschema.xml.in
-
- INTLTOOL_XML_NOMERGE_RULE@
-
-gsettings_SCHEMAS = $(gschemas_in:.xml.in=.xml)
-
- GSETTINGS_RULES@
-
-CLEANFILES += $(gschemas_in:.xml.in=.valid) $(gsettings_SCHEMAS)
-EXTRA_DIST += $(gschemas_in)
diff --git a/extensions/native-window-placement/extension.js b/extensions/native-window-placement/extension.js
index 67bc34f..7031ce9 100644
--- a/extensions/native-window-placement/extension.js
+++ b/extensions/native-window-placement/extension.js
@@ -25,6 +25,12 @@ const WindowPlacementStrategy = {
     GRID: 1,
 };
 
+/* Begin user settings */
+const PLACEMENT_STRATEGY = WindowPlacementStrategy.NATURAL;
+const USE_MORE_SCREEN = true;
+const WINDOW_CAPTIONS_ON_TOP = true;
+/* End user settings - do not change anything below this line */
+
 // testing settings for natural window placement strategy:
 const WINDOW_PLACEMENT_NATURAL_FILLGAPS = true;                     // enlarge windows at the end to fill gaps         // not implemented yet
 const WINDOW_PLACEMENT_NATURAL_GRID_FALLBACK = true;                // fallback to grid mode if all windows have the same size and positions.     // not implemented yet
@@ -117,19 +123,8 @@ function resetState() {
 function enable() {
     resetState();
 
-    let settings = new Gio.Settings({ schema: 'org.gnome.shell.extensions.native-window-placement' });
-    let placementStrategy = settings.get_enum('strategy');
-    let signalId = settings.connect('changed::strategy', function() {
-        placementStrategy = settings.get_enum('strategy');
-        // we don't update immediately, we wait for a relayout
-        // (and hope for the best)
-    });
-    connectedSignals.push({ obj: settings, id: signalId });
-    let useMoreScreen = settings.get_boolean('use-more-screen');
-    signalId = settings.connect('changed::use-more-screen', function() {
-        useMoreScreen = settings.get_boolean('use-more-screen');
-    });
-    connectedSignals.push({ obj: settings, id: signalId });
+    let placementStrategy = PLACEMENT_STRATEGY;
+    let useMoreScreen = USE_MORE_SCREEN;
 
     /**
      * _calculateWindowTransformationsNatural:
@@ -415,7 +410,7 @@ function enable() {
     }
 
     /// position window titles on top of windows in overlay ////
-    if (settings.get_boolean('window-captions-on-top'))  {
+    if (WINDOW_CAPTIONS_ON_TOP)  {
         winInjections['_init'] = Workspace.WindowOverlay.prototype._init;
 	Workspace.WindowOverlay.prototype._init = function(windowClone, parentActor) {
             let metaWindow = windowClone.metaWindow;
@@ -529,4 +524,4 @@ function disable() {
 
 function init() {
     /* do nothing */
-}
\ No newline at end of file
+}
diff --git a/po/POTFILES.in b/po/POTFILES.in
index d1be54b..b82572e 100644
--- a/po/POTFILES.in
+++ b/po/POTFILES.in
@@ -1,13 +1,9 @@
 extensions/alternative-status-menu/extension.js
 extensions/alternate-tab/extension.js
-extensions/alternate-tab/org.gnome.shell.extensions.alternate-tab.gschema.xml.in
 extensions/auto-move-windows/extension.js
-extensions/auto-move-windows/org.gnome.shell.extensions.auto-move-windows.gschema.xml.in
 extensions/dock/extension.js
-extensions/dock/org.gnome.shell.extensions.dock.gschema.xml.in
 extensions/example/extension.js
 extensions/gajim/extension.js
-extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml.in
 extensions/user-theme/org.gnome.shell.extensions.user-theme.gschema.xml.in
 extensions/windowsNavigator/extension.js
 extensions/xrandr-indicator/extension.js



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]