TnyFolderStore *parent_folder,
const gchar *suggested_name);
+static GtkWidget* get_folder_view_from_move_to_dialog (GtkWidget *move_to_dialog);
+
+
/*
* This function checks whether a TnyFolderStore is a pop account
*/
gtk_tree_path_free (prev_path);
}
- /* Update toolbar dimming state */
+ /* Update window dimming state */
if (main_window)
- modest_ui_actions_check_toolbar_dimming_rules (MODEST_WINDOW (main_window));
+ modest_ui_actions_check_window_dimming_rules (MODEST_WINDOW (main_window));
/* Free */
g_list_foreach (sel_list, (GFunc) gtk_tree_path_free, NULL);
attachments = g_slist_next(attachments);
}
modest_window_mgr_register_window (modest_runtime_get_window_mgr(), msg_win);
-
- if (win) {
- gtk_window_set_transient_for (GTK_WINDOW (msg_win),
- GTK_WINDOW (win));
- }
gtk_widget_show_all (GTK_WIDGET (msg_win));
cleanup:
gtk_widget_show_all (GTK_WIDGET(win));
}
- /* Update toolbar dimming state */
+ /* Update window dimming state */
if (MODEST_IS_MAIN_WINDOW (parent_win)) {
- modest_ui_actions_check_toolbar_dimming_rules (MODEST_WINDOW (parent_win));
+ modest_ui_actions_check_window_dimming_rules (MODEST_WINDOW (parent_win));
}
cleanup:
status = tny_account_get_connection_status (account);
if (err || canceled) {
- /* TODO: Show an error ? */
goto clean;
}
info = (SendReceiveInfo *) user_data;
if (err || canceled) {
-
goto clean;
}
if (!gtk_widget_is_focus (GTK_WIDGET(header_view)))
gtk_widget_grab_focus (GTK_WIDGET(header_view));
- /* Update toolbar dimming state */
- modest_ui_actions_check_toolbar_dimming_rules (MODEST_WINDOW (main_window));
+ /* Update window dimming state */
+ modest_ui_actions_check_window_dimming_rules (MODEST_WINDOW (main_window));
}
void
{
ModestMainWindow *win = NULL;
GtkWidget *header_view;
- gboolean folder_empty = FALSE;
- gboolean all_marked_as_deleted = FALSE;
g_return_if_fail (TNY_IS_FOLDER (folder));
}
/* Check if folder is empty and set headers view contents style */
- folder_empty = (tny_folder_get_all_count (folder) == 0);
- all_marked_as_deleted = modest_header_view_is_empty (MODEST_HEADER_VIEW(header_view));
- if (folder_empty || all_marked_as_deleted)
+ if (tny_folder_get_all_count (folder) == 0)
modest_main_window_set_contents_style (win,
MODEST_MAIN_WINDOW_CONTENTS_STYLE_EMPTY);
}
}
}
- /* Update toolbar dimming state */
- modest_ui_actions_check_toolbar_dimming_rules (MODEST_WINDOW (main_window));
+ /* Update window dimming state */
+ modest_ui_actions_check_window_dimming_rules (MODEST_WINDOW (main_window));
}
void
edit_window = MODEST_MSG_EDIT_WINDOW (user_data);
- /* If there was any error do nothing */
- if (modest_mail_operation_get_error (mail_op) != NULL)
+ /* It might not be a good idea to do nothing if there was an error,
+ * so let's at least show a generic error banner. */
+ /* TODO error while saving attachment, show "Saving draft failed" banner */
+ if (modest_mail_operation_get_error (mail_op) != NULL) {
+ g_warning ("%s failed: %s\n", __FUNCTION__, (modest_mail_operation_get_error (mail_op))->message);
+ modest_platform_information_banner (NULL, NULL, _("mail_ib_file_operation_failed"));
return;
+ }
modest_msg_edit_window_set_draft (edit_window, saved_draft);
}
gpointer user_data)
{
gchar *suggested_name = (gchar *) user_data;
- GtkWindow *main_window = (GtkWindow *) modest_mail_operation_get_source (mail_op);
-
+ GtkWindow *source_win = (GtkWindow *) modest_mail_operation_get_source (mail_op);
+
if (modest_mail_operation_get_error (mail_op)) {
/* Show an error */
- modest_platform_information_banner (GTK_WIDGET (main_window), NULL,
+ modest_platform_information_banner (GTK_WIDGET (source_win), NULL,
_("mail_in_ui_folder_create_error"));
/* Try again */
- do_create_folder (main_window, parent_folder, (const gchar *) suggested_name);
+ do_create_folder (source_win, parent_folder, (const gchar *) suggested_name);
} else {
+ /* the 'source_win' is either the ModestMainWindow, or the 'Move to folder'-dialog
+ * FIXME: any other? */
GtkWidget *folder_view;
- folder_view =
- modest_main_window_get_child_widget (MODEST_MAIN_WINDOW (main_window),
- MODEST_MAIN_WINDOW_WIDGET_TYPE_FOLDER_VIEW);
-
+ if (MODEST_IS_MAIN_WINDOW(source_win))
+ folder_view =
+ modest_main_window_get_child_widget (MODEST_MAIN_WINDOW (source_win),
+ MODEST_MAIN_WINDOW_WIDGET_TYPE_FOLDER_VIEW);
+ else
+ folder_view =
+ get_folder_view_from_move_to_dialog (GTK_WIDGET(source_win));
+
/* Select the newly created folder */
modest_folder_view_select_folder (MODEST_FOLDER_VIEW (folder_view),
new_folder, FALSE);
}
/* Free. Note that the first time it'll be NULL so noop */
g_free (suggested_name);
- g_object_unref (main_window);
+ g_object_unref (source_win);
}
static void
}
}
+static void
+create_folder_performer (gboolean canceled,
+ GError *err,
+ GtkWindow *parent_window,
+ TnyAccount *account,
+ gpointer user_data)
+{
+ TnyFolderStore *parent_folder = TNY_FOLDER_STORE (user_data);
+
+ if (canceled || err) {
+ goto frees;
+ }
+
+ /* Run the new folder dialog */
+ do_create_folder (GTK_WINDOW (parent_window), parent_folder, NULL);
+
+ frees:
+ g_object_unref (parent_folder);
+}
static void
modest_ui_actions_create_folder(GtkWidget *parent_window,
parent_folder = modest_folder_view_get_selected (MODEST_FOLDER_VIEW(folder_view));
if (parent_folder) {
-
- /* Run the new folder dialog */
- do_create_folder (GTK_WINDOW (parent_window), parent_folder, NULL);
-
- g_object_unref (parent_folder);
+ /* The parent folder will be freed in the callback */
+ modest_platform_connect_if_remote_and_perform (GTK_WINDOW (parent_window),
+ parent_folder,
+ create_folder_performer,
+ parent_folder);
}
}
/* Enable window dimming management */
modest_window_enable_dimming (MODEST_WINDOW(window));
- modest_ui_actions_check_toolbar_dimming_rules (MODEST_WINDOW (window));
+ modest_ui_actions_check_window_dimming_rules (MODEST_WINDOW (window));
}
}
gtk_widget_set_sensitive (new_button, new_sensitive);
}
+
+#define MODEST_MOVE_TO_DIALOG_FOLDER_VIEW "move-to-dialog-folder-view"
+
+static GtkWidget*
+get_folder_view_from_move_to_dialog (GtkWidget *move_to_dialog)
+{
+ return GTK_WIDGET(g_object_get_data (G_OBJECT(move_to_dialog),
+ MODEST_MOVE_TO_DIALOG_FOLDER_VIEW));
+}
+
static GtkWidget*
create_move_to_dialog (GtkWindow *win,
GtkWidget *folder_view,
}
}
+ /* we keep a pointer to the embedded folder view, so we can retrieve it with
+ * get_folder_view_from_move_to_dialog
+ * (see above) later (needed for focus handling)
+ */
+ g_object_set_data (G_OBJECT(dialog), MODEST_MOVE_TO_DIALOG_FOLDER_VIEW, *tree_view);
+
+
/* Hide special folders */
modest_folder_view_show_non_move_folders (MODEST_FOLDER_VIEW (*tree_view), FALSE);
-
+
gtk_container_add (GTK_CONTAINER (scroll), *tree_view);
/* Add scroll to dialog */
TnyList *headers = TNY_LIST (user_data);
if (err || canceled) {
- /* Show an error ? */
goto out;
}
}
void
-modest_ui_actions_on_email_menu_activated (GtkAction *action,
- ModestWindow *window)
-{
- g_return_if_fail (MODEST_IS_WINDOW (window));
-
- /* Update dimmed */
- modest_window_check_dimming_rules_group (window, "ModestMenuDimmingRules");
-}
-
-void
-modest_ui_actions_on_edit_menu_activated (GtkAction *action,
- ModestWindow *window)
+modest_ui_actions_check_window_dimming_rules (ModestWindow *window)
{
g_return_if_fail (MODEST_IS_WINDOW (window));
/* Update dimmed */
- modest_window_check_dimming_rules_group (window, "ModestMenuDimmingRules");
-}
-
-void
-modest_ui_actions_on_view_menu_activated (GtkAction *action,
- ModestWindow *window)
-{
- g_return_if_fail (MODEST_IS_WINDOW (window));
-
- /* Update dimmed */
- modest_window_check_dimming_rules_group (window, "ModestMenuDimmingRules");
-}
-
-void
-modest_ui_actions_on_format_menu_activated (GtkAction *action,
- ModestWindow *window)
-{
- g_return_if_fail (MODEST_IS_WINDOW (window));
-
- /* Update dimmed */
- modest_window_check_dimming_rules_group (window, "ModestMenuDimmingRules");
-}
-
-void
-modest_ui_actions_on_tools_menu_activated (GtkAction *action,
- ModestWindow *window)
-{
- g_return_if_fail (MODEST_IS_WINDOW (window));
-
- /* Update dimmed */
- modest_window_check_dimming_rules_group (window, "ModestMenuDimmingRules");
-}
-
-void
-modest_ui_actions_on_attachment_menu_activated (GtkAction *action,
- ModestWindow *window)
-{
- g_return_if_fail (MODEST_IS_WINDOW (window));
-
- /* Update dimmed */
- modest_window_check_dimming_rules_group (window, "ModestMenuDimmingRules");
-}
-
-void
-modest_ui_actions_on_toolbar_csm_menu_activated (GtkAction *action,
- ModestWindow *window)
-{
- g_return_if_fail (MODEST_IS_WINDOW (window));
-
- /* Update dimmed */
- modest_window_check_dimming_rules_group (window, "ModestMenuDimmingRules");
-}
-
-void
-modest_ui_actions_on_folder_view_csm_menu_activated (GtkAction *action,
- ModestWindow *window)
-{
- g_return_if_fail (MODEST_IS_WINDOW (window));
-
- /* Update dimmed */
- modest_window_check_dimming_rules_group (window, "ModestMenuDimmingRules");
-}
-
-void
-modest_ui_actions_on_header_view_csm_menu_activated (GtkAction *action,
- ModestWindow *window)
-{
- g_return_if_fail (MODEST_IS_WINDOW (window));
-
- /* Update dimmed */
- modest_window_check_dimming_rules_group (window, "ModestMenuDimmingRules");
-}
-
-void
-modest_ui_actions_check_toolbar_dimming_rules (ModestWindow *window)
-{
- g_return_if_fail (MODEST_IS_WINDOW (window));
-
- /* Update dimmed */
- modest_window_check_dimming_rules_group (window, "ModestToolbarDimmingRules");
+ modest_window_check_dimming_rules_group (window, "ModestWindowDimmingRules");
}
void
message = g_strdup (_("emev_ib_ui_smtp_send_error"));
break;
default:
- g_return_if_reached ();
+ g_warning ("%s: unexpected TNY_TRANSPORT_ACCOUNT_ERROR %d",
+ __FUNCTION__, err->code);
+ message = g_strdup (_("emev_ib_ui_smtp_send_error"));
+ break;
}
/* TODO if the username or the password where not defined we