Review Request 125817: Add plugin system for Calendar events
David Edmundson
david at davidedmundson.co.uk
Sat Oct 31 01:08:07 UTC 2015
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://git.reviewboard.kde.org/r/125817/#review87768
-----------------------------------------------------------
src/declarativeimports/calendar/calendarplugin.cpp (line 36)
<https://git.reviewboard.kde.org/r/125817/#comment60227>
RegisterUncreatableType?
src/declarativeimports/calendar/daysmodel.h (line 44)
<https://git.reviewboard.kde.org/r/125817/#comment60222>
I think we need some sort of
QStringList availablePlugins()
setPlugins( QStringList plugins);
src/declarativeimports/calendar/daysmodel.cpp (line 33)
<https://git.reviewboard.kde.org/r/125817/#comment60230>
const
src/declarativeimports/calendar/daysmodel.cpp (line 35)
<https://git.reviewboard.kde.org/r/125817/#comment60231>
const
src/declarativeimports/calendar/daysmodel.cpp (line 63)
<https://git.reviewboard.kde.org/r/125817/#comment60229>
who deletes it?
src/declarativeimports/calendar/daysmodel.cpp (line 157)
<https://git.reviewboard.kde.org/r/125817/#comment60224>
Are you sure this works?
From what I see you're copying the event, then replacing the copy.
(though the autos make it confusing, so I may be wrong)
src/declarativeimports/calendar/daysmodel.cpp (line 169)
<https://git.reviewboard.kde.org/r/125817/#comment60226>
this can be an invalid index, best to check it
(in each case we do this)
src/declarativeimports/calendar/daysmodel.cpp (line 199)
<https://git.reviewboard.kde.org/r/125817/#comment60228>
who owns this?
Q_INVOKABLE tries to be clever, which basically means I never know.
If QML owns it (which I think it does) you're potentially returning null values if this is called twice
if you own it, you're leaking this if you have m_qmlData when the model is deleted
src/declarativeimports/calendar/plasmacalendarintegration/calendareventsplugin.h (line 173)
<https://git.reviewboard.kde.org/r/125817/#comment60220>
Unless needed otherwise, I'd put the UID in the constructor.
If a plugin uses this, you screw everything up
src/declarativeimports/calendar/plasmacalendarintegration/calendareventsplugin.h (line 180)
<https://git.reviewboard.kde.org/r/125817/#comment60221>
I'd add a dpointer here, even though you don't use it yet.
src/declarativeimports/calendar/plasmacalendarintegration/calendareventsplugin.h (line 202)
<https://git.reviewboard.kde.org/r/125817/#comment60232>
rather than this much docs, would it make sense to have a protected method that takes a list, then in this class you turn that into the hash?
- David Edmundson
On Oct. 28, 2015, 5:18 p.m., Martin Klapetek wrote:
>
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://git.reviewboard.kde.org/r/125817/
> -----------------------------------------------------------
>
> (Updated Oct. 28, 2015, 5:18 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/eventdata_p.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/20151031/f6c0fcda/attachment-0001.html>
More information about the Plasma-devel
mailing list