#include <modest-defs.h>
#include "modest-maemo-utils.h"
#include "modest-maemo-security-options-view.h"
+#include "modest-ui-actions.h"
#include "widgets/modest-ui-constants.h"
#include <tny-account.h>
#include <tny-status.h>
{
ModestDefaultAccountSettingsDialog *self;
ModestDefaultAccountSettingsDialogPrivate *priv;
- ModestAccountMgr *account_mgr;
- gchar *account_title = NULL;
+ gchar *account_title;
+ gboolean removed;
self = MODEST_DEFAULT_ACCOUNT_SETTINGS_DIALOG (user_data);
priv = MODEST_DEFAULT_ACCOUNT_SETTINGS_DIALOG_GET_PRIVATE (self);
- account_mgr = modest_runtime_get_account_mgr();
- if(!priv->account_name)
- return;
-
account_title = get_entered_account_title (self);
-
- /* The warning text depends on the account type: */
- gchar *txt = NULL;
- gint response;
- ModestProtocol *protocol;
- protocol = modest_protocol_registry_get_protocol_by_type (
- modest_runtime_get_protocol_registry (),
- modest_account_mgr_get_store_protocol (account_mgr, priv->account_name));
- txt = modest_protocol_get_translation (protocol,
- MODEST_PROTOCOL_TRANSLATION_DELETE_MAILBOX,
- account_title);
- if (txt == NULL) {
- txt = g_strdup_printf (_("emev_nc_delete_mailbox"),
- account_title);
- }
-
- response = modest_platform_run_confirmation_dialog (GTK_WINDOW (self), txt);
- g_free (txt);
- txt = NULL;
-
- if (response == GTK_RESPONSE_OK) {
- /* Remove account. If it succeeds then it also removes
- the account from the ModestAccountView: */
- gboolean is_default = FALSE;
- gchar *default_account_name = modest_account_mgr_get_default_account (account_mgr);
- if (default_account_name && (strcmp (default_account_name, priv->account_name) == 0))
- is_default = TRUE;
- g_free (default_account_name);
-
- gboolean removed = modest_account_mgr_remove_account (account_mgr, priv->account_name);
- if (!removed) {
- g_warning ("%s: modest_account_mgr_remove_account() failed.\n", __FUNCTION__);
- }
- gtk_widget_destroy (GTK_WIDGET (self));
- }
+ removed = modest_ui_actions_on_delete_account (GTK_WINDOW (self),
+ priv->account_name,
+ (const gchar *) account_title);
g_free (account_title);
-
+
+ /* Close window */
+ if (removed)
+ gtk_widget_destroy (GTK_WIDGET (self));
}
static GtkWidget*
#include <modest-runtime.h>
#include "modest-platform.h"
+#include "modest-ui-actions.h"
#include "modest-account-protocol.h"
#include <modest-account-mgr-helpers.h>
#include <string.h>
account_mgr = modest_runtime_get_account_mgr();
account_name = modest_account_view_get_selected_account (priv->account_view);
- if(!account_name)
- return;
-
account_title = modest_account_mgr_get_display_name(account_mgr, account_name);
- /* This could happen if the account is being deleted */
- if (!account_title)
- return;
-
- if (check_for_active_account (self, account_name)) {
- /* The warning text depends on the account type: */
- gchar *txt = NULL;
- gint response;
- ModestProtocol *protocol;
-
- protocol = modest_protocol_registry_get_protocol_by_type (modest_runtime_get_protocol_registry (),
- modest_account_mgr_get_store_protocol (account_mgr, account_name));
- txt = modest_protocol_get_translation (protocol, MODEST_PROTOCOL_TRANSLATION_DELETE_MAILBOX, account_title);
- if (txt == NULL) {
- txt = g_strdup_printf (_("emev_nc_delete_mailbox"),
- account_title);
- }
-
- response = modest_platform_run_confirmation_dialog (GTK_WINDOW (self), txt);
- g_free (txt);
- txt = NULL;
-
- if (response == GTK_RESPONSE_OK) {
- /* Remove account. If it succeeds then it also removes
- the account from the ModestAccountView: */
- gboolean is_default = FALSE;
- gchar *default_account_name = modest_account_mgr_get_default_account (account_mgr);
- if (default_account_name && (strcmp (default_account_name, account_name) == 0))
- is_default = TRUE;
- g_free (default_account_name);
-
- gboolean removed = modest_account_mgr_remove_account (account_mgr, account_name);
- if (!removed) {
- g_warning ("%s: modest_account_mgr_remove_account() failed.\n", __FUNCTION__);
- }
- }
- g_free (account_title);
- }
+ if (check_for_active_account (self, account_name))
+ modest_ui_actions_on_delete_account (GTK_WINDOW (self), account_name, account_title);
+
+ g_free (account_title);
g_free (account_name);
}
return msg;
}
+
+gboolean
+modest_ui_actions_on_delete_account (GtkWindow *parent_window,
+ const gchar *account_name,
+ const gchar *account_title)
+{
+ ModestAccountMgr *account_mgr;
+ gchar *txt = NULL;
+ gint response;
+ ModestProtocol *protocol;
+ gboolean removed = FALSE;
+
+ g_return_val_if_fail (account_name, FALSE);
+ g_return_val_if_fail (account_title, FALSE);
+
+ account_mgr = modest_runtime_get_account_mgr();
+
+ /* The warning text depends on the account type: */
+ protocol = modest_protocol_registry_get_protocol_by_type (modest_runtime_get_protocol_registry (),
+ modest_account_mgr_get_store_protocol (account_mgr,
+ account_name));
+ txt = modest_protocol_get_translation (protocol,
+ MODEST_PROTOCOL_TRANSLATION_DELETE_MAILBOX,
+ account_title);
+ if (txt == NULL)
+ txt = g_strdup_printf (_("emev_nc_delete_mailbox"), account_title);
+
+ response = modest_platform_run_confirmation_dialog (parent_window, txt);
+ g_free (txt);
+ txt = NULL;
+
+ if (response == GTK_RESPONSE_OK) {
+ /* Remove account. If it succeeds then it also removes
+ the account from the ModestAccountView: */
+ gboolean is_default = FALSE;
+ gchar *default_account_name = modest_account_mgr_get_default_account (account_mgr);
+ if (default_account_name && (strcmp (default_account_name, account_name) == 0))
+ is_default = TRUE;
+ g_free (default_account_name);
+
+ removed = modest_account_mgr_remove_account (account_mgr, account_name);
+ if (!removed)
+ g_warning ("%s: modest_account_mgr_remove_account() failed.\n", __FUNCTION__);
+ }
+ return removed;
+}
TnyList *headers,
TnyFolder *dst_folder);
+/**
+ * modest_ui_actions_on_delete_account:
+ * @parent_window: the parent #GtkWindow of the dialog that will be shown
+ * @account_name: the modest name for the account to be deleted
+ * @account_display_name: the display name that will be used in the dialog
+ *
+ * This function will perform the actions required to delete an
+ * account. This function assumes that the account to be deleted is
+ * already disconnected, so the caller must verify that this is the
+ * case. Otherwise weird behaviours could happen
+ *
+ * Returns: TRUE if the account was successfully deleted, FALSE otherwise
+ **/
+gboolean modest_ui_actions_on_delete_account (GtkWindow *parent_window,
+ const gchar *account_name,
+ const gchar *account_display_name);
+
G_END_DECLS
#endif /* __MODEST_UI_ACTIONS_H__ */