Changeset 1283

Show
Ignore:
Timestamp:
11/30/06 11:24:47
Author:
pvanhoof
Message:

Added two apis

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/ChangeLog

    r1281 r1283  
     12006-11-30  Philip Van Hoof <pvanhoof@gnome.org> 
     2 
     3        * Renamed TnyGtkAccountTreeModel to TnyGtkFolderTreeModel and adapted 
     4        the type to accept any TnyFolderStore instance 
     5 
     6        * This was a major API change in libtinymailui-gtk 
     7 
    182006-11-28  Philip Van Hoof <pvanhoof@gnome.org> 
    29 
  • trunk/bindings/python/tinymailui-gtk.override

    r1280 r1283  
    4242import tinymail.Folder as PyTnyFolder_Type 
    4343import tinymail.MimePart as PyTnyMimePart_Type 
     44import tinymail.List as PyTnyList_Type 
     45import tinymail.FolderStore as PyTnyFolderStore_Type 
    4446import tinymail.FolderStoreQuery as PyTnyFolderStoreQuery_Type 
    4547import tinymail.ui.MimePartSaver as PyTnyMimePartSaver_Type 
  • trunk/libtinymailui-gtk/tny-gtk-folder-store-tree-model.c

    r1280 r1283  
    112112                TnyFolderStore *folder = (TnyFolderStore*) tny_iterator_get_current (iter); 
    113113                GtkTreeIter tree_iter; 
    114              
     114 
    115115                gtk_tree_store_append (model, &tree_iter, parent_tree_iter); 
    116116 
     
    124124                        TNY_GTK_FOLDER_STORE_TREE_MODEL_INSTANCE_COLUMN, 
    125125                        folder, -1); 
    126              
     126 
    127127                recurse_folders_sync (self, folder, &tree_iter); 
    128              
    129               g_object_unref (G_OBJECT (folder)); 
     128 
     129              g_object_unref (G_OBJECT (folder)); 
    130130 
    131131                tny_iterator_next (iter);            
     
    148148 
    149149static void 
    150 tny_gtk_folder_store_tree_model_add (TnyGtkFolderStoreTreeModel *self, TnyFolderStore *folder_store, treeaddfunc func
     150tny_gtk_folder_store_tree_model_add_i (TnyGtkFolderStoreTreeModel *self, TnyFolderStore *folder_store, treeaddfunc func, const gchar *root_name
    151151{ 
    152152        GtkTreeStore *model = GTK_TREE_STORE (self); 
    153153        TnyList *folders = tny_simple_list_new (); 
    154154        GtkTreeIter name_iter; 
    155         const gchar *root_name; 
    156155 
    157156        func (model, &name_iter, NULL); 
    158157 
    159  
    160158        gtk_tree_store_set (model, &name_iter, 
    161                 TNY_GTK_FOLDER_STORE_TREE_MODEL_NAME_COLUMN, get_root_name (folder_store)
     159                TNY_GTK_FOLDER_STORE_TREE_MODEL_NAME_COLUMN, root_name
    162160                TNY_GTK_FOLDER_STORE_TREE_MODEL_UNREAD_COLUMN, 0, 
    163161                TNY_GTK_FOLDER_STORE_TREE_MODEL_TYPE_COLUMN, TNY_FOLDER_TYPE_ROOT, 
     
    173171 
    174172static void 
    175 tny_gtk_folder_store_tree_model_add_async (TnyGtkFolderStoreTreeModel *self, TnyFolderStore *folder_store, treeaddfunc func
     173tny_gtk_folder_store_tree_model_add_async_i (TnyGtkFolderStoreTreeModel *self, TnyFolderStore *folder_store, treeaddfunc func, const gchar *root_name
    176174{ 
    177175        GtkTreeStore *model = GTK_TREE_STORE (self); 
     
    191189 
    192190        gtk_tree_store_set (model, name_iter, 
    193                 TNY_GTK_FOLDER_STORE_TREE_MODEL_NAME_COLUMN, get_root_name (folder_store)
     191                TNY_GTK_FOLDER_STORE_TREE_MODEL_NAME_COLUMN, root_name
    194192                TNY_GTK_FOLDER_STORE_TREE_MODEL_UNREAD_COLUMN, 0, 
    195193                TNY_GTK_FOLDER_STORE_TREE_MODEL_TYPE_COLUMN, TNY_FOLDER_TYPE_ROOT, 
     
    205203 * tny_gtk_folder_store_tree_model_new: 
    206204 * @async: Whether or not this component should attempt to asynchronously fill the tree 
    207  * @query: the #TnyFolderStoreQuery that will be used to retrieve the 
    208  * folders of each folder_store 
     205 * @query: the #TnyFolderStoreQuery that will be used to retrieve the folders of each folder_store 
    209206 * 
    210207 * Return value: a new #GtkTreeModel instance suitable for showing   
     
    234231 
    235232        g_mutex_lock (me->iterator_lock); 
    236       if (me->first) 
     233      if (me->first) 
    237234        { 
    238235                g_list_foreach (me->first, destroy_folder_stores, NULL); 
     
    240237        } 
    241238        g_mutex_unlock (me->iterator_lock); 
    242      
     239 
    243240        g_mutex_free (me->iterator_lock); 
    244241        me->iterator_lock = NULL; 
     
    291288 
    292289 
    293  
    294 static void 
    295 tny_gtk_folder_store_tree_model_prepend (TnyList *self, GObject* item) 
     290/** 
     291 * tny_gtk_folder_store_tree_model_prepend: 
     292 * @self: A #TnyGtkFolderStoreTreeModel instance 
     293 * @item: A #TnyFolderStore instance to add 
     294 * @root_name: The node's root name  
     295 * 
     296 * Prepends an item to the model 
     297 **/ 
     298void 
     299tny_gtk_folder_store_tree_model_prepend (TnyGtkFolderStoreTreeModel *self, TnyFolderStore* item, const gchar *root_name) 
    296300{ 
    297301        TnyGtkFolderStoreTreeModel *me = (TnyGtkFolderStoreTreeModel*)self; 
     
    304308 
    305309        if (me->is_async) 
    306                 tny_gtk_folder_store_tree_model_add_async (me, TNY_FOLDER_STORE (item),  
    307                         gtk_tree_store_prepend); 
     310                tny_gtk_folder_store_tree_model_add_async_i (me, TNY_FOLDER_STORE (item),  
     311                        gtk_tree_store_prepend, root_name); 
    308312        else 
    309                 tny_gtk_folder_store_tree_model_add (me, TNY_FOLDER_STORE (item),  
    310                         gtk_tree_store_prepend); 
     313                tny_gtk_folder_store_tree_model_add_i (me, TNY_FOLDER_STORE (item),  
     314                        gtk_tree_store_prepend, root_name); 
     315 
     316        g_mutex_unlock (me->iterator_lock); 
     317
     318 
     319 
     320static void 
     321tny_gtk_folder_store_tree_model_prepend_i (TnyList *self, GObject* item) 
     322
     323        TnyGtkFolderStoreTreeModel *me = (TnyGtkFolderStoreTreeModel*)self; 
     324 
     325        g_mutex_lock (me->iterator_lock); 
     326 
     327        /* Prepend something to the list */ 
     328        g_object_ref (G_OBJECT (item)); 
     329        me->first = g_list_prepend (me->first, item); 
     330 
     331        if (me->is_async) 
     332                tny_gtk_folder_store_tree_model_add_async_i (me, TNY_FOLDER_STORE (item),  
     333                        gtk_tree_store_prepend, get_root_name (TNY_FOLDER_STORE (item))); 
     334        else 
     335                tny_gtk_folder_store_tree_model_add_i (me, TNY_FOLDER_STORE (item),  
     336                        gtk_tree_store_prepend, get_root_name (TNY_FOLDER_STORE (item))); 
    311337         
    312338        g_mutex_unlock (me->iterator_lock); 
    313339} 
    314340 
    315 static void 
    316 tny_gtk_folder_store_tree_model_append (TnyList *self, GObject* item) 
     341/** 
     342 * tny_gtk_folder_store_tree_model_append: 
     343 * @self_i: A #TnyGtkFolderStoreTreeModel instance 
     344 * @item: A #TnyFolderStore instance to add 
     345 * @root_name: The node's root name  
     346 * 
     347 * Appends an item to the model 
     348 **/ 
     349void 
     350tny_gtk_folder_store_tree_model_append (TnyGtkFolderStoreTreeModel *self, TnyFolderStore* item, const gchar *root_name) 
    317351{ 
    318352        TnyGtkFolderStoreTreeModel *me = (TnyGtkFolderStoreTreeModel*)self; 
     
    325359 
    326360        if (me->is_async) 
    327                 tny_gtk_folder_store_tree_model_add_async (me, TNY_FOLDER_STORE (item),  
    328                         gtk_tree_store_append); 
     361                tny_gtk_folder_store_tree_model_add_async_i (me, TNY_FOLDER_STORE (item),  
     362                        gtk_tree_store_append, root_name); 
    329363        else 
    330                 tny_gtk_folder_store_tree_model_add (me, TNY_FOLDER_STORE (item),  
    331                         gtk_tree_store_append); 
     364                tny_gtk_folder_store_tree_model_add_i (me, TNY_FOLDER_STORE (item),  
     365                        gtk_tree_store_append, root_name); 
     366 
     367        g_mutex_unlock (me->iterator_lock); 
     368
     369 
     370static void 
     371tny_gtk_folder_store_tree_model_append_i (TnyList *self, GObject* item) 
     372
     373        TnyGtkFolderStoreTreeModel *me = (TnyGtkFolderStoreTreeModel*)self; 
     374 
     375        g_mutex_lock (me->iterator_lock); 
     376 
     377        /* Append something to the list */ 
     378        g_object_ref (G_OBJECT (item)); 
     379        me->first = g_list_append (me->first, item); 
     380 
     381        if (me->is_async) 
     382                tny_gtk_folder_store_tree_model_add_async_i (me, TNY_FOLDER_STORE (item),  
     383                        gtk_tree_store_append, get_root_name (TNY_FOLDER_STORE (item))); 
     384        else 
     385                tny_gtk_folder_store_tree_model_add_i (me, TNY_FOLDER_STORE (item),  
     386                        gtk_tree_store_append, get_root_name (TNY_FOLDER_STORE (item))); 
    332387 
    333388        g_mutex_unlock (me->iterator_lock); 
     
    375430 
    376431                if (citem == item) 
    377               { 
     432              { 
    378433                        gtk_tree_store_remove (GTK_TREE_STORE (me), &iter); 
    379434                        g_object_unref (G_OBJECT (item)); 
     
    429484{ 
    430485        klass->get_length_func = tny_gtk_folder_store_tree_model_get_length; 
    431         klass->prepend_func = tny_gtk_folder_store_tree_model_prepend
    432         klass->append_func = tny_gtk_folder_store_tree_model_append
     486        klass->prepend_func = tny_gtk_folder_store_tree_model_prepend_i
     487        klass->append_func = tny_gtk_folder_store_tree_model_append_i
    433488        klass->remove_func = tny_gtk_folder_store_tree_model_remove; 
    434489        klass->create_iterator_func = tny_gtk_folder_store_tree_model_create_iterator; 
  • trunk/libtinymailui-gtk/tny-gtk-folder-store-tree-model.h

    r1280 r1283  
    7272GtkTreeModel* tny_gtk_folder_store_tree_model_new (gboolean async, TnyFolderStoreQuery *query); 
    7373 
     74void tny_gtk_folder_store_tree_model_prepend (TnyGtkFolderStoreTreeModel *self, TnyFolderStore* item, const gchar *root_name); 
     75void tny_gtk_folder_store_tree_model_append (TnyGtkFolderStoreTreeModel *self, TnyFolderStore* item, const gchar *root_name); 
     76 
    7477G_END_DECLS 
    7578