Skip to content

Commit bf247dc

Browse files
committed
migrate preference screen to libadwaita (getPreferencesWidget => fillPreferencesWindow)
1 parent f6e23b0 commit bf247dc

File tree

1 file changed

+27
-33
lines changed

1 file changed

+27
-33
lines changed

prefs.js

Lines changed: 27 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -2,46 +2,40 @@
22

33
import Gio from 'gi://Gio';
44
import Gtk from 'gi://Gtk';
5+
import Adw from 'gi://Adw';
56

67
import {ExtensionPreferences, gettext as _} from 'resource:///org/gnome/Shell/Extensions/js/extensions/prefs.js';
78
import * as modsListNames from './src/modsListNames.js'
89

910
export default class extends ExtensionPreferences {
10-
getPreferencesWidget() {
11+
fillPreferencesWindow(window) {
1112
const settings = this.getSettings()
1213

13-
let prefsWidget = new Gtk.Grid({
14-
margin_top: 18,
15-
margin_bottom: 18,
16-
margin_start: 18,
17-
margin_end: 18,
18-
column_spacing: 12,
19-
row_spacing: 22,
20-
visible: true
14+
const page = new Adw.PreferencesPage({
15+
icon_name: 'dialog-information-symbolic',
2116
});
17+
window.add(page);
2218

23-
let title = new Gtk.Label({
24-
label: `<b>${_('settings-mods-list')}</b>`,
25-
halign: Gtk.Align.START,
26-
use_markup: true,
27-
visible: true
19+
const group = new Adw.PreferencesGroup({
20+
title: _('settings-mods-list'),
21+
//description: _('settings-mods-list'),
2822
});
29-
prefsWidget.attach(title, 0, 0, 2, 1);
23+
page.add(group);
3024

31-
const mods = modsListNames.getNames()
25+
const mods_list = modsListNames.getNames()
26+
for (let modNum = 0; modNum < mods_list.length; modNum++) {
27+
const key = mods_list[modNum]
3228

33-
for (let modNum = 0; modNum < mods.length; modNum++) {
34-
const key = mods[modNum]
35-
36-
const row = modNum + 1
37-
38-
const label = new Gtk.Label({label: _(key), halign: Gtk.Align.START})
29+
const rowNum = modNum + 1
3930

31+
let row = null
4032
const value = settings.get_value(key)
41-
let toggle = null
4233
switch (value.get_type_string()) {
4334
case "s":
44-
toggle = new Gtk.Box({halign: Gtk.Align.END, css_classes: ['linked']})
35+
row = new Adw.ActionRow({
36+
title: _(key),
37+
})
38+
const toggle = new Gtk.Box({halign: Gtk.Align.END, css_classes: ['linked']})
4539
const value_enum = settings.get_enum(key)
4640
const value_string = settings.get_string(key)
4741

@@ -51,26 +45,26 @@ export default class extends ExtensionPreferences {
5145
for (let v in values) {
5246
btn = new Gtk.ToggleButton({
5347
active: value_string === values[v],
54-
label: values[v],
55-
group: btn
48+
label : values[v],
49+
group : btn
5650
})
5751
toggle.append(btn)
5852
btn.connect('toggled', button => {
5953
button.active && settings.set_string(key, values[v])
6054
})
6155
}
56+
row.add_suffix(toggle)
6257
break
6358

6459
default:
65-
toggle = new Gtk.Switch({halign: Gtk.Align.END, active: settings.get_boolean(key)})
66-
settings.bind(key, toggle, 'active', Gio.SettingsBindFlags.DEFAULT)
60+
row = new Adw.SwitchRow({
61+
title: _(key),
62+
//subtitle: _(key),
63+
})
64+
settings.bind(key, row, 'active', Gio.SettingsBindFlags.DEFAULT)
6765
}
6866

69-
prefsWidget.attach(label, 0, row, 1, 1);
70-
prefsWidget.attach(toggle, 1, row, 1, 1);
67+
group.add(row);
7168
}
72-
73-
74-
return prefsWidget
7569
}
7670
}

0 commit comments

Comments
 (0)