Changeset 1283
- Timestamp:
- 11/30/06 11:24:47
- Files:
-
- trunk/ChangeLog (modified) (1 diff)
- trunk/bindings/python/tinymailui-gtk.override (modified) (1 diff)
- trunk/libtinymailui-gtk/tny-gtk-folder-store-tree-model.c (modified) (13 diffs)
- trunk/libtinymailui-gtk/tny-gtk-folder-store-tree-model.h (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
trunk/ChangeLog
r1281 r1283 1 2006-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 1 8 2006-11-28 Philip Van Hoof <pvanhoof@gnome.org> 2 9 trunk/bindings/python/tinymailui-gtk.override
r1280 r1283 42 42 import tinymail.Folder as PyTnyFolder_Type 43 43 import tinymail.MimePart as PyTnyMimePart_Type 44 import tinymail.List as PyTnyList_Type 45 import tinymail.FolderStore as PyTnyFolderStore_Type 44 46 import tinymail.FolderStoreQuery as PyTnyFolderStoreQuery_Type 45 47 import tinymail.ui.MimePartSaver as PyTnyMimePartSaver_Type trunk/libtinymailui-gtk/tny-gtk-folder-store-tree-model.c
r1280 r1283 112 112 TnyFolderStore *folder = (TnyFolderStore*) tny_iterator_get_current (iter); 113 113 GtkTreeIter tree_iter; 114 114 115 115 gtk_tree_store_append (model, &tree_iter, parent_tree_iter); 116 116 … … 124 124 TNY_GTK_FOLDER_STORE_TREE_MODEL_INSTANCE_COLUMN, 125 125 folder, -1); 126 126 127 127 recurse_folders_sync (self, folder, &tree_iter); 128 129 g_object_unref (G_OBJECT (folder));128 129 g_object_unref (G_OBJECT (folder)); 130 130 131 131 tny_iterator_next (iter); … … 148 148 149 149 static void 150 tny_gtk_folder_store_tree_model_add (TnyGtkFolderStoreTreeModel *self, TnyFolderStore *folder_store, treeaddfunc func)150 tny_gtk_folder_store_tree_model_add_i (TnyGtkFolderStoreTreeModel *self, TnyFolderStore *folder_store, treeaddfunc func, const gchar *root_name) 151 151 { 152 152 GtkTreeStore *model = GTK_TREE_STORE (self); 153 153 TnyList *folders = tny_simple_list_new (); 154 154 GtkTreeIter name_iter; 155 const gchar *root_name;156 155 157 156 func (model, &name_iter, NULL); 158 157 159 160 158 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, 162 160 TNY_GTK_FOLDER_STORE_TREE_MODEL_UNREAD_COLUMN, 0, 163 161 TNY_GTK_FOLDER_STORE_TREE_MODEL_TYPE_COLUMN, TNY_FOLDER_TYPE_ROOT, … … 173 171 174 172 static void 175 tny_gtk_folder_store_tree_model_add_async (TnyGtkFolderStoreTreeModel *self, TnyFolderStore *folder_store, treeaddfunc func)173 tny_gtk_folder_store_tree_model_add_async_i (TnyGtkFolderStoreTreeModel *self, TnyFolderStore *folder_store, treeaddfunc func, const gchar *root_name) 176 174 { 177 175 GtkTreeStore *model = GTK_TREE_STORE (self); … … 191 189 192 190 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, 194 192 TNY_GTK_FOLDER_STORE_TREE_MODEL_UNREAD_COLUMN, 0, 195 193 TNY_GTK_FOLDER_STORE_TREE_MODEL_TYPE_COLUMN, TNY_FOLDER_TYPE_ROOT, … … 205 203 * tny_gtk_folder_store_tree_model_new: 206 204 * @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 209 206 * 210 207 * Return value: a new #GtkTreeModel instance suitable for showing … … 234 231 235 232 g_mutex_lock (me->iterator_lock); 236 if (me->first)233 if (me->first) 237 234 { 238 235 g_list_foreach (me->first, destroy_folder_stores, NULL); … … 240 237 } 241 238 g_mutex_unlock (me->iterator_lock); 242 239 243 240 g_mutex_free (me->iterator_lock); 244 241 me->iterator_lock = NULL; … … 291 288 292 289 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 **/ 298 void 299 tny_gtk_folder_store_tree_model_prepend (TnyGtkFolderStoreTreeModel *self, TnyFolderStore* item, const gchar *root_name) 296 300 { 297 301 TnyGtkFolderStoreTreeModel *me = (TnyGtkFolderStoreTreeModel*)self; … … 304 308 305 309 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); 308 312 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 320 static void 321 tny_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))); 311 337 312 338 g_mutex_unlock (me->iterator_lock); 313 339 } 314 340 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 **/ 349 void 350 tny_gtk_folder_store_tree_model_append (TnyGtkFolderStoreTreeModel *self, TnyFolderStore* item, const gchar *root_name) 317 351 { 318 352 TnyGtkFolderStoreTreeModel *me = (TnyGtkFolderStoreTreeModel*)self; … … 325 359 326 360 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); 329 363 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 370 static void 371 tny_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))); 332 387 333 388 g_mutex_unlock (me->iterator_lock); … … 375 430 376 431 if (citem == item) 377 {432 { 378 433 gtk_tree_store_remove (GTK_TREE_STORE (me), &iter); 379 434 g_object_unref (G_OBJECT (item)); … … 429 484 { 430 485 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; 433 488 klass->remove_func = tny_gtk_folder_store_tree_model_remove; 434 489 klass->create_iterator_func = tny_gtk_folder_store_tree_model_create_iterator; trunk/libtinymailui-gtk/tny-gtk-folder-store-tree-model.h
r1280 r1283 72 72 GtkTreeModel* tny_gtk_folder_store_tree_model_new (gboolean async, TnyFolderStoreQuery *query); 73 73 74 void tny_gtk_folder_store_tree_model_prepend (TnyGtkFolderStoreTreeModel *self, TnyFolderStore* item, const gchar *root_name); 75 void tny_gtk_folder_store_tree_model_append (TnyGtkFolderStoreTreeModel *self, TnyFolderStore* item, const gchar *root_name); 76 74 77 G_END_DECLS 75 78
