+
+ /* Get account data */
+ mgr = modest_runtime_get_account_mgr ();
+
+ settings = modest_account_mgr_load_account_settings (mgr, account_name);
+ if (!settings)
+ goto free_refs;
+
+ store_settings = modest_account_settings_get_store_settings (settings);
+ if (!store_settings)
+ goto free_refs;
+
+ if (priv->current_store_account != NULL)
+ g_free (priv->current_store_account);
+ priv->current_store_account = g_strdup (modest_server_account_settings_get_account_name (store_settings));
+
+ modest_folder_view_set_account_id_of_visible_server_account
+ (MODEST_FOLDER_VIEW (priv->folder_view),
+ priv->current_store_account);
+
+ modest_window_set_active_account (MODEST_WINDOW (self), account_name);
+ update_progress_hint (self);
+
+free_refs:
+ if (store_settings)
+ g_object_unref (store_settings);
+ if (settings)
+ g_object_unref (settings);
+
+}
+
+void
+modest_folder_window_set_mailbox (ModestFolderWindow *self,
+ const gchar *mailbox)
+{
+ ModestFolderWindowPrivate *priv = NULL;
+
+ g_return_if_fail (MODEST_IS_FOLDER_WINDOW(self));
+ priv = MODEST_FOLDER_WINDOW_GET_PRIVATE (self);
+
+ modest_folder_view_set_mailbox (MODEST_FOLDER_VIEW (priv->folder_view), mailbox);
+
+}
+
+static void
+setup_menu (ModestFolderWindow *self)
+{
+ g_return_if_fail (MODEST_IS_FOLDER_WINDOW(self));
+
+ /* folders actions */
+ modest_hildon2_window_add_to_menu (MODEST_HILDON2_WINDOW (self), _("mcen_me_new_folder"), NULL,
+ APP_MENU_CALLBACK (modest_ui_actions_on_new_folder),
+ NULL);
+ modest_hildon2_window_add_to_menu (MODEST_HILDON2_WINDOW (self), _("mcen_me_rename_folder"), NULL,
+ APP_MENU_CALLBACK (set_rename_edit_mode),
+ MODEST_DIMMING_CALLBACK (modest_ui_dimming_rules_on_rename_folder));
+ modest_hildon2_window_add_to_menu (MODEST_HILDON2_WINDOW (self), _("mcen_me_move_folder"), NULL,
+ APP_MENU_CALLBACK (set_moveto_edit_mode),
+ MODEST_DIMMING_CALLBACK (modest_ui_dimming_rules_on_folder_window_move_to));
+ modest_hildon2_window_add_to_menu (MODEST_HILDON2_WINDOW (self), _("mcen_me_delete_folder"), NULL,
+ APP_MENU_CALLBACK (set_delete_edit_mode),
+ MODEST_DIMMING_CALLBACK (modest_ui_dimming_rules_on_folder_window_delete));
+
+ /* send receive actions should be only one visible always */
+ modest_hildon2_window_add_to_menu (MODEST_HILDON2_WINDOW (self),
+ _("mcen_me_inbox_sendandreceive"),
+ NULL,
+ APP_MENU_CALLBACK (modest_ui_actions_on_send_receive),
+ MODEST_DIMMING_CALLBACK (modest_ui_dimming_rules_on_send_receive));
+
+ modest_hildon2_window_add_to_menu (MODEST_HILDON2_WINDOW (self), _("mcen_me_outbox_cancelsend"), NULL,
+ APP_MENU_CALLBACK (modest_ui_actions_cancel_send),
+ MODEST_DIMMING_CALLBACK (modest_ui_dimming_rules_on_cancel_sending_all));
+}
+
+static void
+on_folder_activated (ModestFolderView *folder_view,
+ TnyFolder *folder,
+ gpointer userdata)
+{
+ ModestFolderWindowPrivate *priv = NULL;
+ ModestWindow *headerwin;
+ ModestFolderWindow *self = (ModestFolderWindow *) userdata;
+
+ g_return_if_fail (MODEST_IS_FOLDER_WINDOW(self));
+
+ priv = MODEST_FOLDER_WINDOW_GET_PRIVATE (self);
+
+ if (!folder)
+ return;
+
+ if (!TNY_IS_FOLDER (folder))
+ return;
+
+ /* We cannot open noselect folders (fake ones) */
+ if (tny_folder_get_caps (folder) & TNY_FOLDER_CAPS_NOSELECT)
+ return;
+
+ headerwin = modest_header_window_new (folder, modest_window_get_active_account (MODEST_WINDOW (self)));
+
+ if (modest_window_mgr_register_window (modest_runtime_get_window_mgr (),
+ MODEST_WINDOW (headerwin),
+ MODEST_WINDOW (self))) {
+ gtk_widget_show (GTK_WIDGET (headerwin));
+ } else {
+ gtk_widget_destroy (GTK_WIDGET (headerwin));
+ headerwin = NULL;
+ }
+}
+
+static void
+set_delete_edit_mode (GtkButton *button,
+ ModestFolderWindow *self)
+{
+ modest_hildon2_window_set_edit_mode (MODEST_HILDON2_WINDOW (self), EDIT_MODE_COMMAND_DELETE);
+}
+
+static void
+set_moveto_edit_mode (GtkButton *button,
+ ModestFolderWindow *self)
+{
+ modest_hildon2_window_set_edit_mode (MODEST_HILDON2_WINDOW (self), EDIT_MODE_COMMAND_MOVE);