From dad750fadc926b62603cc9d64009ee5072a46d97 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Vr=C3=A1til?= Date: Wed, 13 Sep 2017 16:51:14 +0200 Subject: Adapt to KCalCore API changes This change supports both old (pre-QDateTime) and new version. Differential Revision: https://phabricator.kde.org/D7802 --- core/CMakeLists.txt | 3 +++ core/app/utils/digikam_config.h.cmake.in | 3 +++ core/utilities/assistants/calendar/print/calsettings.cpp | 14 ++++++++++---- 3 files changed, 16 insertions(+), 4 deletions(-) diff --git a/core/CMakeLists.txt b/core/CMakeLists.txt index 3ad686d..e2f28a7 100644 --- a/core/CMakeLists.txt +++ b/core/CMakeLists.txt @@ -174,6 +174,9 @@ find_package(KF5 ${CALENDAR_MIN_VERSION} QUIET OPTIONAL_COMPONENTS CalendarCore # For Calendar tool. ) +if ("${KF5CalendarCore_VERSION}" VERSION_GREATER 5.6.40) + set(HAVE_KCALENDAR_QDATETIME TRUE) +endif() if(ENABLE_AKONADICONTACTSUPPORT AND NOT KF5AkonadiContact_FOUND) set(ENABLE_KFILEMETADATASUPPORT OFF) diff --git a/core/app/utils/digikam_config.h.cmake.in b/core/app/utils/digikam_config.h.cmake.in index 8a2e8e5..ffd3a22 100644 --- a/core/app/utils/digikam_config.h.cmake.in +++ b/core/app/utils/digikam_config.h.cmake.in @@ -75,6 +75,9 @@ /* Define to 1 if you have KCalendar core shared libraries installed */ #cmakedefine HAVE_KCALENDAR 1 +/* Define to 1 if you have KCalendar core shared libraries with QDateTime support installed */ +#cmakedefine HAVE_KCALENDAR_QDATETIME 1 + /* Define to 1 if Panorama tool is supported */ #cmakedefine HAVE_PANORAMA 1 diff --git a/core/utilities/assistants/calendar/print/calsettings.cpp b/core/utilities/assistants/calendar/print/calsettings.cpp index 46e995d..c6554ef 100644 --- a/core/utilities/assistants/calendar/print/calsettings.cpp +++ b/core/utilities/assistants/calendar/print/calsettings.cpp @@ -290,7 +290,13 @@ void CalSettings::loadSpecial(const QUrl& url, const QColor& color) return; } - KCalCore::MemoryCalendar::Ptr memCal(new KCalCore::MemoryCalendar(QString::fromLatin1("UTC"))); +#if HAVE_KCALENDAR_QDATETIME + KCalCore::MemoryCalendar::Ptr memCal(new KCalCore::MemoryCalendar(QTimeZone::utc())); + using DateTime = QDateTime; +#else + KCalCore::MemoryCalendar::Ptr memCal(new KCalCore::MemoryCalendar(QString::fromLatin1("UTC"))); + using DateTime = KDateTime; +#endif KCalCore::FileStorage::Ptr fileStorage(new KCalCore::FileStorage(memCal, url.toLocalFile(), new KCalCore::ICalFormat)); qCDebug(DIGIKAM_GENERAL_LOG) << "Loading calendar from file " << url.toLocalFile(); @@ -308,9 +314,9 @@ void CalSettings::loadSpecial(const QUrl& url, const QColor& color) qLast = calSys.date(params.year + 1, 1, 1); qLast = qLast.addDays(-1); - KDateTime dtFirst(qFirst); - KDateTime dtLast(qLast); - KDateTime dtCurrent; + DateTime dtFirst(qFirst, QTime(0, 0)); + DateTime dtLast(qLast, QTime(0, 0)); + DateTime dtCurrent; int counter = 0; KCalCore::Event::List list = memCal->rawEvents(qFirst, qLast); -- cgit v0.11.2