src/nulldateedit.cpp

changeset 20
fcbbddcc22c1
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/nulldateedit.cpp	Sat Feb 19 22:17:09 2022 +0100
@@ -0,0 +1,55 @@
+/**
+ * Utils.cpp is part of bmsapp.
+ *
+ * See https://www.qtcentre.org/threads/17295-How-to-put-empty-value-in-QDateEdit
+ *
+ * bmsapp is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * bmsapp is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ */
+#include "nulldateedit.h"
+
+
+NullDateEdit::NullDateEdit(const QDate& date, QWidget* parent)
+	: QDateEdit(date, parent)
+{
+	this->setSpecialValueText("Null");
+}
+
+NullDateEdit::NullDateEdit(QWidget* parent)
+	: QDateEdit(parent)
+{
+	this->setSpecialValueText("Null");
+}
+
+NullDateEdit::~NullDateEdit()
+{
+}
+
+void NullDateEdit::clear()
+{
+	this->setDate(this->minimumDate());
+}
+
+QDate NullDateEdit::nullDate() const
+{
+	if (date() == this->minimumDate())
+		return QDate();
+	return date();
+}
+
+void NullDateEdit::setDate(const QDate & date)
+{
+	if (date.isNull())
+		QDateEdit::setDate(this->minimumDate());
+	QDateEdit::setDate(date);
+}

mercurial