On Tuesday 10 September 2002 06:49, Mauro DePascale wrote: > I'm also very interested into the KMFolder interface rework: those > protocol =3D=3D "imap" checks prevent me to add folders support to the > Domino code. Done. Well almost ;) It will be a gradual change. I want to first=20 provide the same outside interfaces for all folders. Now they all=20 bahave the same way, meaning that now instead of if ( folder->protocol() =3D=3D "imap" ) { KMImapJob *job =3D new KMImapJob( msg ); connect( job, SIGNAL(messageRetrieved(KMMessage*)), this, SLOT(slotMsgTransfered(KMMessage*)) ); connect( job, SIGNAL(finished()), this, SLOT(slotJobFinished()) ); msg->setTransferInProgress( true ); } else { //something else here } we'll have KMFolderJob *job =3D folder->createJob( msg ); connect( job, SIGNAL(messageRetrieved(KMMessage*)), this, SLOT(slotMsgTransfered(KMMessage*)) ); connect( job, SIGNAL(finished()), this, SLOT(slotJobFinished()) ); job->start(); =46olders act as job factories. Right now I switched only IMAP to the new=20 interface, today I'm planning on doing the same for maildir and mbox.=20 Then remove all protocol() =3D=3D "imap" codepaths. Then start working on=20 plugin interface and fixing some interfaces. What you most probably=20 want is ability to write a simple plugin that would allow to get Domino=20 folder support in. The plugin I currently have in mind would most=20 probably look as follows: class KMFolderPlugin : public QObject=20 { Q_OBJECT public:=20 KMFolderPlugin( KMAccount *parent =3D 0L, const char *name =3D 0L ); virtual ~KMFolderPlugin(); virtual void init( QPtrList msgList )=3D0; virtual void unload()=3D0; virtual const char* id() const; public slots: virtual void retrieveMessage( int idx ) =3D0; virtual void retrieveMessage( KMMessage *msg ) =3D0; virtual void storeMessage( KMMessage *msg )=3D0; virtual void removeMessage( int idx )=3D0; virtual void removeMessage( KMMessage *msg )=3D0; signals: void messageRetrieved( KMMessage*, bool ); void messageStored( KMMessage*, bool ); void messageRemoved( KMMessage*, bool ); }; Probably adding some functions dealing with message sets and operating=20 on QPtrList would be a good idea. Anyway, I want KMFolder to act as a=20 plugin manager - meaning that users could easily switch the format of=20 the stored messages at run-time as long as the respective plugin would=20 be present - from maildir to sql based, from mbox to maildir -=20 anything.=20 Zack =2D-=20 Jesus saves...Passes to Gretzky...Gretzky shoots...He SCORES!=20 _______________________________________________ KMail Developers mailing list kmail@mail.kde.org http://mail.kde.org/mailman/listinfo/kmail