mirror of
https://github.com/edu4rdshl/gnome-shell.git
synced 2026-07-18 07:34:54 +00:00
extensionUtils: Add openPrefs() convenience method
Opening their own preferences is a reasonable desire for extensions, so make up for breaking it by adding a convenience method for that action. https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1163
This commit is contained in:
parent
45bc850715
commit
8030d9ad32
1 changed files with 23 additions and 2 deletions
|
|
@ -1,7 +1,7 @@
|
|||
// -*- mode: js; js-indent-level: 4; indent-tabs-mode: nil -*-
|
||||
/* exported ExtensionState, ExtensionType, getCurrentExtension,
|
||||
getSettings, initTranslations, isOutOfDate, installImporter,
|
||||
serializeExtension, deserializeExtension */
|
||||
getSettings, initTranslations, openPrefs, isOutOfDate,
|
||||
installImporter, serializeExtension, deserializeExtension */
|
||||
|
||||
// Common utils for the extension system and the extension
|
||||
// preferences tool
|
||||
|
|
@ -153,6 +153,27 @@ function getSettings(schema) {
|
|||
return new Gio.Settings({ settings_schema: schemaObj });
|
||||
}
|
||||
|
||||
/**
|
||||
* openPrefs:
|
||||
*
|
||||
* Open the preference dialog of the current extension
|
||||
*/
|
||||
function openPrefs() {
|
||||
const extension = getCurrentExtension();
|
||||
|
||||
if (!extension)
|
||||
throw new Error('openPrefs() can only be called from extensions');
|
||||
|
||||
try {
|
||||
const extensionManager = imports.ui.main.extensionManager;
|
||||
extensionManager.openExtensionPrefs(extension.uuid, '', {});
|
||||
} catch (e) {
|
||||
if (e.name === 'ImportError')
|
||||
throw new Error('openPrefs() cannot be called from preferences');
|
||||
logError(e, 'Failed to open extension preferences');
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* versionCheck:
|
||||
* @param {string[]} required - an array of versions we're compatible with
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue