g_object_unref (iter);
}
-static void
-show_wrong_password_dialog (TnyAccount *account,
+static void
+show_wrong_password_dialog (TnyAccount *account,
gboolean show_banner)
-{
+{
+ g_debug ("%s: %s", __FUNCTION__, tny_account_get_id (account));
+
if (g_object_get_data (G_OBJECT (account), "connection_specific") != NULL) {
modest_ui_actions_on_smtp_servers (NULL, NULL);
} else {
/* Create and show the dialog */
if (proto && MODEST_IS_ACCOUNT_PROTOCOL (proto)) {
+ GtkWindow *parent;
+ ModestWindowMgr *mgr = modest_runtime_get_window_mgr ();
ModestAccountSettingsDialog *dialog =
modest_account_protocol_get_account_settings_dialog (proto, modest_account_name);
- modest_window_mgr_set_modal (modest_runtime_get_window_mgr (), GTK_WINDOW (dialog), NULL);
+
+ parent = modest_window_mgr_get_modal (mgr);
+ if (!parent)
+ parent = (GtkWindow *) modest_window_mgr_get_current_top (mgr);
+
+ modest_window_mgr_set_modal (mgr, GTK_WINDOW (dialog), parent);
gtk_widget_show (GTK_WIDGET (dialog));
}
}
g_return_val_if_fail (account, NULL);
- MODEST_DEBUG_BLOCK(
- g_debug ("%s: prompt (not shown) = %s\n", __FUNCTION__, prompt_not_used);
- );
+ g_debug ("%s: %s", __FUNCTION__, prompt_not_used);
/* Get a reference to myself */
self = MODEST_TNY_ACCOUNT_STORE (g_object_get_data (G_OBJECT(account), "account_store"));
if (settings_have_password) {
if (pwd) {
+ g_debug ("%s: going to show the dialog. Attempt count is %d", __FUNCTION__, attempt->count);
/* The password must be wrong, so show the account settings dialog so it can be corrected: */
show_wrong_password_dialog (account, TRUE);
gboolean retval = TRUE;
/* NOTE: account may be NULL in some cases */
- g_return_val_if_fail (error, FALSE);
+ if (!error)
+ return FALSE;
/* Get the server name: */
if (account) {
else if (error->code == TNY_SERVICE_ERROR_AUTHENTICATE ||
error->code == TNY_SERVICE_ERROR_CONNECT) {
TnyDevice *device = modest_runtime_get_device ();
-
- if (error->code == TNY_SERVICE_ERROR_CONNECT) {
- gboolean success;
- success = modest_account_mgr_get_server_account_username_has_succeeded (modest_runtime_get_account_mgr (),
- tny_account_get_id (account));
- if (success)
- goto end;
+ gboolean success;
+
+ /* If we get the connection error after establishing a
+ proper connection then do not show the dialog as we
+ are probably behind a firewall, or in a network
+ with connection issues. We just keep this code to
+ detect situations were the user does not enter the
+ server info properly */
+ success = modest_account_mgr_get_server_account_username_has_succeeded (modest_runtime_get_account_mgr (),
+ tny_account_get_id (account));
+
+ if (!success) {
+ g_debug ("%s: %s alert received (%s)", __FUNCTION__,
+ (error->code == TNY_SERVICE_ERROR_CONNECT) ? "connect" : "aunthenticate",
+ error->message);
+
+ modest_platform_run_information_dialog (NULL, prompt, TRUE);
+
+ /* Show the account dialog. Checking the online status
+ allows us to minimize the number of times that we
+ incorrectly show the dialog */
+ if (tny_device_is_online (device))
+ show_wrong_password_dialog (account,
+ (error->code == TNY_SERVICE_ERROR_CONNECT) ? FALSE : TRUE);
+ retval = TRUE;
}
-
- modest_platform_run_information_dialog (NULL, prompt, TRUE);
-
- /* Show the account dialog. Checking the online status
- allows us to minimize the number of times that we
- incorrectly show the dialog */
- if (tny_device_is_online (device))
- show_wrong_password_dialog (account,
- (error->code == TNY_SERVICE_ERROR_CONNECT) ? FALSE : TRUE);
-
- retval = TRUE;
}
- end:
+
g_debug ("%s: error code %d (%s", __FUNCTION__, error->code, error->message);
if (prompt)