X-Git-Url: http://git.maemo.org/git/?a=blobdiff_plain;f=src%2Fmodest-ui-actions.c;h=c4bf52d5cfad32a0128ca13756d9673e164ddb6d;hb=76cd6baa4f92bbffc48a22ea4666067e197c45ae;hp=a1012d481ca1b4a7d98e56bdbaaf67c9bbf04f43;hpb=d414707a8cc60191756746f8d5e08754d633b52f;p=modest diff --git a/src/modest-ui-actions.c b/src/modest-ui-actions.c index a1012d4..c4bf52d 100644 --- a/src/modest-ui-actions.c +++ b/src/modest-ui-actions.c @@ -177,10 +177,12 @@ static void modest_ui_actions_on_main_window_move_to (GtkAction *action, GtkWidget *folder_view, TnyFolderStore *dst_folder, ModestMainWindow *win); +#ifdef MODEST_TOOLKIT_HILDON2 static void modest_ui_actions_on_folder_window_move_to (GtkWidget *folder_view, TnyFolderStore *dst_folder, TnyList *selection, GtkWindow *win); +#endif static void modest_ui_actions_on_window_move_to (GtkAction *action, TnyList *list_to_move, @@ -3124,11 +3126,10 @@ modest_ui_actions_on_select_editor_background_color (GtkAction *action, } void -modest_ui_actions_on_insert_image (GtkAction *action, +modest_ui_actions_on_insert_image (GObject *object, ModestMsgEditWindow *window) { g_return_if_fail (MODEST_IS_MSG_EDIT_WINDOW (window)); - g_return_if_fail (GTK_IS_ACTION (action)); if (modest_platform_check_memory_low (MODEST_WINDOW(window), TRUE)) @@ -3158,7 +3159,6 @@ modest_ui_actions_on_remove_attachments (GtkAction *action, ModestMsgEditWindow *window) { g_return_if_fail (MODEST_IS_MSG_EDIT_WINDOW (window)); - g_return_if_fail (GTK_IS_ACTION (action)); modest_msg_edit_window_remove_attachments (window, NULL); } @@ -3262,20 +3262,22 @@ do_create_folder_cb (ModestMailOperation *mail_op, static void do_create_folder (GtkWindow *parent_window, - TnyFolderStore *parent_folder, + TnyFolderStore *suggested_parent, const gchar *suggested_name) { gint result; gchar *folder_name = NULL; + TnyFolderStore *parent_folder = NULL; result = modest_platform_run_new_folder_dialog (GTK_WINDOW (parent_window), - parent_folder, + suggested_parent, (gchar *) suggested_name, - &folder_name); - - if (result == GTK_RESPONSE_ACCEPT) { + &folder_name, + &parent_folder); + + if (result == GTK_RESPONSE_ACCEPT && parent_folder) { ModestMailOperation *mail_op; - + mail_op = modest_mail_operation_new ((GObject *) parent_window); modest_mail_operation_queue_add (modest_runtime_get_mail_operation_queue (), mail_op); @@ -3286,6 +3288,9 @@ do_create_folder (GtkWindow *parent_window, folder_name); g_object_unref (mail_op); } + + if (parent_folder) + g_object_unref (parent_folder); } static void @@ -3316,22 +3321,41 @@ modest_ui_actions_create_folder(GtkWidget *parent_window, { TnyFolderStore *parent_folder; +#ifdef MODEST_TOOLKIT_HILDON2 + const gchar *active_account; + TnyAccount *account; + ModestTnyAccountStore *acc_store; + + /* In hildon 2.2 we use the current account as default parent */ + acc_store = modest_runtime_get_account_store (); + active_account = modest_window_get_active_account (MODEST_WINDOW (parent_window)); + if (active_account) { + account = modest_tny_account_store_get_server_account (acc_store, + active_account, + TNY_ACCOUNT_TYPE_STORE); + parent_folder = TNY_FOLDER_STORE (account); + } else { + parent_folder = (TnyFolderStore *) + modest_tny_account_store_get_local_folders_account (acc_store); + } +#else parent_folder = modest_folder_view_get_selected (MODEST_FOLDER_VIEW(folder_view)); - +#endif + if (parent_folder) { /* The parent folder will be freed in the callback */ - modest_platform_connect_if_remote_and_perform (GTK_WINDOW (parent_window), + modest_platform_connect_if_remote_and_perform (GTK_WINDOW (parent_window), TRUE, parent_folder, - create_folder_performer, + create_folder_performer, parent_folder); } } -void +void modest_ui_actions_on_new_folder (GtkAction *action, ModestWindow *window) { - + g_return_if_fail (MODEST_IS_WINDOW(window)); if (MODEST_IS_MAIN_WINDOW (window)) { @@ -3489,6 +3513,8 @@ modest_ui_actions_on_edit_mode_rename_folder (ModestWindow *window) } else if (MODEST_IS_FOLDER_WINDOW (window)) { folder_view = GTK_WIDGET (modest_folder_window_get_folder_view (MODEST_FOLDER_WINDOW (window))); #endif + } else { + return FALSE; } folder = modest_folder_view_get_selected (MODEST_FOLDER_VIEW(folder_view)); @@ -3566,6 +3592,10 @@ on_delete_folder_cb (gboolean canceled, } else if (MODEST_IS_FOLDER_WINDOW (parent_window)) { folder_view = GTK_WIDGET (modest_folder_window_get_folder_view (MODEST_FOLDER_WINDOW (parent_window))); #endif + } else { + g_object_unref (G_OBJECT (info->folder)); + g_free (info); + return; } /* Unselect the folder before deleting it to free the headers */ @@ -3607,6 +3637,8 @@ delete_folder (ModestWindow *window, gboolean move_to_trash) } else if (MODEST_IS_FOLDER_WINDOW (window)) { folder_view = GTK_WIDGET (modest_folder_window_get_folder_view (MODEST_FOLDER_WINDOW (window))); #endif + } else { + return FALSE; } if (!folder_view) return FALSE; @@ -4776,7 +4808,7 @@ on_move_to_dialog_response (GtkDialog *dialog, TnyFolderStore *dst_folder; case MODEST_GTK_RESPONSE_NEW_FOLDER: - modest_ui_actions_create_folder (GTK_WIDGET (dialog), folder_view); + modest_ui_actions_create_folder (GTK_WIDGET (parent_win), folder_view); return; case GTK_RESPONSE_NONE: case GTK_RESPONSE_CANCEL: @@ -4813,7 +4845,8 @@ on_move_to_dialog_response (GtkDialog *dialog, } /* Free the helper and exit */ - g_object_unref (helper->list); + if (helper->list) + g_object_unref (helper->list); g_slice_free (MoveToInfo, helper); gtk_widget_destroy (GTK_WIDGET (dialog)); } @@ -6118,12 +6151,19 @@ modest_ui_actions_on_open_addressbook (GtkAction *action, ModestWindow *win) void -modest_ui_actions_on_toggle_find_in_page (GtkToggleAction *action, +modest_ui_actions_on_toggle_find_in_page (GtkAction *action, ModestWindow *window) { + gboolean active; g_return_if_fail (MODEST_IS_MSG_EDIT_WINDOW (window)); - modest_msg_edit_window_toggle_find_toolbar (MODEST_MSG_EDIT_WINDOW (window), gtk_toggle_action_get_active (action)); + if (GTK_IS_TOGGLE_ACTION (action)) + active = gtk_toggle_action_get_active (GTK_TOGGLE_ACTION (action)); + else + active = TRUE; + + modest_msg_edit_window_toggle_find_toolbar (MODEST_MSG_EDIT_WINDOW (window), + active); } static void