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
}
}
-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;
#pragma once
-#include <QDateTime>
+#include <QDate>
#include <QObject>
namespace OCC
{
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;
};