Re: [Evolution-hackers] EDS: Trying to implement expunge function in camel-spool-folder.c



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




[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]