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);
}
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
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;
[[nodiscard]] QDateTime maximumDateTime() const;
[[nodiscard]] qint64 maximumDateTimeMsecs() const;
+ [[nodiscard]] bool validDateTime() const;
+
public slots:
void setDateTime(const QDateTime &dateTime);
void setDateTimeMsecs(const qint64 dateTimeMsecs);
void maximumDateTimeChanged();
private:
- QDateTime _dateTime;
+ QDateTime _dateTime = QDateTime::currentDateTimeUtc();
QDateTime _minimumDateTime;
QDateTime _maximumDateTime;
};