Skip to content

Commit 46162e1

Browse files
committed
Prep work for showing/hiding system actions
1 parent 27c5266 commit 46162e1

File tree

3 files changed

+35
-5
lines changed

3 files changed

+35
-5
lines changed

extension.js

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,6 @@ import * as CheckBoxImport from 'resource:///org/gnome/shell/ui/checkBox.js';
1616
import {loadInterfaceXML} from 'resource:///org/gnome/shell/misc/fileUtils.js';
1717

1818
const CheckBox = CheckBoxImport.CheckBox;
19-
2019
// Use __ () and N__() for the extension gettext domain, and reuse
2120
// the shell domain with the default _() and N_()
2221
import {Extension, gettext as __} from 'resource:///org/gnome/shell/extensions/extension.js';
@@ -219,6 +218,10 @@ export default class MyExtension extends Extension {
219218
this._haveSuspendThenHibernate && !Main.sessionMode.isLocked && this._setting.get_boolean('show-suspend-then-hibernate');
220219
}
221220

221+
_updateDefaults() {
222+
console.log("Update defaults");
223+
}
224+
222225
_onHibernateClicked() {
223226
this.systemMenu._systemItem.menu.itemActivated();
224227

@@ -238,8 +241,6 @@ export default class MyExtension extends Extension {
238241
default: true,
239242
},
240243
],
241-
iconName: 'document-save-symbolic',
242-
iconStyleClass: 'end-session-dialog-shutdown-icon',
243244
};
244245

245246
this._dialog = new ConfirmDialog(
@@ -409,6 +410,7 @@ export default class MyExtension extends Extension {
409410
'open-state-changed',
410411
(menu, open) => {
411412
if (!open) return;
413+
this._updateDefaults();
412414
this._updateHaveHibernate();
413415
this._updateHaveHybridSleep();
414416
this._updateHaveSuspendThenHibernate();

prefs.js

Lines changed: 21 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -99,7 +99,11 @@ export default class Prefs extends ExtensionPreferences {
9999
});
100100
page.add(modes_group);
101101

102-
// Create a new preferences row
102+
const suspend_row = new Adw.SwitchRow({
103+
title: __('Suspend'),
104+
subtitle: __('Not implemented yet'),
105+
});
106+
modes_group.add(suspend_row);
103107
const hibernate_row = new Adw.SwitchRow({
104108
title: __('Hibernate'),
105109
});
@@ -112,14 +116,23 @@ export default class Prefs extends ExtensionPreferences {
112116
title: __('Suspend then hibernate'),
113117
});
114118
modes_group.add(suspend_then_hibernate_row);
119+
const restart_row = new Adw.SwitchRow({
120+
title: __('Restart...'),
121+
subtitle: __('Not implemented yet'),
122+
});
123+
modes_group.add(restart_row);
124+
const shutdown_row = new Adw.SwitchRow({
125+
title: __('Shutdown...'),
126+
subtitle: __('Not implemented yet'),
127+
});
128+
modes_group.add(shutdown_row);
115129

116130
const dialog_group = new Adw.PreferencesGroup({
117131
title: __('Dialogs'),
118132
description: __('Which dialogs should be enabled'),
119133
});
120134
page.add(dialog_group);
121135

122-
// Create a new preferences row
123136
const hibernate_dialog_row = new Adw.SwitchRow({
124137
title: __('Hibernate'),
125138
});
@@ -136,12 +149,18 @@ export default class Prefs extends ExtensionPreferences {
136149
dialog_group.add(suspend_then_hibernate_dialog_row);
137150

138151
window._settings = this.getSettings();
152+
window._settings.bind('show-suspend', suspend_row, 'active',
153+
Gio.SettingsBindFlags.DEFAULT);
139154
window._settings.bind('show-hibernate', hibernate_row, 'active',
140155
Gio.SettingsBindFlags.DEFAULT);
141156
window._settings.bind('show-hybrid-sleep', hybrid_row, 'active',
142157
Gio.SettingsBindFlags.DEFAULT);
143158
window._settings.bind('show-suspend-then-hibernate', suspend_then_hibernate_row, 'active',
144159
Gio.SettingsBindFlags.DEFAULT);
160+
window._settings.bind('show-restart', restart_row, 'active',
161+
Gio.SettingsBindFlags.DEFAULT);
162+
window._settings.bind('show-shutdown', shutdown_row, 'active',
163+
Gio.SettingsBindFlags.DEFAULT);
145164
window._settings.bind('show-hibernate-dialog', hibernate_dialog_row, 'active',
146165
Gio.SettingsBindFlags.DEFAULT);
147166
window._settings.bind('show-hybrid-sleep-dialog', hybrid_dialog_row, 'active',

schemas/org.gnome.shell.extensions.hibernate-status-button.gschema.xml

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,9 @@
44
<key type="b" name="hibernate-works-check">
55
<default>true</default>
66
</key>
7+
<key type="b" name="show-suspend">
8+
<default>true</default>
9+
</key>
710
<key type="b" name="show-hibernate">
811
<default>true</default>
912
</key>
@@ -13,6 +16,12 @@
1316
<key type="b" name="show-suspend-then-hibernate">
1417
<default>true</default>
1518
</key>
19+
<key type="b" name="show-restart">
20+
<default>true</default>
21+
</key>
22+
<key type="b" name="show-shutdown">
23+
<default>true</default>
24+
</key>
1625
<key type="b" name="show-hibernate-dialog">
1726
<default>true</default>
1827
</key>

0 commit comments

Comments
 (0)