X-Git-Url: http://git.maemo.org/git/?p=modest;a=blobdiff_plain;f=src%2Fhildon2%2Fmodest-platform.c;h=8ab5e739add41b98b795efe35e804b2d4a3e00b6;hp=626784a7ac6eb81acb941f30c8cfe3276952cdd5;hb=f7701d3a142538ee8f4f09a487f327bda5a6950d;hpb=6e308e5b5eac21fca96f6f18038c9a1fbbaa6be4 diff --git a/src/hildon2/modest-platform.c b/src/hildon2/modest-platform.c index 626784a..8ab5e73 100644 --- a/src/hildon2/modest-platform.c +++ b/src/hildon2/modest-platform.c @@ -689,12 +689,13 @@ folder_chooser_activated (ModestFolderView *folder_view, static TnyFolderStore * folder_chooser_dialog_run (ModestFolderView *original, - TnyFolderStore *current) + TnyFolderStore *current, + GtkButton *picker) { GtkWidget *folder_view; FolderChooserData userdata = {NULL, NULL}; GtkWidget *pannable; - gchar *visible_id = NULL; + const gchar *visible_id = NULL; userdata.dialog = hildon_dialog_new (); pannable = hildon_pannable_area_new (); @@ -710,31 +711,28 @@ folder_chooser_dialog_run (ModestFolderView *original, along with the currently visible server account */ if (modest_tny_account_is_virtual_local_folders (TNY_ACCOUNT (current)) || modest_tny_account_is_memory_card_account (TNY_ACCOUNT (current))) - visible_id = - g_strdup (modest_folder_view_get_account_id_of_visible_server_account (MODEST_FOLDER_VIEW (original))); + visible_id = g_object_get_data ((GObject *) picker, FOLDER_PICKER_ORIGINAL_ACCOUNT); else - visible_id = g_strdup (tny_account_get_id (TNY_ACCOUNT (current))); - } else if (TNY_IS_FOLDER (current) && !TNY_IS_MERGE_FOLDER (current)) { + visible_id = tny_account_get_id (TNY_ACCOUNT (current)); + } else if (TNY_IS_FOLDER (current)) { TnyAccount *account; - account = tny_folder_get_account (TNY_FOLDER (current)); + account = modest_tny_folder_get_account ((TnyFolder *) current); if (account) { if (modest_tny_account_is_virtual_local_folders (TNY_ACCOUNT (account)) || modest_tny_account_is_memory_card_account (TNY_ACCOUNT (account))) { - visible_id = - g_strdup (modest_folder_view_get_account_id_of_visible_server_account (MODEST_FOLDER_VIEW (original))); + visible_id = g_object_get_data ((GObject *) picker, FOLDER_PICKER_ORIGINAL_ACCOUNT); } else { - visible_id = g_strdup (tny_account_get_id (account)); + visible_id = tny_account_get_id (account); } g_object_unref (account); } } else { - visible_id = g_strdup ( - modest_folder_view_get_account_id_of_visible_server_account (MODEST_FOLDER_VIEW(original))); + visible_id = + modest_folder_view_get_account_id_of_visible_server_account (MODEST_FOLDER_VIEW(original)); } modest_folder_view_set_account_id_of_visible_server_account (MODEST_FOLDER_VIEW(folder_view), visible_id); - g_free (visible_id); gtk_container_add (GTK_CONTAINER (GTK_DIALOG (userdata.dialog)->vbox), pannable); gtk_container_add (GTK_CONTAINER (pannable), folder_view); @@ -923,7 +921,7 @@ folder_picker_clicked (GtkButton *button, current = g_object_get_data (G_OBJECT (button), FOLDER_PICKER_CURRENT_FOLDER); - store = folder_chooser_dialog_run (helper->folder_view, current); + store = folder_chooser_dialog_run (helper->folder_view, current, button); if (store) { const gchar *current_name; gboolean exists = FALSE; @@ -961,7 +959,9 @@ folder_picker_new (TnyFolderStore *suggested, FolderPickerHelper *helper) folder_picker_set_store (GTK_BUTTON (button), suggested); if (TNY_IS_ACCOUNT (suggested)) { - acc_id = tny_account_get_id ((TnyAccount *) suggested); + if (!modest_tny_account_is_virtual_local_folders (TNY_ACCOUNT (suggested)) && + !modest_tny_account_is_memory_card_account (TNY_ACCOUNT (suggested))) + acc_id = tny_account_get_id ((TnyAccount *) suggested); } else { TnyAccount *account = modest_tny_folder_get_account ((TnyFolder *) suggested); if (account) {