[pim/akonadi-calendar] /: Make use of KCalendarCore 6.30 functions when available
Volker Krause <[email protected]>
| Newsgroups | gmane.comp.kde.cvs |
|---|---|
| Message-ID | <[email protected]> |
Git commit 5dcb67102318a1840b571c9d6350b825da26b5e0 by Volker Krause.
Committed on 15/08/2026 at 13:30.
Pushed by vkrause into branch 'master'.
Make use of KCalendarCore 6.30 functions when available
This removes the last uses of KCalUtils here, so once the minimum KF
version reaches 6.30 we can drop that entirely here.
M +16 -8 autotests/itiphandlertest.cpp
M +2 -2 autotests/itiphandlertest.h
M +10 -2 serializers/akonadi_serializer_kcalcore.cpp
M +0 -1 src/todomodel.cpp
https://invent.kde.org/pim/akonadi-calendar/-/commit/5dcb67102318a1840b571c9d6350b825da26b5e0
diff --git a/autotests/itiphandlertest.cpp b/autotests/itiphandlertest.cpp
index d25e6980..d052e34f 100644
--- a/autotests/itiphandlertest.cpp
+++ b/autotests/itiphandlertest.cpp
@@ -220,7 +220,7 @@ void ITIPHandlerTest::testProcessITIPMessage()
m_expectedResult = expectedResult;
- QString const iCalData = icalData(data_filename);
+ const auto iCalData = icalData(data_filename);
Akonadi::Item::List items;
processItip(iCalData, receiver, action, expectedNumIncidences, items);
@@ -295,16 +295,16 @@ void ITIPHandlerTest::testProcessITIPMessages()
for (int i = 0; i < invitation_filenames.count(); i++) {
// First accept the invitation that creates the incidence:
- QString const iCalData = icalData(invitation_filenames.at(i));
+ const auto iCalData = icalData(invitation_filenames.at(i));
Item::List items;
qDebug() << "Processing " << invitation_filenames.at(i);
processItip(iCalData, receiver, actions.at(i), -1, items);
}
- QString const expectedICalData = icalData(expected_filename);
+ const auto expectedICalData = icalData(expected_filename);
KCalendarCore::MemoryCalendar::Ptr const expectedCalendar = KCalendarCore::MemoryCalendar::Ptr(new KCalendarCore::MemoryCalendar(QTimeZone::utc()));
KCalendarCore::ICalFormat format;
- format.fromString(expectedCalendar, expectedICalData);
+ QVERIFY(format.fromRawString(expectedCalendar, expectedICalData));
compareCalendars(expectedCalendar); // Here's where the cool and complex comparisons are done
cleanup();
@@ -346,7 +346,7 @@ void ITIPHandlerTest::testProcessITIPMessageCancel()
m_expectedResult = Akonadi::ITIPHandler::ResultSuccess;
// First accept the invitation that creates the incidence:
- QString iCalData = icalData(creation_data_filename);
+ auto iCalData = icalData(creation_data_filename);
Item::List items;
processItip(iCalData, receiver, QStringLiteral("accepted"), 1, items);
@@ -593,13 +593,13 @@ void ITIPHandlerTest::createITIPHandler()
connect(m_itipHandler, &ITIPHandler::iTipMessageProcessed, this, &ITIPHandlerTest::oniTipMessageProcessed);
}
-QString ITIPHandlerTest::icalData(const QString &data_filename)
+QByteArray ITIPHandlerTest::icalData(const QString &data_filename)
{
QString const absolutePath = QFINDTESTDATA("itip_data/"_L1 + data_filename);
- return QString::fromLatin1(readFile(absolutePath));
+ return readFile(absolutePath);
}
-void ITIPHandlerTest::processItip(const QString &icaldata,
+void ITIPHandlerTest::processItip(const QByteArray &icaldata,
const QString &receiver,
const QString &action,
int expectedNumIncidences,
@@ -610,7 +610,15 @@ void ITIPHandlerTest::processItip(const QString &icaldata,
MemoryCalendar::Ptr calendar(new MemoryCalendar(QTimeZone::systemTimeZone()));
ICalFormat format;
+#if KCALENDARCORE_VERSION < QT_VERSION_CHECK(6, 30, 0)
+ const auto message = format.parseScheduleMessage(calendar, QString::fromUtf8(icaldata));
+#else
const auto message = format.parseScheduleMessage(calendar, icaldata);
+#endif
+ if (!message) {
+ QSKIP("invalid input");
+ return;
+ }
m_itipHandler->processiTIPMessage(receiver, message, action);
waitForIt();
diff --git a/autotests/itiphandlertest.h b/autotests/itiphandlertest.h
index 8fd7dc8d..8ec06ec9 100644
--- a/autotests/itiphandlertest.h
+++ b/autotests/itiphandlertest.h
@@ -44,8 +44,8 @@ private:
void waitForSignals();
void cleanup();
void createITIPHandler();
- QString icalData(const QString &filename);
- void processItip(const QString &icaldata, const QString &receiver, const QString &action, int expectedNumIncidences, Akonadi::Item::List &items);
+ QByteArray icalData(const QString &filename);
+ void processItip(const QByteArray &icaldata, const QString &receiver, const QString &action, int expectedNumIncidences, Akonadi::Item::List &items);
KCalendarCore::Attendee ourAttendee(const KCalendarCore::Incidence::Ptr &incidence) const;
public Q_SLOTS:
diff --git a/serializers/akonadi_serializer_kcalcore.cpp b/serializers/akonadi_serializer_kcalcore.cpp
index 286ba086..06ec4400 100644
--- a/serializers/akonadi_serializer_kcalcore.cpp
+++ b/serializers/akonadi_serializer_kcalcore.cpp
@@ -13,7 +13,9 @@
#include <KCalendarCore/Event>
#include <KCalendarCore/Todo>
+#if KCALENDARCORE_VERSION < QT_VERSION_CHECK(6, 30, 0)
#include <KCalUtils/Stringify>
+#endif
#include <KLocalizedString>
@@ -22,7 +24,6 @@
#include <QIODevice>
using namespace KCalendarCore;
-using namespace KCalUtils;
using namespace Akonadi;
SerializerPluginKCalCore::SerializerPluginKCalCore() = default;
@@ -231,7 +232,14 @@ static void compareIncidence(AbstractDifferencesReporter *reporter, const Incide
}
if (left->status() != right->status()) {
- reporter->addProperty(AbstractDifferencesReporter::ConflictMode, i18n("Status"), Stringify::incidenceStatus(left), Stringify::incidenceStatus(right));
+#if KCALENDARCORE_VERSION < QT_VERSION_CHECK(6, 30, 0)
+ reporter->addProperty(AbstractDifferencesReporter::ConflictMode,
+ i18n("Status"),
+ KCalUtils::Stringify::incidenceStatus(left),
+ KCalUtils::Stringify::incidenceStatus(right));
+#else
+ reporter->addProperty(AbstractDifferencesReporter::ConflictMode, i18n("Status"), left->statusName(), right->statusName());
+#endif
}
if (left->secrecy() != right->secrecy()) {
diff --git a/src/todomodel.cpp b/src/todomodel.cpp
index 9d85011f..eb8492e1 100644
--- a/src/todomodel.cpp
+++ b/src/todomodel.cpp
@@ -17,7 +17,6 @@ using namespace Qt::Literals::StringLiterals;
#include <Akonadi/IncidenceTreeModel>
#include <Akonadi/TagCache>
-#include <KCalUtils/IncidenceFormatter>
#if KCALENDARCORE_VERSION < QT_VERSION_CHECK(6, 29, 0)
#include <KCalUtils/DndFactory>
#include <KCalUtils/ICalDrag>