* Removed the password_selected signal
authorSergio Villar Senin <svillar@igalia.com>
Wed, 24 Jan 2007 11:26:02 +0000 (11:26 +0000)
committerSergio Villar Senin <svillar@igalia.com>
Wed, 24 Jan 2007 11:26:02 +0000 (11:26 +0000)
* Added a g_main_depth check before setting a critical section with g_threads_*
* Removed an unused marshaller (because the password_selected signal removal)
* Added the options located in the configuration to the TnyAccount
* Removed the view_is_empty field from the ModestFolderView
* Moved the get_pass, forget_pass functions to the account store

pmo-trunk-r728

src/modest-account-mgr-helpers.c
src/modest-account-mgr-helpers.h
src/modest-account-mgr.c
src/modest-account-mgr.h
src/modest-marshal.list
src/modest-tny-account-store.c
src/modest-tny-account-store.h
src/modest-ui.c
src/widgets/modest-folder-view.c
src/widgets/modest-header-view.c

index ffe4445..45bb567 100644 (file)
@@ -76,6 +76,11 @@ modest_account_mgr_get_server_account_data (ModestAccountMgr *self, const gchar*
        data->password     = modest_account_mgr_get_string (self, name,
                                                            MODEST_ACCOUNT_PASSWORD,
                                                            TRUE, NULL);
+
+       data->options = modest_account_mgr_get_list (self, name,
+                                                    MODEST_ACCOUNT_OPTIONS,
+                                                    MODEST_CONF_VALUE_STRING,
+                                                    TRUE, NULL);
        return data;
 }
 
@@ -101,6 +106,15 @@ modest_account_mgr_free_server_account_data (ModestAccountMgr *self,
        g_free (data->password);
        data->password = NULL;
        
+       if (data->options) {
+               GSList *tmp = data->options;
+               while (tmp) {
+                       g_free (tmp->data);
+                       tmp = g_slist_next (tmp);
+               }
+               g_slist_free (data->options);
+       }
+
        g_free (data);
 }
 
index 8d63aba..9457de9 100644 (file)
@@ -41,6 +41,7 @@ typedef struct {
        gchar *username;
        ModestProtocol proto;
        gchar *password;
+       GSList *options;
 } ModestServerAccountData;
 
 typedef struct {
index 196a9fa..fc0994e 100644 (file)
@@ -447,7 +447,6 @@ modest_account_mgr_account_names (ModestAccountMgr * self, GError ** err)
 }
 
 
-
 gchar *
 modest_account_mgr_get_string (ModestAccountMgr *self, const gchar *name,
                               const gchar *key, gboolean server_account, GError **err) {
index 4171581..48e56bf 100644 (file)
@@ -64,7 +64,6 @@ struct _ModestAccountMgrClass {
                                    gpointer user_data);
 };
 
-
 /**
  * modest_account_mgr_get_type:
  * 
index 187d0bb..65b694c 100644 (file)
@@ -5,4 +5,4 @@ VOID:STRING,INT
 VOID:STRING,INT,INT
 VOID:STRING,BOOL
 VOID:STRING,STRING,BOOL
-VOID:STRING,POINTER,POINTER,POINTER
+
index 964269d..e4ba8ee 100644 (file)
@@ -63,7 +63,6 @@ static void    modest_tny_account_store_init                     (gpointer g, gp
 
 /* list my signals */
 enum {
-       PASSWORD_REQUESTED_SIGNAL,
        ACCOUNT_UPDATE_SIGNAL,
        LAST_SIGNAL
 };
@@ -82,6 +81,13 @@ struct _ModestTnyAccountStorePrivate {
 #define MODEST_TNY_ACCOUNT_STORE_GET_PRIVATE(o)      (G_TYPE_INSTANCE_GET_PRIVATE((o), \
                                                       MODEST_TYPE_TNY_ACCOUNT_STORE, \
                                                       ModestTnyAccountStorePrivate))
+
+static void    on_password_requested        (ModestTnyAccountStore *account_store, 
+                                            const gchar* account_name,
+                                            gchar **password, 
+                                            gboolean *cancel, 
+                                            gboolean *remember);
+
 /* globals */
 static GObjectClass *parent_class = NULL;
 
@@ -133,15 +139,6 @@ modest_tny_account_store_class_init (ModestTnyAccountStoreClass *klass)
        g_type_class_add_private (gobject_class,
                                  sizeof(ModestTnyAccountStorePrivate));
 
-       signals[PASSWORD_REQUESTED_SIGNAL] =
-               g_signal_new ("password_requested",
-                             G_TYPE_FROM_CLASS (gobject_class),
-                             G_SIGNAL_RUN_FIRST,
-                             G_STRUCT_OFFSET(ModestTnyAccountStoreClass, password_requested),
-                             NULL, NULL,
-                             modest_marshal_VOID__STRING_POINTER_POINTER_POINTER,
-                             G_TYPE_NONE, 4, G_TYPE_STRING, G_TYPE_POINTER, G_TYPE_POINTER, G_TYPE_POINTER);
-       
        signals[ACCOUNT_UPDATE_SIGNAL] =
                g_signal_new ("account_update",
                              G_TYPE_FROM_CLASS (gobject_class),
@@ -207,6 +204,62 @@ set_account_store_for_account (TnyAccount *account, ModestTnyAccountStore *store
        g_object_set_data (G_OBJECT(account), "account_store", (gpointer)store);
 }
 
+static void
+on_password_requested (ModestTnyAccountStore *account_store, 
+                      const gchar* account_name,
+                      gchar **password, 
+                      gboolean *cancel, 
+                      gboolean *remember)
+{
+       gchar *txt;
+       GtkWidget *dialog, *entry, *remember_pass_check;
+
+       dialog = gtk_dialog_new_with_buttons (_("Password requested"),
+                                             NULL,
+                                             GTK_DIALOG_MODAL,
+                                             GTK_STOCK_CANCEL,
+                                             GTK_RESPONSE_REJECT,
+                                             GTK_STOCK_OK,
+                                             GTK_RESPONSE_ACCEPT,
+                                             NULL);
+
+       txt = g_strdup_printf (_("Please enter your password for %s"), account_name);
+       gtk_box_pack_start (GTK_BOX(GTK_DIALOG(dialog)->vbox), gtk_label_new(txt),
+                           FALSE, FALSE, 0);
+       g_free (txt);
+
+       entry = gtk_entry_new_with_max_length (40);
+       gtk_entry_set_visibility (GTK_ENTRY(entry), FALSE);
+       gtk_entry_set_invisible_char (GTK_ENTRY(entry), 0x2022); /* bullet unichar */
+       
+       gtk_box_pack_start (GTK_BOX(GTK_DIALOG(dialog)->vbox), entry,
+                           TRUE, FALSE, 0);    
+
+       remember_pass_check = gtk_check_button_new_with_label (_("Remember password"));
+       gtk_box_pack_start (GTK_BOX(GTK_DIALOG(dialog)->vbox), remember_pass_check,
+                           TRUE, FALSE, 0);
+
+       gtk_widget_show_all (GTK_WIDGET(GTK_DIALOG(dialog)->vbox));
+       
+       if (gtk_dialog_run (GTK_DIALOG(dialog)) == GTK_RESPONSE_ACCEPT) {
+               *password = g_strdup (gtk_entry_get_text (GTK_ENTRY(entry)));
+               *cancel   = FALSE;
+       } else {
+               *password = NULL;
+               *cancel   = TRUE;
+       }
+
+       if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (remember_pass_check)))
+               *remember = TRUE;
+       else
+               *remember = FALSE;
+
+       gtk_widget_destroy (dialog);
+
+       while (gtk_events_pending ())
+               gtk_main_iteration ();
+}
+
 static gchar*
 get_password (TnyAccount *account, const gchar *prompt, gboolean *cancel)
 {
@@ -248,13 +301,12 @@ get_password (TnyAccount *account, const gchar *prompt, gboolean *cancel)
        /* if it was already asked, it must have been wrong, so ask again */
        if (already_asked || !pwd || strlen(pwd) == 0) {
 
-               /* we don't have it yet. we emit a signal to get the password somewhere */
+               /* we don't have it yet. Get the password from the user */
                const gchar* name = tny_account_get_name (account);
                gboolean remember;
                pwd = NULL;
 
-               g_signal_emit (G_OBJECT(self), signals[PASSWORD_REQUESTED_SIGNAL], 0,
-                              name, &pwd, cancel, &remember);
+               on_password_requested (self, name, &pwd, cancel, &remember);
 
                if (!*cancel) {
                        if (remember)
@@ -370,17 +422,29 @@ get_tny_account_from_server_account (ModestTnyAccountStore *self,
                return NULL;
        }
        
+       /* Set account store, session and id */
        set_account_store_for_account (TNY_ACCOUNT(tny_account), self);
        tny_camel_account_set_session (TNY_CAMEL_ACCOUNT(tny_account),  /* session */
-                                      priv->tny_session_camel);        
-       tny_account_set_id            (tny_account, account_data->account_name); /* id */
+                                      priv->tny_session_camel);
+       tny_account_set_id (tny_account, account_data->account_name); /* id */
+
+       /* Options */
+       if (account_data->options) {
+               GSList *tmp = account_data->options;
+               while (tmp) {
+                       tny_camel_account_add_option (TNY_CAMEL_ACCOUNT (tny_account),
+                                                     tmp->data);
+                       tmp = g_slist_next (tmp);
+               }
+       }
+       /* Hostname & Username */
+       if (account_data->username) 
+               tny_account_set_user (tny_account, account_data->username);
 
        if (account_data->hostname)
                tny_account_set_hostname (tny_account, account_data->hostname);
 
-       if (account_data->username) 
-               tny_account_set_user (tny_account, account_data->username);
-
+       /* Password functions */
        tny_account_set_pass_func (tny_account, get_password);
         tny_account_set_forget_pass_func (tny_account, forget_password);
 
@@ -429,11 +493,6 @@ modest_tny_account_store_new (ModestAccountMgr *account_mgr) {
        obj  = G_OBJECT(g_object_new(MODEST_TYPE_TNY_ACCOUNT_STORE, NULL));
        priv = MODEST_TNY_ACCOUNT_STORE_GET_PRIVATE(obj);
 
-       g_signal_connect (G_OBJECT(account_mgr), "account_changed",
-                                      G_CALLBACK (on_account_changed), obj);
-       g_signal_connect (G_OBJECT(account_mgr), "account_removed",
-                                      G_CALLBACK (on_account_removed), obj);
-
        pfact = TNY_PLATFORM_FACTORY (modest_tny_platform_factory_get_instance());
        if (!pfact) {
                g_printerr ("modest: cannot get platform factory instance\n");
@@ -441,16 +500,23 @@ modest_tny_account_store_new (ModestAccountMgr *account_mgr) {
                return NULL;
        } else
                priv->platform_fact = pfact;
-       
+
+       /* The session needs the platform factory */
        priv->tny_session_camel = tny_session_camel_new (TNY_ACCOUNT_STORE(obj));
        if (!priv->tny_session_camel) {
                g_printerr ("modest: cannot create TnySessionCamel instance\n");
                g_object_unref (obj);
                return NULL;
        }
-
        tny_session_camel_set_ui_locker (priv->tny_session_camel, tny_gtk_lockable_new ());
 
+
+       /* Connect signals */
+       g_signal_connect (G_OBJECT(account_mgr), "account_changed",
+                                      G_CALLBACK (on_account_changed), obj);
+       g_signal_connect (G_OBJECT(account_mgr), "account_removed",
+                                      G_CALLBACK (on_account_removed), obj);
+
        return MODEST_TNY_ACCOUNT_STORE(obj);
 }
 
@@ -544,7 +610,7 @@ get_tny_account_from_account (ModestTnyAccountStore *self, ModestAccountData *ac
 
 
 static void
-modest_tny_account_store_get_accounts  (TnyAccountStore *iface, TnyList *list,
+modest_tny_account_store_get_accounts  (TnyAccountStore *account_store, TnyList *list,
                                        TnyGetAccountsRequestType type)
 {
        ModestTnyAccountStore        *self;
@@ -553,22 +619,22 @@ modest_tny_account_store_get_accounts  (TnyAccountStore *iface, TnyList *list,
        ModestAccountMgr             *account_mgr; 
        TnyAccount                   *local_folder_account;
        
-       g_return_if_fail (iface);
+       g_return_if_fail (account_store);
        g_return_if_fail (TNY_IS_LIST(list));
 
-       self        = MODEST_TNY_ACCOUNT_STORE(iface);
+       self        = MODEST_TNY_ACCOUNT_STORE(account_store);
        priv        = MODEST_TNY_ACCOUNT_STORE_GET_PRIVATE(self);
        account_mgr = modest_tny_platform_factory_get_account_mgr_instance
                (MODEST_TNY_PLATFORM_FACTORY(priv->platform_fact));
        
        if (type == TNY_ACCOUNT_STORE_BOTH) {
-               modest_tny_account_store_get_accounts (iface, list, TNY_ACCOUNT_STORE_STORE_ACCOUNTS);
-               modest_tny_account_store_get_accounts (iface, list, TNY_ACCOUNT_STORE_TRANSPORT_ACCOUNTS);
+               modest_tny_account_store_get_accounts (account_store, list, TNY_ACCOUNT_STORE_STORE_ACCOUNTS);
+               modest_tny_account_store_get_accounts (account_store, list, TNY_ACCOUNT_STORE_TRANSPORT_ACCOUNTS);
        }
-       
+
        accounts = modest_account_mgr_account_names (account_mgr, NULL); 
        for (cursor = accounts; cursor; cursor = cursor->next) {
-               TnyAccount *tny_account;
+               TnyAccount *tny_account = NULL;
                ModestAccountData *account_data =
                        modest_account_mgr_get_account_data (account_mgr, 
                                                             (gchar*)cursor->data);
@@ -584,12 +650,12 @@ modest_tny_account_store_get_accounts  (TnyAccountStore *iface, TnyList *list,
 
        /* also, add the local folder pseudo-account */
        local_folder_account = get_local_folder_account (MODEST_TNY_ACCOUNT_STORE(self));
-       if (!local_folder_account) 
+       if (!local_folder_account)
                g_printerr ("modest: failed to add local folders account\n");
        else
                tny_list_prepend (list, G_OBJECT(local_folder_account));
        
-       tny_session_camel_set_account_store (priv->tny_session_camel, iface);
+       tny_session_camel_set_account_store (priv->tny_session_camel, account_store);
 }
 
 static const gchar*
index aa29ea8..a6b744d 100644 (file)
@@ -63,11 +63,6 @@ struct _ModestTnyAccountStore {
 struct _ModestTnyAccountStoreClass {
        GObjectClass parent_class;
 
-       void (*password_requested) (ModestTnyAccountStore *self,
-                                   const gchar *account_name,
-                                   gchar **password,
-                                   gboolean *cancel,
-                                   gpointer user_data);
        void (*account_update)    (ModestTnyAccountStore *self,
                                   const gchar *account_name,
                                   gpointer user_data);
index 1c028b2..dc3a7c5 100644 (file)
@@ -96,13 +96,6 @@ static void     reply_forward          (GtkWidget *widget,
 static gchar*   ask_for_folder_name    (GtkWindow *parent_window,
                                        const gchar *title);
 
-static void    _modest_ui_actions_on_password_requested   (ModestTnyAccountStore *account_store, 
-                                                        const gchar* account_name,
-                                                        gchar **password, 
-                                                        gboolean *cancel, 
-                                                        gboolean *remember, 
-                                                        ModestMainWindow *main_window);
-
 GType
 modest_ui_get_type (void)
 {
@@ -287,7 +280,7 @@ register_stock_icons ()
                        { MODEST_STOCK_DELETE, "delete", 0, 0, NULL },
                        { MODEST_STOCK_NEXT, "next", 0, 0, NULL },
                        { MODEST_STOCK_PREV, "prev", 0, 0, NULL },
-                       { MODEST_STOCK_STOP, "stop", 0, 0, NULL }
+/*                     { MODEST_STOCK_STOP, "stop", 0, 0, NULL } */
                };
       
                static gchar *items_names [] = {
@@ -300,7 +293,7 @@ register_stock_icons ()
                        MODEST_TOOLBAR_ICON_DELETE,
                        MODEST_TOOLBAR_ICON_NEXT,
                        MODEST_TOOLBAR_ICON_PREV,
-                       MODEST_TOOLBAR_ICON_STOP
+/*                     MODEST_TOOLBAR_ICON_STOP */
                };
 
                registered = TRUE;
@@ -389,12 +382,6 @@ connect_signals (ModestUI *self)
                          G_CALLBACK(_modest_ui_actions_on_online_toggle_toggled),
                          priv->main_window);
                
-       /* account store */
-       g_signal_connect (G_OBJECT (priv->account_store), 
-                         "password_requested",
-                         G_CALLBACK(_modest_ui_actions_on_password_requested),
-                         priv->main_window);
-
        /* Destroy window */
        g_signal_connect (G_OBJECT(priv->main_window), 
                          "destroy",
@@ -787,8 +774,8 @@ get_msg_cb (TnyFolder *folder, TnyMsg *msg, GError **err, gpointer user_data)
                widget_factory = modest_window_get_widget_factory (MODEST_WINDOW (helper->main_window));
                header_view = modest_widget_factory_get_header_view (widget_factory);
                g_object_unref (G_OBJECT (widget_factory));
-               _modest_ui_actions_on_item_not_found (header_view, 
-                                                     MODEST_ITEM_TYPE_MESSAGE, 
+               _modest_ui_actions_on_item_not_found (header_view,
+                                                     MODEST_ITEM_TYPE_MESSAGE,
                                                      helper->main_window);
                return;
        }
@@ -911,62 +898,6 @@ _modest_ui_actions_on_folder_selection_changed (ModestFolderView *folder_view,
        }
 }
 
-void
-_modest_ui_actions_on_password_requested (ModestTnyAccountStore *account_store, 
-                                        const gchar* account_name,
-                                        gchar **password, 
-                                        gboolean *cancel, 
-                                        gboolean *remember, 
-                                        ModestMainWindow *main_window)
-{
-       gchar *txt;
-       GtkWidget *dialog, *entry, *remember_pass_check;
-
-       dialog = gtk_dialog_new_with_buttons (_("Password requested"),
-                                             GTK_WINDOW (main_window),
-                                             GTK_DIALOG_MODAL,
-                                             GTK_STOCK_CANCEL,
-                                             GTK_RESPONSE_REJECT,
-                                             GTK_STOCK_OK,
-                                             GTK_RESPONSE_ACCEPT,
-                                             NULL);
-
-       txt = g_strdup_printf (_("Please enter your password for %s"), account_name);
-       gtk_box_pack_start (GTK_BOX(GTK_DIALOG(dialog)->vbox), gtk_label_new(txt),
-                           FALSE, FALSE, 0);
-       g_free (txt);
-
-       entry = gtk_entry_new_with_max_length (40);
-       gtk_entry_set_visibility (GTK_ENTRY(entry), FALSE);
-       gtk_entry_set_invisible_char (GTK_ENTRY(entry), 0x2022); /* bullet unichar */
-       
-       gtk_box_pack_start (GTK_BOX(GTK_DIALOG(dialog)->vbox), entry,
-                           TRUE, FALSE, 0);    
-
-       remember_pass_check = gtk_check_button_new_with_label (_("Remember password"));
-       gtk_box_pack_start (GTK_BOX(GTK_DIALOG(dialog)->vbox), remember_pass_check,
-                           TRUE, FALSE, 0);
-
-       gtk_widget_show_all (GTK_WIDGET(GTK_DIALOG(dialog)->vbox));
-       
-       if (gtk_dialog_run (GTK_DIALOG(dialog)) == GTK_RESPONSE_ACCEPT) {
-               *password = g_strdup (gtk_entry_get_text (GTK_ENTRY(entry)));
-               *cancel   = FALSE;
-       } else {
-               *password = NULL;
-               *cancel   = TRUE;
-       }
-
-       if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (remember_pass_check)))
-               *remember = TRUE;
-       else
-               *remember = FALSE;
-
-       gtk_widget_destroy (dialog);
-
-       while (gtk_events_pending ())
-               gtk_main_iteration ();
-}
 
 
 static gboolean
@@ -1082,8 +1013,9 @@ _modest_ui_actions_on_item_not_found (ModestHeaderView *header_view,
        factory = modest_tny_platform_factory_get_instance ();
        account_store = tny_platform_factory_new_account_store (factory);
        device = tny_account_store_get_device (account_store);
-       
-       gdk_threads_enter ();
+
+       if (g_main_depth > 0)   
+               gdk_threads_enter ();
        online = tny_device_is_online (device);
 
        if (online) {
@@ -1119,7 +1051,8 @@ _modest_ui_actions_on_item_not_found (ModestHeaderView *header_view,
                }
        }
        gtk_widget_destroy (dialog);
-       gdk_threads_leave ();
+       if (g_main_depth > 0)   
+               gdk_threads_leave ();
 }
 
 
index b8683bb..102c4e5 100644 (file)
@@ -77,7 +77,6 @@ struct _ModestFolderViewPrivate {
 
        TnyAccountStore     *account_store;
        TnyFolder           *cur_folder;
-       gboolean             view_is_empty;
 
        gulong               sig1, sig2;
        gulong              *store_accounts_handlers;
@@ -155,12 +154,19 @@ text_cell_data  (GtkTreeViewColumn *column,  GtkCellRenderer *renderer,
        gint unread;
        TnyFolderType type;
        
+       g_return_if_fail (column);
+       g_return_if_fail (tree_model);
+
        gtk_tree_model_get (tree_model, iter,
                            TNY_GTK_FOLDER_STORE_TREE_MODEL_NAME_COLUMN, &fname,
+                           TNY_GTK_FOLDER_STORE_TREE_MODEL_UNREAD_COLUMN, &unread,
                            TNY_GTK_FOLDER_STORE_TREE_MODEL_TYPE_COLUMN, &type,
-                           TNY_GTK_FOLDER_STORE_TREE_MODEL_UNREAD_COLUMN, &unread, -1);
+                           -1);
        rendobj = G_OBJECT(renderer);
 
+       if (!fname)
+               return;
+
        if (unread > 0) {
                gchar *folder_title = g_strdup_printf ("%s (%d)", fname, unread);
                g_object_set (rendobj,"text", folder_title,  "weight", 800, NULL);
@@ -247,7 +253,6 @@ modest_folder_view_init (ModestFolderView *obj)
        
        priv =  MODEST_FOLDER_VIEW_GET_PRIVATE(obj);
        
-       priv->view_is_empty  = TRUE;
        priv->account_store  = NULL;
        priv->cur_folder     = NULL;
        priv->query          = NULL;
@@ -349,8 +354,6 @@ static void
 on_account_update (TnyAccountStore *account_store, const gchar *account,
                   gpointer user_data)
 {
-       update_model_empty (MODEST_FOLDER_VIEW(user_data));
-       
        if (!update_model (MODEST_FOLDER_VIEW(user_data), 
                           MODEST_TNY_ACCOUNT_STORE(account_store)))
                g_printerr ("modest: failed to update model for changes in '%s'",
@@ -409,8 +412,6 @@ modest_folder_view_new (ModestTnyAccountStore *account_store,
 static gboolean
 update_model_empty (ModestFolderView *self)
 {
-       GtkTreeIter  iter;
-       GtkTreeStore *store;
        ModestFolderViewPrivate *priv;
        
        g_return_val_if_fail (self, FALSE);
@@ -423,17 +424,6 @@ update_model_empty (ModestFolderView *self)
                priv->store_accounts_handlers = NULL;
        }
 
-       /* Create the new model */
-       store = gtk_tree_store_new (1, G_TYPE_STRING);
-       gtk_tree_store_append (store, &iter, NULL);
-
-       gtk_tree_store_set (store, &iter, 0, _("(empty)"), -1);
-       
-       gtk_tree_view_set_model (GTK_TREE_VIEW(self),
-                                GTK_TREE_MODEL(store));
-       g_object_unref (store);
-       priv->view_is_empty = TRUE;
-
        g_signal_emit (G_OBJECT(self), signals[FOLDER_SELECTION_CHANGED_SIGNAL], 0,
                       NULL, TRUE);
        return TRUE;
@@ -459,7 +449,6 @@ update_store_account_handlers (ModestFolderView *self, TnyList *account_list)
        if (!tny_iterator_is_done (iter)) {
                gint i = 0;
 
-               priv->view_is_empty = FALSE;
                do  {
                        
                        priv->store_accounts_handlers [i++] =
@@ -489,7 +478,7 @@ update_model (ModestFolderView *self, ModestTnyAccountStore *account_store)
 
        priv =  MODEST_FOLDER_VIEW_GET_PRIVATE(self);
        
-       model        = tny_gtk_folder_store_tree_model_new (TRUE, NULL);
+       model        = tny_gtk_folder_store_tree_model_new (FALSE, NULL);
        account_list = TNY_LIST(model);
 
        tny_account_store_get_accounts (TNY_ACCOUNT_STORE(account_store),
@@ -530,10 +519,6 @@ on_selection_changed (GtkTreeSelection *sel, gpointer user_data)
        priv = MODEST_FOLDER_VIEW_GET_PRIVATE(user_data);
        priv->cur_selection = sel;
        
-       /* is_empty means that there is only the 'empty' item */
-       if (priv->view_is_empty)
-               return;
-
        /* folder was _un_selected if true */
        if (!gtk_tree_selection_get_selected (sel, &model, &iter)) {
                priv->cur_folder = NULL; /* FIXME: need this? */
index 0febbb9..bf131f5 100644 (file)
@@ -615,6 +615,7 @@ modest_header_view_set_folder (ModestHeaderView *self, TnyFolder *folder)
                                          on_refresh_folder,
                                          on_refresh_folder_status_update,
                                          self);
+
        /* no message selected */
        g_signal_emit (G_OBJECT(self), signals[HEADER_SELECTED_SIGNAL], 0,
                       NULL);