From: Claudio Cambra Date: Tue, 8 Aug 2023 07:06:52 +0000 (+0800) Subject: Add validDateTime property to datefieldbackend X-Git-Tag: archive/raspbian/3.16.7-1_deb13u1+rpi1~1^2~92^2^2~7^2~16 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=df744cc47a5d5d9633e9ccff70a964c796c87dd2;p=nextcloud-desktop.git Add validDateTime property to datefieldbackend Signed-off-by: Claudio Cambra --- diff --git a/src/gui/filedetails/datefieldbackend.cpp b/src/gui/filedetails/datefieldbackend.cpp index 22948c12f..0764ac2e1 100644 --- a/src/gui/filedetails/datefieldbackend.cpp +++ b/src/gui/filedetails/datefieldbackend.cpp @@ -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 diff --git a/src/gui/filedetails/datefieldbackend.h b/src/gui/filedetails/datefieldbackend.h index 970b00f68..dde64187f 100644 --- a/src/gui/filedetails/datefieldbackend.h +++ b/src/gui/filedetails/datefieldbackend.h @@ -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; };