extensionUtils: Use non-legacy style
The file already largely conforms to the new style. Quickly fix up the remaining issues before making any major changes. Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2837>
This commit is contained in:
parent
4a0b0e26c7
commit
23f525785c
@ -101,11 +101,10 @@ function getCurrentExtension() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* initTranslations:
|
|
||||||
* @param {string=} domain - the gettext domain to use
|
|
||||||
*
|
|
||||||
* Initialize Gettext to load translations from extensionsdir/locale.
|
* Initialize Gettext to load translations from extensionsdir/locale.
|
||||||
* If @domain is not provided, it will be taken from metadata['gettext-domain']
|
* If @domain is not provided, it will be taken from metadata['gettext-domain']
|
||||||
|
*
|
||||||
|
* @param {string=} domain - the gettext domain to use
|
||||||
*/
|
*/
|
||||||
function initTranslations(domain) {
|
function initTranslations(domain) {
|
||||||
let extension = getCurrentExtension();
|
let extension = getCurrentExtension();
|
||||||
@ -127,49 +126,48 @@ function initTranslations(domain) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* gettext:
|
|
||||||
* @param {string} str - the string to translate
|
|
||||||
*
|
|
||||||
* Translate @str using the extension's gettext domain
|
* Translate @str using the extension's gettext domain
|
||||||
*
|
*
|
||||||
* @returns {string} - the translated string
|
* @param {string} str - the string to translate
|
||||||
*
|
*
|
||||||
|
* @returns {string} - the translated string
|
||||||
*/
|
*/
|
||||||
function gettext(str) {
|
function gettext(str) {
|
||||||
return callExtensionGettextFunc('gettext', str);
|
return callExtensionGettextFunc('gettext', str);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* ngettext:
|
* Translate @str and choose plural form using the extension's
|
||||||
|
* gettext domain
|
||||||
|
*
|
||||||
* @param {string} str - the string to translate
|
* @param {string} str - the string to translate
|
||||||
* @param {string} strPlural - the plural form of the string
|
* @param {string} strPlural - the plural form of the string
|
||||||
* @param {number} n - the quantity for which translation is needed
|
* @param {number} n - the quantity for which translation is needed
|
||||||
*
|
*
|
||||||
* Translate @str and choose plural form using the extension's
|
|
||||||
* gettext domain
|
|
||||||
*
|
|
||||||
* @returns {string} - the translated string
|
* @returns {string} - the translated string
|
||||||
*
|
|
||||||
*/
|
*/
|
||||||
function ngettext(str, strPlural, n) {
|
function ngettext(str, strPlural, n) {
|
||||||
return callExtensionGettextFunc('ngettext', str, strPlural, n);
|
return callExtensionGettextFunc('ngettext', str, strPlural, n);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* pgettext:
|
|
||||||
* @param {string} context - context to disambiguate @str
|
|
||||||
* @param {string} str - the string to translate
|
|
||||||
*
|
|
||||||
* Translate @str in the context of @context using the extension's
|
* Translate @str in the context of @context using the extension's
|
||||||
* gettext domain
|
* gettext domain
|
||||||
*
|
*
|
||||||
* @returns {string} - the translated string
|
* @param {string} context - context to disambiguate @str
|
||||||
|
* @param {string} str - the string to translate
|
||||||
*
|
*
|
||||||
|
* @returns {string} - the translated string
|
||||||
*/
|
*/
|
||||||
function pgettext(context, str) {
|
function pgettext(context, str) {
|
||||||
return callExtensionGettextFunc('pgettext', context, str);
|
return callExtensionGettextFunc('pgettext', context, str);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @private
|
||||||
|
* @param {string} func - function name
|
||||||
|
* @param {*[]} args - function arguments
|
||||||
|
*/
|
||||||
function callExtensionGettextFunc(func, ...args) {
|
function callExtensionGettextFunc(func, ...args) {
|
||||||
const extension = getCurrentExtension();
|
const extension = getCurrentExtension();
|
||||||
|
|
||||||
@ -183,13 +181,12 @@ function callExtensionGettextFunc(func, ...args) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* getSettings:
|
|
||||||
* @param {string=} schema - the GSettings schema id
|
|
||||||
* @returns {Gio.Settings} - a new settings object for @schema
|
|
||||||
*
|
|
||||||
* Builds and returns a GSettings schema for @schema, using schema files
|
* Builds and returns a GSettings schema for @schema, using schema files
|
||||||
* in extensionsdir/schemas. If @schema is omitted, it is taken from
|
* in extensionsdir/schemas. If @schema is omitted, it is taken from
|
||||||
* metadata['settings-schema'].
|
* metadata['settings-schema'].
|
||||||
|
*
|
||||||
|
* @param {string=} schema - the GSettings schema id
|
||||||
|
* @returns {Gio.Settings} - a new settings object for @schema
|
||||||
*/
|
*/
|
||||||
function getSettings(schema) {
|
function getSettings(schema) {
|
||||||
let extension = getCurrentExtension();
|
let extension = getCurrentExtension();
|
||||||
@ -206,9 +203,8 @@ function getSettings(schema) {
|
|||||||
let schemaDir = extension.dir.get_child('schemas');
|
let schemaDir = extension.dir.get_child('schemas');
|
||||||
let schemaSource;
|
let schemaSource;
|
||||||
if (schemaDir.query_exists(null)) {
|
if (schemaDir.query_exists(null)) {
|
||||||
schemaSource = GioSSS.new_from_directory(schemaDir.get_path(),
|
schemaSource = GioSSS.new_from_directory(
|
||||||
GioSSS.get_default(),
|
schemaDir.get_path(), GioSSS.get_default(), false);
|
||||||
false);
|
|
||||||
} else {
|
} else {
|
||||||
schemaSource = GioSSS.get_default();
|
schemaSource = GioSSS.get_default();
|
||||||
}
|
}
|
||||||
@ -217,12 +213,10 @@ function getSettings(schema) {
|
|||||||
if (!schemaObj)
|
if (!schemaObj)
|
||||||
throw new Error(`Schema ${schema} could not be found for extension ${extension.metadata.uuid}. Please check your installation`);
|
throw new Error(`Schema ${schema} could not be found for extension ${extension.metadata.uuid}. Please check your installation`);
|
||||||
|
|
||||||
return new Gio.Settings({ settings_schema: schemaObj });
|
return new Gio.Settings({settings_schema: schemaObj});
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* openPrefs:
|
|
||||||
*
|
|
||||||
* Open the preference dialog of the current extension
|
* Open the preference dialog of the current extension
|
||||||
*/
|
*/
|
||||||
function openPrefs() {
|
function openPrefs() {
|
||||||
@ -241,8 +235,15 @@ function openPrefs() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Serialize extension into an object that can be used
|
||||||
|
* in a vardict {GLib.Variant}
|
||||||
|
*
|
||||||
|
* @param {object} extension - an extension object
|
||||||
|
* @returns {object}
|
||||||
|
*/
|
||||||
function serializeExtension(extension) {
|
function serializeExtension(extension) {
|
||||||
let obj = { ...extension.metadata };
|
let obj = {...extension.metadata};
|
||||||
|
|
||||||
SERIALIZED_PROPERTIES.forEach(prop => {
|
SERIALIZED_PROPERTIES.forEach(prop => {
|
||||||
obj[prop] = extension[prop];
|
obj[prop] = extension[prop];
|
||||||
@ -271,8 +272,14 @@ function serializeExtension(extension) {
|
|||||||
return res;
|
return res;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Deserialize an unpacked variant into an extension object
|
||||||
|
*
|
||||||
|
* @param {object} variant - an unpacked {GLib.Variant}
|
||||||
|
* @returns {object}
|
||||||
|
*/
|
||||||
function deserializeExtension(variant) {
|
function deserializeExtension(variant) {
|
||||||
let res = { metadata: {} };
|
let res = {metadata: {}};
|
||||||
for (let prop in variant) {
|
for (let prop in variant) {
|
||||||
let val = variant[prop].unpack();
|
let val = variant[prop].unpack();
|
||||||
if (SERIALIZED_PROPERTIES.includes(prop))
|
if (SERIALIZED_PROPERTIES.includes(prop))
|
||||||
|
Loading…
Reference in New Issue
Block a user