diff options
author | Robert Ancell <robert.ancell@canonical.com> | 2020-11-25 11:19:12 +1300 |
---|---|---|
committer | Robert Ancell <robert.ancell@gmail.com> | 2020-12-13 20:57:04 +0000 |
commit | b539a2d94f613b2199e5186abded00dd526525a0 (patch) | |
tree | 0958b7b53f49918c4576660c183302c03136477b /panels | |
parent | 1d11ba552d50a628798a5d28fd4716652d71af50 (diff) | |
download | gnome-control-center-b539a2d94f613b2199e5186abded00dd526525a0.tar.gz |
power: Move power profile UI into GtkBuilder file
Diffstat (limited to 'panels')
-rw-r--r-- | panels/power/cc-power-panel.c | 69 | ||||
-rw-r--r-- | panels/power/cc-power-panel.ui | 45 |
2 files changed, 67 insertions, 47 deletions
diff --git a/panels/power/cc-power-panel.c b/panels/power/cc-power-panel.c index 71484d5ff..20508c12b 100644 --- a/panels/power/cc-power-panel.c +++ b/panels/power/cc-power-panel.c @@ -76,6 +76,9 @@ struct _CcPowerPanel GtkScrolledWindow *main_scroll; HdyClamp *main_box; GtkListStore *power_button_liststore; + GtkLabel *power_profile_heading; + GtkListBox *power_profile_listbox; + GtkBox *power_profile_section; GtkBox *power_vbox; GtkSizeGroup *row_sizegroup; GtkComboBox *suspend_on_battery_delay_combo; @@ -1782,10 +1785,8 @@ power_profile_button_toggled_cb (CcPowerProfileRow *row, } static void -add_power_profiles_section (CcPowerPanel *self) +setup_power_profiles (CcPowerPanel *self) { - GtkWidget *widget, *box, *label, *row; - g_autofree gchar *s = NULL; g_autoptr(GDBusConnection) connection = NULL; g_autoptr(GVariant) variant = NULL; g_autoptr(GVariant) props = NULL; @@ -1841,48 +1842,9 @@ add_power_profiles_section (CcPowerPanel *self) return; } - s = g_strdup_printf ("<b>%s</b>", _("Power Mode")); - label = gtk_label_new (s); - gtk_widget_show (label); - gtk_label_set_ellipsize (GTK_LABEL (label), PANGO_ELLIPSIZE_END); - gtk_label_set_xalign (GTK_LABEL (label), 0.0); - gtk_label_set_use_markup (GTK_LABEL (label), TRUE); - gtk_widget_set_halign (label, GTK_ALIGN_START); - gtk_box_pack_start (self->power_vbox, label, FALSE, TRUE, 0); + gtk_widget_show (GTK_WIDGET (self->power_profile_section)); - label = gtk_label_new (_("Affects system performance and power usage.")); - gtk_widget_show (label); - gtk_label_set_xalign (GTK_LABEL (label), 0.0); - gtk_widget_set_margin_bottom (label, 6); - gtk_box_pack_start (self->power_vbox, label, FALSE, TRUE, 0); - - widget = gtk_list_box_new (); - gtk_widget_show (widget); - self->boxes_reverse = g_list_prepend (self->boxes_reverse, widget); - g_signal_connect_object (widget, "keynav-failed", G_CALLBACK (keynav_failed_cb), self, G_CONNECT_SWAPPED); - gtk_list_box_set_selection_mode (GTK_LIST_BOX (widget), GTK_SELECTION_NONE); - gtk_list_box_set_sort_func (GTK_LIST_BOX (widget), - perf_profile_list_box_sort, - NULL, NULL); - g_signal_connect_object (G_OBJECT (widget), "row-activated", - G_CALLBACK (power_profiles_row_activated_cb), NULL, 0); - gtk_list_box_set_header_func (GTK_LIST_BOX (widget), - cc_list_box_update_header_func, - NULL, NULL); - - atk_object_add_relationship (ATK_OBJECT (gtk_widget_get_accessible (label)), - ATK_RELATION_LABEL_FOR, - ATK_OBJECT (gtk_widget_get_accessible (widget))); - atk_object_add_relationship (ATK_OBJECT (gtk_widget_get_accessible (widget)), - ATK_RELATION_LABELLED_BY, - ATK_OBJECT (gtk_widget_get_accessible (label))); - - box = gtk_frame_new (NULL); - gtk_widget_show (box); - gtk_frame_set_shadow_type (GTK_FRAME (box), GTK_SHADOW_IN); - gtk_widget_set_margin_bottom (box, 32); - gtk_container_add (GTK_CONTAINER (box), widget); - gtk_box_pack_start (self->power_vbox, box, FALSE, TRUE, 0); + 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"); @@ -1897,6 +1859,7 @@ add_power_profiles_section (CcPowerPanel *self) const char *name; GtkRadioButton *button; CcPowerProfile profile; + GtkWidget *row; profile_variant = g_variant_get_child_value (profiles, i); if (!profile_variant || @@ -1917,7 +1880,7 @@ add_power_profiles_section (CcPowerPanel *self) 0); self->power_profiles_row[profile] = row; gtk_widget_show (row); - gtk_container_add (GTK_CONTAINER (widget), row); + gtk_container_add (GTK_CONTAINER (self->power_profile_listbox), row); gtk_size_group_add_widget (self->row_sizegroup, row); /* Connect radio button to group */ @@ -2099,6 +2062,9 @@ cc_power_panel_class_init (CcPowerPanelClass *klass) 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, power_button_liststore); + 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_vbox); 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); @@ -2110,6 +2076,7 @@ cc_power_panel_class_init (CcPowerPanelClass *klass) gtk_widget_class_bind_template_child (widget_class, CcPowerPanel, suspend_on_ac_switch); gtk_widget_class_bind_template_callback (widget_class, keynav_failed_cb); + gtk_widget_class_bind_template_callback (widget_class, power_profiles_row_activated_cb); } static void @@ -2117,6 +2084,7 @@ 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; guint i; g_resources_register (cc_power_get_resource ()); @@ -2153,7 +2121,16 @@ cc_power_panel_init (CcPowerPanel *self) gtk_list_box_set_sort_func (self->device_listbox, (GtkListBoxSortFunc)battery_sort_func, NULL, NULL); - add_power_profiles_section (self); + 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); + add_power_saving_section (self); add_general_section (self); diff --git a/panels/power/cc-power-panel.ui b/panels/power/cc-power-panel.ui index a2c89458b..cb42152bd 100644 --- a/panels/power/cc-power-panel.ui +++ b/panels/power/cc-power-panel.ui @@ -202,6 +202,50 @@ </child> </object> </child> + <child> + <object class="GtkBox" 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> + <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> + <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="device_heading" type="labelled-by"/> + </accessibility> + </object> + </child> + </object> + </child> + </object> + </child> </object> </child> </object> @@ -398,4 +442,3 @@ </child> </object> </interface> - |