[gnome-control-center] power: Use HdyActionRow to simplify the code
- From: Robert Ancell <rancell src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-control-center] power: Use HdyActionRow to simplify the code
- Date: Fri, 7 May 2021 02:53:33 +0000 (UTC)
commit 6c8307faf47b3288999eba1e3c10722180ebef0d
Author: Adrien Plazas <kekun plazas laposte net>
Date: Thu Jan 7 10:59:00 2021 +0100
power: Use HdyActionRow to simplify the code
panels/power/cc-power-panel.c | 27 +--
panels/power/cc-power-panel.ui | 430 ++++++-----------------------------------
2 files changed, 72 insertions(+), 385 deletions(-)
---
diff --git a/panels/power/cc-power-panel.c b/panels/power/cc-power-panel.c
index ea979cfc7..22d91c564 100644
--- a/panels/power/cc-power-panel.c
+++ b/panels/power/cc-power-panel.c
@@ -68,17 +68,15 @@ struct _CcPowerPanel
GtkListBoxRow *automatic_suspend_row;
GtkLabel *battery_heading;
GtkListBox *battery_listbox;
- GtkListBoxRow *battery_percentage_row;
+ HdyActionRow *battery_percentage_row;
GtkSwitch *battery_percentage_switch;
GtkSizeGroup *battery_row_sizegroup;
GtkBox *battery_section;
- GtkSizeGroup *battery_sizegroup;
HdyComboRow *blank_screen_row;
GtkListBoxRow *brightness_row;
CcBrightnessScale *brightness_scale;
GtkListBoxRow *bt_row;
GtkSwitch *bt_switch;
- GtkSizeGroup *charge_sizegroup;
GtkLabel *device_heading;
GtkListBox *device_listbox;
GtkBox *device_section;
@@ -234,8 +232,6 @@ add_battery (CcPowerPanel *panel, UpDevice *device, gboolean primary)
CcBatteryRow *row = cc_battery_row_new (device, primary);
cc_battery_row_set_level_sizegroup (row, panel->level_sizegroup);
cc_battery_row_set_row_sizegroup (row, panel->battery_row_sizegroup);
- cc_battery_row_set_charge_sizegroup (row, panel->charge_sizegroup);
- cc_battery_row_set_battery_sizegroup (row, panel->battery_sizegroup);
gtk_container_add (GTK_CONTAINER (panel->battery_listbox), GTK_WIDGET (row));
gtk_widget_set_visible (GTK_WIDGET (panel->battery_section), TRUE);
@@ -247,8 +243,6 @@ add_device (CcPowerPanel *self, UpDevice *device)
CcBatteryRow *row = cc_battery_row_new (device, FALSE);
cc_battery_row_set_level_sizegroup (row, self->level_sizegroup);
cc_battery_row_set_row_sizegroup (row, self->row_sizegroup);
- cc_battery_row_set_charge_sizegroup (row, self->charge_sizegroup);
- cc_battery_row_set_battery_sizegroup (row, self->battery_sizegroup);
gtk_container_add (GTK_CONTAINER (self->device_listbox), GTK_WIDGET (row));
gtk_widget_set_visible (GTK_WIDGET (self->device_section), TRUE);
@@ -986,23 +980,20 @@ iio_proxy_vanished_cb (GDBusConnection *connection,
}
static void
-power_saving_listbox_row_activated_cb (CcPowerPanel *self, GtkListBoxRow *row)
+automatic_suspend_row_activated_cb (CcPowerPanel *self)
{
GtkWidget *toplevel;
- if (row == self->automatic_suspend_row)
- {
- toplevel = gtk_widget_get_toplevel (GTK_WIDGET (self));
- gtk_window_set_transient_for (GTK_WINDOW (self->automatic_suspend_dialog), GTK_WINDOW (toplevel));
- gtk_window_set_modal (GTK_WINDOW (self->automatic_suspend_dialog), TRUE);
- gtk_window_present (GTK_WINDOW (self->automatic_suspend_dialog));
- }
+ toplevel = gtk_widget_get_toplevel (GTK_WIDGET (self));
+ gtk_window_set_transient_for (GTK_WINDOW (self->automatic_suspend_dialog), GTK_WINDOW (toplevel));
+ gtk_window_set_modal (GTK_WINDOW (self->automatic_suspend_dialog), TRUE);
+ gtk_window_present (GTK_WINDOW (self->automatic_suspend_dialog));
}
static gboolean
automatic_suspend_label_mnemonic_activate_cb (CcPowerPanel *self)
{
- power_saving_listbox_row_activated_cb (self, self->automatic_suspend_row);
+ automatic_suspend_row_activated_cb (self);
return TRUE;
}
@@ -1712,13 +1703,11 @@ cc_power_panel_class_init (CcPowerPanelClass *klass)
gtk_widget_class_bind_template_child (widget_class, CcPowerPanel, battery_percentage_switch);
gtk_widget_class_bind_template_child (widget_class, CcPowerPanel, battery_row_sizegroup);
gtk_widget_class_bind_template_child (widget_class, CcPowerPanel, battery_section);
- gtk_widget_class_bind_template_child (widget_class, CcPowerPanel, battery_sizegroup);
gtk_widget_class_bind_template_child (widget_class, CcPowerPanel, blank_screen_row);
gtk_widget_class_bind_template_child (widget_class, CcPowerPanel, brightness_row);
gtk_widget_class_bind_template_child (widget_class, CcPowerPanel, brightness_scale);
gtk_widget_class_bind_template_child (widget_class, CcPowerPanel, bt_row);
gtk_widget_class_bind_template_child (widget_class, CcPowerPanel, bt_switch);
- gtk_widget_class_bind_template_child (widget_class, CcPowerPanel, charge_sizegroup);
gtk_widget_class_bind_template_child (widget_class, CcPowerPanel, device_heading);
gtk_widget_class_bind_template_child (widget_class, CcPowerPanel, device_listbox);
gtk_widget_class_bind_template_child (widget_class, CcPowerPanel, device_section);
@@ -1759,7 +1748,7 @@ cc_power_panel_class_init (CcPowerPanelClass *klass)
gtk_widget_class_bind_template_callback (widget_class, mobile_switch_changed_cb);
gtk_widget_class_bind_template_callback (widget_class, power_button_row_changed_cb);
gtk_widget_class_bind_template_callback (widget_class, power_profiles_row_activated_cb);
- gtk_widget_class_bind_template_callback (widget_class, power_saving_listbox_row_activated_cb);
+ gtk_widget_class_bind_template_callback (widget_class, automatic_suspend_row_activated_cb);
gtk_widget_class_bind_template_callback (widget_class, wifi_switch_changed_cb);
}
diff --git a/panels/power/cc-power-panel.ui b/panels/power/cc-power-panel.ui
index 18fc0a8ac..12df3aa4a 100644
--- a/panels/power/cc-power-panel.ui
+++ b/panels/power/cc-power-panel.ui
@@ -220,170 +220,59 @@
<relation target="power_saving_heading" type="labelled-by"/>
</accessibility>
<child>
- <object class="GtkListBoxRow" id="brightness_row">
+ <object class="HdyActionRow" id="brightness_row">
<property name="visible">True</property>
- <property name="selectable">False</property>
- <property name="activatable">False</property>
+ <property name="title" translatable="yes">_Screen Brightness</property>
+ <property name="use_underline">True</property>
<child>
- <object class="GtkBox">
+ <object class="CcBrightnessScale" id="brightness_scale">
<property name="visible">True</property>
- <property name="margin-start">12</property>
- <property name="margin-end">12</property>
- <property name="spacing">12</property>
- <child>
- <object class="GtkLabel" id="brightness_label">
- <property name="visible">True</property>
- <property name="use-markup">True</property>
- <property name="use-underline">True</property>
- <property name="ellipsize">end</property>
- <property name="label" translatable="yes">_Screen
Brightness</property>
- <property name="margin-top">6</property>
- <property name="margin-bottom">6</property>
- <property name="xalign">0</property>
- <property name="mnemonic_widget">brightness_scale</property>
- </object>
- </child>
- <child>
- <object class="GtkBox">
- <property name="visible">True</property>
- <property name="spacing">12</property>
- <property name="expand">True</property>
- <child>
- <object class="GtkLabel" id="brightness_spacer">
- <property name="visible">True</property>
- </object>
- </child>
- <child>
- <object class="CcBrightnessScale" id="brightness_scale">
- <property name="visible">True</property>
- <property name="valign">center</property>
- <property name="expand">True</property>
- <property name="device">screen</property>
- <signal name="notify::has-brightness"
handler="has_brightness_cb" object="CcPowerPanel" swapped="yes"/>
- </object>
- </child>
- </object>
- </child>
+ <property name="valign">center</property>
+ <property name="expand">True</property>
+ <property name="device">screen</property>
+ <signal name="notify::has-brightness" handler="has_brightness_cb"
object="CcPowerPanel" swapped="yes"/>
</object>
</child>
</object>
</child>
<child>
- <object class="GtkListBoxRow" id="als_row">
+ <object class="HdyActionRow" id="als_row">
<property name="visible">True</property>
- <property name="selectable">False</property>
- <property name="activatable">False</property>
+ <property name="title" translatable="yes">Automatic Brightness</property>
<child>
- <object class="GtkBox">
+ <object class="GtkSwitch" id="als_switch">
<property name="visible">True</property>
- <property name="margin-start">12</property>
- <property name="margin-end">12</property>
- <property name="spacing">12</property>
- <child>
- <object class="GtkLabel">
- <property name="visible">True</property>
- <property name="use-markup">True</property>
- <property name="use-underline">True</property>
- <property name="ellipsize">end</property>
- <property name="label" translatable="yes">Automatic
Brightness</property>
- <property name="margin-top">6</property>
- <property name="margin-bottom">6</property>
- <property name="expand">True</property>
- <property name="xalign">0</property>
- <property name="mnemonic_widget">als_switch</property>
- </object>
- </child>
- <child>
- <object class="GtkSwitch" id="als_switch">
- <property name="visible">True</property>
- <property name="valign">center</property>
- <signal name="notify::active" handler="als_switch_changed_cb"
object="CcPowerPanel" swapped="yes"/>
- </object>
- </child>
+ <property name="valign">center</property>
+ <signal name="notify::active" handler="als_switch_changed_cb"
object="CcPowerPanel" swapped="yes"/>
</object>
</child>
</object>
</child>
<child>
- <object class="GtkListBoxRow" id="kbd_brightness_row">
+ <object class="HdyActionRow" id="kbd_brightness_row">
<property name="visible">True</property>
- <property name="selectable">False</property>
- <property name="activatable">False</property>
+ <property name="title" translatable="yes">_Keyboard Brightness</property>
+ <property name="use_underline">True</property>
<child>
- <object class="GtkBox">
+ <object class="CcBrightnessScale" id="kbd_brightness_scale">
<property name="visible">True</property>
- <property name="margin-start">12</property>
- <property name="margin-end">12</property>
- <property name="spacing">12</property>
- <child>
- <object class="GtkLabel" id="kbd_brightness_label">
- <property name="visible">True</property>
- <property name="use-markup">True</property>
- <property name="use-underline">True</property>
- <property name="ellipsize">end</property>
- <property name="label" translatable="yes">_Keyboard
Brightness</property>
- <property name="margin-top">6</property>
- <property name="margin-bottom">6</property>
- <property name="xalign">0</property>
- <property name="mnemonic_widget">kbd_brightness_scale</property>
- </object>
- </child>
- <child>
- <object class="GtkBox">
- <property name="visible">True</property>
- <property name="spacing">12</property>
- <property name="expand">True</property>
- <child>
- <object class="GtkLabel" id="kbd_brightness_spacer">
- <property name="visible">True</property>
- </object>
- </child>
- <child>
- <object class="CcBrightnessScale" id="kbd_brightness_scale">
- <property name="visible">True</property>
- <property name="valign">center</property>
- <property name="expand">True</property>
- <property name="device">kbd</property>
- <signal name="notify::has-brightness"
handler="has_kbd_brightness_cb" object="CcPowerPanel" swapped="yes"/>
- </object>
- </child>
- </object>
- </child>
+ <property name="valign">center</property>
+ <property name="expand">True</property>
+ <property name="device">kbd</property>
+ <signal name="notify::has-brightness" handler="has_kbd_brightness_cb"
object="CcPowerPanel" swapped="yes"/>
</object>
</child>
</object>
</child>
<child>
- <object class="GtkListBoxRow" id="dim_screen_row">
+ <object class="HdyActionRow" id="dim_screen_row">
<property name="visible">True</property>
- <property name="selectable">False</property>
- <property name="activatable">False</property>
+ <property name="title" translatable="yes">Dim Screen When Inactive</property>
+ <property name="activatable_widget">dim_screen_switch</property>
<child>
- <object class="GtkBox">
+ <object class="GtkSwitch" id="dim_screen_switch">
<property name="visible">True</property>
- <property name="margin-start">12</property>
- <property name="margin-end">12</property>
- <property name="spacing">12</property>
- <child>
- <object class="GtkLabel">
- <property name="visible">True</property>
- <property name="use-markup">True</property>
- <property name="use-underline">True</property>
- <property name="ellipsize">end</property>
- <property name="label" translatable="yes">Dim Screen When
Inactive</property>
- <property name="margin-top">6</property>
- <property name="margin-bottom">6</property>
- <property name="expand">True</property>
- <property name="xalign">0</property>
- <property name="mnemonic_widget">dim_screen_switch</property>
- </object>
- </child>
- <child>
- <object class="GtkSwitch" id="dim_screen_switch">
- <property name="visible">True</property>
- <property name="valign">center</property>
- </object>
- </child>
+ <property name="valign">center</property>
</object>
</child>
</object>
@@ -397,221 +286,65 @@
</object>
</child>
<child>
- <object class="GtkListBoxRow" id="automatic_suspend_row">
+ <object class="HdyActionRow" id="automatic_suspend_row">
<property name="visible">False</property>
+ <property name="title" translatable="yes">_Automatic Suspend</property>
+ <property name="use_underline">True</property>
+ <property name="activatable">True</property>
+ <signal name="activated" handler="automatic_suspend_row_activated_cb"
swapped="yes"/>
<child>
- <object class="GtkBox">
+ <object class="GtkLabel" id="automatic_suspend_label">
<property name="visible">True</property>
- <property name="margin-start">12</property>
- <property name="margin-end">12</property>
- <property name="spacing">12</property>
- <child>
- <object class="GtkLabel">
- <property name="visible">True</property>
- <property name="use-markup">True</property>
- <property name="use-underline">True</property>
- <property name="ellipsize">end</property>
- <property name="label" translatable="yes">_Automatic
Suspend</property>
- <property name="margin-top">6</property>
- <property name="margin-bottom">6</property>
- <property name="expand">True</property>
- <property name="xalign">0</property>
- <property name="mnemonic_widget">automatic_suspend_label</property>
- </object>
- </child>
- <child>
- <object class="GtkLabel" id="automatic_suspend_label">
- <property name="visible">True</property>
- <property name="halign">end</property>
- <signal name="mnemonic-activate"
handler="automatic_suspend_label_mnemonic_activate_cb" object="CcPowerPanel" swapped="yes"/>
- </object>
- </child>
+ <property name="halign">end</property>
+ <signal name="mnemonic-activate"
handler="automatic_suspend_label_mnemonic_activate_cb" object="CcPowerPanel" swapped="yes"/>
</object>
</child>
</object>
</child>
<child>
- <object class="GtkListBoxRow" id="wifi_row">
+ <object class="HdyActionRow" id="wifi_row">
<property name="visible">False</property>
- <property name="selectable">False</property>
- <property name="activatable">False</property>
+ <property name="title" translatable="yes">_Wi-Fi</property>
+ <property name="subtitle" translatable="yes">Wi-Fi can be turned off to save
power.</property>
+ <property name="use_underline">True</property>
+ <property name="activatable_widget">wifi_switch</property>
<child>
- <object class="GtkBox">
+ <object class="GtkSwitch" id="wifi_switch">
<property name="visible">True</property>
- <property name="margin-start">12</property>
- <property name="margin-end">12</property>
- <property name="spacing">12</property>
- <child>
- <object class="GtkBox">
- <property name="visible">True</property>
- <property name="orientation">vertical</property>
- <property name="margin-top">6</property>
- <property name="margin-bottom">6</property>
- <property name="spacing">4</property>
- <property name="valign">center</property>
- <property name="expand">True</property>
- <child>
- <object class="GtkLabel">
- <property name="visible">True</property>
- <property name="use-markup">True</property>
- <property name="use-underline">True</property>
- <property name="ellipsize">end</property>
- <property name="label" translatable="yes">_Wi-Fi</property>
- <property name="halign">start</property>
- <property name="xalign">0</property>
- <property name="mnemonic_widget">wifi_switch</property>
- </object>
- </child>
- <child>
- <object class="GtkLabel">
- <property name="visible">True</property>
- <property name="use-markup">True</property>
- <property name="use-underline">True</property>
- <property name="ellipsize">end</property>
- <property name="label" translatable="yes">Wi-Fi can be turned
off to save power.</property>
- <property name="halign">start</property>
- <property name="xalign">0</property>
- <attributes>
- <attribute name="scale" value="0.9"/>
- </attributes>
- <style>
- <class name="dim-label"/>
- </style>
- </object>
- </child>
- </object>
- </child>
- <child>
- <object class="GtkSwitch" id="wifi_switch">
- <property name="visible">True</property>
- <property name="valign">center</property>
- <signal name="notify::active" handler="wifi_switch_changed_cb"
object="CcPowerPanel" swapped="yes"/>
- </object>
- </child>
+ <property name="valign">center</property>
+ <signal name="notify::active" handler="wifi_switch_changed_cb"
object="CcPowerPanel" swapped="yes"/>
</object>
</child>
</object>
</child>
<child>
- <object class="GtkListBoxRow" id="mobile_row">
+ <object class="HdyActionRow" id="mobile_row">
<property name="visible">False</property>
- <property name="selectable">False</property>
- <property name="activatable">False</property>
+ <property name="title" translatable="yes">_Mobile Broadband</property>
+ <property name="subtitle" translatable="yes">Mobile broadband (LTE, 4G, 3G,
etc.) can be turned off to save power.</property>
+ <property name="use_underline">True</property>
+ <property name="activatable_widget">mobile_switch</property>
<child>
- <object class="GtkBox">
+ <object class="GtkSwitch" id="mobile_switch">
<property name="visible">True</property>
- <property name="margin-start">12</property>
- <property name="margin-end">12</property>
- <property name="spacing">12</property>
- <child>
- <object class="GtkBox">
- <property name="visible">True</property>
- <property name="orientation">vertical</property>
- <property name="margin-top">6</property>
- <property name="margin-bottom">6</property>
- <property name="spacing">4</property>
- <property name="valign">center</property>
- <property name="expand">True</property>
- <child>
- <object class="GtkLabel">
- <property name="visible">True</property>
- <property name="use-markup">True</property>
- <property name="use-underline">True</property>
- <property name="ellipsize">end</property>
- <property name="label" translatable="yes">_Mobile
Broadband</property>
- <property name="halign">start</property>
- <property name="xalign">0</property>
- <property name="mnemonic_widget">mobile_switch</property>
- </object>
- </child>
- <child>
- <object class="GtkLabel">
- <property name="visible">True</property>
- <property name="use-markup">True</property>
- <property name="use-underline">True</property>
- <property name="ellipsize">end</property>
- <property name="label" translatable="yes">Mobile broadband (LTE,
4G, 3G, etc.) can be turned off to save power.</property>
- <property name="halign">start</property>
- <property name="xalign">0</property>
- <attributes>
- <attribute name="scale" value="0.9"/>
- </attributes>
- <style>
- <class name="dim-label"/>
- </style>
- </object>
- </child>
- </object>
- </child>
- <child>
- <object class="GtkSwitch" id="mobile_switch">
- <property name="visible">True</property>
- <property name="valign">center</property>
- <signal name="notify::active" handler="mobile_switch_changed_cb"
object="CcPowerPanel" swapped="yes"/>
- </object>
- </child>
+ <property name="valign">center</property>
+ <signal name="notify::active" handler="mobile_switch_changed_cb"
object="CcPowerPanel" swapped="yes"/>
</object>
</child>
</object>
</child>
<child>
- <object class="GtkListBoxRow" id="bt_row">
+ <object class="HdyActionRow" id="bt_row">
<property name="visible">False</property>
- <property name="selectable">False</property>
- <property name="activatable">False</property>
+ <property name="title" translatable="yes">_Bluetooth</property>
+ <property name="subtitle" translatable="yes">Bluetooth can be turned off to
save power.</property>
+ <property name="use_underline">True</property>
+ <property name="activatable_widget">bt_switch</property>
<child>
- <object class="GtkBox">
+ <object class="GtkSwitch" id="bt_switch">
<property name="visible">True</property>
- <property name="margin-start">12</property>
- <property name="margin-end">12</property>
- <property name="spacing">12</property>
- <child>
- <object class="GtkBox">
- <property name="visible">True</property>
- <property name="orientation">vertical</property>
- <property name="margin-top">6</property>
- <property name="margin-bottom">6</property>
- <property name="spacing">4</property>
- <property name="valign">center</property>
- <property name="expand">True</property>
- <child>
- <object class="GtkLabel">
- <property name="visible">True</property>
- <property name="use-markup">True</property>
- <property name="use-underline">True</property>
- <property name="ellipsize">end</property>
- <property name="label" translatable="yes">_Bluetooth</property>
- <property name="halign">start</property>
- <property name="xalign">0</property>
- <property name="mnemonic_widget">bt_switch</property>
- </object>
- </child>
- <child>
- <object class="GtkLabel">
- <property name="visible">True</property>
- <property name="use-markup">True</property>
- <property name="use-underline">True</property>
- <property name="ellipsize">end</property>
- <property name="label" translatable="yes">Bluetooth can be
turned off to save power.</property>
- <property name="halign">start</property>
- <property name="xalign">0</property>
- <attributes>
- <attribute name="scale" value="0.9"/>
- </attributes>
- <style>
- <class name="dim-label"/>
- </style>
- </object>
- </child>
- </object>
- </child>
- <child>
- <object class="GtkSwitch" id="bt_switch">
- <property name="visible">True</property>
- <property name="valign">center</property>
- <signal name="notify::active" handler="bt_switch_changed_cb"
object="CcPowerPanel" swapped="yes"/>
- </object>
- </child>
+ <property name="valign">center</property>
+ <signal name="notify::active" handler="bt_switch_changed_cb"
object="CcPowerPanel" swapped="yes"/>
</object>
</child>
</object>
@@ -660,36 +393,15 @@
</object>
</child>
<child>
- <object class="GtkListBoxRow" id="battery_percentage_row">
+ <object class="HdyActionRow" id="battery_percentage_row">
<property name="visible">False</property>
- <property name="selectable">False</property>
- <property name="activatable">False</property>
+ <property name="title" translatable="yes">Show Battery _Percentage</property>
+ <property name="use_underline">True</property>
+ <property name="activatable_widget">battery_percentage_switch</property>
<child>
- <object class="GtkBox">
+ <object class="GtkSwitch" id="battery_percentage_switch">
<property name="visible">True</property>
- <property name="margin-start">12</property>
- <property name="margin-end">12</property>
- <property name="spacing">12</property>
- <child>
- <object class="GtkLabel">
- <property name="visible">True</property>
- <property name="use-markup">True</property>
- <property name="use-underline">True</property>
- <property name="ellipsize">end</property>
- <property name="label" translatable="yes">Show Battery
_Percentage</property>
- <property name="margin-top">6</property>
- <property name="margin-bottom">6</property>
- <property name="expand">True</property>
- <property name="xalign">0</property>
- <property name="mnemonic_widget">battery_percentage_switch</property>
- </object>
- </child>
- <child>
- <object class="GtkSwitch" id="battery_percentage_switch">
- <property name="visible">True</property>
- <property name="valign">center</property>
- </object>
- </child>
+ <property name="valign">center</property>
</object>
</child>
</object>
@@ -710,20 +422,6 @@
<object class="GtkSizeGroup" id="battery_row_sizegroup">
<property name="mode">vertical</property>
</object>
- <object class="GtkSizeGroup" id="battery_sizegroup">
- <property name="mode">horizontal</property>
- <widgets>
- <widget name="brightness_label"/>
- <widget name="kbd_brightness_label"/>
- </widgets>
- </object>
- <object class="GtkSizeGroup" id="charge_sizegroup">
- <property name="mode">horizontal</property>
- <widgets>
- <widget name="brightness_spacer"/>
- <widget name="kbd_brightness_spacer"/>
- </widgets>
- </object>
<object class="GtkSizeGroup" id="level_sizegroup">
<property name="mode">horizontal</property>
<widgets>
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]