From e6624f8ba1a0c8bb51a3855690adc2b1bfb06058 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Florian=20M=C3=BCllner?= Date: Thu, 21 Dec 2023 18:59:33 +0100 Subject: [PATCH] extensionSytem: Rename ENABLED/DISABLED states The ENABLED state means that an extension's `enable()` method was called successfully. This usually matches whether an extension *should* be enabled according to the enabled-extensions/disabled-extensions settings, but not necessarily: If an extension had an error or does not support the currently active mode, its actual state is different. We currently only expose the actual state to external tooling, but whether an extension should be enabled is relevant as well, for example to disable a lock-screen only extension from the regular session. For that purpose we will expose a separate `enabled` property. To avoid confusion with the existing states, change the exposed names to (IN)ACTIVE. This does not affect the D-Bus API, as the numeric values of the states remain unchanged. https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/7004 Part-of: --- .../org.gnome.Shell.Extensions.xml | 8 ++++---- js/misc/extensionUtils.js | 8 ++++---- js/ui/extensionSystem.js | 20 +++++++++---------- js/ui/lookingGlass.js | 16 +++++++-------- subprojects/extensions-app/js/extensionRow.js | 2 +- 5 files changed, 27 insertions(+), 27 deletions(-) diff --git a/data/dbus-interfaces/org.gnome.Shell.Extensions.xml b/data/dbus-interfaces/org.gnome.Shell.Extensions.xml index b9ee9956f..39b680e61 100644 --- a/data/dbus-interfaces/org.gnome.Shell.Extensions.xml +++ b/data/dbus-interfaces/org.gnome.Shell.Extensions.xml @@ -71,14 +71,14 @@ The state the extension is in: - 1: ENABLED - 2: DISABLED + 1: ACTIVE + 2: INACTIVE 3: ERROR 4: OUT_OF_DATE 5: DOWNLOADING 6: INITIALIZED - 7: DISABLING - 8: ENABLING + 7: DEACTIVATING + 8: ACTIVATING 99: UNINSTALLED diff --git a/js/misc/extensionUtils.js b/js/misc/extensionUtils.js index 682099e60..2b7720abc 100644 --- a/js/misc/extensionUtils.js +++ b/js/misc/extensionUtils.js @@ -13,14 +13,14 @@ export const ExtensionType = { * @enum {number} */ export const ExtensionState = { - ENABLED: 1, - DISABLED: 2, + ACTIVE: 1, + INACTIVE: 2, ERROR: 3, OUT_OF_DATE: 4, DOWNLOADING: 5, INITIALIZED: 6, - DISABLING: 7, - ENABLING: 8, + DEACTIVATING: 7, + ACTIVATING: 8, // Used as an error state for operations on unknown extensions, // should never be in a real extensionMeta object. diff --git a/js/ui/extensionSystem.js b/js/ui/extensionSystem.js index ca6c9180d..55b1e1133 100644 --- a/js/ui/extensionSystem.js +++ b/js/ui/extensionSystem.js @@ -119,8 +119,8 @@ export class ExtensionManager extends Signals.EventEmitter { } _loadExtensionStylesheet(extension) { - if (extension.state !== ExtensionState.ENABLED && - extension.state !== ExtensionState.ENABLING) + if (extension.state !== ExtensionState.ACTIVE && + extension.state !== ExtensionState.ACTIVATING) return; const variant = Main.getStyleVariant(); @@ -182,10 +182,10 @@ export class ExtensionManager extends Signals.EventEmitter { if (!extension) return; - if (extension.state !== ExtensionState.ENABLED) + if (extension.state !== ExtensionState.ACTIVE) return; - this._changeExtensionState(extension, ExtensionState.DISABLING); + this._changeExtensionState(extension, ExtensionState.DEACTIVATING); // "Rebase" the extension order by disabling and then enabling extensions // in order to help prevent conflicts. @@ -231,7 +231,7 @@ export class ExtensionManager extends Signals.EventEmitter { this._extensionOrder.splice(orderIdx, 1); if (extension.state !== ExtensionState.ERROR) - this._changeExtensionState(extension, ExtensionState.DISABLED); + this._changeExtensionState(extension, ExtensionState.INACTIVE); } async _callExtensionEnable(uuid) { @@ -246,10 +246,10 @@ export class ExtensionManager extends Signals.EventEmitter { await this._callExtensionInit(uuid); - if (extension.state !== ExtensionState.DISABLED) + if (extension.state !== ExtensionState.INACTIVE) return; - this._changeExtensionState(extension, ExtensionState.ENABLING); + this._changeExtensionState(extension, ExtensionState.ACTIVATING); try { this._loadExtensionStylesheet(extension); @@ -260,7 +260,7 @@ export class ExtensionManager extends Signals.EventEmitter { try { await extension.stateObj.enable(); - this._changeExtensionState(extension, ExtensionState.ENABLED); + this._changeExtensionState(extension, ExtensionState.ACTIVE); this._extensionOrder.push(uuid); } catch (e) { this._unloadExtensionStylesheet(extension); @@ -469,7 +469,7 @@ export class ExtensionManager extends Signals.EventEmitter { if (!await this._callExtensionInit(uuid)) return; - if (extension.state === ExtensionState.DISABLED) + if (extension.state === ExtensionState.INACTIVE) await this._callExtensionEnable(uuid); } else { extension.state = ExtensionState.INITIALIZED; @@ -560,7 +560,7 @@ export class ExtensionManager extends Signals.EventEmitter { } extension.stateObj = extensionState; - this._changeExtensionState(extension, ExtensionState.DISABLED); + this._changeExtensionState(extension, ExtensionState.INACTIVE); return true; } diff --git a/js/ui/lookingGlass.js b/js/ui/lookingGlass.js index ff44c2728..9f5575f75 100644 --- a/js/ui/lookingGlass.js +++ b/js/ui/lookingGlass.js @@ -801,21 +801,21 @@ const Extensions = GObject.registerClass({ _stateToString(extensionState) { switch (extensionState) { - case ExtensionState.ENABLED: - return _('Enabled'); - case ExtensionState.DISABLED: + case ExtensionState.ACTIVE: + return _('Active'); + case ExtensionState.INACTIVE: case ExtensionState.INITIALIZED: - return _('Disabled'); + return _('Inactive'); case ExtensionState.ERROR: return _('Error'); case ExtensionState.OUT_OF_DATE: return _('Out of date'); case ExtensionState.DOWNLOADING: return _('Downloading'); - case ExtensionState.DISABLING: - return _('Disabling'); - case ExtensionState.ENABLING: - return _('Enabling'); + case ExtensionState.DEACTIVATING: + return _('Deactivating'); + case ExtensionState.ACTIVATING: + return _('Activating'); } return 'Unknown'; // Not translated, shouldn't appear } diff --git a/subprojects/extensions-app/js/extensionRow.js b/subprojects/extensions-app/js/extensionRow.js index 965bcd126..3caa636fe 100644 --- a/subprojects/extensions-app/js/extensionRow.js +++ b/subprojects/extensions-app/js/extensionRow.js @@ -115,7 +115,7 @@ export const ExtensionRow = GObject.registerClass({ } _updateState() { - const state = this._extension.state === ExtensionState.ENABLED; + const state = this._extension.state === ExtensionState.ACTIVE; const action = this._actionGroup.lookup_action('enabled'); action.set_state(new GLib.Variant('b', state));