[Xfce4-commits] <xfce4-panel:devel> Add xfconf xml importer and default config.

Nick Schermer noreply at xfce.org
Wed Oct 28 16:20:03 CET 2009


Updating branch refs/heads/devel
         to 8ba6d363d7f575fbea38cb478a6b74ba7751a7e7 (commit)
       from 807a26297a234fa4ced77fc3ffddb035f1061c27 (commit)

commit 8ba6d363d7f575fbea38cb478a6b74ba7751a7e7
Author: Nick Schermer <nick at xfce.org>
Date:   Wed Oct 28 11:53:08 2009 +0100

    Add xfconf xml importer and default config.
    
    Add a parser to import an xml channel file into a
    channel and add a default configuration.
    
    The migration utility will now prompt with a
    question dialog whether to import the olf 4.6
    config or use the default setup.

 migrate/Makefile.am                                |   20 +-
 migrate/default.xml                                |   64 ++++
 migrate/main.c                                     |   60 +++-
 migrate/migrate-46.c                               |   15 +-
 migrate/migrate-46.h                               |    5 +-
 migrate/migrate-default.c                          |  379 ++++++++++++++++++++
 panel/panel-dialogs.h => migrate/migrate-default.h |   14 +-
 7 files changed, 523 insertions(+), 34 deletions(-)

diff --git a/migrate/Makefile.am b/migrate/Makefile.am
index bb55302..6480242 100644
--- a/migrate/Makefile.am
+++ b/migrate/Makefile.am
@@ -3,25 +3,29 @@ INCLUDES = \
 	-I$(top_srcdir) \
 	-I$(top_builddir) \
 	-DG_LOG_DOMAIN=\"xfce4-panel-migrate\" \
-	-DDATADIR=\"$(datadir)\" \
-	-DLIBDIR=\"$(libdir)/xfce4\" \
-	-DLIBEXECDIR=\"$(libexecdir)/xfce4\" \
-	-DSYSCONFDIR=\"$(sysconfdir)\" \
 	-DPACKAGE_LOCALE_DIR=\"$(localedir)\" \
+	-DDEFAULT_CONFIG=\"$(sysconfdir)/xdg/xfce4/panel/default.xml\" \
 	$(PLATFORM_CPPFLAGS)
 
+confdir = $(sysconfdir)/xdg/xfce4/panel
+conf_DATA = \
+	default.xml
+
 libexec_PROGRAMS = \
 	xfce4-panel-migrate
 
 xfce4_panel_migrate_SOURCES = \
 	main.c \
 	migrate-46.c \
-	migrate-46.h
+	migrate-46.h \
+	migrate-default.c \
+	migrate-default.h
 
 xfce4_panel_migrate_CFLAGS = \
 	$(GTK_CFLAGS) \
 	$(XFCONF_CFLAGS) \
 	$(LIBXFCE4UTIL_CFLAGS) \
+	$(LIBXFCE4UI_CFLAGS) \
 	$(PLATFORM_CFLAGS)
 
 xfce4_panel_migrate_LDFLAGS = \
@@ -31,6 +35,10 @@ xfce4_panel_migrate_LDFLAGS = \
 xfce4_panel_migrate_LDADD = \
 	$(GTK_LIBS) \
 	$(XFCONF_LIBS) \
-	$(LIBXFCE4UTIL_LIBS)
+	$(LIBXFCE4UTIL_LIBS) \
+	$(LIBXF		CE4UI_LIBS)
+
+EXTRA_DIST = \
+	default.xml
 
 # vi:set ts=8 sw=8 noet ai nocindent syntax=automake:
diff --git a/migrate/default.xml b/migrate/default.xml
new file mode 100644
index 0000000..dec86da
--- /dev/null
+++ b/migrate/default.xml
@@ -0,0 +1,64 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<channel name="xfce4-panel" version="1.0">
+  <property name="panels" type="uint" value="2">
+    <property name="panel-0" type="empty">
+      <property name="position" type="string" value="p=6;x=0;y=0"/>
+      <property name="length" type="uint" value="100"/>
+      <property name="plugin-ids" type="array">
+        <value type="int" value="1"/>
+        <value type="int" value="2"/>
+        <value type="int" value="3"/>
+        <value type="int" value="4"/>
+        <value type="int" value="5"/>
+      </property>
+    </property>
+    <property name="panel-1" type="empty">
+      <property name="position" type="string" value="p=10;x=0;y=0"/>
+      <property name="size" type="uint" value="40"/>
+      <property name="plugin-ids" type="array">
+        <value type="int" value="6"/>
+        <value type="int" value="7"/>
+        <value type="int" value="8"/>
+        <value type="int" value="9"/>
+        <value type="int" value="10"/>
+        <value type="int" value="11"/>
+        <value type="int" value="12"/>
+      </property>
+    </property>
+  </property>
+  <property name="plugins" type="empty">
+    <property name="plugin-1" type="string" value="actions"/>
+    <property name="plugin-2" type="string" value="tasklist"/>
+    <property name="plugin-3" type="string" value="pager"/>
+    <property name="plugin-4" type="string" value="clock"/>
+    <property name="plugin-5" type="string" value="systray"/>
+    <property name="plugin-6" type="string" value="showdesktop"/>
+    <property name="plugin-7" type="string" value="separator"/>
+    <property name="plugin-8" type="string" value="launcher">
+      <property name="items" type="array">
+        <value type="string" value="xfce4-terminal.desktop"/>
+      </property>
+    </property>
+    <property name="plugin-9" type="string" value="launcher">
+      <property name="items" type="array">
+        <value type="string" value="xfce4-file-manager.desktop"/>
+      </property>
+    </property>
+    <property name="plugin-10" type="string" value="launcher">
+      <property name="items" type="array">
+        <value type="string" value="xfce4-web-browser.desktop"/>
+      </property>
+    </property>
+    <property name="plugin-11" type="string" value="launcher">
+      <property name="items" type="array">
+        <value type="string" value="xfce-settings-manager.desktop"/>
+      </property>
+    </property>
+    <property name="plugin-12" type="string" value="launcher">
+      <property name="items" type="array">
+        <value type="string" value="xfce4-appfinder.desktop"/>
+      </property>
+    </property>
+  </property>
+</channel>
diff --git a/migrate/main.c b/migrate/main.c
index a61d32b..e55c9f9 100644
--- a/migrate/main.c
+++ b/migrate/main.c
@@ -33,17 +33,22 @@
 #include <gtk/gtk.h>
 #include <xfconf/xfconf.h>
 #include <libxfce4util/libxfce4util.h>
+#include <libxfce4ui/libxfce4ui.h>
 
 #include <migrate/migrate-46.h>
+#include <migrate/migrate-default.h>
 
 
 
 gint
 main (gint argc, gchar **argv)
 {
-  gchar         *file;
-  XfconfChannel *channel;
-  GError        *error = NULL;
+  gchar     *file;
+  GError    *error = NULL;
+  GtkWidget *dialog;
+  GtkWidget *button;
+  gint       result;
+  gint       retval = EXIT_SUCCESS;
 
   /* set translation domain */
   xfce_textdomain (GETTEXT_PACKAGE, PACKAGE_LOCALE_DIR, "UTF-8");
@@ -58,21 +63,54 @@ main (gint argc, gchar **argv)
 
   if (!xfconf_init (&error))
     {
-      g_critical ("%s", error->message);
+      g_critical ("Failed to initialize Xfconf: %s", error->message);
       g_error_free (error);
       return EXIT_FAILURE;
     }
 
-  channel = xfconf_channel_get (CHANNEL_NAME);
-
+  /* lookup the old 4.6 config file */
   file = xfce_resource_lookup (XFCE_RESOURCE_CONFIG, XFCE_46_CONFIG);
-  if (file != NULL)
+
+  /* create question dialog */
+  dialog = gtk_message_dialog_new (NULL, 0, GTK_MESSAGE_QUESTION, GTK_BUTTONS_NONE,
+                                   _("Welcome to the first start of the Xfce Panel"));
+  gtk_message_dialog_format_secondary_text (GTK_MESSAGE_DIALOG (dialog),
+                                   _("Click one of the options below for the "
+                                   "initial configuration of the Xfce Panel"));
+  gtk_window_set_title (GTK_WINDOW (dialog), "Xfce Panel");
+  gtk_window_set_icon_name (GTK_WINDOW (dialog), GTK_STOCK_PREFERENCES);
+  gtk_window_stick (GTK_WINDOW (dialog));
+  gtk_window_set_keep_above (GTK_WINDOW (dialog), TRUE);
+  button = gtk_dialog_add_button (GTK_DIALOG (dialog), _("Migrate old config"), GTK_RESPONSE_OK);
+  gtk_widget_set_tooltip_text (button, _("The panel will migrate your existing 4.6 panel configuration"));
+  gtk_widget_set_sensitive (button, file != NULL);
+  button = gtk_dialog_add_button (GTK_DIALOG (dialog), _("Use default config"), GTK_RESPONSE_YES);
+  gtk_widget_set_tooltip_text (button, _("The default configuration will be loaded"));
+  gtk_widget_set_sensitive (button, g_file_test (DEFAULT_CONFIG, G_FILE_TEST_IS_REGULAR));
+  button = gtk_dialog_add_button (GTK_DIALOG (dialog), _("Cancel"), GTK_RESPONSE_CANCEL);
+  gtk_widget_set_tooltip_text (button, _("Xfce Panel will start with one empty panel"));
+
+  result = gtk_dialog_run (GTK_DIALOG (dialog));
+  gtk_widget_destroy (dialog);
+
+  if (result == GTK_RESPONSE_OK && file != NULL)
+    {
+      /* restore 4.6 config */
+      if (!migrate_46 (file, &error))
+        {
+          xfce_dialog_show_error (NULL, error, _("Failed to migrate the old panel configuration"));
+          g_error_free (error);
+          retval = EXIT_FAILURE;
+        }
+    }
+  else if (result == GTK_RESPONSE_YES)
     {
-      g_message ("found old config file: %s", file);
-      if (!migrate_46 (file, channel, &error))
+      /* apply default config */
+      if (!migrate_default (DEFAULT_CONFIG, &error))
         {
-          g_critical ("%s", error->message);
+          xfce_dialog_show_error (NULL, error, _("Failed to load the default configuration"));
           g_error_free (error);
+          retval = EXIT_FAILURE;
         }
     }
 
@@ -80,5 +118,5 @@ main (gint argc, gchar **argv)
 
   xfconf_shutdown ();
 
-  return EXIT_SUCCESS;
+  return retval;
 }
diff --git a/migrate/migrate-46.c b/migrate/migrate-46.c
index 84c1cc8..572e369 100644
--- a/migrate/migrate-46.c
+++ b/migrate/migrate-46.c
@@ -33,6 +33,12 @@
 #include <migrate/migrate-46.h>
 
 
+
+#define CHANNEL_NAME    "xfce4-panel"
+#define LAUNCHER_FOLDER "launcher"
+
+
+
 typedef enum
 {
   START,
@@ -878,9 +884,8 @@ static GMarkupParser markup_parser =
 
 
 gboolean
-migrate_46 (const gchar    *filename,
-            XfconfChannel  *channel,
-            GError        **error)
+migrate_46 (const gchar  *filename,
+            GError      **error)
 {
   gsize                length;
   gchar               *contents;
@@ -889,7 +894,6 @@ migrate_46 (const gchar    *filename,
   gboolean             succeed = FALSE;
 
   g_return_val_if_fail (filename != NULL, FALSE);
-  g_return_val_if_fail (XFCONF_IS_CHANNEL (channel), FALSE);
   g_return_val_if_fail (error == NULL || *error == NULL, FALSE);
 
   if (!g_file_get_contents (filename, &contents, &length, error))
@@ -899,7 +903,7 @@ migrate_46 (const gchar    *filename,
   parser->state = START;
   parser->plugin_id_counter = 0;
   parser->panel_id_counter = 0;
-  parser->channel = channel;
+  parser->channel = xfconf_channel_new (CHANNEL_NAME);
 
   context = g_markup_parse_context_new (&markup_parser, 0, parser, NULL);
 
@@ -912,6 +916,7 @@ migrate_46 (const gchar    *filename,
 
   g_free (contents);
   g_markup_parse_context_free (context);
+  g_object_unref (G_OBJECT (parser->channel));
   g_slice_free (ConfigParser, parser);
 
   return succeed;
diff --git a/migrate/migrate-46.h b/migrate/migrate-46.h
index 77ccabd..281ade2 100644
--- a/migrate/migrate-46.h
+++ b/migrate/migrate-46.h
@@ -20,15 +20,12 @@
 #define __MIGRATE_46_H__
 
 #include <gtk/gtk.h>
-#include <xfconf/xfconf.h>
 
 G_BEGIN_DECLS
 
 #define XFCE_46_CONFIG  "xfce4" G_DIR_SEPARATOR_S "panel" G_DIR_SEPARATOR_S "panels.xml"
-#define CHANNEL_NAME    "xfce4-panel-test"
-#define LAUNCHER_FOLDER "launcher-test"
 
-gboolean migrate_46 (const gchar *filename, XfconfChannel *channel, GError **error);
+gboolean migrate_46 (const gchar *filename, GError **error);
 
 G_END_DECLS
 
diff --git a/migrate/migrate-default.c b/migrate/migrate-default.c
new file mode 100644
index 0000000..ee6f8c7
--- /dev/null
+++ b/migrate/migrate-default.c
@@ -0,0 +1,379 @@
+/*
+ * Copyright (C) 2009 Nick Schermer <nick at xfce.org>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundatoin; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundatoin, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ */
+
+#ifdef HAVE_CONFIG_H
+#include <config.h>
+#endif
+
+#ifdef HAVE_STDLIB_H
+#include <stdlib.h>
+#endif
+#ifdef HAVE_STRING_H
+#include <string.h>
+#endif
+
+#include <gtk/gtk.h>
+#include <xfconf/xfconf.h>
+#include <libxfce4util/libxfce4util.h>
+#include <migrate/migrate-default.h>
+
+
+typedef struct
+{
+  XfconfChannel *channel;
+  GSList        *path;
+  GPtrArray     *array;
+}
+ConfigParser;
+
+
+
+static GType
+migrate_default_gtype_from_string (const gchar *type)
+{
+  if (strcmp (type, "string") == 0)
+    return G_TYPE_STRING;
+  else if (strcmp (type, "uint") == 0)
+    return G_TYPE_UINT;
+  else if (strcmp (type, "int") == 0)
+    return G_TYPE_INT;
+  else if (strcmp (type, "double") == 0)
+    return G_TYPE_DOUBLE;
+  else if (strcmp (type, "bool") == 0)
+    return G_TYPE_BOOLEAN;
+  else if (strcmp (type, "array") == 0)
+    return G_TYPE_BOXED;
+  else if (strcmp (type, "empty") == 0)
+    return G_TYPE_NONE;
+
+  return G_TYPE_INVALID;
+}
+
+
+
+static void
+migrate_default_set_value (GValue      *value,
+                           const gchar *string)
+{
+  switch (G_VALUE_TYPE (value))
+    {
+    case G_TYPE_STRING:
+      g_value_set_string (value, string);
+      break;
+
+    case G_TYPE_UINT:
+      g_value_set_uint (value, strtol (string, NULL, 0));
+      break;
+
+    case G_TYPE_INT:
+      g_value_set_int (value, strtoul (string, NULL, 0));
+      break;
+
+    case G_TYPE_DOUBLE:
+      g_value_set_double (value, g_ascii_strtod (string, NULL));
+      break;
+
+    case G_TYPE_BOOLEAN:
+      g_value_set_boolean (value, strcmp (string, "true") == 0);
+      break;
+
+    }
+}
+
+
+
+static gchar *
+migrate_default_property_path (ConfigParser *parser)
+{
+  GSList  *li;
+  GString *path;
+
+  path = g_string_new (NULL);
+
+  for (li = parser->path; li != NULL; li = li->next)
+    {
+      g_string_append_c (path, '/');
+      g_string_append (path, (const gchar *) li->data);
+    }
+
+  return g_string_free (path, FALSE);
+}
+
+
+
+static void
+migrate_default_start_element_handler (GMarkupParseContext  *context,
+                                       const gchar          *element_name,
+                                       const gchar         **attribute_names,
+                                       const gchar         **attribute_values,
+                                       gpointer              user_data,
+                                       GError              **error)
+{
+  ConfigParser *parser = user_data;
+  guint         i;
+  const gchar  *channel_name;
+  const gchar  *prop_name, *prop_value, *prop_type;
+  GType         type;
+  gchar        *prop_path;
+  GValue        value = { 0, };
+  const gchar  *value_value, *value_type;
+  GValue       *value2;
+
+  if (strcmp (element_name, "channel") == 0)
+    {
+      channel_name = NULL;
+
+      if (G_LIKELY (attribute_names != NULL))
+        {
+          for (i = 0; attribute_names[i] != NULL; i++)
+            {
+              if (strcmp (attribute_names[i], "name") == 0)
+                channel_name = attribute_values[i];
+            }
+        }
+
+      if (channel_name != NULL)
+        {
+          /* open the xfconf channel */
+          parser->channel = xfconf_channel_new (channel_name);
+        }
+      else
+        {
+          g_set_error_literal (error, G_MARKUP_ERROR_INVALID_CONTENT, G_MARKUP_ERROR,
+                               "The channel element has no name attribute");
+        }
+    }
+  else if (strcmp (element_name, "property") == 0)
+    {
+      prop_name = NULL;
+      prop_value = NULL;
+      prop_type = NULL;
+
+      if (G_LIKELY (attribute_names != NULL))
+        {
+          for (i = 0; attribute_names[i] != NULL; i++)
+            {
+              if (strcmp (attribute_names[i], "name") == 0)
+                prop_name = attribute_values[i];
+              else if (strcmp (attribute_names[i], "value") == 0)
+                prop_value = attribute_values[i];
+              else if (strcmp (attribute_names[i], "type") == 0)
+                prop_type = attribute_values[i];
+            }
+        }
+
+      if (prop_name != NULL && prop_type != NULL)
+        {
+          type = migrate_default_gtype_from_string (prop_type);
+
+          parser->path = g_slist_append (parser->path, g_strdup (prop_name));
+
+          if (type == G_TYPE_INVALID)
+            {
+              g_set_error (error, G_MARKUP_ERROR_INVALID_CONTENT, G_MARKUP_ERROR,
+                           "Property \"%s\" has invalid type \"%s\"",
+                           prop_name, prop_type);
+            }
+          if (type == G_TYPE_BOXED)
+            {
+              parser->array = g_ptr_array_new ();
+            }
+          else if (type != G_TYPE_NONE && prop_value != NULL)
+            {
+              g_value_init (&value, type);
+              migrate_default_set_value (&value, prop_value);
+
+              prop_path = migrate_default_property_path (parser);
+              xfconf_channel_set_property (parser->channel, prop_path, &value);
+              g_free (prop_path);
+
+              g_value_unset (&value);
+            }
+        }
+      else
+        {
+          g_set_error (error, G_MARKUP_ERROR_INVALID_CONTENT, G_MARKUP_ERROR,
+                       "Found property without name (%s), type (%s) or value (%s)",
+                       prop_name, prop_type, prop_value);
+        }
+    }
+  else if (strcmp (element_name, "value") == 0)
+    {
+      if (parser->array != NULL)
+        {
+          value_type = NULL;
+          value_value = NULL;
+
+          if (G_LIKELY (attribute_names != NULL))
+            {
+              for (i = 0; attribute_names[i] != NULL; i++)
+                {
+                  if (strcmp (attribute_names[i], "type") == 0)
+                    value_type = attribute_values[i];
+                  else if (strcmp (attribute_names[i], "value") == 0)
+                    value_value = attribute_values[i];
+                }
+            }
+
+          if (value_type != NULL && value_value != NULL)
+            {
+              type = migrate_default_gtype_from_string (value_type);
+
+              if (type != G_TYPE_INVALID && type != G_TYPE_NONE && type != G_TYPE_BOXED)
+                {
+                  value2 = g_new0 (GValue, 1);
+                  g_value_init (value2, type);
+
+                  migrate_default_set_value (value2, value_value);
+
+                  g_ptr_array_add (parser->array, value2);
+                }
+              else
+                {
+                  g_set_error (error, G_MARKUP_ERROR_UNKNOWN_ELEMENT, G_MARKUP_ERROR,
+                               "Found value has unknown type \"%s\"", value_type);
+                }
+            }
+          else
+            {
+              g_set_error (error, G_MARKUP_ERROR_UNKNOWN_ELEMENT, G_MARKUP_ERROR,
+                           "Found value element with missing type (%s) or value (%s)",
+                           value_type, value_value);
+            }
+        }
+      else
+        {
+          g_set_error_literal (error, G_MARKUP_ERROR_UNKNOWN_ELEMENT, G_MARKUP_ERROR,
+                               "Found value element without an array property");
+        }
+    }
+  else
+    {
+      g_set_error (error, G_MARKUP_ERROR_UNKNOWN_ELEMENT, G_MARKUP_ERROR,
+                   "Unknown start element \"%s\"", element_name);
+    }
+}
+
+
+
+static void
+migrate_default_end_element_handler (GMarkupParseContext  *context,
+                                     const gchar          *element_name,
+                                     gpointer              user_data,
+                                     GError              **error)
+{
+  ConfigParser *parser = user_data;
+  GSList       *li;
+  gchar        *prop_path;
+
+  if (strcmp (element_name, "channel") == 0)
+    {
+      if (G_LIKELY (parser->channel != NULL))
+        {
+          g_object_unref (G_OBJECT (parser->channel));
+          parser->channel = NULL;
+        }
+
+     if (parser->path != NULL)
+       {
+         g_set_error_literal (error, G_MARKUP_ERROR_UNKNOWN_ELEMENT, G_MARKUP_ERROR,
+                              "Property path still contains items");
+       }
+    }
+  else if (strcmp (element_name, "property") == 0)
+    {
+      if (parser->array != NULL)
+        {
+          prop_path = migrate_default_property_path (parser);
+          xfconf_channel_set_arrayv (parser->channel, prop_path, parser->array);
+          g_free (prop_path);
+
+          xfconf_array_free (parser->array);
+          parser->array = NULL;
+        }
+
+      li = g_slist_last (parser->path);
+      if (li != NULL)
+        {
+          g_free (li->data);
+          parser->path = g_slist_delete_link (parser->path, li);
+        }
+      else
+        {
+          g_set_error_literal (error, G_MARKUP_ERROR_UNKNOWN_ELEMENT, G_MARKUP_ERROR,
+                              "Element could no be popped from the path");
+        }
+    }
+  else if (strcmp (element_name, "value") == 0)
+    {
+      /* nothing to do */
+    }
+  else
+    {
+      g_set_error (error, G_MARKUP_ERROR_UNKNOWN_ELEMENT, G_MARKUP_ERROR,
+                   "Unknown end element \"%s\"", element_name);
+    }
+}
+
+
+
+static GMarkupParser markup_parser =
+{
+  migrate_default_start_element_handler,
+  migrate_default_end_element_handler,
+  NULL,
+  NULL,
+  NULL
+};
+
+
+
+gboolean
+migrate_default (const gchar    *filename,
+                 GError        **error)
+{
+  gsize                length;
+  gchar               *contents;
+  GMarkupParseContext *context;
+  ConfigParser        *parser;
+  gboolean             succeed = FALSE;
+
+  g_return_val_if_fail (filename != NULL, FALSE);
+  g_return_val_if_fail (error == NULL || *error == NULL, FALSE);
+
+  if (!g_file_get_contents (filename, &contents, &length, error))
+    return FALSE;
+
+  parser = g_slice_new0 (ConfigParser);
+  parser->path = NULL;
+
+  context = g_markup_parse_context_new (&markup_parser, 0, parser, NULL);
+
+  if (g_markup_parse_context_parse (context, contents, length, error))
+    {
+      /* check if the entire file is parsed */
+      if (g_markup_parse_context_end_parse (context, error))
+        succeed = TRUE;
+    }
+
+  g_free (contents);
+  g_markup_parse_context_free (context);
+  g_slice_free (ConfigParser, parser);
+
+  return succeed;
+}
diff --git a/panel/panel-dialogs.h b/migrate/migrate-default.h
similarity index 72%
copy from panel/panel-dialogs.h
copy to migrate/migrate-default.h
index ff1f393..2c43e30 100644
--- a/panel/panel-dialogs.h
+++ b/migrate/migrate-default.h
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2008-2009 Nick Schermer <nick at xfce.org>
+ * Copyright (C) 2009 Nick Schermer <nick at xfce.org>
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -16,19 +16,17 @@
  * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
  */
 
-#ifndef __PANEL_DIALOGS_H__
-#define __PANEL_DIALOGS_H__
+#ifndef __XFCE_DEFAULT_H__
+#define __XFCE_DEFAULT_H__
 
 #include <gtk/gtk.h>
-#include <panel/panel-application.h>
+#include <xfconf/xfconf.h>
 
 G_BEGIN_DECLS
 
-void panel_dialogs_show_about   (void);
-
-gint panel_dialogs_choose_panel (PanelApplication *application);
+gboolean migrate_default (const gchar *filename, GError **error);
 
 G_END_DECLS
 
-#endif /* !__PANEL_DIALOGS_H__ */
+#endif /* !__XFCE_DEFAULT_H__ */
 



More information about the Xfce4-commits mailing list