void
modest_maemo_utils_setup_images_filechooser (GtkFileChooser *chooser)
{
- gchar *images_folder;
GtkFileFilter *file_filter;
GList *image_mimetypes_list;
GList *node;
+ gchar *conf_folder;
g_return_if_fail (GTK_IS_FILE_CHOOSER (chooser));
- /* 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);
- gtk_file_chooser_set_current_folder (chooser, images_folder);
- g_free (images_folder);
+ 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);
+ gtk_file_chooser_set_current_folder (chooser, images_folder);
+ g_free (images_folder);
+ }
+ g_free (conf_folder);
/* Set the images mime filter */
file_filter = gtk_file_filter_new ();
response = gtk_dialog_run (GTK_DIALOG (dialog));
switch (response) {
case GTK_RESPONSE_OK:
+ {
+ gchar *current_folder;
uris = gtk_file_chooser_get_uris (GTK_FILE_CHOOSER (dialog));
- break;
+ current_folder = gtk_file_chooser_get_current_folder_uri (GTK_FILE_CHOOSER (dialog));
+ if (current_folder && current_folder != '\0') {
+ GError *err = NULL;
+ modest_conf_set_string (modest_runtime_get_conf (), MODEST_CONF_LATEST_INSERT_IMAGE_PATH,
+ current_folder, &err);
+ if (err != NULL) {
+ g_debug ("Error storing latest used folder: %s", err->message);
+ g_error_free (err);
+ }
+ }
+ g_free (current_folder);
+ }
+ break;
default:
break;
}
switch (arg1) {
case GTK_RESPONSE_OK:
+ {
+ gchar *current_folder;
+
uris = gtk_file_chooser_get_uris (GTK_FILE_CHOOSER (dialog));
- break;
+ current_folder = gtk_file_chooser_get_current_folder_uri (GTK_FILE_CHOOSER (dialog));
+ if (current_folder && current_folder != '\0') {
+ GError *err = NULL;
+ modest_conf_set_string (modest_runtime_get_conf (), MODEST_CONF_LATEST_ATTACH_FILE_PATH,
+ current_folder, &err);
+ if (err != NULL) {
+ g_debug ("Error storing latest used folder: %s", err->message);
+ g_error_free (err);
+ }
+ }
+ g_free (current_folder);
+ }
+ break;
default:
break;
}
{
GtkWidget *dialog = NULL;
ModestMsgEditWindowPrivate *priv;
+ gchar *conf_folder;
g_return_if_fail (MODEST_IS_MSG_EDIT_WINDOW(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);
+ 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);
+ gtk_file_chooser_set_current_folder (GTK_FILE_CHOOSER (dialog), docs_folder);
+ g_free (docs_folder);
+ }
+ g_free (conf_folder);
gtk_file_chooser_set_select_multiple (GTK_FILE_CHOOSER (dialog), TRUE);
modest_window_mgr_set_modal (modest_runtime_get_window_mgr (),
GTK_WINDOW (dialog), GTK_WINDOW (window));
TnyList *mime_parts;
gchar *chooser_uri;
GList *files_to_save = NULL;
+ gchar *current_folder;
mime_parts = TNY_LIST (user_data);
goto end;
chooser_uri = gtk_file_chooser_get_uri (GTK_FILE_CHOOSER (dialog));
+ current_folder = gtk_file_chooser_get_current_folder_uri (GTK_FILE_CHOOSER (dialog));
+ if (current_folder && current_folder != '\0') {
+ GError *err = NULL;
+ modest_conf_set_string (modest_runtime_get_conf (), MODEST_CONF_LATEST_SAVE_ATTACHMENT_PATH,
+ current_folder,&err);
+ if (err != NULL) {
+ g_debug ("Error storing latest used folder: %s", err->message);
+ g_error_free (err);
+ }
+ }
+ g_free (current_folder);
if (!modest_utils_folder_writable (chooser_uri)) {
hildon_banner_show_information
{
ModestMsgViewWindowPrivate *priv;
GtkWidget *save_dialog = NULL;
- gchar *folder = NULL;
+ gchar *conf_folder = NULL;
gchar *filename = NULL;
gchar *save_multiple_str = NULL;
GTK_FILE_CHOOSER_ACTION_SAVE);
/* set folder */
- folder = g_build_filename (g_getenv (MYDOCS_ENV), DOCS_FOLDER, NULL);
- gtk_file_chooser_set_current_folder (GTK_FILE_CHOOSER (save_dialog), folder);
- g_free (folder);
+ conf_folder = modest_conf_get_string (modest_runtime_get_conf (), MODEST_CONF_LATEST_SAVE_ATTACHMENT_PATH, NULL);
+ if (conf_folder && conf_folder[0] != '\0') {
+ 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);
+ gtk_file_chooser_set_current_folder (GTK_FILE_CHOOSER (save_dialog), docs_folder);
+ g_free (docs_folder);
+ }
+ g_free (conf_folder);
/* set filename */
if (filename) {
#define MODEST_CONF_SHOW_CC (modest_defs_namespace ("/show_cc"))
#define MODEST_CONF_SHOW_BCC (modest_defs_namespace ("/show_bcc"))
+/* Last used folders for insert images, attach file and save attachments */
+#define MODEST_CONF_LATEST_ATTACH_FILE_PATH (modest_defs_namespace ("/latest_attach_file_path"))
+#define MODEST_CONF_LATEST_INSERT_IMAGE_PATH (modest_defs_namespace ("/latest_inset_image_path"))
+#define MODEST_CONF_LATEST_SAVE_ATTACHMENT_PATH (modest_defs_namespace ("/latest_save_attachment_path"))
+
/* This is the alarmd cookie, obtained from alarm_event_add(),
* which apparently remains valid between application instances.
* We store it so that we can remove it later.
if (!modest_conf_key_exists (conf, MODEST_CONF_SHOW_BCC, NULL))
modest_conf_set_bool (conf, MODEST_CONF_SHOW_BCC, FALSE, NULL);
+ /* File chooser keys */
+ if (!modest_conf_key_exists (conf, MODEST_CONF_LATEST_ATTACH_FILE_PATH, NULL))
+ modest_conf_set_string (conf, MODEST_CONF_LATEST_ATTACH_FILE_PATH, "", NULL);
+ if (!modest_conf_key_exists (conf, MODEST_CONF_LATEST_INSERT_IMAGE_PATH, NULL))
+ modest_conf_set_string (conf, MODEST_CONF_LATEST_INSERT_IMAGE_PATH, "", NULL);
+ if (!modest_conf_key_exists (conf, MODEST_CONF_LATEST_SAVE_ATTACHMENT_PATH, NULL))
+ modest_conf_set_string (conf, MODEST_CONF_LATEST_SAVE_ATTACHMENT_PATH, "", NULL);
+
/* Global settings */
if (!modest_conf_key_exists (conf, MODEST_CONF_AUTO_UPDATE, NULL))
modest_conf_set_bool (conf, MODEST_CONF_AUTO_UPDATE, TRUE, NULL);