diff --git a/backend/src/lib.rs b/backend/src/lib.rs
index bac630c..b0350b0 100644
--- a/backend/src/lib.rs
+++ b/backend/src/lib.rs
@@ -118,6 +118,8 @@ impl Backend {
_ => (),
}
+ self.use_server.set(self.settings.boolean("use-server"));
+
if self.get_music_library_path().is_none() {
self.set_state(BackendState::NoMusicLibrary);
} else {
@@ -128,13 +130,24 @@ impl Backend {
}
/// Whether the server should be used by default.
+ ///
+ /// This will return `false` if no server URL is set up. Otherwise, the
+ /// value is based on the users "use-server" preference.
pub fn use_server(&self) -> bool {
- self.use_server.get()
+ self.client.get_server_url().is_some() && self.use_server.get()
}
/// Set whether the server should be used by default.
pub fn set_use_server(&self, enabled: bool) {
self.use_server.set(enabled);
+
+ if let Err(err) = self.settings.set_boolean("use-server", enabled) {
+ warn!(
+ "An error happened whilte trying to save the \"use-server\" setting to GSettings. \
+ Error message: {}",
+ err
+ )
+ }
}
/// Set the URL of the Musicus server to connect to.
diff --git a/musicus/data/de.johrpan.musicus.gschema.xml b/musicus/data/de.johrpan.musicus.gschema.xml
index 8906ccc..60baa48 100644
--- a/musicus/data/de.johrpan.musicus.gschema.xml
+++ b/musicus/data/de.johrpan.musicus.gschema.xml
@@ -9,5 +9,13 @@
"https://wolfgang.johrpan.de"
URL of the Wolfgang server to use
+
+ true
+ Whether to use the Wolfgang server
+
+ This setting determines whether the Wolfgang server will be used for
+ finding new items as well as to upload new additions and edits.
+
+