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. "
This commit is contained in:
parent
fd53f569f1
commit
bb30b04ed6
2 changed files with 54 additions and 69 deletions
|
@ -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;
|
||||
|
||||
has_brightness = cc_brightness_scale_get_has_brightness (self->brightness_scale);
|
||||
|
||||
gtk_widget_set_visible (GTK_WIDGET (self->brightness_row), has_brightness);
|
||||
gtk_widget_set_visible (GTK_WIDGET (self->dim_screen_row), has_brightness);
|
||||
|
||||
als_enabled_state_changed (self);
|
||||
g_autoptr(GVariant) result = NULL;
|
||||
g_autoptr(GError) error = NULL;
|
||||
gint32 brightness = -1.0;
|
||||
CcPowerPanel *self;
|
||||
|
||||
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;
|
||||
}
|
||||
|
||||
static void
|
||||
has_kbd_brightness_cb (CcPowerPanel *self,
|
||||
GParamSpec *pspec,
|
||||
GObject *object)
|
||||
{
|
||||
gboolean has_brightness;
|
||||
self = user_data;
|
||||
self->has_brightness = brightness >= 0.0;
|
||||
|
||||
has_brightness = cc_brightness_scale_get_has_brightness (self->kbd_brightness_scale);
|
||||
|
||||
gtk_widget_set_visible (GTK_WIDGET (self->kbd_brightness_row), has_brightness);
|
||||
gtk_widget_set_visible (GTK_WIDGET (self->dim_screen_row), self->has_brightness);
|
||||
als_enabled_state_changed (self);
|
||||
}
|
||||
|
||||
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);
|
||||
|
|
|
@ -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"/>
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue