extensionSystem: Add 'extension-status-changed' signal
https://bugzilla.gnome.org/show_bug.cgi?id=654770
This commit is contained in:
parent
d8a98e5467
commit
a56cd3c3d6
@ -182,6 +182,7 @@ function disableExtension(uuid) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
meta.state = ExtensionState.DISABLED;
|
meta.state = ExtensionState.DISABLED;
|
||||||
|
_signals.emit('extension-state-changed', meta);
|
||||||
}
|
}
|
||||||
|
|
||||||
function enableExtension(uuid) {
|
function enableExtension(uuid) {
|
||||||
@ -202,12 +203,16 @@ function enableExtension(uuid) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
meta.state = ExtensionState.ENABLED;
|
meta.state = ExtensionState.ENABLED;
|
||||||
|
_signals.emit('extension-state-changed', meta);
|
||||||
}
|
}
|
||||||
|
|
||||||
function logExtensionError(uuid, message) {
|
function logExtensionError(uuid, message) {
|
||||||
if (!errors[uuid]) errors[uuid] = [];
|
if (!errors[uuid]) errors[uuid] = [];
|
||||||
errors[uuid].push(message);
|
errors[uuid].push(message);
|
||||||
global.logError('Extension "%s" had error: %s'.format(uuid, message));
|
global.logError('Extension "%s" had error: %s'.format(uuid, message));
|
||||||
|
_signals.emit('extension-state-changed', { uuid: uuid,
|
||||||
|
error: message,
|
||||||
|
state: ExtensionState.ERROR });
|
||||||
}
|
}
|
||||||
|
|
||||||
function loadExtension(dir, enabled, type) {
|
function loadExtension(dir, enabled, type) {
|
||||||
@ -268,6 +273,7 @@ function loadExtension(dir, enabled, type) {
|
|||||||
extensionMeta[uuid] = meta;
|
extensionMeta[uuid] = meta;
|
||||||
meta.type = type;
|
meta.type = type;
|
||||||
meta.path = dir.get_path();
|
meta.path = dir.get_path();
|
||||||
|
meta.error = '';
|
||||||
|
|
||||||
// Default to error, we set success as the last step
|
// Default to error, we set success as the last step
|
||||||
meta.state = ExtensionState.ERROR;
|
meta.state = ExtensionState.ERROR;
|
||||||
@ -335,6 +341,7 @@ function loadExtension(dir, enabled, type) {
|
|||||||
enableExtension(uuid);
|
enableExtension(uuid);
|
||||||
|
|
||||||
_signals.emit('extension-loaded', meta.uuid);
|
_signals.emit('extension-loaded', meta.uuid);
|
||||||
|
_signals.emit('extension-state-changed', meta);
|
||||||
global.log('Loaded extension ' + meta.uuid);
|
global.log('Loaded extension ' + meta.uuid);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
/* -*- mode: js2; js2-basic-offset: 4; indent-tabs-mode: nil -*- */
|
/* -*- mode: js2; js2-basic-offset: 4; indent-tabs-mode: nil -*- */
|
||||||
|
|
||||||
const DBus = imports.dbus;
|
const DBus = imports.dbus;
|
||||||
|
const Lang = imports.lang;
|
||||||
|
|
||||||
const Config = imports.misc.config;
|
const Config = imports.misc.config;
|
||||||
const ExtensionSystem = imports.ui.extensionSystem;
|
const ExtensionSystem = imports.ui.extensionSystem;
|
||||||
@ -49,7 +50,8 @@ const GnomeShellIface = {
|
|||||||
outSignature: ''
|
outSignature: ''
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
signals: [],
|
signals: [{ name: 'ExtensionStatusChanged',
|
||||||
|
inSignature: 'sis' }],
|
||||||
properties: [{ name: 'OverviewActive',
|
properties: [{ name: 'OverviewActive',
|
||||||
signature: 'b',
|
signature: 'b',
|
||||||
access: 'readwrite' },
|
access: 'readwrite' },
|
||||||
@ -68,6 +70,8 @@ function GnomeShell() {
|
|||||||
GnomeShell.prototype = {
|
GnomeShell.prototype = {
|
||||||
_init: function() {
|
_init: function() {
|
||||||
DBus.session.exportObject('/org/gnome/Shell', this);
|
DBus.session.exportObject('/org/gnome/Shell', this);
|
||||||
|
ExtensionSystem.connect('extension-state-changed',
|
||||||
|
Lang.bind(this, this._extensionStateChanged));
|
||||||
},
|
},
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -187,7 +191,14 @@ GnomeShell.prototype = {
|
|||||||
|
|
||||||
ApiVersion: 1,
|
ApiVersion: 1,
|
||||||
|
|
||||||
ShellVersion: Config.PACKAGE_VERSION
|
ShellVersion: Config.PACKAGE_VERSION,
|
||||||
|
|
||||||
|
_extensionStateChanged: function(_, newState) {
|
||||||
|
DBus.session.emit_signal('/org/gnome/Shell',
|
||||||
|
'org.gnome.Shell',
|
||||||
|
'ExtensionStatusChanged', 'sis',
|
||||||
|
[newState.uuid, newState.state, newState.error]);
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
DBus.conformExport(GnomeShell.prototype, GnomeShellIface);
|
DBus.conformExport(GnomeShell.prototype, GnomeShellIface);
|
||||||
|
Loading…
Reference in New Issue
Block a user