about summary refs log tree commit diff
path: root/pkgs/applications/backup/deja-dup/hardcode-gsettings.patch
blob: 50bf2ba4fbd525c7f00ed7e9df1160b08488f1cd (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
--- a/deja-dup/nautilus/NautilusExtension.c
+++ b/deja-dup/nautilus/NautilusExtension.c
@@ -24,6 +24,8 @@
 #include <glib/gi18n-lib.h>
 
 GList *dirs = NULL;
+GSettingsSchemaSource *schema_source = NULL;
+GSettingsSchema *schema = NULL;
 GSettings *settings = NULL;
 
 // This will treat a < b iff a is 'lower' in the file tree than b
@@ -313,7 +315,13 @@
   bindtextdomain(GETTEXT_PACKAGE, LOCALE_DIR);
   bind_textdomain_codeset(GETTEXT_PACKAGE, "UTF-8");
 
-  settings = g_settings_new("org.gnome.DejaDup");
+  schema_source = g_settings_schema_source_new_from_directory ("@DEJA_DUP_GSETTINGS_PATH@",
+    g_settings_schema_source_get_default (), TRUE, NULL);
+
+  schema = g_settings_schema_source_lookup (schema_source,
+                                            "org.gnome.DejaDup", FALSE);
+
+  settings = g_settings_new_full (schema, NULL, NULL);
   g_signal_connect(settings, "changed::include-list",
                    update_include_excludes, NULL);
   g_signal_connect(settings, "changed::exclude-list",
@@ -329,7 +337,11 @@
 
 void nautilus_module_shutdown(void)
 {
+  g_settings_schema_source_unref(schema_source);
+  g_settings_schema_unref(schema);
   g_object_unref(settings);
+  schema_source = NULL;
+  schema = NULL;
   settings = NULL;
 
   update_include_excludes(); /* will clear it now that settings is NULL */