#include "GUI.h" GUI::GUI() { this->mainWindow = new QWidget; this->sideWindow = new QWidget; this->showBtn = new QPushButton("Show for current day"); this->dateEdit = new QLineEdit; this->allTaskList = new QListWidget; this->dateTaskList = new QListWidget; this->mainLayout = new QVBoxLayout; this->sideLayout = new QVBoxLayout; this->durationLabel = new QLabel; this->mainLayout->addWidget(this->allTaskList); for (auto task : this->service.getTasks()) { this->allTaskList->addItem(QString::fromStdString(task.getDescription() + " | " + std::to_string(task.getDuration()) + " | " + task.getDate())); if (task.getDate() < "2023.05.22") { this->allTaskList->item(this->allTaskList->count() - 1)->setForeground(Qt::red); } } this->mainLayout->addWidget(this->dateEdit); this->mainLayout->addWidget(this->showBtn); this->mainWindow->setLayout(this->mainLayout); this->sideLayout->addWidget(this->dateTaskList); this->sideLayout->addWidget(this->durationLabel); this->sideWindow->setLayout(this->sideLayout); QObject::connect(this->showBtn, &QPushButton::clicked, [&]() { std::string date = this->dateEdit->text().toStdString(); int duration = 0; this->dateTaskList->clear(); std::vector tasks = this->service.getTasksForDate(date); if (tasks.size() == 0) { QMessageBox::warning(this->mainWindow, "Warning", "No tasks for this date!"); return; } for (auto task : tasks) { this->dateTaskList->addItem(QString::fromStdString(task.getDescription() + " | " + std::to_string(task.getDuration()) + " | " + task.getDate())); duration += task.getDuration(); } this->durationLabel->setText(QString::fromStdString("Duration: " + std::to_string(duration))); this->sideWindow->show(); }); } GUI::~GUI() { delete this->mainWindow; delete this->sideWindow; } void GUI::show() { this->mainWindow->show(); }