+
+static void
+edit_mode_changed (ModestFolderWindow *folder_window,
+ gint edit_mode_id,
+ gboolean enabled,
+ ModestFolderWindow *self)
+{
+ ModestFolderWindowPrivate *priv;
+ ModestFolderViewFilter filter = MODEST_FOLDER_VIEW_FILTER_NONE;
+
+ g_return_if_fail (MODEST_IS_FOLDER_WINDOW (self));
+ priv = MODEST_FOLDER_WINDOW_GET_PRIVATE (self);
+
+ switch (edit_mode_id) {
+ case EDIT_MODE_COMMAND_MOVE:
+ filter = MODEST_FOLDER_VIEW_FILTER_MOVEABLE;
+ break;
+ case EDIT_MODE_COMMAND_DELETE:
+ filter = MODEST_FOLDER_VIEW_FILTER_DELETABLE;
+ break;
+ case EDIT_MODE_COMMAND_RENAME:
+ filter = MODEST_FOLDER_VIEW_FILTER_RENAMEABLE;
+ break;
+ case MODEST_HILDON2_WINDOW_EDIT_MODE_NONE:
+ filter = MODEST_FOLDER_VIEW_FILTER_NONE;
+ break;
+ }
+
+ hildon_tree_view_set_action_area_visible (GTK_TREE_VIEW (priv->folder_view), !enabled);
+ if (enabled) {
+ modest_folder_view_set_filter (MODEST_FOLDER_VIEW (priv->folder_view),
+ filter);
+ } else {
+ GtkTreeSelection *sel;
+
+ /* Unselect all. This will prevent us from keeping a
+ reference to a TnyObject that we don't want to
+ have */
+ sel = gtk_tree_view_get_selection (GTK_TREE_VIEW (priv->folder_view));
+ gtk_tree_selection_unselect_all (sel);
+
+ modest_folder_view_unset_filter (MODEST_FOLDER_VIEW (priv->folder_view),
+ filter);
+ }
+}
+
+static gboolean
+on_map_event (GtkWidget *widget,
+ GdkEvent *event,
+ gpointer userdata)
+{
+ ModestFolderWindow *self = (ModestFolderWindow *) userdata;
+ ModestFolderWindowPrivate *priv = MODEST_FOLDER_WINDOW_GET_PRIVATE (self);
+
+ if (priv->progress_hint) {
+ hildon_gtk_window_set_progress_indicator (GTK_WINDOW (self), TRUE);
+ }
+
+ return FALSE;
+}
+
+static void
+update_progress_hint (ModestFolderWindow *self)
+{
+ ModestFolderWindowPrivate *priv = MODEST_FOLDER_WINDOW_GET_PRIVATE (self);
+
+ if (!priv->current_store_account)
+ return;
+
+ priv->progress_hint = modest_window_mgr_has_progress_operation_on_account (modest_runtime_get_window_mgr (),
+ priv->current_store_account);
+
+ if (GTK_WIDGET_VISIBLE (self)) {
+ hildon_gtk_window_set_progress_indicator (GTK_WINDOW (self), priv->progress_hint ? 1:0);
+ }
+}
+
+static void
+on_progress_list_changed (ModestWindowMgr *mgr,
+ ModestFolderWindow *self)
+{
+ update_progress_hint (self);
+}
+
+gboolean
+modest_folder_window_transfer_mode_enabled (ModestFolderWindow *self)
+{
+ ModestFolderWindowPrivate *priv = MODEST_FOLDER_WINDOW_GET_PRIVATE (self);
+
+ return priv->progress_hint;
+}