386b349807
Resolves: #1994475
5103 lines
232 KiB
Diff
5103 lines
232 KiB
Diff
From 1e3569e2f6c2c418b84ea3aa6ce5f84166ec48a7 Mon Sep 17 00:00:00 2001
|
||
From: Bastien Nocera <hadess@hadess.net>
|
||
Date: Wed, 31 Mar 2021 11:06:44 +0200
|
||
Subject: [PATCH 01/33] power: Fix possible assertion on startup
|
||
|
||
When opening the Power panel, and if power-profiles-daemon isn't already
|
||
started, we'll be autostarting it, making it send signals about all the
|
||
changed properties, including "PerformanceInhibited" even if we
|
||
don't have a Performance row.
|
||
|
||
Ignore the property change if we don't have a row for it rather than
|
||
asserting.
|
||
|
||
#0 0x00007f73916bc292 in raise () from /lib64/libc.so.6
|
||
#1 0x00007f73916a58a4 in abort () from /lib64/libc.so.6
|
||
#2 0x00007f7393203ccc in g_assertion_message.cold () from /lib64/libglib-2.0.so.0
|
||
#3 0x00007f739325f22f in g_assertion_message_expr () from /lib64/libglib-2.0.so.0
|
||
#4 0x000055a4099e28ae in performance_profile_set_inhibited (self=0x55a40b37e320, self=0x55a40b37e320, performance_inhibited=<optimized out>) at ../panels/power/cc-power-panel.c:1366
|
||
#5 power_profiles_properties_changed_cb (self=0x55a40b37e320, changed_properties=<optimized out>, invalidated_properties=<optimized out>, proxy=<optimized out>) at ../panels/power/cc-power-panel.c:1425
|
||
#6 0x00007f7393332c2f in g_closure_invoke () from /lib64/libgobject-2.0.so.0
|
||
#7 0x00007f739334eea6 in signal_emit_unlocked_R () from /lib64/libgobject-2.0.so.0
|
||
|
||
1362 {
|
||
1363 CcPowerProfileRow *row;
|
||
1364
|
||
1365 row = self->power_profiles_row[CC_POWER_PROFILE_PERFORMANCE];
|
||
1366 g_assert (row != NULL);
|
||
1367 cc_power_profile_row_set_performance_inhibited (row, performance_inhibited);
|
||
1368 }
|
||
---
|
||
panels/power/cc-power-panel.c | 3 ++-
|
||
1 file changed, 2 insertions(+), 1 deletion(-)
|
||
|
||
diff --git a/panels/power/cc-power-panel.c b/panels/power/cc-power-panel.c
|
||
index c9c4705da..0b8226a29 100644
|
||
--- a/panels/power/cc-power-panel.c
|
||
+++ b/panels/power/cc-power-panel.c
|
||
@@ -1363,7 +1363,8 @@ performance_profile_set_inhibited (CcPowerPanel *self,
|
||
CcPowerProfileRow *row;
|
||
|
||
row = self->power_profiles_row[CC_POWER_PROFILE_PERFORMANCE];
|
||
- g_assert (row != NULL);
|
||
+ if (!row)
|
||
+ return;
|
||
cc_power_profile_row_set_performance_inhibited (row, performance_inhibited);
|
||
}
|
||
|
||
--
|
||
2.32.0
|
||
|
||
|
||
From da2248d43f519f13b57e89cdc80bbbfe346ad463 Mon Sep 17 00:00:00 2001
|
||
From: Adrien Plazas <kekun.plazas@laposte.net>
|
||
Date: Thu, 7 Jan 2021 14:00:15 +0100
|
||
Subject: [PATCH 02/33] power: Simplifies keyboard navigation
|
||
|
||
This drops the ability to loop through the page but significantly
|
||
simplifies the code. I think this is a good tradeoff as looping is a
|
||
rather unexpected behavior.
|
||
---
|
||
panels/power/cc-power-panel.c | 70 ++---------------------------------
|
||
1 file changed, 4 insertions(+), 66 deletions(-)
|
||
|
||
diff --git a/panels/power/cc-power-panel.c b/panels/power/cc-power-panel.c
|
||
index 0b8226a29..1d31a8a83 100644
|
||
--- a/panels/power/cc-power-panel.c
|
||
+++ b/panels/power/cc-power-panel.c
|
||
@@ -122,9 +122,6 @@ struct _CcPowerPanel
|
||
gboolean has_batteries;
|
||
char *chassis_type;
|
||
|
||
- GList *boxes;
|
||
- GList *boxes_reverse;
|
||
-
|
||
GDBusProxy *bt_rfkill;
|
||
GDBusProxy *bt_properties;
|
||
|
||
@@ -169,8 +166,6 @@ cc_power_panel_dispose (GObject *object)
|
||
#ifdef HAVE_NETWORK_MANAGER
|
||
g_clear_object (&self->nm_client);
|
||
#endif
|
||
- g_clear_pointer (&self->boxes, g_list_free);
|
||
- g_clear_pointer (&self->boxes_reverse, g_list_free);
|
||
if (self->iio_proxy_watch_id != 0)
|
||
g_bus_unwatch_name (self->iio_proxy_watch_id);
|
||
self->iio_proxy_watch_id = 0;
|
||
@@ -869,60 +864,12 @@ nm_client_ready_cb (GObject *source_object,
|
||
static gboolean
|
||
keynav_failed_cb (CcPowerPanel *self, GtkDirectionType direction, GtkWidget *list)
|
||
{
|
||
- GtkWidget *next_list = NULL;
|
||
- GList *item, *boxes_list;
|
||
- gdouble value, lower, upper, page;
|
||
-
|
||
- /* Find the list in the list of GtkListBoxes */
|
||
- if (direction == GTK_DIR_DOWN)
|
||
- boxes_list = self->boxes;
|
||
- else
|
||
- boxes_list = self->boxes_reverse;
|
||
-
|
||
- item = g_list_find (boxes_list, list);
|
||
- g_assert (item);
|
||
- item = item->next;
|
||
- while (1)
|
||
- {
|
||
- if (item == NULL)
|
||
- item = boxes_list;
|
||
-
|
||
- /* Avoid looping */
|
||
- if (item->data == list)
|
||
- break;
|
||
-
|
||
- if (gtk_widget_is_visible (item->data))
|
||
- {
|
||
- next_list = item->data;
|
||
- break;
|
||
- }
|
||
-
|
||
- item = item->next;
|
||
- }
|
||
-
|
||
- if (next_list)
|
||
- {
|
||
- gtk_widget_child_focus (next_list, direction);
|
||
- return TRUE;
|
||
- }
|
||
-
|
||
- value = gtk_adjustment_get_value (self->focus_adjustment);
|
||
- lower = gtk_adjustment_get_lower (self->focus_adjustment);
|
||
- upper = gtk_adjustment_get_upper (self->focus_adjustment);
|
||
- page = gtk_adjustment_get_page_size (self->focus_adjustment);
|
||
+ if (direction != GTK_DIR_UP && direction != GTK_DIR_DOWN)
|
||
+ return FALSE;
|
||
|
||
- if (direction == GTK_DIR_UP && value > lower)
|
||
- {
|
||
- gtk_adjustment_set_value (self->focus_adjustment, lower);
|
||
- return TRUE;
|
||
- }
|
||
- else if (direction == GTK_DIR_DOWN && value < upper - page)
|
||
- {
|
||
- gtk_adjustment_set_value (self->focus_adjustment, upper - page);
|
||
- return TRUE;
|
||
- }
|
||
+ direction == GTK_DIR_UP ? GTK_DIR_TAB_BACKWARD : GTK_DIR_TAB_FORWARD;
|
||
|
||
- return FALSE;
|
||
+ return gtk_widget_child_focus (GTK_WIDGET (self), direction);
|
||
}
|
||
|
||
static void
|
||
@@ -1559,8 +1506,6 @@ setup_power_profiles (CcPowerPanel *self)
|
||
|
||
gtk_widget_show (GTK_WIDGET (self->power_profile_section));
|
||
|
||
- self->boxes_reverse = g_list_prepend (self->boxes_reverse, self->power_profile_listbox);
|
||
-
|
||
props = g_variant_get_child_value (variant, 0);
|
||
performance_inhibited = variant_lookup_string (props, "PerformanceInhibited");
|
||
active_profile = variant_lookup_string (props, "ActiveProfile");
|
||
@@ -1780,7 +1725,6 @@ cc_power_panel_init (CcPowerPanel *self)
|
||
battery_label = g_markup_printf_escaped ("<b>%s</b>", _("Battery"));
|
||
gtk_label_set_markup (self->battery_heading, battery_label);
|
||
|
||
- self->boxes_reverse = g_list_prepend (self->boxes_reverse, self->battery_listbox);
|
||
gtk_list_box_set_header_func (self->battery_listbox,
|
||
cc_list_box_update_header_func,
|
||
NULL, NULL);
|
||
@@ -1790,7 +1734,6 @@ cc_power_panel_init (CcPowerPanel *self)
|
||
device_label = g_markup_printf_escaped ("<b>%s</b>", _("Devices"));
|
||
gtk_label_set_markup (self->device_heading, device_label);
|
||
|
||
- self->boxes_reverse = g_list_prepend (self->boxes_reverse, self->device_listbox);
|
||
gtk_list_box_set_header_func (self->device_listbox,
|
||
cc_list_box_update_header_func,
|
||
NULL, NULL);
|
||
@@ -1809,7 +1752,6 @@ cc_power_panel_init (CcPowerPanel *self)
|
||
|
||
power_saving_label = g_strdup_printf ("<b>%s</b>", _("Power Saving"));
|
||
gtk_label_set_markup (self->power_saving_heading, power_saving_label);
|
||
- self->boxes_reverse = g_list_prepend (self->boxes_reverse, self->power_saving_listbox);
|
||
gtk_list_box_set_header_func (self->power_saving_listbox,
|
||
cc_list_box_update_header_func,
|
||
NULL, NULL);
|
||
@@ -1817,15 +1759,11 @@ cc_power_panel_init (CcPowerPanel *self)
|
||
|
||
general_label = g_markup_printf_escaped ("<b>%s</b>", _("Suspend & Power Button"));
|
||
gtk_label_set_markup (self->general_heading, general_label);
|
||
- self->boxes_reverse = g_list_prepend (self->boxes_reverse, self->general_listbox);
|
||
gtk_list_box_set_header_func (self->general_listbox,
|
||
cc_list_box_update_header_func,
|
||
NULL, NULL);
|
||
setup_general_section (self);
|
||
|
||
- self->boxes = g_list_copy (self->boxes_reverse);
|
||
- self->boxes = g_list_reverse (self->boxes);
|
||
-
|
||
/* populate batteries */
|
||
g_signal_connect_object (self->up_client, "device-added", G_CALLBACK (up_client_device_added), self, G_CONNECT_SWAPPED);
|
||
g_signal_connect_object (self->up_client, "device-removed", G_CALLBACK (up_client_device_removed), self, G_CONNECT_SWAPPED);
|
||
--
|
||
2.32.0
|
||
|
||
|
||
From 25027f6c3c6928eeedb440fe2ca84412dae49ab2 Mon Sep 17 00:00:00 2001
|
||
From: Adrien Plazas <kekun.plazas@laposte.net>
|
||
Date: Fri, 8 Jan 2021 16:00:25 +0100
|
||
Subject: [PATCH 03/33] power: Don't set the vadjustment
|
||
|
||
This is useless as GtkScrolledwindow already does it on the viewport it
|
||
creates.
|
||
---
|
||
panels/power/cc-power-panel.c | 9 ---------
|
||
panels/power/cc-power-panel.ui | 4 ++--
|
||
2 files changed, 2 insertions(+), 11 deletions(-)
|
||
|
||
diff --git a/panels/power/cc-power-panel.c b/panels/power/cc-power-panel.c
|
||
index 1d31a8a83..1a8cfa969 100644
|
||
--- a/panels/power/cc-power-panel.c
|
||
+++ b/panels/power/cc-power-panel.c
|
||
@@ -91,8 +91,6 @@ struct _CcPowerPanel
|
||
GtkListBoxRow *kbd_brightness_row;
|
||
CcBrightnessScale *kbd_brightness_scale;
|
||
GtkSizeGroup *level_sizegroup;
|
||
- GtkScrolledWindow *main_scroll;
|
||
- HdyClamp *main_box;
|
||
GtkListBoxRow *mobile_row;
|
||
GtkSwitch *mobile_switch;
|
||
GtkComboBox *power_button_combo;
|
||
@@ -136,8 +134,6 @@ struct _CcPowerPanel
|
||
#ifdef HAVE_NETWORK_MANAGER
|
||
NMClient *nm_client;
|
||
#endif
|
||
-
|
||
- GtkAdjustment *focus_adjustment;
|
||
};
|
||
|
||
CC_PANEL_REGISTER (CcPowerPanel, cc_power_panel)
|
||
@@ -1661,8 +1657,6 @@ cc_power_panel_class_init (CcPowerPanelClass *klass)
|
||
gtk_widget_class_bind_template_child (widget_class, CcPowerPanel, kbd_brightness_row);
|
||
gtk_widget_class_bind_template_child (widget_class, CcPowerPanel, kbd_brightness_scale);
|
||
gtk_widget_class_bind_template_child (widget_class, CcPowerPanel, level_sizegroup);
|
||
- gtk_widget_class_bind_template_child (widget_class, CcPowerPanel, main_scroll);
|
||
- gtk_widget_class_bind_template_child (widget_class, CcPowerPanel, main_box);
|
||
gtk_widget_class_bind_template_child (widget_class, CcPowerPanel, mobile_row);
|
||
gtk_widget_class_bind_template_child (widget_class, CcPowerPanel, mobile_switch);
|
||
gtk_widget_class_bind_template_child (widget_class, CcPowerPanel, power_button_combo);
|
||
@@ -1775,7 +1769,4 @@ cc_power_panel_init (CcPowerPanel *self)
|
||
G_CALLBACK (up_client_changed), self, G_CONNECT_SWAPPED);
|
||
}
|
||
up_client_changed (self);
|
||
-
|
||
- self->focus_adjustment = gtk_scrolled_window_get_vadjustment (self->main_scroll);
|
||
- gtk_container_set_focus_vadjustment (GTK_CONTAINER (self->main_box), self->focus_adjustment);
|
||
}
|
||
diff --git a/panels/power/cc-power-panel.ui b/panels/power/cc-power-panel.ui
|
||
index ea3cf9322..d3e200d93 100644
|
||
--- a/panels/power/cc-power-panel.ui
|
||
+++ b/panels/power/cc-power-panel.ui
|
||
@@ -113,12 +113,12 @@
|
||
<property name="visible">True</property>
|
||
<property name="can_focus">False</property>
|
||
<child>
|
||
- <object class="GtkScrolledWindow" id="main_scroll">
|
||
+ <object class="GtkScrolledWindow">
|
||
<property name="visible">True</property>
|
||
<property name="can_focus">False</property>
|
||
<property name="hscrollbar_policy">never</property>
|
||
<child>
|
||
- <object class="HdyClamp" id="main_box">
|
||
+ <object class="HdyClamp">
|
||
<property name="visible">True</property>
|
||
<property name="margin_top">32</property>
|
||
<property name="margin_bottom">32</property>
|
||
--
|
||
2.32.0
|
||
|
||
|
||
From caf3d70a7004552e0bb382a1a1220cdac9c0c1f0 Mon Sep 17 00:00:00 2001
|
||
From: Adrien Plazas <kekun.plazas@laposte.net>
|
||
Date: Fri, 8 Jan 2021 16:12:56 +0100
|
||
Subject: [PATCH 04/33] power: Use HdyComboRow for the Blank Screen row
|
||
|
||
This simplifies the code a bit and modernizes the UI.
|
||
---
|
||
panels/power/cc-power-panel.c | 110 ++++++++++++++++++++++++++-------
|
||
panels/power/cc-power-panel.ui | 88 ++------------------------
|
||
2 files changed, 92 insertions(+), 106 deletions(-)
|
||
|
||
diff --git a/panels/power/cc-power-panel.c b/panels/power/cc-power-panel.c
|
||
index 1a8cfa969..b046b2589 100644
|
||
--- a/panels/power/cc-power-panel.c
|
||
+++ b/panels/power/cc-power-panel.c
|
||
@@ -73,7 +73,7 @@ struct _CcPowerPanel
|
||
GtkSizeGroup *battery_row_sizegroup;
|
||
GtkBox *battery_section;
|
||
GtkSizeGroup *battery_sizegroup;
|
||
- GtkListBoxRow *blank_screen_row;
|
||
+ HdyComboRow *blank_screen_row;
|
||
GtkListBoxRow *brightness_row;
|
||
CcBrightnessScale *brightness_scale;
|
||
GtkListBoxRow *bt_row;
|
||
@@ -87,7 +87,6 @@ struct _CcPowerPanel
|
||
GtkLabel *general_heading;
|
||
GtkListBox *general_listbox;
|
||
GtkBox *general_section;
|
||
- GtkComboBox *idle_delay_combo;
|
||
GtkListBoxRow *kbd_brightness_row;
|
||
CcBrightnessScale *kbd_brightness_scale;
|
||
GtkSizeGroup *level_sizegroup;
|
||
@@ -577,6 +576,49 @@ set_value_for_combo (GtkComboBox *combo_box, gint value)
|
||
gtk_combo_box_set_active_iter (combo_box, &new);
|
||
}
|
||
|
||
+static void
|
||
+set_value_for_combo_row (HdyComboRow *combo_row, gint value)
|
||
+{
|
||
+ gboolean insert = FALSE;
|
||
+ guint insert_before = 0;
|
||
+ guint i;
|
||
+ HdyValueObject *new;
|
||
+ GListModel *model;
|
||
+ gint value_last = 0;
|
||
+ g_autofree gchar *text = NULL;
|
||
+
|
||
+ /* try to make the UI match the setting */
|
||
+ model = hdy_combo_row_get_model (combo_row);
|
||
+ for (i = 0; i < g_list_model_get_n_items (model); i++)
|
||
+ {
|
||
+ HdyValueObject *value_object = g_list_model_get_item (model, i);
|
||
+ gint value_tmp = GPOINTER_TO_UINT (g_object_get_data (G_OBJECT (value_object), "value"));
|
||
+ if (value_tmp == value)
|
||
+ {
|
||
+ hdy_combo_row_set_selected_index (combo_row, i);
|
||
+ return;
|
||
+ }
|
||
+
|
||
+ /* Insert before if the next value is larger or the value is lower
|
||
+ * again (i.e. "Never" is zero and last). */
|
||
+ if (!insert && (value_tmp > value || value_last > value_tmp))
|
||
+ {
|
||
+ insert = TRUE;
|
||
+ insert_before = i;
|
||
+ }
|
||
+
|
||
+ value_last = value_tmp;
|
||
+ }
|
||
+
|
||
+ /* The value is not listed, so add it at the best point (or the end). */
|
||
+ text = cc_util_time_to_string_text (value * 1000);
|
||
+ new = hdy_value_object_new_string (text);
|
||
+ g_object_set_data (G_OBJECT (new), "value",
|
||
+ GUINT_TO_POINTER (value));
|
||
+ g_list_store_insert (G_LIST_STORE (model), insert_before, new);
|
||
+ hdy_combo_row_set_selected_index (combo_row, insert_before);
|
||
+}
|
||
+
|
||
static void
|
||
set_ac_battery_ui_mode (CcPowerPanel *self)
|
||
{
|
||
@@ -869,25 +911,18 @@ keynav_failed_cb (CcPowerPanel *self, GtkDirectionType direction, GtkWidget *lis
|
||
}
|
||
|
||
static void
|
||
-idle_delay_combo_changed_cb (CcPowerPanel *self)
|
||
+blank_screen_row_changed_cb (CcPowerPanel *self)
|
||
{
|
||
- GtkTreeIter iter;
|
||
- GtkTreeModel *model;
|
||
+ GListModel *model;
|
||
+ gint selected_index;
|
||
+ HdyValueObject *value_object;
|
||
gint value;
|
||
- gboolean ret;
|
||
|
||
- /* no selection */
|
||
- ret = gtk_combo_box_get_active_iter (self->idle_delay_combo, &iter);
|
||
- if (!ret)
|
||
- return;
|
||
+ model = hdy_combo_row_get_model (self->blank_screen_row);
|
||
+ selected_index = hdy_combo_row_get_selected_index (self->blank_screen_row);
|
||
+ value_object = g_list_model_get_item (model, selected_index);
|
||
+ value = GPOINTER_TO_UINT (g_object_get_data (G_OBJECT (value_object), "value"));
|
||
|
||
- /* get entry */
|
||
- model = gtk_combo_box_get_model (self->idle_delay_combo);
|
||
- gtk_tree_model_get (model, &iter,
|
||
- 1, &value,
|
||
- -1);
|
||
-
|
||
- /* set both keys */
|
||
g_settings_set_uint (self->session_settings, "idle-delay", value);
|
||
}
|
||
|
||
@@ -1171,6 +1206,37 @@ has_kbd_brightness_cb (CcPowerPanel *self,
|
||
gtk_widget_set_visible (GTK_WIDGET (self->kbd_brightness_row), has_brightness);
|
||
}
|
||
|
||
+static void
|
||
+populate_blank_screen_row (HdyComboRow *combo_row)
|
||
+{
|
||
+ g_autoptr (GListStore) list_store = g_list_store_new (HDY_TYPE_VALUE_OBJECT);
|
||
+ gint minutes[] = { 1, 2, 3, 4, 5, 8, 10, 12, 15 };
|
||
+ guint i;
|
||
+ g_autoptr (HdyValueObject) never_value_object = NULL;
|
||
+
|
||
+ for (i = 0; i < G_N_ELEMENTS (minutes); i++)
|
||
+ {
|
||
+ gchar *text = NULL;
|
||
+ g_autoptr (HdyValueObject) value_object = NULL;
|
||
+
|
||
+ /* Translators: Option for "Blank Screen" in "Power" panel */
|
||
+ text = g_strdup_printf (g_dngettext (GETTEXT_PACKAGE, "%d minute", "%d minutes", minutes[i]), minutes[i]);
|
||
+ value_object = hdy_value_object_new_take_string (text);
|
||
+
|
||
+ g_object_set_data (G_OBJECT (value_object), "value", GUINT_TO_POINTER (minutes[i] * 60));
|
||
+ g_list_store_append (list_store, value_object);
|
||
+ }
|
||
+
|
||
+ never_value_object = hdy_value_object_new_string (C_("Idle time", "Never"));
|
||
+ g_object_set_data (G_OBJECT (never_value_object), "value", GUINT_TO_POINTER (0));
|
||
+ g_list_store_append (list_store, never_value_object);
|
||
+
|
||
+ hdy_combo_row_bind_name_model (combo_row,
|
||
+ G_LIST_MODEL (list_store),
|
||
+ (HdyComboRowGetNameFunc) hdy_value_object_dup_string,
|
||
+ NULL, NULL);
|
||
+}
|
||
+
|
||
static void
|
||
setup_power_saving (CcPowerPanel *self)
|
||
{
|
||
@@ -1191,10 +1257,11 @@ setup_power_saving (CcPowerPanel *self)
|
||
self->dim_screen_switch, "active",
|
||
G_SETTINGS_BIND_DEFAULT);
|
||
|
||
+ g_signal_handlers_block_by_func (self->blank_screen_row, blank_screen_row_changed_cb, self);
|
||
+ populate_blank_screen_row (self->blank_screen_row);
|
||
value = g_settings_get_uint (self->session_settings, "idle-delay");
|
||
- g_signal_handlers_block_by_func (self->idle_delay_combo, idle_delay_combo_changed_cb, self);
|
||
- set_value_for_combo (self->idle_delay_combo, value);
|
||
- g_signal_handlers_unblock_by_func (self->idle_delay_combo, idle_delay_combo_changed_cb, self);
|
||
+ set_value_for_combo_row (self->blank_screen_row, value);
|
||
+ g_signal_handlers_unblock_by_func (self->blank_screen_row, blank_screen_row_changed_cb, self);
|
||
|
||
/* The default values for these settings are unfortunate for us;
|
||
* timeout == 0, action == suspend means 'do nothing' - just
|
||
@@ -1653,7 +1720,6 @@ cc_power_panel_class_init (CcPowerPanelClass *klass)
|
||
gtk_widget_class_bind_template_child (widget_class, CcPowerPanel, general_heading);
|
||
gtk_widget_class_bind_template_child (widget_class, CcPowerPanel, general_listbox);
|
||
gtk_widget_class_bind_template_child (widget_class, CcPowerPanel, general_section);
|
||
- gtk_widget_class_bind_template_child (widget_class, CcPowerPanel, idle_delay_combo);
|
||
gtk_widget_class_bind_template_child (widget_class, CcPowerPanel, kbd_brightness_row);
|
||
gtk_widget_class_bind_template_child (widget_class, CcPowerPanel, kbd_brightness_scale);
|
||
gtk_widget_class_bind_template_child (widget_class, CcPowerPanel, level_sizegroup);
|
||
@@ -1683,7 +1749,7 @@ cc_power_panel_class_init (CcPowerPanelClass *klass)
|
||
gtk_widget_class_bind_template_callback (widget_class, bt_switch_changed_cb);
|
||
gtk_widget_class_bind_template_callback (widget_class, has_brightness_cb);
|
||
gtk_widget_class_bind_template_callback (widget_class, has_kbd_brightness_cb);
|
||
- gtk_widget_class_bind_template_callback (widget_class, idle_delay_combo_changed_cb);
|
||
+ gtk_widget_class_bind_template_callback (widget_class, blank_screen_row_changed_cb);
|
||
gtk_widget_class_bind_template_callback (widget_class, keynav_failed_cb);
|
||
gtk_widget_class_bind_template_callback (widget_class, mobile_switch_changed_cb);
|
||
gtk_widget_class_bind_template_callback (widget_class, power_button_combo_changed_cb);
|
||
diff --git a/panels/power/cc-power-panel.ui b/panels/power/cc-power-panel.ui
|
||
index d3e200d93..a9bb39b77 100644
|
||
--- a/panels/power/cc-power-panel.ui
|
||
+++ b/panels/power/cc-power-panel.ui
|
||
@@ -51,56 +51,6 @@
|
||
</row>
|
||
</data>
|
||
</object>
|
||
- <object class="GtkListStore" id="idle_time_liststore">
|
||
- <columns>
|
||
- <!-- column-name name -->
|
||
- <column type="gchararray"/>
|
||
- <!-- column-name value -->
|
||
- <column type="gint"/>
|
||
- </columns>
|
||
- <data>
|
||
- <row>
|
||
- <col id="0" translatable="yes" context="blank_screen" comments="Translators: Option for "Blank screen" in "Power" panel.">1 minute</col>
|
||
- <col id="1">60</col>
|
||
- </row>
|
||
- <row>
|
||
- <col id="0" translatable="yes" context="blank_screen" comments="Translators: Option for "Blank screen" in "Power" panel.">2 minutes</col>
|
||
- <col id="1">120</col>
|
||
- </row>
|
||
- <row>
|
||
- <col id="0" translatable="yes" context="blank_screen" comments="Translators: Option for "Blank screen" in "Power" panel.">3 minutes</col>
|
||
- <col id="1">180</col>
|
||
- </row>
|
||
- <row>
|
||
- <col id="0" translatable="yes" context="blank_screen" comments="Translators: Option for "Blank screen" in "Power" panel.">4 minutes</col>
|
||
- <col id="1">240</col>
|
||
- </row>
|
||
- <row>
|
||
- <col id="0" translatable="yes" context="blank_screen" comments="Translators: Option for "Blank screen" in "Power" panel.">5 minutes</col>
|
||
- <col id="1">300</col>
|
||
- </row>
|
||
- <row>
|
||
- <col id="0" translatable="yes" context="blank_screen" comments="Translators: Option for "Blank screen" in "Power" panel.">8 minutes</col>
|
||
- <col id="1">480</col>
|
||
- </row>
|
||
- <row>
|
||
- <col id="0" translatable="yes" context="blank_screen" comments="Translators: Option for "Blank screen" in "Power" panel.">10 minutes</col>
|
||
- <col id="1">600</col>
|
||
- </row>
|
||
- <row>
|
||
- <col id="0" translatable="yes" context="blank_screen" comments="Translators: Option for "Blank screen" in "Power" panel.">12 minutes</col>
|
||
- <col id="1">720</col>
|
||
- </row>
|
||
- <row>
|
||
- <col id="0" translatable="yes" context="blank_screen" comments="Translators: Option for "Blank screen" in "Power" panel.">15 minutes</col>
|
||
- <col id="1">900</col>
|
||
- </row>
|
||
- <row>
|
||
- <col id="0" translatable="yes" context="blank_screen" comments="Translators: Option for "Blank screen" in "Power" panel.">Never</col>
|
||
- <col id="1">0</col>
|
||
- </row>
|
||
- </data>
|
||
- </object>
|
||
<object class="GtkListStore" id="power_button_liststore">
|
||
<columns>
|
||
<!-- column-name name -->
|
||
@@ -447,41 +397,11 @@
|
||
</object>
|
||
</child>
|
||
<child>
|
||
- <object class="GtkListBoxRow" id="blank_screen_row">
|
||
+ <object class="HdyComboRow" id="blank_screen_row">
|
||
<property name="visible">True</property>
|
||
- <property name="selectable">False</property>
|
||
- <property name="activatable">False</property>
|
||
- <child>
|
||
- <object class="GtkBox">
|
||
- <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">_Blank Screen</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">idle_delay_combo</property>
|
||
- </object>
|
||
- </child>
|
||
- <child>
|
||
- <object class="GtkComboBoxText" id="idle_delay_combo">
|
||
- <property name="visible">True</property>
|
||
- <property name="valign">center</property>
|
||
- <property name="entry-text-column">0</property>
|
||
- <property name="model">idle_time_liststore</property>
|
||
- <signal name="changed" handler="idle_delay_combo_changed_cb" object="CcPowerPanel" swapped="yes"/>
|
||
- </object>
|
||
- </child>
|
||
- </object>
|
||
- </child>
|
||
+ <property name="title" translatable="yes">_Blank Screen</property>
|
||
+ <property name="use_underline">True</property>
|
||
+ <signal name="notify::selected-index" handler="blank_screen_row_changed_cb" object="CcPowerPanel" swapped="yes"/>
|
||
</object>
|
||
</child>
|
||
<child>
|
||
--
|
||
2.32.0
|
||
|
||
|
||
From 7dbe681401f3f487f1e752a0569cf3d743a74187 Mon Sep 17 00:00:00 2001
|
||
From: Adrien Plazas <kekun.plazas@laposte.net>
|
||
Date: Fri, 8 Jan 2021 16:17:42 +0100
|
||
Subject: [PATCH 05/33] power: Use HdyComboRow for the Power Button Behavior
|
||
row
|
||
|
||
This simplifies the code a bit and modernizes the UI.
|
||
---
|
||
panels/power/cc-power-panel.c | 71 ++++++++++++++++++----------------
|
||
panels/power/cc-power-panel.ui | 46 ++--------------------
|
||
2 files changed, 42 insertions(+), 75 deletions(-)
|
||
|
||
diff --git a/panels/power/cc-power-panel.c b/panels/power/cc-power-panel.c
|
||
index b046b2589..ea979cfc7 100644
|
||
--- a/panels/power/cc-power-panel.c
|
||
+++ b/panels/power/cc-power-panel.c
|
||
@@ -92,9 +92,7 @@ struct _CcPowerPanel
|
||
GtkSizeGroup *level_sizegroup;
|
||
GtkListBoxRow *mobile_row;
|
||
GtkSwitch *mobile_switch;
|
||
- GtkComboBox *power_button_combo;
|
||
- GtkListStore *power_button_liststore;
|
||
- GtkListBoxRow *power_button_row;
|
||
+ HdyComboRow *power_button_row;
|
||
GtkLabel *power_profile_heading;
|
||
GtkListBox *power_profile_listbox;
|
||
GtkBox *power_profile_section;
|
||
@@ -927,25 +925,18 @@ blank_screen_row_changed_cb (CcPowerPanel *self)
|
||
}
|
||
|
||
static void
|
||
-power_button_combo_changed_cb (CcPowerPanel *self)
|
||
+power_button_row_changed_cb (CcPowerPanel *self)
|
||
{
|
||
- GtkTreeIter iter;
|
||
- GtkTreeModel *model;
|
||
+ GListModel *model;
|
||
+ gint selected_index;
|
||
+ HdyValueObject *value_object;
|
||
gint value;
|
||
- gboolean ret;
|
||
|
||
- /* no selection */
|
||
- ret = gtk_combo_box_get_active_iter (GTK_COMBO_BOX (self->power_button_combo), &iter);
|
||
- if (!ret)
|
||
- return;
|
||
-
|
||
- /* get entry */
|
||
- model = gtk_combo_box_get_model (GTK_COMBO_BOX (self->power_button_combo));
|
||
- gtk_tree_model_get (model, &iter,
|
||
- 1, &value,
|
||
- -1);
|
||
+ model = hdy_combo_row_get_model (self->power_button_row);
|
||
+ selected_index = hdy_combo_row_get_selected_index (self->power_button_row);
|
||
+ value_object = g_list_model_get_item (model, selected_index);
|
||
+ value = GPOINTER_TO_UINT (g_object_get_data (G_OBJECT (value_object), "value"));
|
||
|
||
- /* set both keys */
|
||
g_settings_set_enum (self->gsd_settings, "power-button-action", value);
|
||
}
|
||
|
||
@@ -1048,10 +1039,11 @@ set_sleep_type (const GValue *value,
|
||
}
|
||
|
||
static void
|
||
-populate_power_button_model (GtkTreeModel *model,
|
||
- gboolean can_suspend,
|
||
- gboolean can_hibernate)
|
||
+populate_power_button_row (HdyComboRow *combo_row,
|
||
+ gboolean can_suspend,
|
||
+ gboolean can_hibernate)
|
||
{
|
||
+ g_autoptr (GListStore) list_store = NULL;
|
||
struct {
|
||
char *name;
|
||
GsdPowerButtonActionType value;
|
||
@@ -1063,20 +1055,28 @@ populate_power_button_model (GtkTreeModel *model,
|
||
};
|
||
guint i;
|
||
|
||
+ list_store = g_list_store_new (HDY_TYPE_VALUE_OBJECT);
|
||
for (i = 0; i < G_N_ELEMENTS (actions); i++)
|
||
{
|
||
+ g_autoptr (HdyValueObject) value_object = NULL;
|
||
+
|
||
if (!can_suspend && actions[i].value == GSD_POWER_BUTTON_ACTION_SUSPEND)
|
||
continue;
|
||
|
||
if (!can_hibernate && actions[i].value == GSD_POWER_BUTTON_ACTION_HIBERNATE)
|
||
continue;
|
||
|
||
- gtk_list_store_insert_with_values (GTK_LIST_STORE (model),
|
||
- NULL, -1,
|
||
- 0, _(actions[i].name),
|
||
- 1, actions[i].value,
|
||
- -1);
|
||
+ value_object = hdy_value_object_new_string (actions[i].name);
|
||
+ g_object_set_data (G_OBJECT (value_object),
|
||
+ "value",
|
||
+ GUINT_TO_POINTER (actions[i].value));
|
||
+ g_list_store_append (list_store, value_object);
|
||
}
|
||
+
|
||
+ hdy_combo_row_bind_name_model (combo_row,
|
||
+ G_LIST_MODEL (list_store),
|
||
+ (HdyComboRowGetNameFunc) hdy_value_object_dup_string,
|
||
+ NULL, NULL);
|
||
}
|
||
|
||
#define NEVER 0
|
||
@@ -1635,10 +1635,17 @@ setup_general_section (CcPowerPanel *self)
|
||
{
|
||
gtk_widget_show (GTK_WIDGET (self->power_button_row));
|
||
|
||
- populate_power_button_model (GTK_TREE_MODEL (self->power_button_liststore), can_suspend, can_hibernate);
|
||
- g_signal_handlers_block_by_func (self->power_button_combo, power_button_combo_changed_cb, self);
|
||
- set_value_for_combo (self->power_button_combo, g_settings_get_enum (self->gsd_settings, "power-button-action"));
|
||
- g_signal_handlers_unblock_by_func (self->power_button_combo, power_button_combo_changed_cb, self);
|
||
+ g_signal_handlers_block_by_func (self->power_button_row,
|
||
+ power_button_row_changed_cb,
|
||
+ self);
|
||
+ populate_power_button_row (self->power_button_row,
|
||
+ can_suspend,
|
||
+ can_hibernate);
|
||
+ set_value_for_combo_row (self->power_button_row,
|
||
+ g_settings_get_enum (self->gsd_settings, "power-button-action"));
|
||
+ g_signal_handlers_unblock_by_func (self->power_button_row,
|
||
+ power_button_row_changed_cb,
|
||
+ self);
|
||
|
||
show_section = TRUE;
|
||
}
|
||
@@ -1725,8 +1732,6 @@ cc_power_panel_class_init (CcPowerPanelClass *klass)
|
||
gtk_widget_class_bind_template_child (widget_class, CcPowerPanel, level_sizegroup);
|
||
gtk_widget_class_bind_template_child (widget_class, CcPowerPanel, mobile_row);
|
||
gtk_widget_class_bind_template_child (widget_class, CcPowerPanel, mobile_switch);
|
||
- gtk_widget_class_bind_template_child (widget_class, CcPowerPanel, power_button_combo);
|
||
- gtk_widget_class_bind_template_child (widget_class, CcPowerPanel, power_button_liststore);
|
||
gtk_widget_class_bind_template_child (widget_class, CcPowerPanel, power_button_row);
|
||
gtk_widget_class_bind_template_child (widget_class, CcPowerPanel, power_profile_heading);
|
||
gtk_widget_class_bind_template_child (widget_class, CcPowerPanel, power_profile_listbox);
|
||
@@ -1752,7 +1757,7 @@ cc_power_panel_class_init (CcPowerPanelClass *klass)
|
||
gtk_widget_class_bind_template_callback (widget_class, blank_screen_row_changed_cb);
|
||
gtk_widget_class_bind_template_callback (widget_class, keynav_failed_cb);
|
||
gtk_widget_class_bind_template_callback (widget_class, mobile_switch_changed_cb);
|
||
- gtk_widget_class_bind_template_callback (widget_class, power_button_combo_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, wifi_switch_changed_cb);
|
||
diff --git a/panels/power/cc-power-panel.ui b/panels/power/cc-power-panel.ui
|
||
index a9bb39b77..18fc0a8ac 100644
|
||
--- a/panels/power/cc-power-panel.ui
|
||
+++ b/panels/power/cc-power-panel.ui
|
||
@@ -51,14 +51,6 @@
|
||
</row>
|
||
</data>
|
||
</object>
|
||
- <object class="GtkListStore" id="power_button_liststore">
|
||
- <columns>
|
||
- <!-- column-name name -->
|
||
- <column type="gchararray"/>
|
||
- <!-- column-name value -->
|
||
- <column type="gint"/>
|
||
- </columns>
|
||
- </object>
|
||
<template class="CcPowerPanel" parent="CcPanel">
|
||
<property name="visible">True</property>
|
||
<property name="can_focus">False</property>
|
||
@@ -660,41 +652,11 @@
|
||
<relation target="general_heading" type="labelled-by"/>
|
||
</accessibility>
|
||
<child>
|
||
- <object class="GtkListBoxRow" id="power_button_row">
|
||
+ <object class="HdyComboRow" id="power_button_row">
|
||
<property name="visible">False</property>
|
||
- <property name="selectable">False</property>
|
||
- <property name="activatable">False</property>
|
||
- <child>
|
||
- <object class="GtkBox">
|
||
- <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">Po_wer Button Behavior</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">power_button_combo</property>
|
||
- </object>
|
||
- </child>
|
||
- <child>
|
||
- <object class="GtkComboBoxText" id="power_button_combo">
|
||
- <property name="visible">True</property>
|
||
- <property name="valign">center</property>
|
||
- <property name="entry-text-column">0</property>
|
||
- <property name="model">power_button_liststore</property>
|
||
- <signal name="changed" handler="power_button_combo_changed_cb" object="CcPowerPanel" swapped="yes"/>
|
||
- </object>
|
||
- </child>
|
||
- </object>
|
||
- </child>
|
||
+ <property name="title" translatable="yes">Po_wer Button Behavior</property>
|
||
+ <property name="use_underline">True</property>
|
||
+ <signal name="notify::selected-index" handler="power_button_row_changed_cb" object="CcPowerPanel" swapped="yes"/>
|
||
</object>
|
||
</child>
|
||
<child>
|
||
--
|
||
2.32.0
|
||
|
||
|
||
From db131378d3a980dc243d704a91cf995d40df356b Mon Sep 17 00:00:00 2001
|
||
From: Adrien Plazas <kekun.plazas@laposte.net>
|
||
Date: Thu, 7 Jan 2021 10:59:00 +0100
|
||
Subject: [PATCH 06/33] 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>
|
||
--
|
||
2.32.0
|
||
|
||
|
||
From 93fa8d4dfaa206a763f678df2b2eb31e1599c7c8 Mon Sep 17 00:00:00 2001
|
||
From: Adrien Plazas <kekun.plazas@laposte.net>
|
||
Date: Thu, 7 Jan 2021 13:49:36 +0100
|
||
Subject: [PATCH 07/33] power: Use HdyPreferencesGroup
|
||
|
||
---
|
||
panels/power/cc-power-panel.c | 60 ++---------
|
||
panels/power/cc-power-panel.ui | 175 +++++----------------------------
|
||
2 files changed, 30 insertions(+), 205 deletions(-)
|
||
|
||
diff --git a/panels/power/cc-power-panel.c b/panels/power/cc-power-panel.c
|
||
index 22d91c564..96558c778 100644
|
||
--- a/panels/power/cc-power-panel.c
|
||
+++ b/panels/power/cc-power-panel.c
|
||
@@ -66,36 +66,29 @@ struct _CcPowerPanel
|
||
GtkDialog *automatic_suspend_dialog;
|
||
GtkLabel *automatic_suspend_label;
|
||
GtkListBoxRow *automatic_suspend_row;
|
||
- GtkLabel *battery_heading;
|
||
GtkListBox *battery_listbox;
|
||
HdyActionRow *battery_percentage_row;
|
||
GtkSwitch *battery_percentage_switch;
|
||
GtkSizeGroup *battery_row_sizegroup;
|
||
- GtkBox *battery_section;
|
||
+ HdyPreferencesGroup *battery_section;
|
||
HdyComboRow *blank_screen_row;
|
||
GtkListBoxRow *brightness_row;
|
||
CcBrightnessScale *brightness_scale;
|
||
GtkListBoxRow *bt_row;
|
||
GtkSwitch *bt_switch;
|
||
- GtkLabel *device_heading;
|
||
GtkListBox *device_listbox;
|
||
- GtkBox *device_section;
|
||
+ HdyPreferencesGroup *device_section;
|
||
GtkListBoxRow *dim_screen_row;
|
||
GtkSwitch *dim_screen_switch;
|
||
- GtkLabel *general_heading;
|
||
- GtkListBox *general_listbox;
|
||
- GtkBox *general_section;
|
||
+ HdyPreferencesGroup *general_section;
|
||
GtkListBoxRow *kbd_brightness_row;
|
||
CcBrightnessScale *kbd_brightness_scale;
|
||
GtkSizeGroup *level_sizegroup;
|
||
GtkListBoxRow *mobile_row;
|
||
GtkSwitch *mobile_switch;
|
||
HdyComboRow *power_button_row;
|
||
- GtkLabel *power_profile_heading;
|
||
GtkListBox *power_profile_listbox;
|
||
- GtkBox *power_profile_section;
|
||
- GtkLabel *power_saving_heading;
|
||
- GtkListBox *power_saving_listbox;
|
||
+ HdyPreferencesGroup *power_profile_section;
|
||
GtkSizeGroup *row_sizegroup;
|
||
GtkComboBox *suspend_on_battery_delay_combo;
|
||
GtkLabel *suspend_on_battery_delay_label;
|
||
@@ -259,7 +252,6 @@ up_client_changed (CcPowerPanel *self)
|
||
guint n_batteries;
|
||
gboolean on_ups;
|
||
g_autoptr(UpDevice) composite = NULL;
|
||
- g_autofree gchar *s = NULL;
|
||
|
||
battery_children = gtk_container_get_children (GTK_CONTAINER (self->battery_listbox));
|
||
for (l = battery_children; l != NULL; l = l->next)
|
||
@@ -390,10 +382,9 @@ up_client_changed (CcPowerPanel *self)
|
||
}
|
||
|
||
if (n_batteries > 1)
|
||
- s = g_strdup_printf ("<b>%s</b>", _("Batteries"));
|
||
+ hdy_preferences_group_set_title (self->battery_section, _("Batteries"));
|
||
else
|
||
- s = g_strdup_printf ("<b>%s</b>", _("Battery"));
|
||
- gtk_label_set_label (GTK_LABEL (self->battery_heading), s);
|
||
+ hdy_preferences_group_set_title (self->battery_section, _("Battery"));
|
||
|
||
if (!on_ups && n_batteries > 1)
|
||
add_battery (self, composite, TRUE);
|
||
@@ -1697,7 +1688,6 @@ cc_power_panel_class_init (CcPowerPanelClass *klass)
|
||
gtk_widget_class_bind_template_child (widget_class, CcPowerPanel, automatic_suspend_dialog);
|
||
gtk_widget_class_bind_template_child (widget_class, CcPowerPanel, automatic_suspend_label);
|
||
gtk_widget_class_bind_template_child (widget_class, CcPowerPanel, automatic_suspend_row);
|
||
- gtk_widget_class_bind_template_child (widget_class, CcPowerPanel, battery_heading);
|
||
gtk_widget_class_bind_template_child (widget_class, CcPowerPanel, battery_listbox);
|
||
gtk_widget_class_bind_template_child (widget_class, CcPowerPanel, battery_percentage_row);
|
||
gtk_widget_class_bind_template_child (widget_class, CcPowerPanel, battery_percentage_switch);
|
||
@@ -1708,13 +1698,10 @@ cc_power_panel_class_init (CcPowerPanelClass *klass)
|
||
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, device_heading);
|
||
gtk_widget_class_bind_template_child (widget_class, CcPowerPanel, device_listbox);
|
||
gtk_widget_class_bind_template_child (widget_class, CcPowerPanel, device_section);
|
||
gtk_widget_class_bind_template_child (widget_class, CcPowerPanel, dim_screen_row);
|
||
gtk_widget_class_bind_template_child (widget_class, CcPowerPanel, dim_screen_switch);
|
||
- gtk_widget_class_bind_template_child (widget_class, CcPowerPanel, general_heading);
|
||
- gtk_widget_class_bind_template_child (widget_class, CcPowerPanel, general_listbox);
|
||
gtk_widget_class_bind_template_child (widget_class, CcPowerPanel, general_section);
|
||
gtk_widget_class_bind_template_child (widget_class, CcPowerPanel, kbd_brightness_row);
|
||
gtk_widget_class_bind_template_child (widget_class, CcPowerPanel, kbd_brightness_scale);
|
||
@@ -1722,11 +1709,8 @@ cc_power_panel_class_init (CcPowerPanelClass *klass)
|
||
gtk_widget_class_bind_template_child (widget_class, CcPowerPanel, mobile_row);
|
||
gtk_widget_class_bind_template_child (widget_class, CcPowerPanel, mobile_switch);
|
||
gtk_widget_class_bind_template_child (widget_class, CcPowerPanel, power_button_row);
|
||
- gtk_widget_class_bind_template_child (widget_class, CcPowerPanel, power_profile_heading);
|
||
gtk_widget_class_bind_template_child (widget_class, CcPowerPanel, power_profile_listbox);
|
||
gtk_widget_class_bind_template_child (widget_class, CcPowerPanel, power_profile_section);
|
||
- gtk_widget_class_bind_template_child (widget_class, CcPowerPanel, power_saving_heading);
|
||
- gtk_widget_class_bind_template_child (widget_class, CcPowerPanel, power_saving_listbox);
|
||
gtk_widget_class_bind_template_child (widget_class, CcPowerPanel, row_sizegroup);
|
||
gtk_widget_class_bind_template_child (widget_class, CcPowerPanel, suspend_on_battery_delay_combo);
|
||
gtk_widget_class_bind_template_child (widget_class, CcPowerPanel, suspend_on_battery_delay_label);
|
||
@@ -1755,11 +1739,6 @@ cc_power_panel_class_init (CcPowerPanelClass *klass)
|
||
static void
|
||
cc_power_panel_init (CcPowerPanel *self)
|
||
{
|
||
- g_autofree gchar *battery_label = NULL;
|
||
- g_autofree gchar *device_label = NULL;
|
||
- g_autofree gchar *power_profile_label = NULL;
|
||
- g_autofree gchar *power_saving_label = NULL;
|
||
- g_autofree gchar *general_label = NULL;
|
||
guint i;
|
||
|
||
g_resources_register (cc_power_get_resource ());
|
||
@@ -1776,46 +1755,19 @@ cc_power_panel_init (CcPowerPanel *self)
|
||
self->session_settings = g_settings_new ("org.gnome.desktop.session");
|
||
self->interface_settings = g_settings_new ("org.gnome.desktop.interface");
|
||
|
||
- battery_label = g_markup_printf_escaped ("<b>%s</b>", _("Battery"));
|
||
- gtk_label_set_markup (self->battery_heading, battery_label);
|
||
-
|
||
- gtk_list_box_set_header_func (self->battery_listbox,
|
||
- cc_list_box_update_header_func,
|
||
- NULL, NULL);
|
||
gtk_list_box_set_sort_func (self->battery_listbox,
|
||
(GtkListBoxSortFunc)battery_sort_func, NULL, NULL);
|
||
|
||
- device_label = g_markup_printf_escaped ("<b>%s</b>", _("Devices"));
|
||
- gtk_label_set_markup (self->device_heading, device_label);
|
||
-
|
||
- gtk_list_box_set_header_func (self->device_listbox,
|
||
- cc_list_box_update_header_func,
|
||
- NULL, NULL);
|
||
gtk_list_box_set_sort_func (self->device_listbox,
|
||
(GtkListBoxSortFunc)battery_sort_func, NULL, NULL);
|
||
|
||
- power_profile_label = g_strdup_printf ("<b>%s</b>", _("Power Mode"));
|
||
- gtk_label_set_markup (self->power_profile_heading, power_profile_label);
|
||
gtk_list_box_set_sort_func (self->power_profile_listbox,
|
||
perf_profile_list_box_sort,
|
||
NULL, NULL);
|
||
- gtk_list_box_set_header_func (self->power_profile_listbox,
|
||
- cc_list_box_update_header_func,
|
||
- NULL, NULL);
|
||
setup_power_profiles (self);
|
||
|
||
- power_saving_label = g_strdup_printf ("<b>%s</b>", _("Power Saving"));
|
||
- gtk_label_set_markup (self->power_saving_heading, power_saving_label);
|
||
- gtk_list_box_set_header_func (self->power_saving_listbox,
|
||
- cc_list_box_update_header_func,
|
||
- NULL, NULL);
|
||
setup_power_saving (self);
|
||
|
||
- general_label = g_markup_printf_escaped ("<b>%s</b>", _("Suspend & Power Button"));
|
||
- gtk_label_set_markup (self->general_heading, general_label);
|
||
- gtk_list_box_set_header_func (self->general_listbox,
|
||
- cc_list_box_update_header_func,
|
||
- NULL, NULL);
|
||
setup_general_section (self);
|
||
|
||
/* populate batteries */
|
||
diff --git a/panels/power/cc-power-panel.ui b/panels/power/cc-power-panel.ui
|
||
index 12df3aa4a..26d6ffddc 100644
|
||
--- a/panels/power/cc-power-panel.ui
|
||
+++ b/panels/power/cc-power-panel.ui
|
||
@@ -55,124 +55,60 @@
|
||
<property name="visible">True</property>
|
||
<property name="can_focus">False</property>
|
||
<child>
|
||
- <object class="GtkScrolledWindow">
|
||
+ <object class="HdyPreferencesPage">
|
||
<property name="visible">True</property>
|
||
- <property name="can_focus">False</property>
|
||
- <property name="hscrollbar_policy">never</property>
|
||
- <child>
|
||
- <object class="HdyClamp">
|
||
- <property name="visible">True</property>
|
||
- <property name="margin_top">32</property>
|
||
- <property name="margin_bottom">32</property>
|
||
- <property name="margin_start">12</property>
|
||
- <property name="margin_end">12</property>
|
||
- <child>
|
||
- <object class="GtkBox" id="power_vbox">
|
||
- <property name="visible">True</property>
|
||
- <property name="can_focus">False</property>
|
||
- <property name="orientation">vertical</property>
|
||
- <property name="spacing">3</property>
|
||
- <property name="hexpand">True</property>
|
||
<child>
|
||
- <object class="GtkBox" id="battery_section">
|
||
+ <object class="HdyPreferencesGroup" id="battery_section">
|
||
<property name="visible">True</property>
|
||
- <property name="orientation">vertical</property>
|
||
- <property name="margin_bottom">32</property>
|
||
- <child>
|
||
- <object class="GtkLabel" id="battery_heading">
|
||
- <property name="visible">True</property>
|
||
- <property name="use-markup">True</property>
|
||
- <property name="halign">start</property>
|
||
- <property name="margin_bottom">12</property>
|
||
+ <property name="title" translatable="yes">Battery</property>
|
||
<accessibility>
|
||
<relation target="battery_listbox" type="label-for"/>
|
||
</accessibility>
|
||
- </object>
|
||
- </child>
|
||
- <child>
|
||
- <object class="GtkFrame">
|
||
- <property name="visible">True</property>
|
||
- <property name="shadow-type">in</property>
|
||
<child>
|
||
<object class="GtkListBox" id="battery_listbox">
|
||
<property name="visible">True</property>
|
||
<property name="selection-mode">none</property>
|
||
<signal name="keynav-failed" handler="keynav_failed_cb" object="CcPowerPanel" swapped="yes"/>
|
||
<accessibility>
|
||
- <relation target="battery_heading" type="labelled-by"/>
|
||
+ <relation target="battery_section" type="labelled-by"/>
|
||
</accessibility>
|
||
+ <style>
|
||
+ <class name="content"/>
|
||
+ </style>
|
||
</object>
|
||
</child>
|
||
- </object>
|
||
- </child>
|
||
</object>
|
||
</child>
|
||
<child>
|
||
- <object class="GtkBox" id="device_section">
|
||
+ <object class="HdyPreferencesGroup" id="device_section">
|
||
<property name="visible">True</property>
|
||
- <property name="orientation">vertical</property>
|
||
- <property name="margin-top">6</property>
|
||
- <property name="margin-bottom">32</property>
|
||
- <child>
|
||
- <object class="GtkLabel" id="device_heading">
|
||
- <property name="visible">True</property>
|
||
- <property name="ellipsize">end</property>
|
||
- <property name="xalign">0</property>
|
||
- <property name="use-markup">True</property>
|
||
- <property name="halign">start</property>
|
||
- <property name="margin_bottom">12</property>
|
||
+ <property name="title" translatable="yes">Devices</property>
|
||
<accessibility>
|
||
<relation target="device_listbox" type="label-for"/>
|
||
</accessibility>
|
||
- </object>
|
||
- </child>
|
||
- <child>
|
||
- <object class="GtkFrame">
|
||
- <property name="visible">True</property>
|
||
- <property name="shadow-type">in</property>
|
||
<child>
|
||
<object class="GtkListBox" id="device_listbox">
|
||
<property name="visible">True</property>
|
||
<property name="selection-mode">none</property>
|
||
<signal name="keynav-failed" handler="keynav_failed_cb" object="CcPowerPanel" swapped="yes"/>
|
||
<accessibility>
|
||
- <relation target="device_heading" type="labelled-by"/>
|
||
+ <relation target="device_section" type="labelled-by"/>
|
||
</accessibility>
|
||
+ <style>
|
||
+ <class name="content"/>
|
||
+ </style>
|
||
</object>
|
||
</child>
|
||
- </object>
|
||
- </child>
|
||
</object>
|
||
</child>
|
||
<child>
|
||
- <object class="GtkBox" id="power_profile_section">
|
||
+ <object class="HdyPreferencesGroup" id="power_profile_section">
|
||
<property name="visible">False</property>
|
||
- <property name="orientation">vertical</property>
|
||
- <property name="margin_bottom">32</property>
|
||
- <child>
|
||
- <object class="GtkLabel" id="power_profile_heading">
|
||
- <property name="visible">True</property>
|
||
- <property name="ellipsize">end</property>
|
||
- <property name="xalign">0</property>
|
||
- <property name="use-markup">True</property>
|
||
- <property name="halign">start</property>
|
||
+ <property name="title" translatable="yes">Power Mode</property>
|
||
+ <property name="description" translatable="yes">Affects system performance and power usage.</property>
|
||
<accessibility>
|
||
<relation target="power_profile_listbox" type="label-for"/>
|
||
</accessibility>
|
||
- </object>
|
||
- </child>
|
||
- <child>
|
||
- <object class="GtkLabel">
|
||
- <property name="visible">True</property>
|
||
- <property name="xalign">0</property>
|
||
- <property name="margin-bottom">6</property>
|
||
- <property name="label" translatable="yes">Affects system performance and power usage.</property>
|
||
- </object>
|
||
- </child>
|
||
- <child>
|
||
- <object class="GtkFrame">
|
||
- <property name="visible">True</property>
|
||
- <property name="shadow-type">in</property>
|
||
<child>
|
||
<object class="GtkListBox" id="power_profile_listbox">
|
||
<property name="visible">True</property>
|
||
@@ -180,45 +116,19 @@
|
||
<signal name="keynav-failed" handler="keynav_failed_cb" object="CcPowerPanel" swapped="yes"/>
|
||
<signal name="row-activated" handler="power_profiles_row_activated_cb" object="CcPowerPanel" swapped="yes"/>
|
||
<accessibility>
|
||
- <relation target="device_heading" type="labelled-by"/>
|
||
+ <relation target="power_profile_section" type="labelled-by"/>
|
||
</accessibility>
|
||
+ <style>
|
||
+ <class name="content"/>
|
||
+ </style>
|
||
</object>
|
||
</child>
|
||
- </object>
|
||
- </child>
|
||
</object>
|
||
</child>
|
||
<child>
|
||
- <object class="GtkBox">
|
||
+ <object class="HdyPreferencesGroup" id="power_saving_section">
|
||
<property name="visible">True</property>
|
||
- <property name="orientation">vertical</property>
|
||
- <property name="margin_bottom">32</property>
|
||
- <child>
|
||
- <object class="GtkLabel" id="power_saving_heading">
|
||
- <property name="visible">True</property>
|
||
- <property name="ellipsize">end</property>
|
||
- <property name="xalign">0</property>
|
||
- <property name="use-markup">True</property>
|
||
- <property name="halign">start</property>
|
||
- <property name="margin_bottom">12</property>
|
||
- <accessibility>
|
||
- <relation target="power_saving_listbox" type="label-for"/>
|
||
- </accessibility>
|
||
- </object>
|
||
- </child>
|
||
- <child>
|
||
- <object class="GtkFrame">
|
||
- <property name="visible">True</property>
|
||
- <property name="shadow-type">in</property>
|
||
- <child>
|
||
- <object class="GtkListBox" id="power_saving_listbox">
|
||
- <property name="visible">True</property>
|
||
- <property name="selection-mode">none</property>
|
||
- <signal name="keynav-failed" handler="keynav_failed_cb" object="CcPowerPanel" swapped="yes"/>
|
||
- <signal name="row-activated" handler="power_saving_listbox_row_activated_cb" object="CcPowerPanel" swapped="yes"/>
|
||
- <accessibility>
|
||
- <relation target="power_saving_heading" type="labelled-by"/>
|
||
- </accessibility>
|
||
+ <property name="title" translatable="yes">Power Saving</property>
|
||
<child>
|
||
<object class="HdyActionRow" id="brightness_row">
|
||
<property name="visible">True</property>
|
||
@@ -349,41 +259,12 @@
|
||
</child>
|
||
</object>
|
||
</child>
|
||
- </object>
|
||
- </child>
|
||
- </object>
|
||
- </child>
|
||
</object>
|
||
</child>
|
||
<child>
|
||
- <object class="GtkBox" id="general_section">
|
||
+ <object class="HdyPreferencesGroup" id="general_section">
|
||
<property name="visible">True</property>
|
||
- <property name="orientation">vertical</property>
|
||
- <property name="margin-top">6</property>
|
||
- <property name="margin-bottom">32</property>
|
||
- <child>
|
||
- <object class="GtkLabel" id="general_heading">
|
||
- <property name="visible">True</property>
|
||
- <property name="use-markup">True</property>
|
||
- <property name="halign">start</property>
|
||
- <property name="margin_bottom">12</property>
|
||
- <accessibility>
|
||
- <relation target="general_listbox" type="label-for"/>
|
||
- </accessibility>
|
||
- </object>
|
||
- </child>
|
||
- <child>
|
||
- <object class="GtkFrame">
|
||
- <property name="visible">True</property>
|
||
- <property name="shadow-type">in</property>
|
||
- <child>
|
||
- <object class="GtkListBox" id="general_listbox">
|
||
- <property name="visible">True</property>
|
||
- <property name="selection-mode">none</property>
|
||
- <signal name="keynav-failed" handler="keynav_failed_cb" object="CcPowerPanel" swapped="yes"/>
|
||
- <accessibility>
|
||
- <relation target="general_heading" type="labelled-by"/>
|
||
- </accessibility>
|
||
+ <property name="title" translatable="yes">Suspend & Power Button</property>
|
||
<child>
|
||
<object class="HdyComboRow" id="power_button_row">
|
||
<property name="visible">False</property>
|
||
@@ -406,16 +287,8 @@
|
||
</child>
|
||
</object>
|
||
</child>
|
||
- </object>
|
||
- </child>
|
||
- </object>
|
||
- </child>
|
||
</object>
|
||
</child>
|
||
- </object>
|
||
- </child>
|
||
- </object>
|
||
- </child>
|
||
</object>
|
||
</child>
|
||
</template>
|
||
--
|
||
2.32.0
|
||
|
||
|
||
From 58480754efd5fdc66db0940ce5c19abfbd2158b6 Mon Sep 17 00:00:00 2001
|
||
From: Adrien Plazas <kekun.plazas@laposte.net>
|
||
Date: Thu, 7 Jan 2021 14:37:56 +0100
|
||
Subject: [PATCH 08/33] power: Fix the indentation
|
||
|
||
The indentation was purposefully left incorrect in the previous commits
|
||
to ease the review of the actual changes, this fixes it.
|
||
---
|
||
panels/power/cc-power-panel.ui | 426 ++++++++++++++++-----------------
|
||
1 file changed, 213 insertions(+), 213 deletions(-)
|
||
|
||
diff --git a/panels/power/cc-power-panel.ui b/panels/power/cc-power-panel.ui
|
||
index 26d6ffddc..8e999c6d5 100644
|
||
--- a/panels/power/cc-power-panel.ui
|
||
+++ b/panels/power/cc-power-panel.ui
|
||
@@ -57,238 +57,238 @@
|
||
<child>
|
||
<object class="HdyPreferencesPage">
|
||
<property name="visible">True</property>
|
||
+ <child>
|
||
+ <object class="HdyPreferencesGroup" id="battery_section">
|
||
+ <property name="visible">True</property>
|
||
+ <property name="title" translatable="yes">Battery</property>
|
||
+ <accessibility>
|
||
+ <relation target="battery_listbox" type="label-for"/>
|
||
+ </accessibility>
|
||
+ <child>
|
||
+ <object class="GtkListBox" id="battery_listbox">
|
||
+ <property name="visible">True</property>
|
||
+ <property name="selection-mode">none</property>
|
||
+ <signal name="keynav-failed" handler="keynav_failed_cb" object="CcPowerPanel" swapped="yes"/>
|
||
+ <accessibility>
|
||
+ <relation target="battery_section" type="labelled-by"/>
|
||
+ </accessibility>
|
||
+ <style>
|
||
+ <class name="content"/>
|
||
+ </style>
|
||
+ </object>
|
||
+ </child>
|
||
+ </object>
|
||
+ </child>
|
||
+ <child>
|
||
+ <object class="HdyPreferencesGroup" id="device_section">
|
||
+ <property name="visible">True</property>
|
||
+ <property name="title" translatable="yes">Devices</property>
|
||
+ <accessibility>
|
||
+ <relation target="device_listbox" type="label-for"/>
|
||
+ </accessibility>
|
||
+ <child>
|
||
+ <object class="GtkListBox" id="device_listbox">
|
||
+ <property name="visible">True</property>
|
||
+ <property name="selection-mode">none</property>
|
||
+ <signal name="keynav-failed" handler="keynav_failed_cb" object="CcPowerPanel" swapped="yes"/>
|
||
+ <accessibility>
|
||
+ <relation target="device_section" type="labelled-by"/>
|
||
+ </accessibility>
|
||
+ <style>
|
||
+ <class name="content"/>
|
||
+ </style>
|
||
+ </object>
|
||
+ </child>
|
||
+ </object>
|
||
+ </child>
|
||
+ <child>
|
||
+ <object class="HdyPreferencesGroup" id="power_profile_section">
|
||
+ <property name="visible">False</property>
|
||
+ <property name="title" translatable="yes">Power Mode</property>
|
||
+ <property name="description" translatable="yes">Affects system performance and power usage.</property>
|
||
+ <accessibility>
|
||
+ <relation target="power_profile_listbox" type="label-for"/>
|
||
+ </accessibility>
|
||
+ <child>
|
||
+ <object class="GtkListBox" id="power_profile_listbox">
|
||
+ <property name="visible">True</property>
|
||
+ <property name="selection-mode">none</property>
|
||
+ <signal name="keynav-failed" handler="keynav_failed_cb" object="CcPowerPanel" swapped="yes"/>
|
||
+ <signal name="row-activated" handler="power_profiles_row_activated_cb" object="CcPowerPanel" swapped="yes"/>
|
||
+ <accessibility>
|
||
+ <relation target="power_profile_section" type="labelled-by"/>
|
||
+ </accessibility>
|
||
+ <style>
|
||
+ <class name="content"/>
|
||
+ </style>
|
||
+ </object>
|
||
+ </child>
|
||
+ </object>
|
||
+ </child>
|
||
+ <child>
|
||
+ <object class="HdyPreferencesGroup" id="power_saving_section">
|
||
+ <property name="visible">True</property>
|
||
+ <property name="title" translatable="yes">Power Saving</property>
|
||
+ <child>
|
||
+ <object class="HdyActionRow" id="brightness_row">
|
||
+ <property name="visible">True</property>
|
||
+ <property name="title" translatable="yes">_Screen Brightness</property>
|
||
+ <property name="use_underline">True</property>
|
||
<child>
|
||
- <object class="HdyPreferencesGroup" id="battery_section">
|
||
+ <object class="CcBrightnessScale" id="brightness_scale">
|
||
<property name="visible">True</property>
|
||
- <property name="title" translatable="yes">Battery</property>
|
||
- <accessibility>
|
||
- <relation target="battery_listbox" type="label-for"/>
|
||
- </accessibility>
|
||
- <child>
|
||
- <object class="GtkListBox" id="battery_listbox">
|
||
- <property name="visible">True</property>
|
||
- <property name="selection-mode">none</property>
|
||
- <signal name="keynav-failed" handler="keynav_failed_cb" object="CcPowerPanel" swapped="yes"/>
|
||
- <accessibility>
|
||
- <relation target="battery_section" type="labelled-by"/>
|
||
- </accessibility>
|
||
- <style>
|
||
- <class name="content"/>
|
||
- </style>
|
||
- </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="HdyActionRow" id="als_row">
|
||
+ <property name="visible">True</property>
|
||
+ <property name="title" translatable="yes">Automatic Brightness</property>
|
||
<child>
|
||
- <object class="HdyPreferencesGroup" id="device_section">
|
||
+ <object class="GtkSwitch" id="als_switch">
|
||
<property name="visible">True</property>
|
||
- <property name="title" translatable="yes">Devices</property>
|
||
- <accessibility>
|
||
- <relation target="device_listbox" type="label-for"/>
|
||
- </accessibility>
|
||
- <child>
|
||
- <object class="GtkListBox" id="device_listbox">
|
||
- <property name="visible">True</property>
|
||
- <property name="selection-mode">none</property>
|
||
- <signal name="keynav-failed" handler="keynav_failed_cb" object="CcPowerPanel" swapped="yes"/>
|
||
- <accessibility>
|
||
- <relation target="device_section" type="labelled-by"/>
|
||
- </accessibility>
|
||
- <style>
|
||
- <class name="content"/>
|
||
- </style>
|
||
- </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="HdyActionRow" id="kbd_brightness_row">
|
||
+ <property name="visible">True</property>
|
||
+ <property name="title" translatable="yes">_Keyboard Brightness</property>
|
||
+ <property name="use_underline">True</property>
|
||
<child>
|
||
- <object class="HdyPreferencesGroup" id="power_profile_section">
|
||
- <property name="visible">False</property>
|
||
- <property name="title" translatable="yes">Power Mode</property>
|
||
- <property name="description" translatable="yes">Affects system performance and power usage.</property>
|
||
- <accessibility>
|
||
- <relation target="power_profile_listbox" type="label-for"/>
|
||
- </accessibility>
|
||
- <child>
|
||
- <object class="GtkListBox" id="power_profile_listbox">
|
||
- <property name="visible">True</property>
|
||
- <property name="selection-mode">none</property>
|
||
- <signal name="keynav-failed" handler="keynav_failed_cb" object="CcPowerPanel" swapped="yes"/>
|
||
- <signal name="row-activated" handler="power_profiles_row_activated_cb" object="CcPowerPanel" swapped="yes"/>
|
||
- <accessibility>
|
||
- <relation target="power_profile_section" type="labelled-by"/>
|
||
- </accessibility>
|
||
- <style>
|
||
- <class name="content"/>
|
||
- </style>
|
||
- </object>
|
||
- </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>
|
||
+ <child>
|
||
+ <object class="HdyActionRow" id="dim_screen_row">
|
||
+ <property name="visible">True</property>
|
||
+ <property name="title" translatable="yes">Dim Screen When Inactive</property>
|
||
+ <property name="activatable_widget">dim_screen_switch</property>
|
||
<child>
|
||
- <object class="HdyPreferencesGroup" id="power_saving_section">
|
||
+ <object class="GtkSwitch" id="dim_screen_switch">
|
||
<property name="visible">True</property>
|
||
- <property name="title" translatable="yes">Power Saving</property>
|
||
- <child>
|
||
- <object class="HdyActionRow" id="brightness_row">
|
||
- <property name="visible">True</property>
|
||
- <property name="title" translatable="yes">_Screen Brightness</property>
|
||
- <property name="use_underline">True</property>
|
||
- <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>
|
||
- <child>
|
||
- <object class="HdyActionRow" id="als_row">
|
||
- <property name="visible">True</property>
|
||
- <property name="title" translatable="yes">Automatic Brightness</property>
|
||
- <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>
|
||
- </object>
|
||
- </child>
|
||
- <child>
|
||
- <object class="HdyActionRow" id="kbd_brightness_row">
|
||
- <property name="visible">True</property>
|
||
- <property name="title" translatable="yes">_Keyboard Brightness</property>
|
||
- <property name="use_underline">True</property>
|
||
- <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>
|
||
- <child>
|
||
- <object class="HdyActionRow" id="dim_screen_row">
|
||
- <property name="visible">True</property>
|
||
- <property name="title" translatable="yes">Dim Screen When Inactive</property>
|
||
- <property name="activatable_widget">dim_screen_switch</property>
|
||
- <child>
|
||
- <object class="GtkSwitch" id="dim_screen_switch">
|
||
- <property name="visible">True</property>
|
||
- <property name="valign">center</property>
|
||
- </object>
|
||
- </child>
|
||
- </object>
|
||
- </child>
|
||
- <child>
|
||
- <object class="HdyComboRow" id="blank_screen_row">
|
||
- <property name="visible">True</property>
|
||
- <property name="title" translatable="yes">_Blank Screen</property>
|
||
- <property name="use_underline">True</property>
|
||
- <signal name="notify::selected-index" handler="blank_screen_row_changed_cb" object="CcPowerPanel" swapped="yes"/>
|
||
- </object>
|
||
- </child>
|
||
- <child>
|
||
- <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="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>
|
||
- </object>
|
||
- </child>
|
||
- <child>
|
||
- <object class="HdyActionRow" id="wifi_row">
|
||
- <property name="visible">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="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>
|
||
- </object>
|
||
- </child>
|
||
- <child>
|
||
- <object class="HdyActionRow" id="mobile_row">
|
||
- <property name="visible">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="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>
|
||
- </object>
|
||
- </child>
|
||
- <child>
|
||
- <object class="HdyActionRow" id="bt_row">
|
||
- <property name="visible">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="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>
|
||
- </object>
|
||
- </child>
|
||
+ <property name="valign">center</property>
|
||
</object>
|
||
</child>
|
||
+ </object>
|
||
+ </child>
|
||
+ <child>
|
||
+ <object class="HdyComboRow" id="blank_screen_row">
|
||
+ <property name="visible">True</property>
|
||
+ <property name="title" translatable="yes">_Blank Screen</property>
|
||
+ <property name="use_underline">True</property>
|
||
+ <signal name="notify::selected-index" handler="blank_screen_row_changed_cb" object="CcPowerPanel" swapped="yes"/>
|
||
+ </object>
|
||
+ </child>
|
||
+ <child>
|
||
+ <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="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>
|
||
+ </object>
|
||
+ </child>
|
||
+ <child>
|
||
+ <object class="HdyActionRow" id="wifi_row">
|
||
+ <property name="visible">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="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>
|
||
+ </object>
|
||
+ </child>
|
||
+ <child>
|
||
+ <object class="HdyActionRow" id="mobile_row">
|
||
+ <property name="visible">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="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>
|
||
+ </object>
|
||
+ </child>
|
||
+ <child>
|
||
+ <object class="HdyActionRow" id="bt_row">
|
||
+ <property name="visible">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="HdyPreferencesGroup" id="general_section">
|
||
+ <object class="GtkSwitch" id="bt_switch">
|
||
<property name="visible">True</property>
|
||
- <property name="title" translatable="yes">Suspend & Power Button</property>
|
||
- <child>
|
||
- <object class="HdyComboRow" id="power_button_row">
|
||
- <property name="visible">False</property>
|
||
- <property name="title" translatable="yes">Po_wer Button Behavior</property>
|
||
- <property name="use_underline">True</property>
|
||
- <signal name="notify::selected-index" handler="power_button_row_changed_cb" object="CcPowerPanel" swapped="yes"/>
|
||
- </object>
|
||
- </child>
|
||
- <child>
|
||
- <object class="HdyActionRow" id="battery_percentage_row">
|
||
- <property name="visible">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="GtkSwitch" id="battery_percentage_switch">
|
||
- <property name="visible">True</property>
|
||
- <property name="valign">center</property>
|
||
- </object>
|
||
- </child>
|
||
- </object>
|
||
- </child>
|
||
+ <property name="valign">center</property>
|
||
+ <signal name="notify::active" handler="bt_switch_changed_cb" object="CcPowerPanel" swapped="yes"/>
|
||
</object>
|
||
</child>
|
||
+ </object>
|
||
+ </child>
|
||
+ </object>
|
||
+ </child>
|
||
+ <child>
|
||
+ <object class="HdyPreferencesGroup" id="general_section">
|
||
+ <property name="visible">True</property>
|
||
+ <property name="title" translatable="yes">Suspend & Power Button</property>
|
||
+ <child>
|
||
+ <object class="HdyComboRow" id="power_button_row">
|
||
+ <property name="visible">False</property>
|
||
+ <property name="title" translatable="yes">Po_wer Button Behavior</property>
|
||
+ <property name="use_underline">True</property>
|
||
+ <signal name="notify::selected-index" handler="power_button_row_changed_cb" object="CcPowerPanel" swapped="yes"/>
|
||
+ </object>
|
||
+ </child>
|
||
+ <child>
|
||
+ <object class="HdyActionRow" id="battery_percentage_row">
|
||
+ <property name="visible">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="GtkSwitch" id="battery_percentage_switch">
|
||
+ <property name="visible">True</property>
|
||
+ <property name="valign">center</property>
|
||
+ </object>
|
||
+ </child>
|
||
+ </object>
|
||
+ </child>
|
||
+ </object>
|
||
+ </child>
|
||
</object>
|
||
</child>
|
||
</template>
|
||
--
|
||
2.32.0
|
||
|
||
|
||
From 036545ebc5b3deba1d4bb4ac82dc102413804e83 Mon Sep 17 00:00:00 2001
|
||
From: Adrien Plazas <kekun.plazas@laposte.net>
|
||
Date: Fri, 8 Jan 2021 16:29:18 +0100
|
||
Subject: [PATCH 09/33] power: Hide the icon of the battery row when unused
|
||
|
||
This gives more room to the label.
|
||
---
|
||
panels/power/cc-battery-row.c | 9 +++++++--
|
||
1 file changed, 7 insertions(+), 2 deletions(-)
|
||
|
||
diff --git a/panels/power/cc-battery-row.c b/panels/power/cc-battery-row.c
|
||
index 55d7584d7..f6faca0c1 100644
|
||
--- a/panels/power/cc-battery-row.c
|
||
+++ b/panels/power/cc-battery-row.c
|
||
@@ -275,7 +275,12 @@ cc_battery_row_new (UpDevice *device,
|
||
|
||
/* Icon */
|
||
if (is_kind_battery && icon_name != NULL && icon_name[0] != '\0')
|
||
- gtk_image_set_from_icon_name (self->icon, icon_name, GTK_ICON_SIZE_BUTTON);
|
||
+ {
|
||
+ gtk_image_set_from_icon_name (self->icon, icon_name, GTK_ICON_SIZE_BUTTON);
|
||
+ gtk_widget_show (GTK_WIDGET (self->icon));
|
||
+ }
|
||
+ else
|
||
+ gtk_widget_hide (GTK_WIDGET (self->icon));
|
||
|
||
/* Percentage label */
|
||
if (battery_level == UP_DEVICE_LEVEL_NONE)
|
||
@@ -347,4 +352,4 @@ UpDeviceKind
|
||
cc_battery_row_get_kind (CcBatteryRow *self)
|
||
{
|
||
return self->kind;
|
||
-}
|
||
\ No newline at end of file
|
||
+}
|
||
--
|
||
2.32.0
|
||
|
||
|
||
From c4849778de730f37618120dbdd37f30515ecc77a Mon Sep 17 00:00:00 2001
|
||
From: Adrien Plazas <kekun.plazas@laposte.net>
|
||
Date: Fri, 8 Jan 2021 16:30:12 +0100
|
||
Subject: [PATCH 10/33] power: Ellipsize the labels of the battery row
|
||
|
||
This helps the window fit any size, including the narrow one of phones.
|
||
---
|
||
panels/power/cc-battery-row.ui | 4 ++++
|
||
1 file changed, 4 insertions(+)
|
||
|
||
diff --git a/panels/power/cc-battery-row.ui b/panels/power/cc-battery-row.ui
|
||
index 932e5d39f..dec97a9fe 100644
|
||
--- a/panels/power/cc-battery-row.ui
|
||
+++ b/panels/power/cc-battery-row.ui
|
||
@@ -28,6 +28,8 @@
|
||
<child>
|
||
<object class="GtkLabel" id="name_label">
|
||
<property name="visible">True</property>
|
||
+ <property name="ellipsize">end</property>
|
||
+ <property name="xalign">0</property>
|
||
</object>
|
||
</child>
|
||
<child>
|
||
@@ -79,6 +81,8 @@
|
||
<child>
|
||
<object class="GtkLabel" id="details_label">
|
||
<property name="visible">True</property>
|
||
+ <property name="ellipsize">end</property>
|
||
+ <property name="xalign">0</property>
|
||
</object>
|
||
</child>
|
||
<child>
|
||
--
|
||
2.32.0
|
||
|
||
|
||
From 33d672d634a9e1d8a2cfa74dc4d503fb6f170ea1 Mon Sep 17 00:00:00 2001
|
||
From: Bastien Nocera <hadess@hadess.net>
|
||
Date: Thu, 15 Jul 2021 13:08:05 +0200
|
||
Subject: [PATCH 11/33] power: Fix keynav not working
|
||
MIME-Version: 1.0
|
||
Content-Type: text/plain; charset=UTF-8
|
||
Content-Transfer-Encoding: 8bit
|
||
|
||
gnome-control-center/panels/power/cc-power-panel.c: In function ‘keynav_failed_cb’:
|
||
gnome-control-center/panels/power/cc-power-panel.c:892:50: warning: statement with no effect [-Wunused-value]
|
||
892 | direction == GTK_DIR_UP ? GTK_DIR_TAB_BACKWARD : GTK_DIR_TAB_FORWARD;
|
||
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~
|
||
---
|
||
panels/power/cc-power-panel.c | 2 +-
|
||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||
|
||
diff --git a/panels/power/cc-power-panel.c b/panels/power/cc-power-panel.c
|
||
index 96558c778..d31d16d22 100644
|
||
--- a/panels/power/cc-power-panel.c
|
||
+++ b/panels/power/cc-power-panel.c
|
||
@@ -888,7 +888,7 @@ keynav_failed_cb (CcPowerPanel *self, GtkDirectionType direction, GtkWidget *lis
|
||
if (direction != GTK_DIR_UP && direction != GTK_DIR_DOWN)
|
||
return FALSE;
|
||
|
||
- direction == GTK_DIR_UP ? GTK_DIR_TAB_BACKWARD : GTK_DIR_TAB_FORWARD;
|
||
+ direction = GTK_DIR_UP ? GTK_DIR_TAB_BACKWARD : GTK_DIR_TAB_FORWARD;
|
||
|
||
return gtk_widget_child_focus (GTK_WIDGET (self), direction);
|
||
}
|
||
--
|
||
2.32.0
|
||
|
||
|
||
From 35b621ce5191461b16eefcb5e677496c0c48638c Mon Sep 17 00:00:00 2001
|
||
From: Bastien Nocera <hadess@hadess.net>
|
||
Date: Thu, 15 Jul 2021 13:46:19 +0200
|
||
Subject: [PATCH 12/33] power: Simplify emptying listbox
|
||
|
||
We do that in a few places.
|
||
---
|
||
panels/power/cc-power-panel.c | 22 +++++++++++++---------
|
||
1 file changed, 13 insertions(+), 9 deletions(-)
|
||
|
||
diff --git a/panels/power/cc-power-panel.c b/panels/power/cc-power-panel.c
|
||
index d31d16d22..5d57afe59 100644
|
||
--- a/panels/power/cc-power-panel.c
|
||
+++ b/panels/power/cc-power-panel.c
|
||
@@ -242,25 +242,29 @@ add_device (CcPowerPanel *self, UpDevice *device)
|
||
}
|
||
|
||
static void
|
||
-up_client_changed (CcPowerPanel *self)
|
||
+empty_listbox (GtkListBox *listbox)
|
||
{
|
||
- g_autoptr(GList) battery_children = NULL;
|
||
- g_autoptr(GList) device_children = NULL;
|
||
+ g_autoptr(GList) children = NULL;
|
||
GList *l;
|
||
+
|
||
+ children = gtk_container_get_children (GTK_CONTAINER (listbox));
|
||
+ for (l = children; l != NULL; l = l->next)
|
||
+ gtk_container_remove (GTK_CONTAINER (listbox), l->data);
|
||
+}
|
||
+
|
||
+static void
|
||
+up_client_changed (CcPowerPanel *self)
|
||
+{
|
||
gint i;
|
||
UpDeviceKind kind;
|
||
guint n_batteries;
|
||
gboolean on_ups;
|
||
g_autoptr(UpDevice) composite = NULL;
|
||
|
||
- battery_children = gtk_container_get_children (GTK_CONTAINER (self->battery_listbox));
|
||
- for (l = battery_children; l != NULL; l = l->next)
|
||
- gtk_container_remove (GTK_CONTAINER (self->battery_listbox), l->data);
|
||
+ empty_listbox (self->battery_listbox);
|
||
gtk_widget_hide (GTK_WIDGET (self->battery_section));
|
||
|
||
- device_children = gtk_container_get_children (GTK_CONTAINER (self->device_listbox));
|
||
- for (l = device_children; l != NULL; l = l->next)
|
||
- gtk_container_remove (GTK_CONTAINER (self->device_listbox), l->data);
|
||
+ empty_listbox (self->device_listbox);
|
||
gtk_widget_hide (GTK_WIDGET (self->device_section));
|
||
|
||
#ifdef TEST_FAKE_DEVICES
|
||
--
|
||
2.32.0
|
||
|
||
|
||
From 7915830b4d8b691f4def35c83c06a658f5b14ac1 Mon Sep 17 00:00:00 2001
|
||
From: Bastien Nocera <hadess@hadess.net>
|
||
Date: Thu, 15 Jul 2021 14:39:58 +0200
|
||
Subject: [PATCH 13/33] power: Add new power profile info row widget
|
||
|
||
---
|
||
panels/power/cc-power-panel.c | 1 +
|
||
panels/power/cc-power-profile-info-row.c | 67 ++++++++++
|
||
panels/power/cc-power-profile-info-row.h | 36 ++++++
|
||
panels/power/cc-power-profile-info-row.ui | 44 +++++++
|
||
panels/power/icons/info-symbolic.svg | 150 ++++++++++++++++++++++
|
||
panels/power/icons/meson.build | 5 +
|
||
panels/power/meson.build | 1 +
|
||
panels/power/power.gresource.xml | 1 +
|
||
8 files changed, 305 insertions(+)
|
||
create mode 100644 panels/power/cc-power-profile-info-row.c
|
||
create mode 100644 panels/power/cc-power-profile-info-row.h
|
||
create mode 100644 panels/power/cc-power-profile-info-row.ui
|
||
create mode 100644 panels/power/icons/info-symbolic.svg
|
||
|
||
diff --git a/panels/power/cc-power-panel.c b/panels/power/cc-power-panel.c
|
||
index 5d57afe59..8acf62dee 100644
|
||
--- a/panels/power/cc-power-panel.c
|
||
+++ b/panels/power/cc-power-panel.c
|
||
@@ -35,6 +35,7 @@
|
||
#include "cc-battery-row.h"
|
||
#include "cc-brightness-scale.h"
|
||
#include "cc-power-profile-row.h"
|
||
+#include "cc-power-profile-info-row.h"
|
||
#include "cc-power-panel.h"
|
||
#include "cc-power-resources.h"
|
||
#include "cc-util.h"
|
||
diff --git a/panels/power/cc-power-profile-info-row.c b/panels/power/cc-power-profile-info-row.c
|
||
new file mode 100644
|
||
index 000000000..92bb78834
|
||
--- /dev/null
|
||
+++ b/panels/power/cc-power-profile-info-row.c
|
||
@@ -0,0 +1,67 @@
|
||
+/* -*- Mode: C; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
|
||
+/* cc-list-row.c
|
||
+ *
|
||
+ * Copyright 2020 Red Hat Inc.
|
||
+ *
|
||
+ * This program is free software: you can redistribute it and/or modify
|
||
+ * it under the terms of the GNU General Public License as published by
|
||
+ * the Free Software Foundation, either version 3 of the License, or
|
||
+ * (at your option) any later version.
|
||
+ *
|
||
+ * This program is distributed in the hope that it will be useful,
|
||
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||
+ * GNU General Public License for more details.
|
||
+ *
|
||
+ * You should have received a copy of the GNU General Public License
|
||
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||
+ *
|
||
+ * Author(s):
|
||
+ * Bastien Nocera <hadess@hadess.net>
|
||
+ *
|
||
+ * SPDX-License-Identifier: GPL-3.0-or-later
|
||
+ */
|
||
+
|
||
+#undef G_LOG_DOMAIN
|
||
+#define G_LOG_DOMAIN "cc-power-profile-info-row"
|
||
+
|
||
+#include <config.h>
|
||
+
|
||
+#include <glib/gi18n.h>
|
||
+#include "cc-power-profile-info-row.h"
|
||
+
|
||
+struct _CcPowerProfileInfoRow
|
||
+{
|
||
+ GtkListBoxRow parent_instance;
|
||
+
|
||
+ GtkLabel *title_label;
|
||
+};
|
||
+
|
||
+G_DEFINE_TYPE (CcPowerProfileInfoRow, cc_power_profile_info_row, GTK_TYPE_LIST_BOX_ROW)
|
||
+
|
||
+static void
|
||
+cc_power_profile_info_row_class_init (CcPowerProfileInfoRowClass *klass)
|
||
+{
|
||
+ GtkWidgetClass *widget_class = GTK_WIDGET_CLASS (klass);
|
||
+
|
||
+ gtk_widget_class_set_template_from_resource (widget_class, "/org/gnome/control-center/power/cc-power-profile-info-row.ui");
|
||
+
|
||
+ gtk_widget_class_bind_template_child (widget_class, CcPowerProfileInfoRow, title_label);
|
||
+}
|
||
+
|
||
+static void
|
||
+cc_power_profile_info_row_init (CcPowerProfileInfoRow *self)
|
||
+{
|
||
+ gtk_widget_init_template (GTK_WIDGET (self));
|
||
+}
|
||
+
|
||
+CcPowerProfileInfoRow *
|
||
+cc_power_profile_info_row_new (const char *text)
|
||
+{
|
||
+ CcPowerProfileInfoRow *self;
|
||
+
|
||
+ self = g_object_new (CC_TYPE_POWER_PROFILE_INFO_ROW, NULL);
|
||
+ gtk_label_set_markup (self->title_label, text);
|
||
+
|
||
+ return self;
|
||
+}
|
||
diff --git a/panels/power/cc-power-profile-info-row.h b/panels/power/cc-power-profile-info-row.h
|
||
new file mode 100644
|
||
index 000000000..52d055ab2
|
||
--- /dev/null
|
||
+++ b/panels/power/cc-power-profile-info-row.h
|
||
@@ -0,0 +1,36 @@
|
||
+/* -*- Mode: C; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
|
||
+/* cc-list-row.h
|
||
+ *
|
||
+ * Copyright 2020 Red Hat Inc
|
||
+ *
|
||
+ * This program is free software: you can redistribute it and/or modify
|
||
+ * it under the terms of the GNU General Public License as published by
|
||
+ * the Free Software Foundation, either version 3 of the License, or
|
||
+ * (at your option) any later version.
|
||
+ *
|
||
+ * This program is distributed in the hope that it will be useful,
|
||
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||
+ * GNU General Public License for more details.
|
||
+ *
|
||
+ * You should have received a copy of the GNU General Public License
|
||
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||
+ *
|
||
+ * Author(s):
|
||
+ * Bastien Nocera <hadess@hadess.net>
|
||
+ *
|
||
+ * SPDX-License-Identifier: GPL-3.0-or-later
|
||
+ */
|
||
+
|
||
+#pragma once
|
||
+
|
||
+#include <gtk/gtk.h>
|
||
+
|
||
+G_BEGIN_DECLS
|
||
+
|
||
+#define CC_TYPE_POWER_PROFILE_INFO_ROW (cc_power_profile_info_row_get_type())
|
||
+G_DECLARE_FINAL_TYPE (CcPowerProfileInfoRow, cc_power_profile_info_row, CC, POWER_PROFILE_INFO_ROW, GtkListBoxRow)
|
||
+
|
||
+CcPowerProfileInfoRow *cc_power_profile_info_row_new (const char *text);
|
||
+
|
||
+G_END_DECLS
|
||
diff --git a/panels/power/cc-power-profile-info-row.ui b/panels/power/cc-power-profile-info-row.ui
|
||
new file mode 100644
|
||
index 000000000..d9291ff16
|
||
--- /dev/null
|
||
+++ b/panels/power/cc-power-profile-info-row.ui
|
||
@@ -0,0 +1,44 @@
|
||
+<?xml version="1.0" encoding="UTF-8"?>
|
||
+<interface>
|
||
+ <!-- interface-requires gtk+ 3.0 -->
|
||
+ <template class="CcPowerProfileInfoRow" parent="GtkListBoxRow">
|
||
+ <property name="activatable">False</property>
|
||
+ <property name="selectable">False</property>
|
||
+ <child>
|
||
+ <object class="GtkBox">
|
||
+ <property name="visible">True</property>
|
||
+ <property name="orientation">horizontal</property>
|
||
+ <property name="margin-start">12</property>
|
||
+ <property name="margin-end">12</property>
|
||
+ <property name="margin-top">8</property>
|
||
+ <property name="margin-bottom">8</property>
|
||
+ <property name="spacing">12</property>
|
||
+ <child>
|
||
+ <object class="GtkImage" id="icon_image">
|
||
+ <property name="visible">True</property>
|
||
+ <property name="margin-start">6</property>
|
||
+ <property name="margin-end">18</property>
|
||
+ <property name="icon-name">info-symbolic</property>
|
||
+ <property name="icon-size">5</property>
|
||
+ <style>
|
||
+ <class name="power-profile"/>
|
||
+ </style>
|
||
+ </object>
|
||
+ </child>
|
||
+ <child>
|
||
+ <object class="GtkLabel" id="title_label">
|
||
+ <property name="visible">True</property>
|
||
+ <property name="halign">start</property>
|
||
+ <property name="expand">True</property>
|
||
+ <property name="use-markup">True</property>
|
||
+ <property name="use-underline">True</property>
|
||
+ <property name="xalign">0</property>
|
||
+ <property name="yalign">0.5</property>
|
||
+ <property name="margin-end">6</property>
|
||
+ <property name="wrap">True</property>
|
||
+ </object>
|
||
+ </child>
|
||
+ </object>
|
||
+ </child>
|
||
+ </template>
|
||
+</interface>
|
||
diff --git a/panels/power/icons/info-symbolic.svg b/panels/power/icons/info-symbolic.svg
|
||
new file mode 100644
|
||
index 000000000..502a98a50
|
||
--- /dev/null
|
||
+++ b/panels/power/icons/info-symbolic.svg
|
||
@@ -0,0 +1,150 @@
|
||
+<?xml version="1.0" encoding="UTF-8"?>
|
||
+<svg height="16px" viewBox="0 0 16 16" width="16px" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||
+ <filter id="a" height="100%" width="100%" x="0%" y="0%">
|
||
+ <feColorMatrix in="SourceGraphic" type="matrix" values="0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 1 0"/>
|
||
+ </filter>
|
||
+ <mask id="b">
|
||
+ <g filter="url(#a)">
|
||
+ <path d="m 0 0 h 16 v 16 h -16 z" fill-opacity="0.3"/>
|
||
+ </g>
|
||
+ </mask>
|
||
+ <clipPath id="c">
|
||
+ <path d="m 0 0 h 1024 v 800 h -1024 z"/>
|
||
+ </clipPath>
|
||
+ <mask id="d">
|
||
+ <g filter="url(#a)">
|
||
+ <path d="m 0 0 h 16 v 16 h -16 z" fill-opacity="0.05"/>
|
||
+ </g>
|
||
+ </mask>
|
||
+ <clipPath id="e">
|
||
+ <path d="m 0 0 h 1024 v 800 h -1024 z"/>
|
||
+ </clipPath>
|
||
+ <mask id="f">
|
||
+ <g filter="url(#a)">
|
||
+ <path d="m 0 0 h 16 v 16 h -16 z" fill-opacity="0.05"/>
|
||
+ </g>
|
||
+ </mask>
|
||
+ <clipPath id="g">
|
||
+ <path d="m 0 0 h 1024 v 800 h -1024 z"/>
|
||
+ </clipPath>
|
||
+ <mask id="h">
|
||
+ <g filter="url(#a)">
|
||
+ <path d="m 0 0 h 16 v 16 h -16 z" fill-opacity="0.05"/>
|
||
+ </g>
|
||
+ </mask>
|
||
+ <clipPath id="i">
|
||
+ <path d="m 0 0 h 1024 v 800 h -1024 z"/>
|
||
+ </clipPath>
|
||
+ <mask id="j">
|
||
+ <g filter="url(#a)">
|
||
+ <path d="m 0 0 h 16 v 16 h -16 z" fill-opacity="0.05"/>
|
||
+ </g>
|
||
+ </mask>
|
||
+ <clipPath id="k">
|
||
+ <path d="m 0 0 h 1024 v 800 h -1024 z"/>
|
||
+ </clipPath>
|
||
+ <mask id="l">
|
||
+ <g filter="url(#a)">
|
||
+ <path d="m 0 0 h 16 v 16 h -16 z" fill-opacity="0.05"/>
|
||
+ </g>
|
||
+ </mask>
|
||
+ <clipPath id="m">
|
||
+ <path d="m 0 0 h 1024 v 800 h -1024 z"/>
|
||
+ </clipPath>
|
||
+ <mask id="n">
|
||
+ <g filter="url(#a)">
|
||
+ <path d="m 0 0 h 16 v 16 h -16 z" fill-opacity="0.05"/>
|
||
+ </g>
|
||
+ </mask>
|
||
+ <clipPath id="o">
|
||
+ <path d="m 0 0 h 1024 v 800 h -1024 z"/>
|
||
+ </clipPath>
|
||
+ <mask id="p">
|
||
+ <g filter="url(#a)">
|
||
+ <path d="m 0 0 h 16 v 16 h -16 z" fill-opacity="0.3"/>
|
||
+ </g>
|
||
+ </mask>
|
||
+ <clipPath id="q">
|
||
+ <path d="m 0 0 h 1024 v 800 h -1024 z"/>
|
||
+ </clipPath>
|
||
+ <mask id="r">
|
||
+ <g filter="url(#a)">
|
||
+ <path d="m 0 0 h 16 v 16 h -16 z" fill-opacity="0.5"/>
|
||
+ </g>
|
||
+ </mask>
|
||
+ <clipPath id="s">
|
||
+ <path d="m 0 0 h 1024 v 800 h -1024 z"/>
|
||
+ </clipPath>
|
||
+ <mask id="t">
|
||
+ <g filter="url(#a)">
|
||
+ <path d="m 0 0 h 16 v 16 h -16 z" fill-opacity="0.4"/>
|
||
+ </g>
|
||
+ </mask>
|
||
+ <clipPath id="u">
|
||
+ <path d="m 0 0 h 1024 v 800 h -1024 z"/>
|
||
+ </clipPath>
|
||
+ <mask id="v">
|
||
+ <g filter="url(#a)">
|
||
+ <path d="m 0 0 h 16 v 16 h -16 z" fill-opacity="0.4"/>
|
||
+ </g>
|
||
+ </mask>
|
||
+ <clipPath id="w">
|
||
+ <path d="m 0 0 h 1024 v 800 h -1024 z"/>
|
||
+ </clipPath>
|
||
+ <mask id="x">
|
||
+ <g filter="url(#a)">
|
||
+ <path d="m 0 0 h 16 v 16 h -16 z" fill-opacity="0.5"/>
|
||
+ </g>
|
||
+ </mask>
|
||
+ <clipPath id="y">
|
||
+ <path d="m 0 0 h 1024 v 800 h -1024 z"/>
|
||
+ </clipPath>
|
||
+ <mask id="z">
|
||
+ <g filter="url(#a)">
|
||
+ <path d="m 0 0 h 16 v 16 h -16 z" fill-opacity="0.5"/>
|
||
+ </g>
|
||
+ </mask>
|
||
+ <clipPath id="A">
|
||
+ <path d="m 0 0 h 1024 v 800 h -1024 z"/>
|
||
+ </clipPath>
|
||
+ <g clip-path="url(#c)" mask="url(#b)" transform="matrix(1 0 0 1 -660 -222)">
|
||
+ <path d="m 562.460938 212.058594 h 10.449218 c -1.183594 0.492187 -1.296875 2.460937 0 3 h -10.449218 z m 0 0" fill="#2e3436"/>
|
||
+ </g>
|
||
+ <path d="m 7.90625 1 c -3.828125 0.050781 -6.90625 3.171875 -6.90625 7 c 0 3.867188 3.132812 7 7 7 s 7 -3.132812 7 -7 s -3.132812 -7 -7 -7 c -0.03125 0 -0.0625 0 -0.09375 0 z m -0.40625 3 h 1 c 0.277344 0 0.5 0.222656 0.5 0.5 v 1 c 0 0.277344 -0.222656 0.5 -0.5 0.5 h -1 c -0.277344 0 -0.5 -0.222656 -0.5 -0.5 v -1 c 0 -0.277344 0.222656 -0.5 0.5 -0.5 z m -0.5 3 h 2 v 5 h -2 z m 0 0" fill="#2e3436"/>
|
||
+ <g clip-path="url(#e)" mask="url(#d)" transform="matrix(1 0 0 1 -660 -222)">
|
||
+ <path d="m 16 632 h 1 v 1 h -1 z m 0 0" fill="#2e3436" fill-rule="evenodd"/>
|
||
+ </g>
|
||
+ <g clip-path="url(#g)" mask="url(#f)" transform="matrix(1 0 0 1 -660 -222)">
|
||
+ <path d="m 17 631 h 1 v 1 h -1 z m 0 0" fill="#2e3436" fill-rule="evenodd"/>
|
||
+ </g>
|
||
+ <g clip-path="url(#i)" mask="url(#h)" transform="matrix(1 0 0 1 -660 -222)">
|
||
+ <path d="m 18 634 h 1 v 1 h -1 z m 0 0" fill="#2e3436" fill-rule="evenodd"/>
|
||
+ </g>
|
||
+ <g clip-path="url(#k)" mask="url(#j)" transform="matrix(1 0 0 1 -660 -222)">
|
||
+ <path d="m 16 634 h 1 v 1 h -1 z m 0 0" fill="#2e3436" fill-rule="evenodd"/>
|
||
+ </g>
|
||
+ <g clip-path="url(#m)" mask="url(#l)" transform="matrix(1 0 0 1 -660 -222)">
|
||
+ <path d="m 17 635 h 1 v 1 h -1 z m 0 0" fill="#2e3436" fill-rule="evenodd"/>
|
||
+ </g>
|
||
+ <g clip-path="url(#o)" mask="url(#n)" transform="matrix(1 0 0 1 -660 -222)">
|
||
+ <path d="m 19 635 h 1 v 1 h -1 z m 0 0" fill="#2e3436" fill-rule="evenodd"/>
|
||
+ </g>
|
||
+ <g clip-path="url(#q)" mask="url(#p)" transform="matrix(1 0 0 1 -660 -222)">
|
||
+ <path d="m 136 660 v 7 h 7 v -7 z m 0 0" fill="#2e3436"/>
|
||
+ </g>
|
||
+ <g clip-path="url(#s)" mask="url(#r)" transform="matrix(1 0 0 1 -660 -222)">
|
||
+ <path d="m 199 642 h 3 v 12 h -3 z m 0 0" fill="#2e3436"/>
|
||
+ </g>
|
||
+ <g clip-path="url(#u)" mask="url(#t)" transform="matrix(1 0 0 1 -660 -222)">
|
||
+ <path d="m 209.5 144.160156 c 0.277344 0 0.5 0.222656 0.5 0.5 v 1 c 0 0.277344 -0.222656 0.5 -0.5 0.5 s -0.5 -0.222656 -0.5 -0.5 v -1 c 0 -0.277344 0.222656 -0.5 0.5 -0.5 z m 0 0" fill="#2e3436"/>
|
||
+ </g>
|
||
+ <g clip-path="url(#w)" mask="url(#v)" transform="matrix(1 0 0 1 -660 -222)">
|
||
+ <path d="m 206.5 144.160156 c 0.277344 0 0.5 0.222656 0.5 0.5 v 1 c 0 0.277344 -0.222656 0.5 -0.5 0.5 s -0.5 -0.222656 -0.5 -0.5 v -1 c 0 -0.277344 0.222656 -0.5 0.5 -0.5 z m 0 0" fill="#2e3436"/>
|
||
+ </g>
|
||
+ <g clip-path="url(#y)" mask="url(#x)" transform="matrix(1 0 0 1 -660 -222)">
|
||
+ <path d="m 229.5 143.160156 c -0.546875 0 -1 0.457032 -1 1 c 0 0.546875 0.453125 1 1 1 s 1 -0.453125 1 -1 c 0 -0.542968 -0.453125 -1 -1 -1 z m 0 0" fill="#2e3436"/>
|
||
+ </g>
|
||
+ <g clip-path="url(#A)" mask="url(#z)" transform="matrix(1 0 0 1 -660 -222)">
|
||
+ <path d="m 226.453125 143.160156 c -0.519531 0 -0.953125 0.433594 -0.953125 0.953125 v 0.09375 c 0 0.519531 0.433594 0.953125 0.953125 0.953125 h 0.09375 c 0.519531 0 0.953125 -0.433594 0.953125 -0.953125 v -0.09375 c 0 -0.519531 -0.433594 -0.953125 -0.953125 -0.953125 z m 0 0" fill="#2e3436"/>
|
||
+ </g>
|
||
+</svg>
|
||
diff --git a/panels/power/icons/meson.build b/panels/power/icons/meson.build
|
||
index 8165371ea..c56bc65b7 100644
|
||
--- a/panels/power/icons/meson.build
|
||
+++ b/panels/power/icons/meson.build
|
||
@@ -13,3 +13,8 @@ foreach icon_size: icon_sizes
|
||
install_dir: join_paths(control_center_icondir, 'hicolor', icon_size, 'apps')
|
||
)
|
||
endforeach
|
||
+
|
||
+install_data(
|
||
+ 'info-symbolic.svg',
|
||
+ install_dir: join_paths(control_center_icondir, 'hicolor', 'scalable', 'status')
|
||
+)
|
||
diff --git a/panels/power/meson.build b/panels/power/meson.build
|
||
index 625059dd2..af04b98ed 100644
|
||
--- a/panels/power/meson.build
|
||
+++ b/panels/power/meson.build
|
||
@@ -22,6 +22,7 @@ sources = files(
|
||
'cc-brightness-scale.c',
|
||
'cc-power-panel.c',
|
||
'cc-power-profile-row.c',
|
||
+ 'cc-power-profile-info-row.c'
|
||
)
|
||
|
||
sources += gnome.mkenums_simple(
|
||
diff --git a/panels/power/power.gresource.xml b/panels/power/power.gresource.xml
|
||
index 31e92b415..5a33c8e60 100644
|
||
--- a/panels/power/power.gresource.xml
|
||
+++ b/panels/power/power.gresource.xml
|
||
@@ -4,6 +4,7 @@
|
||
<file preprocess="xml-stripblanks">cc-battery-row.ui</file>
|
||
<file preprocess="xml-stripblanks">cc-power-panel.ui</file>
|
||
<file preprocess="xml-stripblanks">cc-power-profile-row.ui</file>
|
||
+ <file preprocess="xml-stripblanks">cc-power-profile-info-row.ui</file>
|
||
<file>battery-levels.css</file>
|
||
<file>power-profiles.css</file>
|
||
</gresource>
|
||
--
|
||
2.32.0
|
||
|
||
|
||
From 1a80fda8cdbd2226a5663f0fa572dd72210722a6 Mon Sep 17 00:00:00 2001
|
||
From: Bastien Nocera <hadess@hadess.net>
|
||
Date: Fri, 2 Apr 2021 13:10:19 +0200
|
||
Subject: [PATCH 14/33] power: Handle new power-profiles-daemon API
|
||
|
||
Handle the new PerformanceDegraded property to replace
|
||
PerformanceInhibited.
|
||
---
|
||
panels/power/cc-power-panel.c | 53 +++++++++++++++++++++++++++++++---
|
||
panels/power/cc-power-panel.ui | 11 +++++++
|
||
2 files changed, 60 insertions(+), 4 deletions(-)
|
||
|
||
diff --git a/panels/power/cc-power-panel.c b/panels/power/cc-power-panel.c
|
||
index 8acf62dee..51196a8c4 100644
|
||
--- a/panels/power/cc-power-panel.c
|
||
+++ b/panels/power/cc-power-panel.c
|
||
@@ -89,6 +89,7 @@ struct _CcPowerPanel
|
||
GtkSwitch *mobile_switch;
|
||
HdyComboRow *power_button_row;
|
||
GtkListBox *power_profile_listbox;
|
||
+ GtkListBox *power_profile_info_listbox;
|
||
HdyPreferencesGroup *power_profile_section;
|
||
GtkSizeGroup *row_sizegroup;
|
||
GtkComboBox *suspend_on_battery_delay_combo;
|
||
@@ -119,6 +120,7 @@ struct _CcPowerPanel
|
||
guint power_profiles_prop_id;
|
||
CcPowerProfileRow *power_profiles_row[NUM_CC_POWER_PROFILES];
|
||
gboolean power_profiles_in_update;
|
||
+ gboolean has_performance_degraded;
|
||
|
||
#ifdef HAVE_NETWORK_MANAGER
|
||
NMClient *nm_client;
|
||
@@ -1365,6 +1367,37 @@ performance_profile_set_inhibited (CcPowerPanel *self,
|
||
cc_power_profile_row_set_performance_inhibited (row, performance_inhibited);
|
||
}
|
||
|
||
+static void
|
||
+performance_profile_set_degraded (CcPowerPanel *self)
|
||
+{
|
||
+ g_autoptr(GVariant) variant = NULL;
|
||
+ const char *degraded, *text;
|
||
+ CcPowerProfileInfoRow *row;
|
||
+
|
||
+ empty_listbox (self->power_profile_info_listbox);
|
||
+ gtk_widget_hide (GTK_WIDGET (self->power_profile_info_listbox));
|
||
+
|
||
+ variant = g_dbus_proxy_get_cached_property (self->power_profiles_proxy, "PerformanceDegraded");
|
||
+ if (!variant)
|
||
+ return;
|
||
+ degraded = g_variant_get_string (variant, NULL);
|
||
+ if (*degraded == '\0')
|
||
+ return;
|
||
+
|
||
+ gtk_widget_show (GTK_WIDGET (self->power_profile_info_listbox));
|
||
+
|
||
+ if (g_str_equal (degraded, "high-operating-temperature"))
|
||
+ text = _("Performance mode temporarily disabled due to high operating temperature.");
|
||
+ else if (g_str_equal (degraded, "lap-detected"))
|
||
+ text = _("Lap detected: performance mode temporarily disabled. Move the device to a stable surface to restore.");
|
||
+ else
|
||
+ text = _("Performance mode temporarily disabled.");
|
||
+
|
||
+ row = cc_power_profile_info_row_new (text);
|
||
+ gtk_widget_show (GTK_WIDGET (row));
|
||
+ gtk_container_add (GTK_CONTAINER (self->power_profile_info_listbox), GTK_WIDGET (row));
|
||
+}
|
||
+
|
||
static void
|
||
power_profiles_row_activated_cb (GtkListBox *box,
|
||
GtkListBoxRow *box_row,
|
||
@@ -1420,8 +1453,13 @@ power_profiles_properties_changed_cb (CcPowerPanel *self,
|
||
{
|
||
if (g_strcmp0 (key, "PerformanceInhibited") == 0)
|
||
{
|
||
- performance_profile_set_inhibited (self,
|
||
- g_variant_get_string (value, NULL));
|
||
+ if (!self->has_performance_degraded)
|
||
+ performance_profile_set_inhibited (self,
|
||
+ g_variant_get_string (value, NULL));
|
||
+ }
|
||
+ else if (g_strcmp0 (key, "PerformanceDegraded") == 0)
|
||
+ {
|
||
+ performance_profile_set_degraded (self);
|
||
}
|
||
else if (g_strcmp0 (key, "ActiveProfile") == 0)
|
||
{
|
||
@@ -1504,7 +1542,8 @@ setup_power_profiles (CcPowerPanel *self)
|
||
g_autoptr(GVariant) props = NULL;
|
||
guint i, num_children;
|
||
g_autoptr(GError) error = NULL;
|
||
- const char *performance_inhibited;
|
||
+ const char *performance_inhibited = NULL;
|
||
+ const char *performance_degraded;
|
||
const char *active_profile;
|
||
g_autoptr(GVariant) profiles = NULL;
|
||
GtkRadioButton *last_button;
|
||
@@ -1557,7 +1596,12 @@ setup_power_profiles (CcPowerPanel *self)
|
||
gtk_widget_show (GTK_WIDGET (self->power_profile_section));
|
||
|
||
props = g_variant_get_child_value (variant, 0);
|
||
- performance_inhibited = variant_lookup_string (props, "PerformanceInhibited");
|
||
+ performance_degraded = variant_lookup_string (props, "PerformanceDegraded");
|
||
+ self->has_performance_degraded = performance_degraded != NULL;
|
||
+ if (performance_degraded == NULL)
|
||
+ performance_inhibited = variant_lookup_string (props, "PerformanceInhibited");
|
||
+ else
|
||
+ performance_profile_set_degraded (self);
|
||
active_profile = variant_lookup_string (props, "ActiveProfile");
|
||
|
||
last_button = NULL;
|
||
@@ -1715,6 +1759,7 @@ cc_power_panel_class_init (CcPowerPanelClass *klass)
|
||
gtk_widget_class_bind_template_child (widget_class, CcPowerPanel, mobile_switch);
|
||
gtk_widget_class_bind_template_child (widget_class, CcPowerPanel, power_button_row);
|
||
gtk_widget_class_bind_template_child (widget_class, CcPowerPanel, power_profile_listbox);
|
||
+ gtk_widget_class_bind_template_child (widget_class, CcPowerPanel, power_profile_info_listbox);
|
||
gtk_widget_class_bind_template_child (widget_class, CcPowerPanel, power_profile_section);
|
||
gtk_widget_class_bind_template_child (widget_class, CcPowerPanel, row_sizegroup);
|
||
gtk_widget_class_bind_template_child (widget_class, CcPowerPanel, suspend_on_battery_delay_combo);
|
||
diff --git a/panels/power/cc-power-panel.ui b/panels/power/cc-power-panel.ui
|
||
index 8e999c6d5..d8283c556 100644
|
||
--- a/panels/power/cc-power-panel.ui
|
||
+++ b/panels/power/cc-power-panel.ui
|
||
@@ -123,6 +123,17 @@
|
||
</style>
|
||
</object>
|
||
</child>
|
||
+ <child>
|
||
+ <object class="GtkListBox" id="power_profile_info_listbox">
|
||
+ <property name="visible">False</property>
|
||
+ <property name="selection-mode">none</property>
|
||
+ <property name="margin_top">12</property>
|
||
+ <signal name="keynav-failed" handler="keynav_failed_cb" object="CcPowerPanel" swapped="yes"/>
|
||
+ <style>
|
||
+ <class name="content"/>
|
||
+ </style>
|
||
+ </object>
|
||
+ </child>
|
||
</object>
|
||
</child>
|
||
<child>
|
||
--
|
||
2.32.0
|
||
|
||
|
||
From 7254da88faa5cebd43db735746eb20b2b548a462 Mon Sep 17 00:00:00 2001
|
||
From: Bastien Nocera <hadess@hadess.net>
|
||
Date: Fri, 16 Jul 2021 10:00:12 +0200
|
||
Subject: [PATCH 15/33] power: Prepare for adding more power profile info boxes
|
||
|
||
Rename and re-indent the code that adds the power profile info boxes to
|
||
prepare for adding more info boxes when needed.
|
||
---
|
||
panels/power/cc-power-panel.c | 46 ++++++++++++++++++-----------------
|
||
1 file changed, 24 insertions(+), 22 deletions(-)
|
||
|
||
diff --git a/panels/power/cc-power-panel.c b/panels/power/cc-power-panel.c
|
||
index 51196a8c4..1869be065 100644
|
||
--- a/panels/power/cc-power-panel.c
|
||
+++ b/panels/power/cc-power-panel.c
|
||
@@ -1368,34 +1368,35 @@ performance_profile_set_inhibited (CcPowerPanel *self,
|
||
}
|
||
|
||
static void
|
||
-performance_profile_set_degraded (CcPowerPanel *self)
|
||
+power_profile_update_info_boxes (CcPowerPanel *self)
|
||
{
|
||
- g_autoptr(GVariant) variant = NULL;
|
||
- const char *degraded, *text;
|
||
+ g_autoptr(GVariant) degraded_variant = NULL;
|
||
+ const char *degraded = NULL;
|
||
CcPowerProfileInfoRow *row;
|
||
|
||
empty_listbox (self->power_profile_info_listbox);
|
||
gtk_widget_hide (GTK_WIDGET (self->power_profile_info_listbox));
|
||
|
||
- variant = g_dbus_proxy_get_cached_property (self->power_profiles_proxy, "PerformanceDegraded");
|
||
- if (!variant)
|
||
- return;
|
||
- degraded = g_variant_get_string (variant, NULL);
|
||
- if (*degraded == '\0')
|
||
- return;
|
||
+ degraded_variant = g_dbus_proxy_get_cached_property (self->power_profiles_proxy, "PerformanceDegraded");
|
||
+ if (degraded_variant)
|
||
+ degraded = g_variant_get_string (degraded_variant, NULL);
|
||
+ if (degraded && *degraded != '\0')
|
||
+ {
|
||
+ const char *text;
|
||
|
||
- gtk_widget_show (GTK_WIDGET (self->power_profile_info_listbox));
|
||
+ gtk_widget_show (GTK_WIDGET (self->power_profile_info_listbox));
|
||
|
||
- if (g_str_equal (degraded, "high-operating-temperature"))
|
||
- text = _("Performance mode temporarily disabled due to high operating temperature.");
|
||
- else if (g_str_equal (degraded, "lap-detected"))
|
||
- text = _("Lap detected: performance mode temporarily disabled. Move the device to a stable surface to restore.");
|
||
- else
|
||
- text = _("Performance mode temporarily disabled.");
|
||
+ if (g_str_equal (degraded, "high-operating-temperature"))
|
||
+ text = _("Performance mode temporarily disabled due to high operating temperature.");
|
||
+ else if (g_str_equal (degraded, "lap-detected"))
|
||
+ text = _("Lap detected: performance mode temporarily disabled. Move the device to a stable surface to restore.");
|
||
+ else
|
||
+ text = _("Performance mode temporarily disabled.");
|
||
|
||
- row = cc_power_profile_info_row_new (text);
|
||
- gtk_widget_show (GTK_WIDGET (row));
|
||
- gtk_container_add (GTK_CONTAINER (self->power_profile_info_listbox), GTK_WIDGET (row));
|
||
+ row = cc_power_profile_info_row_new (text);
|
||
+ gtk_widget_show (GTK_WIDGET (row));
|
||
+ gtk_container_add (GTK_CONTAINER (self->power_profile_info_listbox), GTK_WIDGET (row));
|
||
+ }
|
||
}
|
||
|
||
static void
|
||
@@ -1459,7 +1460,7 @@ power_profiles_properties_changed_cb (CcPowerPanel *self,
|
||
}
|
||
else if (g_strcmp0 (key, "PerformanceDegraded") == 0)
|
||
{
|
||
- performance_profile_set_degraded (self);
|
||
+ power_profile_update_info_boxes (self);
|
||
}
|
||
else if (g_strcmp0 (key, "ActiveProfile") == 0)
|
||
{
|
||
@@ -1600,8 +1601,6 @@ setup_power_profiles (CcPowerPanel *self)
|
||
self->has_performance_degraded = performance_degraded != NULL;
|
||
if (performance_degraded == NULL)
|
||
performance_inhibited = variant_lookup_string (props, "PerformanceInhibited");
|
||
- else
|
||
- performance_profile_set_degraded (self);
|
||
active_profile = variant_lookup_string (props, "ActiveProfile");
|
||
|
||
last_button = NULL;
|
||
@@ -1649,6 +1648,9 @@ setup_power_profiles (CcPowerPanel *self)
|
||
|
||
self->power_profiles_prop_id = g_signal_connect_object (G_OBJECT (self->power_profiles_proxy), "g-properties-changed",
|
||
G_CALLBACK (power_profiles_properties_changed_cb), self, G_CONNECT_SWAPPED);
|
||
+
|
||
+ if (self->has_performance_degraded)
|
||
+ power_profile_update_info_boxes (self);
|
||
}
|
||
|
||
static void
|
||
--
|
||
2.32.0
|
||
|
||
|
||
From 173904b7eeea145c38065939a1dd8a408745f3c9 Mon Sep 17 00:00:00 2001
|
||
From: Bastien Nocera <hadess@hadess.net>
|
||
Date: Fri, 16 Jul 2021 10:07:28 +0200
|
||
Subject: [PATCH 16/33] power: Move variant_lookup_string() helper function
|
||
|
||
---
|
||
panels/power/cc-power-panel.c | 24 ++++++++++++------------
|
||
1 file changed, 12 insertions(+), 12 deletions(-)
|
||
|
||
diff --git a/panels/power/cc-power-panel.c b/panels/power/cc-power-panel.c
|
||
index 1869be065..4633627c2 100644
|
||
--- a/panels/power/cc-power-panel.c
|
||
+++ b/panels/power/cc-power-panel.c
|
||
@@ -1343,6 +1343,18 @@ setup_power_saving (CcPowerPanel *self)
|
||
#endif
|
||
}
|
||
|
||
+static const char *
|
||
+variant_lookup_string (GVariant *dict,
|
||
+ const char *key)
|
||
+{
|
||
+ GVariant *variant;
|
||
+
|
||
+ variant = g_variant_lookup_value (dict, key, G_VARIANT_TYPE_STRING);
|
||
+ if (!variant)
|
||
+ return NULL;
|
||
+ return g_variant_get_string (variant, NULL);
|
||
+}
|
||
+
|
||
static void
|
||
performance_profile_set_active (CcPowerPanel *self,
|
||
const char *profile_str)
|
||
@@ -1427,18 +1439,6 @@ perf_profile_list_box_sort (GtkListBoxRow *row1,
|
||
return 0;
|
||
}
|
||
|
||
-static const char *
|
||
-variant_lookup_string (GVariant *dict,
|
||
- const char *key)
|
||
-{
|
||
- GVariant *variant;
|
||
-
|
||
- variant = g_variant_lookup_value (dict, key, G_VARIANT_TYPE_STRING);
|
||
- if (!variant)
|
||
- return NULL;
|
||
- return g_variant_get_string (variant, NULL);
|
||
-}
|
||
-
|
||
static void
|
||
power_profiles_properties_changed_cb (CcPowerPanel *self,
|
||
GVariant *changed_properties,
|
||
--
|
||
2.32.0
|
||
|
||
|
||
From f49c47787de81fa39f100f3903d2d886905cd4c7 Mon Sep 17 00:00:00 2001
|
||
From: Bastien Nocera <hadess@hadess.net>
|
||
Date: Fri, 16 Jul 2021 11:01:52 +0200
|
||
Subject: [PATCH 17/33] power: Show power profile info boxes for profile holds
|
||
|
||
Applications can request that power-profiles-daemon "hold" a particular
|
||
power profile for the duration of a task or event, such as launching a
|
||
taxing application, or saving power because of low battery.
|
||
|
||
Show those holds in the same type of info boxes we already use to show
|
||
"degraded" performance.
|
||
|
||
See https://gitlab.freedesktop.org/hadess/power-profiles-daemon/-/merge_requests/46
|
||
---
|
||
panels/power/cc-power-panel.c | 77 ++++++++++++++++++++++++++++++++++-
|
||
1 file changed, 76 insertions(+), 1 deletion(-)
|
||
|
||
diff --git a/panels/power/cc-power-panel.c b/panels/power/cc-power-panel.c
|
||
index 4633627c2..4f1989cdf 100644
|
||
--- a/panels/power/cc-power-panel.c
|
||
+++ b/panels/power/cc-power-panel.c
|
||
@@ -24,6 +24,7 @@
|
||
#include <libupower-glib/upower.h>
|
||
#include <glib/gi18n.h>
|
||
#include <gnome-settings-daemon/gsd-enums.h>
|
||
+#include <gio/gdesktopappinfo.h>
|
||
#include <handy.h>
|
||
|
||
#ifdef HAVE_NETWORK_MANAGER
|
||
@@ -1383,12 +1384,25 @@ static void
|
||
power_profile_update_info_boxes (CcPowerPanel *self)
|
||
{
|
||
g_autoptr(GVariant) degraded_variant = NULL;
|
||
+ g_autoptr(GVariant) holds_variant = NULL;
|
||
+ g_autoptr(GVariant) profile_variant = NULL;
|
||
+ guint i, num_children;
|
||
const char *degraded = NULL;
|
||
+ const char *profile;
|
||
CcPowerProfileInfoRow *row;
|
||
+ int next_insert = 0;
|
||
|
||
empty_listbox (self->power_profile_info_listbox);
|
||
gtk_widget_hide (GTK_WIDGET (self->power_profile_info_listbox));
|
||
|
||
+ profile_variant = g_dbus_proxy_get_cached_property (self->power_profiles_proxy, "ActiveProfile");
|
||
+ if (!profile_variant)
|
||
+ {
|
||
+ g_warning ("No 'ActiveProfile' property on power-profiles-daemon service");
|
||
+ return;
|
||
+ }
|
||
+ profile = g_variant_get_string (profile_variant, NULL);
|
||
+
|
||
degraded_variant = g_dbus_proxy_get_cached_property (self->power_profiles_proxy, "PerformanceDegraded");
|
||
if (degraded_variant)
|
||
degraded = g_variant_get_string (degraded_variant, NULL);
|
||
@@ -1408,6 +1422,66 @@ power_profile_update_info_boxes (CcPowerPanel *self)
|
||
row = cc_power_profile_info_row_new (text);
|
||
gtk_widget_show (GTK_WIDGET (row));
|
||
gtk_container_add (GTK_CONTAINER (self->power_profile_info_listbox), GTK_WIDGET (row));
|
||
+ if (g_str_equal (profile, "performance"))
|
||
+ next_insert = 1;
|
||
+ }
|
||
+
|
||
+ holds_variant = g_dbus_proxy_get_cached_property (self->power_profiles_proxy, "ActiveProfileHolds");
|
||
+ if (!holds_variant)
|
||
+ {
|
||
+ g_warning ("No 'ActiveProfileHolds' property on power-profiles-daemon service");
|
||
+ return;
|
||
+ }
|
||
+
|
||
+ num_children = g_variant_n_children (holds_variant);
|
||
+ for (i = 0; i < num_children; i++)
|
||
+ {
|
||
+ g_autoptr(GDesktopAppInfo) app_info = NULL;
|
||
+ g_autoptr(GVariant) hold_variant = NULL;
|
||
+ g_autofree char *text = NULL;
|
||
+ const char *app_id, *held_profile, *reason, *name;
|
||
+
|
||
+ hold_variant = g_variant_get_child_value (holds_variant, i);
|
||
+ if (!hold_variant || !g_variant_is_of_type (hold_variant, G_VARIANT_TYPE ("a{sv}")))
|
||
+ continue;
|
||
+
|
||
+ app_id = variant_lookup_string (hold_variant, "ApplicationId");
|
||
+ if (!app_id)
|
||
+ continue;
|
||
+ app_info = g_desktop_app_info_new (app_id);
|
||
+ name = app_info ? g_app_info_get_name (G_APP_INFO (app_info)) : app_id;
|
||
+ held_profile = variant_lookup_string (hold_variant, "Profile");
|
||
+ reason = variant_lookup_string (hold_variant, "Reason");
|
||
+ g_debug ("Adding info row for %s hold by %s: %s", held_profile, app_id, reason);
|
||
+
|
||
+ if (g_strcmp0 (held_profile, "power-saver") == 0 &&
|
||
+ g_strcmp0 (app_id, "org.gnome.SettingsDaemon.Power") == 0)
|
||
+ {
|
||
+ text = g_strdup (_("Low battery: power saver enabled. Previous mode will be restored when battery is sufficiently charged."));
|
||
+ }
|
||
+ else
|
||
+ {
|
||
+ switch (cc_power_profile_from_str (held_profile))
|
||
+ {
|
||
+ case CC_POWER_PROFILE_POWER_SAVER:
|
||
+ /* translators: "%s" is an application name */
|
||
+ text = g_strdup_printf (_("Power Saver mode activated by “%s”."), name);
|
||
+ break;
|
||
+ case CC_POWER_PROFILE_PERFORMANCE:
|
||
+ /* translators: "%s" is an application name */
|
||
+ text = g_strdup_printf (_("Performance mode activated by “%s”."), name);
|
||
+ break;
|
||
+ default:
|
||
+ g_assert_not_reached ();
|
||
+ }
|
||
+ }
|
||
+
|
||
+ row = cc_power_profile_info_row_new (text);
|
||
+ gtk_widget_show (GTK_WIDGET (row));
|
||
+ if (g_strcmp0 (held_profile, profile) != 0)
|
||
+ gtk_list_box_insert (GTK_LIST_BOX (self->power_profile_info_listbox), GTK_WIDGET (row), -1);
|
||
+ else
|
||
+ gtk_list_box_insert (GTK_LIST_BOX (self->power_profile_info_listbox), GTK_WIDGET (row), next_insert);
|
||
}
|
||
}
|
||
|
||
@@ -1458,7 +1532,8 @@ power_profiles_properties_changed_cb (CcPowerPanel *self,
|
||
performance_profile_set_inhibited (self,
|
||
g_variant_get_string (value, NULL));
|
||
}
|
||
- else if (g_strcmp0 (key, "PerformanceDegraded") == 0)
|
||
+ else if (g_strcmp0 (key, "PerformanceDegraded") == 0 ||
|
||
+ g_strcmp0 (key, "ActiveProfileHolds") == 0)
|
||
{
|
||
power_profile_update_info_boxes (self);
|
||
}
|
||
--
|
||
2.32.0
|
||
|
||
|
||
From d7cabb849c425fd84e85a981bcd56a6df1d87868 Mon Sep 17 00:00:00 2001
|
||
From: Bastien Nocera <hadess@hadess.net>
|
||
Date: Fri, 16 Jul 2021 11:32:37 +0200
|
||
Subject: [PATCH 18/33] power: Tweak power profile info boxes horizontal
|
||
spacing
|
||
|
||
A bit too much whitespace around the info icon.
|
||
---
|
||
panels/power/cc-power-profile-info-row.ui | 8 ++++----
|
||
1 file changed, 4 insertions(+), 4 deletions(-)
|
||
|
||
diff --git a/panels/power/cc-power-profile-info-row.ui b/panels/power/cc-power-profile-info-row.ui
|
||
index d9291ff16..bc49a24ac 100644
|
||
--- a/panels/power/cc-power-profile-info-row.ui
|
||
+++ b/panels/power/cc-power-profile-info-row.ui
|
||
@@ -8,16 +8,16 @@
|
||
<object class="GtkBox">
|
||
<property name="visible">True</property>
|
||
<property name="orientation">horizontal</property>
|
||
- <property name="margin-start">12</property>
|
||
- <property name="margin-end">12</property>
|
||
+ <property name="margin-start">8</property>
|
||
+ <property name="margin-end">8</property>
|
||
<property name="margin-top">8</property>
|
||
<property name="margin-bottom">8</property>
|
||
- <property name="spacing">12</property>
|
||
+ <property name="spacing">8</property>
|
||
<child>
|
||
<object class="GtkImage" id="icon_image">
|
||
<property name="visible">True</property>
|
||
<property name="margin-start">6</property>
|
||
- <property name="margin-end">18</property>
|
||
+ <property name="margin-end">6</property>
|
||
<property name="icon-name">info-symbolic</property>
|
||
<property name="icon-size">5</property>
|
||
<style>
|
||
--
|
||
2.32.0
|
||
|
||
|
||
From 941dfe6403ae0eb68aef76754691f56b07999635 Mon Sep 17 00:00:00 2001
|
||
From: Bastien Nocera <hadess@hadess.net>
|
||
Date: Fri, 16 Jul 2021 11:33:38 +0200
|
||
Subject: [PATCH 19/33] power: Reword lap mode info message
|
||
|
||
Reword the lap mode info message slightly as the performance mode might
|
||
not have been what the user requested, but the warning should stay until
|
||
cleared nonetheless.
|
||
---
|
||
panels/power/cc-power-panel.c | 2 +-
|
||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||
|
||
diff --git a/panels/power/cc-power-panel.c b/panels/power/cc-power-panel.c
|
||
index 4f1989cdf..740d52c64 100644
|
||
--- a/panels/power/cc-power-panel.c
|
||
+++ b/panels/power/cc-power-panel.c
|
||
@@ -1415,7 +1415,7 @@ power_profile_update_info_boxes (CcPowerPanel *self)
|
||
if (g_str_equal (degraded, "high-operating-temperature"))
|
||
text = _("Performance mode temporarily disabled due to high operating temperature.");
|
||
else if (g_str_equal (degraded, "lap-detected"))
|
||
- text = _("Lap detected: performance mode temporarily disabled. Move the device to a stable surface to restore.");
|
||
+ text = _("Lap detected: performance mode temporarily unavailable. Move the device to a stable surface to restore.");
|
||
else
|
||
text = _("Performance mode temporarily disabled.");
|
||
|
||
--
|
||
2.32.0
|
||
|
||
|
||
From 4dff29aab988021aab3f623899271b33240c0c86 Mon Sep 17 00:00:00 2001
|
||
From: Bastien Nocera <hadess@hadess.net>
|
||
Date: Wed, 21 Jul 2021 12:26:39 +0200
|
||
Subject: [PATCH 20/33] power: Fix D-Bus proxy leak
|
||
|
||
---
|
||
panels/power/cc-power-panel.c | 1 +
|
||
1 file changed, 1 insertion(+)
|
||
|
||
diff --git a/panels/power/cc-power-panel.c b/panels/power/cc-power-panel.c
|
||
index 740d52c64..21183f39c 100644
|
||
--- a/panels/power/cc-power-panel.c
|
||
+++ b/panels/power/cc-power-panel.c
|
||
@@ -151,6 +151,7 @@ cc_power_panel_dispose (GObject *object)
|
||
g_clear_object (&self->bt_rfkill);
|
||
g_clear_object (&self->bt_properties);
|
||
g_clear_object (&self->iio_proxy);
|
||
+ g_clear_object (&self->power_profiles_proxy);
|
||
#ifdef HAVE_NETWORK_MANAGER
|
||
g_clear_object (&self->nm_client);
|
||
#endif
|
||
--
|
||
2.32.0
|
||
|
||
|
||
From 99140ea853c6c6ce0e4c29b3edb28a07e7aa5fb6 Mon Sep 17 00:00:00 2001
|
||
From: Bastien Nocera <hadess@hadess.net>
|
||
Date: Wed, 21 Jul 2021 12:29:55 +0200
|
||
Subject: [PATCH 21/33] power: Add UI for "power-saver profile when battery is
|
||
low"
|
||
|
||
See https://gitlab.gnome.org/GNOME/gnome-settings-daemon/-/merge_requests/247
|
||
---
|
||
panels/power/cc-power-panel.c | 23 +++++++++++++++++++++++
|
||
panels/power/cc-power-panel.ui | 15 +++++++++++++++
|
||
2 files changed, 38 insertions(+)
|
||
|
||
diff --git a/panels/power/cc-power-panel.c b/panels/power/cc-power-panel.c
|
||
index 21183f39c..3e1b323f4 100644
|
||
--- a/panels/power/cc-power-panel.c
|
||
+++ b/panels/power/cc-power-panel.c
|
||
@@ -92,6 +92,8 @@ struct _CcPowerPanel
|
||
GtkListBox *power_profile_listbox;
|
||
GtkListBox *power_profile_info_listbox;
|
||
HdyPreferencesGroup *power_profile_section;
|
||
+ HdyActionRow *power_saver_low_battery_row;
|
||
+ GtkSwitch *power_saver_low_battery_switch;
|
||
GtkSizeGroup *row_sizegroup;
|
||
GtkComboBox *suspend_on_battery_delay_combo;
|
||
GtkLabel *suspend_on_battery_delay_label;
|
||
@@ -257,6 +259,18 @@ empty_listbox (GtkListBox *listbox)
|
||
gtk_container_remove (GTK_CONTAINER (listbox), l->data);
|
||
}
|
||
|
||
+static void
|
||
+update_power_saver_low_battery_row_visibility (CcPowerPanel *self)
|
||
+{
|
||
+ g_autoptr(UpDevice) composite = NULL;
|
||
+ UpDeviceKind kind;
|
||
+
|
||
+ composite = up_client_get_display_device (self->up_client);
|
||
+ g_object_get (composite, "kind", &kind, NULL);
|
||
+ gtk_widget_set_visible (GTK_WIDGET (self->power_saver_low_battery_row),
|
||
+ self->power_profiles_proxy && kind == UP_DEVICE_KIND_BATTERY);
|
||
+}
|
||
+
|
||
static void
|
||
up_client_changed (CcPowerPanel *self)
|
||
{
|
||
@@ -427,6 +441,8 @@ up_client_changed (CcPowerPanel *self)
|
||
add_device (self, device);
|
||
}
|
||
}
|
||
+
|
||
+ update_power_saver_low_battery_row_visibility (self);
|
||
}
|
||
|
||
static void
|
||
@@ -1727,6 +1743,8 @@ setup_power_profiles (CcPowerPanel *self)
|
||
|
||
if (self->has_performance_degraded)
|
||
power_profile_update_info_boxes (self);
|
||
+
|
||
+ update_power_saver_low_battery_row_visibility (self);
|
||
}
|
||
|
||
static void
|
||
@@ -1839,6 +1857,8 @@ cc_power_panel_class_init (CcPowerPanelClass *klass)
|
||
gtk_widget_class_bind_template_child (widget_class, CcPowerPanel, power_profile_listbox);
|
||
gtk_widget_class_bind_template_child (widget_class, CcPowerPanel, power_profile_info_listbox);
|
||
gtk_widget_class_bind_template_child (widget_class, CcPowerPanel, power_profile_section);
|
||
+ gtk_widget_class_bind_template_child (widget_class, CcPowerPanel, power_saver_low_battery_row);
|
||
+ gtk_widget_class_bind_template_child (widget_class, CcPowerPanel, power_saver_low_battery_switch);
|
||
gtk_widget_class_bind_template_child (widget_class, CcPowerPanel, row_sizegroup);
|
||
gtk_widget_class_bind_template_child (widget_class, CcPowerPanel, suspend_on_battery_delay_combo);
|
||
gtk_widget_class_bind_template_child (widget_class, CcPowerPanel, suspend_on_battery_delay_label);
|
||
@@ -1895,6 +1915,9 @@ cc_power_panel_init (CcPowerPanel *self)
|
||
setup_power_profiles (self);
|
||
|
||
setup_power_saving (self);
|
||
+ g_settings_bind (self->gsd_settings, "power-saver-profile-on-low-battery",
|
||
+ self->power_saver_low_battery_switch, "active",
|
||
+ G_SETTINGS_BIND_DEFAULT);
|
||
|
||
setup_general_section (self);
|
||
|
||
diff --git a/panels/power/cc-power-panel.ui b/panels/power/cc-power-panel.ui
|
||
index d8283c556..bc58e7462 100644
|
||
--- a/panels/power/cc-power-panel.ui
|
||
+++ b/panels/power/cc-power-panel.ui
|
||
@@ -206,6 +206,21 @@
|
||
<signal name="notify::selected-index" handler="blank_screen_row_changed_cb" object="CcPowerPanel" swapped="yes"/>
|
||
</object>
|
||
</child>
|
||
+ <child>
|
||
+ <object class="HdyActionRow" id="power_saver_low_battery_row">
|
||
+ <property name="visible">False</property>
|
||
+ <property name="title" translatable="yes">Automatic Power Saver</property>
|
||
+ <property name="subtitle" translatable="yes">Enables power saver mode when battery is low.</property>
|
||
+ <property name="use_underline">True</property>
|
||
+ <property name="activatable_widget">power_saver_low_battery_switch</property>
|
||
+ <child>
|
||
+ <object class="GtkSwitch" id="power_saver_low_battery_switch">
|
||
+ <property name="visible">True</property>
|
||
+ <property name="valign">center</property>
|
||
+ </object>
|
||
+ </child>
|
||
+ </object>
|
||
+ </child>
|
||
<child>
|
||
<object class="HdyActionRow" id="automatic_suspend_row">
|
||
<property name="visible">False</property>
|
||
--
|
||
2.32.0
|
||
|
||
|
||
From 301045260461f4ab5f6e41ebadbd94935411edb2 Mon Sep 17 00:00:00 2001
|
||
From: Bastien Nocera <hadess@hadess.net>
|
||
Date: Tue, 27 Jul 2021 15:49:26 +0200
|
||
Subject: [PATCH 22/33] power: Fix logic when showing profile holds
|
||
|
||
A logic error meant that the power profiles info boxes container
|
||
would not be shown if there wasn't a "degraded" performance as well.
|
||
|
||
Spotted by Allan Day
|
||
---
|
||
panels/power/cc-power-panel.c | 3 +++
|
||
1 file changed, 3 insertions(+)
|
||
|
||
diff --git a/panels/power/cc-power-panel.c b/panels/power/cc-power-panel.c
|
||
index 3e1b323f4..a5c66aa9d 100644
|
||
--- a/panels/power/cc-power-panel.c
|
||
+++ b/panels/power/cc-power-panel.c
|
||
@@ -1465,6 +1465,9 @@ power_profile_update_info_boxes (CcPowerPanel *self)
|
||
app_id = variant_lookup_string (hold_variant, "ApplicationId");
|
||
if (!app_id)
|
||
continue;
|
||
+
|
||
+ gtk_widget_show (GTK_WIDGET (self->power_profile_info_listbox));
|
||
+
|
||
app_info = g_desktop_app_info_new (app_id);
|
||
name = app_info ? g_app_info_get_name (G_APP_INFO (app_info)) : app_id;
|
||
held_profile = variant_lookup_string (hold_variant, "Profile");
|
||
--
|
||
2.32.0
|
||
|
||
|
||
From ac0afc4486403ee61bd5bcc51b22cefb5bba9e8c Mon Sep 17 00:00:00 2001
|
||
From: Bastien Nocera <hadess@hadess.net>
|
||
Date: Thu, 22 Jul 2021 18:29:43 +0200
|
||
Subject: [PATCH 23/33] power: Remove Wi-Fi and WWAN "power saving" toggles
|
||
|
||
It's pretty clear from their experiences on smartphones that our users
|
||
know that Wi-Fi and other wireless technologies use enough battery that
|
||
turning them off is a power saving move.
|
||
|
||
The switches and text were also pretty confusing as we would be turning
|
||
"off" the devices to turn "on" the power saving.
|
||
---
|
||
panels/power/cc-power-panel.c | 207 ---------------------------------
|
||
panels/power/cc-power-panel.ui | 34 ------
|
||
panels/power/meson.build | 4 -
|
||
3 files changed, 245 deletions(-)
|
||
|
||
diff --git a/panels/power/cc-power-panel.c b/panels/power/cc-power-panel.c
|
||
index a5c66aa9d..97d787b95 100644
|
||
--- a/panels/power/cc-power-panel.c
|
||
+++ b/panels/power/cc-power-panel.c
|
||
@@ -27,10 +27,6 @@
|
||
#include <gio/gdesktopappinfo.h>
|
||
#include <handy.h>
|
||
|
||
-#ifdef HAVE_NETWORK_MANAGER
|
||
-#include <NetworkManager.h>
|
||
-#endif
|
||
-
|
||
#include "shell/cc-object-storage.h"
|
||
#include "list-box-helper.h"
|
||
#include "cc-battery-row.h"
|
||
@@ -86,8 +82,6 @@ struct _CcPowerPanel
|
||
GtkListBoxRow *kbd_brightness_row;
|
||
CcBrightnessScale *kbd_brightness_scale;
|
||
GtkSizeGroup *level_sizegroup;
|
||
- GtkListBoxRow *mobile_row;
|
||
- GtkSwitch *mobile_switch;
|
||
HdyComboRow *power_button_row;
|
||
GtkListBox *power_profile_listbox;
|
||
GtkListBox *power_profile_info_listbox;
|
||
@@ -102,8 +96,6 @@ struct _CcPowerPanel
|
||
GtkComboBox *suspend_on_ac_delay_combo;
|
||
GtkLabel *suspend_on_ac_label;
|
||
GtkSwitch *suspend_on_ac_switch;
|
||
- GtkListBoxRow *wifi_row;
|
||
- GtkSwitch *wifi_switch;
|
||
|
||
GSettings *gsd_settings;
|
||
GSettings *session_settings;
|
||
@@ -124,10 +116,6 @@ struct _CcPowerPanel
|
||
CcPowerProfileRow *power_profiles_row[NUM_CC_POWER_PROFILES];
|
||
gboolean power_profiles_in_update;
|
||
gboolean has_performance_degraded;
|
||
-
|
||
-#ifdef HAVE_NETWORK_MANAGER
|
||
- NMClient *nm_client;
|
||
-#endif
|
||
};
|
||
|
||
CC_PANEL_REGISTER (CcPowerPanel, cc_power_panel)
|
||
@@ -154,9 +142,6 @@ cc_power_panel_dispose (GObject *object)
|
||
g_clear_object (&self->bt_properties);
|
||
g_clear_object (&self->iio_proxy);
|
||
g_clear_object (&self->power_profiles_proxy);
|
||
-#ifdef HAVE_NETWORK_MANAGER
|
||
- g_clear_object (&self->nm_client);
|
||
-#endif
|
||
if (self->iio_proxy_watch_id != 0)
|
||
g_bus_unwatch_name (self->iio_proxy_watch_id);
|
||
self->iio_proxy_watch_id = 0;
|
||
@@ -729,184 +714,6 @@ bt_powered_state_changed (CcPowerPanel *self)
|
||
g_signal_handlers_unblock_by_func (self->bt_switch, bt_switch_changed_cb, self);
|
||
}
|
||
|
||
-#ifdef HAVE_NETWORK_MANAGER
|
||
-static gboolean
|
||
-has_wifi_devices (NMClient *client)
|
||
-{
|
||
- const GPtrArray *devices;
|
||
- NMDevice *device;
|
||
- gint i;
|
||
-
|
||
- if (!nm_client_get_nm_running (client))
|
||
- return FALSE;
|
||
-
|
||
- devices = nm_client_get_devices (client);
|
||
- if (devices == NULL)
|
||
- return FALSE;
|
||
-
|
||
- for (i = 0; i < devices->len; i++)
|
||
- {
|
||
- device = g_ptr_array_index (devices, i);
|
||
- switch (nm_device_get_device_type (device))
|
||
- {
|
||
- case NM_DEVICE_TYPE_WIFI:
|
||
- return TRUE;
|
||
- default:
|
||
- break;
|
||
- }
|
||
- }
|
||
-
|
||
- return FALSE;
|
||
-}
|
||
-
|
||
-static void
|
||
-wifi_switch_changed_cb (CcPowerPanel *self)
|
||
-{
|
||
- gboolean enabled;
|
||
-
|
||
- enabled = gtk_switch_get_active (self->wifi_switch);
|
||
- g_debug ("Setting wifi %s", enabled ? "enabled" : "disabled");
|
||
- nm_client_wireless_set_enabled (self->nm_client, enabled);
|
||
-}
|
||
-
|
||
-static gboolean
|
||
-has_mobile_devices (NMClient *client)
|
||
-{
|
||
- const GPtrArray *devices;
|
||
- NMDevice *device;
|
||
- gint i;
|
||
-
|
||
- if (!nm_client_get_nm_running (client))
|
||
- return FALSE;
|
||
-
|
||
- devices = nm_client_get_devices (client);
|
||
- if (devices == NULL)
|
||
- return FALSE;
|
||
-
|
||
- for (i = 0; i < devices->len; i++)
|
||
- {
|
||
- device = g_ptr_array_index (devices, i);
|
||
- switch (nm_device_get_device_type (device))
|
||
- {
|
||
- case NM_DEVICE_TYPE_MODEM:
|
||
- return TRUE;
|
||
- default:
|
||
- break;
|
||
- }
|
||
- }
|
||
-
|
||
- return FALSE;
|
||
-}
|
||
-
|
||
-static void
|
||
-mobile_switch_changed_cb (CcPowerPanel *self)
|
||
-{
|
||
- gboolean enabled;
|
||
-
|
||
- enabled = gtk_switch_get_active (self->mobile_switch);
|
||
- g_debug ("Setting wwan %s", enabled ? "enabled" : "disabled");
|
||
- nm_client_wwan_set_enabled (self->nm_client, enabled);
|
||
-}
|
||
-
|
||
-static void
|
||
-nm_client_state_changed (CcPowerPanel *self)
|
||
-{
|
||
- gboolean visible;
|
||
- gboolean active;
|
||
- gboolean sensitive;
|
||
-
|
||
- visible = has_wifi_devices (self->nm_client);
|
||
- active = nm_client_networking_get_enabled (self->nm_client) &&
|
||
- nm_client_wireless_get_enabled (self->nm_client) &&
|
||
- nm_client_wireless_hardware_get_enabled (self->nm_client);
|
||
- sensitive = nm_client_networking_get_enabled (self->nm_client) &&
|
||
- nm_client_wireless_hardware_get_enabled (self->nm_client);
|
||
-
|
||
- g_debug ("wifi state changed to %s", active ? "enabled" : "disabled");
|
||
-
|
||
- g_signal_handlers_block_by_func (self->wifi_switch, wifi_switch_changed_cb, self);
|
||
- gtk_switch_set_active (self->wifi_switch, active);
|
||
- gtk_widget_set_sensitive (GTK_WIDGET (self->wifi_switch), sensitive);
|
||
- gtk_widget_set_visible (GTK_WIDGET (self->wifi_row), visible);
|
||
- g_signal_handlers_unblock_by_func (self->wifi_switch, wifi_switch_changed_cb, self);
|
||
-
|
||
- visible = has_mobile_devices (self->nm_client);
|
||
-
|
||
- /* Set the switch active, if wwan is enabled. */
|
||
- active = nm_client_networking_get_enabled (self->nm_client) &&
|
||
- (nm_client_wwan_get_enabled (self->nm_client) &&
|
||
- nm_client_wwan_hardware_get_enabled (self->nm_client));
|
||
- sensitive = nm_client_networking_get_enabled (self->nm_client) &&
|
||
- nm_client_wwan_hardware_get_enabled (self->nm_client);
|
||
-
|
||
- g_debug ("mobile state changed to %s", active ? "enabled" : "disabled");
|
||
-
|
||
- g_signal_handlers_block_by_func (self->mobile_switch, mobile_switch_changed_cb, self);
|
||
- gtk_switch_set_active (self->mobile_switch, active);
|
||
- gtk_widget_set_sensitive (GTK_WIDGET (self->mobile_switch), sensitive);
|
||
- gtk_widget_set_visible (GTK_WIDGET (self->mobile_row), visible);
|
||
- g_signal_handlers_unblock_by_func (self->mobile_switch, mobile_switch_changed_cb, self);
|
||
-}
|
||
-
|
||
-static void
|
||
-nm_device_changed (CcPowerPanel *self)
|
||
-{
|
||
- gtk_widget_set_visible (GTK_WIDGET (self->wifi_row), has_wifi_devices (self->nm_client));
|
||
- gtk_widget_set_visible (GTK_WIDGET (self->mobile_row), has_mobile_devices (self->nm_client));
|
||
-}
|
||
-
|
||
-static void
|
||
-setup_nm_client (CcPowerPanel *self,
|
||
- NMClient *client)
|
||
-{
|
||
- self->nm_client = client;
|
||
-
|
||
- g_signal_connect_object (self->nm_client, "notify",
|
||
- G_CALLBACK (nm_client_state_changed), self, G_CONNECT_SWAPPED);
|
||
- g_signal_connect_object (self->nm_client, "device-added",
|
||
- G_CALLBACK (nm_device_changed), self, G_CONNECT_SWAPPED);
|
||
- g_signal_connect_object (self->nm_client, "device-removed",
|
||
- G_CALLBACK (nm_device_changed), self, G_CONNECT_SWAPPED);
|
||
-
|
||
- nm_client_state_changed (self);
|
||
- nm_device_changed (self);
|
||
-}
|
||
-
|
||
-static void
|
||
-nm_client_ready_cb (GObject *source_object,
|
||
- GAsyncResult *res,
|
||
- gpointer user_data)
|
||
-{
|
||
- CcPowerPanel *self;
|
||
- NMClient *client;
|
||
- g_autoptr(GError) error = NULL;
|
||
-
|
||
- client = nm_client_new_finish (res, &error);
|
||
- if (!client)
|
||
- {
|
||
- if (!g_error_matches (error, G_IO_ERROR, G_IO_ERROR_CANCELLED))
|
||
- {
|
||
- g_warning ("Failed to create NetworkManager client: %s",
|
||
- error->message);
|
||
-
|
||
- self = user_data;
|
||
- gtk_widget_set_sensitive (GTK_WIDGET (self->wifi_row), FALSE);
|
||
- gtk_widget_set_sensitive (GTK_WIDGET (self->mobile_row), FALSE);
|
||
- }
|
||
- return;
|
||
- }
|
||
-
|
||
- self = user_data;
|
||
-
|
||
- /* Setup the client */
|
||
- setup_nm_client (self, client);
|
||
-
|
||
- /* Store the object in the cache too */
|
||
- cc_object_storage_add_object (CC_OBJECT_NMCLIENT, client);
|
||
-}
|
||
-
|
||
-#endif
|
||
-
|
||
static gboolean
|
||
keynav_failed_cb (CcPowerPanel *self, GtkDirectionType direction, GtkWidget *list)
|
||
{
|
||
@@ -1326,14 +1133,6 @@ setup_power_saving (CcPowerPanel *self)
|
||
update_automatic_suspend_label (self);
|
||
}
|
||
|
||
-#ifdef HAVE_NETWORK_MANAGER
|
||
- /* Create and store a NMClient instance if it doesn't exist yet */
|
||
- if (cc_object_storage_has_object (CC_OBJECT_NMCLIENT))
|
||
- setup_nm_client (self, cc_object_storage_get_object (CC_OBJECT_NMCLIENT));
|
||
- else
|
||
- nm_client_new_async (cc_panel_get_cancellable (CC_PANEL (self)), nm_client_ready_cb, self);
|
||
-#endif
|
||
-
|
||
#ifdef HAVE_BLUETOOTH
|
||
self->bt_rfkill = cc_object_storage_create_dbus_proxy_sync (G_BUS_TYPE_SESSION,
|
||
G_DBUS_PROXY_FLAGS_NONE,
|
||
@@ -1854,8 +1653,6 @@ cc_power_panel_class_init (CcPowerPanelClass *klass)
|
||
gtk_widget_class_bind_template_child (widget_class, CcPowerPanel, kbd_brightness_row);
|
||
gtk_widget_class_bind_template_child (widget_class, CcPowerPanel, kbd_brightness_scale);
|
||
gtk_widget_class_bind_template_child (widget_class, CcPowerPanel, level_sizegroup);
|
||
- gtk_widget_class_bind_template_child (widget_class, CcPowerPanel, mobile_row);
|
||
- gtk_widget_class_bind_template_child (widget_class, CcPowerPanel, mobile_switch);
|
||
gtk_widget_class_bind_template_child (widget_class, CcPowerPanel, power_button_row);
|
||
gtk_widget_class_bind_template_child (widget_class, CcPowerPanel, power_profile_listbox);
|
||
gtk_widget_class_bind_template_child (widget_class, CcPowerPanel, power_profile_info_listbox);
|
||
@@ -1870,8 +1667,6 @@ cc_power_panel_class_init (CcPowerPanelClass *klass)
|
||
gtk_widget_class_bind_template_child (widget_class, CcPowerPanel, suspend_on_ac_delay_combo);
|
||
gtk_widget_class_bind_template_child (widget_class, CcPowerPanel, suspend_on_ac_label);
|
||
gtk_widget_class_bind_template_child (widget_class, CcPowerPanel, suspend_on_ac_switch);
|
||
- gtk_widget_class_bind_template_child (widget_class, CcPowerPanel, wifi_row);
|
||
- gtk_widget_class_bind_template_child (widget_class, CcPowerPanel, wifi_switch);
|
||
|
||
gtk_widget_class_bind_template_callback (widget_class, als_switch_changed_cb);
|
||
gtk_widget_class_bind_template_callback (widget_class, automatic_suspend_label_mnemonic_activate_cb);
|
||
@@ -1880,11 +1675,9 @@ cc_power_panel_class_init (CcPowerPanelClass *klass)
|
||
gtk_widget_class_bind_template_callback (widget_class, has_kbd_brightness_cb);
|
||
gtk_widget_class_bind_template_callback (widget_class, blank_screen_row_changed_cb);
|
||
gtk_widget_class_bind_template_callback (widget_class, keynav_failed_cb);
|
||
- 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, automatic_suspend_row_activated_cb);
|
||
- gtk_widget_class_bind_template_callback (widget_class, wifi_switch_changed_cb);
|
||
}
|
||
|
||
static void
|
||
diff --git a/panels/power/cc-power-panel.ui b/panels/power/cc-power-panel.ui
|
||
index bc58e7462..0795f1b70 100644
|
||
--- a/panels/power/cc-power-panel.ui
|
||
+++ b/panels/power/cc-power-panel.ui
|
||
@@ -237,38 +237,6 @@
|
||
</child>
|
||
</object>
|
||
</child>
|
||
- <child>
|
||
- <object class="HdyActionRow" id="wifi_row">
|
||
- <property name="visible">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="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>
|
||
- </object>
|
||
- </child>
|
||
- <child>
|
||
- <object class="HdyActionRow" id="mobile_row">
|
||
- <property name="visible">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="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>
|
||
- </object>
|
||
- </child>
|
||
<child>
|
||
<object class="HdyActionRow" id="bt_row">
|
||
<property name="visible">False</property>
|
||
@@ -337,8 +305,6 @@
|
||
<widget name="dim_screen_row"/>
|
||
<widget name="blank_screen_row"/>
|
||
<widget name="automatic_suspend_row"/>
|
||
- <widget name="wifi_row"/>
|
||
- <widget name="mobile_row"/>
|
||
<widget name="bt_row"/>
|
||
<widget name="power_button_row"/>
|
||
<widget name="battery_percentage_row"/>
|
||
diff --git a/panels/power/meson.build b/panels/power/meson.build
|
||
index af04b98ed..b1380f4e6 100644
|
||
--- a/panels/power/meson.build
|
||
+++ b/panels/power/meson.build
|
||
@@ -47,10 +47,6 @@ deps = common_deps + [
|
||
upower_glib_dep
|
||
]
|
||
|
||
-if host_is_linux
|
||
- deps += network_manager_deps
|
||
-endif
|
||
-
|
||
if host_is_linux_not_s390
|
||
deps += gnome_bluetooth_dep
|
||
endif
|
||
--
|
||
2.32.0
|
||
|
||
|
||
From 55ab3debcc8d39a9f301dcd41a441adc568ed520 Mon Sep 17 00:00:00 2001
|
||
From: Bastien Nocera <hadess@hadess.net>
|
||
Date: Thu, 22 Jul 2021 18:33:41 +0200
|
||
Subject: [PATCH 24/33] power: Remove Bluetooth power switch button
|
||
|
||
See previous commit.
|
||
---
|
||
panels/power/cc-power-panel.c | 91 ----------------------------------
|
||
panels/power/cc-power-panel.ui | 17 -------
|
||
panels/power/meson.build | 4 --
|
||
3 files changed, 112 deletions(-)
|
||
|
||
diff --git a/panels/power/cc-power-panel.c b/panels/power/cc-power-panel.c
|
||
index 97d787b95..1e0a572b3 100644
|
||
--- a/panels/power/cc-power-panel.c
|
||
+++ b/panels/power/cc-power-panel.c
|
||
@@ -72,8 +72,6 @@ struct _CcPowerPanel
|
||
HdyComboRow *blank_screen_row;
|
||
GtkListBoxRow *brightness_row;
|
||
CcBrightnessScale *brightness_scale;
|
||
- GtkListBoxRow *bt_row;
|
||
- GtkSwitch *bt_switch;
|
||
GtkListBox *device_listbox;
|
||
HdyPreferencesGroup *device_section;
|
||
GtkListBoxRow *dim_screen_row;
|
||
@@ -105,9 +103,6 @@ struct _CcPowerPanel
|
||
gboolean has_batteries;
|
||
char *chassis_type;
|
||
|
||
- GDBusProxy *bt_rfkill;
|
||
- GDBusProxy *bt_properties;
|
||
-
|
||
GDBusProxy *iio_proxy;
|
||
guint iio_proxy_watch_id;
|
||
|
||
@@ -138,8 +133,6 @@ cc_power_panel_dispose (GObject *object)
|
||
g_clear_pointer ((GtkWidget **) &self->automatic_suspend_dialog, gtk_widget_destroy);
|
||
g_clear_pointer (&self->devices, g_ptr_array_unref);
|
||
g_clear_object (&self->up_client);
|
||
- g_clear_object (&self->bt_rfkill);
|
||
- g_clear_object (&self->bt_properties);
|
||
g_clear_object (&self->iio_proxy);
|
||
g_clear_object (&self->power_profiles_proxy);
|
||
if (self->iio_proxy_watch_id != 0)
|
||
@@ -659,61 +652,6 @@ set_ac_battery_ui_mode (CcPowerPanel *self)
|
||
}
|
||
}
|
||
|
||
-static void
|
||
-bt_set_powered (CcPowerPanel *self,
|
||
- gboolean powered)
|
||
-{
|
||
- g_dbus_proxy_call (self->bt_properties,
|
||
- "Set",
|
||
- g_variant_new_parsed ("('org.gnome.SettingsDaemon.Rfkill', 'BluetoothAirplaneMode', %v)",
|
||
- g_variant_new_boolean (!powered)),
|
||
- G_DBUS_CALL_FLAGS_NONE,
|
||
- -1,
|
||
- cc_panel_get_cancellable (CC_PANEL (self)),
|
||
- NULL, NULL);
|
||
-}
|
||
-
|
||
-static void
|
||
-bt_switch_changed_cb (CcPowerPanel *self)
|
||
-{
|
||
- gboolean powered;
|
||
-
|
||
- powered = gtk_switch_get_active (self->bt_switch);
|
||
-
|
||
- g_debug ("Setting bt power %s", powered ? "on" : "off");
|
||
-
|
||
- bt_set_powered (self, powered);
|
||
-}
|
||
-
|
||
-static void
|
||
-bt_powered_state_changed (CcPowerPanel *self)
|
||
-{
|
||
- gboolean powered, has_airplane_mode;
|
||
- g_autoptr(GVariant) v1 = NULL;
|
||
- g_autoptr(GVariant) v2 = NULL;
|
||
-
|
||
- v1 = g_dbus_proxy_get_cached_property (self->bt_rfkill, "BluetoothHasAirplaneMode");
|
||
- has_airplane_mode = g_variant_get_boolean (v1);
|
||
-
|
||
- if (!has_airplane_mode)
|
||
- {
|
||
- g_debug ("BluetoothHasAirplaneMode is false, hiding Bluetooth power row");
|
||
- gtk_widget_hide (GTK_WIDGET (self->bt_row));
|
||
- return;
|
||
- }
|
||
-
|
||
- v2 = g_dbus_proxy_get_cached_property (self->bt_rfkill, "BluetoothAirplaneMode");
|
||
- powered = !g_variant_get_boolean (v2);
|
||
-
|
||
- g_debug ("bt powered state changed to %s", powered ? "on" : "off");
|
||
-
|
||
- gtk_widget_show (GTK_WIDGET (self->bt_row));
|
||
-
|
||
- g_signal_handlers_block_by_func (self->bt_switch, bt_switch_changed_cb, self);
|
||
- gtk_switch_set_active (self->bt_switch, powered);
|
||
- g_signal_handlers_unblock_by_func (self->bt_switch, bt_switch_changed_cb, self);
|
||
-}
|
||
-
|
||
static gboolean
|
||
keynav_failed_cb (CcPowerPanel *self, GtkDirectionType direction, GtkWidget *list)
|
||
{
|
||
@@ -1132,32 +1070,6 @@ setup_power_saving (CcPowerPanel *self)
|
||
set_ac_battery_ui_mode (self);
|
||
update_automatic_suspend_label (self);
|
||
}
|
||
-
|
||
-#ifdef HAVE_BLUETOOTH
|
||
- self->bt_rfkill = cc_object_storage_create_dbus_proxy_sync (G_BUS_TYPE_SESSION,
|
||
- G_DBUS_PROXY_FLAGS_NONE,
|
||
- "org.gnome.SettingsDaemon.Rfkill",
|
||
- "/org/gnome/SettingsDaemon/Rfkill",
|
||
- "org.gnome.SettingsDaemon.Rfkill",
|
||
- NULL,
|
||
- NULL);
|
||
-
|
||
- if (self->bt_rfkill)
|
||
- {
|
||
- self->bt_properties = cc_object_storage_create_dbus_proxy_sync (G_BUS_TYPE_SESSION,
|
||
- G_DBUS_PROXY_FLAGS_NONE,
|
||
- "org.gnome.SettingsDaemon.Rfkill",
|
||
- "/org/gnome/SettingsDaemon/Rfkill",
|
||
- "org.freedesktop.DBus.Properties",
|
||
- NULL,
|
||
- NULL);
|
||
- }
|
||
-
|
||
- g_signal_connect_object (self->bt_rfkill, "g-properties-changed",
|
||
- G_CALLBACK (bt_powered_state_changed), self, G_CONNECT_SWAPPED);
|
||
-
|
||
- bt_powered_state_changed (self);
|
||
-#endif
|
||
}
|
||
|
||
static const char *
|
||
@@ -1643,8 +1555,6 @@ cc_power_panel_class_init (CcPowerPanelClass *klass)
|
||
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, device_listbox);
|
||
gtk_widget_class_bind_template_child (widget_class, CcPowerPanel, device_section);
|
||
gtk_widget_class_bind_template_child (widget_class, CcPowerPanel, dim_screen_row);
|
||
@@ -1670,7 +1580,6 @@ cc_power_panel_class_init (CcPowerPanelClass *klass)
|
||
|
||
gtk_widget_class_bind_template_callback (widget_class, als_switch_changed_cb);
|
||
gtk_widget_class_bind_template_callback (widget_class, automatic_suspend_label_mnemonic_activate_cb);
|
||
- gtk_widget_class_bind_template_callback (widget_class, bt_switch_changed_cb);
|
||
gtk_widget_class_bind_template_callback (widget_class, has_brightness_cb);
|
||
gtk_widget_class_bind_template_callback (widget_class, has_kbd_brightness_cb);
|
||
gtk_widget_class_bind_template_callback (widget_class, blank_screen_row_changed_cb);
|
||
diff --git a/panels/power/cc-power-panel.ui b/panels/power/cc-power-panel.ui
|
||
index 0795f1b70..b5e12d2f5 100644
|
||
--- a/panels/power/cc-power-panel.ui
|
||
+++ b/panels/power/cc-power-panel.ui
|
||
@@ -237,22 +237,6 @@
|
||
</child>
|
||
</object>
|
||
</child>
|
||
- <child>
|
||
- <object class="HdyActionRow" id="bt_row">
|
||
- <property name="visible">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="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>
|
||
- </object>
|
||
- </child>
|
||
</object>
|
||
</child>
|
||
<child>
|
||
@@ -305,7 +289,6 @@
|
||
<widget name="dim_screen_row"/>
|
||
<widget name="blank_screen_row"/>
|
||
<widget name="automatic_suspend_row"/>
|
||
- <widget name="bt_row"/>
|
||
<widget name="power_button_row"/>
|
||
<widget name="battery_percentage_row"/>
|
||
</widgets>
|
||
diff --git a/panels/power/meson.build b/panels/power/meson.build
|
||
index b1380f4e6..9066d24bd 100644
|
||
--- a/panels/power/meson.build
|
||
+++ b/panels/power/meson.build
|
||
@@ -47,10 +47,6 @@ deps = common_deps + [
|
||
upower_glib_dep
|
||
]
|
||
|
||
-if host_is_linux_not_s390
|
||
- deps += gnome_bluetooth_dep
|
||
-endif
|
||
-
|
||
panels_libs += static_library(
|
||
cappletname,
|
||
sources: sources,
|
||
--
|
||
2.32.0
|
||
|
||
|
||
From d6e3755dbfd15f2aaf2a1850e63e7d46f6ae37c7 Mon Sep 17 00:00:00 2001
|
||
From: Bastien Nocera <hadess@hadess.net>
|
||
Date: Fri, 23 Jul 2021 16:09:54 +0200
|
||
Subject: [PATCH 25/33] power: Tweak labels in "Power Saving Options" section
|
||
|
||
To match the latest mockups.
|
||
|
||
The lack of subtitles for most of the items in that section made the
|
||
section look pretty bizarre.
|
||
---
|
||
panels/power/cc-power-panel.ui | 9 ++++++---
|
||
1 file changed, 6 insertions(+), 3 deletions(-)
|
||
|
||
diff --git a/panels/power/cc-power-panel.ui b/panels/power/cc-power-panel.ui
|
||
index b5e12d2f5..29503b7e4 100644
|
||
--- a/panels/power/cc-power-panel.ui
|
||
+++ b/panels/power/cc-power-panel.ui
|
||
@@ -139,7 +139,7 @@
|
||
<child>
|
||
<object class="HdyPreferencesGroup" id="power_saving_section">
|
||
<property name="visible">True</property>
|
||
- <property name="title" translatable="yes">Power Saving</property>
|
||
+ <property name="title" translatable="yes">Power Saving Options</property>
|
||
<child>
|
||
<object class="HdyActionRow" id="brightness_row">
|
||
<property name="visible">True</property>
|
||
@@ -188,7 +188,8 @@
|
||
<child>
|
||
<object class="HdyActionRow" id="dim_screen_row">
|
||
<property name="visible">True</property>
|
||
- <property name="title" translatable="yes">Dim Screen When Inactive</property>
|
||
+ <property name="title" translatable="yes">Dim Screen</property>
|
||
+ <property name="subtitle" translatable="yes">Reduces the screen brightness when the computer is inactive.</property>
|
||
<property name="activatable_widget">dim_screen_switch</property>
|
||
<child>
|
||
<object class="GtkSwitch" id="dim_screen_switch">
|
||
@@ -201,7 +202,8 @@
|
||
<child>
|
||
<object class="HdyComboRow" id="blank_screen_row">
|
||
<property name="visible">True</property>
|
||
- <property name="title" translatable="yes">_Blank Screen</property>
|
||
+ <property name="title" translatable="yes">Screen _Blank</property>
|
||
+ <property name="subtitle" translatable="yes">Turns the screen off after a period of inactivity.</property>
|
||
<property name="use_underline">True</property>
|
||
<signal name="notify::selected-index" handler="blank_screen_row_changed_cb" object="CcPowerPanel" swapped="yes"/>
|
||
</object>
|
||
@@ -225,6 +227,7 @@
|
||
<object class="HdyActionRow" id="automatic_suspend_row">
|
||
<property name="visible">False</property>
|
||
<property name="title" translatable="yes">_Automatic Suspend</property>
|
||
+ <property name="subtitle" translatable="yes">Pauses the computer after a period of inactivity.</property>
|
||
<property name="use_underline">True</property>
|
||
<property name="activatable">True</property>
|
||
<signal name="activated" handler="automatic_suspend_row_activated_cb" swapped="yes"/>
|
||
--
|
||
2.32.0
|
||
|
||
|
||
From e9e1fdaacc9941129beca7c15adc8b89789fcb50 Mon Sep 17 00:00:00 2001
|
||
From: Bastien Nocera <hadess@hadess.net>
|
||
Date: Mon, 26 Jul 2021 11:32:23 +0200
|
||
Subject: [PATCH 26/33] power: Remove Brightness scales
|
||
|
||
From https://gitlab.gnome.org/GNOME/gnome-control-center/-/merge_requests/1020#note_1211728
|
||
"
|
||
They are out of place - fine-grained control over brightness isn't what the
|
||
power settings are for. As a result, they confuse the settings overall.
|
||
|
||
In both cases we have alternative controls, through keyboard hot keys or
|
||
through the shell's screen brightness slider.
|
||
"
|
||
---
|
||
panels/power/cc-power-panel.c | 87 +++++++++++++++++++++-------------
|
||
panels/power/cc-power-panel.ui | 36 --------------
|
||
2 files changed, 54 insertions(+), 69 deletions(-)
|
||
|
||
diff --git a/panels/power/cc-power-panel.c b/panels/power/cc-power-panel.c
|
||
index 1e0a572b3..04987ff98 100644
|
||
--- a/panels/power/cc-power-panel.c
|
||
+++ b/panels/power/cc-power-panel.c
|
||
@@ -30,7 +30,6 @@
|
||
#include "shell/cc-object-storage.h"
|
||
#include "list-box-helper.h"
|
||
#include "cc-battery-row.h"
|
||
-#include "cc-brightness-scale.h"
|
||
#include "cc-power-profile-row.h"
|
||
#include "cc-power-profile-info-row.h"
|
||
#include "cc-power-panel.h"
|
||
@@ -70,15 +69,11 @@ struct _CcPowerPanel
|
||
GtkSizeGroup *battery_row_sizegroup;
|
||
HdyPreferencesGroup *battery_section;
|
||
HdyComboRow *blank_screen_row;
|
||
- GtkListBoxRow *brightness_row;
|
||
- CcBrightnessScale *brightness_scale;
|
||
GtkListBox *device_listbox;
|
||
HdyPreferencesGroup *device_section;
|
||
GtkListBoxRow *dim_screen_row;
|
||
GtkSwitch *dim_screen_switch;
|
||
HdyPreferencesGroup *general_section;
|
||
- GtkListBoxRow *kbd_brightness_row;
|
||
- CcBrightnessScale *kbd_brightness_scale;
|
||
GtkSizeGroup *level_sizegroup;
|
||
HdyComboRow *power_button_row;
|
||
GtkListBox *power_profile_listbox;
|
||
@@ -105,6 +100,7 @@ struct _CcPowerPanel
|
||
|
||
GDBusProxy *iio_proxy;
|
||
guint iio_proxy_watch_id;
|
||
+ gboolean has_brightness;
|
||
|
||
GDBusProxy *power_profiles_proxy;
|
||
guint power_profiles_prop_id;
|
||
@@ -469,11 +465,8 @@ static void
|
||
als_enabled_state_changed (CcPowerPanel *self)
|
||
{
|
||
gboolean enabled;
|
||
- gboolean has_brightness = FALSE;
|
||
gboolean visible = FALSE;
|
||
|
||
- has_brightness = cc_brightness_scale_get_has_brightness (self->brightness_scale);
|
||
-
|
||
if (self->iio_proxy != NULL)
|
||
{
|
||
g_autoptr(GVariant) v = g_dbus_proxy_get_cached_property (self->iio_proxy, "HasAmbientLight");
|
||
@@ -485,7 +478,7 @@ als_enabled_state_changed (CcPowerPanel *self)
|
||
g_debug ("ALS enabled: %s", enabled ? "on" : "off");
|
||
g_signal_handlers_block_by_func (self->als_switch, als_switch_changed_cb, self);
|
||
gtk_switch_set_active (self->als_switch, enabled);
|
||
- gtk_widget_set_visible (GTK_WIDGET (self->als_row), visible && has_brightness);
|
||
+ gtk_widget_set_visible (GTK_WIDGET (self->als_row), visible && self->has_brightness);
|
||
g_signal_handlers_unblock_by_func (self->als_switch, als_switch_changed_cb, self);
|
||
}
|
||
|
||
@@ -933,29 +926,34 @@ can_suspend_or_hibernate (CcPowerPanel *self,
|
||
}
|
||
|
||
static void
|
||
-has_brightness_cb (CcPowerPanel *self)
|
||
+got_brightness_cb (GObject *source_object,
|
||
+ GAsyncResult *res,
|
||
+ gpointer user_data)
|
||
{
|
||
- gboolean has_brightness;
|
||
+ g_autoptr(GVariant) result = NULL;
|
||
+ g_autoptr(GError) error = NULL;
|
||
+ gint32 brightness = -1.0;
|
||
+ CcPowerPanel *self;
|
||
|
||
- has_brightness = cc_brightness_scale_get_has_brightness (self->brightness_scale);
|
||
+ result = g_dbus_connection_call_finish (G_DBUS_CONNECTION (source_object), res, &error);
|
||
+ if (!result)
|
||
+ {
|
||
+ g_debug ("Failed to get Brightness property: %s", error->message);
|
||
+ if (g_error_matches (error, G_IO_ERROR, G_IO_ERROR_CANCELLED))
|
||
+ return;
|
||
+ }
|
||
+ else
|
||
+ {
|
||
+ g_autoptr(GVariant) v = NULL;
|
||
+ g_variant_get (result, "(v)", &v);
|
||
+ brightness = v ? g_variant_get_int32 (v) : -1.0;
|
||
+ }
|
||
|
||
- gtk_widget_set_visible (GTK_WIDGET (self->brightness_row), has_brightness);
|
||
- gtk_widget_set_visible (GTK_WIDGET (self->dim_screen_row), has_brightness);
|
||
+ self = user_data;
|
||
+ self->has_brightness = brightness >= 0.0;
|
||
|
||
+ gtk_widget_set_visible (GTK_WIDGET (self->dim_screen_row), self->has_brightness);
|
||
als_enabled_state_changed (self);
|
||
-
|
||
-}
|
||
-
|
||
-static void
|
||
-has_kbd_brightness_cb (CcPowerPanel *self,
|
||
- GParamSpec *pspec,
|
||
- GObject *object)
|
||
-{
|
||
- gboolean has_brightness;
|
||
-
|
||
- has_brightness = cc_brightness_scale_get_has_brightness (self->kbd_brightness_scale);
|
||
-
|
||
- gtk_widget_set_visible (GTK_WIDGET (self->kbd_brightness_row), has_brightness);
|
||
}
|
||
|
||
static void
|
||
@@ -992,6 +990,8 @@ populate_blank_screen_row (HdyComboRow *combo_row)
|
||
static void
|
||
setup_power_saving (CcPowerPanel *self)
|
||
{
|
||
+ g_autoptr(GDBusConnection) connection = NULL;
|
||
+ g_autoptr(GError) error = NULL;
|
||
int value;
|
||
|
||
/* ambient light sensor */
|
||
@@ -1005,6 +1005,33 @@ setup_power_saving (CcPowerPanel *self)
|
||
g_signal_connect_object (self->gsd_settings, "changed",
|
||
G_CALLBACK (als_enabled_setting_changed), self, G_CONNECT_SWAPPED);
|
||
|
||
+ connection = g_bus_get_sync (G_BUS_TYPE_SESSION,
|
||
+ cc_panel_get_cancellable (CC_PANEL (self)),
|
||
+ &error);
|
||
+ if (connection)
|
||
+ {
|
||
+ g_dbus_connection_call (connection,
|
||
+ "org.gnome.SettingsDaemon.Power",
|
||
+ "/org/gnome/SettingsDaemon/Power",
|
||
+ "org.freedesktop.DBus.Properties",
|
||
+ "Get",
|
||
+ g_variant_new ("(ss)",
|
||
+ "org.gnome.SettingsDaemon.Power.Screen",
|
||
+ "Brightness"),
|
||
+ NULL,
|
||
+ G_DBUS_CALL_FLAGS_NONE,
|
||
+ -1,
|
||
+ cc_panel_get_cancellable (CC_PANEL (self)),
|
||
+ got_brightness_cb,
|
||
+ self);
|
||
+ }
|
||
+ else
|
||
+ {
|
||
+ if (!g_error_matches (error, G_IO_ERROR, G_IO_ERROR_CANCELLED))
|
||
+ g_warning ("session bus not available: %s", error->message);
|
||
+ }
|
||
+
|
||
+
|
||
g_settings_bind (self->gsd_settings, "idle-dim",
|
||
self->dim_screen_switch, "active",
|
||
G_SETTINGS_BIND_DEFAULT);
|
||
@@ -1553,15 +1580,11 @@ cc_power_panel_class_init (CcPowerPanelClass *klass)
|
||
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, 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, device_listbox);
|
||
gtk_widget_class_bind_template_child (widget_class, CcPowerPanel, device_section);
|
||
gtk_widget_class_bind_template_child (widget_class, CcPowerPanel, dim_screen_row);
|
||
gtk_widget_class_bind_template_child (widget_class, CcPowerPanel, dim_screen_switch);
|
||
gtk_widget_class_bind_template_child (widget_class, CcPowerPanel, general_section);
|
||
- gtk_widget_class_bind_template_child (widget_class, CcPowerPanel, kbd_brightness_row);
|
||
- gtk_widget_class_bind_template_child (widget_class, CcPowerPanel, kbd_brightness_scale);
|
||
gtk_widget_class_bind_template_child (widget_class, CcPowerPanel, level_sizegroup);
|
||
gtk_widget_class_bind_template_child (widget_class, CcPowerPanel, power_button_row);
|
||
gtk_widget_class_bind_template_child (widget_class, CcPowerPanel, power_profile_listbox);
|
||
@@ -1580,8 +1603,6 @@ cc_power_panel_class_init (CcPowerPanelClass *klass)
|
||
|
||
gtk_widget_class_bind_template_callback (widget_class, als_switch_changed_cb);
|
||
gtk_widget_class_bind_template_callback (widget_class, automatic_suspend_label_mnemonic_activate_cb);
|
||
- gtk_widget_class_bind_template_callback (widget_class, has_brightness_cb);
|
||
- gtk_widget_class_bind_template_callback (widget_class, has_kbd_brightness_cb);
|
||
gtk_widget_class_bind_template_callback (widget_class, blank_screen_row_changed_cb);
|
||
gtk_widget_class_bind_template_callback (widget_class, keynav_failed_cb);
|
||
gtk_widget_class_bind_template_callback (widget_class, power_button_row_changed_cb);
|
||
diff --git a/panels/power/cc-power-panel.ui b/panels/power/cc-power-panel.ui
|
||
index 29503b7e4..a8fafba21 100644
|
||
--- a/panels/power/cc-power-panel.ui
|
||
+++ b/panels/power/cc-power-panel.ui
|
||
@@ -140,22 +140,6 @@
|
||
<object class="HdyPreferencesGroup" id="power_saving_section">
|
||
<property name="visible">True</property>
|
||
<property name="title" translatable="yes">Power Saving Options</property>
|
||
- <child>
|
||
- <object class="HdyActionRow" id="brightness_row">
|
||
- <property name="visible">True</property>
|
||
- <property name="title" translatable="yes">_Screen Brightness</property>
|
||
- <property name="use_underline">True</property>
|
||
- <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>
|
||
<child>
|
||
<object class="HdyActionRow" id="als_row">
|
||
<property name="visible">True</property>
|
||
@@ -169,22 +153,6 @@
|
||
</child>
|
||
</object>
|
||
</child>
|
||
- <child>
|
||
- <object class="HdyActionRow" id="kbd_brightness_row">
|
||
- <property name="visible">True</property>
|
||
- <property name="title" translatable="yes">_Keyboard Brightness</property>
|
||
- <property name="use_underline">True</property>
|
||
- <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>
|
||
<child>
|
||
<object class="HdyActionRow" id="dim_screen_row">
|
||
<property name="visible">True</property>
|
||
@@ -279,16 +247,12 @@
|
||
<object class="GtkSizeGroup" id="level_sizegroup">
|
||
<property name="mode">horizontal</property>
|
||
<widgets>
|
||
- <widget name="brightness_scale"/>
|
||
- <widget name="kbd_brightness_scale"/>
|
||
</widgets>
|
||
</object>
|
||
<object class="GtkSizeGroup" id="row_sizegroup">
|
||
<property name="mode">vertical</property>
|
||
<widgets>
|
||
- <widget name="brightness_row"/>
|
||
<widget name="als_row"/>
|
||
- <widget name="kbd_brightness_row"/>
|
||
<widget name="dim_screen_row"/>
|
||
<widget name="blank_screen_row"/>
|
||
<widget name="automatic_suspend_row"/>
|
||
--
|
||
2.32.0
|
||
|
||
|
||
From 3167196af8133997ead275a1b0c9c3ddffe0f4ea Mon Sep 17 00:00:00 2001
|
||
From: Bastien Nocera <hadess@hadess.net>
|
||
Date: Mon, 26 Jul 2021 11:34:41 +0200
|
||
Subject: [PATCH 27/33] power: Remove unused CcBrightnessScale
|
||
|
||
---
|
||
panels/power/cc-brightness-scale.c | 281 -----------------------------
|
||
panels/power/cc-brightness-scale.h | 38 ----
|
||
panels/power/meson.build | 5 -
|
||
3 files changed, 324 deletions(-)
|
||
delete mode 100644 panels/power/cc-brightness-scale.c
|
||
delete mode 100644 panels/power/cc-brightness-scale.h
|
||
|
||
diff --git a/panels/power/cc-brightness-scale.c b/panels/power/cc-brightness-scale.c
|
||
deleted file mode 100644
|
||
index 2df1ab5ed..000000000
|
||
--- a/panels/power/cc-brightness-scale.c
|
||
+++ /dev/null
|
||
@@ -1,281 +0,0 @@
|
||
-/* cc-brightness-scale.c
|
||
- *
|
||
- * Copyright (C) 2010 Red Hat, Inc
|
||
- * Copyright (C) 2008 William Jon McCann <jmccann@redhat.com>
|
||
- * Copyright (C) 2010,2015 Richard Hughes <richard@hughsie.com>
|
||
- * Copyright (C) 2020 System76, Inc.
|
||
- *
|
||
- * This program is free software; you can redistribute it and/or modify
|
||
- * it under the terms of the GNU General Public License as published by
|
||
- * the Free Software Foundation; either version 2 of the License, or
|
||
- * (at your option) any later version.
|
||
- *
|
||
- * This program is distributed in the hope that it will be useful,
|
||
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||
- * GNU General Public License for more details.
|
||
- *
|
||
- * You should have received a copy of the GNU General Public License
|
||
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
|
||
- *
|
||
- * SPDX-License-Identifier: GPL-2.0-or-later
|
||
- */
|
||
-
|
||
-#include "cc-brightness-scale.h"
|
||
-#include "shell/cc-object-storage.h"
|
||
-
|
||
-struct _CcBrightnessScale {
|
||
- GtkScale parent_instance;
|
||
-
|
||
- GCancellable *cancellable;
|
||
- BrightnessDevice device;
|
||
- gboolean has_brightness;
|
||
- GDBusProxy *proxy;
|
||
- gboolean setting_brightness;
|
||
-};
|
||
-
|
||
-enum
|
||
-{
|
||
- PROP_0,
|
||
- PROP_HAS_BRIGHTNESS,
|
||
- PROP_DEVICE,
|
||
-};
|
||
-
|
||
-G_DEFINE_TYPE (CcBrightnessScale, cc_brightness_scale, GTK_TYPE_SCALE)
|
||
-
|
||
-static void
|
||
-set_brightness_cb (GObject *source_object, GAsyncResult *res, gpointer user_data)
|
||
-{
|
||
- g_autoptr(GError) error = NULL;
|
||
- g_autoptr(GVariant) result = NULL;
|
||
- GDBusProxy *proxy = G_DBUS_PROXY (source_object);
|
||
-
|
||
- result = g_dbus_proxy_call_finish (proxy, res, &error);
|
||
- if (result == NULL)
|
||
- {
|
||
- if (!g_error_matches (error, G_IO_ERROR, G_IO_ERROR_CANCELLED))
|
||
- g_printerr ("Error setting brightness: %s\n", error->message);
|
||
- return;
|
||
- }
|
||
-
|
||
- CcBrightnessScale *self = CC_BRIGHTNESS_SCALE (user_data);
|
||
-
|
||
- /* not setting, so pay attention to changed signals */
|
||
- self->setting_brightness = FALSE;
|
||
-}
|
||
-
|
||
-static void
|
||
-brightness_slider_value_changed_cb (CcBrightnessScale *self, GtkRange *range)
|
||
-{
|
||
- guint percentage;
|
||
- g_autoptr(GVariant) variant = NULL;
|
||
-
|
||
- percentage = (guint) gtk_range_get_value (range);
|
||
-
|
||
- /* do not loop */
|
||
- if (self->setting_brightness)
|
||
- return;
|
||
-
|
||
- self->setting_brightness = TRUE;
|
||
-
|
||
- if (self->device == BRIGHTNESS_DEVICE_KBD)
|
||
- variant = g_variant_new_parsed ("('org.gnome.SettingsDaemon.Power.Keyboard',"
|
||
- "'Brightness', %v)",
|
||
- g_variant_new_int32 (percentage));
|
||
- else
|
||
- variant = g_variant_new_parsed ("('org.gnome.SettingsDaemon.Power.Screen',"
|
||
- "'Brightness', %v)",
|
||
- g_variant_new_int32 (percentage));
|
||
-
|
||
- /* push this to g-s-d */
|
||
- g_dbus_proxy_call (self->proxy,
|
||
- "org.freedesktop.DBus.Properties.Set",
|
||
- g_variant_ref_sink (variant),
|
||
- G_DBUS_CALL_FLAGS_NONE,
|
||
- -1,
|
||
- self->cancellable,
|
||
- set_brightness_cb,
|
||
- self);
|
||
-}
|
||
-
|
||
-static void
|
||
-sync_brightness (CcBrightnessScale *self)
|
||
-{
|
||
- g_autoptr(GVariant) result = NULL;
|
||
- gint brightness;
|
||
- GtkRange *range;
|
||
-
|
||
- result = g_dbus_proxy_get_cached_property (self->proxy, "Brightness");
|
||
-
|
||
- if (result)
|
||
- {
|
||
- /* set the slider */
|
||
- brightness = g_variant_get_int32 (result);
|
||
- self->has_brightness = brightness >= 0.0;
|
||
- }
|
||
- else
|
||
- {
|
||
- self->has_brightness = FALSE;
|
||
- }
|
||
-
|
||
- g_object_notify (G_OBJECT (self), "has-brightness");
|
||
-
|
||
- if (self->has_brightness)
|
||
- {
|
||
- range = GTK_RANGE (self);
|
||
- self->setting_brightness = TRUE;
|
||
- gtk_range_set_value (range, brightness);
|
||
- self->setting_brightness = FALSE;
|
||
- }
|
||
-}
|
||
-
|
||
-static void
|
||
-got_proxy_cb (GObject *source_object, GAsyncResult *res, gpointer user_data)
|
||
-{
|
||
- g_autoptr(GError) error = NULL;
|
||
- CcBrightnessScale *self;
|
||
- GDBusProxy *proxy;
|
||
-
|
||
- proxy = cc_object_storage_create_dbus_proxy_finish (res, &error);
|
||
- if (proxy == NULL)
|
||
- {
|
||
- if (!g_error_matches (error, G_IO_ERROR, G_IO_ERROR_CANCELLED))
|
||
- g_printerr ("Error creating proxy: %s\n", error->message);
|
||
- return;
|
||
- }
|
||
-
|
||
- self = CC_BRIGHTNESS_SCALE (user_data);
|
||
- self->proxy = proxy;
|
||
-
|
||
- g_signal_connect_object (proxy, "g-properties-changed",
|
||
- G_CALLBACK (sync_brightness), self, G_CONNECT_SWAPPED);
|
||
-
|
||
- sync_brightness (self);
|
||
-}
|
||
-
|
||
-static void
|
||
-cc_brightness_scale_get_property (GObject *object,
|
||
- guint prop_id,
|
||
- GValue *value,
|
||
- GParamSpec *pspec)
|
||
-{
|
||
- CcBrightnessScale *self;
|
||
-
|
||
- self = CC_BRIGHTNESS_SCALE (object);
|
||
-
|
||
- switch (prop_id) {
|
||
- case PROP_HAS_BRIGHTNESS:
|
||
- g_value_set_boolean (value, self->has_brightness);
|
||
- break;
|
||
- default:
|
||
- G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
|
||
- break;
|
||
- }
|
||
-}
|
||
-
|
||
-static void
|
||
-cc_brightness_scale_set_property (GObject *object,
|
||
- guint prop_id,
|
||
- const GValue *value,
|
||
- GParamSpec *pspec)
|
||
-{
|
||
- CcBrightnessScale *self;
|
||
-
|
||
- self = CC_BRIGHTNESS_SCALE (object);
|
||
-
|
||
- switch (prop_id) {
|
||
- case PROP_DEVICE:
|
||
- self->device = g_value_get_enum (value);
|
||
- break;
|
||
- default:
|
||
- G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
|
||
- break;
|
||
- }
|
||
-}
|
||
-
|
||
-static void
|
||
-cc_brightness_scale_constructed (GObject *object)
|
||
-{
|
||
- CcBrightnessScale *self;
|
||
- const gchar *interface;
|
||
-
|
||
- G_OBJECT_CLASS (cc_brightness_scale_parent_class)->constructed (object);
|
||
-
|
||
- self = CC_BRIGHTNESS_SCALE (object);
|
||
-
|
||
- self->cancellable = g_cancellable_new();
|
||
-
|
||
- g_signal_connect_object (GTK_SCALE (self), "value-changed",
|
||
- G_CALLBACK (brightness_slider_value_changed_cb), self, G_CONNECT_SWAPPED);
|
||
-
|
||
- if (self->device == BRIGHTNESS_DEVICE_KBD)
|
||
- interface = "org.gnome.SettingsDaemon.Power.Keyboard";
|
||
- else
|
||
- interface = "org.gnome.SettingsDaemon.Power.Screen";
|
||
-
|
||
- cc_object_storage_create_dbus_proxy (G_BUS_TYPE_SESSION,
|
||
- G_DBUS_PROXY_FLAGS_NONE,
|
||
- "org.gnome.SettingsDaemon.Power",
|
||
- "/org/gnome/SettingsDaemon/Power",
|
||
- interface,
|
||
- self->cancellable,
|
||
- got_proxy_cb,
|
||
- self);
|
||
-
|
||
- gtk_range_set_range (GTK_RANGE (self), 0, 100);
|
||
- gtk_range_set_increments (GTK_RANGE (self), 1, 10);
|
||
- gtk_range_set_round_digits (GTK_RANGE (self), 0);
|
||
- gtk_scale_set_draw_value (GTK_SCALE (self), FALSE);
|
||
-}
|
||
-
|
||
-static void
|
||
-cc_brightness_scale_finalize (GObject *object)
|
||
-{
|
||
- CcBrightnessScale *self = CC_BRIGHTNESS_SCALE (object);
|
||
-
|
||
- g_cancellable_cancel (self->cancellable);
|
||
-
|
||
- G_OBJECT_CLASS (cc_brightness_scale_parent_class)->finalize (object);
|
||
-}
|
||
-
|
||
-void
|
||
-cc_brightness_scale_class_init (CcBrightnessScaleClass *klass)
|
||
-{
|
||
- GObjectClass *object_class = G_OBJECT_CLASS (klass);
|
||
-
|
||
- object_class->get_property = cc_brightness_scale_get_property;
|
||
- object_class->set_property = cc_brightness_scale_set_property;
|
||
- object_class->constructed = cc_brightness_scale_constructed;
|
||
- object_class->finalize = cc_brightness_scale_finalize;
|
||
-
|
||
- g_object_class_install_property (object_class,
|
||
- PROP_DEVICE,
|
||
- g_param_spec_enum ("device",
|
||
- "device",
|
||
- "device",
|
||
- brightness_device_get_type(),
|
||
- BRIGHTNESS_DEVICE_SCREEN,
|
||
- G_PARAM_CONSTRUCT_ONLY | G_PARAM_WRITABLE));
|
||
-
|
||
- g_object_class_install_property (object_class,
|
||
- PROP_HAS_BRIGHTNESS,
|
||
- g_param_spec_boolean ("has-brightness",
|
||
- "has brightness",
|
||
- "has brightness",
|
||
- FALSE,
|
||
- G_PARAM_READABLE));
|
||
-}
|
||
-
|
||
-static void
|
||
-cc_brightness_scale_init (CcBrightnessScale *self)
|
||
-{
|
||
-}
|
||
-
|
||
-
|
||
-gboolean
|
||
-cc_brightness_scale_get_has_brightness (CcBrightnessScale *self)
|
||
-{
|
||
- g_return_val_if_fail (CC_IS_BRIGHTNESS_SCALE (self), FALSE);
|
||
-
|
||
- return self->has_brightness;
|
||
-}
|
||
diff --git a/panels/power/cc-brightness-scale.h b/panels/power/cc-brightness-scale.h
|
||
deleted file mode 100644
|
||
index d566dff77..000000000
|
||
--- a/panels/power/cc-brightness-scale.h
|
||
+++ /dev/null
|
||
@@ -1,38 +0,0 @@
|
||
-/* cc-brightness-scale.h
|
||
- *
|
||
- * Copyright (C) 2020 System76, Inc.
|
||
- *
|
||
- * This program is free software; you can redistribute it and/or modify
|
||
- * it under the terms of the GNU General Public License as published by
|
||
- * the Free Software Foundation; either version 2 of the License, or
|
||
- * (at your option) any later version.
|
||
- *
|
||
- * This program is distributed in the hope that it will be useful,
|
||
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||
- * GNU General Public License for more details.
|
||
- *
|
||
- * You should have received a copy of the GNU General Public License
|
||
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
|
||
- *
|
||
- * SPDX-License-Identifier: GPL-2.0-or-later
|
||
- */
|
||
-
|
||
-#pragma once
|
||
-
|
||
-#include <gtk/gtk.h>
|
||
-#include "cc-brightness-scale-types.h"
|
||
-
|
||
-G_BEGIN_DECLS
|
||
-
|
||
-typedef enum {
|
||
- BRIGHTNESS_DEVICE_SCREEN,
|
||
- BRIGHTNESS_DEVICE_KBD,
|
||
-} BrightnessDevice;
|
||
-
|
||
-#define CC_TYPE_BRIGHTNESS_SCALE (cc_brightness_scale_get_type())
|
||
-G_DECLARE_FINAL_TYPE (CcBrightnessScale, cc_brightness_scale, CC, BRIGHTNESS_SCALE, GtkBox)
|
||
-
|
||
-gboolean cc_brightness_scale_get_has_brightness (CcBrightnessScale *scale);
|
||
-
|
||
-G_END_DECLS
|
||
diff --git a/panels/power/meson.build b/panels/power/meson.build
|
||
index 9066d24bd..0e3ea1d56 100644
|
||
--- a/panels/power/meson.build
|
||
+++ b/panels/power/meson.build
|
||
@@ -19,16 +19,11 @@ i18n.merge_file(
|
||
|
||
sources = files(
|
||
'cc-battery-row.c',
|
||
- 'cc-brightness-scale.c',
|
||
'cc-power-panel.c',
|
||
'cc-power-profile-row.c',
|
||
'cc-power-profile-info-row.c'
|
||
)
|
||
|
||
-sources += gnome.mkenums_simple(
|
||
- 'cc-brightness-scale-types',
|
||
- sources: ['cc-brightness-scale.h'])
|
||
-
|
||
resource_data = files(
|
||
'cc-battery-row.ui',
|
||
'cc-power-panel.ui'
|
||
--
|
||
2.32.0
|
||
|
||
|
||
From 04a299a3582eeae777052b2315bf9b2801f4865c Mon Sep 17 00:00:00 2001
|
||
From: Bastien Nocera <hadess@hadess.net>
|
||
Date: Mon, 26 Jul 2021 11:38:38 +0200
|
||
Subject: [PATCH 28/33] power: Update and add subtitle to automatic brightness
|
||
row
|
||
|
||
As per:
|
||
https://gitlab.gnome.org/GNOME/gnome-control-center/-/merge_requests/1020#note_1210702
|
||
---
|
||
panels/power/cc-power-panel.ui | 3 ++-
|
||
1 file changed, 2 insertions(+), 1 deletion(-)
|
||
|
||
diff --git a/panels/power/cc-power-panel.ui b/panels/power/cc-power-panel.ui
|
||
index a8fafba21..9880f6b7e 100644
|
||
--- a/panels/power/cc-power-panel.ui
|
||
+++ b/panels/power/cc-power-panel.ui
|
||
@@ -143,7 +143,8 @@
|
||
<child>
|
||
<object class="HdyActionRow" id="als_row">
|
||
<property name="visible">True</property>
|
||
- <property name="title" translatable="yes">Automatic Brightness</property>
|
||
+ <property name="title" translatable="yes">Automatic Screen Brightness</property>
|
||
+ <property name="subtitle" translatable="yes">Screen brightness adjusts to the surrounding light.</property>
|
||
<child>
|
||
<object class="GtkSwitch" id="als_switch">
|
||
<property name="visible">True</property>
|
||
--
|
||
2.32.0
|
||
|
||
|
||
From 52dc3f91abb83deac0b66611fd9ed6f96a78cb5f Mon Sep 17 00:00:00 2001
|
||
From: Bastien Nocera <hadess@hadess.net>
|
||
Date: Tue, 3 Aug 2021 11:19:56 +0200
|
||
Subject: [PATCH 29/33] power: Dim the info box icon
|
||
|
||
This brings less focus to the icon and more to the text.
|
||
|
||
See https://gitlab.gnome.org/GNOME/gnome-control-center/-/issues/1421
|
||
---
|
||
panels/power/cc-power-profile-info-row.ui | 2 +-
|
||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||
|
||
diff --git a/panels/power/cc-power-profile-info-row.ui b/panels/power/cc-power-profile-info-row.ui
|
||
index bc49a24ac..6f411c688 100644
|
||
--- a/panels/power/cc-power-profile-info-row.ui
|
||
+++ b/panels/power/cc-power-profile-info-row.ui
|
||
@@ -21,7 +21,7 @@
|
||
<property name="icon-name">info-symbolic</property>
|
||
<property name="icon-size">5</property>
|
||
<style>
|
||
- <class name="power-profile"/>
|
||
+ <class name="dim-label"/>
|
||
</style>
|
||
</object>
|
||
</child>
|
||
--
|
||
2.32.0
|
||
|
||
|
||
From 254a9bfa8ac8be8403d0258742f0c3f8c8db9633 Mon Sep 17 00:00:00 2001
|
||
From: Bastien Nocera <hadess@hadess.net>
|
||
Date: Wed, 4 Aug 2021 11:26:33 +0200
|
||
Subject: [PATCH 30/33] power: Remove icons from power profiles
|
||
|
||
They were originally included was to educate users about what the icons
|
||
mean, for when they appeared in the top bar. However, since we no
|
||
longer plan on showing the status icon in the top bar, it's not so
|
||
important that people learn the meaning of the icons.
|
||
|
||
See https://gitlab.gnome.org/GNOME/gnome-control-center/-/issues/1421
|
||
---
|
||
panels/power/cc-power-profile-row.c | 13 +------------
|
||
panels/power/cc-power-profile-row.ui | 15 +--------------
|
||
2 files changed, 2 insertions(+), 26 deletions(-)
|
||
|
||
diff --git a/panels/power/cc-power-profile-row.c b/panels/power/cc-power-profile-row.c
|
||
index ee66bdfd0..a8458c366 100644
|
||
--- a/panels/power/cc-power-profile-row.c
|
||
+++ b/panels/power/cc-power-profile-row.c
|
||
@@ -35,7 +35,6 @@ struct _CcPowerProfileRow
|
||
GtkListBoxRow parent_instance;
|
||
|
||
GtkRadioButton *button;
|
||
- GtkImage *icon_image;
|
||
GtkLabel *subtitle_label;
|
||
GtkLabel *title_label;
|
||
|
||
@@ -106,7 +105,6 @@ cc_power_profile_row_class_init (CcPowerProfileRowClass *klass)
|
||
gtk_widget_class_set_template_from_resource (widget_class, "/org/gnome/control-center/power/cc-power-profile-row.ui");
|
||
|
||
gtk_widget_class_bind_template_child (widget_class, CcPowerProfileRow, button);
|
||
- gtk_widget_class_bind_template_child (widget_class, CcPowerProfileRow, icon_image);
|
||
gtk_widget_class_bind_template_child (widget_class, CcPowerProfileRow, subtitle_label);
|
||
gtk_widget_class_bind_template_child (widget_class, CcPowerProfileRow, title_label);
|
||
|
||
@@ -175,7 +173,7 @@ CcPowerProfileRow *
|
||
cc_power_profile_row_new (CcPowerProfile power_profile)
|
||
{
|
||
CcPowerProfileRow *self;
|
||
- const char *text, *subtext, *icon_name, *class_name;
|
||
+ const char *text, *subtext;
|
||
|
||
self = g_object_new (CC_TYPE_POWER_PROFILE_ROW, NULL);
|
||
|
||
@@ -185,20 +183,14 @@ cc_power_profile_row_new (CcPowerProfile power_profile)
|
||
case CC_POWER_PROFILE_PERFORMANCE:
|
||
text = _("Performance");
|
||
subtext = _("High performance and power usage.");
|
||
- icon_name = "power-profile-performance-symbolic";
|
||
- class_name = "performance";
|
||
break;
|
||
case CC_POWER_PROFILE_BALANCED:
|
||
text = _("Balanced Power");
|
||
subtext = _("Standard performance and power usage.");
|
||
- icon_name = "power-profile-balanced-symbolic";
|
||
- class_name = NULL;
|
||
break;
|
||
case CC_POWER_PROFILE_POWER_SAVER:
|
||
text = _("Power Saver");
|
||
subtext = _("Reduced performance and power usage.");
|
||
- icon_name = "power-profile-power-saver-symbolic";
|
||
- class_name = "low-power";
|
||
break;
|
||
default:
|
||
g_assert_not_reached ();
|
||
@@ -206,9 +198,6 @@ cc_power_profile_row_new (CcPowerProfile power_profile)
|
||
|
||
gtk_label_set_markup (self->title_label, text);
|
||
gtk_label_set_markup (self->subtitle_label, subtext);
|
||
- gtk_image_set_from_icon_name (self->icon_image, icon_name, GTK_ICON_SIZE_MENU);
|
||
- if (class_name != NULL)
|
||
- gtk_style_context_add_class (gtk_widget_get_style_context (GTK_WIDGET (self->icon_image)), class_name);
|
||
|
||
return self;
|
||
}
|
||
diff --git a/panels/power/cc-power-profile-row.ui b/panels/power/cc-power-profile-row.ui
|
||
index 64516edf3..1391093ba 100644
|
||
--- a/panels/power/cc-power-profile-row.ui
|
||
+++ b/panels/power/cc-power-profile-row.ui
|
||
@@ -28,19 +28,6 @@
|
||
<property name="height">2</property>
|
||
</packing>
|
||
</child>
|
||
- <child>
|
||
- <object class="GtkImage" id="icon_image">
|
||
- <property name="visible">True</property>
|
||
- <property name="margin-end">6</property>
|
||
- <style>
|
||
- <class name="power-profile"/>
|
||
- </style>
|
||
- </object>
|
||
- <packing>
|
||
- <property name="left_attach">1</property>
|
||
- <property name="top_attach">0</property>
|
||
- </packing>
|
||
- </child>
|
||
<child>
|
||
<object class="GtkLabel" id="title_label">
|
||
<property name="visible">True</property>
|
||
@@ -53,7 +40,7 @@
|
||
<property name="margin-end">6</property>
|
||
</object>
|
||
<packing>
|
||
- <property name="left_attach">2</property>
|
||
+ <property name="left_attach">1</property>
|
||
<property name="top_attach">0</property>
|
||
</packing>
|
||
</child>
|
||
--
|
||
2.32.0
|
||
|
||
|
||
From 96efcd2835a46b8009b5f6524a2d37089f40dd44 Mon Sep 17 00:00:00 2001
|
||
From: Allan Day <allanpday@gmail.com>
|
||
Date: Wed, 4 Aug 2021 11:28:14 +0200
|
||
Subject: [PATCH 31/33] power: Align power profile info boxes with profiles
|
||
text
|
||
|
||
See https://gitlab.gnome.org/GNOME/gnome-control-center/-/issues/1421
|
||
---
|
||
panels/power/cc-power-profile-info-row.ui | 4 ++--
|
||
1 file changed, 2 insertions(+), 2 deletions(-)
|
||
|
||
diff --git a/panels/power/cc-power-profile-info-row.ui b/panels/power/cc-power-profile-info-row.ui
|
||
index 6f411c688..34807c38c 100644
|
||
--- a/panels/power/cc-power-profile-info-row.ui
|
||
+++ b/panels/power/cc-power-profile-info-row.ui
|
||
@@ -8,11 +8,11 @@
|
||
<object class="GtkBox">
|
||
<property name="visible">True</property>
|
||
<property name="orientation">horizontal</property>
|
||
- <property name="margin-start">8</property>
|
||
+ <property name="margin-start">4</property>
|
||
<property name="margin-end">8</property>
|
||
<property name="margin-top">8</property>
|
||
<property name="margin-bottom">8</property>
|
||
- <property name="spacing">8</property>
|
||
+ <property name="spacing">4</property>
|
||
<child>
|
||
<object class="GtkImage" id="icon_image">
|
||
<property name="visible">True</property>
|
||
--
|
||
2.32.0
|
||
|
||
|
||
From 618e269230a71ae3ac84a35daaf15ad3db38f459 Mon Sep 17 00:00:00 2001
|
||
From: Bastien Nocera <hadess@hadess.net>
|
||
Date: Thu, 5 Aug 2021 15:24:58 +0200
|
||
Subject: [PATCH 32/33] power: Change "Balanced" power profile label
|
||
|
||
https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/4530#note_1241985
|
||
---
|
||
panels/power/cc-power-profile-row.c | 2 +-
|
||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||
|
||
diff --git a/panels/power/cc-power-profile-row.c b/panels/power/cc-power-profile-row.c
|
||
index a8458c366..9d7f1fe6b 100644
|
||
--- a/panels/power/cc-power-profile-row.c
|
||
+++ b/panels/power/cc-power-profile-row.c
|
||
@@ -185,7 +185,7 @@ cc_power_profile_row_new (CcPowerProfile power_profile)
|
||
subtext = _("High performance and power usage.");
|
||
break;
|
||
case CC_POWER_PROFILE_BALANCED:
|
||
- text = _("Balanced Power");
|
||
+ text = _("Balanced");
|
||
subtext = _("Standard performance and power usage.");
|
||
break;
|
||
case CC_POWER_PROFILE_POWER_SAVER:
|
||
--
|
||
2.32.0
|
||
|
||
|
||
From 98ed744dcefd8c4d8398b1489d0c583a4d5787d9 Mon Sep 17 00:00:00 2001
|
||
From: Bastien Nocera <hadess@hadess.net>
|
||
Date: Thu, 5 Aug 2021 15:24:58 +0200
|
||
Subject: [PATCH 33/33] power: Update power profile labels
|
||
|
||
Use "Balanced" instead of "Balanced Power", and make sure to add a
|
||
context for all the profiles for translators.
|
||
|
||
https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/4530#note_1243075
|
||
---
|
||
panels/power/cc-power-profile-row.c | 6 +++---
|
||
1 file changed, 3 insertions(+), 3 deletions(-)
|
||
|
||
diff --git a/panels/power/cc-power-profile-row.c b/panels/power/cc-power-profile-row.c
|
||
index 9d7f1fe6b..f290caa10 100644
|
||
--- a/panels/power/cc-power-profile-row.c
|
||
+++ b/panels/power/cc-power-profile-row.c
|
||
@@ -181,15 +181,15 @@ cc_power_profile_row_new (CcPowerProfile power_profile)
|
||
switch (self->power_profile)
|
||
{
|
||
case CC_POWER_PROFILE_PERFORMANCE:
|
||
- text = _("Performance");
|
||
+ text = C_("Power profile", "Performance");
|
||
subtext = _("High performance and power usage.");
|
||
break;
|
||
case CC_POWER_PROFILE_BALANCED:
|
||
- text = _("Balanced");
|
||
+ text = C_("Power profile", "Balanced");
|
||
subtext = _("Standard performance and power usage.");
|
||
break;
|
||
case CC_POWER_PROFILE_POWER_SAVER:
|
||
- text = _("Power Saver");
|
||
+ text = C_("Power profile", "Power Saver");
|
||
subtext = _("Reduced performance and power usage.");
|
||
break;
|
||
default:
|
||
--
|
||
2.32.0
|
||
|