* Added some unit tests for ModestTextUtils
[modest] / src / widgets / modest-folder-view.c
index f88c0b3..be893a7 100644 (file)
@@ -357,11 +357,12 @@ modest_folder_view_disconnect_store_account_handlers (GtkTreeView *self)
 
        priv =  MODEST_FOLDER_VIEW_GET_PRIVATE (self);  
        iter = tny_list_create_iterator (TNY_LIST (model));
-       do {
+       while (!tny_iterator_is_done (iter)) {
                g_signal_handler_disconnect (G_OBJECT (tny_iterator_get_current (iter)),
                                             priv->store_accounts_handlers [i++]);
                tny_iterator_next (iter);
-       } while (!tny_iterator_is_done (iter));
+       }
+       g_object_unref (G_OBJECT (iter));
 }
 
 
@@ -520,24 +521,24 @@ update_model_empty (ModestFolderView *self)
 static void
 update_store_account_handlers (ModestFolderView *self, TnyList *account_list)
 {
-       gint size;
        ModestFolderViewPrivate *priv;
        TnyIterator *iter;
+       guint len;
        
        priv =  MODEST_FOLDER_VIEW_GET_PRIVATE(self);
 
        /* Listen to subscription changes */
-       size = tny_list_get_length (TNY_LIST (account_list)) * sizeof (gulong);
+       len = tny_list_get_length (TNY_LIST (account_list));
 
        g_assert (priv->store_accounts_handlers == NULL); /* don't leak */
-       priv->store_accounts_handlers = g_malloc0 (size);
+       priv->store_accounts_handlers = g_malloc0 (sizeof (guint) * len);
        iter = tny_list_create_iterator (account_list);
        
-       if (!tny_iterator_is_done (iter))       
-               priv->view_is_empty = FALSE; 
-       else {
+       if (!tny_iterator_is_done (iter)) {
                gint i = 0;
-               while (!tny_iterator_is_done (iter)) {
+
+               priv->view_is_empty = FALSE;
+               do  {
                        
                        priv->store_accounts_handlers [i++] =
                                g_signal_connect (G_OBJECT (tny_iterator_get_current (iter)),
@@ -545,11 +546,13 @@ update_store_account_handlers (ModestFolderView *self, TnyList *account_list)
                                                  G_CALLBACK (on_subscription_changed),
                                                  self);
                        tny_iterator_next (iter);
-                       }
-       }       
-       g_object_unref (iter);                         
+               } while (!tny_iterator_is_done (iter));
+       }
+       g_object_unref (G_OBJECT (iter));       
 }
 
+
+
 static gboolean
 update_model (ModestFolderView *self, ModestTnyAccountStore *account_store)
 {
@@ -560,10 +563,8 @@ update_model (ModestFolderView *self, ModestTnyAccountStore *account_store)
 
        g_return_val_if_fail (account_store, FALSE);
        priv =  MODEST_FOLDER_VIEW_GET_PRIVATE(self);
-
-       update_model_empty (self); /* cleanup */
-
-       model        = tny_gtk_folder_store_tree_model_new (TRUE,NULL);
+       
+       model        = tny_gtk_folder_store_tree_model_new (TRUE, NULL);
        account_list = TNY_LIST(model);
 
        tny_account_store_get_accounts (TNY_ACCOUNT_STORE(account_store),
@@ -600,26 +601,26 @@ 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? */
+               priv->cur_folder = NULL; /* FIXME: need this? */
                return; 
        }
        
        tree_view = MODEST_FOLDER_VIEW (user_data);
-       gtk_tree_model_get (model, &iter, 
-                           TNY_GTK_FOLDER_STORE_TREE_MODEL_TYPE_COLUMN, &type, 
-                           TNY_GTK_FOLDER_STORE_TREE_MODEL_INSTANCE_COLUMN, &folder, 
+       gtk_tree_model_get (model, &iter,
+                           TNY_GTK_FOLDER_STORE_TREE_MODEL_TYPE_COLUMN, &type,
+                           TNY_GTK_FOLDER_STORE_TREE_MODEL_INSTANCE_COLUMN, &folder,
                            -1);
-       
+
        if (type == TNY_FOLDER_TYPE_ROOT)
-               return; 
-       
+               return;
+
        /* emit 2 signals: one for the unselection of the old one,
         * and one for the selection of the new on */
        g_signal_emit (G_OBJECT(tree_view), signals[FOLDER_SELECTION_CHANGED_SIGNAL], 0,
@@ -630,6 +631,7 @@ on_selection_changed (GtkTreeSelection *sel, gpointer user_data)
        if (priv->cur_folder)
                tny_folder_expunge (priv->cur_folder, NULL); /* FIXME */
        priv->cur_folder = folder;
+
 }
 
 static void 
@@ -651,7 +653,7 @@ static gboolean
 modest_folder_view_update_model (ModestFolderView *self, TnyAccountStore *account_store)
 {
        gboolean retval;
-       
+
        g_return_val_if_fail (MODEST_IS_FOLDER_VIEW (self), FALSE);
        retval = update_model (self, MODEST_TNY_ACCOUNT_STORE(account_store)); /* ugly */