mirror of
https://gitlab.gnome.org/GNOME/glib.git
synced 2025-02-03 01:36:17 +01:00
gpowerprofilemonitorportal: Set property value by default
When first creating the monitor, correctly set its property value to the value from the portal, rather than waiting for the portal value to change to set it. Signed-off-by: Philip Withnall <pwithnall@endlessos.org> Fixes: #2481
This commit is contained in:
parent
a37b9d8652
commit
d051ef1611
@ -108,6 +108,7 @@ g_power_profile_monitor_portal_initable_init (GInitable *initable,
|
|||||||
GPowerProfileMonitorPortal *ppm = G_POWER_PROFILE_MONITOR_PORTAL (initable);
|
GPowerProfileMonitorPortal *ppm = G_POWER_PROFILE_MONITOR_PORTAL (initable);
|
||||||
GDBusProxy *proxy;
|
GDBusProxy *proxy;
|
||||||
gchar *name_owner;
|
gchar *name_owner;
|
||||||
|
GVariant *power_saver_enabled_v = NULL;
|
||||||
|
|
||||||
if (!glib_should_use_portal ())
|
if (!glib_should_use_portal ())
|
||||||
{
|
{
|
||||||
@ -143,6 +144,12 @@ g_power_profile_monitor_portal_initable_init (GInitable *initable,
|
|||||||
ppm->signal_id = g_signal_connect (proxy, "g-properties-changed",
|
ppm->signal_id = g_signal_connect (proxy, "g-properties-changed",
|
||||||
G_CALLBACK (proxy_properties_changed), ppm);
|
G_CALLBACK (proxy_properties_changed), ppm);
|
||||||
|
|
||||||
|
power_saver_enabled_v = g_dbus_proxy_get_cached_property (proxy, "power-saver-enabled");
|
||||||
|
if (power_saver_enabled_v != NULL &&
|
||||||
|
g_variant_is_of_type (power_saver_enabled_v, G_VARIANT_TYPE_BOOLEAN))
|
||||||
|
ppm->power_saver_enabled = g_variant_get_boolean (power_saver_enabled_v);
|
||||||
|
g_clear_pointer (&power_saver_enabled_v, g_variant_unref);
|
||||||
|
|
||||||
ppm->proxy = g_steal_pointer (&proxy);
|
ppm->proxy = g_steal_pointer (&proxy);
|
||||||
|
|
||||||
return TRUE;
|
return TRUE;
|
||||||
|
@ -28,6 +28,7 @@ try:
|
|||||||
import dbusmock
|
import dbusmock
|
||||||
from gi.repository import GLib
|
from gi.repository import GLib
|
||||||
from gi.repository import Gio
|
from gi.repository import Gio
|
||||||
|
from gi.repository import GObject
|
||||||
|
|
||||||
dbus.mainloop.glib.DBusGMainLoop(set_as_default=True)
|
dbus.mainloop.glib.DBusGMainLoop(set_as_default=True)
|
||||||
|
|
||||||
@ -116,6 +117,17 @@ try:
|
|||||||
self.dbus_props.Set('net.hadess.PowerProfiles', 'ActiveProfile', dbus.String('balanced', variant_level=1))
|
self.dbus_props.Set('net.hadess.PowerProfiles', 'ActiveProfile', dbus.String('balanced', variant_level=1))
|
||||||
self.assertEventually(lambda: self.power_saver_enabled == False, "power-saver didn't become disabled", 10)
|
self.assertEventually(lambda: self.power_saver_enabled == False, "power-saver didn't become disabled", 10)
|
||||||
|
|
||||||
|
def test_power_profile_power_saver_enabled_portal_default(self):
|
||||||
|
'''power-saver-enabled property default value'''
|
||||||
|
|
||||||
|
self.dbus_props.Set('net.hadess.PowerProfiles', 'ActiveProfile', dbus.String('power-saver', variant_level=1))
|
||||||
|
|
||||||
|
# Create a new power profile monitor and check its property value is
|
||||||
|
# correct by default.
|
||||||
|
new_power_profile_monitor = GObject.new(GObject.type_from_name('GPowerProfileMonitorPortal'))
|
||||||
|
new_power_profile_monitor.init()
|
||||||
|
self.assertTrue(new_power_profile_monitor.get_power_saver_enabled())
|
||||||
|
|
||||||
except ImportError as e:
|
except ImportError as e:
|
||||||
@unittest.skip("Cannot import %s" % e.name)
|
@unittest.skip("Cannot import %s" % e.name)
|
||||||
class TestPowerProfileMonitorPortal(unittest.TestCase):
|
class TestPowerProfileMonitorPortal(unittest.TestCase):
|
||||||
|
Loading…
Reference in New Issue
Block a user