🔧 Some libadwaita fixes

This commit is contained in:
Simon Schneegans
2023-02-05 13:09:36 +01:00
parent 9539a9fa13
commit f149ee4cf3
+57 -48
View File
@@ -72,15 +72,18 @@ var PreferencesDialog = class PreferencesDialog {
Gio.resources_register(this._resources); Gio.resources_register(this._resources);
// Load the CSS file for the settings dialog. // Load the CSS file for the settings dialog.
const styleProvider = Gtk.CssProvider.new(); if (!utils.isADW()) {
if (utils.isGTK4() && !utils.isADW()) { const styleProvider = Gtk.CssProvider.new();
styleProvider.load_from_resource('/css/gtk4.css'); if (utils.isGTK4()) {
Gtk.StyleContext.add_provider_for_display(Gdk.Display.get_default(), styleProvider, styleProvider.load_from_resource('/css/gtk4.css');
Gtk.STYLE_PROVIDER_PRIORITY_APPLICATION); Gtk.StyleContext.add_provider_for_display(
} else { Gdk.Display.get_default(), styleProvider,
styleProvider.load_from_resource('/css/gtk3.css'); Gtk.STYLE_PROVIDER_PRIORITY_APPLICATION);
Gtk.StyleContext.add_provider_for_screen(Gdk.Screen.get_default(), styleProvider, } else {
Gtk.STYLE_PROVIDER_PRIORITY_APPLICATION); styleProvider.load_from_resource('/css/gtk3.css');
Gtk.StyleContext.add_provider_for_screen(Gdk.Screen.get_default(), styleProvider,
Gtk.STYLE_PROVIDER_PRIORITY_APPLICATION);
}
} }
// Make sure custom icons are found. // Make sure custom icons are found.
@@ -158,12 +161,14 @@ var PreferencesDialog = class PreferencesDialog {
}); });
if (!utils.isADW()) { if (!utils.isADW()) {
const profileEditorButton = this._builder.get_object("edit-profile-button"); const profileEditorButton = this._builder.get_object('edit-profile-button');
profileEditorButton.connect("toggled", b => { profileEditorButton.connect('toggled', b => {
if (b.active) { if (b.active) {
this._builder.get_object("general-prefs").set_visible_child(this._builder.get_object("profile-editor")); this._builder.get_object('general-prefs')
.set_visible_child(this._builder.get_object('profile-editor'));
} else { } else {
this._builder.get_object("general-prefs").set_visible_child(this._builder.get_object("effect-editor")); this._builder.get_object('general-prefs')
.set_visible_child(this._builder.get_object('effect-editor'));
} }
}); });
} }
@@ -179,22 +184,21 @@ var PreferencesDialog = class PreferencesDialog {
this._effectRows = []; this._effectRows = [];
if (!utils.isADW()) { if (!utils.isADW()) {
group.connect("row-activated", (g, row) => { group.connect('row-activated', (g, row) => {
this._effectRows.forEach(r => { this._effectRows.forEach(r => {
if (r == row) { if (r == row) {
if (r._revealer.get_reveal_child()) { if (r._revealer.get_reveal_child()) {
r._revealer.set_reveal_child(false); r._revealer.set_reveal_child(false);
r._arrow.get_style_context().remove_class("revealed"); r._arrow.get_style_context().remove_class('revealed');
} else { } else {
r._revealer.set_reveal_child(true); r._revealer.set_reveal_child(true);
r._arrow.get_style_context().add_class("revealed"); r._arrow.get_style_context().add_class('revealed');
} }
} else { } else {
r._revealer.set_reveal_child(false); r._revealer.set_reveal_child(false);
r._arrow.get_style_context().remove_class("revealed"); r._arrow.get_style_context().remove_class('revealed');
} }
} });
);
}); });
} }
@@ -212,7 +216,12 @@ var PreferencesDialog = class PreferencesDialog {
} }
// The preview button. // The preview button.
const previewButton = Gtk.Button.new_from_icon_name('bmw-preview-symbolic', 1); let previewButton;
if (utils.isGTK4()) {
previewButton = Gtk.Button.new_from_icon_name('bmw-preview-symbolic');
} else {
previewButton = Gtk.Button.new_from_icon_name('bmw-preview-symbolic', 1);
}
previewButton.get_style_context().add_class('circular'); previewButton.get_style_context().add_class('circular');
previewButton.get_style_context().add_class('flat'); previewButton.get_style_context().add_class('flat');
previewButton.set_tooltip_text(_('Preview this effect')); previewButton.set_tooltip_text(_('Preview this effect'));
@@ -220,13 +229,13 @@ var PreferencesDialog = class PreferencesDialog {
previewButton.connect('clicked', () => { previewButton.connect('clicked', () => {
this._previewEffect(effect); this._previewEffect(effect);
}); });
// The toggle button for enabling and disabling the effect. // The toggle button for enabling and disabling the effect.
const button = Gtk.Switch.new(); const button = Gtk.Switch.new();
button.set_tooltip_text(_('Use this effect')); button.set_tooltip_text(_('Use this effect'));
button.set_valign(Gtk.Align.CENTER); button.set_valign(Gtk.Align.CENTER);
this._builder.expose_object(`${effect.getNick()}-enable-effect`, button); this._builder.expose_object(`${effect.getNick()}-enable-effect`, button);
if (utils.isADW()) { if (utils.isADW()) {
let row; let row;
@@ -234,7 +243,7 @@ var PreferencesDialog = class PreferencesDialog {
// Add the effect's preferences (if any). // Add the effect's preferences (if any).
row = this._builder.get_object(`${effect.getNick()}-prefs`); row = this._builder.get_object(`${effect.getNick()}-prefs`);
} else if(utils.isADW()) { } else if (utils.isADW()) {
row = Adw.ActionRow.new(); row = Adw.ActionRow.new();
} }
@@ -266,34 +275,35 @@ var PreferencesDialog = class PreferencesDialog {
row.add_prefix(button); row.add_prefix(button);
group.add(row); group.add(row);
} else { } else {
const row = new Gtk.ListBoxRow(); const row = new Gtk.ListBoxRow();
row.get_style_context().add_class("effect-row"); row.get_style_context().add_class('effect-row');
const container = new Gtk.Box({orientation:Gtk.Orientation.VERTICAL});
const header = new Gtk.Box({ spacing:12}); const container = new Gtk.Box({orientation: Gtk.Orientation.VERTICAL});
header.get_style_context().add_class("effect-row-header");
const header = new Gtk.Box({spacing: 12});
const label = new Gtk.Label({label:effect.getLabel(), hexpand:true, halign: Gtk.Align.START}); header.get_style_context().add_class('effect-row-header');
label.get_style_context().add_class("heading");
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, button);
this.gtkBoxAppend(header, label); this.gtkBoxAppend(header, label);
this.gtkBoxAppend(header, previewButton); this.gtkBoxAppend(header, previewButton);
this.gtkBoxAppend(container, header); this.gtkBoxAppend(container, header);
if (hasPrefs) { if (hasPrefs) {
const revealer = this._builder.get_object(`${effect.getNick()}-prefs`); const revealer = this._builder.get_object(`${effect.getNick()}-prefs`);
const arrow = new Gtk.Image({icon_name:"go-down-symbolic"}); const arrow = new Gtk.Image({icon_name: 'go-down-symbolic'});
arrow.get_style_context().add_class("revealer-arrow"); arrow.get_style_context().add_class('revealer-arrow');
this.gtkBoxAppend(header, arrow); this.gtkBoxAppend(header, arrow);
this.gtkBoxAppend(container, revealer); this.gtkBoxAppend(container, revealer);
row._revealer = revealer; row._revealer = revealer;
row._arrow = arrow; row._arrow = arrow;
row.set_activatable(true); row.set_activatable(true);
this._effectRows.push(row); this._effectRows.push(row);
@@ -301,17 +311,14 @@ var PreferencesDialog = class PreferencesDialog {
row.set_activatable(false); row.set_activatable(false);
} }
if (utils.isGTK4()) { if (utils.isGTK4()) {
row.set_child(container); row.set_child(container);
group.append(row); group.append(row);
} else { } else {
row.add(container); row.add(container);
group.add(row); group.add(row);
} }
} }
} }
}); });
@@ -358,10 +365,12 @@ var PreferencesDialog = class PreferencesDialog {
} else if (utils.isGTK4()) { } else if (utils.isGTK4()) {
window.get_titlebar().pack_start(menu); window.get_titlebar().pack_start(menu);
window.get_titlebar().set_title_widget(this._builder.get_object('profile-button')); window.get_titlebar().set_title_widget(
this._builder.get_object('profile-button'));
} else { } else {
window.get_titlebar().pack_start(menu); window.get_titlebar().pack_start(menu);
window.get_titlebar().set_custom_title(this._builder.get_object('profile-button')); window.get_titlebar().set_custom_title(
this._builder.get_object('profile-button'));
} }
const addURIAction = (name, uri) => { const addURIAction = (name, uri) => {