* Fixes NB#78699, there was a missing refilter before selecting the new folder
[modest] / src / modest-tny-account-store.c
index 1c3021b..4a4c4d1 100644 (file)
@@ -216,15 +216,6 @@ modest_tny_account_store_base_init (gpointer g_class)
                                      NULL, NULL,
                                      g_cclosure_marshal_VOID__OBJECT,
                                      G_TYPE_NONE, 1, TNY_TYPE_ACCOUNT);
-               
-/*             signals[TNY_ACCOUNT_STORE_CONNECTING_FINISHED] = */
-/*                     g_signal_new ("connecting_finished", */
-/*                                   TNY_TYPE_ACCOUNT_STORE, */
-/*                                   G_SIGNAL_RUN_FIRST, */
-/*                                   G_STRUCT_OFFSET (TnyAccountStoreIface, connecting_finished), */
-/*                                   NULL, NULL, */
-/*                                   g_cclosure_marshal_VOID__VOID,  */
-/*                                   G_TYPE_NONE, 0); */
 
                signals[PASSWORD_REQUESTED_SIGNAL] =
                        g_signal_new ("password_requested",
@@ -482,15 +473,10 @@ on_account_changed (ModestAccountMgr *acc_mgr,
                TnyAccount *tny_account;
                tny_account = TNY_ACCOUNT (tny_iterator_get_current (iter));
                if (tny_account) {
-                       TnyConnectionStatus conn_status = tny_account_get_connection_status (tny_account);
-
-                       if (conn_status != TNY_CONNECTION_STATUS_RECONNECTING &&
-                           conn_status != TNY_CONNECTION_STATUS_INIT) {
-                               if (!strcmp (tny_account_get_id (tny_account), account_name)) {
-                                       found = TRUE;
-                                       modest_tny_account_update_from_account (tny_account);
-                                       g_signal_emit (G_OBJECT(self), signals[ACCOUNT_CHANGED_SIGNAL], 0, tny_account);
-                               }
+                       if (!strcmp (tny_account_get_id (tny_account), account_name)) {
+                               found = TRUE;
+                               modest_tny_account_update_from_account (tny_account);
+                               g_signal_emit (G_OBJECT(self), signals[ACCOUNT_CHANGED_SIGNAL], 0, tny_account);
                        }
                        g_object_unref (tny_account);
                }
@@ -568,8 +554,11 @@ show_wrong_password_dialog (TnyAccount *account)
                                        
        gboolean created_dialog = FALSE;
        if (!found || !dialog) {
+               ModestAccountSettings *settings;
                dialog = modest_account_settings_dialog_new ();
-               modest_account_settings_dialog_set_account_name (dialog, modest_account_name);
+               settings = modest_account_mgr_load_account_settings (priv->account_mgr, modest_account_name);
+               modest_account_settings_dialog_set_account (dialog, settings);
+               g_object_unref (settings);
                modest_account_settings_dialog_switch_to_user_info (dialog);
                modest_window_mgr_set_modal (modest_runtime_get_window_mgr (), GTK_WINDOW (dialog));
                
@@ -602,20 +591,6 @@ show_wrong_password_dialog (TnyAccount *account)
 }
 #endif
 
-
-static void
-request_password_and_wait (ModestTnyAccountStore *account_store, 
-                                        const gchar* server_account_id,
-                                        gchar **username,
-                                        gchar **password,
-                                        gboolean *cancel, 
-                                        gboolean *remember)
-{
-       g_signal_emit (G_OBJECT(account_store), signals[PASSWORD_REQUESTED_SIGNAL], 0,
-                      server_account_id, /* server_account_name */
-                      username, password, cancel, remember);
-}
-
 /* This callback will be called by Tinymail when it needs the password
  * from the user or the account settings.
  * It can also call forget_password() before calling this,
@@ -715,9 +690,12 @@ get_password (TnyAccount *account, const gchar * prompt_not_used, gboolean *canc
                        /* Show an info banner, before we show the protected password dialog: */
                        show_password_warning_only();
                }
-               
-               request_password_and_wait (self, account_id, 
+
+               /* Request password */
+               g_signal_emit (G_OBJECT(account_store), signals[PASSWORD_REQUESTED_SIGNAL], 0,
+                              account_id, /* server_account_name */
                               &username, &pwd, cancel, &remember);
+
                
                if (!*cancel) {
                        /* The password will be returned as the result,
@@ -1226,6 +1204,8 @@ get_tny_account_by (TnyList *accounts,
        gboolean found = FALSE;
        TnyAccount *retval = NULL;
 
+       g_return_val_if_fail (accounts && TNY_IS_LIST(accounts), NULL);
+
        iter = tny_list_create_iterator (accounts);
        while (!tny_iterator_is_done (iter) && !found) {
                TnyAccount *tmp_account = NULL;
@@ -1362,14 +1342,16 @@ TnyAccount*
 modest_tny_account_store_get_smtp_specific_transport_account_for_open_connection (ModestTnyAccountStore *self,
                                                                                  const gchar *account_name)
 {
+       TnyDevice *device;
+
+       g_return_val_if_fail (self && MODEST_IS_TNY_ACCOUNT_STORE(self), NULL);
+       g_return_val_if_fail (account_name, NULL);
+
        /* Get the current connection: */
-       TnyDevice *device = modest_runtime_get_device ();
+       device = modest_runtime_get_device ();
        
        if (!tny_device_is_online (device))
                return NULL;
-
-       g_return_val_if_fail (self, NULL);
-       
        
 #ifdef MODEST_HAVE_CONIC
        g_return_val_if_fail (TNY_IS_MAEMO_CONIC_DEVICE (device), NULL);
@@ -1679,14 +1661,6 @@ on_account_disconnect_when_removing (TnyCamelAccount *account,
        self = MODEST_TNY_ACCOUNT_STORE (user_data);
        priv = MODEST_TNY_ACCOUNT_STORE_GET_PRIVATE (self);
 
-       if (canceled || err) {
-               /* The account was not cancelled */
-       } else {
-               /* Clear the cache if it's an store account */
-               if (TNY_IS_STORE_ACCOUNT (account))
-                       tny_store_account_delete_cache (TNY_STORE_ACCOUNT (account));
-       }
-
        /* Remove it from the list of accounts */
        if (TNY_IS_STORE_ACCOUNT (account))
                tny_list_remove (priv->store_accounts, (GObject *) account);
@@ -1699,10 +1673,15 @@ on_account_disconnect_when_removing (TnyCamelAccount *account,
        
        /* Unref the extra reference added by get_server_account */
        g_object_unref (account);
+
+       /* Clear the cache if it's an store account */
+       if (TNY_IS_STORE_ACCOUNT (account))
+               tny_store_account_delete_cache (TNY_STORE_ACCOUNT (account));
 }
 
 static void
-on_account_removed (ModestAccountMgr *acc_mgr, const gchar *account,
+on_account_removed (ModestAccountMgr *acc_mgr, 
+                   const gchar *account,
                    gpointer user_data)
 {
        TnyAccount *store_account = NULL, *transport_account = NULL;