summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--data/Makefile.am1
-rw-r--r--data/org.gnome.evolution-data-server.gschema.xml.in8
-rw-r--r--services/evolution-source-registry/evolution-source-registry.c13
3 files changed, 21 insertions, 1 deletions
diff --git a/data/Makefile.am b/data/Makefile.am
index cbe3ec30c..3c0fa2116 100644
--- a/data/Makefile.am
+++ b/data/Makefile.am
@@ -2,6 +2,7 @@ NULL =
gsettings_SCHEMAS = \
org.gnome.Evolution.DefaultSources.gschema.xml \
+ org.gnome.evolution-data-server.gschema.xml \
org.gnome.evolution-data-server.calendar.gschema.xml \
org.gnome.evolution-data-server.addressbook.gschema.xml \
org.gnome.evolution.shell.network-config.gschema.xml \
diff --git a/data/org.gnome.evolution-data-server.gschema.xml.in b/data/org.gnome.evolution-data-server.gschema.xml.in
new file mode 100644
index 000000000..1b38cda72
--- /dev/null
+++ b/data/org.gnome.evolution-data-server.gschema.xml.in
@@ -0,0 +1,8 @@
+<schemalist>
+ <schema gettext-domain="evolution-data-server" id="org.gnome.evolution-data-server" path="/org/gnome/evolution-data-server/">
+ <key name="migrated" type="b">
+ <default>false</default>
+ <_summary>Whether the migration of old setting was already done</_summary>
+ </key>
+ </schema>
+</schemalist>
diff --git a/services/evolution-source-registry/evolution-source-registry.c b/services/evolution-source-registry/evolution-source-registry.c
index 96a8c860c..3b2208b7c 100644
--- a/services/evolution-source-registry/evolution-source-registry.c
+++ b/services/evolution-source-registry/evolution-source-registry.c
@@ -145,6 +145,7 @@ main (gint argc,
GOptionContext *context;
EDBusServer *server;
EDBusServerExitCode exit_code;
+ GSettings *settings;
GError *error = NULL;
#ifdef G_OS_WIN32
@@ -176,7 +177,11 @@ main (gint argc,
reload:
- if (!opt_disable_migration) {
+ settings = g_settings_new ("org.gnome.evolution-data-server");
+
+ if (!opt_disable_migration && !g_settings_get_boolean (settings, "migrated")) {
+ g_settings_set_boolean (settings, "migrated", TRUE);
+
/* Migrate user data from ~/.evolution to XDG base directories. */
evolution_source_registry_migrate_basedir ();
@@ -184,8 +189,14 @@ reload:
* Do this AFTER XDG base directory migration since the key
* files are saved according to XDG base directory settings. */
evolution_source_registry_migrate_sources ();
+ } else if (opt_disable_migration) {
+ e_source_registry_debug_print (" * Skipping old account data migration, disabled on command line\n");
+ } else {
+ e_source_registry_debug_print (" * Skipping old account data migration, already migrated\n");
}
+ g_object_unref (settings);
+
server = e_source_registry_server_new ();
g_signal_connect (