🔧 Port effect profiles to GNOME Shell 3.38

This commit is contained in:
Simon Schneegans
2023-02-05 13:04:45 +01:00
parent 4792f8fcbb
commit 9539a9fa13
22 changed files with 3234 additions and 3465 deletions
+36 -17
View File
@@ -73,11 +73,12 @@ var PreferencesDialog = class PreferencesDialog {
// Load the CSS file for the settings dialog.
const styleProvider = Gtk.CssProvider.new();
styleProvider.load_from_resource('/css/gtk.css');
if (utils.isGTK4()) {
if (utils.isGTK4() && !utils.isADW()) {
styleProvider.load_from_resource('/css/gtk4.css');
Gtk.StyleContext.add_provider_for_display(Gdk.Display.get_default(), styleProvider,
Gtk.STYLE_PROVIDER_PRIORITY_APPLICATION);
Gtk.STYLE_PROVIDER_PRIORITY_APPLICATION);
} else {
styleProvider.load_from_resource('/css/gtk3.css');
Gtk.StyleContext.add_provider_for_screen(Gdk.Screen.get_default(), styleProvider,
Gtk.STYLE_PROVIDER_PRIORITY_APPLICATION);
}
@@ -183,14 +184,14 @@ var PreferencesDialog = class PreferencesDialog {
if (r == row) {
if (r._revealer.get_reveal_child()) {
r._revealer.set_reveal_child(false);
r._arrow.remove_css_class("revealed");
r._arrow.get_style_context().remove_class("revealed");
} else {
r._revealer.set_reveal_child(true);
r._arrow.add_css_class("revealed");
r._arrow.get_style_context().add_class("revealed");
}
} else {
r._revealer.set_reveal_child(false);
r._arrow.remove_css_class("revealed");
r._arrow.get_style_context().remove_class("revealed");
}
}
);
@@ -211,9 +212,9 @@ var PreferencesDialog = class PreferencesDialog {
}
// The preview button.
const previewButton = Gtk.Button.new_from_icon_name('bmw-preview-symbolic');
previewButton.add_css_class('circular');
previewButton.add_css_class('flat');
const previewButton = Gtk.Button.new_from_icon_name('bmw-preview-symbolic', 1);
previewButton.get_style_context().add_class('circular');
previewButton.get_style_context().add_class('flat');
previewButton.set_tooltip_text(_('Preview this effect'));
previewButton.set_valign(Gtk.Align.CENTER);
previewButton.connect('clicked', () => {
@@ -269,10 +270,16 @@ var PreferencesDialog = class PreferencesDialog {
} else {
const row = new Gtk.ListBoxRow({css_classes:["effect-row"]});
const row = new Gtk.ListBoxRow();
row.get_style_context().add_class("effect-row");
const container = new Gtk.Box({orientation:Gtk.Orientation.VERTICAL});
const header = new Gtk.Box({css_classes:["effect-row-header"], spacing:12});
const label = new Gtk.Label({label:effect.getLabel(), css_classes:["heading"], hexpand:true, halign: Gtk.Align.START});
const header = new Gtk.Box({ spacing:12});
header.get_style_context().add_class("effect-row-header");
const label = new Gtk.Label({label:effect.getLabel(), hexpand:true, halign: Gtk.Align.START});
label.get_style_context().add_class("heading");
this.gtkBoxAppend(header, button);
this.gtkBoxAppend(header, label);
@@ -281,7 +288,8 @@ var PreferencesDialog = class PreferencesDialog {
if (hasPrefs) {
const revealer = this._builder.get_object(`${effect.getNick()}-prefs`);
const arrow = new Gtk.Image({css_classes:["revealer-arrow"], icon_name:"go-down-symbolic"});
const arrow = new Gtk.Image({icon_name:"go-down-symbolic"});
arrow.get_style_context().add_class("revealer-arrow");
this.gtkBoxAppend(header, arrow);
this.gtkBoxAppend(container, revealer);
row._revealer = revealer;
@@ -293,9 +301,14 @@ var PreferencesDialog = class PreferencesDialog {
row.set_activatable(false);
}
row.set_child(container);
if (utils.isGTK4()) {
row.set_child(container);
group.append(row);
} else {
row.add(container);
group.add(row);
}
group.append(row);
}
@@ -343,9 +356,12 @@ var PreferencesDialog = class PreferencesDialog {
flap.set_content(scrolledWindow);
} else {
} else if (utils.isGTK4()) {
window.get_titlebar().pack_start(menu);
window.get_titlebar().set_title_widget(this._builder.get_object('profile-button'));
} else {
window.get_titlebar().pack_start(menu);
window.get_titlebar().set_custom_title(this._builder.get_object('profile-button'));
}
const addURIAction = (name, uri) => {
@@ -508,7 +524,10 @@ var PreferencesDialog = class PreferencesDialog {
});
}
deleteProfileDialog.set_hide_on_close(true);
if (utils.isGTK4()) {
deleteProfileDialog.set_hide_on_close(true);
}
deleteProfileDialog.set_transient_for(window);
deleteProfileDialog.connect('response', (dialog, response) => {