Re: [Evolution-hackers] EDS: Trying to implement expunge function in camel-spool-folder.c
- From: Seb James <seb esfnet co uk>
- To: Jeffrey Stedfast <fejj novell com>
- Cc: evolution-hackers gnome org
- Subject: Re: [Evolution-hackers] EDS: Trying to implement expunge function in camel-spool-folder.c
- Date: Tue, 26 Jun 2007 23:12:22 +0100
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]