Changeset 2042

Show
Ignore:
Timestamp:
05/23/07 15:23:30
Author:
murrayc
Message:

2007-05-23 Murray Cumming <murrayc@murrayc.com>

        • libtinymailui-gtk/tny-gtk-folder-store-tree-model.c:

(recurse_folders_sync): Do not assume that the row instance is a
TnyFolderStore, because not all TnyFolders? are TnyFolderStores?.
This allows us to use this tree model with TnyMergeFolder.
|

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/ChangeLog

    r2039 r2042  
     12007-05-23  Murray Cumming  <murrayc@murrayc.com> 
     2 
     3        * libtinymailui-gtk/tny-gtk-folder-store-tree-model.c: 
     4        (recurse_folders_sync): Do not assume that the row instance is a  
     5        TnyFolderStore, because not all TnyFolders are TnyFolderStores.  
     6        This allows us to use this tree model with TnyMergeFolder. 
     7 
    182007-05-22  Murray Cumming  <murrayc@murrayc.com> 
    29 
  • trunk/libtinymailui-gtk/tny-gtk-folder-store-tree-model.c

    r1994 r2042  
    133133        { 
    134134                GtkTreeStore *model = GTK_TREE_STORE (self); 
    135                 TnyFolderStore *folder = (TnyFolderStore*) tny_iterator_get_current (iter); 
     135                GObject *instance = G_OBJECT (tny_iterator_get_current (iter)); 
    136136                GtkTreeIter tree_iter; 
    137137 
    138138                gtk_tree_store_append (model, &tree_iter, parent_tree_iter); 
    139139 
    140                 if (TNY_IS_FOLDER (folder)) 
     140                TnyFolder *folder = NULL; 
     141                TnyFolderStore *folder_store = NULL; 
     142                 
     143                if (TNY_IS_FOLDER (instance)) 
     144                        folder = TNY_FOLDER (instance); 
     145                 
     146                if (TNY_IS_FOLDER_STORE (folder)) 
     147                        folder_store =  TNY_FOLDER_STORE (instance); 
     148                         
     149                if (folder) 
    141150                { 
    142                         tny_folder_add_observer (TNY_FOLDER (folder), TNY_FOLDER_OBSERVER (self)); 
     151                        tny_folder_add_observer (folder, TNY_FOLDER_OBSERVER (self)); 
    143152                        me->folder_observables = g_list_prepend (me->folder_observables, folder); 
    144153                } 
    145154 
    146                 if (TNY_IS_FOLDER_STORE (folder)
     155                if (folder_store
    147156                { 
    148                         tny_folder_store_add_observer (TNY_FOLDER_STORE (folder), TNY_FOLDER_STORE_OBSERVER (self)); 
     157                        tny_folder_store_add_observer (folder_store, TNY_FOLDER_STORE_OBSERVER (self)); 
    149158                        me->store_observables = g_list_prepend (me->store_observables, folder); 
    150159                } 
     
    154163                   reference count is decreased automatically by the gtktreestore infra- 
    155164                   structure. */ 
    156  
    157                 gtk_tree_store_set (model, &tree_iter, 
    158                         TNY_GTK_FOLDER_STORE_TREE_MODEL_NAME_COLUMN,  
    159                         tny_folder_get_name (TNY_FOLDER (folder)), 
    160                         TNY_GTK_FOLDER_STORE_TREE_MODEL_UNREAD_COLUMN,  
    161                         tny_folder_get_unread_count (TNY_FOLDER (folder)), 
    162                         TNY_GTK_FOLDER_STORE_TREE_MODEL_ALL_COLUMN,  
    163                         tny_folder_get_all_count (TNY_FOLDER (folder)), 
    164                         TNY_GTK_FOLDER_STORE_TREE_MODEL_TYPE_COLUMN, 
    165                         tny_folder_get_folder_type (TNY_FOLDER (folder)), 
    166                         TNY_GTK_FOLDER_STORE_TREE_MODEL_INSTANCE_COLUMN, 
    167                         folder, -1); 
    168  
    169                 recurse_folders_sync (self, folder, &tree_iter); 
     165                if (folder) 
     166                { 
     167                        TnyFolder *folder = TNY_FOLDER (instance); 
     168                         
     169                        gtk_tree_store_set (model, &tree_iter, 
     170                                TNY_GTK_FOLDER_STORE_TREE_MODEL_NAME_COLUMN,  
     171                                tny_folder_get_name (TNY_FOLDER (folder)), 
     172                                TNY_GTK_FOLDER_STORE_TREE_MODEL_UNREAD_COLUMN,  
     173                                tny_folder_get_unread_count (TNY_FOLDER (folder)), 
     174                                TNY_GTK_FOLDER_STORE_TREE_MODEL_ALL_COLUMN,  
     175                                tny_folder_get_all_count (TNY_FOLDER (folder)), 
     176                                TNY_GTK_FOLDER_STORE_TREE_MODEL_TYPE_COLUMN, 
     177                                tny_folder_get_folder_type (TNY_FOLDER (folder)), 
     178                                TNY_GTK_FOLDER_STORE_TREE_MODEL_INSTANCE_COLUMN, 
     179                                folder, -1); 
     180                } 
     181 
     182                if (folder_store) 
     183                        recurse_folders_sync (self, folder_store, &tree_iter); 
    170184 
    171185 
     
    173187                *Also look at tny-camel-folder:c:2818... for more information */ 
    174188 
    175                 tny_folder_poke_status (TNY_FOLDER (folder)); 
    176  
    177                 g_object_unref (G_OBJECT (folder)); 
     189                if (folder) 
     190                        tny_folder_poke_status (TNY_FOLDER (folder)); 
     191 
     192                g_object_unref (G_OBJECT (instance)); 
    178193 
    179194                tny_iterator_next (iter);