🔧 Hack the flap into the widget tree

This commit is contained in:
Simon Schneegans
2023-01-12 20:31:24 +01:00
parent 6def4e4a4a
commit 532aad1341
2 changed files with 106 additions and 75 deletions
+20 -7
View File
@@ -119,11 +119,7 @@ var PreferencesDialog = class PreferencesDialog {
if (utils.isADW()) {
// This is our top-level widget which we will return later.
this._widget = new Gtk.Box({orientation: Gtk.Orientation.VERTICAL});
// Add the general options page to the settings dialog.
const generalPrefs = this._builder.get_object('general-prefs');
this.gtkBoxAppend(this._widget, generalPrefs);
this._widget = this._builder.get_object('general-prefs');
// Then add a preferences group for the effect expander rows.
const group = this._builder.get_object('effects-group');
@@ -276,8 +272,20 @@ var PreferencesDialog = class PreferencesDialog {
header.pack_start(menu);
header.set_title_widget(this._builder.get_object('profile-button'));
// Allow closing of the sub pages.
window.can_navigate_back = true;
const flap = this._builder.get_object('profile-editor-flap');
const clamp = this._findWidgetByType(window.get_content(), Adw.Clamp);
const viewport = clamp.get_parent();
viewport.get_parent().set_policy(Gtk.PolicyType.NEVER, Gtk.PolicyType.NEVER);
viewport.set_child(flap);
const scrolledWindow = Gtk.ScrolledWindow.new();
scrolledWindow.set_policy(Gtk.PolicyType.NEVER, Gtk.PolicyType.AUTOMATIC);
scrolledWindow.set_propagate_natural_height(true);
scrolledWindow.set_vexpand(true);
scrolledWindow.set_child(clamp);
flap.set_content(scrolledWindow);
} else {
window.get_titlebar().pack_start(menu);
}
@@ -679,3 +687,8 @@ function buildPrefsWidget() {
var dialog = new PreferencesDialog();
return dialog.getWidget();
}
function fillPreferencesWindow(window) {
var dialog = new PreferencesDialog();
window.add(dialog.getWidget());
}
+86 -68
View File
@@ -2,7 +2,8 @@
<!--
SPDX-FileCopyrightText: Simon Schneegans <code@simonschneegans.de>
SPDX-License-Identifier: GPL-3.0-or-later
SPDX-License-Identifier:
GPL-3.0-or-later
-->
<interface domain="burn-my-windows">
@@ -17,9 +18,13 @@ SPDX-License-Identifier: GPL-3.0-or-later
</object>
</child>
<child>
<object class="GtkButton">
<object class="GtkToggleButton" id="edit-profile-button">
<property name="icon-name">edit-symbolic</property>
<property name="valign">center</property>
<binding name="active">
<lookup name="reveal-flap">profile-editor-flap</lookup>
</binding>
</object>
</child>
<style>
@@ -27,94 +32,107 @@ SPDX-License-Identifier: GPL-3.0-or-later
</style>
</object>
<object class="GtkMenuButton" id="menu-button">
<property name="menu-model">main-menu</property>
<property name="icon-name">heart-filled-symbolic</property>
</object>
<object class="AdwFlap" id="general-prefs">
<object class="AdwFlap" id="profile-editor-flap">
<property name="orientation">vertical</property>
<property name="reveal-flap">true</property>
<property name="locked">true</property>
<property name="swipe-to-open">false</property>
<property name="swipe-to-close">false</property>
<property name="fold-threshold-policy">natural</property>
<binding name="reveal-flap">
<lookup name="active">edit-profile-button</lookup>
</binding>
<child type="flap">
<object class="AdwPreferencesGroup">
<object class="AdwClamp">
<style>
<class name="background" />
</style>
<child>
<object class="AdwEntryRow">
<property name="title" translatable="yes">Application</property>
<property name="child">
<object class="AdwPreferencesGroup">
<property name="margin-top">20</property>
<property name="margin-bottom">20</property>
<property name="margin-start">20</property>
<property name="margin-end">20</property>
<child>
<object class="GtkButton" id="reset-doom-animation-time">
<property name="icon-name">bmw-select-app-symbolic</property>
<property name="valign">center</property>
<object class="AdwEntryRow">
<property name="title" translatable="yes">Application</property>
<child>
<object class="GtkButton" id="reset-doom-animation-time">
<property name="icon-name">bmw-select-app-symbolic</property>
<property name="valign">center</property>
</object>
</child>
</object>
</child>
</object>
</child>
<child>
<object class="AdwComboRow">
<property name="title" translatable="yes">Window Type</property>
<property name="model">
<object class="GtkStringList">
<items>
<item>Any</item>
<item>Normal Windows</item>
<item>Dialogs</item>
</items>
<child>
<object class="AdwComboRow">
<property name="title" translatable="yes">Window Type</property>
<property name="model">
<object class="GtkStringList">
<items>
<item>Any</item>
<item>Normal Windows</item>
<item>Dialogs</item>
</items>
</object>
</property>
</object>
</property>
</object>
</child>
</child>
<child>
<object class="AdwComboRow">
<property name="title" translatable="yes">Power Mode</property>
<property name="model">
<object class="GtkStringList">
<items>
<item>Any</item>
<item>On Battery</item>
<item>Plugged In</item>
</items>
<child>
<object class="AdwComboRow">
<property name="title" translatable="yes">Power Mode</property>
<property name="model">
<object class="GtkStringList">
<items>
<item>Any</item>
<item>On Battery</item>
<item>Plugged In</item>
</items>
</object>
</property>
</object>
</property>
</object>
</child>
</child>
<child>
<object class="AdwComboRow">
<property name="title" translatable="yes">Power Profile</property>
<property name="model">
<object class="GtkStringList">
<items>
<item>Any</item>
<item>Power Saver</item>
<item>Balanced</item>
<item>Performance</item>
<item>Power Saver or Balanced</item>
<item>Balanced or Performance</item>
</items>
<child>
<object class="AdwComboRow">
<property name="title" translatable="yes">Power Profile</property>
<property name="model">
<object class="GtkStringList">
<items>
<item>Any</item>
<item>Power Saver</item>
<item>Balanced</item>
<item>Performance</item>
<item>Power Saver or Balanced</item>
<item>Balanced or Performance</item>
</items>
</object>
</property>
</object>
</property>
</object>
</child>
</child>
</object>
</property>
</object>
</child>
</object>
<child type="content">
<object class="GtkMenuButton" id="menu-button">
<property name="menu-model">main-menu</property>
<property name="icon-name">heart-filled-symbolic</property>
</object>
<object class="AdwPreferencesPage" id="general-prefs">
<child>
<object class="AdwPreferencesGroup" id="effects-group">
<property name="margin-top">20</property>
<property name="margin-bottom">20</property>
<property name="margin-start">20</property>
<property name="margin-end">20</property>
</object>
</child>
</object>
</interface>