From 68eb1498f41fedec2d45a14b52d45e4272d9147c Mon Sep 17 00:00:00 2001 From: Automeris naranja Date: Tue, 16 Jan 2024 21:13:42 -0300 Subject: [PATCH] mouse: Add link to the Power panel This will make easier to find the mouse batteries information. Closes https://gitlab.gnome.org/GNOME/gnome-control-center/-/issues/2010 --- panels/mouse/cc-mouse-panel.c | 20 ++++++++++++++++++++ panels/mouse/cc-mouse-panel.h | 1 + panels/mouse/cc-mouse-panel.ui | 24 ++++++++++++++++++++++++ 3 files changed, 45 insertions(+) diff --git a/panels/mouse/cc-mouse-panel.c b/panels/mouse/cc-mouse-panel.c index 5da21381a8..60076898d8 100644 --- a/panels/mouse/cc-mouse-panel.c +++ b/panels/mouse/cc-mouse-panel.c @@ -47,6 +47,7 @@ struct _CcMousePanel GtkBox *primary_button_box; GtkToggleButton *primary_button_left; GtkToggleButton *primary_button_right; + GtkWidget *power_settings_row; AdwPreferencesPage*preferences; CcSplitRow *two_finger_push_row; GtkStack *title_stack; @@ -490,6 +491,23 @@ cc_mouse_panel_init (CcMousePanel *self) setup_dialog (self); } +static gboolean +on_power_settings_row_clicked_cb (CcMousePanel *self) +{ + g_autoptr(GError) error = NULL; + CcShell *shell; + CcPanel *panel; + + g_assert (CC_IS_MOUSE_PANEL (self)); + + panel = (CcPanel *)gtk_widget_get_ancestor (GTK_WIDGET (self), CC_TYPE_PANEL); + shell = cc_panel_get_shell (CC_PANEL (panel)); + if (!cc_shell_set_active_panel_from_id (shell, "power", NULL, &error)) + g_warning ("Failed to activate 'power' panel: %s", error->message); + + return TRUE; +} + static void cc_mouse_panel_class_init (CcMousePanelClass *klass) { @@ -515,6 +533,7 @@ cc_mouse_panel_class_init (CcMousePanelClass *klass) gtk_widget_class_bind_template_child (widget_class, CcMousePanel, primary_button_box); gtk_widget_class_bind_template_child (widget_class, CcMousePanel, primary_button_left); gtk_widget_class_bind_template_child (widget_class, CcMousePanel, primary_button_right); + gtk_widget_class_bind_template_child (widget_class, CcMousePanel, power_settings_row); gtk_widget_class_bind_template_child (widget_class, CcMousePanel, preferences); gtk_widget_class_bind_template_child (widget_class, CcMousePanel, title_stack); gtk_widget_class_bind_template_child (widget_class, CcMousePanel, tap_to_click_row); @@ -529,6 +548,7 @@ cc_mouse_panel_class_init (CcMousePanelClass *klass) gtk_widget_class_bind_template_child (widget_class, CcMousePanel, touchpad_typing_row); gtk_widget_class_bind_template_child (widget_class, CcMousePanel, two_finger_push_row); + gtk_widget_class_bind_template_callback (widget_class, on_power_settings_row_clicked_cb); gtk_widget_class_bind_template_callback (widget_class, on_touchpad_scroll_method_changed_cb); gtk_widget_class_bind_template_callback (widget_class, test_button_clicked_cb); } diff --git a/panels/mouse/cc-mouse-panel.h b/panels/mouse/cc-mouse-panel.h index ae83e8eea8..baa60d57b1 100644 --- a/panels/mouse/cc-mouse-panel.h +++ b/panels/mouse/cc-mouse-panel.h @@ -21,6 +21,7 @@ #pragma once #include +#include G_BEGIN_DECLS diff --git a/panels/mouse/cc-mouse-panel.ui b/panels/mouse/cc-mouse-panel.ui index 578d847032..3a315c20d3 100644 --- a/panels/mouse/cc-mouse-panel.ui +++ b/panels/mouse/cc-mouse-panel.ui @@ -176,6 +176,29 @@ + + + + + Po_wer Settings + True + " + + + + + Details about mouse batteries can be viewed in the Power settings panel + 9 + 0.0 + True + + + + + + @@ -313,3 +336,4 @@ + -- GitLab