School Commit Init
This commit is contained in:
@@ -0,0 +1,72 @@
|
||||
#include "PresenterView.h"
|
||||
#include <QVBoxLayout>
|
||||
#include <QFormLayout>
|
||||
#include <QMessageBox>
|
||||
#include <QHeaderView>
|
||||
|
||||
PresenterView::PresenterView(PresenterModel* model, QWidget* parent) : QWidget{ parent }, model{ model }
|
||||
{
|
||||
this->initGUI();
|
||||
this->view->setModel(model);
|
||||
this->connectSignalsAndSlots();
|
||||
}
|
||||
|
||||
PresenterView::~PresenterView()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
void PresenterView::initGUI()
|
||||
{
|
||||
QVBoxLayout* mainLayout = new QVBoxLayout{ this };
|
||||
this->setLayout(mainLayout);
|
||||
|
||||
this->view = new QTableView{};
|
||||
mainLayout->addWidget(this->view);
|
||||
|
||||
this->idEdit = new QLineEdit{};
|
||||
auto validator = new QIntValidator{};
|
||||
validator->setBottom(0);
|
||||
this->idEdit->setValidator(validator);
|
||||
this->textEdit = new QLineEdit{};
|
||||
this->answerEdit = new QLineEdit{};
|
||||
this->scoreEdit = new QLineEdit{};
|
||||
this->scoreEdit->setValidator(validator);
|
||||
this->addButton = new QPushButton{ "Add" };
|
||||
|
||||
QFormLayout* formLayout = new QFormLayout{};
|
||||
formLayout->addRow("Id", this->idEdit);
|
||||
formLayout->addRow("Text", this->textEdit);
|
||||
formLayout->addRow("Answer", this->answerEdit);
|
||||
formLayout->addRow("Score", this->scoreEdit);
|
||||
formLayout->addWidget(this->addButton);
|
||||
|
||||
mainLayout->addLayout(formLayout);
|
||||
this->view->horizontalHeader()->setSectionResizeMode(QHeaderView::Stretch);
|
||||
this->setMinimumWidth(1000);
|
||||
this->setWindowTitle("Presenter");
|
||||
}
|
||||
|
||||
void PresenterView::connectSignalsAndSlots()
|
||||
{
|
||||
QObject::connect(this->addButton, &QPushButton::clicked, this, [&](){
|
||||
if(this->idEdit->text().isEmpty() || this->textEdit->text().isEmpty() || this->answerEdit->text().isEmpty() || this->scoreEdit->text().isEmpty())
|
||||
{
|
||||
QMessageBox::critical(this, "Error", "All fields must be filled!");
|
||||
return;
|
||||
}
|
||||
int id = this->idEdit->text().toInt();
|
||||
std::string text = this->textEdit->text().toStdString();
|
||||
std::string answer = this->answerEdit->text().toStdString();
|
||||
int score = this->scoreEdit->text().toInt();
|
||||
Question q{ id, text, answer, score };
|
||||
try{
|
||||
this->model->addQuestion(q);
|
||||
}
|
||||
catch (std::exception& e)
|
||||
{
|
||||
QMessageBox::critical(this, "Error", e.what());
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user