From 40e22eb524556e63efa4285c1a9d8f872a507499 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Florian=20M=C3=BCllner?= Date: Wed, 12 Aug 2020 20:59:01 +0200 Subject: [PATCH] cleanup: Use optional chaining and ?? operator Those operators have been supported since gjs switched to mozjs78 last cycle. While not ground-breaking, using it makes for a nice cleanup here and there. Part-of: --- js/ui/altTab.js | 5 ++--- js/ui/appDisplay.js | 2 +- js/ui/components/automountManager.js | 4 ++-- js/ui/components/networkAgent.js | 2 +- js/ui/endSessionDialog.js | 3 +-- js/ui/environment.js | 2 +- js/ui/inhibitShortcutsDialog.js | 2 +- js/ui/notificationDaemon.js | 6 +++--- js/ui/padOsd.js | 4 ++-- js/ui/panel.js | 4 ++-- js/ui/panelMenu.js | 12 +++++++----- js/ui/popupMenu.js | 4 ++-- js/ui/search.js | 2 +- js/ui/shellDBus.js | 11 ++++++----- js/ui/windowManager.js | 2 +- js/ui/windowPreview.js | 2 +- js/ui/workspace.js | 4 +--- js/ui/xdndHandler.js | 2 +- 18 files changed, 36 insertions(+), 37 deletions(-) diff --git a/js/ui/altTab.js b/js/ui/altTab.js index 5332d3b7c..3ecadad86 100644 --- a/js/ui/altTab.js +++ b/js/ui/altTab.js @@ -427,8 +427,7 @@ class CyclerHighlight extends St.Widget { if (this._clone.source) this._clone.source.sync_visibility(); - let windowActor = this._window - ? this._window.get_compositor_private() : null; + const windowActor = this._window?.get_compositor_private(); if (windowActor) windowActor.hide(); @@ -532,7 +531,7 @@ class GroupCyclerPopup extends CyclerPopup { _getWindows() { let app = Shell.WindowTracker.get_default().focus_app; - let appWindows = app ? app.get_windows() : []; + let appWindows = app?.get_windows() ?? []; if (this._settings.get_boolean('current-workspace-only')) { const workspaceManager = global.workspace_manager; diff --git a/js/ui/appDisplay.js b/js/ui/appDisplay.js index 1cca533c7..ac92d2fd9 100644 --- a/js/ui/appDisplay.js +++ b/js/ui/appDisplay.js @@ -972,7 +972,7 @@ class AppDisplay extends BaseAppView { this._switcherooProxy = global.get_switcheroo_control(); if (this._switcherooProxy) { let prop = this._switcherooProxy.get_cached_property('HasDualGpu'); - discreteGpuAvailable = prop ? prop.unpack() : false; + discreteGpuAvailable = prop?.unpack() ?? false; } else { discreteGpuAvailable = false; } diff --git a/js/ui/components/automountManager.js b/js/ui/components/automountManager.js index b83bd22c6..e50ae8e1d 100644 --- a/js/ui/components/automountManager.js +++ b/js/ui/components/automountManager.js @@ -176,7 +176,7 @@ var AutomountManager = class { if (allowAutorun) this._allowAutorun(volume); - let mountOp = operation ? operation.mountOp : null; + const mountOp = operation?.mountOp ?? null; this._activeOperations.set(volume, operation); volume.mount(0, mountOp, null, @@ -226,7 +226,7 @@ var AutomountManager = class { _reaskPassword(volume) { let prevOperation = this._activeOperations.get(volume); - let existingDialog = prevOperation ? prevOperation.borrowDialog() : null; + const existingDialog = prevOperation?.borrowDialog(); let operation = new ShellMountOperation.ShellMountOperation(volume, { existingDialog }); diff --git a/js/ui/components/networkAgent.js b/js/ui/components/networkAgent.js index 29565d214..4367a2f2a 100644 --- a/js/ui/components/networkAgent.js +++ b/js/ui/components/networkAgent.js @@ -793,7 +793,7 @@ var NetworkAgent = class { } const prop = plugin.lookup_property('GNOME', 'supports-external-ui-mode'); - const trimmedProp = prop ? prop.trim().toLowerCase() : ''; + const trimmedProp = prop?.trim().toLowerCase() ?? ''; return { fileName, diff --git a/js/ui/endSessionDialog.js b/js/ui/endSessionDialog.js index ebf4f4d81..053ae8cce 100644 --- a/js/ui/endSessionDialog.js +++ b/js/ui/endSessionDialog.js @@ -676,8 +676,7 @@ class EndSessionDialog extends ModalDialog.ModalDialog { let userAvatar = new UserWidget.Avatar(session.user, { iconSize: _ITEM_ICON_SIZE }); userAvatar.update(); - userName = session.user.get_real_name() - ? session.user.get_real_name() : session.username; + userName = session.user.get_real_name() ?? session.username; let userLabelText; if (session.remote) diff --git a/js/ui/environment.js b/js/ui/environment.js index e777d653a..fa3d490a5 100644 --- a/js/ui/environment.js +++ b/js/ui/environment.js @@ -364,7 +364,7 @@ function init() { this.getHours(), this.getMinutes(), this.getSeconds()); - return dt ? dt.format(format) : ''; + return dt?.format(format) ?? ''; }; let slowdownEnv = GLib.getenv('GNOME_SHELL_SLOWDOWN_FACTOR'); diff --git a/js/ui/inhibitShortcutsDialog.js b/js/ui/inhibitShortcutsDialog.js index d16c55abd..c59544eaf 100644 --- a/js/ui/inhibitShortcutsDialog.js +++ b/js/ui/inhibitShortcutsDialog.js @@ -73,7 +73,7 @@ var InhibitShortcutsDialog = GObject.registerClass({ } _buildLayout() { - let name = this._app ? this._app.get_name() : this._window.title; + const name = this._app?.get_name() ?? this._window.title; let content = new Dialog.MessageDialogContent({ title: _('Allow inhibiting shortcuts'), diff --git a/js/ui/notificationDaemon.js b/js/ui/notificationDaemon.js index 3c8e90b1e..38f81c381 100644 --- a/js/ui/notificationDaemon.js +++ b/js/ui/notificationDaemon.js @@ -124,7 +124,7 @@ var FdoNotificationDaemon = class FdoNotificationDaemon { return source; } - let appId = ndata ? ndata.hints['desktop-entry'] || null : null; + const appId = ndata?.hints['desktop-entry']; source = new FdoNotificationDaemonSource(title, pid, sender, appId); this._sources.push(source); @@ -528,10 +528,10 @@ class GtkNotificationDaemonNotification extends MessageTray.Notification { }); } - this._defaultAction = defaultAction ? defaultAction.unpack() : null; + this._defaultAction = defaultAction?.unpack(); this._defaultActionTarget = defaultActionTarget; - this.update(title.unpack(), body ? body.unpack() : null, + this.update(title.unpack(), body?.unpack(), { gicon: gicon ? Gio.icon_deserialize(gicon) : null, datetime: time ? GLib.DateTime.new_from_unix_local(time.unpack()) : null }); } diff --git a/js/ui/padOsd.js b/js/ui/padOsd.js index 110962259..817770a4b 100644 --- a/js/ui/padOsd.js +++ b/js/ui/padOsd.js @@ -770,7 +770,7 @@ var PadOsd = GObject.registerClass({ _getActionText(type, number) { let str = global.display.get_pad_action_label(this.padDevice, type, number); - return str ? str : _("None"); + return str ?? _('None'); } _updateActionLabels() { @@ -887,7 +887,7 @@ var PadOsd = GObject.registerClass({ if (this._followUpActionEdition(str)) return; - this._padDiagram.stopEdition(false, str ? str : _("None")); + this._padDiagram.stopEdition(false, str ?? _('None')); this._editedAction = null; } diff --git a/js/ui/panel.js b/js/ui/panel.js index 272368a4b..31b88f7fd 100644 --- a/js/ui/panel.js +++ b/js/ui/panel.js @@ -143,8 +143,8 @@ class AppMenu extends PopupMenu.PopupMenu { this._updateWindowsSection(); - let appInfo = app ? app.app_info : null; - let actions = appInfo ? appInfo.list_actions() : []; + const appInfo = app?.app_info; + const actions = appInfo?.list_actions() ?? []; this._actionSection.removeAll(); actions.forEach(action => { diff --git a/js/ui/panelMenu.js b/js/ui/panelMenu.js index 81d34490b..0c2478f8d 100644 --- a/js/ui/panelMenu.js +++ b/js/ui/panelMenu.js @@ -96,11 +96,13 @@ var Button = GObject.registerClass({ Signals: { 'menu-set': {} }, }, class PanelMenuButton extends ButtonBox { _init(menuAlignment, nameText, dontCreateMenu) { - super._init({ reactive: true, - can_focus: true, - track_hover: true, - accessible_name: nameText ? nameText : "", - accessible_role: Atk.Role.MENU }); + super._init({ + reactive: true, + can_focus: true, + track_hover: true, + accessible_name: nameText ?? '', + accessible_role: Atk.Role.MENU, + }); if (dontCreateMenu) this.menu = new PopupMenu.PopupDummyMenu(this); diff --git a/js/ui/popupMenu.js b/js/ui/popupMenu.js index a618f8fb4..11528560d 100644 --- a/js/ui/popupMenu.js +++ b/js/ui/popupMenu.js @@ -226,7 +226,7 @@ var PopupBaseMenuItem = GObject.registerClass({ } getSensitive() { - let parentSensitive = this._parent ? this._parent.sensitive : true; + const parentSensitive = this._parent?.sensitive ?? true; return this._activatable && this._sensitive && parentSensitive; } @@ -504,7 +504,7 @@ var PopupMenuBase = class { } getSensitive() { - let parentSensitive = this._parent ? this._parent.sensitive : true; + const parentSensitive = this._parent?.sensitive ?? true; return this._sensitive && parentSensitive; } diff --git a/js/ui/search.js b/js/ui/search.js index dd76735ce..de13d6e01 100644 --- a/js/ui/search.js +++ b/js/ui/search.js @@ -873,7 +873,7 @@ var SearchResultsView = GObject.registerClass({ return; } - let from = this._defaultResult ? this._defaultResult : null; + const from = this._defaultResult ?? null; this.navigate_focus(from, direction, false); } diff --git a/js/ui/shellDBus.js b/js/ui/shellDBus.js index bac9caa09..f7b542b29 100644 --- a/js/ui/shellDBus.js +++ b/js/ui/shellDBus.js @@ -160,11 +160,12 @@ var GnomeShell = class { if (deviceNode) params['device-node'] = GLib.Variant.new('s', deviceNode); - connection.emit_signal(destination, - this._dbusImpl.get_object_path(), - info ? info.name : null, - 'AcceleratorActivated', - GLib.Variant.new('(ua{sv})', [action, params])); + connection.emit_signal( + destination, + this._dbusImpl.get_object_path(), + info?.name ?? null, + 'AcceleratorActivated', + GLib.Variant.new('(ua{sv})', [action, params])); } _grabAcceleratorForSender(accelerator, modeFlags, grabFlags, sender) { diff --git a/js/ui/windowManager.js b/js/ui/windowManager.js index afe45037a..1b90c3b7d 100644 --- a/js/ui/windowManager.js +++ b/js/ui/windowManager.js @@ -891,7 +891,7 @@ var WindowManager = class { // FIXME: Fix num buttons for (let i = 0; i < 50; i++) { let str = display.get_pad_action_label(pad, Meta.PadActionType.BUTTON, i); - labels.push(str ? str : ''); + labels.push(str ?? ''); } if (this._gsdWacomProxy) { diff --git a/js/ui/windowPreview.js b/js/ui/windowPreview.js index d379703dd..23a353ef5 100644 --- a/js/ui/windowPreview.js +++ b/js/ui/windowPreview.js @@ -34,7 +34,7 @@ var WindowPreviewLayout = GObject.registerClass({ for (const windowInfo of this._windows.values()) { const frame = windowInfo.metaWindow.get_frame_rect(); - frameRect = frameRect ? frameRect.union(frame) : frame; + frameRect = frameRect?.union(frame) ?? frame; } if (!frameRect) diff --git a/js/ui/workspace.js b/js/ui/workspace.js index ab49e6412..511ef5def 100644 --- a/js/ui/workspace.js +++ b/js/ui/workspace.js @@ -1291,9 +1291,7 @@ class Workspace extends St.Widget { } _onCloneSelected(clone, time) { - let wsIndex; - if (this.metaWorkspace) - wsIndex = this.metaWorkspace.index(); + const wsIndex = this.metaWorkspace?.index(); Main.activateWindow(clone.metaWindow, time, wsIndex); } diff --git a/js/ui/xdndHandler.js b/js/ui/xdndHandler.js index 13d012dec..95549f3db 100644 --- a/js/ui/xdndHandler.js +++ b/js/ui/xdndHandler.js @@ -86,7 +86,7 @@ var XdndHandler = class { let dragEvent = { x, y, - dragActor: this._cursorWindowClone ? this._cursorWindowClone : this._dummy, + dragActor: this._cursorWindowClone ?? this._dummy, source: this, targetActor: pickedActor, };