[Xfce4-commits] <xfce4-panel:master> Migrate: Add support for auto-migrate default setup (bug #7478).

Nick Schermer noreply at xfce.org
Thu Apr 21 20:34:01 CEST 2011


Updating branch refs/heads/master
         to a8a298adf45940a3f1c1da081be4264f799fb3c1 (commit)
       from c5c07ae841726a46008ff34c09ad86e91f27913d (commit)

commit a8a298adf45940a3f1c1da081be4264f799fb3c1
Author: Nick Schermer <nick at xfce.org>
Date:   Thu Apr 21 19:40:00 2011 +0200

    Migrate: Add support for auto-migrate default setup (bug #7478).
    
    If XFCE_PANEL_MIGRATE_DEFAULT is defined in the environment
    and no old 4.6 config is found; the panel will skip the
    migration dialog and try to migrate the default setup.
    
    Also skip the dialog if neither an old or default config is found.

 migrate/main.c |   31 +++++++++++++++++++++++++------
 1 files changed, 25 insertions(+), 6 deletions(-)

diff --git a/migrate/main.c b/migrate/main.c
index 0893d0a..6d2c646 100644
--- a/migrate/main.c
+++ b/migrate/main.c
@@ -60,7 +60,15 @@ main (gint argc, gchar **argv)
   g_log_set_always_fatal (G_LOG_LEVEL_CRITICAL | G_LOG_LEVEL_WARNING);
 #endif
 
-  /* initialize gtk */
+  /* lookup the possible configuration files */
+  file = xfce_resource_lookup (XFCE_RESOURCE_CONFIG, XFCE_46_CONFIG);
+  default_config_exists = g_file_test (DEFAULT_CONFIG, G_FILE_TEST_IS_REGULAR);
+  if (file == NULL && !default_config_exists)
+    {
+      g_warning ("No default or old configuration found");
+      return EXIT_FAILURE;
+    }
+
   gtk_init (&argc, &argv);
 
   if (!xfconf_init (&error))
@@ -70,8 +78,16 @@ main (gint argc, gchar **argv)
       return EXIT_FAILURE;
     }
 
-  /* lookup the old 4.6 config file */
-  file = xfce_resource_lookup (XFCE_RESOURCE_CONFIG, XFCE_46_CONFIG);
+  /* check if we auto-migrate the default configuration */
+  if (g_getenv ("XFCE_PANEL_MIGRATE_DEFAULT") != NULL)
+    {
+      if (file != NULL)
+        g_message ("Tried to auto-migrate, but old configuration found");
+      else if (!!default_config_exists)
+        g_message ("Tried to auto-migrate, but no default configuration found");
+      else
+        goto migrate_default;
+    }
 
   /* create question dialog */
   dialog = gtk_message_dialog_new (NULL, 0, GTK_MESSAGE_QUESTION, GTK_BUTTONS_NONE,
@@ -94,7 +110,6 @@ main (gint argc, gchar **argv)
 
   button = gtk_dialog_add_button (GTK_DIALOG (dialog), _("Use default config"), GTK_RESPONSE_YES);
   gtk_widget_set_tooltip_text (button, _("Load the default configuration"));
-  default_config_exists = g_file_test (DEFAULT_CONFIG, G_FILE_TEST_IS_REGULAR);
   gtk_widget_set_sensitive (button, default_config_exists);
   if (default_config_exists && file == NULL)
     default_response = GTK_RESPONSE_YES;
@@ -107,7 +122,8 @@ main (gint argc, gchar **argv)
   result = gtk_dialog_run (GTK_DIALOG (dialog));
   gtk_widget_destroy (dialog);
 
-  if (result == GTK_RESPONSE_OK && file != NULL)
+  if (result == GTK_RESPONSE_OK
+      && file != NULL)
     {
       /* restore 4.6 config */
       if (!migrate_46 (file, &error))
@@ -117,8 +133,11 @@ main (gint argc, gchar **argv)
           retval = EXIT_FAILURE;
         }
     }
-  else if (result == GTK_RESPONSE_YES && default_config_exists)
+  else if (result == GTK_RESPONSE_YES
+           && default_config_exists)
     {
+      migrate_default:
+
       /* apply default config */
       if (!migrate_default (DEFAULT_CONFIG, &error))
         {



More information about the Xfce4-commits mailing list