[gnome-shell/wip/raresv/system-actions: 1/2] systemActions: Make actions searchable
- From: Florian Müllner <fmuellner src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-shell/wip/raresv/system-actions: 1/2] systemActions: Make actions searchable
- Date: Mon, 21 Aug 2017 21:48:40 +0000 (UTC)
commit ccdfd0af2a8fa3bf60a6b9cc426767dc85ed9cf2
Author: Rares Visalom <rares visalom gmail com>
Date: Thu Aug 3 01:21:17 2017 +0300
systemActions: Make actions searchable
js/misc/systemActions.js | 85 ++++++++++++++++++++++++++++++++++++++++++---
po/POTFILES.in | 1 +
2 files changed, 80 insertions(+), 6 deletions(-)
---
diff --git a/js/misc/systemActions.js b/js/misc/systemActions.js
index f0fdede..125e3da 100644
--- a/js/misc/systemActions.js
+++ b/js/misc/systemActions.js
@@ -95,17 +95,46 @@ const SystemActions = new Lang.Class({
this._actions = new Map();
this._actions.set(POWER_OFF_ACTION_ID,
- { available: false });
+ { // Translators: The name of the power-off action in search
+ name: _("Power off"),
+ iconName: 'system-shutdown-symbolic',
+ // Translators: A list of keywords that match the power-off action, separated by
semicolons
+ keywords: _("power off;shutdown").split(';'),
+ available: false });
this._actions.set(LOCK_SCREEN_ACTION_ID,
- { available: false });
+ { // Translators: The name of the lock screen action in search
+ name: _("Lock screen"),
+ iconName: 'system-lock-screen-symbolic',
+ // Translators: A list of keywords that match the lock screen action, separated
by semicolons
+ keywords: _("lock screen").split(';'),
+ available: false });
this._actions.set(LOGOUT_ACTION_ID,
- { available: false });
+ { // Translators: The name of the logout action in search
+ name: _("Logout"),
+ iconName: 'application-exit-symbolic',
+ // Translators: A list of keywords that match the logout action, separated by
semicolons
+ keywords: _("logout;sign off").split(';'),
+ available: false });
this._actions.set(SUSPEND_ACTION_ID,
- { available: false });
+ { // Translators: The name of the suspend action in search
+ name: _("Suspend"),
+ iconName: 'media-playback-pause-symbolic',
+ // Translators: A list of keywords that match the suspend action, separated by
semicolons
+ keywords: _("suspend;sleep").split(';'),
+ available: false });
this._actions.set(SWITCH_USER_ACTION_ID,
- { available: false });
+ { // Translators: The name of the switch user action in search
+ name: _("Switch user"),
+ iconName: 'system-switch-user-symbolic',
+ // Translators: A list of keywords that match the switch user action, separated
by semicolons
+ keywords: _("switch user").split(';'),
+ available: false });
this._actions.set(LOCK_ORIENTATION_ACTION_ID,
- { iconName: '',
+ { // Translators: The name of the lock orientation action in search
+ name: _("Lock orientation"),
+ iconName: '',
+ // Translators: A list of keywords that match the lock orientation action,
separated by semicolons
+ keywords: _("lock orientation").split(';'),
available: false });
this._loginScreenSettings = new Gio.Settings({ schema_id: LOGIN_SCREEN_SCHEMA });
@@ -237,6 +266,50 @@ const SystemActions = new Lang.Class({
this._updateHaveSuspend();
},
+ getMatchingActions: function(terms) {
+ // terms is a list of strings
+ terms = terms.map((term) => { return term.toLowerCase(); });
+
+ let results = [];
+
+ for (let [key, {available, keywords}] of this._actions)
+ if (available && terms.every(t => keywords.some(k => (k.indexOf(t) >= 0))))
+ results.push(key);
+
+ return results;
+ },
+
+ getName: function(id) {
+ return this._actions.get(id).name;
+ },
+
+ getIconName: function(id) {
+ return this._actions.get(id).iconName;
+ },
+
+ activateAction: function(id) {
+ switch (id) {
+ case POWER_OFF_ACTION_ID:
+ this.activatePowerOff();
+ break;
+ case LOCK_SCREEN_ACTION_ID:
+ this.activateLockScreen();
+ break;
+ case LOGOUT_ACTION_ID:
+ this.activateLogout();
+ break;
+ case SUSPEND_ACTION_ID:
+ this.activateSuspend();
+ break;
+ case SWITCH_USER_ACTION_ID:
+ this.activateSwitchUser();
+ break;
+ case LOCK_ORIENTATION_ACTION_ID:
+ this.activateLockOrientation();
+ break;
+ }
+ },
+
_updateLockScreen() {
let showLock = !Main.sessionMode.isLocked && !Main.sessionMode.isGreeter;
let allowLockScreen = !this._lockdownSettings.get_boolean(DISABLE_LOCK_SCREEN_KEY);
diff --git a/po/POTFILES.in b/po/POTFILES.in
index d564cb0..cb41b8a 100644
--- a/po/POTFILES.in
+++ b/po/POTFILES.in
@@ -9,6 +9,7 @@ js/extensionPrefs/main.js
js/gdm/authPrompt.js
js/gdm/loginDialog.js
js/gdm/util.js
+js/misc/systemActions.js
js/misc/util.js
js/portalHelper/main.js
js/ui/accessDialog.js
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]