it caused some hangs after folder transfer was completed.
pmo-trunk-r3154
g_return_val_if_fail (error_handler != NULL, obj);
priv->error_checking = error_handler;
+ priv->error_checking_user_data = user_data;
return obj;
}
GtkWidget *parent_window;
} ReplyForwardHelper;
+typedef struct _MoveToHelper {
+ ModestMailOperation *mail_op;
+ TnyFolder *folder;
+} MoveToHelper;
+
typedef struct _PasteAsAttachmentHelper {
ModestMsgEditWindow *window;
GtkWidget *banner;
gtk_widget_destroy (GTK_WIDGET(user_data));
}
+
static void
paste_as_attachment_free (gpointer data)
{
modest_ui_actions_move_folder_error_handler (ModestMailOperation *mail_op,
gpointer user_data)
{
+ ModestMainWindow *main_window = NULL;
+ GtkWidget *folder_view = NULL;
GObject *win = modest_mail_operation_get_source (mail_op);
const GError *error = NULL;
const gchar *message = NULL;
message = _("mail_in_ui_folder_move_target_error");
}
+ /* Disable next automatic folder selection */
+ if (MODEST_IS_MAIN_WINDOW (user_data)) {
+ main_window = MODEST_MAIN_WINDOW(user_data);
+ folder_view = modest_main_window_get_child_widget (main_window,
+ MODEST_WIDGET_TYPE_FOLDER_VIEW);
+ modest_folder_view_disable_next_folder_selection (MODEST_FOLDER_VIEW(folder_view));
+ }
+
/* Show notification dialog */
modest_platform_run_information_dialog ((win) ? GTK_WINDOW (win) : NULL, message);
g_object_unref (win);
modest_mail_operation_new_with_error_handling (MODEST_MAIL_OPERATION_TYPE_RECEIVE,
G_OBJECT(win),
modest_ui_actions_move_folder_error_handler,
- NULL);
+ win);
modest_mail_operation_queue_add (modest_runtime_get_mail_operation_queue (),
mail_op);
/* Select *after* the changes */
- modest_folder_view_select_folder (MODEST_FOLDER_VIEW(folder_view),
- TNY_FOLDER (src_folder), TRUE);
-
+ /* TODO: this function hangs UI after transfer */
+/* modest_folder_view_select_folder (MODEST_FOLDER_VIEW(folder_view), */
+/* TNY_FOLDER (src_folder), TRUE); */
+
modest_mail_operation_xfer_folder (mail_op,
TNY_FOLDER (src_folder),
dst_folder,
gint all = 0;
TnyFolderType type = TNY_FOLDER_TYPE_UNKNOWN;
GObject *instance = NULL;
-
+
g_return_if_fail (column);
g_return_if_fail (tree_model);
+ g_return_if_fail (iter != NULL);
gtk_tree_model_get (tree_model, iter,
TNY_GTK_FOLDER_STORE_TREE_MODEL_NAME_COLUMN, &fname,
callback_data->previous_name = g_strdup (name);
modest_tny_account_get_mmc_account_name (TNY_STORE_ACCOUNT (instance),
- on_get_mmc_account_name, callback_data);
+ on_get_mmc_account_name, callback_data);
}
g_object_unref (G_OBJECT (instance));
priv->query = NULL;
}
+/* modest_folder_view_disable_next_folder_selection (MODEST_FOLDER_VIEW(obj)); */
if (priv->folder_to_select) {
g_object_unref (G_OBJECT(priv->folder_to_select));
priv->folder_to_select = NULL;
folder_to_select_account = tny_folder_get_account (priv->folder_to_select);
if (folder_to_select_account == account) {
+/* modest_folder_view_disable_next_folder_selection (self); */
g_object_unref (priv->folder_to_select);
priv->folder_to_select = NULL;
}
gtk_tree_path_free (path);
}
- g_object_unref (priv->folder_to_select);
- priv->folder_to_select = NULL;
+
+ /* Disable next */
+ modest_folder_view_disable_next_folder_selection (self);
+/* g_object_unref (priv->folder_to_select); */
+/* priv->folder_to_select = NULL; */
}
}
+void
+modest_folder_view_disable_next_folder_selection (ModestFolderView *self)
+{
+ ModestFolderViewPrivate *priv = NULL;
+
+ g_return_if_fail (MODEST_IS_FOLDER_VIEW (self));
+ priv = MODEST_FOLDER_VIEW_GET_PRIVATE (self);
+
+ if (priv->folder_to_select)
+ g_object_unref(priv->folder_to_select);
+
+ priv->folder_to_select = NULL;
+}
+
gboolean
modest_folder_view_select_folder (ModestFolderView *self, TnyFolder *folder,
gboolean after_change)
* Stores a #TnyList of selected folders in the own clibpoard of
* @self folder view.
**/
-void
-modest_folder_view_copy_selection (ModestFolderView *folder_view);
+void modest_folder_view_copy_selection (ModestFolderView *folder_view);
/**
* modest_folder_view_cut_selection:
* @self folder view and filter them into folders tree model to
* hide these rows in treeview.
**/
-void
-modest_folder_view_cut_selection (ModestFolderView *folder_view);
+void modest_folder_view_cut_selection (ModestFolderView *folder_view);
/**
*
* Gets the selected folders to copy/cut.
**/
-void
-modest_folder_view_paste_selection (ModestFolderView *folder_view,
- TnyList **folders,
- gboolean *delete);
+void modest_folder_view_paste_selection (ModestFolderView *folder_view, TnyList **folders, gboolean *delete);
/*
* modest_folder_view_show_non_move_folders:
*
* Whether to show folders where no messages can be moved to
**/
-void
-modest_folder_view_show_non_move_folders (ModestFolderView *folder_view,
- gboolean show);
+void modest_folder_view_show_non_move_folders (ModestFolderView *folder_view, gboolean show);
/*
* modest_folder_view_copy_model:
* #GtkTreeFilterModel object for that model. This copied
* model will be asigned to @folder_view_dst.
**/
-void
-modest_folder_view_copy_model (ModestFolderView *folder_view_src,
- ModestFolderView *folder_view_dst);
+void modest_folder_view_copy_model (ModestFolderView *folder_view_src, ModestFolderView *folder_view_dst);
+
+/*
+ * modest_folder_disable_next_folder_selection:
+ * @folder_view: a #ModestFolderView
+ *
+ * Checks if folder_to_select private field is set and
+ * unref it in this case, assigning it to NULL to avoid
+ * next call to on_row_inserted_maybe_select_folder does
+ * not select any folder.
+ *
+ **/
+void modest_folder_view_disable_next_folder_selection (ModestFolderView *self);
G_END_DECLS