status/powerProfiles: Remember last selected non-default profile
When we move to quick settings, this will allow us to toggle between two profiles even where more profiles are available. Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2391>
This commit is contained in:
parent
dc4ed1d7d2
commit
4f155d3757
@ -94,6 +94,15 @@
|
||||
adapter is ever seen not to have devices associated to it.
|
||||
</description>
|
||||
</key>
|
||||
<key name="last-selected-power-profile" type="s">
|
||||
<default>"power-saver"</default>
|
||||
<summary>The last selected non-default power profile</summary>
|
||||
<description>
|
||||
Some systems support more than two power profiles. In order to still support
|
||||
toggling between two profiles, this key records the last selected non-default
|
||||
profile.
|
||||
</description>
|
||||
</key>
|
||||
<key name="welcome-dialog-last-shown-version" type="s">
|
||||
<default>''</default>
|
||||
<summary>The last version the “Welcome to GNOME” dialog was shown for</summary>
|
||||
|
@ -32,6 +32,8 @@ const PROFILE_PARAMS = {
|
||||
},
|
||||
};
|
||||
|
||||
const LAST_PROFILE_KEY = 'last-selected-power-profile';
|
||||
|
||||
var Indicator = GObject.registerClass(
|
||||
class Indicator extends PanelMenu.SystemIndicator {
|
||||
_init() {
|
||||
@ -101,14 +103,19 @@ class Indicator extends PanelMenu.SystemIndicator {
|
||||
if (!this._item.visible)
|
||||
return;
|
||||
|
||||
const {ActiveProfile: activeProfile} = this._proxy;
|
||||
|
||||
for (const [profile, item] of this._profileItems) {
|
||||
item.setOrnament(profile === this._proxy.ActiveProfile
|
||||
item.setOrnament(profile === activeProfile
|
||||
? PopupMenu.Ornament.CHECK
|
||||
: PopupMenu.Ornament.NONE);
|
||||
}
|
||||
|
||||
const {label, iconName} = PROFILE_PARAMS[this._proxy.ActiveProfile];
|
||||
const {label, iconName} = PROFILE_PARAMS[activeProfile];
|
||||
this._item.label.text = label;
|
||||
this._item.icon.icon_name = iconName;
|
||||
|
||||
if (activeProfile !== 'balanced')
|
||||
global.settings.set_string(LAST_PROFILE_KEY, activeProfile);
|
||||
}
|
||||
});
|
||||
|
Loading…
Reference in New Issue
Block a user