[Kroupware] KMail als KParts-Container.

Cornelius Schumacher schumacher@kde.org
Wed, 11 Sep 2002 19:26:33 +0200


On Wednesday 11 September 2002 16:08, Steffen Hansen wrote:
> * Cornelius Schumacher <schumacher@kde.org> [Sep 11. 2002 13:10]:
> > Which menus and toolbars would you merge and where would you show the
> > KOrganizer GUI? For processing text/calendar objects you actually don't
> > need a GUI. You just have to make sure that the content of the calendar
> > object is decoded/decrypted/whatever and passed to the iMIP interface of
> > KOrganizer.
>
> Normal KParts menu/toolbar merging. And the korganizer part would appear
> where the khtml part is normally shown in the gui. Maybe the folderview
> above it should be hidden while korganizer is shown.

So you would use the KOrganizer part only for previewing the calendar object 
in a single mail or would it show the complete calendar after processing the 
iMIP message?

> But we are very much open for other solutions and good ideas, so the
> iMIP interface sounds interesting. Where would I find information about
> that? Is it powerful enough for showing large amounts of vCal data
> around?

The low-level interface is in korganizer/mailscheduler.*. The GUI is in 
korganizer/incomingdialog.*. KMail puts the messages into a special directory 
and KOrganizer then fetches them from there. It shows a list of incoming iMIP 
messages in a dialog and the user can accept or reject them. It would be nice 
to automate the accepting, e.g. for a list of known sources, maybe 
authenticated by a valid signature or something like that. This functionality 
would need some support from the KMail side to pass the required information.

> > It would be a much cleaner solution to make a small plugin for KMail
> > which is able to process certain mimetypes and passes the information
> > then to the seperate KOrganizer instance. You would need a generic plugin
> > interface in KMail for plugins which get called for mimetypes specified
> > by the plugin and get the information from the corresponding object after
> > the KMail specific processing. The Korganizer specific stuff would then
> > be encapsulated in the plugin and KMail wouldn't have any dependencies on
> > KOrganizer.
> >
> > >   > This can be done safely because we _know_ that we are talking to a
> > >   > korganizer part, and signals/slots don't give us any source-
> > >   > dependencies.
> > >   > For safety, we can even put a special "marker-slot" into the
> > >   > korg. part, and check for that to see if we talk to a Kroupware
> > >   > capable korganizer.
> >
> > This sounds extremly ugly. You will lose all type and function signature
> > checking the compiler does. This makes debugging a much harder job than
> > it should be.
>
> This is no different than connecting any two QObjects with
> signals/slots -- you dont see the type errors before runtime. If korg.
> already has a welldefined interface for the things we need, it might not
> even be nessecary to connect additional signals/slots.

In my experience delaying error checking to runtime is asking for trouble. 
Debugging signal/slots problems is no fun.

What about my suggestion with the plugin interface? This would keep KMail 
clean from dependencies on KOrganizer.

-- 
Cornelius Schumacher <schumacher@kde.org>