#include "welcome.h" #include "ui_welcome.h" Welcome::Welcome(Week wtemplate, QWidget *parent) : QDialog(parent), ui(new Ui::Welcome) { ui->setupUi(this); w = wtemplate; init(); } Welcome::~Welcome() { delete ui; } void Welcome::init() { set_value_to_widget(); objectId.insert(ui->mon_button->objectName(), Identifier::mon); objectId.insert(ui->tue_button->objectName(), Identifier::tue); objectId.insert(ui->wed_button->objectName(), Identifier::wed); objectId.insert(ui->thu_button->objectName(), Identifier::thu); objectId.insert(ui->fri_button->objectName(), Identifier::fri); connect(ui->mon_button, &QPushButton::clicked, this, &Welcome::edit); connect(ui->tue_button, &QPushButton::clicked, this, &Welcome::edit); connect(ui->wed_button, &QPushButton::clicked, this, &Welcome::edit); connect(ui->thu_button, &QPushButton::clicked, this, &Welcome::edit); connect(ui->fri_button, &QPushButton::clicked, this, &Welcome::edit); } Week Welcome::get_result() { return w; } void Welcome::set_value_to_widget() { ui->mon_time_label->setText(Tools::double_to_string_time(w.getMon().get_total())); ui->tue_time_label->setText(Tools::double_to_string_time(w.getTue().get_total())); ui->wed_time_label->setText(Tools::double_to_string_time(w.getWed().get_total())); ui->thu_time_label->setText(Tools::double_to_string_time(w.getThu().get_total())); ui->fri_time_label->setText(Tools::double_to_string_time(w.getFri().get_total())); ui->total->setText(Tools::double_to_string_time(w.total())); } void Welcome::edit() { QString name = QObject::sender()->objectName(); switch (get_identifier(name)) { case mon: w.setMon(modify_value(w.getMon())); break; case tue: w.setTue(modify_value(w.getTue())); break; case wed: w.setWed(modify_value(w.getWed())); break; case thu: w.setThu(modify_value(w.getThu())); break; case fri: w.setFri(modify_value(w.getFri())); break; } set_value_to_widget(); } Day Welcome::modify_value(Day d) { SetDayDialog sdd(d, this); int result = sdd.exec(); if (result == QDialog::Accepted) { return sdd.get_result(); } return d; } Identifier Welcome::get_identifier(QString objectName) { return objectId[objectName]; }