[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kmail-devel
Subject:    Re: KMail I (1/2)
From:       Don Sanders <sanders () kde ! org>
Date:       2001-07-24 12:06:08
[Download RAW message or body]

On Tuesday 24 July 2001 09:17, Stefan Taferner wrote:
> On Monday, 23. July 2001 19:18, Kurt Granroth wrote:
> > I'm not going to comment on most of this... but I will 
pipe up here:
> > > We all know that the KMail codebase is in an urgent
> > > need for a redesign. The most imminent problems are:
> > >
> > > 1. doc / view isn't clearly separated. Look at
> > > KMHeaders. 2. We're slow on large and/or many
> > > messages. 3. Limited extensibilty for new features
> > > because of 3a. folders assuming they are in mbox
> > > format. 3b. using mimelib[1]
> > >   3c. (1)
> >
> > It is possible to support arbitrary non-mbox format
> > local folders with the current codebase without TOO
> > much radical redesign.  I have had "native" maildir
> > support for KMail working on my local copy for over a
> > month now. 

Cool. BTW did you manage to incorporate the changes made by 
Sam's patch? They were substantial.

> > Basically, I separated the classes like so:
> >
> > KMFolderNode
> >  +- KMFolder (abstract)
> >     +- KMFolderMbox
> >     +- KMFolderMaildir

Yes, sounds sensible.

> >        +- KMFolderImap

Hmm. That makes sense to me if KMFolderImap is limited to 
being a persistent cache, and the IMAP synchronization 
logic is kept in KMAccountIMAP.

But I wonder what is the difference between KMFolderImap 
and KMFolderMaildir, what special changes were required for 
imap.

> > If you wanted, say, database support, it shouldn't be
> > that much harder than creating a KMFolderDatabase class
> > that inherits KMFolder (and then handle the account
> > stuff but that's mostly just copy/modify/paste).

Yes.

> You will probably need some connect/disconnect mechanism
> and somebody who holds the connection. Similar to IMAP. I
> once called this connection-holding class (KM)FolderGroup
> :-)
>
> The object tree in the KMFolderTree widget would look
> like this: KMFolderGroupManager
> +- KMFolderGroupMbox
>   +- KMFolderMbox
>   +- KMFolderMbox
>
> +- KMFolderGroupImap
>   +- KMFolderImap
>   +- KMFolderImap
>
> With the assumption that the user has mbox folders for
> his local folders and one imap account with two remote
> folders in it.
>
> The KMFolderGroupManager is some simple management object
> that knows about all the groups of folders the user has.
> It would be possible to have a completely imap-only kmail
> this way, for example.

Hmm, yes inheritance makes some sense here.

I don't think the KMFolderGroup* classes are needed though 
since any KMFolder* can have child folders.

Don.
_______________________________________________
Kmail Developers mailing list
Kmail@master.kde.org
http://master.kde.org/mailman/listinfo/kmail

[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic