summaryrefslogtreecommitdiff
blob: 7237b74a285f600e641de1e33d83fec50198c800 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
From dad750fadc926b62603cc9d64009ee5072a46d97 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Daniel=20Vr=C3=A1til?= <dvratil@kde.org>
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

* asturm: Incorporated fix from d204022e191d9377874689bfe4c89f7b83998188
---
 CMakeLists.txt                                      |  3 +++
 app/utils/digikam_config.h.cmake.in                 |  3 +++
 utilities/assistants/calendar/print/calsettings.cpp | 14 ++++++++++----
 3 files changed, 16 insertions(+), 4 deletions(-)

diff --git a/CMakeLists.txt b/CMakeLists.txt
index 3ad686d..e2f28a7 100644
--- a/CMakeLists.txt
+++ b/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/app/utils/digikam_config.h.cmake.in b/app/utils/digikam_config.h.cmake.in
index 8a2e8e5..ffd3a22 100644
--- a/app/utils/digikam_config.h.cmake.in
+++ b/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/utilities/assistants/calendar/print/calsettings.cpp b/utilities/assistants/calendar/print/calsettings.cpp
index 46e995d..c6554ef 100644
--- a/utilities/assistants/calendar/print/calsettings.cpp
+++ b/utilities/assistants/calendar/print/calsettings.cpp
@@ -295,7 +295,13 @@ void CalSettings::loadSpecial(const QUrl& url, const QColor& color)
         return;
     }
 
-    KCalCore::MemoryCalendar::Ptr memCal(new KCalCore::MemoryCalendar(QTimeZone(0)));
+#ifdef 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();
@@ -313,9 +319,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