GtkTreePath *source_row;
selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (widget));
- gtk_tree_selection_get_selected (selection, &model, &iter);
- source_row = gtk_tree_model_get_path (model, &iter);
+ if (gtk_tree_selection_get_selected (selection, &model, &iter)) {
- gtk_tree_set_row_drag_data (selection_data,
- model,
- source_row);
-
- gtk_tree_path_free (source_row);
+ source_row = gtk_tree_model_get_path (model, &iter);
+ gtk_tree_set_row_drag_data (selection_data,
+ model,
+ source_row);
+
+ gtk_tree_path_free (source_row);
+ }
}
typedef struct _DndHelper {
gtk_tree_model_get (dest_model, &dest_iter,
TNY_GTK_FOLDER_STORE_TREE_MODEL_INSTANCE_COLUMN,
&folder, -1);
-
- if (!folder || TNY_IS_FOLDER_STORE(folder)) {
- //g_warning ("%s: not a valid target folder", __FUNCTION__);
+
+ if (!folder || !TNY_IS_FOLDER(folder)) {
+/* g_warning ("%s: not a valid target folder (%p)", __FUNCTION__, folder); */
goto cleanup;
}
folder_type = modest_tny_folder_guess_folder_type (folder);
if (folder_type == TNY_FOLDER_TYPE_INVALID) {
- g_warning ("%s: invalid target folder", __FUNCTION__);
+/* g_warning ("%s: invalid target folder", __FUNCTION__); */
goto cleanup; /* cannot move messages there */
}
-
- if (modest_tny_folder_get_rules((TNY_FOLDER(folder))) & MODEST_FOLDER_RULES_FOLDER_NON_WRITEABLE)
+
+ if (modest_tny_folder_get_rules((TNY_FOLDER(folder))) & MODEST_FOLDER_RULES_FOLDER_NON_WRITEABLE) {
+/* g_warning ("folder not writable"); */
goto cleanup; /* verboten! */
+ }
/* Ask for confirmation to move */
- main_win = modest_window_mgr_get_main_window (mgr);
+ main_win = modest_window_mgr_get_main_window (mgr, FALSE); /* don't create */
+ if (!main_win) {
+ g_warning ("%s: BUG: no main window found", __FUNCTION__);
+ goto cleanup;
+ }
+
response = modest_ui_actions_msgs_move_to_confirmation (main_win, folder,
TRUE, headers);
if (response == GTK_RESPONSE_CANCEL)
TnyFolderStore *dest_folder = NULL;
TnyFolderStore *folder = NULL;
gboolean forbidden = FALSE;
+ ModestWindow *win;
+ win = modest_window_mgr_get_main_window (modest_runtime_get_window_mgr(), FALSE); /* don't create */
+ if (!win) {
+ g_warning ("%s: BUG: no main window", __FUNCTION__);
+ return;
+ }
+
if (!forbidden) {
/* check the folder rules for the destination */
folder = tree_path_to_folder (dest_model, dest_row);
/* Offer the connection dialog if necessary, for the destination parent folder and source folder: */
if (modest_platform_connect_and_wait_if_network_folderstore (NULL, dest_folder) &&
modest_platform_connect_and_wait_if_network_folderstore (NULL, TNY_FOLDER_STORE (folder))) {
- ModestWindowMgr *mgr = modest_runtime_get_window_mgr ();
-
+
/* Do the mail operation */
- mail_op =
- modest_mail_operation_new_with_error_handling ((GObject *) modest_window_mgr_get_main_window (mgr),
- modest_ui_actions_move_folder_error_handler,
- folder, NULL);
+ mail_op = modest_mail_operation_new_with_error_handling ((GObject *) win,
+ modest_ui_actions_move_folder_error_handler,
+ folder, NULL);
modest_mail_operation_queue_add (modest_runtime_get_mail_operation_queue (),
mail_op);
expand_root_items (self);
sel = gtk_tree_view_get_selection (GTK_TREE_VIEW (self));
- gtk_tree_model_get_iter_first (model, &iter);
+ if (!gtk_tree_model_get_iter_first (model, &iter)) {
+ g_warning ("%s: model is empty", __FUNCTION__);
+ return;
+ }
if (find_inbox_iter (model, &iter, &inbox_iter))
path = gtk_tree_model_get_path (model, &inbox_iter);
if (!model)
return FALSE;
-
- gtk_tree_model_get_iter_first (model, &iter);
+ if (!gtk_tree_model_get_iter_first (model, &iter)) {
+ g_warning ("%s: model is empty", __FUNCTION__);
+ return FALSE;
+ }
+
if (find_folder_iter (model, &iter, &folder_iter, folder)) {
GtkTreePath *path;