[gnome-shell/benzea/systemd-user-units: 3/9] extensionSystem: Add isEnabled property for extensions
- From: Benjamin Berg <bberg src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-shell/benzea/systemd-user-units: 3/9] extensionSystem: Add isEnabled property for extensions
- Date: Fri, 2 Aug 2019 08:00:37 +0000 (UTC)
commit b89e7a532a52d91b01f2fdbdf6f4f365a4ab4b7f
Author: Benjamin Berg <bberg redhat com>
Date: Thu Aug 1 16:32:57 2019 +0200
extensionSystem: Add isEnabled property for extensions
The property reflects whether the extension is enabled in the setting.
This does not mean that the extension is actually loaded, the API user
must check the state property for this information.
https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/507
js/misc/extensionUtils.js | 2 +-
js/ui/extensionSystem.js | 19 +++++++++++++++----
2 files changed, 16 insertions(+), 5 deletions(-)
---
diff --git a/js/misc/extensionUtils.js b/js/misc/extensionUtils.js
index 94f688a89..017f86b99 100644
--- a/js/misc/extensionUtils.js
+++ b/js/misc/extensionUtils.js
@@ -31,7 +31,7 @@ var ExtensionState = {
UNINSTALLED: 99
};
-const SERIALIZED_PROPERTIES = ['type', 'state', 'path', 'error', 'hasPrefs', 'canChange', 'willChange'];
+const SERIALIZED_PROPERTIES = ['type', 'state', 'path', 'error', 'hasPrefs', 'canChange', 'willChange',
'isEnabled'];
/**
* getCurrentExtension:
diff --git a/js/ui/extensionSystem.js b/js/ui/extensionSystem.js
index 54749061a..6c31ce99f 100644
--- a/js/ui/extensionSystem.js
+++ b/js/ui/extensionSystem.js
@@ -44,8 +44,12 @@ var ExtensionManager = class {
if (!extension)
return;
- if (extension.state != ExtensionState.ENABLED)
+ extension.isEnabled = this._enabledExtensions.includes(extension.uuid);
+
+ if (extension.state != ExtensionState.ENABLED) {
+ this.emit('extension-state-changed', extension);
return;
+ }
// "Rebase" the extension order by disabling and then enabling extensions
// in order to help prevent conflicts.
@@ -93,8 +97,8 @@ var ExtensionManager = class {
if (extension.state != ExtensionState.ERROR) {
extension.state = ExtensionState.DISABLED;
- this.emit('extension-state-changed', extension);
}
+ this.emit('extension-state-changed', extension);
}
_callExtensionEnable(uuid) {
@@ -102,11 +106,15 @@ var ExtensionManager = class {
if (!extension)
return;
+ extension.isEnabled = this._enabledExtensions.includes(extension.uuid);
+
if (extension.state == ExtensionState.INITIALIZED)
this._callExtensionInit(uuid);
- if (extension.state != ExtensionState.DISABLED)
+ if (extension.state != ExtensionState.DISABLED) {
+ this.emit('extension-state-changed', extension);
return;
+ }
this._extensionOrder.push(uuid);
@@ -122,6 +130,7 @@ var ExtensionManager = class {
if (e.matches(Gio.IOErrorEnum, Gio.IOErrorEnum.NOT_FOUND))
continue; // not an error
log(`Failed to load stylesheet for extension ${uuid}: ${e.message}`);
+ this.emit('extension-state-changed', extension);
return;
}
}
@@ -251,12 +260,14 @@ var ExtensionManager = class {
// Default to error, we set success as the last step
extension.state = ExtensionState.ERROR;
+ let enabled = this._enabledExtensions.includes(extension.uuid);
+ extension.isEnabled = enabled;
+
let checkVersion = !global.settings.get_boolean(EXTENSION_DISABLE_VERSION_CHECK_KEY);
if (checkVersion && ExtensionUtils.isOutOfDate(extension)) {
extension.state = ExtensionState.OUT_OF_DATE;
} else {
- let enabled = this._enabledExtensions.includes(extension.uuid);
if (enabled) {
if (!this._callExtensionInit(extension.uuid))
return;
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]