[gnome-builder] gsettings: make downloads over metered connections configurable
- From: Christian Hergert <chergert src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-builder] gsettings: make downloads over metered connections configurable
- Date: Tue, 25 Apr 2017 03:29:48 +0000 (UTC)
commit 197e48a0cf268aaa966b3bd12eeb989ae5ea5d0e
Author: Christian Hergert <chergert redhat com>
Date: Mon Apr 24 20:28:01 2017 -0700
gsettings: make downloads over metered connections configurable
Some people may always be on metered connections, or specifically want to
download updates while transiently on a metered connection. This allows
the user to override the setting and do that.
In some ways, I wish we would provide UI flow when the problem exists, but
this is a stop-gap until we think about how we'd even go about doing that.
I suspect it's more effort than it's worth.
https://bugzilla.gnome.org/show_bug.cgi?id=781450
data/gsettings/org.gnome.builder.build.gschema.xml | 5 +++++
libide/buildsystem/ide-build-stage-transfer.c | 15 ++++++++++-----
libide/preferences/ide-preferences-builtin.c | 3 +++
3 files changed, 18 insertions(+), 5 deletions(-)
---
diff --git a/data/gsettings/org.gnome.builder.build.gschema.xml
b/data/gsettings/org.gnome.builder.build.gschema.xml
index 0a7ce7f..07dc061 100644
--- a/data/gsettings/org.gnome.builder.build.gschema.xml
+++ b/data/gsettings/org.gnome.builder.build.gschema.xml
@@ -6,5 +6,10 @@
<summary>Build Parallelism</summary>
<description>Number of workers to use when performing builds. -1 for sensible default. 0 for number of
CPU.</description>
</key>
+ <key name="allow-network-when-metered" type="b">
+ <default>false</default>
+ <summary>Allow network when metered</summary>
+ <description>Enable automated transfers upon building such as SDK downloads and dependencies when
connection is metered.</description>
+ </key>
</schema>
</schemalist>
diff --git a/libide/buildsystem/ide-build-stage-transfer.c b/libide/buildsystem/ide-build-stage-transfer.c
index 5722aa0..98b3660 100644
--- a/libide/buildsystem/ide-build-stage-transfer.c
+++ b/libide/buildsystem/ide-build-stage-transfer.c
@@ -98,11 +98,16 @@ ide_build_stage_transfer_execute_async (IdeBuildStage *stage,
if (g_network_monitor_get_network_metered (monitor))
{
- g_task_return_new_error (task,
- IDE_TRANSFER_ERROR,
- IDE_TRANSFER_ERROR_CONNECTION_IS_METERED,
- _("Cannot execute transfer while on metered connection"));
- IDE_EXIT;
+ g_autoptr(GSettings) settings = g_settings_new ("org.gnome.builder.build");
+
+ if (!g_settings_get_boolean (settings, "allow-network-when-metered"))
+ {
+ g_task_return_new_error (task,
+ IDE_TRANSFER_ERROR,
+ IDE_TRANSFER_ERROR_CONNECTION_IS_METERED,
+ _("Cannot execute transfer while on metered connection"));
+ IDE_EXIT;
+ }
}
}
diff --git a/libide/preferences/ide-preferences-builtin.c b/libide/preferences/ide-preferences-builtin.c
index 783adf9..7e3d27a 100644
--- a/libide/preferences/ide-preferences-builtin.c
+++ b/libide/preferences/ide-preferences-builtin.c
@@ -388,6 +388,9 @@ ide_preferences_builtin_register_build (IdePreferences *preferences)
gtk_entry_set_width_chars (GTK_ENTRY (widget), 20);
g_signal_connect (widget, "input", G_CALLBACK (workers_input), NULL);
g_signal_connect (widget, "output", G_CALLBACK (workers_output), NULL);
+
+ ide_preferences_add_list_group (preferences, "build", "network", _("Network"), GTK_SELECTION_NONE, 100);
+ ide_preferences_add_switch (preferences, "build", "network", "org.gnome.builder.build",
"allow-network-when-metered", NULL, NULL, _("Allow downloads over metered connections"), _("Allow the use of
metered network connections when automatically downloading dependencies"), NULL, 10);
}
static void
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]