diff options
Diffstat (limited to 'shell/e-setup.c')
-rw-r--r-- | shell/e-setup.c | 83 |
1 files changed, 46 insertions, 37 deletions
diff --git a/shell/e-setup.c b/shell/e-setup.c index 2ad5c0c151..6befdb8e92 100644 --- a/shell/e-setup.c +++ b/shell/e-setup.c @@ -25,6 +25,21 @@ #include <config.h> #endif +#include "e-setup.h" + +#include "e-local-folder.h" +#include "e-shell-config.h" +#include "e-shell-constants.h" + +#include <gconf/gconf-client.h> + +#include <gtk/gtklabel.h> + +#include <gal/widgets/e-gui-utils.h> + +#include <libgnome/gnome-i18n.h> +#include <libgnome/gnome-util.h> + #include <errno.h> #include <sys/stat.h> #include <sys/types.h> @@ -33,17 +48,6 @@ #include <string.h> #include <unistd.h> -#include <gtk/gtklabel.h> -#include <libgnome/gnome-i18n.h> -#include <libgnome/gnome-util.h> -#include <gal/widgets/e-gui-utils.h> - -#include "e-local-folder.h" -#include "e-shell-config.h" -#include "e-shell-constants.h" - -#include "e-setup.h" - static GList * check_dir_recur (const char *evolution_directory, @@ -417,34 +421,39 @@ e_setup (const char *evolution_directory) void -e_setup_check_config (EConfigListener *listener, - const char *evolution_directory) +e_setup_check_config (const char *evolution_directory) { + GConfClient *client; + char *tmp; char *uri; - if (e_config_listener_get_string_with_default (listener, "/DefaultFolders/mail_path", NULL, NULL) == NULL) { - e_config_listener_set_string (listener, "/DefaultFolders/mail_path", E_LOCAL_INBOX_URI); - uri = g_strconcat ("file://", evolution_directory, "/local", - strrchr (E_LOCAL_INBOX_URI, '/'), NULL); - e_config_listener_set_string (listener, "/DefaultFolders/mail_uri", uri); - g_free (uri); - - e_config_listener_set_string (listener, "/DefaultFolders/contacts_path", E_LOCAL_CONTACTS_URI); - uri = g_strconcat ("file://", evolution_directory, "/local", - strrchr (E_LOCAL_CONTACTS_URI, '/'), NULL); - e_config_listener_set_string (listener, "/DefaultFolders/contacts_uri", uri); - g_free (uri); - - e_config_listener_set_string (listener, "/DefaultFolders/calendar_path", E_LOCAL_CALENDAR_URI); - uri = g_strconcat ("file://", evolution_directory, "/local", - strrchr (E_LOCAL_CALENDAR_URI, '/'), NULL); - e_config_listener_set_string (listener, "/DefaultFolders/calendar_uri", uri); - g_free (uri); - - e_config_listener_set_string (listener, "/DefaultFolders/tasks_path", E_LOCAL_TASKS_URI); - uri = g_strconcat ("file://", evolution_directory, "/local", - strrchr (E_LOCAL_TASKS_URI, '/'), NULL); - e_config_listener_set_string (listener, "/DefaultFolders/tasks_uri", uri); - g_free (uri); + client = gconf_client_get_default (); + + tmp = gconf_client_get_string (client, "/apps/evolution/shell/default_folders/mail_path", NULL); + if (tmp != NULL && *tmp != 0) { + g_object_unref (client); + return; } + + gconf_client_set_string (client, "/apps/evolution/shell/default_folders/mail_path", E_LOCAL_INBOX_URI, NULL); + uri = g_strconcat ("file://", evolution_directory, "/local", strrchr (E_LOCAL_INBOX_URI, '/'), NULL); + gconf_client_set_string (client, "/apps/evolution/shell/default_folders/mail_uri", uri, NULL); + g_free (uri); + + gconf_client_set_string (client, "/apps/evolution/shell/default_folders/contacts_path", E_LOCAL_CONTACTS_URI, NULL); + uri = g_strconcat ("file://", evolution_directory, "/local", strrchr (E_LOCAL_CONTACTS_URI, '/'), NULL); + gconf_client_set_string (client, "/apps/evolution/shell/default_folders/contacts_uri", uri, NULL); + g_free (uri); + + gconf_client_set_string (client, "/apps/evolution/shell/default_folders/tasks_path", E_LOCAL_TASKS_URI, NULL); + uri = g_strconcat ("file://", evolution_directory, "/local", strrchr (E_LOCAL_TASKS_URI, '/'), NULL); + gconf_client_set_string (client, "/apps/evolution/shell/default_folders/tasks_uri", uri, NULL); + g_free (uri); + + gconf_client_set_string (client, "/apps/evolution/shell/default_folders/calendar_path", E_LOCAL_CALENDAR_URI, NULL); + uri = g_strconcat ("file://", evolution_directory, "/local", strrchr (E_LOCAL_CALENDAR_URI, '/'), NULL); + gconf_client_set_string (client, "/apps/evolution/shell/default_folders/calendar_uri", uri, NULL); + g_free (uri); + + g_object_unref (client); } |