Hello community,

here is the log from the commit of package kcalendarcore for openSUSE:Factory 
checked in at 2020-07-14 07:51:39
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/kcalendarcore (Old)
 and      /work/SRC/openSUSE:Factory/.kcalendarcore.new.3060 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "kcalendarcore"

Tue Jul 14 07:51:39 2020 rev:9 rq:820344 version:5.72.0

Changes:
--------
--- /work/SRC/openSUSE:Factory/kcalendarcore/kcalendarcore.changes      
2020-06-16 13:41:45.104876561 +0200
+++ /work/SRC/openSUSE:Factory/.kcalendarcore.new.3060/kcalendarcore.changes    
2020-07-14 07:52:39.704502006 +0200
@@ -1,0 +2,14 @@
+Sun Jul  5 07:55:06 UTC 2020 - Christophe Giboudeaux <[email protected]>
+
+- Update to 5.72.0
+  * New feature release
+  * For more details please see:
+  * https://kde.org/announcements/kde-frameworks-5.72.0
+- Changes since 5.71.0:
+  * Correct documentation for Recurrence::setStartDateTime()
+  * Check for write error in save() if the disk is full (kde#370708)
+  * Correct icon names for recurring to-dos
+  * Fix serialization of recurring to-do's start date (kde#345498)
+  * Add more tests for Recurrence::getNextDayTime(QDateTime)
+
+-------------------------------------------------------------------

Old:
----
  kcalendarcore-5.71.0.tar.xz
  kcalendarcore-5.71.0.tar.xz.sig

New:
----
  kcalendarcore-5.72.0.tar.xz
  kcalendarcore-5.72.0.tar.xz.sig

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ kcalendarcore.spec ++++++
--- /var/tmp/diff_new_pack.V4WGxy/_old  2020-07-14 07:52:40.332504039 +0200
+++ /var/tmp/diff_new_pack.V4WGxy/_new  2020-07-14 07:52:40.336504052 +0200
@@ -16,14 +16,14 @@
 #
 
 
-%define _tar_path 5.71
+%define _tar_path 5.72
 # Full KF5 version (e.g. 5.33.0)
 %{!?_kf5_version: %global _kf5_version %{version}}
 # Last major and minor KF5 version (e.g. 5.33)
 %{!?_kf5_bugfix_version: %define _kf5_bugfix_version %(echo %{_kf5_version} | 
awk -F. '{print $1"."$2}')}
 %bcond_without lang
 Name:           kcalendarcore
-Version:        5.71.0
+Version:        5.72.0
 Release:        0
 Summary:        Library to access and handle calendar data
 License:        LGPL-2.0-or-later
@@ -86,13 +86,13 @@
 %postun -n libKF5CalendarCore5 -p /sbin/ldconfig
 
 %files -n libKF5CalendarCore5
-%license COPYING*
-%{_kf5_libdir}/libKF5CalendarCore.so.*
+%license LICENSES/*
 %{_kf5_debugdir}/*.categories
 %{_kf5_debugdir}/*.renamecategories
+%{_kf5_libdir}/libKF5CalendarCore.so.*
 
 %files devel
-%license COPYING*
+%license LICENSES/*
 %{_kf5_cmakedir}/KF5CalendarCore/
 %{_kf5_includedir}/KCalendarCore/
 %{_kf5_includedir}/kcalcore_version.h


++++++ kcalendarcore-5.71.0.tar.xz -> kcalendarcore-5.72.0.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kcalendarcore-5.71.0/CMakeLists.txt 
new/kcalendarcore-5.72.0/CMakeLists.txt
--- old/kcalendarcore-5.71.0/CMakeLists.txt     2020-06-06 21:33:34.000000000 
+0200
+++ new/kcalendarcore-5.72.0/CMakeLists.txt     2020-07-04 11:45:57.000000000 
+0200
@@ -1,11 +1,11 @@
 cmake_minimum_required(VERSION 3.5)
-set(KF5_VERSION "5.71.0") # handled by release scripts
+set(KF5_VERSION "5.72.0") # handled by release scripts
 
 project(KCalendarCore VERSION ${KF5_VERSION})
 
 # ECM setup
 include(FeatureSummary)
-find_package(ECM 5.71.0  NO_MODULE)
+find_package(ECM 5.72.0  NO_MODULE)
 set_package_properties(ECM PROPERTIES TYPE REQUIRED DESCRIPTION "Extra CMake 
Modules." URL "https://commits.kde.org/extra-cmake-modules";)
 feature_summary(WHAT REQUIRED_PACKAGES_NOT_FOUND 
FATAL_ON_MISSING_REQUIRED_PACKAGES)
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kcalendarcore-5.71.0/autotests/CMakeLists.txt 
new/kcalendarcore-5.72.0/autotests/CMakeLists.txt
--- old/kcalendarcore-5.71.0/autotests/CMakeLists.txt   2020-06-06 
21:33:34.000000000 +0200
+++ new/kcalendarcore-5.72.0/autotests/CMakeLists.txt   2020-07-04 
11:45:57.000000000 +0200
@@ -20,6 +20,7 @@
   testattendee
   testcalfilter
   testcustomproperties
+  testdateserialization
   testduration
   testevent
   testincidence
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/kcalendarcore-5.71.0/autotests/testdateserialization.cpp 
new/kcalendarcore-5.72.0/autotests/testdateserialization.cpp
--- old/kcalendarcore-5.71.0/autotests/testdateserialization.cpp        
1970-01-01 01:00:00.000000000 +0100
+++ new/kcalendarcore-5.72.0/autotests/testdateserialization.cpp        
2020-07-04 11:45:57.000000000 +0200
@@ -0,0 +1,91 @@
+/*
+ * SPDX-FileCopyrightText: 2020 Glen Ditchfield <[email protected]>
+ *
+ * SPDX-License-Identifier: LGPL-3.0-or-later
+ */
+
+#include "testdateserialization.h"
+#include "icalformat.h"
+#include "memorycalendar.h"
+
+#include <QDebug>
+#include <QTest>
+
+QTEST_MAIN(TestDateSerialization)
+
+using namespace KCalendarCore;
+
+// Check that serialization and deserialization of a minimal recurring todo
+// preserves the start and due dates of the todo and its first occurrence.
+// See bug 345498.
+void TestDateSerialization::testNewRecurringTodo()
+{
+#if QT_VERSION >= QT_VERSION_CHECK(5, 14, 0)
+    QDateTime startDate = QDate(2015, 3, 24).startOfDay();
+#else
+    QDateTime startDate { QDate(2015, 3, 24) };
+#endif
+    QDateTime dueDate   { startDate.addDays(1) };
+
+    Todo::Ptr todo(new Todo);
+    todo->setDtStart(startDate);
+    todo->setDtDue(dueDate, true);
+    todo->setAllDay(true);
+    todo->recurrence()->setMonthly(1);
+
+    MemoryCalendar::Ptr cal { new MemoryCalendar(QTimeZone::utc()) };
+    cal->addIncidence(todo);
+
+    ICalFormat format;
+    const QString result = format.toString(cal, QString());
+
+    Incidence::Ptr i = format.fromString(result);
+    QVERIFY(i);
+    QVERIFY(i->type() == IncidenceBase::IncidenceType::TypeTodo);
+    Todo::Ptr newTodo = i.staticCast<Todo>();
+    QCOMPARE(newTodo->dtStart(true), startDate);
+    QCOMPARE(newTodo->dtStart(false), startDate);
+    QCOMPARE(newTodo->dtDue(true), dueDate);
+    QCOMPARE(newTodo->dtDue(false), dueDate);
+}
+
+// Check that serialization and deserialization of a minimal recurring todo
+// that has been completed once preserves the start and due dates of the todo
+// and correctly calculates the start and due dates of the next occurrence.
+// See bug 345565.
+void TestDateSerialization::testTodoCompletedOnce()
+{
+#if QT_VERSION >= QT_VERSION_CHECK(5, 14, 0)
+    QDateTime startDate = QDate::currentDate().startOfDay();
+#else
+    QDateTime startDate { QDate::currentDate() };
+#endif
+    QDateTime dueDate   { startDate.addDays(1) };
+
+    Todo::Ptr todo(new Todo);
+    todo->setDtStart(startDate);
+    todo->setDtDue(dueDate, true);
+    todo->setAllDay(true);
+    todo->recurrence()->setMonthly(1);
+
+    MemoryCalendar::Ptr cal { new MemoryCalendar(QTimeZone::utc()) };
+    cal->addIncidence(todo);
+
+    ICalFormat format;
+    QString result = format.toString(cal, QString());
+
+    Incidence::Ptr i = format.fromString(result);
+    QVERIFY(i);
+    QVERIFY(i->type() == IncidenceBase::IncidenceType::TypeTodo);
+    todo = i.staticCast<Todo>();
+    todo->setCompleted(dueDate);
+
+    cal = MemoryCalendar::Ptr {new MemoryCalendar(QTimeZone::utc()) };
+    cal->addIncidence(todo);
+    result = format.toString(cal, QString());
+
+    QCOMPARE(todo->dtStart(true), startDate);
+    QCOMPARE(todo->dtStart(false), startDate.addMonths(1));
+    QCOMPARE(todo->dtDue(true), dueDate);
+    QCOMPARE(todo->dtDue(false), dueDate.addMonths(1));
+}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/kcalendarcore-5.71.0/autotests/testdateserialization.h 
new/kcalendarcore-5.72.0/autotests/testdateserialization.h
--- old/kcalendarcore-5.71.0/autotests/testdateserialization.h  1970-01-01 
01:00:00.000000000 +0100
+++ new/kcalendarcore-5.72.0/autotests/testdateserialization.h  2020-07-04 
11:45:57.000000000 +0200
@@ -0,0 +1,19 @@
+/*
+ * SPDX-FileCopyrightText: 2020 Glen Ditchfield <[email protected]>
+ *
+ * SPDX-License-Identifier: LGPL-3.0-or-later
+ */
+
+#ifndef TESTDATESERIALIZATION_H
+#define TESTDATESERIALIZATION_H
+#include <QObject>
+
+class TestDateSerialization : public QObject
+{
+    Q_OBJECT
+private Q_SLOTS:
+    void testNewRecurringTodo();
+    void testTodoCompletedOnce();
+};
+
+#endif // TESTDATESERIALIZATION_H
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/kcalendarcore-5.71.0/autotests/testfreebusyperiod.cpp 
new/kcalendarcore-5.72.0/autotests/testfreebusyperiod.cpp
--- old/kcalendarcore-5.71.0/autotests/testfreebusyperiod.cpp   2020-06-06 
21:33:34.000000000 +0200
+++ new/kcalendarcore-5.72.0/autotests/testfreebusyperiod.cpp   2020-07-04 
11:45:57.000000000 +0200
@@ -84,7 +84,11 @@
 
 void FreeBusyPeriodTest::testDataStreamIn()
 {
+#if QT_VERSION >= QT_VERSION_CHECK(5, 14, 0)
+    const QDateTime p1DateTime = QDate(2006, 8, 30).startOfDay();
+#else
     const QDateTime p1DateTime(QDate(2006, 8, 30));
+#endif
     const Duration duration(24 * 60 * 60);
     FreeBusyPeriod p1(p1DateTime, duration);
     p1.setSummary(QStringLiteral("I can haz summary?"));
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kcalendarcore-5.71.0/autotests/testicalformat.cpp 
new/kcalendarcore-5.72.0/autotests/testicalformat.cpp
--- old/kcalendarcore-5.71.0/autotests/testicalformat.cpp       2020-06-06 
21:33:34.000000000 +0200
+++ new/kcalendarcore-5.72.0/autotests/testicalformat.cpp       2020-07-04 
11:45:57.000000000 +0200
@@ -143,7 +143,11 @@
     ICalFormat format;
 
     Event::Ptr event(new Event);
+#if QT_VERSION >= QT_VERSION_CHECK(5, 14, 0)
+    event->setDtStart(QDate(2017, 03, 24).startOfDay());
+#else
     event->setDtStart(QDateTime(QDate(2017, 03, 24)));
+#endif
     Alarm::Ptr alarm = event->newAlarm();
     alarm->setType(Alarm::Display);
     alarm->setStartOffset(Duration(0));
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kcalendarcore-5.71.0/autotests/testrecurtodo.cpp 
new/kcalendarcore-5.72.0/autotests/testrecurtodo.cpp
--- old/kcalendarcore-5.71.0/autotests/testrecurtodo.cpp        2020-06-06 
21:33:34.000000000 +0200
+++ new/kcalendarcore-5.72.0/autotests/testrecurtodo.cpp        2020-07-04 
11:45:57.000000000 +0200
@@ -227,6 +227,7 @@
     todo->recurrence()->setDaily(1);
     todo->recurrence()->setDuration(3);
 
+    QCOMPARE(todo->recurrence()->getNextDateTime(dtstart.addMSecs(-1)), 
dtstart);
     QCOMPARE(todo->recurrence()->getNextDateTime(dtstart), dtstart.addDays(1));
     QCOMPARE(todo->recurrence()->getNextDateTime(dtstart.addDays(1)), 
dtstart.addDays(2));
     QCOMPARE(todo->recurrence()->getNextDateTime(dtstart.addDays(2)), 
QDateTime());
@@ -243,7 +244,32 @@
     todo->recurrence()->setDaily(1);
     todo->recurrence()->setDuration(3);
 
+    QCOMPARE(todo->recurrence()->getNextDateTime(dtdue.addMSecs(-1)), dtdue);
     QCOMPARE(todo->recurrence()->getNextDateTime(dtdue), dtdue.addDays(1));
     QCOMPARE(todo->recurrence()->getNextDateTime(dtdue.addDays(1)), 
dtdue.addDays(2));
     QCOMPARE(todo->recurrence()->getNextDateTime(dtdue.addDays(2)), 
QDateTime());
 }
+
+/** Test that occurrances specified by a recurrence rule are eliminated by
+ * exception dates.
+ */
+void RecurTodoTest::testRecurrenceExdates()
+{
+    const QDateTime dtstart(QDate(2013, 03, 10), QTime(10, 0, 0), Qt::UTC);
+    const QDateTime dtdue(QDate(2013, 03, 10), QTime(11, 0, 0), Qt::UTC);
+
+    KCalendarCore::Todo::Ptr todo(new KCalendarCore::Todo());
+    todo->setUid(QStringLiteral("todo"));
+    todo->setDtStart(dtstart);
+    todo->setDtDue(dtdue);
+    todo->recurrence()->setDaily(1);
+    todo->recurrence()->setDuration(3);
+
+    // Test for boundary errors.
+    todo->recurrence()->addExDateTime(dtstart);
+    todo->recurrence()->addExDateTime(dtstart.addDays(2));
+
+    QCOMPARE(todo->recurrence()->getNextDateTime(dtstart.addMSecs(-1)), 
dtstart.addDays(1));
+    QCOMPARE(todo->recurrence()->getNextDateTime(dtstart.addDays(1)), 
QDateTime());
+
+}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kcalendarcore-5.71.0/autotests/testrecurtodo.h 
new/kcalendarcore-5.72.0/autotests/testrecurtodo.h
--- old/kcalendarcore-5.71.0/autotests/testrecurtodo.h  2020-06-06 
21:33:34.000000000 +0200
+++ new/kcalendarcore-5.72.0/autotests/testrecurtodo.h  2020-07-04 
11:45:57.000000000 +0200
@@ -21,6 +21,7 @@
     void testDtStart();
     void testRecurrenceBasedOnDtStart();
     void testRecurrenceBasedOnDue();
+    void testRecurrenceExdates();
     void testRecurrenceStart();
     void testHasDueDate();
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/kcalendarcore-5.71.0/autotests/testtimesininterval.cpp 
new/kcalendarcore-5.72.0/autotests/testtimesininterval.cpp
--- old/kcalendarcore-5.71.0/autotests/testtimesininterval.cpp  2020-06-06 
21:33:34.000000000 +0200
+++ new/kcalendarcore-5.72.0/autotests/testtimesininterval.cpp  2020-07-04 
11:45:57.000000000 +0200
@@ -204,7 +204,11 @@
                           : QTimeZone(QByteArray("America/Toronto")));
     Event event;
     event.setAllDay(true);
+#if QT_VERSION >= QT_VERSION_CHECK(5, 14, 0)
+    event.setDtStart(QDate(2019, 10, 11).startOfDay());
+#else
     event.setDtStart(QDateTime(QDate(2019, 10, 11)));
+#endif
 
     RecurrenceRule * const rule = new RecurrenceRule();
     rule->setRecurrenceType(RecurrenceRule::rDaily);
@@ -223,7 +227,11 @@
     // A simple date, will apply.
     recurrence->addExDate(QDate(2019, 10, 14));
     // A date only local time, will apply.
+#if QT_VERSION >= QT_VERSION_CHECK(5, 14, 0)
+    recurrence->addExDateTime(QDate(2019, 10, 15).startOfDay());
+#else
     recurrence->addExDateTime(QDateTime(QDate(2019, 10, 15)));
+#endif
     // A date time starting at 00:00 in another zone, will not apply.
     recurrence->addExDateTime(QDateTime(QDate(2019, 10, 17), QTime(), 
anotherZone));
     // A date time starting at 00:00 in the system time zone, will apply.
@@ -238,7 +246,11 @@
     // nor either of the exception date times.
     const QList<int> expectedDays { 11, 16, 17, 18, 21, 22, 23, 25 };
     for (int day : expectedDays) {
+#if QT_VERSION >= QT_VERSION_CHECK(5, 14, 0)
+        QVERIFY(timesInInterval.contains(QDate(2019, 10, day).startOfDay()));
+#else
         QVERIFY(timesInInterval.contains(QDateTime(QDate(2019, 10, day))));
+#endif
     }
     QCOMPARE(timesInInterval.size(), expectedDays.size());
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kcalendarcore-5.71.0/autotests/testtodo.cpp 
new/kcalendarcore-5.72.0/autotests/testtodo.cpp
--- old/kcalendarcore-5.71.0/autotests/testtodo.cpp     2020-06-06 
21:33:34.000000000 +0200
+++ new/kcalendarcore-5.72.0/autotests/testtodo.cpp     2020-07-04 
11:45:57.000000000 +0200
@@ -271,3 +271,46 @@
     QCOMPARE(todo.dateTime(Incidence::RoleDisplayStart), yesterday);
     QCOMPARE(todo.dateTime(Incidence::RoleDisplayEnd), yesterday);
 }
+
+void TodoTest::testIconNameOneoff()
+{
+    const QDateTime now = QDateTime::currentDateTime();
+    Todo todo;
+    todo.setDtStart(now);
+
+    QCOMPARE(todo.iconName(), QLatin1String("view-calendar-tasks"));
+    todo.setCompleted(now);
+    QCOMPARE(todo.iconName(), QLatin1String("task-complete"));
+}
+
+void TodoTest::testIconNameRecurringNeverDue()
+{
+    const QDateTime now = QDateTime::currentDateTime();
+    Todo todo;
+    todo.setDtStart(now);
+    todo.recurrence()->setDaily(1);
+
+    QCOMPARE(todo.iconName(now), QLatin1String("view-calendar-tasks"));
+
+    todo.setCompleted(now);
+    QCOMPARE(todo.iconName(now), QLatin1String("task-complete"));
+    QCOMPARE(todo.iconName(now.addDays(1)), 
QLatin1String("view-calendar-tasks"));
+}
+
+void TodoTest::testIconNameRecurringDue()
+{
+    const QDateTime now = QDateTime::currentDateTime();
+    const QDateTime later = now.addSecs(3600);
+    Todo todo;
+    todo.setDtStart(now);
+    todo.setDtDue(later, /*first=*/true);
+    todo.recurrence()->setDaily(1);
+
+    QCOMPARE(todo.iconName(now), QLatin1String("view-calendar-tasks"));
+    QCOMPARE(todo.iconName(later), QLatin1String("view-calendar-tasks")); // 
Legacy case
+
+    todo.setCompleted(now);
+    QCOMPARE(todo.iconName(now), QLatin1String("task-complete"));
+    QCOMPARE(todo.iconName(later), QLatin1String("task-complete")); // Legacy 
case
+    QCOMPARE(todo.iconName(now.addDays(1)), 
QLatin1String("view-calendar-tasks"));
+}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kcalendarcore-5.71.0/autotests/testtodo.h 
new/kcalendarcore-5.72.0/autotests/testtodo.h
--- old/kcalendarcore-5.71.0/autotests/testtodo.h       2020-06-06 
21:33:34.000000000 +0200
+++ new/kcalendarcore-5.72.0/autotests/testtodo.h       2020-07-04 
11:45:57.000000000 +0200
@@ -27,6 +27,9 @@
     void testSerializer_data();
     void testSerializer();
     void testRoles();
+    void testIconNameOneoff();
+    void testIconNameRecurringNeverDue();
+    void testIconNameRecurringDue();
 };
 
 #endif
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kcalendarcore-5.71.0/src/customproperties.cpp 
new/kcalendarcore-5.72.0/src/customproperties.cpp
--- old/kcalendarcore-5.71.0/src/customproperties.cpp   2020-06-06 
21:33:34.000000000 +0200
+++ new/kcalendarcore-5.72.0/src/customproperties.cpp   2020-07-04 
11:45:57.000000000 +0200
@@ -200,9 +200,10 @@
 
 QMap<QByteArray, QString> CustomProperties::customProperties() const
 {
-    QMap<QByteArray, QString> result;
-    result.unite(d->mProperties);
-    result.unite(d->mVolatileProperties);
+    QMap<QByteArray, QString> result = d->mProperties;
+    for (auto it = d->mVolatileProperties.begin(), end = 
d->mVolatileProperties.end(); it != end; ++it) {
+        result.insert(it.key(), it.value());
+    }
 
     return result;
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kcalendarcore-5.71.0/src/icalformat.cpp 
new/kcalendarcore-5.72.0/src/icalformat.cpp
--- old/kcalendarcore-5.71.0/src/icalformat.cpp 2020-06-06 21:33:34.000000000 
+0200
+++ new/kcalendarcore-5.72.0/src/icalformat.cpp 2020-07-04 11:45:57.000000000 
+0200
@@ -121,6 +121,14 @@
     // Convert to UTF8 and save
     QByteArray textUtf8 = text.toUtf8();
     file.write(textUtf8.data(), textUtf8.size());
+    // QSaveFile doesn't report a write error when the device is full (see Qt
+    // bug 75077), so check that the data can actually be written.
+    if (!file.flush()) {
+        qCDebug(KCALCORE_LOG) << "file write error (flush failed)";
+        setException(new Exception(Exception::SaveErrorSaveFile,
+                                   QStringList(fileName)));
+        return false;
+    }
 
     if (!file.commit()) {
         qCDebug(KCALCORE_LOG) << "file finalize error:" << file.errorString();
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kcalendarcore-5.71.0/src/icalformat_p.cpp 
new/kcalendarcore-5.72.0/src/icalformat_p.cpp
--- old/kcalendarcore-5.71.0/src/icalformat_p.cpp       2020-06-06 
21:33:34.000000000 +0200
+++ new/kcalendarcore-5.72.0/src/icalformat_p.cpp       2020-07-04 
11:45:57.000000000 +0200
@@ -242,9 +242,8 @@
         icalcomponent_add_property(vtodo, 
icalproperty_new_status(ICAL_STATUS_COMPLETED));
     }
 
-    if (todo->recurs() && todo->dtDue().isValid()) {
-        // dtDue( first = true ) returns the dtRecurrence()
-        prop = writeICalDateTimeProperty(ICAL_X_PROPERTY, todo->dtDue(), 
tzUsedList);
+    if (todo->recurs() && todo->dtStart(false).isValid()) {
+        prop = writeICalDateTimeProperty(ICAL_X_PROPERTY, 
todo->dtStart(false), tzUsedList);
         icalproperty_set_x_name(prop, "X-KDE-LIBKCAL-DTRECURRENCE");
         icalcomponent_add_property(vtodo, prop);
     }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kcalendarcore-5.71.0/src/recurrence.cpp 
new/kcalendarcore-5.72.0/src/recurrence.cpp
--- old/kcalendarcore-5.71.0/src/recurrence.cpp 2020-06-06 21:33:34.000000000 
+0200
+++ new/kcalendarcore-5.72.0/src/recurrence.cpp 2020-07-04 11:45:57.000000000 
+0200
@@ -147,7 +147,10 @@
 
     // ### this copies the pointers in mExRules and mRRules eventually 
resulting in a double free!
     // fortunately however this function is unused, we just can't remove it 
just yet, due to ABI guarantees
+QT_WARNING_PUSH
+QT_WARNING_DISABLE_GCC("-Wdeprecated-copy")
     *d = *recurrence.d;
+QT_WARNING_POP
     return *this;
 }
 #endif
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kcalendarcore-5.71.0/src/recurrence.h 
new/kcalendarcore-5.72.0/src/recurrence.h
--- old/kcalendarcore-5.71.0/src/recurrence.h   2020-06-06 21:33:34.000000000 
+0200
+++ new/kcalendarcore-5.72.0/src/recurrence.h   2020-07-04 11:45:57.000000000 
+0200
@@ -152,9 +152,9 @@
     /** Return the start date/time of the recurrence */
     Q_REQUIRED_RESULT QDate startDate() const;
     /** Set start of recurrence.
-       If @p start is date-only, the recurrence is set to all-day. Otherwise, 
the
-       start is set to a date and time, and the recurrence is set to 
non-all-day.
        @param start the new start date or date/time of the recurrence.
+       @param isAllDay if true, the recurrence is set to all-day.  Otherwise 
the recurrence is set
+       to non-all-day.
     */
     void setStartDateTime(const QDateTime &start, bool isAllDay);
 
@@ -240,10 +240,11 @@
      */
     Q_REQUIRED_RESULT QList<QDateTime> timesInInterval(const QDateTime &start, 
const QDateTime &end) const;
 
-    /** Returns the date and time of the next recurrence, after the specified 
date/time.
+    /** Returns the start date/time of the earliest recurrence with a start 
date/time after
+     * the specified date/time.
      * If the recurrence has no time, the next date after the specified date 
is returned.
      * @param preDateTime the date/time after which to find the recurrence.
-     * @return date/time of next recurrence (strictly later than the given
+     * @return start date/time of next recurrence (strictly later than the 
given
      *         QDateTime), or invalid date if none.
      */
     Q_REQUIRED_RESULT QDateTime getNextDateTime(const QDateTime &preDateTime) 
const;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kcalendarcore-5.71.0/src/todo.cpp 
new/kcalendarcore-5.72.0/src/todo.cpp
--- old/kcalendarcore-5.71.0/src/todo.cpp       2020-06-06 21:33:34.000000000 
+0200
+++ new/kcalendarcore-5.72.0/src/todo.cpp       2020-07-04 11:45:57.000000000 
+0200
@@ -531,7 +531,7 @@
 {
     const bool usesCompletedTaskPixmap =
         isCompleted() ||
-        (recurs() && recurrenceId.isValid() && (recurrenceId < dtDue(false)));
+        (recurs() && recurrenceId.isValid() && (recurrenceId < 
dtStart(/*first=*/false)));
 
     if (usesCompletedTaskPixmap) {
         return QLatin1String("task-complete");


Reply via email to