background: Use AdwPreferences{Page,Group}

Now that AdwPreferencesGroup has support for
header suffixes, we can cut out a lot of widgetry
by using it and AdwPreferencesPage directly.
This commit is contained in:
Christopher Davis 2022-01-27 18:19:05 -08:00
parent 13376ecb8b
commit 8347e01453
2 changed files with 97 additions and 141 deletions

View file

@ -104,6 +104,7 @@ pulse_req_version = '>= 2.0'
libadwaita_dep = dependency(
'libadwaita-1',
version: '>= 1.1',
fallback: ['libadwaita', 'libadwaita_dep'],
default_options: ['examples=false', 'introspection=disabled', 'tests=false', 'vapi=false'],
)

View file

@ -2,165 +2,120 @@
<interface>
<template class="CcBackgroundPanel" parent="CcPanel">
<child type="content">
<object class="GtkScrolledWindow">
<property name="hexpand">True</property>
<property name="vexpand">True</property>
<property name="hscrollbar-policy">never</property>
<object class="AdwPreferencesPage">
<child>
<object class="GtkViewport">
<property name="scroll-to-focus">True</property>
<object class="AdwPreferencesGroup">
<property name="title" translatable="yes">Style</property>
<child>
<object class="AdwClamp">
<object class="AdwPreferencesRow">
<property name="activatable">False</property>
<property name="focusable">False</property>
<child>
<object class="GtkBox">
<property name="orientation">vertical</property>
<property name="spacing">24</property>
<property name="margin-top">24</property>
<property name="margin-bottom">24</property>
<property name="margin-start">12</property>
<property name="margin-end">12</property>
<object class="AdwClamp">
<property name="maximum_size">400</property>
<property name="tightening_threshold">300</property>
<child>
<object class="AdwPreferencesGroup">
<property name="title" translatable="yes">Style</property>
<object class="GtkGrid">
<property name="column-spacing">24</property>
<property name="row-spacing">12</property>
<property name="margin-start">12</property>
<property name="margin-end">12</property>
<property name="margin-top">18</property>
<property name="margin-bottom">12</property>
<property name="hexpand">True</property>
<child>
<object class="AdwPreferencesRow">
<property name="activatable">False</property>
<property name="focusable">False</property>
<object class="GtkToggleButton" id="light_toggle">
<signal name="notify::active" handler="on_light_dark_toggle_active_cb" swapped="true"/>
<child>
<object class="AdwClamp">
<property name="maximum_size">400</property>
<property name="tightening_threshold">300</property>
<child>
<object class="GtkGrid">
<property name="column-spacing">24</property>
<property name="row-spacing">12</property>
<property name="margin-start">12</property>
<property name="margin-end">12</property>
<property name="margin-top">18</property>
<property name="margin-bottom">12</property>
<property name="hexpand">True</property>
<child>
<object class="GtkToggleButton" id="light_toggle">
<signal name="notify::active" handler="on_light_dark_toggle_active_cb" swapped="true"/>
<child>
<object class="CcBackgroundPreview" id="light_preview"/>
</child>
<style>
<class name="background-preview-button"/>
</style>
<layout>
<property name="column">0</property>
<property name="row">0</property>
</layout>
</object>
</child>
<child>
<object class="GtkLabel">
<property name="label" translatable="yes">Light</property>
<layout>
<property name="column">0</property>
<property name="row">1</property>
</layout>
</object>
</child>
<child>
<object class="GtkToggleButton" id="dark_toggle">
<property name="group">light_toggle</property>
<signal name="notify::active" handler="on_light_dark_toggle_active_cb" swapped="true"/>
<child>
<object class="CcBackgroundPreview" id="dark_preview">
<property name="is-dark">True</property>
</object>
</child>
<style>
<class name="background-preview-button"/>
</style>
<layout>
<property name="column">1</property>
<property name="row">0</property>
</layout>
</object>
</child>
<child>
<object class="GtkLabel">
<property name="label" translatable="yes">Dark</property>
<layout>
<property name="column">1</property>
<property name="row">1</property>
</layout>
</object>
</child>
</object>
</child>
</object>
<object class="CcBackgroundPreview" id="light_preview"/>
</child>
</object>
</child>
</object>
</child>
<child>
<object class="GtkBox">
<property name="orientation">vertical</property>
<property name="spacing">6</property>
<child>
<object class="GtkBox">
<property name="spacing">6</property>
<child>
<object class="GtkLabel">
<property name="label" translatable="yes">Background</property>
<property name="hexpand">True</property>
<property name="xalign">0</property>
<property name="ellipsize">end</property>
<style>
<class name="heading"/>
</style>
</object>
</child>
<child>
<object class="GtkButton">
<child>
<object class="AdwButtonContent">
<property name="icon-name">list-add-symbolic</property>
<property name="label" translatable="yes">Add Picture…</property>
</object>
</child>
<signal name="clicked" handler="on_add_picture_button_clicked_cb" object="CcBackgroundPanel" swapped="yes" />
<style>
<class name="flat"/>
</style>
</object>
</child>
</object>
</child>
<child>
<object class="AdwBin">
<style>
<class name="card"/>
<class name="background-preview-button"/>
</style>
<child>
<object class="CcBackgroundChooser" id="background_chooser">
<property name="hexpand">True</property>
<property name="vexpand">True</property>
<signal name="background-chosen" handler="on_chooser_background_chosen_cb" object="CcBackgroundPanel" swapped="yes" />
</object>
</child>
<layout>
<property name="column">0</property>
<property name="row">0</property>
</layout>
</object>
</child>
<child>
<object class="GtkLabel">
<property name="label" translatable="yes">Light</property>
<layout>
<property name="column">0</property>
<property name="row">1</property>
</layout>
</object>
</child>
<child>
<object class="GtkToggleButton" id="dark_toggle">
<property name="group">light_toggle</property>
<signal name="notify::active" handler="on_light_dark_toggle_active_cb" swapped="true"/>
<child>
<object class="CcBackgroundPreview" id="dark_preview">
<property name="is-dark">True</property>
</object>
</child>
<style>
<class name="background-preview-button"/>
</style>
<layout>
<property name="column">1</property>
<property name="row">0</property>
</layout>
</object>
</child>
<child>
<object class="GtkLabel">
<property name="label" translatable="yes">Dark</property>
<layout>
<property name="column">1</property>
<property name="row">1</property>
</layout>
</object>
</child>
</object>
</child>
</object>
</child>
</object>
</child>
</object>
</child>
<child>
<object class="AdwPreferencesGroup">
<property name="title" translatable="yes">Background</property>
<property name="header-suffix">
<object class="GtkButton">
<child>
<object class="AdwButtonContent">
<property name="icon-name">list-add-symbolic</property>
<property name="label" translatable="yes">Add Picture…</property>
</object>
</child>
<signal name="clicked" handler="on_add_picture_button_clicked_cb" object="CcBackgroundPanel" swapped="yes" />
<style>
<class name="flat"/>
</style>
</object>
</property>
<child>
<object class="AdwBin">
<style>
<class name="card"/>
</style>
<child>
<object class="CcBackgroundChooser" id="background_chooser">
<property name="hexpand">True</property>
<property name="vexpand">True</property>
<signal name="background-chosen" handler="on_chooser_background_chosen_cb" object="CcBackgroundPanel" swapped="yes" />
</object>
</child>
</object>
</child>