Changeset 2918
- Timestamp:
- 11/07/07 19:27:36
- Files:
-
- trunk/ChangeLog (modified) (1 diff)
- trunk/libtinymail-camel/tny-camel-folder.c (modified) (2 diffs)
- trunk/libtinymailui-gtk/tny-gtk-folder-store-tree-model.c (modified) (8 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
trunk/ChangeLog
r2915 r2918 3 3 * Some problems fixed in TnyGtkFolderStoreTreeModel when moving 4 4 folders around into newly created folders 5 * Minor corrections when creating and moving folders 5 6 6 7 2007-11-06 Philip Van Hoof <pvanhoof@gnome.org> trunk/libtinymail-camel/tny-camel-folder.c
r2917 r2918 4590 4590 TnyFolderStoreChange *change; 4591 4591 CamelException subex = CAMEL_EXCEPTION_INITIALISER; 4592 TnyCamelFolderPriv *rpriv = NULL; 4592 4593 4593 4594 if (!_tny_session_check_operation (TNY_FOLDER_PRIV_GET_SESSION(priv), … … 4647 4648 folder = _tny_camel_folder_new (); 4648 4649 _tny_camel_folder_set_folder_info (self, TNY_CAMEL_FOLDER (folder), info); 4650 rpriv = TNY_CAMEL_FOLDER_GET_PRIVATE (folder); 4651 _tny_camel_folder_set_parent (TNY_CAMEL_FOLDER (folder), TNY_FOLDER_STORE (self)); 4652 rpriv->folder = NULL; /* This might be a leak */ 4653 rpriv->loaded = 0; 4654 load_folder_no_lock (rpriv); 4649 4655 4650 4656 /* So that the next call to get_folders includes the newly trunk/libtinymailui-gtk/tny-gtk-folder-store-tree-model.c
r2917 r2918 146 146 { 147 147 TnyFolder *folder = TNY_FOLDER (instance); 148 149 gtk_tree_store_set (model, &tree_iter,148 149 gtk_tree_store_set (model, &tree_iter, 150 150 TNY_GTK_FOLDER_STORE_TREE_MODEL_NAME_COLUMN, 151 151 tny_folder_get_name (TNY_FOLDER (folder)), … … 823 823 824 824 static gboolean 825 do_nothinger (GtkTreeModel *model, GtkTreePath *path, GtkTreeIter *iter, gpointer user_data)826 {827 TnyFolderStoreChange *change = (TnyFolderStoreChange *) user_data;828 TnyFolderStore *parent_store = tny_folder_store_change_get_folder_store (change);829 TnyFolderStore *folder = NULL;830 831 gtk_tree_model_get (model, iter,832 TNY_GTK_FOLDER_STORE_TREE_MODEL_INSTANCE_COLUMN,833 &folder, -1);834 835 if (folder && folder == parent_store && TNY_IS_FOLDER (folder))836 {837 838 gtk_tree_store_set (GTK_TREE_STORE (model), iter,839 TNY_GTK_FOLDER_STORE_TREE_MODEL_NAME_COLUMN,840 tny_folder_get_name (TNY_FOLDER (folder)),841 TNY_GTK_FOLDER_STORE_TREE_MODEL_UNREAD_COLUMN,842 tny_folder_get_unread_count (TNY_FOLDER (folder)),843 TNY_GTK_FOLDER_STORE_TREE_MODEL_ALL_COLUMN,844 tny_folder_get_all_count (TNY_FOLDER (folder)),845 TNY_GTK_FOLDER_STORE_TREE_MODEL_TYPE_COLUMN,846 tny_folder_get_folder_type (TNY_FOLDER (folder)),847 TNY_GTK_FOLDER_STORE_TREE_MODEL_INSTANCE_COLUMN,848 folder, -1);849 }850 851 if (parent_store)852 g_object_unref (parent_store);853 854 if (folder)855 g_object_unref (folder);856 857 return FALSE;858 }859 860 static gboolean861 825 deleter (GtkTreeModel *model, GtkTreePath *path, GtkTreeIter *iter, gpointer user_data1) 862 826 { … … 894 858 895 859 static gboolean 896 foreach_if_store_add_created(GtkTreeModel *model, GtkTreePath *path, GtkTreeIter *in_iter, gpointer user_data)860 creater (GtkTreeModel *model, GtkTreePath *path, GtkTreeIter *in_iter, gpointer user_data) 897 861 { 898 862 TnyGtkFolderStoreTreeModel *me = (TnyGtkFolderStoreTreeModel*) model; 863 TnyGtkFolderStoreTreeModel *self = (TnyGtkFolderStoreTreeModel*) model; 899 864 TnyFolderStore *fol = NULL; 900 865 gboolean found = FALSE; … … 903 868 TnyFolderStore *parent_store; 904 869 GtkTreeIter iter; 870 871 /* This creater will get the store out of the model, compare with 872 * the change's store pointer, and if there's a match it will add the 873 * the created folders to the model at that location. */ 905 874 906 875 if (!gtk_tree_model_get_iter (model, &iter, path)) { … … 942 911 me->store_observables = g_list_prepend (me->store_observables, folder); 943 912 944 gtk_tree_store_append (GTK_TREE_STORE (model), &newiter, &iter);945 946 913 /* This adds a reference count to folder_store too. When it gets 947 914 removed, that reference count is decreased automatically by 948 915 the gtktreestore infrastructure. */ 916 917 gtk_tree_store_prepend (GTK_TREE_STORE (model), &newiter, in_iter); 949 918 950 919 gtk_tree_store_set (GTK_TREE_STORE (model), &newiter, … … 960 929 folder, -1); 961 930 931 tny_folder_add_observer (TNY_FOLDER (folder), TNY_FOLDER_OBSERVER (self)); 932 tny_folder_store_add_observer (TNY_FOLDER_STORE (folder), TNY_FOLDER_STORE_OBSERVER (self)); 933 962 934 g_object_unref (folder); 963 935 tny_iterator_next (miter); … … 1003 975 1004 976 if (changed & TNY_FOLDER_STORE_CHANGE_CHANGED_CREATED_FOLDERS) 1005 { 1006 TnyList *created = tny_simple_list_new (); 1007 TnyIterator *miter; 1008 1009 tny_folder_store_change_get_created_folders (change, created); 1010 miter = tny_list_create_iterator (created); 1011 1012 while (!tny_iterator_is_done (miter)) 1013 { 1014 TnyFolder *folder = TNY_FOLDER (tny_iterator_get_current (miter)); 1015 tny_folder_add_observer (TNY_FOLDER (folder), TNY_FOLDER_OBSERVER (self)); 1016 tny_folder_store_add_observer (TNY_FOLDER_STORE (folder), TNY_FOLDER_STORE_OBSERVER (self)); 1017 g_object_unref (folder); 1018 tny_iterator_next (miter); 1019 } 1020 g_object_unref (miter); 1021 g_object_unref (created); 1022 } 1023 1024 if (changed & TNY_FOLDER_STORE_CHANGE_CHANGED_CREATED_FOLDERS) { 1025 gtk_tree_model_foreach (model, do_nothinger, change); 1026 gtk_tree_model_foreach (model, foreach_if_store_add_created, change); 1027 gtk_tree_model_foreach (model, do_nothinger, change); 1028 } 977 gtk_tree_model_foreach (model, creater, change); 1029 978 1030 979 if (changed & TNY_FOLDER_STORE_CHANGE_CHANGED_REMOVED_FOLDERS) … … 1046 995 g_object_unref (removed); 1047 996 } 1048 1049 997 1050 998 return;
