[Kde-pim] Implementation of KHolidays in Calendar

John Layt john at layt.net
Wed Jul 31 10:25:51 BST 2013


On Monday 29 Jul 2013 22:51:00 Mark wrote:
> Hi john,
> 
> you're talking about the current way to use KHolidays in plasmoids, but
> that's not what this is about. The project Heena is doing is re-creating
> the calendar popup in QML. For that she needs to use my components that
> expose calendar events in QML through a few special QML components (the
> ones we worked on during the last KDEPIM meeting).
> 
> As we also discussed back then, it would be ideal if KHolidays could also
> be fetched from Akonadi as a special type of calendar events perhaps. That
> is exactly what this stuff is about and how it should be implemented.
> 
> I think those events should just be returned by akonadi when events are
> fetched. Calendar events should probably just be part of the event stream.
> 
> But that's what this is about. I don't know akonadi well enough to know how
> this should be implemented so i hope you folks could discuss this and give
> your view on how to best implement this.
> 
> Big note: Only rewriting the calendar popup in a feature parity manner is
> already big enough for a GSoC project, adding in KHolidays is probably also
> big enough for a GSoC project so i'm not really sure if it's fair to let
> Heena do all of this. It might be simply too much for one GSoC.
> 
> Note 2: about your top 1 feature request for adding/editing calendar
> events. The editing part just became possible in my components about 2 days
> ago. Thus far it can only edit the summary and description, but the heavy
> work is done. The rest is simply exposing functions and properties.

Hi Mark,

I'm still not clear on exactly what Heena's project is here, is she writing 
QML Plasmoids for use in Plasma, or is she writing QML Components for general 
use in KDEPIM and othe places?  If Heena is recreating the official Plasma 
Calendar with the same functionality, using Plasma classes, which lives in 
Plasma and is only used by Plasma, then surely she should be using the official 
Plasma way of accessing data, i.e. the DataEngines?  If the intention is to 
use it as a generic QML componant in places like KDEPIM then that's a different 
story and it shouldn't be called a Plasmoid or use Plasma classes or resources 
or be living in Plasma.

This is a very old discussion we've had with the Plasma guys a few times: 
where to draw the line between Plasma and Akonadi and KDEPIM, and between KDE 
Widgets and Plasma Widgets in general.  The concensus has been for the 
Plasmoids to provide a basic level of functionality via the DataEngines which 
wrap Akonadi.  More advanced functions require duplicating too much api and 
widgets (like the recurrence editor) that the Plasma guys don't want to do and 
are unlikely to get right.  For advanced features that's what the main KDEPIM 
apps and widgets are for.  If that architecture is being changed then that's 
something we need to discuss again.

As we discussed at the sprint the plan is to make KHolidays an Akonadi 
resource, but this was part of the plan for KHolidays2 in KDEPIM 5 which 
includes a new file format, a new generic low-level library with a new api, and 
the Akonadi resource.  That's an entire GSoC project in it's own right.  Heena 
could use the existing library to write an Akonadi resource, but I'm not sure 
how much work is involved.  Volker could probably comment on that.  See the 
tutorial at http://techbase.kde.org/Development/Tutorials/Akonadi/Resources

There's good reasons for having the holidays as a separate Akonadi resource 
with separate collections per holiday file, rather than just included with the 
standard events resource. Mostly it allows the user flexability in choosing 
what holiday regions to display per plasmoid, instead of it being fixed by 
whereever the events have been configured.

Cheers!

John.

_______________________________________________
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