Hello!
I believe MeeGo KCalCore API semantic differs from upstream KDE in the
interpretation of the endDate value. See below for the details.
I would like to have this fixed *before* releasing MeeGo 1.2 with the
modified API semantic. It's not part of the official platform API, but
does get used and thus fixing it later just means more code will have
been written against the modified API.
Alvaro, can you comment on why the API semantic was changed? If I
misunderstand the situation or lack certain information, then let's
better resolve such a misunderstanding. ;-}
Sirisha, you would have to adapt the MeeGo UX calendar app. Doable?
Michael, how about QtMobility Organizer?
Anyone else depending on the KCalCore end date semantic?
Bye, Patrick
On So, 2011-04-03 at 21:18 +0100, Patrick Ohly wrote:
> On Fr, 2011-04-01 at 11:29 +0200, Patrick Ohly wrote:
> > > > I beg to disagree here. The MeeGo version of KCalCore is compiled
> > > > differently than the upstream version:
> > > >
> > > > #if !defined(KCALCORE_FOR_MEEGO)
> > > > endDate = kdt.date().addDays( -1 );
> > > > #else
> > > > endDate = kdt.date();
> > > > #endif
> > > >
> > >
> > > Go to the kde git, and you will see those there. So the code, as I said,
> > > is
> > > from upstream.
> >
> > My point is that the MeeGo version of KCalCore is functionally different
> > from the one in KDE. That the code is upstream is irrelevant as long as
> > ifdefs are used for more fundamental changes than merely getting the
> > code to compile on a different platform.
>
> My suspicion all along was that these defines around end date change the
> semantic of KCalCore. To verify that, I modified the test program from
> BMC #6050 such that it imports an iCalendar 2.0 all-day event and prints
> its start/end date after importing into KCalCore.
>
> Code attached, compile/run with:
> rm -rf ~/.calendar && \
> g++ -g test-allday-semantic.cpp `pkg-config --cflags --libs libmkcal
> ` && \
> ./a.out
>
> In MeeGo with KCalCore 4.1.18 I get
> start QDate("Wed Apr 5 2006") end QDate("Thu Apr 6 2006")
>
> After recompiling that version without KCALCORE_FOR_MEEGO I get:
> start QDate("Wed Apr 5 2006") end QDate("Wed Apr 5 2006")
>
> In other words, the patch changes the semantic of dtEnd() for
> applications. Upstream KDE uses "dtEnd() is inclusive", the MeeGo
> version uses "dtEnd() is exclusive".
>
> The latter is closer to iCalendar 2.0, but is that a good enough
> justification to break compatibility with apps ported from KDE? I don't
> think so.
>
> Another possible justification would be that the original semantic
> cannot express an "empty" all-day event (start == end). Again I would
> consider not modifying the API as more important than this cleanup.
>
_______________________________________________
MeeGo-dev mailing list
[email protected]
http://lists.meego.com/listinfo/meego-dev
http://wiki.meego.com/Mailing_list_guidelines