Review Request 125817: Add plugin system for Calendar events

Martin Klapetek martin.klapetek at gmail.com
Tue Oct 27 13:58:12 UTC 2015



> On Oct. 27, 2015, 9:44 a.m., Daniel Vrátil wrote:
> > One more question/idea that just came to my mind: what about some configuration interface? For instance in PIM plugin we would definitely want to allow users to disable the plugin completely (some people just don't like Akonadi being started by Plasma for some reason), and to be able to choose which calendars to show events from (like omitting corporate calendars with hundreds of events in them).
> > 
> > Also what about updating the events? When a new event is created in the backend, the plugin can emit `dataReady()` again to push the event into the model, but what about changed or deleted events? I was think about an `invalidateDate(QDate)` signal in the plugin API, that would cause the model to drop all events for that particular date from the mutlihash and query all the plugins again. It's not the best solution, and if we find that it does not scale well enough, we can try to come up with something better?

> One more question/idea that just came to my mind: what about some configuration interface?

Yes, that will be part of the plasmoid, which is in plasma-workspace, so different patch.

> Also what about updating the events?

I originally envisioned that there wouldn't be any need for updates because you simply close/open the calendar and it would update. But that didn't consider cases like calendar on desktop, so I'll have to think about that as well.


- Martin


-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://git.reviewboard.kde.org/r/125817/#review87492
-----------------------------------------------------------


On Oct. 26, 2015, 9:22 p.m., Martin Klapetek wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://git.reviewboard.kde.org/r/125817/
> -----------------------------------------------------------
> 
> (Updated Oct. 26, 2015, 9:22 p.m.)
> 
> 
> Review request for Plasma and Daniel Vrátil.
> 
> 
> Repository: plasma-framework
> 
> 
> Description
> -------
> 
> This adds a simple plugin interface that can be subclassed
> and provide events integration with Plasma Calendar applet.
> 
> It's asynchronous and I've kept it deliberately simple.
> For now the Calendar tells the plugins which date range
> is being displayed, the plugins load the data and then
> emit the dataReady() signal containing the events.
> 
> The events are stored in a multihash for quick access
> by the Calendar's agenda part but also for overall
> easy-to-use (eg. in teh model data()).
> 
> The event data is stored in EventData class, which has
> a pretty self-explanatory members, except perhaps the
> "isMinor" one. The intention with this is to support
> namedays, where in some countries the calendars have
> different name every day. This is just a minor holiday
> and as such should not mark the calendar grid, otherwise
> the whole grid would be in a different color.
> 
> Putting the interface here might raise the question of
> depending on plasma-framework, but plugins provided by
> KDE can go to plasma-workspace and other 3rd party ones
> would just have to live with it. I don't think it will
> be a problem but if it turns out it is, we can rethink
> the placement.
> 
> 
> Diffs
> -----
> 
>   src/declarativeimports/calendar/CMakeLists.txt 40ead91 
>   src/declarativeimports/calendar/calendarplugin.cpp bafe80c 
>   src/declarativeimports/calendar/daysmodel.h a5bdac9 
>   src/declarativeimports/calendar/daysmodel.cpp 2d059a8 
>   src/declarativeimports/calendar/eventdatadecorator.h PRE-CREATION 
>   src/declarativeimports/calendar/eventdatadecorator.cpp PRE-CREATION 
>   src/declarativeimports/calendar/plasmacalendarintegration/CMakeLists.txt PRE-CREATION 
>   src/declarativeimports/calendar/plasmacalendarintegration/PlasmaCalendarIntegrationConfig.cmake.in PRE-CREATION 
>   src/declarativeimports/calendar/plasmacalendarintegration/calendareventsplugin.h PRE-CREATION 
>   src/declarativeimports/calendar/plasmacalendarintegration/calendareventsplugin.cpp PRE-CREATION 
>   src/declarativeimports/calendar/plasmacalendarintegration/plasmacalendarintegration_export.h PRE-CREATION 
> 
> Diff: https://git.reviewboard.kde.org/r/125817/diff/
> 
> 
> Testing
> -------
> 
> I have a simple KHolidays based plugin written (patch should be up later today)
> and patches in the Calendar applet.
> 
> Everything works as expected:
> * the days are marked as containing an event
> * the agenda part displays details of that event (name)
> 
> 
> Thanks,
> 
> Martin Klapetek
> 
>

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.kde.org/pipermail/plasma-devel/attachments/20151027/8d7e7b4e/attachment-0001.html>


More information about the Plasma-devel mailing list