Ensure qdatetimes are UTC in datefieldbackend
authorClaudio Cambra <claudio.cambra@nextcloud.com>
Tue, 8 Aug 2023 10:49:15 +0000 (18:49 +0800)
committerbackportbot-nextcloud[bot] <backportbot-nextcloud[bot]@users.noreply.github.com>
Wed, 13 Sep 2023 08:47:54 +0000 (08:47 +0000)
Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
src/gui/filedetails/datefieldbackend.cpp

index 89556c8cc3e18e7e3d80fa11be5cc32b49a13607..0b806547cced7fba395bd22ba378f7529dc01c5a 100644 (file)
@@ -16,6 +16,7 @@
 
 #include <QLocale>
 #include <QRegularExpression>
+#include <QTimeZone>
 
 namespace OCC
 {
@@ -71,16 +72,16 @@ void DateFieldBackend::setDate(const QDate &date)
 
 qint64 DateFieldBackend::dateMsecs() const
 {
-    return _date.startOfDay().toMSecsSinceEpoch();
+    return _date.startOfDay(QTimeZone::utc()).toMSecsSinceEpoch();
 }
 
 void DateFieldBackend::setDateMsecs(const qint64 dateMsecs)
 {
-    if (_date.startOfDay().toMSecsSinceEpoch() == dateMsecs) {
+    if (_date.startOfDay(QTimeZone::utc()).toMSecsSinceEpoch() == dateMsecs) {
         return;
     }
 
-    const auto dt = QDateTime::fromMSecsSinceEpoch(dateMsecs);
+    const auto dt = QDateTime::fromMSecsSinceEpoch(dateMsecs).toUTC();
     setDate(dt.date());
 }
 
@@ -120,12 +121,12 @@ void DateFieldBackend::setMinimumDate(const QDate &minimumDate)
 
 qint64 DateFieldBackend::minimumDateMsecs() const
 {
-    return _minimumDate.startOfDay().toMSecsSinceEpoch();
+    return _minimumDate.startOfDay(QTimeZone::utc()).toMSecsSinceEpoch();
 }
 
 void DateFieldBackend::setMinimumDateMsecs(const qint64 minimumDateMsecs)
 {
-    if (_minimumDate.startOfDay().toMSecsSinceEpoch() == minimumDateMsecs) {
+    if (_minimumDate.startOfDay(QTimeZone::utc()).toMSecsSinceEpoch() == minimumDateMsecs) {
         return;
     }
 
@@ -152,12 +153,12 @@ void DateFieldBackend::setMaximumDate(const QDate &maximumDate)
 
 qint64 DateFieldBackend::maximumDateMsecs() const
 {
-    return _maximumDate.startOfDay().toMSecsSinceEpoch();
+    return _maximumDate.startOfDay(QTimeZone::utc()).toMSecsSinceEpoch();
 }
 
 void DateFieldBackend::setMaximumDateMsecs(const qint64 maximumDateMsecs)
 {
-    if (_maximumDate.startOfDay().toMSecsSinceEpoch() == maximumDateMsecs) {
+    if (_maximumDate.startOfDay(QTimeZone::utc()).toMSecsSinceEpoch() == maximumDateMsecs) {
         return;
     }