Do not use QDateTime, use only QDate for datefieldbackend
authorClaudio Cambra <claudio.cambra@nextcloud.com>
Tue, 8 Aug 2023 10:03:35 +0000 (18:03 +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/NCInputDateField.qml
src/gui/filedetails/datefieldbackend.cpp
src/gui/filedetails/datefieldbackend.h

index 5a5ccf4f25de617e5033079b2a70ec61a85b6ed1..ea3f0b6e8f1ae8bbfa2f06b68db0f0a7a949115b 100644 (file)
@@ -22,27 +22,27 @@ NCInputTextField {
     signal userAcceptedDate
 
     function updateText() {
-        text = backend.dateTimeString;
+        text = backend.dateString;
     }
 
     property DateFieldBackend backend: DateFieldBackend { 
         id: backend
-        onDateTimeStringChanged: if (!root.activeFocus) root.updateText()
+        onDateStringChanged: if (!root.activeFocus) root.updateText()
     }
 
-    property alias date: backend.dateTime
-    property alias dateInMs: backend.dateTimeMsecs
-    property alias minimumDate: backend.minimumDateTime
-    property alias minimumDateMs: backend.minimumDateTimeMsecs
-    property alias maximumDate: backend.maximumDateTime
-    property alias maximumDateMs: backend.maximumDateTimeMsecs
+    property alias date: backend.date
+    property alias dateInMs: backend.dateMsecs
+    property alias minimumDate: backend.minimumDate
+    property alias minimumDateMs: backend.minimumDateMsecs
+    property alias maximumDate: backend.maximumDate
+    property alias maximumDateMs: backend.maximumDateMsecs
 
-    validInput: backend.validDateTime
-    text: backend.dateTimeString
-    onTextChanged: backend.dateTimeString = text
+    validInput: backend.validDate
+    text: backend.dateString
+    onTextChanged: backend.dateString = text
 
     onAccepted: {
-        backend.dateTimeString = text;
+        backend.dateString = text;
         root.userAcceptedDate();
     }
 }
\ No newline at end of file
index 23410eabd83bd22f70ba9d0e6909adcc718fb90b..6c043697809fb3bdb920b8d02207c80253f7fd66 100644 (file)
@@ -37,125 +37,126 @@ DateFieldBackend::DateFieldBackend(QObject *const parent)
     }
 }
 
-QDateTime DateFieldBackend::dateTime() const
+QDate DateFieldBackend::date() const
 {
-    return _dateTime;
+    return _date;
 }
 
-void DateFieldBackend::setDateTime(const QDateTime &dateTime)
+void DateFieldBackend::setDate(const QDate &date)
 {
-    if (_dateTime == dateTime) {
+    if (_date == date) {
         return;
     }
 
-    _dateTime = dateTime;
-    Q_EMIT dateTimeChanged();
-    Q_EMIT dateTimeMsecsChanged();
-    Q_EMIT dateTimeStringChanged();
-    Q_EMIT validDateTimeChanged();
+    _date = date;
+
+    Q_EMIT dateChanged();
+    Q_EMIT dateMsecsChanged();
+    Q_EMIT dateStringChanged();
+    Q_EMIT validDateChanged();
 }
 
-qint64 DateFieldBackend::dateTimeMsecs() const
+qint64 DateFieldBackend::dateMsecs() const
 {
-    return _dateTime.toMSecsSinceEpoch();
+    return _date.startOfDay().toMSecsSinceEpoch();
 }
 
-void DateFieldBackend::setDateTimeMsecs(const qint64 dateTimeMsecs)
+void DateFieldBackend::setDateMsecs(const qint64 dateMsecs)
 {
-    if (_dateTime.toMSecsSinceEpoch() == dateTimeMsecs) {
+    if (_date.startOfDay().toMSecsSinceEpoch() == dateMsecs) {
         return;
     }
 
-    const auto dt = QDateTime::fromMSecsSinceEpoch(dateTimeMsecs);
-    setDateTime(dt);
+    const auto dt = QDateTime::fromMSecsSinceEpoch(dateMsecs);
+    setDate(dt.date());
 }
 
-QString DateFieldBackend::dateTimeString() const
+QString DateFieldBackend::dateString() const
 {
-    return _dateTime.toString(_dateFormat);
+    return _date.toString(_dateFormat);
 }
 
-void DateFieldBackend::setDateTimeString(const QString &dateTimeString)
+void DateFieldBackend::setDateString(const QString &dateString)
 {
     const auto locale = QLocale::system();
-    const auto dt = locale.toDateTime(dateTimeString, _dateFormat);
-    setDateTime(dt);
+    const auto date = locale.toDate(dateString, _dateFormat);
+    setDate(date);
 }
 
-QDateTime DateFieldBackend::minimumDateTime() const
+QDate DateFieldBackend::minimumDate() const
 {
-    return _minimumDateTime;
+    return _minimumDate;
 }
 
-void DateFieldBackend::setMinimumDateTime(const QDateTime &minimumDateTime)
+void DateFieldBackend::setMinimumDate(const QDate &minimumDate)
 {
-    if (_minimumDateTime == minimumDateTime) {
+    if (_minimumDate == minimumDate) {
         return;
     }
 
-    _minimumDateTime = minimumDateTime;
-    Q_EMIT minimumDateTimeChanged();
-    Q_EMIT minimumDateTimeMsecsChanged();
-    Q_EMIT validDateTimeChanged();
+    _minimumDate = minimumDate;
+    Q_EMIT minimumDateChanged();
+    Q_EMIT minimumDateMsecsChanged();
+    Q_EMIT validDateChanged();
 }
 
-qint64 DateFieldBackend::minimumDateTimeMsecs() const
+qint64 DateFieldBackend::minimumDateMsecs() const
 {
-    return _minimumDateTime.toMSecsSinceEpoch();
+    return _minimumDate.startOfDay().toMSecsSinceEpoch();
 }
 
-void DateFieldBackend::setMinimumDateTimeMsecs(const qint64 minimumDateTimeMsecs)
+void DateFieldBackend::setMinimumDateMsecs(const qint64 minimumDateMsecs)
 {
-    if (_minimumDateTime.toMSecsSinceEpoch() == minimumDateTimeMsecs) {
+    if (_minimumDate.startOfDay().toMSecsSinceEpoch() == minimumDateMsecs) {
         return;
     }
 
-    const auto dt = QDateTime::fromMSecsSinceEpoch(minimumDateTimeMsecs);
-    setMinimumDateTime(dt);
+    const auto dt = QDateTime::fromMSecsSinceEpoch(minimumDateMsecs);
+    setMinimumDate(dt.date());
 }
 
-QDateTime DateFieldBackend::maximumDateTime() const
+QDate DateFieldBackend::maximumDate() const
 {
-    return _maximumDateTime;
+    return _maximumDate;
 }
 
-void DateFieldBackend::setMaximumDateTime(const QDateTime &maximumDateTime)
+void DateFieldBackend::setMaximumDate(const QDate &maximumDate)
 {
-    if (_maximumDateTime == maximumDateTime) {
+    if (_maximumDate == maximumDate) {
         return;
     }
 
-    _maximumDateTime = maximumDateTime;
-    Q_EMIT maximumDateTimeChanged();
-    Q_EMIT maximumDateTimeMsecsChanged();
-    Q_EMIT validDateTimeChanged();
+    _maximumDate = maximumDate;
+    Q_EMIT maximumDateChanged();
+    Q_EMIT maximumDateMsecsChanged();
+    Q_EMIT validDateChanged();
 }
 
-qint64 DateFieldBackend::maximumDateTimeMsecs() const
+qint64 DateFieldBackend::maximumDateMsecs() const
 {
-    return _maximumDateTime.toMSecsSinceEpoch();
+    return _maximumDate.startOfDay().toMSecsSinceEpoch();
 }
 
-void DateFieldBackend::setMaximumDateTimeMsecs(const qint64 maximumDateTimeMsecs)
+void DateFieldBackend::setMaximumDateMsecs(const qint64 maximumDateMsecs)
 {
-    if (_maximumDateTime.toMSecsSinceEpoch() == maximumDateTimeMsecs) {
+    if (_maximumDate.startOfDay().toMSecsSinceEpoch() == maximumDateMsecs) {
         return;
     }
 
-    const auto dt = QDateTime::fromMSecsSinceEpoch(maximumDateTimeMsecs);
-    setMaximumDateTime(dt);
+    const auto dt = QDateTime::fromMSecsSinceEpoch(maximumDateMsecs);
+    setMaximumDate(dt.date());
 }
 
-bool DateFieldBackend::validDateTime() const
+bool DateFieldBackend::validDate() const
 {
-    auto valid = _dateTime.isValid();
+    auto valid = _date.isValid();
 
-    if (_minimumDateTime.isValid()) {
-        valid &= _dateTime >= _minimumDateTime;
+    if (_minimumDate.isValid()) {
+        valid &= _date >= _minimumDate;
     }
 
-    if (_maximumDateTime.isValid()) {
-        valid &= _dateTime <= _maximumDateTime;
+    if (_maximumDate.isValid()) {
+        valid &= _date <= _maximumDate;
     }
 
     return valid;
index caea5ea2f4c5d9389a6ca7ed2b65190d63acfee1..5ed813c47a579ffc88334ac6bb6c3caf27f65aa8 100644 (file)
@@ -14,7 +14,7 @@
 
 #pragma once
 
-#include <QDateTime>
+#include <QDate>
 #include <QObject>
 
 namespace OCC
@@ -26,61 +26,61 @@ class DateFieldBackend : public QObject
 {
     Q_OBJECT
 
-    Q_PROPERTY(QDateTime dateTime READ dateTime WRITE setDateTime NOTIFY dateTimeChanged)
-    Q_PROPERTY(qint64 dateTimeMsecs READ dateTimeMsecs WRITE setDateTimeMsecs NOTIFY dateTimeMsecsChanged)
-    Q_PROPERTY(QString dateTimeString READ dateTimeString WRITE setDateTimeString NOTIFY dateTimeStringChanged)
+    Q_PROPERTY(QDate date READ date WRITE setDate NOTIFY dateChanged)
+    Q_PROPERTY(qint64 dateMsecs READ dateMsecs WRITE setDateMsecs NOTIFY dateMsecsChanged)
+    Q_PROPERTY(QString dateString READ dateString WRITE setDateString NOTIFY dateStringChanged)
 
-    Q_PROPERTY(QDateTime minimumDateTime READ minimumDateTime WRITE setMinimumDateTime NOTIFY minimumDateTimeChanged)
-    Q_PROPERTY(qint64 minimumDateTimeMsecs READ minimumDateTimeMsecs WRITE setMinimumDateTimeMsecs NOTIFY minimumDateTimeMsecsChanged)
+    Q_PROPERTY(QDate minimumDate READ minimumDate WRITE setMinimumDate NOTIFY minimumDateChanged)
+    Q_PROPERTY(qint64 minimumDateMsecs READ minimumDateMsecs WRITE setMinimumDateMsecs NOTIFY minimumDateMsecsChanged)
 
-    Q_PROPERTY(QDateTime maximumDateTime READ maximumDateTime WRITE setMaximumDateTime NOTIFY maximumDateTimeChanged)
-    Q_PROPERTY(qint64 maximumDateTimeMsecs READ maximumDateTimeMsecs WRITE setMaximumDateTimeMsecs NOTIFY maximumDateTimeMsecsChanged)
+    Q_PROPERTY(QDate maximumDate READ maximumDate WRITE setMaximumDate NOTIFY maximumDateChanged)
+    Q_PROPERTY(qint64 maximumDateMsecs READ maximumDateMsecs WRITE setMaximumDateMsecs NOTIFY maximumDateMsecsChanged)
 
-    Q_PROPERTY(bool validDateTime READ validDateTime NOTIFY validDateTimeChanged)
+    Q_PROPERTY(bool validDate READ validDate NOTIFY validDateChanged)
 
 public:
     explicit DateFieldBackend(QObject *const parent = nullptr);
 
-    [[nodiscard]] QDateTime dateTime() const;
-    [[nodiscard]] qint64 dateTimeMsecs() const;
-    [[nodiscard]] QString dateTimeString() const;
+    [[nodiscard]] QDate date() const;
+    [[nodiscard]] qint64 dateMsecs() const;
+    [[nodiscard]] QString dateString() const;
 
-    [[nodiscard]] QDateTime minimumDateTime() const;
-    [[nodiscard]] qint64 minimumDateTimeMsecs() const;
+    [[nodiscard]] QDate minimumDate() const;
+    [[nodiscard]] qint64 minimumDateMsecs() const;
 
-    [[nodiscard]] QDateTime maximumDateTime() const;
-    [[nodiscard]] qint64 maximumDateTimeMsecs() const;
+    [[nodiscard]] QDate maximumDate() const;
+    [[nodiscard]] qint64 maximumDateMsecs() const;
 
-    [[nodiscard]] bool validDateTime() const;
+    [[nodiscard]] bool validDate() const;
 
 public slots:
-    void setDateTime(const QDateTime &dateTime);
-    void setDateTimeMsecs(const qint64 dateTimeMsecs);
-    void setDateTimeString(const QString &dateTimeString);
+    void setDate(const QDate &date);
+    void setDateMsecs(const qint64 dateMsecs);
+    void setDateString(const QString &dateString);
 
-    void setMinimumDateTime(const QDateTime &minimumDateTime);
-    void setMinimumDateTimeMsecs(const qint64 minimumDateTimeMsecs);
+    void setMinimumDate(const QDate &minimumDate);
+    void setMinimumDateMsecs(const qint64 minimumDateMsecs);
 
-    void setMaximumDateTime(const QDateTime &maximumDateTime);
-    void setMaximumDateTimeMsecs(const qint64 maximumDateTimeMsecs);
+    void setMaximumDate(const QDate &maximumDate);
+    void setMaximumDateMsecs(const qint64 maximumDateMsecs);
 
 signals:
-    void dateTimeChanged();
-    void dateTimeMsecsChanged();
-    void dateTimeStringChanged();
+    void dateChanged();
+    void dateMsecsChanged();
+    void dateStringChanged();
 
-    void minimumDateTimeChanged();
-    void minimumDateTimeMsecsChanged();
+    void minimumDateChanged();
+    void minimumDateMsecsChanged();
 
-    void maximumDateTimeChanged();
-    void maximumDateTimeMsecsChanged();
+    void maximumDateChanged();
+    void maximumDateMsecsChanged();
 
-    void validDateTimeChanged();
+    void validDateChanged();
 
 private:
-    QDateTime _dateTime = QDateTime::currentDateTimeUtc();
-    QDateTime _minimumDateTime;
-    QDateTime _maximumDateTime;
+    QDate _date = QDate::currentDate();
+    QDate _minimumDate;
+    QDate _maximumDate;
 
     QString _dateFormat;
 };