comparison src/gui/widgets/optional_date.cpp @ 47:d8eb763e6661

information.cpp: add widgets to the list tab, and add an "optional date" widget like taiga has so users can specify whether to set the date or not
author Paper <mrpapersonic@gmail.com>
date Mon, 25 Sep 2023 00:43:38 -0400
parents
children e613772f41d5
comparison
equal deleted inserted replaced
46:d0adc4aedfc8 47:d8eb763e6661
1 #include "gui/widgets/optional_date.h"
2 #include <QCheckBox>
3 #include <QDateEdit>
4 #include <QHBoxLayout>
5
6 OptionalDate::OptionalDate(QWidget* parent) {
7 OptionalDate(false, parent);
8 }
9
10 OptionalDate::OptionalDate(bool enabled, QWidget* parent) : QWidget(parent) {
11 QHBoxLayout* layout = new QHBoxLayout(this);
12 layout->setMargin(0);
13
14 _checkbox = new QCheckBox(this);
15 _checkbox->setCheckState(enabled ? Qt::Checked : Qt::Unchecked);
16 _checkbox->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Preferred);
17
18 layout->addWidget(_checkbox);
19
20 _dateedit = new QDateEdit(this);
21 _dateedit->setDisplayFormat("yyyy-MM-dd");
22 _dateedit->setCalendarPopup(true);
23 _dateedit->setSizePolicy(QSizePolicy::Preferred, QSizePolicy::Preferred);
24
25 layout->addWidget(_dateedit);
26
27 SetEnabled(enabled);
28 connect(_checkbox, &QCheckBox::stateChanged, this, [this](int state) { SetEnabled(state == Qt::Checked); });
29 }
30
31 void OptionalDate::SetEnabled(bool enabled) {
32 _dateedit->setEnabled(enabled);
33 }
34
35 bool OptionalDate::IsEnabled() {
36 return _dateedit->isEnabled();
37 }
38
39 void OptionalDate::SetDate(QDate date) {
40 _dateedit->setDate(date);
41 }
42
43 QDateEdit* OptionalDate::GetDateEdit() {
44 return _dateedit;
45 }
46
47 QCheckBox* OptionalDate::GetCheckBox() {
48 return _checkbox;
49 }