On Mon, 2007-06-25 at 19:15 -0400, Jeffrey Stedfast wrote: > On Mon, 2007-06-25 at 23:05 +0100, Seb James wrote: > > Ok, now that I am debugging the right code... Yes, the expunge function > > registered for the Trash folder is vee_expunge in camel-vee-folder.c. > > vee_expunge has one line: > > > > ((CamelFolderClass *)((CamelObject *)folder)->klass)->sync(folder, TRUE, > > ex); > > > > So, it calls the sync function. Correct me if I'm wrong, but it looks > > like any folder which is to implement message expunging when the user > > clicks "Empty Trash" needs to implement the _sync_ function in such as > > way that deleted messages really can be expunged. Writing an mbox or > > spool expunge function won't work as it won't get called via a vTrash > > folder expunge. > > sounds correct, yes. > > Jeff
I'm finding my way about now. Not quite there yet, though. Although the flagged-deleted messages in my spool inbox show up in the vTrash folder, the sync function for the spool folder doesn't get called, and I haven't quite figured out why not. The vTrash folder is constructed as evolution starts. At some point, camel_store_get_trash() is called. If the parent store contains the CAMEL_STORE_VTRASH flag, then the CS_CLASS(store)->get_trash() method is called on the store to get the trash. If CAMEL_STORE_VTRASH is not set, then camel_store_get_folder(store, CAMEL_VTRASH_NAME, 0, ex) is called. This seems to be an important step. I think I need to look at how the flags are set for the spool based mail stores. Any pointers on where the right place is to set those flags? regards, Seb _______________________________________________ Evolution-hackers mailing list [email protected] http://mail.gnome.org/mailman/listinfo/evolution-hackers
