[evolution] Bug 613639 - Evolution hard codes .gnome2
- From: Matthew Barnes <mbarnes src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [evolution] Bug 613639 - Evolution hard codes .gnome2
- Date: Tue, 23 Mar 2010 14:23:16 +0000 (UTC)
commit aba12c7f7872706afcbb05e7f089e17fef132d7a
Author: Matthew Barnes <mbarnes redhat com>
Date: Tue Mar 23 10:22:44 2010 -0400
Bug 613639 - Evolution hard codes .gnome2
doc/reference/shell/eshell-sections.txt | 1 +
e-util/e-util.c | 27 ++++++++++++++++++++++++++-
e-util/e-util.h | 1 +
widgets/misc/e-attachment-handler-image.c | 11 ++++-------
4 files changed, 32 insertions(+), 8 deletions(-)
---
diff --git a/doc/reference/shell/eshell-sections.txt b/doc/reference/shell/eshell-sections.txt
index 0fba5ee..8ec35fe 100644
--- a/doc/reference/shell/eshell-sections.txt
+++ b/doc/reference/shell/eshell-sections.txt
@@ -645,6 +645,7 @@ e_run_signature_script
<FILE>e-util</FILE>
<TITLE>Miscellaneous Utilities</TITLE>
e_get_user_data_dir
+e_get_gnome_user_dir
e_get_accels_filename
e_show_uri
e_display_help
diff --git a/e-util/e-util.c b/e-util/e-util.c
index 46404e6..48f2689 100644
--- a/e-util/e-util.c
+++ b/e-util/e-util.c
@@ -80,6 +80,31 @@ e_get_user_data_dir (void)
}
/**
+ * e_get_gnome2_user_dir:
+ *
+ * Returns the base directory for user data, according to libgnome.
+ * The directory can be overridden by setting the GNOME22_USER_DIR
+ * environment variable. The string is owned by Evolution and must
+ * not be modified or freed.
+ *
+ * Returns: base directory for GNOME user data
+ **/
+const gchar *
+e_get_gnome2_user_dir (void)
+{
+ static gchar *dirname = NULL;
+
+ if (G_UNLIKELY (dirname == NULL)) {
+ dirname = g_strdup (g_getenv ("GNOME22_USER_DIR"));
+ if (dirname == NULL)
+ dirname = g_build_filename (
+ g_get_home_dir (), ".gnome2", NULL);
+ }
+
+ return dirname;
+}
+
+/**
* e_get_accels_filename:
*
* Returns the name of the user data file containing custom keyboard
@@ -99,7 +124,7 @@ e_get_accels_filename (void)
if (G_UNLIKELY (filename == NULL))
filename = g_build_filename (
- g_get_home_dir (), ".gnome2",
+ e_get_gnome2_user_dir (),
"accels", PACKAGE, NULL);
return filename;
diff --git a/e-util/e-util.h b/e-util/e-util.h
index 887cc20..7d58a8a 100644
--- a/e-util/e-util.h
+++ b/e-util/e-util.h
@@ -49,6 +49,7 @@ typedef enum {
typedef void (*ETypeFunc) (GType type, gpointer user_data);
const gchar * e_get_user_data_dir (void);
+const gchar * e_get_gnome2_user_dir (void);
const gchar * e_get_accels_filename (void);
void e_show_uri (GtkWindow *parent,
const gchar *uri);
diff --git a/widgets/misc/e-attachment-handler-image.c b/widgets/misc/e-attachment-handler-image.c
index d9d87d9..770b1c5 100644
--- a/widgets/misc/e-attachment-handler-image.c
+++ b/widgets/misc/e-attachment-handler-image.c
@@ -24,6 +24,8 @@
#include <glib/gi18n.h>
#include <gconf/gconf-client.h>
+#include <e-util/e-util.h>
+
#define E_ATTACHMENT_HANDLER_IMAGE_GET_PRIVATE(obj) \
(G_TYPE_INSTANCE_GET_PRIVATE \
((obj), E_TYPE_ATTACHMENT_HANDLER_IMAGE, EAttachmentHandlerImagePrivate))
@@ -115,7 +117,6 @@ action_image_set_as_background_cb (GtkAction *action,
EAttachment *attachment;
GFile *destination;
GList *selected;
- const gchar *override;
gchar *path;
view = e_attachment_handler_get_view (handler);
@@ -124,12 +125,8 @@ action_image_set_as_background_cb (GtkAction *action,
attachment = E_ATTACHMENT (selected->data);
/* Save the image under ~/.gnome2/wallpapers/. */
- override = g_getenv ("GNOME22_USER_DIR");
- if (override != NULL)
- path = g_build_filename (override, "wallpapers", NULL);
- else
- path = g_build_filename (
- g_get_home_dir (), ".gnome2", "wallpapers", NULL);
+ path = g_build_filename (
+ e_get_gnome2_user_dir (), "wallpapers", NULL);
destination = g_file_new_for_path (path);
g_mkdir_with_parents (path, 0755);
g_free (path);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]