-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathDecisionDialog.cpp
60 lines (44 loc) · 1.87 KB
/
DecisionDialog.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
#include "DecisionDialog.hpp"
#include <QLabel>
#include <QPushButton>
#include "OverviewDialog.hpp"
DecisionDialog::DecisionDialog(BoardModel *boardModel, const QString &title, const QString &text, const QString &acceptButtonText, const QString &rejectButtonText, bool showOverview)
: QDialog(),
boardModel(boardModel)
{
QWidget *howManyWidget = new QWidget(this);
QGridLayout *howManyLayout = new QGridLayout(howManyWidget);
int buttonCount = 2;
if(showOverview)
{
buttonCount++;
}
howManyLayout->addWidget(new QLabel(text, howManyWidget), 0,0,1,buttonCount);
howManyWidget->setLayout(howManyLayout);
QWidget *buttonsWidget = new QWidget(this);
QGridLayout *buttonsLayout = new QGridLayout(buttonsWidget);
QPushButton *acceptButton = new QPushButton(acceptButtonText, buttonsWidget);
QPushButton *rejectButton = new QPushButton(rejectButtonText, buttonsWidget);
connect(acceptButton, SIGNAL(clicked()), this, SLOT(accept()));
connect(rejectButton, SIGNAL(clicked()), this, SLOT(reject()));
buttonsLayout->addWidget(acceptButton, 0,0);
buttonsLayout->addWidget(rejectButton, 0,1);
if(showOverview)
{
QPushButton *overviewButton = new QPushButton("Overview", buttonsWidget);
connect(overviewButton, SIGNAL(clicked()), this, SLOT(showOverview()));
buttonsLayout->addWidget(overviewButton, 0,2);
}
buttonsWidget->setLayout(buttonsLayout);
QGridLayout *layout = new QGridLayout(this);
layout->addWidget(howManyWidget, 0,0);
layout->addWidget(buttonsWidget, 1,0);
this->setLayout(layout);
this->setWindowTitle(title);
}
void DecisionDialog::showOverview()
{
OverviewDialog *overviewDialog = new OverviewDialog(this->boardModel, this);
overviewDialog->show();
connect(overviewDialog, SIGNAL(finished(int)), overviewDialog, SLOT(deleteLater()));
}