+ /* Notify the queue */
+ modest_mail_operation_queue_remove (modest_runtime_get_mail_operation_queue (), self);
+}
+
+static void
+on_refresh_folder_status_update (TnyFolder *folder, const gchar *msg,
+ gint num, gint total, gpointer user_data)
+{
+ ModestMailOperation *self;
+ ModestMailOperationPrivate *priv;
+
+ self = MODEST_MAIL_OPERATION (user_data);
+ priv = MODEST_MAIL_OPERATION_GET_PRIVATE(self);
+
+ priv->done = num;
+ priv->total = total;
+
+ if (num == 1 && total == 100)
+ return;
+
+ g_signal_emit (G_OBJECT (self), signals[PROGRESS_CHANGED_SIGNAL], 0, NULL);
+}
+
+void
+modest_mail_operation_refresh_folder (ModestMailOperation *self,
+ TnyFolder *folder)
+{
+ ModestMailOperationPrivate *priv;
+
+ priv = MODEST_MAIL_OPERATION_GET_PRIVATE(self);
+
+ /* Pick a reference */
+ g_object_ref (folder);
+
+ priv->status = MODEST_MAIL_OPERATION_STATUS_IN_PROGRESS;
+
+ /* Refresh the folder */
+ tny_folder_refresh_async (folder,
+ on_refresh_folder,
+ on_refresh_folder_status_update,
+ self);
+}
+
+void
+_modest_mail_operation_notify_end (ModestMailOperation *self)
+{
+ g_signal_emit (G_OBJECT (self), signals[PROGRESS_CHANGED_SIGNAL], 0, NULL);