[evolution-data-server] I#383 - Add option to respect Power Saver mode
- From: Milan Crha <mcrha src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [evolution-data-server] I#383 - Add option to respect Power Saver mode
- Date: Fri, 3 Jun 2022 06:00:10 +0000 (UTC)
commit a1c75888d975b0ee7a96d313a85d2d0980fc5f33
Author: Milan Crha <mcrha redhat com>
Date: Fri Jun 3 07:58:45 2022 +0200
I#383 - Add option to respect Power Saver mode
Closes https://gitlab.gnome.org/GNOME/evolution-data-server/-/issues/383
data/org.gnome.evolution-data-server.gschema.xml.in | 5 +++++
src/addressbook/libedata-book/e-book-meta-backend.c | 18 +++++++++++++-----
src/calendar/libedata-cal/e-cal-meta-backend.c | 18 +++++++++++++-----
src/camel/providers/imapx/camel-imapx-server.c | 16 ++++++++++++----
4 files changed, 43 insertions(+), 14 deletions(-)
---
diff --git a/data/org.gnome.evolution-data-server.gschema.xml.in
b/data/org.gnome.evolution-data-server.gschema.xml.in
index bc630332a..b66c019d5 100644
--- a/data/org.gnome.evolution-data-server.gschema.xml.in
+++ b/data/org.gnome.evolution-data-server.gschema.xml.in
@@ -86,5 +86,10 @@
<summary>An OAuth2 client secret to use to connect to Yahoo! servers, instead of the one provided
during build time</summary>
<description>User-specified OAuth2 client secret for Yahoo! servers. Empty string means to use the one
provided during build time. Change of this requires restart.</description>
</key>
+ <key name="limit-operations-in-power-saver-mode" type="b">
+ <default>false</default>
+ <summary>Whether to limit operations in Power Saver mode</summary>
+ <description>When set to “true”, possibly expensive operations required to refresh
books/calendars/mail accounts/... are skipped when the machine is in the Power Saver mode.</description>
+ </key>
</schema>
</schemalist>
diff --git a/src/addressbook/libedata-book/e-book-meta-backend.c
b/src/addressbook/libedata-book/e-book-meta-backend.c
index 6c674abbd..350d4cfd7 100644
--- a/src/addressbook/libedata-book/e-book-meta-backend.c
+++ b/src/addressbook/libedata-book/e-book-meta-backend.c
@@ -132,12 +132,20 @@ static gboolean
ebmb_is_power_saver_enabled (void)
{
#ifdef HAVE_GPOWERPROFILEMONITOR
- GPowerProfileMonitor *power_monitor;
- gboolean enabled;
+ GSettings *settings;
+ gboolean enabled = FALSE;
- power_monitor = g_power_profile_monitor_dup_default ();
- enabled = power_monitor && g_power_profile_monitor_get_power_saver_enabled (power_monitor);
- g_clear_object (&power_monitor);
+ settings = g_settings_new ("org.gnome.evolution-data-server");
+
+ if (g_settings_get_boolean (settings, "limit-operations-in-power-saver-mode")) {
+ GPowerProfileMonitor *power_monitor;
+
+ power_monitor = g_power_profile_monitor_dup_default ();
+ enabled = power_monitor && g_power_profile_monitor_get_power_saver_enabled (power_monitor);
+ g_clear_object (&power_monitor);
+ }
+
+ g_clear_object (&settings);
return enabled;
#else
diff --git a/src/calendar/libedata-cal/e-cal-meta-backend.c b/src/calendar/libedata-cal/e-cal-meta-backend.c
index 7e6c39067..4f595eae9 100644
--- a/src/calendar/libedata-cal/e-cal-meta-backend.c
+++ b/src/calendar/libedata-cal/e-cal-meta-backend.c
@@ -146,12 +146,20 @@ static gboolean
ecmb_is_power_saver_enabled (void)
{
#ifdef HAVE_GPOWERPROFILEMONITOR
- GPowerProfileMonitor *power_monitor;
- gboolean enabled;
+ GSettings *settings;
+ gboolean enabled = FALSE;
- power_monitor = g_power_profile_monitor_dup_default ();
- enabled = power_monitor && g_power_profile_monitor_get_power_saver_enabled (power_monitor);
- g_clear_object (&power_monitor);
+ settings = g_settings_new ("org.gnome.evolution-data-server");
+
+ if (g_settings_get_boolean (settings, "limit-operations-in-power-saver-mode")) {
+ GPowerProfileMonitor *power_monitor;
+
+ power_monitor = g_power_profile_monitor_dup_default ();
+ enabled = power_monitor && g_power_profile_monitor_get_power_saver_enabled (power_monitor);
+ g_clear_object (&power_monitor);
+ }
+
+ g_clear_object (&settings);
return enabled;
#else
diff --git a/src/camel/providers/imapx/camel-imapx-server.c b/src/camel/providers/imapx/camel-imapx-server.c
index 74f947fec..1eeff8ddb 100644
--- a/src/camel/providers/imapx/camel-imapx-server.c
+++ b/src/camel/providers/imapx/camel-imapx-server.c
@@ -5571,11 +5571,19 @@ camel_imapx_server_skip_old_flags_update (CamelStore *store)
#ifdef HAVE_GPOWERPROFILEMONITOR
if (!skip_old_flags_update) {
- GPowerProfileMonitor *power_monitor;
+ GSettings *eds_settings;
- power_monitor = g_power_profile_monitor_dup_default ();
- skip_old_flags_update = power_monitor && g_power_profile_monitor_get_power_saver_enabled
(power_monitor);
- g_clear_object (&power_monitor);
+ eds_settings = g_settings_new ("org.gnome.evolution-data-server");
+
+ if (g_settings_get_boolean (eds_settings, "limit-operations-in-power-saver-mode")) {
+ GPowerProfileMonitor *power_monitor;
+
+ power_monitor = g_power_profile_monitor_dup_default ();
+ skip_old_flags_update = power_monitor &&
g_power_profile_monitor_get_power_saver_enabled (power_monitor);
+ g_clear_object (&power_monitor);
+ }
+
+ g_clear_object (&eds_settings);
}
#endif
g_clear_object (&network_monitor);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]