From d723e312ee1d3edf9933b528444f9efb69cdffe2 Mon Sep 17 00:00:00 2001 From: Sergio Villar Senin Date: Tue, 11 Aug 2009 10:54:35 +0200 Subject: [PATCH] Fixes NB#131394, use global safe folders --- src/hildon2/modest-maemo-utils.c | 11 ++++++++--- src/hildon2/modest-msg-edit-window.c | 13 +++++++++---- src/hildon2/modest-msg-view-window.c | 11 ++++++++--- 3 files changed, 25 insertions(+), 10 deletions(-) diff --git a/src/hildon2/modest-maemo-utils.c b/src/hildon2/modest-maemo-utils.c index 51c25fc..50edb3c 100644 --- a/src/hildon2/modest-maemo-utils.c +++ b/src/hildon2/modest-maemo-utils.c @@ -212,14 +212,19 @@ modest_maemo_utils_setup_images_filechooser (GtkFileChooser *chooser) g_return_if_fail (GTK_IS_FILE_CHOOSER (chooser)); - conf_folder = modest_conf_get_string (modest_runtime_get_conf (), MODEST_CONF_LATEST_INSERT_IMAGE_PATH, NULL); + conf_folder = modest_conf_get_string (modest_runtime_get_conf (), + MODEST_CONF_LATEST_INSERT_IMAGE_PATH, NULL); if (conf_folder && conf_folder[0] != '\0') { gtk_file_chooser_set_current_folder_uri (chooser, conf_folder); } else { gchar *images_folder; /* Set the default folder to images folder */ - images_folder = g_build_filename (g_getenv (MODEST_MAEMO_UTILS_MYDOCS_ENV), - MODEST_MAEMO_UTILS_DEFAULT_IMAGE_FOLDER, NULL); + images_folder = (gchar *) g_strdup(g_get_user_special_dir (G_USER_DIRECTORY_PICTURES)); + if (!images_folder) { + /* fallback */ + images_folder = g_build_filename (g_getenv (MODEST_MAEMO_UTILS_MYDOCS_ENV), + MODEST_MAEMO_UTILS_DEFAULT_IMAGE_FOLDER, NULL); + } gtk_file_chooser_set_current_folder (chooser, images_folder); g_free (images_folder); } diff --git a/src/hildon2/modest-msg-edit-window.c b/src/hildon2/modest-msg-edit-window.c index ae8eb85..e5f3937 100644 --- a/src/hildon2/modest-msg-edit-window.c +++ b/src/hildon2/modest-msg-edit-window.c @@ -2534,14 +2534,19 @@ modest_msg_edit_window_offer_attach_file (ModestMsgEditWindow *window) dialog = hildon_file_chooser_dialog_new (GTK_WINDOW (window), GTK_FILE_CHOOSER_ACTION_OPEN); gtk_window_set_title (GTK_WINDOW (dialog), _("mcen_ti_select_attachment_title")); - conf_folder = modest_conf_get_string (modest_runtime_get_conf (), MODEST_CONF_LATEST_ATTACH_FILE_PATH, NULL); + conf_folder = modest_conf_get_string (modest_runtime_get_conf (), + MODEST_CONF_LATEST_ATTACH_FILE_PATH, NULL); if (conf_folder && conf_folder[0] != '\0') { gtk_file_chooser_set_current_folder_uri (GTK_FILE_CHOOSER (dialog), conf_folder); } else { gchar *docs_folder; - /* Set the default folder to images folder */ - docs_folder = g_build_filename (g_getenv (MODEST_MAEMO_UTILS_MYDOCS_ENV), - ".documents", NULL); + /* Set the default folder to documents folder */ + docs_folder = (gchar *) g_strdup(g_get_user_special_dir (G_USER_DIRECTORY_DOCUMENTS)); + if (!docs_folder) { + /* fallback */ + docs_folder = g_build_filename (g_getenv (MODEST_MAEMO_UTILS_MYDOCS_ENV), + ".documents", NULL); + } gtk_file_chooser_set_current_folder (GTK_FILE_CHOOSER (dialog), docs_folder); g_free (docs_folder); } diff --git a/src/hildon2/modest-msg-view-window.c b/src/hildon2/modest-msg-view-window.c index 11b49c3..ee85710 100644 --- a/src/hildon2/modest-msg-view-window.c +++ b/src/hildon2/modest-msg-view-window.c @@ -3068,7 +3068,8 @@ modest_msg_view_window_save_attachments (ModestMsgViewWindow *window, GTK_FILE_CHOOSER_ACTION_SAVE); /* Get last used folder */ - conf_folder = modest_conf_get_string (modest_runtime_get_conf (), MODEST_CONF_LATEST_SAVE_ATTACHMENT_PATH, NULL); + conf_folder = modest_conf_get_string (modest_runtime_get_conf (), + MODEST_CONF_LATEST_SAVE_ATTACHMENT_PATH, NULL); /* File chooser stops working if we select "file:///" as current folder */ if (conf_folder && g_ascii_strcasecmp (root_folder, conf_folder) != 0) { @@ -3080,8 +3081,12 @@ modest_msg_view_window_save_attachments (ModestMsgViewWindow *window, gtk_file_chooser_set_current_folder_uri (GTK_FILE_CHOOSER (save_dialog), conf_folder); } else { gchar *docs_folder; - /* Set the default folder to images folder */ - docs_folder = g_build_filename (g_getenv (MYDOCS_ENV), DOCS_FOLDER, NULL); + /* Set the default folder to documents folder */ + docs_folder = (gchar *) g_strdup(g_get_user_special_dir (G_USER_DIRECTORY_DOCUMENTS)); + if (!docs_folder) { + /* fallback */ + docs_folder = g_build_filename (g_getenv (MYDOCS_ENV), DOCS_FOLDER, NULL); + } gtk_file_chooser_set_current_folder (GTK_FILE_CHOOSER (save_dialog), docs_folder); g_free (docs_folder); } -- 1.7.9.5