display: Make nightlight widgets clamped to same size as other panels

by using an AdwPreferencesPage instead of a plain GtkBox. And also
move disabled infobar out of night_light_settings.
This commit is contained in:
Emad Saadat 2023-03-25 19:14:36 -07:00
parent 87941fc9aa
commit ce9c7c289a
No known key found for this signature in database
GPG key ID: 3FF242E9583A02C8
2 changed files with 257 additions and 293 deletions

View file

@ -42,7 +42,6 @@ struct _CcNightLightPage {
GtkWidget *infobar_unsupported;
GtkWidget *infobar_unsupported_description;
GtkWidget *infobar_disabled;
GtkListBox *listbox;
GtkWidget *scale_color_temperature;
GtkWidget *night_light_toggle_switch;
GtkComboBox *schedule_type_combo;
@ -665,7 +664,6 @@ cc_night_light_page_class_init (CcNightLightPageClass *klass)
gtk_widget_class_bind_template_child (widget_class, CcNightLightPage, infobar_unsupported);
gtk_widget_class_bind_template_child (widget_class, CcNightLightPage, infobar_unsupported_description);
gtk_widget_class_bind_template_child (widget_class, CcNightLightPage, infobar_disabled);
gtk_widget_class_bind_template_child (widget_class, CcNightLightPage, listbox);
gtk_widget_class_bind_template_child (widget_class, CcNightLightPage, night_light_toggle_switch);
gtk_widget_class_bind_template_child (widget_class, CcNightLightPage, schedule_type_combo);
gtk_widget_class_bind_template_child (widget_class, CcNightLightPage, scale_color_temperature);

View file

@ -40,299 +40,266 @@
</object>
</child>
<child>
<object class="GtkBox" id="night_light_settings">
<property name="halign">center</property>
<property name="valign">start</property>
<property name="orientation">vertical</property>
<object class="GtkInfoBar" id="infobar_disabled">
<property name="name">infobar_disabled</property>
<child>
<object class="GtkInfoBar" id="infobar_disabled">
<property name="name">infobar_disabled</property>
<object class="GtkBox">
<property name="hexpand">True</property>
<property name="spacing">16</property>
<child>
<object class="GtkBox">
<property name="hexpand">True</property>
<property name="spacing">16</property>
<child>
<object class="GtkLabel">
<property name="halign">start</property>
<property name="margin-start">12</property>
<property name="hexpand">False</property>
<property name="wrap">True</property>
<property name="label" translatable="yes" comments="Inhibit the redshift functionality until the next day starts">Temporarily Disabled Until Tomorrow</property>
<attributes>
<attribute name="weight" value="bold"/>
</attributes>
</object>
</child>
</object>
</child>
<child>
<object class="GtkButton" id="button_undisable">
<property name="margin-top">12</property>
<property name="margin-bottom">12</property>
<object class="GtkLabel">
<property name="halign">start</property>
<property name="margin-start">12</property>
<property name="margin-end">12</property>
<property name="label" translatable="yes" comments="This cancels the redshift inhibit.">Restart Filter</property>
<property name="name">button_undisable</property>
<property name="can_focus">True</property>
<property name="receives_default">True</property>
<property name="valign">GTK_ALIGN_CENTER</property>
<signal name="clicked" handler="dialog_undisable_clicked_cb" object="CcNightLightPage" swapped="no" />
<property name="hexpand">False</property>
<property name="label" translatable="yes" comments="Inhibit the redshift functionality until the next day starts">Temporarily Disabled Until Tomorrow</property>
<attributes>
<attribute name="weight" value="bold"/>
</attributes>
</object>
</child>
</object>
</child>
<child>
<object class="GtkBox">
<property name="margin_top">30</property>
<property name="margin_end">12</property>
<property name="margin_start">12</property>
<property name="margin_bottom">36</property>
<property name="orientation">vertical</property>
<property name="spacing">26</property>
<object class="GtkButton" id="button_undisable">
<property name="margin-top">12</property>
<property name="margin-bottom">12</property>
<property name="margin-start">12</property>
<property name="margin-end">12</property>
<property name="label" translatable="yes" comments="This cancels the redshift inhibit.">Restart Filter</property>
<property name="name">button_undisable</property>
<property name="can_focus">True</property>
<property name="receives_default">True</property>
<property name="valign">GTK_ALIGN_CENTER</property>
<signal name="clicked" handler="dialog_undisable_clicked_cb" object="CcNightLightPage" swapped="no" />
</object>
</child>
</object>
</child>
<child>
<object class="AdwPreferencesPage" id="night_light_settings">
<child>
<object class="AdwPreferencesGroup">
<property name="description" translatable="yes">Night light makes the screen color warmer. This can help to prevent eye strain and sleeplessness.</property>
<!-- Night Light -->
<child>
<object class="GtkLabel">
<property name="halign">start</property>
<property name="valign">start</property>
<property name="label" translatable="yes">Night light makes the screen color warmer. This can help to prevent eye strain and sleeplessness.</property>
<property name="wrap">True</property>
<property name="max_width_chars">60</property>
<property name="xalign">0</property>
<style>
<class name="dim-label"/>
</style>
<object class="AdwActionRow">
<property name="title" translatable="yes">Night Light</property>
<property name="activatable-widget">night_light_toggle_switch</property>
<child>
<object class="GtkSwitch" id="night_light_toggle_switch">
<property name="valign">center</property>
<accessibility>
<property name="label" translatable="yes">Enable</property>
</accessibility>
</object>
</child>
</object>
</child>
<!-- Schedule -->
<child>
<object class="GtkListBox" id="listbox">
<property name="selection-mode">none</property>
<object class="AdwActionRow" id="schedule_row">
<property name="title" translatable="yes">Schedule</property>
<property name="sensitive" bind-source="night_light_toggle_switch" bind-property="active" bind-flags="default|sync-create" />
<style>
<class name="boxed-list" />
</style>
<!-- Night Light -->
<child>
<object class="AdwActionRow">
<property name="title" translatable="yes">Night Light</property>
<property name="activatable-widget">night_light_toggle_switch</property>
<child>
<object class="GtkSwitch" id="night_light_toggle_switch">
<property name="valign">center</property>
<accessibility>
<property name="label" translatable="yes">Enable</property>
</accessibility>
</object>
</child>
<object class="GtkComboBoxText" id="schedule_type_combo">
<property name="valign">center</property>
<signal name="notify::active" handler="on_schedule_type_combo_active_changed_cb" object="CcNightLightPage" swapped="no" />
<items>
<item translatable="yes" id="automatic">Sunset to Sunrise</item>
<item translatable="yes" id="manual">Manual Schedule</item>
</items>
<accessibility>
<relation name="labelled-by">schedule_row</relation>
</accessibility>
</object>
</child>
</object>
</child>
<!-- Time -->
<child>
<object class="AdwActionRow">
<property name="title" translatable="yes">Times</property>
<property name="sensitive" bind-source="night_light_toggle_switch" bind-property="active" bind-flags="default|sync-create" />
<!-- Schedule -->
<child>
<object class="AdwActionRow" id="schedule_row">
<property name="title" translatable="yes">Schedule</property>
<property name="sensitive" bind-source="night_light_toggle_switch" bind-property="active" bind-flags="default|sync-create" />
<object class="GtkBox" id="box_manual">
<property name="spacing">6</property>
<property name="margin-top">12</property>
<property name="margin-bottom">12</property>
<style>
<class name="time-widget" />
</style>
<child>
<object class="GtkComboBoxText" id="schedule_type_combo">
<property name="valign">center</property>
<signal name="notify::active" handler="on_schedule_type_combo_active_changed_cb" object="CcNightLightPage" swapped="no" />
<items>
<item translatable="yes" id="automatic">Sunset to Sunrise</item>
<item translatable="yes" id="manual">Manual Schedule</item>
</items>
<accessibility>
<relation name="labelled-by">schedule_row</relation>
</accessibility>
</object>
</child>
</object>
</child>
<!-- Time -->
<child>
<object class="AdwActionRow">
<property name="title" translatable="yes">Times</property>
<property name="sensitive" bind-source="night_light_toggle_switch" bind-property="active" bind-flags="default|sync-create" />
<child>
<object class="GtkBox" id="box_manual">
<property name="spacing">6</property>
<property name="margin-top">12</property>
<property name="margin-bottom">12</property>
<object class="GtkLabel">
<property name="label" translatable="yes">From</property>
<property name="mnemonic_widget">spinbutton_from_hours</property>
<style>
<class name="time-widget" />
<class name="dim-label"/>
</style>
</object>
</child>
<child>
<object class="GtkBox" id="from_spinbuttons_box">
<property name="spacing">4</property>
<child>
<object class="GtkLabel">
<property name="label" translatable="yes">From</property>
<property name="mnemonic_widget">spinbutton_from_hours</property>
<object class="GtkSpinButton" id="spinbutton_from_hours">
<property name="can_focus">True</property>
<property name="max_width_chars">2</property>
<property name="text">4</property>
<property name="orientation">vertical</property>
<property name="adjustment">adjustment_from_hours</property>
<property name="numeric">True</property>
<property name="wrap">True</property>
<property name="value">4</property>
<signal name="output" handler="dialog_format_hours_combobox" object="CcNightLightPage" swapped="no" />
<style>
<class name="dim-label"/>
<class name="padded-spinbutton"/>
</style>
</object>
</child>
<child>
<object class="GtkBox" id="from_spinbuttons_box">
<property name="spacing">4</property>
<child>
<object class="GtkSpinButton" id="spinbutton_from_hours">
<property name="can_focus">True</property>
<property name="max_width_chars">2</property>
<property name="text">4</property>
<property name="orientation">vertical</property>
<property name="adjustment">adjustment_from_hours</property>
<property name="numeric">True</property>
<property name="wrap">True</property>
<property name="value">4</property>
<signal name="output" handler="dialog_format_hours_combobox" object="CcNightLightPage" swapped="no" />
<style>
<class name="padded-spinbutton"/>
</style>
<accessibility>
<property name="description" translatable="yes">Hour</property>
</accessibility>
</object>
</child>
<child>
<object class="GtkLabel">
<property name="label" translatable="yes">:</property>
</object>
</child>
<child>
<object class="GtkSpinButton" id="spinbutton_from_minutes">
<property name="can_focus">True</property>
<property name="max_width_chars">2</property>
<property name="text">0</property>
<property name="orientation">vertical</property>
<property name="adjustment">adjustment_from_minutes</property>
<property name="numeric">True</property>
<property name="wrap">True</property>
<signal name="output" handler="dialog_format_minutes_combobox" object="CcNightLightPage" swapped="no" />
<style>
<class name="padded-spinbutton"/>
</style>
<accessibility>
<property name="description" translatable="yes">Minute</property>
</accessibility>
</object>
</child>
<child>
<object class="GtkStack" id="stack_from">
<property name="hhomogeneous">False</property>
<property name="vhomogeneous">False</property>
<child>
<object class="GtkButton" id="button_from_am">
<property name="label" translatable="yes" comments="This is the short form for the time period in the morning">AM</property>
<property name="can_focus">True</property>
<property name="receives_default">True</property>
<property name="valign">center</property>
<signal name="clicked" handler="dialog_am_pm_from_button_clicked_cb" object="CcNightLightPage" swapped="no" />
<style>
<class name="unpadded-button"/>
</style>
</object>
</child>
<child>
<object class="GtkButton" id="button_from_pm">
<property name="label" translatable="yes" comments="This is the short form for the time period in the afternoon">PM</property>
<property name="can_focus">True</property>
<property name="receives_default">True</property>
<property name="valign">center</property>
<signal name="clicked" handler="dialog_am_pm_from_button_clicked_cb" object="CcNightLightPage" swapped="no" />
<style>
<class name="unpadded-button"/>
</style>
</object>
</child>
</object>
</child>
<accessibility>
<property name="description" translatable="yes">Hour</property>
</accessibility>
</object>
</child>
<child>
<object class="GtkLabel">
<property name="margin-start">6</property>
<property name="label" translatable="yes">To</property>
<property name="mnemonic_widget">spinbutton_to_hours</property>
<style>
<class name="dim-label"/>
</style>
<property name="label" translatable="yes">:</property>
</object>
</child>
<child>
<object class="GtkBox" id="to_spinbuttons_box">
<property name="spacing">4</property>
<object class="GtkSpinButton" id="spinbutton_from_minutes">
<property name="can_focus">True</property>
<property name="max_width_chars">2</property>
<property name="text">0</property>
<property name="orientation">vertical</property>
<property name="adjustment">adjustment_from_minutes</property>
<property name="numeric">True</property>
<property name="wrap">True</property>
<signal name="output" handler="dialog_format_minutes_combobox" object="CcNightLightPage" swapped="no" />
<style>
<class name="padded-spinbutton"/>
</style>
<accessibility>
<property name="description" translatable="yes">Minute</property>
</accessibility>
</object>
</child>
<child>
<object class="GtkStack" id="stack_from">
<property name="hhomogeneous">False</property>
<property name="vhomogeneous">False</property>
<child>
<object class="GtkSpinButton" id="spinbutton_to_hours">
<object class="GtkButton" id="button_from_am">
<property name="label" translatable="yes" comments="This is the short form for the time period in the morning">AM</property>
<property name="can_focus">True</property>
<property name="max_width_chars">2</property>
<property name="text">4</property>
<property name="orientation">vertical</property>
<property name="adjustment">adjustment_to_hours</property>
<property name="numeric">True</property>
<property name="wrap">True</property>
<property name="value">4</property>
<signal name="output" handler="dialog_format_hours_combobox" object="CcNightLightPage" swapped="no" />
<property name="receives_default">True</property>
<property name="valign">center</property>
<signal name="clicked" handler="dialog_am_pm_from_button_clicked_cb" object="CcNightLightPage" swapped="no" />
<style>
<class name="padded-spinbutton"/>
<class name="unpadded-button"/>
</style>
<accessibility>
<property name="description" translatable="yes">Hour</property>
</accessibility>
</object>
</child>
<child>
<object class="GtkLabel">
<property name="label" translatable="yes">:</property>
</object>
</child>
<child>
<object class="GtkSpinButton" id="spinbutton_to_minutes">
<object class="GtkButton" id="button_from_pm">
<property name="label" translatable="yes" comments="This is the short form for the time period in the afternoon">PM</property>
<property name="can_focus">True</property>
<property name="max_width_chars">2</property>
<property name="text">0</property>
<property name="orientation">vertical</property>
<property name="adjustment">adjustment_to_minutes</property>
<property name="numeric">True</property>
<property name="wrap">True</property>
<signal name="output" handler="dialog_format_minutes_combobox" object="CcNightLightPage" swapped="no" />
<property name="receives_default">True</property>
<property name="valign">center</property>
<signal name="clicked" handler="dialog_am_pm_from_button_clicked_cb" object="CcNightLightPage" swapped="no" />
<style>
<class name="padded-spinbutton"/>
<class name="unpadded-button"/>
</style>
</object>
</child>
</object>
</child>
</object>
</child>
<child>
<object class="GtkLabel">
<property name="margin-start">6</property>
<property name="label" translatable="yes">To</property>
<property name="mnemonic_widget">spinbutton_to_hours</property>
<style>
<class name="dim-label"/>
</style>
</object>
</child>
<child>
<object class="GtkBox" id="to_spinbuttons_box">
<property name="spacing">4</property>
<child>
<object class="GtkSpinButton" id="spinbutton_to_hours">
<property name="can_focus">True</property>
<property name="max_width_chars">2</property>
<property name="text">4</property>
<property name="orientation">vertical</property>
<property name="adjustment">adjustment_to_hours</property>
<property name="numeric">True</property>
<property name="wrap">True</property>
<property name="value">4</property>
<signal name="output" handler="dialog_format_hours_combobox" object="CcNightLightPage" swapped="no" />
<style>
<class name="padded-spinbutton"/>
</style>
<accessibility>
<property name="description" translatable="yes">Hour</property>
</accessibility>
</object>
</child>
<child>
<object class="GtkLabel">
<property name="label" translatable="yes">:</property>
</object>
</child>
<child>
<object class="GtkSpinButton" id="spinbutton_to_minutes">
<property name="can_focus">True</property>
<property name="max_width_chars">2</property>
<property name="text">0</property>
<property name="orientation">vertical</property>
<property name="adjustment">adjustment_to_minutes</property>
<property name="numeric">True</property>
<property name="wrap">True</property>
<signal name="output" handler="dialog_format_minutes_combobox" object="CcNightLightPage" swapped="no" />
<style>
<class name="padded-spinbutton"/>
</style>
<accessibility>
<property name="description" translatable="yes">Minute</property>
</accessibility>
</object>
</child>
<child>
<object class="GtkStack" id="stack_to">
<property name="hhomogeneous">False</property>
<property name="vhomogeneous">False</property>
<child>
<object class="GtkButton" id="button_to_am">
<property name="label" translatable="yes">AM</property>
<property name="can_focus">True</property>
<property name="receives_default">True</property>
<property name="valign">center</property>
<signal name="clicked" handler="dialog_am_pm_to_button_clicked_cb" object="CcNightLightPage" swapped="no" />
<style>
<class name="unpadded-button"/>
</style>
<accessibility>
<property name="description" translatable="yes">Minute</property>
</accessibility>
</object>
</child>
<child>
<object class="GtkStack" id="stack_to">
<property name="hhomogeneous">False</property>
<property name="vhomogeneous">False</property>
<child>
<object class="GtkButton" id="button_to_am">
<property name="label" translatable="yes">AM</property>
<property name="can_focus">True</property>
<property name="receives_default">True</property>
<property name="valign">center</property>
<signal name="clicked" handler="dialog_am_pm_to_button_clicked_cb" object="CcNightLightPage" swapped="no" />
<style>
<class name="unpadded-button"/>
</style>
</object>
</child>
<child>
<object class="GtkButton" id="button_to_pm">
<property name="label" translatable="yes">PM</property>
<property name="can_focus">True</property>
<property name="receives_default">True</property>
<property name="valign">center</property>
<signal name="clicked" handler="dialog_am_pm_to_button_clicked_cb" object="CcNightLightPage" swapped="no" />
<style>
<class name="unpadded-button"/>
</style>
</object>
</child>
<object class="GtkButton" id="button_to_pm">
<property name="label" translatable="yes">PM</property>
<property name="can_focus">True</property>
<property name="receives_default">True</property>
<property name="valign">center</property>
<signal name="clicked" handler="dialog_am_pm_to_button_clicked_cb" object="CcNightLightPage" swapped="no" />
<style>
<class name="unpadded-button"/>
</style>
</object>
</child>
</object>
@ -341,53 +308,52 @@
</child>
</object>
</child>
</object>
</child>
<!-- Color Temperature -->
<child>
<object class="AdwPreferencesRow">
<property name="activatable">False</property>
<property name="sensitive" bind-source="night_light_toggle_switch" bind-property="active" bind-flags="default|sync-create" />
<!-- Color Temperature -->
<child>
<object class="AdwPreferencesRow">
<property name="activatable">False</property>
<property name="sensitive" bind-source="night_light_toggle_switch" bind-property="active" bind-flags="default|sync-create" />
<object class="GtkBox">
<property name="margin-start">12</property>
<property name="margin-end">12</property>
<property name="margin-top">12</property>
<property name="margin-bottom">12</property>
<property name="spacing">6</property>
<property name="orientation">vertical</property>
<child>
<object class="GtkBox">
<property name="margin-start">12</property>
<property name="margin-end">12</property>
<property name="margin-top">12</property>
<property name="margin-bottom">12</property>
<property name="spacing">6</property>
<property name="orientation">vertical</property>
<child>
<object class="GtkLabel" id="title">
<property name="label" translatable="yes">Color Temperature</property>
<property name="ellipsize">none</property>
<property name="lines">0</property>
<property name="xalign">0.0</property>
<property name="mnemonic_widget">scale_color_temperature</property>
<style>
<class name="title"/>
</style>
</object>
</child>
<child>
<object class="GtkScale" id="scale_color_temperature">
<property name="hexpand">True</property>
<property name="width-request">280</property>
<property name="adjustment">adjustment_color_temperature</property>
<property name="inverted">True</property>
<property name="restrict_to_fill_level">False</property>
<property name="fill_level">1</property>
<property name="digits">0</property>
<property name="draw_value">False</property>
<property name="has_origin">False</property>
<property name="value_pos">bottom</property>
<style>
<class name="night-light-temperature"/>
</style>
</object>
</child>
<object class="GtkLabel" id="title">
<property name="label" translatable="yes">Color Temperature</property>
<property name="ellipsize">none</property>
<property name="lines">0</property>
<property name="xalign">0.0</property>
<property name="mnemonic_widget">scale_color_temperature</property>
<style>
<class name="title"/>
</style>
</object>
</child>
<child>
<object class="GtkScale" id="scale_color_temperature">
<property name="hexpand">True</property>
<property name="width-request">280</property>
<property name="adjustment">adjustment_color_temperature</property>
<property name="inverted">True</property>
<property name="restrict_to_fill_level">False</property>
<property name="fill_level">1</property>
<property name="digits">0</property>
<property name="draw_value">False</property>
<property name="has_origin">False</property>
<property name="value_pos">bottom</property>
<style>
<class name="night-light-temperature"/>
</style>
</object>
</child>