57 lines
1.8 KiB
C++
57 lines
1.8 KiB
C++
#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<Task> 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();
|
|
}
|