diff --git a/js/extensionPrefs/main.js b/js/extensionPrefs/main.js index af1ad08d5..f0e604a27 100644 --- a/js/extensionPrefs/main.js +++ b/js/extensionPrefs/main.js @@ -623,7 +623,7 @@ function initEnvironment() { }, logError(s) { - log('ERROR: ' + s); + log(`ERROR: ${s}`); }, userdatadir: GLib.build_filenamev([GLib.get_user_data_dir(), 'gnome-shell']) diff --git a/js/gdm/fingerprint.js b/js/gdm/fingerprint.js index e27c7c1b1..3e203ae31 100644 --- a/js/gdm/fingerprint.js +++ b/js/gdm/fingerprint.js @@ -24,7 +24,7 @@ function FprintManager() { try { self.init(null); } catch (e) { - log('Failed to connect to Fprint service: ' + e.message); + log(`Failed to connect to Fprint service: ${e.message}`); return null; } diff --git a/js/gdm/loginDialog.js b/js/gdm/loginDialog.js index 9412bc2db..da5ed912c 100644 --- a/js/gdm/loginDialog.js +++ b/js/gdm/loginDialog.js @@ -406,13 +406,13 @@ var LoginDialog = GObject.registerClass({ this._settings = new Gio.Settings({ schema_id: GdmUtil.LOGIN_SCREEN_SCHEMA }); - this._settings.connect('changed::' + GdmUtil.BANNER_MESSAGE_KEY, + this._settings.connect(`changed::${GdmUtil.BANNER_MESSAGE_KEY}`, this._updateBanner.bind(this)); - this._settings.connect('changed::' + GdmUtil.BANNER_MESSAGE_TEXT_KEY, + this._settings.connect(`changed::${GdmUtil.BANNER_MESSAGE_TEXT_KEY}`, this._updateBanner.bind(this)); - this._settings.connect('changed::' + GdmUtil.DISABLE_USER_LIST_KEY, + this._settings.connect(`changed::${GdmUtil.DISABLE_USER_LIST_KEY}`, this._updateDisableUserList.bind(this)); - this._settings.connect('changed::' + GdmUtil.LOGO_KEY, + this._settings.connect(`changed::${GdmUtil.LOGO_KEY}`, this._updateLogo.bind(this)); this._textureCache = St.TextureCache.get_default(); diff --git a/js/misc/extensionUtils.js b/js/misc/extensionUtils.js index 908f9fd38..7e8743333 100644 --- a/js/misc/extensionUtils.js +++ b/js/misc/extensionUtils.js @@ -173,25 +173,25 @@ function createExtensionObject(uuid, dir, type) { if (metadataContents instanceof Uint8Array) metadataContents = imports.byteArray.toString(metadataContents); } catch (e) { - throw new Error('Failed to load metadata.json: ' + e); + throw new Error(`Failed to load metadata.json: ${e}`); } let meta; try { meta = JSON.parse(metadataContents); } catch (e) { - throw new Error('Failed to parse metadata.json: ' + e); + throw new Error(`Failed to parse metadata.json: ${e}`); } let requiredProperties = ['uuid', 'name', 'description', 'shell-version']; for (let i = 0; i < requiredProperties.length; i++) { let prop = requiredProperties[i]; if (!meta[prop]) { - throw new Error('missing "' + prop + '" property in metadata.json'); + throw new Error(`missing "${prop}" property in metadata.json`); } } if (uuid != meta.uuid) { - throw new Error('uuid "' + meta.uuid + '" from metadata.json does not match directory name "' + uuid + '"'); + throw new Error(`uuid "${meta.uuid}" from metadata.json does not match directory name "${uuid}"`); } let extension = {}; diff --git a/js/misc/fileUtils.js b/js/misc/fileUtils.js index 8f2b94d95..06ad76eaa 100644 --- a/js/misc/fileUtils.js +++ b/js/misc/fileUtils.js @@ -90,7 +90,7 @@ function loadInterfaceXML(iface) { else xml = bytes.toString(); } catch (e) { - log('Failed to load D-Bus interface ' + iface); + log(`Failed to load D-Bus interface ${iface}`); } return xml; diff --git a/js/misc/history.js b/js/misc/history.js index 3719e9c6c..092c64060 100644 --- a/js/misc/history.js +++ b/js/misc/history.js @@ -18,7 +18,7 @@ var HistoryManager = class { this._historyIndex = 0; if (this._key) { this._history = global.settings.get_strv(this._key); - global.settings.connect('changed::' + this._key, + global.settings.connect(`changed::${this._key}`, this._historyChanged.bind(this)); } else { diff --git a/js/misc/ibusManager.js b/js/misc/ibusManager.js index 5a0d2906a..362c4cbf3 100644 --- a/js/misc/ibusManager.js +++ b/js/misc/ibusManager.js @@ -63,7 +63,7 @@ var IBusManager = class { Gio.Subprocess.new(['ibus-daemon', '--xim', '--panel', 'disable'], Gio.SubprocessFlags.NONE); } catch (e) { - log('Failed to launch ibus-daemon: ' + e.message); + log(`Failed to launch ibus-daemon: ${e.message}`); } } diff --git a/js/misc/inputMethod.js b/js/misc/inputMethod.js index 3699a21e5..29bb2d4e2 100644 --- a/js/misc/inputMethod.js +++ b/js/misc/inputMethod.js @@ -262,7 +262,7 @@ class InputMethod extends Clutter.InputMethod { let retval = context.process_key_event_async_finish(res); this.notify_key_event(event, retval); } catch (e) { - log('Error processing key on IM: ' + e.message); + log(`Error processing key on IM: ${e.message}`); } }); return true; diff --git a/js/misc/objectManager.js b/js/misc/objectManager.js index d4ea6abad..3743c4da7 100644 --- a/js/misc/objectManager.js +++ b/js/misc/objectManager.js @@ -93,7 +93,7 @@ var ObjectManager = class { try { initable.init_finish(result); } catch (e) { - logError(e, 'could not initialize proxy for interface ' + interfaceName); + logError(e, `could not initialize proxy for interface ${interfaceName}`); if (onFinished) onFinished(); @@ -155,7 +155,7 @@ var ObjectManager = class { try { initable.init_finish(result); } catch (e) { - logError(e, 'could not initialize object manager for object ' + this._serviceName); + logError(e, `could not initialize object manager for object ${this._serviceName}`); this._tryToCompleteLoad(); return; @@ -193,7 +193,7 @@ var ObjectManager = class { this._managerProxy.GetManagedObjectsRemote((result, error) => { if (!result) { if (error) { - logError(error, 'could not get remote objects for service ' + this._serviceName + ' path ' + this._managerPath); + logError(error, `could not get remote objects for service ${this._serviceName} path ${this._managerPath}`); } this._tryToCompleteLoad(); diff --git a/js/misc/systemActions.js b/js/misc/systemActions.js index cbd9f2567..a5e793909 100644 --- a/js/misc/systemActions.js +++ b/js/misc/systemActions.js @@ -151,17 +151,17 @@ const SystemActions = GObject.registerClass({ this._userManager.connect('user-removed', () => this._updateMultiUser()); - this._lockdownSettings.connect('changed::' + DISABLE_USER_SWITCH_KEY, + this._lockdownSettings.connect(`changed::${DISABLE_USER_SWITCH_KEY}`, () => this._updateSwitchUser()); - this._lockdownSettings.connect('changed::' + DISABLE_LOG_OUT_KEY, + this._lockdownSettings.connect(`changed::${DISABLE_LOG_OUT_KEY}`, () => this._updateLogout()); - global.settings.connect('changed::' + ALWAYS_SHOW_LOG_OUT_KEY, + global.settings.connect(`changed::${ALWAYS_SHOW_LOG_OUT_KEY}`, () => this._updateLogout()); - this._lockdownSettings.connect('changed::' + DISABLE_LOCK_SCREEN_KEY, + this._lockdownSettings.connect(`changed::${DISABLE_LOCK_SCREEN_KEY}`, () => this._updateLockScreen()); - this._lockdownSettings.connect('changed::' + DISABLE_LOG_OUT_KEY, + this._lockdownSettings.connect(`changed::${DISABLE_LOG_OUT_KEY}`, () => this._updateHaveShutdown()); this.forceUpdate(); diff --git a/js/misc/util.js b/js/misc/util.js index 036207cc1..b97218e07 100644 --- a/js/misc/util.js +++ b/js/misc/util.js @@ -17,7 +17,7 @@ const _leadingJunk = '[\\s`(\\[{\'\\"<\u00AB\u201C\u2018]'; const _notTrailingJunk = '[^\\s`!()\\[\\]{};:\'\\".,<>?\u00AB\u00BB\u201C\u201D\u2018\u2019]'; const _urlRegexp = new RegExp( - '(^|' + _leadingJunk + ')' + + `(^|${_leadingJunk})` + '(' + '(?:' + '(?:http|https|ftp)://' + // scheme:// @@ -29,12 +29,12 @@ const _urlRegexp = new RegExp( '(?:' + // one or more: '[^\\s()<>]+' + // run of non-space non-() '|' + // or - _balancedParens + // balanced parens + `${_balancedParens}` + // balanced parens ')+' + '(?:' + // end with: - _balancedParens + // balanced parens + `${_balancedParens}` + // balanced parens '|' + // or - _notTrailingJunk + // last non-junk char + `${_notTrailingJunk}` + // last non-junk char ')' + ')', 'gi'); @@ -146,7 +146,7 @@ function trySpawnCommandLine(commandLine) { } catch (err) { // Replace "Error invoking GLib.shell_parse_argv: " with // something nicer - err.message = err.message.replace(/[^:]*: /, _("Could not parse command:") + "\n"); + err.message = err.message.replace(/[^:]*: /, `${_("Could not parse command:")}\n`); throw err; } @@ -466,7 +466,7 @@ var AppSettingsMonitor = class { if (!this._settings || handler.id > 0) return; - handler.id = this._settings.connect('changed::' + handler.key, + handler.id = this._settings.connect(`changed::${handler.key}`, handler.callback); handler.callback(this._settings, handler.key); } diff --git a/js/misc/weather.js b/js/misc/weather.js index b1eee3aff..486a86050 100644 --- a/js/misc/weather.js +++ b/js/misc/weather.js @@ -26,7 +26,7 @@ var WeatherClient = class { this._weatherAuthorized = false; this._permStore = new PermissionStore.PermissionStore((proxy, error) => { if (error) { - log('Failed to connect to permissionStore: ' + error.message); + log(`Failed to connect to permissionStore: ${error.message}`); return; } @@ -40,7 +40,7 @@ var WeatherClient = class { this._permStore.LookupRemote('gnome', 'geolocation', (res, error) => { if (error) - log('Error looking up permission: ' + error.message); + log(`Error looking up permission: ${error.message}`); let [perms, data] = error ? [{}, null] : res; let params = ['gnome', 'geolocation', false, data, perms]; @@ -179,7 +179,7 @@ var WeatherClient = class { try { this._gclueService = Geoclue.Simple.new_finish(res); } catch (e) { - log('Failed to connect to Geoclue2 service: ' + e.message); + log(`Failed to connect to Geoclue2 service: ${e.message}`); this._setLocation(this._mostRecentLocation); return; } diff --git a/js/perf/hwtest.js b/js/perf/hwtest.js index b0de64f11..1d9fd7ee0 100644 --- a/js/perf/hwtest.js +++ b/js/perf/hwtest.js @@ -273,7 +273,7 @@ function script_collectTimings(time) { else median = Math.round((times[len / 2 - 1] + times[len / 2]) / 2); - METRICS[timing + 'RedrawTime'].value = median; + METRICS[`${timing}RedrawTime`].value = median; } } diff --git a/js/ui/accessDialog.js b/js/ui/accessDialog.js index 46778739b..eca67a7d4 100644 --- a/js/ui/accessDialog.js +++ b/js/ui/accessDialog.js @@ -135,7 +135,7 @@ var AccessDialogDBus = class { let [handle, appId, parentWindow, title, subtitle, body, options] = params; // We probably want to use parentWindow and global.display.focus_window // for this check in the future - if (appId && appId + '.desktop' != this._windowTracker.focus_app.id) { + if (appId && `${appId}.desktop` != this._windowTracker.focus_app.id) { invocation.return_error_literal(Gio.DBusError, Gio.DBusError.ACCESS_DENIED, 'Only the focused app is allowed to show a system access dialog'); diff --git a/js/ui/appDisplay.js b/js/ui/appDisplay.js index 661b0f98c..78128256d 100644 --- a/js/ui/appDisplay.js +++ b/js/ui/appDisplay.js @@ -151,7 +151,7 @@ class BaseAppView { if (this._items[id]) this._items[id].actor.navigate_focus(null, St.DirectionType.TAB_FORWARD, false); else - log('No such application ' + id); + log(`No such application ${id}`); } selectApp(id) { diff --git a/js/ui/appFavorites.js b/js/ui/appFavorites.js index dd1de1fc9..9573dc5ee 100644 --- a/js/ui/appFavorites.js +++ b/js/ui/appFavorites.js @@ -63,7 +63,7 @@ class AppFavorites { constructor() { this.FAVORITE_APPS_KEY = 'favorite-apps'; this._favorites = {}; - global.settings.connect('changed::' + this.FAVORITE_APPS_KEY, this._onFavsChanged.bind(this)); + global.settings.connect(`changed::${this.FAVORITE_APPS_KEY}`, this._onFavsChanged.bind(this)); this.reload(); } diff --git a/js/ui/audioDeviceSelection.js b/js/ui/audioDeviceSelection.js index 06459846a..1b6522680 100644 --- a/js/ui/audioDeviceSelection.js +++ b/js/ui/audioDeviceSelection.js @@ -114,7 +114,7 @@ var AudioDeviceSelectionDialog = GObject.registerClass({ let app = Shell.AppSystem.get_default().lookup_app(desktopFile); if (!app) { - log('Settings panel for desktop file ' + desktopFile + ' could not be loaded!'); + log(`Settings panel for desktop file ${desktopFile} could not be loaded!`); return; } diff --git a/js/ui/calendar.js b/js/ui/calendar.js index ff0816eed..3371004fc 100644 --- a/js/ui/calendar.js +++ b/js/ui/calendar.js @@ -17,7 +17,7 @@ var ELLIPSIS_CHAR = '\u2026'; var MESSAGE_ICON_SIZE = -1; // pick up from CSS -var NC_ = (context, str) => context + '\u0004' + str; +var NC_ = (context, str) => `${context}\u0004${str}`; function sameYear(dateA, dateB) { return (dateA.getYear() == dateB.getYear()); @@ -177,7 +177,7 @@ var DBusEventSource = class DBusEventSource { // about the HasCalendars property and would cause an exception trying // to read it) } else { - log('Error loading calendars: ' + e.message); + log(`Error loading calendars: ${e.message}`); return; } } @@ -319,7 +319,7 @@ var Calendar = class Calendar { this._weekStart = Shell.util_get_week_start(); this._settings = new Gio.Settings({ schema_id: 'org.gnome.desktop.calendar' }); - this._settings.connect('changed::' + SHOW_WEEKDATE_KEY, this._onSettingsChange.bind(this)); + this._settings.connect(`changed::${SHOW_WEEKDATE_KEY}`, this._onSettingsChange.bind(this)); this._useWeekdate = this._settings.get_boolean(SHOW_WEEKDATE_KEY); /** @@ -580,12 +580,12 @@ var Calendar = class Calendar { // Hack used in lieu of border-collapse - see gnome-shell.css if (row == 2) - styleClass = 'calendar-day-top ' + styleClass; + styleClass = `calendar-day-top ${styleClass}`; let leftMost = rtl ? iter.getDay() == (this._weekStart + 6) % 7 : iter.getDay() == this._weekStart; if (leftMost) - styleClass = 'calendar-day-left ' + styleClass; + styleClass = `calendar-day-left ${styleClass}`; if (sameDay(now, iter)) styleClass += ' calendar-today'; diff --git a/js/ui/components/automountManager.js b/js/ui/components/automountManager.js index db5400f5d..4d9d61b02 100644 --- a/js/ui/components/automountManager.js +++ b/js/ui/components/automountManager.js @@ -114,7 +114,7 @@ var AutomountManager = class { try { drive.stop_finish(res); } catch (e) { - log("Unable to stop the drive after drive-eject-button " + e.toString()); + log(`Unable to stop the drive after drive-eject-button ${e.toString()}`); } }); } else if (drive.can_eject()) { @@ -123,7 +123,7 @@ var AutomountManager = class { try { drive.eject_with_operation_finish(res); } catch (e) { - log("Unable to eject the drive after drive-eject-button " + e.toString()); + log(`Unable to eject the drive after drive-eject-button ${e.toString()}`); } }); } @@ -211,7 +211,7 @@ var AutomountManager = class { } if (!e.matches(Gio.IOErrorEnum, Gio.IOErrorEnum.FAILED_HANDLED)) - log('Unable to mount volume ' + volume.get_name() + ': ' + e.toString()); + log(`Unable to mount volume ${volume.get_name()}: ${e.toString()}`); this._closeOperation(volume); } } diff --git a/js/ui/components/autorunManager.js b/js/ui/components/autorunManager.js index 4891e5d95..313edc9a8 100644 --- a/js/ui/components/autorunManager.js +++ b/js/ui/components/autorunManager.js @@ -65,8 +65,7 @@ function startAppForMount(app, mount) { retval = app.launch(files, global.create_app_launch_context(0, -1)); } catch (e) { - log('Unable to launch the application ' + app.get_name() - + ': ' + e.toString()); + log(`Unable to launch the application ${app.get_name()}: ${e}`); } return retval; @@ -107,8 +106,7 @@ var ContentTypeDiscoverer = class { try { contentTypes = mount.guess_content_type_finish(res); } catch (e) { - log('Unable to guess content types on added mount ' + mount.get_name() - + ': ' + e.toString()); + log(`Unable to guess content types on added mount ${mount.get_name()}: ${e}`); } if (contentTypes.length) { diff --git a/js/ui/components/networkAgent.js b/js/ui/components/networkAgent.js index 37352aef8..d071190ca 100644 --- a/js/ui/components/networkAgent.js +++ b/js/ui/components/networkAgent.js @@ -216,7 +216,7 @@ class NetworkSecretDialog extends ModalDialog.ModalDialog { validate: this._validateWpaPsk, password: true }); break; case 'none': // static WEP - secrets.push({ label: _("Key: "), key: 'wep-key' + wirelessSecuritySetting.wep_tx_keyidx, + secrets.push({ label: _("Key: "), key: `wep-key${wirelessSecuritySetting.wep_tx_keyidx}`, value: wirelessSecuritySetting.get_wep_key(wirelessSecuritySetting.wep_tx_keyidx) || '', wep_key_type: wirelessSecuritySetting.wep_key_type, validate: this._validateStaticWep, password: true }); @@ -232,7 +232,7 @@ class NetworkSecretDialog extends ModalDialog.ModalDialog { this._get8021xSecrets(secrets); break; default: - log('Invalid wireless key management: ' + wirelessSecuritySetting.key_mgmt); + log(`Invalid wireless key management: ${wirelessSecuritySetting.key_mgmt}`); } } @@ -274,7 +274,7 @@ class NetworkSecretDialog extends ModalDialog.ModalDialog { value: ieee8021xSetting.private_key_password || '', password: true }); break; default: - log('Invalid EAP/IEEE802.1x method: ' + ieee8021xSetting.get_eap_method(0)); + log(`Invalid EAP/IEEE802.1x method: ${ieee8021xSetting.get_eap_method(0)}`); } } @@ -344,7 +344,7 @@ class NetworkSecretDialog extends ModalDialog.ModalDialog { this._getMobileSecrets(content.secrets, connectionType); break; default: - log('Invalid connection type: ' + connectionType); + log(`Invalid connection type: ${connectionType}`); } return content; @@ -588,12 +588,12 @@ var VPNRequestHandler = class { try { vpnSetting.foreach_data_item((key, value) => { - this._stdin.write('DATA_KEY=' + key + '\n', null); - this._stdin.write('DATA_VAL=' + (value || '') + '\n\n', null); + this._stdin.write(`DATA_KEY=${key}\n`, null); + this._stdin.write(`DATA_VAL=${value || ''}\n\n`, null); }); vpnSetting.foreach_secret((key, value) => { - this._stdin.write('SECRET_KEY=' + key + '\n', null); - this._stdin.write('SECRET_VAL=' + (value || '') + '\n\n', null); + this._stdin.write(`SECRET_KEY=${key}\n`, null); + this._stdin.write(`SECRET_VAL=${value || ''}\n\n`, null); }); this._stdin.write('DONE\n\n', null); } catch (e) { @@ -622,7 +622,7 @@ var NetworkAgent = class { let monitor = this._pluginDir.monitor(Gio.FileMonitorFlags.NONE, null); monitor.connect('changed', () => this._vpnCacheBuilt = false); } catch (e) { - log('Failed to create monitor for VPN plugin dir: ' + e.message); + log(`Failed to create monitor for VPN plugin dir: ${e.message}`); } this._native.connect('new-request', this._newRequest.bind(this)); @@ -709,7 +709,7 @@ var NetworkAgent = class { body = _("A password is required to connect to ā€œ%sā€.").format(connectionSetting.get_id()); break; default: - log('Invalid connection type: ' + connectionType); + log(`Invalid connection type: ${connectionType}`); this._native.respond(requestId, Shell.NetworkAgentResponse.INTERNAL_ERROR); return; } diff --git a/js/ui/components/polkitAgent.js b/js/ui/components/polkitAgent.js index f228eb90a..4027b480c 100644 --- a/js/ui/components/polkitAgent.js +++ b/js/ui/components/polkitAgent.js @@ -38,8 +38,8 @@ var AuthenticationDialog = GObject.registerClass({ this.contentLayout.add_actor(content); if (userNames.length > 1) { - log('polkitAuthenticationAgent: Received ' + userNames.length + - ' identities that can be used for authentication. Only ' + + log(`polkitAuthenticationAgent: Received ${userNames.length} ` + + 'identities that can be used for authentication. Only ' + 'considering one.'); } @@ -180,9 +180,9 @@ var AuthenticationDialog = GObject.registerClass({ // // We could add retrying if this turns out to be a problem - log('polkitAuthenticationAgent: Failed to show modal dialog.' + - ' Dismissing authentication request for action-id ' + this.actionId + - ' cookie ' + this._cookie); + log('polkitAuthenticationAgent: Failed to show modal dialog. ' + + `Dismissing authentication request for action-id ${this.actionId} ` + + `cookie ${this._cookie}`); this._emitDone(true); } } diff --git a/js/ui/components/telepathyClient.js b/js/ui/components/telepathyClient.js index d431cd254..dadca7b4d 100644 --- a/js/ui/components/telepathyClient.js +++ b/js/ui/components/telepathyClient.js @@ -87,7 +87,7 @@ var TelepathyComponent = class { try { this._client.register(); } catch (e) { - throw new Error('Couldn\'t register Telepathy client. Error: \n' + e); + throw new Error(`Could not register Telepathy client. Error: ${e}`); } if (!this._client.account_manager.is_prepared(Tp.AccountManager.get_feature_quark_core())) @@ -253,7 +253,7 @@ class TelepathyClient extends Tp.BaseClient { dispatchOp.claim_with_finish(result); this._handlingChannels(account, conn, [channel], false); } catch (err) { - log('Failed to Claim channel: ' + err); + log(`Failed to Claim channel: ${err}`); } }); diff --git a/js/ui/environment.js b/js/ui/environment.js index c9ff73a21..a0d32f4da 100644 --- a/js/ui/environment.js +++ b/js/ui/environment.js @@ -111,7 +111,7 @@ function init() { let base = origToString.call(this); try { if ('actor' in this && this.actor instanceof Clutter.Actor) - return base.replace(/\]$/, ' delegate for ' + this.actor.toString().substring(1)); + return base.replace(/\]$/, ` delegate for ${this.actor.toString().substring(1)}`); else return base; } catch (e) { diff --git a/js/ui/extensionDownloader.js b/js/ui/extensionDownloader.js index 1e6ff6ee3..c6502d501 100644 --- a/js/ui/extensionDownloader.js +++ b/js/ui/extensionDownloader.js @@ -10,9 +10,9 @@ const FileUtils = imports.misc.fileUtils; const ModalDialog = imports.ui.modalDialog; var REPOSITORY_URL_BASE = 'https://extensions.gnome.org'; -var REPOSITORY_URL_DOWNLOAD = REPOSITORY_URL_BASE + '/download-extension/%s.shell-extension.zip'; -var REPOSITORY_URL_INFO = REPOSITORY_URL_BASE + '/extension-info/'; -var REPOSITORY_URL_UPDATE = REPOSITORY_URL_BASE + '/update-info/'; +var REPOSITORY_URL_DOWNLOAD = `${REPOSITORY_URL_BASE}/download-extension/%s.shell-extension.zip`; +var REPOSITORY_URL_INFO = `${REPOSITORY_URL_BASE}/extension-info/`; +var REPOSITORY_URL_UPDATE = `${REPOSITORY_URL_BASE}/update-info/`; let _httpSession; @@ -24,7 +24,7 @@ function installExtension(uuid, invocation) { _httpSession.queue_message(message, (session, message) => { if (message.status_code != Soup.KnownStatusCode.OK) { - ExtensionSystem.logExtensionError(uuid, 'downloading info: ' + message.status_code); + ExtensionSystem.logExtensionError(uuid, `downloading info: ${message.status_code}`); invocation.return_dbus_error('org.gnome.Shell.DownloadInfoError', message.status_code.toString()); return; } @@ -33,7 +33,7 @@ function installExtension(uuid, invocation) { try { info = JSON.parse(message.response_body.data); } catch (e) { - ExtensionSystem.logExtensionError(uuid, 'parsing info: ' + e); + ExtensionSystem.logExtensionError(uuid, `parsing info: ${e}`); invocation.return_dbus_error('org.gnome.Shell.ParseInfoError', e.toString()); return; } @@ -220,7 +220,7 @@ class InstallExtensionDialog extends ModalDialog.ModalDialog { function errback(code, message) { let msg = message ? message.toString() : ''; log('Error while installing %s: %s (%s)'.format(uuid, code, msg)); - invocation.return_dbus_error('org.gnome.Shell.' + code, msg); + invocation.return_dbus_error(`org.gnome.Shell.${code}`, msg); } function callback() { diff --git a/js/ui/extensionSystem.js b/js/ui/extensionSystem.js index 983d7129e..7034f3c7c 100644 --- a/js/ui/extensionSystem.js +++ b/js/ui/extensionSystem.js @@ -111,7 +111,7 @@ function enableExtension(uuid) { extensionOrder.push(uuid); - let stylesheetNames = [global.session_mode + '.css', 'stylesheet.css']; + let stylesheetNames = [`${global.session_mode}.css`, 'stylesheet.css']; let theme = St.ThemeContext.get_for_stage(global.stage).get_theme(); for (let i = 0; i < stylesheetNames.length; i++) { try { @@ -313,9 +313,9 @@ function _onVersionValidationChanged() { } function _loadExtensions() { - global.settings.connect('changed::' + ENABLED_EXTENSIONS_KEY, onEnabledExtensionsChanged); - global.settings.connect('changed::' + DISABLE_USER_EXTENSIONS_KEY, onEnabledExtensionsChanged); - global.settings.connect('changed::' + EXTENSION_DISABLE_VERSION_CHECK_KEY, _onVersionValidationChanged); + global.settings.connect(`changed::${ENABLED_EXTENSIONS_KEY}`, onEnabledExtensionsChanged); + global.settings.connect(`changed::${DISABLE_USER_EXTENSIONS_KEY}`, onEnabledExtensionsChanged); + global.settings.connect(`changed::${EXTENSION_DISABLE_VERSION_CHECK_KEY}`, _onVersionValidationChanged); enabledExtensions = getEnabledExtensions(); diff --git a/js/ui/focusCaretTracker.js b/js/ui/focusCaretTracker.js index 3f8ff93a9..cc70ae514 100644 --- a/js/ui/focusCaretTracker.js +++ b/js/ui/focusCaretTracker.js @@ -56,8 +56,8 @@ var FocusCaretTracker = class FocusCaretTracker { if (!this._initAtspi() || this._focusListenerRegistered) return; - this._atspiListener.register(STATECHANGED + ':focused'); - this._atspiListener.register(STATECHANGED + ':selected'); + this._atspiListener.register(`${STATECHANGED}:focused`); + this._atspiListener.register(`${STATECHANGED}:selected`); this._focusListenerRegistered = true; } @@ -73,8 +73,8 @@ var FocusCaretTracker = class FocusCaretTracker { if (!this._focusListenerRegistered) return; - this._atspiListener.deregister(STATECHANGED + ':focused'); - this._atspiListener.deregister(STATECHANGED + ':selected'); + this._atspiListener.deregister(`${STATECHANGED}:focused`); + this._atspiListener.deregister(`${STATECHANGED}:selected`); this._focusListenerRegistered = false; } diff --git a/js/ui/lookingGlass.js b/js/ui/lookingGlass.js index 6de84002b..061e36777 100644 --- a/js/ui/lookingGlass.js +++ b/js/ui/lookingGlass.js @@ -284,7 +284,7 @@ var Result = class Result { this.actor.add(cmdTxt); let box = new St.BoxLayout({}); this.actor.add(box); - let resultTxt = new St.Label({ text: 'r(' + index + ') = ' }); + let resultTxt = new St.Label({ text: `r(${index}) = ` }); resultTxt.clutter_text.ellipsize = Pango.EllipsizeMode.END; box.add(resultTxt); let objLink = new ObjLink(this._lookingGlass, o); @@ -320,7 +320,7 @@ var WindowList = class WindowList { box.add(windowLink.actor, { x_align: St.Align.START, x_fill: false }); let propsBox = new St.BoxLayout({ vertical: true, style: 'padding-left: 6px;' }); box.add(propsBox); - propsBox.add(new St.Label({ text: 'wmclass: ' + metaWindow.get_wm_class() })); + propsBox.add(new St.Label({ text: `wmclass: ${metaWindow.get_wm_class()}` })); let app = tracker.get_window_app(metaWindow); if (app != null && !app.is_window_backed()) { let icon = app.create_icon_texture(22); @@ -402,7 +402,7 @@ var ObjInspector = class ObjInspector { link = new St.Label({ text: '' }); } let hbox = new St.BoxLayout(); - hbox.add(new St.Label({ text: propName + ': ' })); + hbox.add(new St.Label({ text: `${propName}: ` })); hbox.add(link); this._container.add_actor(hbox); } @@ -602,9 +602,9 @@ var Inspector = GObject.registerClass({ this._target = target; this._pointerTarget = target; - let position = '[inspect x: ' + stageX + ' y: ' + stageY + ']'; + let position = `[inspect x: ${stageX} y: ${stageY}]`; this._displayText.text = ''; - this._displayText.text = position + ' ' + this._target; + this._displayText.text = `${position} ${this._target}`; this._lookingGlass.setBorderPaintTarget(this._target); } @@ -798,7 +798,7 @@ var LookingGlass = class LookingGlass { inspectIcon.connect('button-press-event', () => { let inspector = new Inspector(this); inspector.connect('target', (i, target, stageX, stageY) => { - this._pushResult('inspect(' + Math.round(stageX) + ', ' + Math.round(stageY) + ')', target); + this._pushResult(`inspect(${Math.round(stageX)}, ${Math.round(stageY)})`, target); }); inspector.connect('closed', () => { this.actor.show(); @@ -892,9 +892,11 @@ var LookingGlass = class LookingGlass { let fontDesc = Pango.FontDescription.from_string(fontName); // We ignore everything but size and style; you'd be crazy to set your system-wide // monospace font to be bold/oblique/etc. Could easily be added here. - this.actor.style = - 'font-size: ' + fontDesc.get_size() / 1024. + (fontDesc.get_size_is_absolute() ? 'px' : 'pt') + ';' - + 'font-family: "' + fontDesc.get_family() + '";'; + let size = fontDesc.get_size() / 1024.; + let unit = fontDesc.get_size_is_absolute() ? 'px' : 'pt'; + this.actor.style = ` + font-size: ${size}${unit}; + font-family: "${fontDesc.get_family()}";`; } setBorderPaintTarget(obj) { @@ -980,7 +982,7 @@ var LookingGlass = class LookingGlass { try { resultObj = Function(fullCmd)(); } catch (e) { - resultObj = ''; + resultObj = ``; } this._pushResult(command, resultObj); diff --git a/js/ui/magnifier.js b/js/ui/magnifier.js index 2683c3f85..c84fd1a48 100644 --- a/js/ui/magnifier.js +++ b/js/ui/magnifier.js @@ -500,61 +500,61 @@ var Magnifier = class Magnifier { _settingsInit(zoomRegion) { this._settings = new Gio.Settings({ schema_id: MAGNIFIER_SCHEMA }); - this._settings.connect('changed::' + SCREEN_POSITION_KEY, + this._settings.connect(`changed::${SCREEN_POSITION_KEY}`, this._updateScreenPosition.bind(this)); - this._settings.connect('changed::' + MAG_FACTOR_KEY, + this._settings.connect(`changed::${MAG_FACTOR_KEY}`, this._updateMagFactor.bind(this)); - this._settings.connect('changed::' + LENS_MODE_KEY, + this._settings.connect(`changed::${LENS_MODE_KEY}`, this._updateLensMode.bind(this)); - this._settings.connect('changed::' + CLAMP_MODE_KEY, + this._settings.connect(`changed::${CLAMP_MODE_KEY}`, this._updateClampMode.bind(this)); - this._settings.connect('changed::' + MOUSE_TRACKING_KEY, + this._settings.connect(`changed::${MOUSE_TRACKING_KEY}`, this._updateMouseTrackingMode.bind(this)); - this._settings.connect('changed::' + FOCUS_TRACKING_KEY, + this._settings.connect(`changed::${FOCUS_TRACKING_KEY}`, this._updateFocusTrackingMode.bind(this)); - this._settings.connect('changed::' + CARET_TRACKING_KEY, + this._settings.connect(`changed::${CARET_TRACKING_KEY}`, this._updateCaretTrackingMode.bind(this)); - this._settings.connect('changed::' + INVERT_LIGHTNESS_KEY, + this._settings.connect(`changed::${INVERT_LIGHTNESS_KEY}`, this._updateInvertLightness.bind(this)); - this._settings.connect('changed::' + COLOR_SATURATION_KEY, + this._settings.connect(`changed::${COLOR_SATURATION_KEY}`, this._updateColorSaturation.bind(this)); - this._settings.connect('changed::' + BRIGHT_RED_KEY, + this._settings.connect(`changed::${BRIGHT_RED_KEY}`, this._updateBrightness.bind(this)); - this._settings.connect('changed::' + BRIGHT_GREEN_KEY, + this._settings.connect(`changed::${BRIGHT_GREEN_KEY}`, this._updateBrightness.bind(this)); - this._settings.connect('changed::' + BRIGHT_BLUE_KEY, + this._settings.connect(`changed::${BRIGHT_BLUE_KEY}`, this._updateBrightness.bind(this)); - this._settings.connect('changed::' + CONTRAST_RED_KEY, + this._settings.connect(`changed::${CONTRAST_RED_KEY}`, this._updateContrast.bind(this)); - this._settings.connect('changed::' + CONTRAST_GREEN_KEY, + this._settings.connect(`changed::${CONTRAST_GREEN_KEY}`, this._updateContrast.bind(this)); - this._settings.connect('changed::' + CONTRAST_BLUE_KEY, + this._settings.connect(`changed::${CONTRAST_BLUE_KEY}`, this._updateContrast.bind(this)); - this._settings.connect('changed::' + SHOW_CROSS_HAIRS_KEY, () => { + this._settings.connect(`changed::${SHOW_CROSS_HAIRS_KEY}`, () => { this.setCrosshairsVisible(this._settings.get_boolean(SHOW_CROSS_HAIRS_KEY)); }); - this._settings.connect('changed::' + CROSS_HAIRS_THICKNESS_KEY, () => { + this._settings.connect(`changed::${CROSS_HAIRS_THICKNESS_KEY}`, () => { this.setCrosshairsThickness(this._settings.get_int(CROSS_HAIRS_THICKNESS_KEY)); }); - this._settings.connect('changed::' + CROSS_HAIRS_COLOR_KEY, () => { + this._settings.connect(`changed::${CROSS_HAIRS_COLOR_KEY}`, () => { this.setCrosshairsColor(this._settings.get_string(CROSS_HAIRS_COLOR_KEY)); }); - this._settings.connect('changed::' + CROSS_HAIRS_OPACITY_KEY, () => { + this._settings.connect(`changed::${CROSS_HAIRS_OPACITY_KEY}`, () => { this.setCrosshairsOpacity(this._settings.get_double(CROSS_HAIRS_OPACITY_KEY)); }); - this._settings.connect('changed::' + CROSS_HAIRS_LENGTH_KEY, () => { + this._settings.connect(`changed::${CROSS_HAIRS_LENGTH_KEY}`, () => { this.setCrosshairsLength(this._settings.get_int(CROSS_HAIRS_LENGTH_KEY)); }); - this._settings.connect('changed::' + CROSS_HAIRS_CLIP_KEY, () => { + this._settings.connect(`changed::${CROSS_HAIRS_CLIP_KEY}`, () => { this.setCrosshairsClip(this._settings.get_boolean(CROSS_HAIRS_CLIP_KEY)); }); @@ -797,7 +797,7 @@ var ZoomRegion = class ZoomRegion { try { extents = component.get_extents(Atspi.CoordType.SCREEN); } catch (e) { - log('Failed to read extents of focused component: ' + e.message); + log(`Failed to read extents of focused component: ${e.message}`); return; } @@ -814,7 +814,7 @@ var ZoomRegion = class ZoomRegion { try { extents = text.get_character_extents(text.get_caret_offset(), 0); } catch (e) { - log('Failed to read extents of text caret: ' + e.message); + log(`Failed to read extents of text caret: ${e.message}`); return; } diff --git a/js/ui/magnifierDBus.js b/js/ui/magnifierDBus.js index a287db0e4..872ffe05c 100644 --- a/js/ui/magnifierDBus.js +++ b/js/ui/magnifierDBus.js @@ -85,7 +85,7 @@ var ShellMagnifier = class ShellMagnifier { let ROI = { x: roi[0], y: roi[1], width: roi[2] - roi[0], height: roi[3] - roi[1] }; let viewBox = { x: viewPort[0], y: viewPort[1], width: viewPort[2] - viewPort[0], height: viewPort[3] - viewPort[1] }; let realZoomRegion = Main.magnifier.createZoomRegion(xMagFactor, yMagFactor, ROI, viewBox); - let objectPath = ZOOM_SERVICE_PATH + '/zoomer' + _zoomRegionInstanceCount; + let objectPath = `${ZOOM_SERVICE_PATH}/zoomer${_zoomRegionInstanceCount}`; _zoomRegionInstanceCount++; let zoomRegionProxy = new ShellMagnifierZoomRegion(objectPath, realZoomRegion); diff --git a/js/ui/main.js b/js/ui/main.js index ea0a93984..bd522973f 100644 --- a/js/ui/main.js +++ b/js/ui/main.js @@ -254,7 +254,7 @@ function _initializeUI() { let perfModuleName = GLib.getenv("SHELL_PERF_MODULE"); if (perfModuleName) { let perfOutput = GLib.getenv("SHELL_PERF_OUTPUT"); - let module = eval('imports.perf.' + perfModuleName + ';'); + let module = eval(`imports.perf.${perfModuleName};`); Scripting.runPerfScript(module, perfOutput); } }); @@ -390,9 +390,9 @@ function notify(msg, details) { function notifyError(msg, details) { // Also print to stderr so it's logged somewhere if (details) - log('error: ' + msg + ': ' + details); + log(`error: ${msg}: ${details}`); else - log('error: ' + msg); + log(`error: ${msg}`); notify(msg, details); } diff --git a/js/ui/messageTray.js b/js/ui/messageTray.js index ba41d6b1a..4a0a974b0 100644 --- a/js/ui/messageTray.js +++ b/js/ui/messageTray.js @@ -218,14 +218,14 @@ class NotificationApplicationPolicy extends NotificationPolicy { this._masterSettings = new Gio.Settings({ schema_id: 'org.gnome.desktop.notifications' }); this._settings = new Gio.Settings({ schema_id: 'org.gnome.desktop.notifications.application', - path: '/org/gnome/desktop/notifications/application/' + this._canonicalId + '/' }); + path: `/org/gnome/desktop/notifications/application/${this._canonicalId}/` }); this._masterSettings.connect('changed', this._changed.bind(this)); this._settings.connect('changed', this._changed.bind(this)); } store() { - this._settings.set_string('application-id', this.id + '.desktop'); + this._settings.set_string('application-id', `${this.id}.desktop`); let apps = this._masterSettings.get_strv('application-children'); if (!apps.includes(this._canonicalId)) { @@ -988,7 +988,7 @@ var MessageTray = class MessageTray { add(source) { if (this.contains(source)) { - log('Trying to re-add source ' + source.title); + log(`Trying to re-add source ${source.title}`); return; } diff --git a/js/ui/mpris.js b/js/ui/mpris.js index e900bceb8..0780b9300 100644 --- a/js/ui/mpris.js +++ b/js/ui/mpris.js @@ -135,7 +135,7 @@ var MprisPlayer = class MprisPlayer { // so prefer activating the app via .desktop file if possible let app = null; if (this._mprisProxy.DesktopEntry) { - let desktopId = this._mprisProxy.DesktopEntry + '.desktop'; + let desktopId = `${this._mprisProxy.DesktopEntry}.desktop`; app = Shell.AppSystem.get_default().lookup_app(desktopId); } diff --git a/js/ui/notificationDaemon.js b/js/ui/notificationDaemon.js index 77960725e..17844ca5e 100644 --- a/js/ui/notificationDaemon.js +++ b/js/ui/notificationDaemon.js @@ -474,7 +474,7 @@ class FdoNotificationDaemonSource extends MessageTray.Source { return app; if (appId) { - app = Shell.AppSystem.get_default().lookup_app(appId + '.desktop'); + app = Shell.AppSystem.get_default().lookup_app(`${appId}.desktop`); if (app != null) return app; } @@ -610,7 +610,7 @@ function objectPathFromAppId(appId) { } function getPlatformData() { - let startupId = GLib.Variant.new('s', '_TIME' + global.get_current_time()); + let startupId = GLib.Variant.new('s', `_TIME${global.get_current_time()}`); return { "desktop-startup-id": startupId }; } @@ -623,7 +623,7 @@ class GtkNotificationDaemonAppSource extends MessageTray.Source { if (!GLib.Variant.is_object_path(objectPath)) throw new InvalidAppError(); - let app = Shell.AppSystem.get_default().lookup_app(appId + '.desktop'); + let app = Shell.AppSystem.get_default().lookup_app(`${appId}.desktop`); if (!app) throw new InvalidAppError(); diff --git a/js/ui/padOsd.js b/js/ui/padOsd.js index 2fc81d336..469b7bf04 100644 --- a/js/ui/padOsd.js +++ b/js/ui/padOsd.js @@ -342,7 +342,7 @@ var PadDiagram = GObject.registerClass({ return ('' + ' ' + + `width="${this._imageWidth}" height="${this._imageHeight}"> ` + '