]> dgit.raspbian.org Git - nextcloud-desktop.git/commitdiff
Add validDateTime property to datefieldbackend
authorClaudio Cambra <claudio.cambra@nextcloud.com>
Tue, 8 Aug 2023 07:06:52 +0000 (15:06 +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
src/gui/filedetails/datefieldbackend.h

index 22948c12f285c285de8ad93221c0f4f7a30b3e48..0764ac2e1072ddde3c12b719bff5914356cbcb14 100644 (file)
@@ -54,13 +54,13 @@ void DateFieldBackend::setDateTimeMsecs(const qint64 dateTimeMsecs)
 QString DateFieldBackend::dateTimeString() const
 {
     const auto locale = QLocale::system();
-    return _dateTime.toString(locale.dateTimeFormat(QLocale::ShortFormat));
+    return _dateTime.toString(locale.dateFormat(QLocale::ShortFormat));
 }
 
 void DateFieldBackend::setDateTimeString(const QString &dateTimeString)
 {
     const auto locale = QLocale::system();
-    const auto dt = locale.toDateTime(dateTimeString, locale.dateTimeFormat(QLocale::ShortFormat));
+    const auto dt = locale.toDateTime(dateTimeString, locale.dateFormat(QLocale::ShortFormat));
     setDateTime(dt);
 }
 
@@ -123,5 +123,20 @@ void DateFieldBackend::setMaximumDateTimeMsecs(const qint64 maximumDateTimeMsecs
     const auto dt = QDateTime::fromMSecsSinceEpoch(maximumDateTimeMsecs);
     setMaximumDateTime(dt);
 }
+
+bool DateFieldBackend::validDateTime() const
+{
+    auto valid = _dateTime.isValid();
+
+    if (_minimumDateTime.isValid()) {
+        valid &= _dateTime >= _minimumDateTime;
+    }
+
+    if (_maximumDateTime.isValid()) {
+        valid &= _dateTime <= _maximumDateTime;
+    }
+
+    return valid;
+}
 }
 }
\ No newline at end of file
index 970b00f6820dae0cbc653ab930a5a6f9d07d2d7e..dde64187fb2a4d78ed813ef13831671c8f4ca854 100644 (file)
@@ -36,6 +36,8 @@ class DateFieldBackend : public QObject
     Q_PROPERTY(QDateTime maximumDateTime READ maximumDateTime WRITE setMaximumDateTime NOTIFY maximumDateTimeChanged)
     Q_PROPERTY(qint64 maximumDateTimeMsecs READ maximumDateTimeMsecs WRITE setMaximumDateTimeMsecs NOTIFY maximumDateTimeChanged)
 
+    Q_PROPERTY(bool validDateTime READ validDateTime NOTIFY dateTimeChanged NOTIFY minimumDateTimeChanged NOTIFY maximumDateTimeChanged)
+
 public:
     explicit DateFieldBackend() = default;
 
@@ -49,6 +51,8 @@ public:
     [[nodiscard]] QDateTime maximumDateTime() const;
     [[nodiscard]] qint64 maximumDateTimeMsecs() const;
 
+    [[nodiscard]] bool validDateTime() const;
+
 public slots:
     void setDateTime(const QDateTime &dateTime);
     void setDateTimeMsecs(const qint64 dateTimeMsecs);
@@ -66,7 +70,7 @@ signals:
     void maximumDateTimeChanged();
 
 private:
-    QDateTime _dateTime;
+    QDateTime _dateTime = QDateTime::currentDateTimeUtc();
     QDateTime _minimumDateTime;
     QDateTime _maximumDateTime;
 };