+2007-06-22 Murray Cumming <murrayc@murrayc.com>
+
+ * src/modest-tny-account-store.c: (get_password):
+ Use tny_account_set_username() to tell tinymail that the username might
+ have changed too. But tinymail ignores this: see projects.maemo.org
+ bug #61463.
+ * src/modest-ui-actions.c:
+ (modest_ui_actions_on_password_requested): Remove the useless attempt to
+ reset the connection when changing the username, and improve the comments.
+ Save the changed username to gconf at least, so it is used when Modest is
+ restarted.
+
2007-06-21 Murray Cumming <murrayc@murrayc.com>
* src/dbus_api/modest-dbus-callbacks.c: (add_folders_to_list):
/* This callback will be called by Tinymail when it needs the password
* from the user, for instance if the password was not remembered.
+ * It also calls forget_password() before calling this,
+ * so that we clear wrong passwords out of our account settings.
* Note that TnyAccount here will be the server account. */
static gchar*
-get_password (TnyAccount *account, const gchar *prompt, gboolean *cancel)
+get_password (TnyAccount *account, const gchar * prompt_not_used, gboolean *cancel)
{
/* Initialize the output parameter: */
if (cancel)
gboolean remember = FALSE;
pwd = NULL;
- /* Note that we ignore the returned username here,
- * because it is enough that it will be stored in gconf
- * by the signal handler. */
g_signal_emit (G_OBJECT(self), signals[PASSWORD_REQUESTED_SIGNAL], 0,
account_id, /* server_account_name */
&username, &pwd, cancel, &remember);
if (!*cancel) {
- if (remember)
+ /* The password will be returned as the result,
+ * but we need to tell tinymail about the username too: */
+ tny_account_set_user (account, username);
+
+ if (remember) {
+ printf ("%s: Storing username=%s, password=%s\n",
+ __FUNCTION__, username, pwd);
+ modest_account_mgr_set_string (priv->account_mgr,key,
+ MODEST_ACCOUNT_USERNAME,
+ username, TRUE);
modest_account_mgr_set_string (priv->account_mgr,key,
MODEST_ACCOUNT_PASSWORD,
pwd, TRUE);
+ }
/* We need to dup the string even knowing that
it's already a dup of the contents of an
entry, because it if it's wrong, then camel
const gboolean username_was_changed =
(strcmp (*username, initial_username) != 0);
if (username_was_changed) {
- /* To actually use a changed username,
- * we must reset the connection, according to pvanhoof.
- * This _might_ be a sensible way to do that: */
- TnyDevice *device = modest_runtime_get_device();
- tny_device_force_offline (device);
- tny_device_force_online (device);
+ g_warning ("%s: tinymail does not yet support changing the "
+ "username in the get_password() callback.\n", __FUNCTION__);
}
}