[Kde-pim] GSoC: Easy Import and Export of all PIM data in Kontact
Maciek Zarzycki
zarzych at gmail.com
Sun Mar 28 00:58:19 GMT 2010
Hi,
I have reread all posts in this thread and I would like to summarize it a bit
and propose my solution. Any comments from you are more than welcome :).
The main idea behind this project is to create a unified import/export dialog
for all KDE PIM applications (and perhaps some others). This utility should
present following features:
* capability of handling various types of data as used in PIM applications
* capability of handling configuration files
* easily extandible to handle new types of data / applications
* user should be able to download new features from 'get hot new stuff'
* as easy to use as possible (some kind of matching presented options with
input files / context in which the utility is used)
The solution fulfilling all the above requirements must be based on a plugin
architecture. What is more, the plugins for individual actions should be
written in interpreted language to allow easy installation from 'get hot new
stuff' (python or javascript using QScript). What I plan to do is following.
[Framework]
The framework should be written in c++. It should provide a dialog allowing
user to specify input/output files. It should present user with list of
selectable actions to perform. After user selects the desired actions, dialog
should run them one by one and present user with some kind of progress
notification.
The framework should also contain helper libraries for import/export tasks
(like importing/exporting mails for KMail or calendar entries for KOrganizer,
generic Akonadi import/export). They should provide Python (or QScript)
bindings to be used in plugins.
[Plugins]
Each import/export action should be represented by a plugin. If possible I
would like to have plugins written in Python because of its excellent KDE
bindings and ease of use. If embedding Python scripts in c++ dialog is
impossible or too hard to do, plugins should be written in ECMA script and
used through QScript framework. The plugins should be written in a way to
minimize user involvement (deduce as much as possible from applications'
config files). They should use methods from helper libraries delivered by the
framework.
[Plugins API]
All plugins should implement following API:
* execute() method to run plugin's action. It should take list of URLs
containing input/output files.
* progress signal informing about plugin's progress
* error signal informing about possible error
* optional cancel slot (?)
As for selection of actions displayed in the dialog, I was thinking about the
'context' mechanism. The simplest solution would be to specify list of
applications that a plugin might be usable for. Based on this, the dialog
would choose which actions to show to user.
This is the project I would like to work on. It has some interesting
challenges in it that make it interesting for me. Please tell me what you
think about it. I'll be glad for any possible improvements or different ideas.
Cheers,
Maciek
_______________________________________________
KDE PIM mailing list kde-pim at kde.org
https://mail.kde.org/mailman/listinfo/kde-pim
KDE PIM home page at http://pim.kde.org/
More information about the kde-pim
mailing list