#include <tny-camel-pop-folder.h>
#ifdef MODEST_TOOLKIT_HILDON2
#include <hildon/hildon-pannable-area.h>
+#include <hildon/hildon-gtk.h>
#include <modest-header-window.h>
#endif
return list;
+#ifdef MODEST_TOOLKIT_HILDON2
+ } else if (MODEST_IS_HEADER_WINDOW (win)) {
+ GtkWidget *header_view;
+
+ header_view = GTK_WIDGET (modest_header_window_get_header_view (MODEST_HEADER_WINDOW (win)));
+ return modest_header_view_get_selected_headers (MODEST_HEADER_VIEW(header_view));
+#endif
} else
return NULL;
}
void
modest_ui_actions_on_delete_message (GtkAction *action, ModestWindow *win)
{
+ modest_ui_actions_on_edit_mode_delete_message (win);
+}
+
+gboolean
+modest_ui_actions_on_edit_mode_delete_message (ModestWindow *win)
+{
TnyList *header_list = NULL;
TnyIterator *iter = NULL;
TnyHeader *header = NULL;
gint response;
ModestWindowMgr *mgr;
GtkWidget *header_view = NULL;
+ gboolean retval = TRUE;
- g_return_if_fail (MODEST_IS_WINDOW(win));
+ g_return_val_if_fail (MODEST_IS_WINDOW(win), FALSE);
/* Check first if the header view has the focus */
if (MODEST_IS_MAIN_WINDOW (win)) {
modest_main_window_get_child_widget (MODEST_MAIN_WINDOW (win),
MODEST_MAIN_WINDOW_WIDGET_TYPE_HEADER_VIEW);
if (!gtk_widget_is_focus (header_view))
- return;
+ return FALSE;
}
/* Get the headers, either from the header view (if win is the main window),
* or from the message view window: */
header_list = get_selected_headers (win);
- if (!header_list) return;
+ if (!header_list) return FALSE;
/* Check if any of the headers are already opened, or in the process of being opened */
if (MODEST_IS_MAIN_WINDOW (win)) {
g_free (msg);
g_object_unref (header_list);
- return;
+ return FALSE;
}
}
/* Get main window */
mgr = modest_runtime_get_window_mgr ();
main_window = modest_window_mgr_get_main_window (mgr, FALSE); /* don't create */
- } else {
+ } else if (MODEST_IS_MAIN_WINDOW (win)) {
/* Move cursor to next row */
main_window = win;
/* Free */
g_list_foreach (sel_list, (GFunc) gtk_tree_path_free, NULL);
g_list_free (sel_list);
+ retval = TRUE;
+ } else {
+ retval = FALSE;
}
/* Free*/
g_free(message);
g_free(desc);
g_object_unref (header_list);
+
+ return retval;
}
outbox which is not in
failed state */
g_object_unref(traccount);
- goto cleanup;
}
#endif
}
GtkWidget *dialog =
gtk_dialog_new_with_buttons (_("mail_ti_password_protected"),
NULL,
+ GTK_DIALOG_MODAL,
_("mcen_bd_dialog_ok"),
GTK_RESPONSE_ACCEPT,
_("mcen_bd_dialog_cancel"),
GTK_WIDGET (user_data));
}
+#ifndef MODEST_TOOLKIT_HILDON2
/*
* This function is used to track changes in the selection of the
* folder view that is inside the "move to" dialog to enable/disable
/* Set sensitivity of the NEW button */
gtk_widget_set_sensitive (new_button, new_sensitive);
}
+#endif
+
+#ifdef MODEST_TOOLKIT_HILDON2
+static void
+on_move_to_dialog_folder_activated (GtkTreeView *tree_view,
+ GtkTreePath *path,
+ GtkTreeViewColumn *column,
+ gpointer user_data)
+{
+ gtk_dialog_response (GTK_DIALOG (user_data), GTK_RESPONSE_ACCEPT);
+}
+#endif
#define MODEST_MOVE_TO_DIALOG_FOLDER_VIEW "move-to-dialog-folder-view"
GtkWidget *pannable;
#else
GtkWidget *scroll;
+ GtkWidget *ok_button;
#endif
- GtkWidget *new_button, *ok_button;
+ GtkWidget *new_button;
dialog = gtk_dialog_new_with_buttons (_("mcen_ti_moveto_folders_title"),
GTK_WINDOW (win),
NULL);
#ifndef MODEST_TOOLKIT_GTK
+#ifndef MODEST_TOOLKIT_HILDON2
ok_button = gtk_dialog_add_button (GTK_DIALOG (dialog), _("mcen_bd_dialog_ok"), GTK_RESPONSE_ACCEPT);
+#endif
/* We do this manually so GTK+ does not associate a response ID for
* the button. */
new_button = gtk_button_new_from_stock (_("mcen_bd_new"));
gtk_box_pack_end (GTK_BOX (GTK_DIALOG (dialog)->action_area), new_button, FALSE, FALSE, 0);
- gtk_widget_show (new_button);
-#ifndef MODEST_TOOLKIT_HILDON2
+#ifdef MODEST_TOOLKIT_HILDON2
+ hildon_gtk_widget_set_theme_size (new_button, HILDON_SIZE_FINGER_HEIGHT);
+#else
gtk_dialog_add_button (GTK_DIALOG (dialog), _("mcen_bd_dialog_cancel"), GTK_RESPONSE_REJECT);
#endif
+ gtk_widget_show (new_button);
#else
/* We do this manually so GTK+ does not associate a response ID for
* the button. */
gtk_container_set_border_width (GTK_CONTAINER (dialog), 12);
gtk_box_set_spacing (GTK_BOX (GTK_DIALOG (dialog)->vbox), 24);
#endif
+
+#ifndef MODEST_TOOLKIT_HILDON2
g_object_set_data (G_OBJECT (dialog), MOVE_FOLDER_OK_BUTTON, ok_button);
+#endif
g_object_set_data (G_OBJECT (dialog), MOVE_FOLDER_NEW_BUTTON, new_button);
/* Create scrolled window */
/* Create folder view */
*tree_view = modest_platform_create_folder_view (NULL);
+#ifdef MODEST_TOOLKIT_HILDON2
+ /* We return OK on activation */
+ g_signal_connect (*tree_view,
+ "row-activated",
+ G_CALLBACK (on_move_to_dialog_folder_activated),
+ dialog);
+#else
/* Track changes in the selection to
* disable the OK button whenever "Move to" is not possible
* disbale NEW button whenever New is not possible */
"folder_selection_changed",
G_CALLBACK (on_move_to_dialog_folder_selection_changed),
win);
+#endif
/* Listen to clicks on New button */
g_signal_connect (G_OBJECT (new_button),
G_CALLBACK(create_move_to_dialog_on_new_folder),
*tree_view);
+#ifdef MODEST_TOOLKIT_HILDON2
+ modest_folder_view_set_cell_style (MODEST_FOLDER_VIEW (*tree_view),
+ MODEST_FOLDER_VIEW_CELL_STYLE_COMPACT);
+#endif
+
/* It could happen that we're trying to move a message from a
window (msg window for example) after the main window was
closed, so we can not just get the model of the folder
* ModestMsgViewWindow
*/
static void
-modest_ui_actions_on_msg_view_window_move_to (GtkAction *action,
- TnyFolderStore *dst_folder,
- ModestMsgViewWindow *win)
+modest_ui_actions_on_window_move_to (GtkAction *action,
+ TnyFolderStore *dst_folder,
+ ModestWindow *win)
{
TnyList *headers = NULL;
- TnyHeader *header = NULL;
TnyFolder *src_folder = NULL;
g_return_if_fail (TNY_IS_FOLDER (dst_folder));
/* Create header list */
- header = modest_msg_view_window_get_header (MODEST_MSG_VIEW_WINDOW (win));
- src_folder = TNY_FOLDER (tny_header_get_folder(header));
- headers = tny_simple_list_new ();
- tny_list_append (headers, G_OBJECT (header));
+ headers = get_selected_headers (MODEST_WINDOW (win));
+
+ if (tny_list_get_length (headers) > 0) {
+ TnyHeader *header = NULL;
+ TnyIterator *iter;
+
+ iter = tny_list_create_iterator (headers);
+ header = (TnyHeader *) tny_iterator_get_current (iter);
+ src_folder = tny_header_get_folder (header);
+
+ g_object_unref (header);
+ g_object_unref (iter);
+
+ /* Transfer the messages */
+ modest_ui_actions_transfer_messages_helper (GTK_WINDOW (win), src_folder, headers,
+ TNY_FOLDER (dst_folder));
+ }
- /* Transfer the messages */
- modest_ui_actions_transfer_messages_helper (GTK_WINDOW (win), src_folder, headers,
- TNY_FOLDER (dst_folder));
/* Frees */
- g_object_unref (src_folder);
- g_object_unref (header);
+ if (src_folder)
+ g_object_unref (src_folder);
g_object_unref (headers);
}
TnyFolderStore *dst_folder = NULL;
ModestMainWindow *main_window;
- g_return_if_fail (MODEST_IS_MAIN_WINDOW (win) ||
- MODEST_IS_MSG_VIEW_WINDOW (win));
+ g_return_if_fail (MODEST_IS_WINDOW (win));
/* Get the main window if exists */
if (MODEST_IS_MAIN_WINDOW (win))
dst_folder,
MODEST_MAIN_WINDOW (win));
} else {
- modest_ui_actions_on_msg_view_window_move_to (action,
- dst_folder,
- MODEST_MSG_VIEW_WINDOW (win));
+ modest_ui_actions_on_window_move_to (action,
+ dst_folder,
+ MODEST_WINDOW (win));
}
if (dst_folder)