Refactor dialog package.

This commit is contained in:
Krad
2022-06-13 11:21:44 +08:00
parent 9a233251dc
commit 69a506ff94
27 changed files with 870 additions and 828 deletions

View File

@@ -3,63 +3,52 @@
//
#include "GUIFormBaseDialog.h"
#include <QVBoxLayout>
#include <QHBoxLayout>
#include <QPushButton>
GUIFormBaseDialog::GUIFormBaseDialog(QWidget* parent, Qt::WindowFlags f) : QDialog(parent, f) {
GUIFormBaseDialog::GUIFormBaseDialog(QWidget* parent, Qt::WindowFlags f)
: QDialog(parent, f)
, mFormWidget(new QWidget(this))
, mBtnWidget(new QWidget(this))
, mBtnCancel(new QPushButton(tr("Cancel"), mBtnWidget))
, mBtnOk(new QPushButton(tr("OK"), mBtnWidget))
{
this->setObjectName("formDialog");
this->setWindowFlags(Qt::FramelessWindowHint | Qt::Dialog);
// this->setFixedSize(500,600);
this->setFixedWidth(500);
this->formWidget = new QWidget(this);
this->formWidget->setObjectName("formWidget");
QVBoxLayout* vLayout = new QVBoxLayout(this);
// vLayout->setContentsMargins(680,100,680,100);
vLayout->addWidget(formWidget);
QWidget* btnWidget = new QWidget(this);
vLayout->addWidget(btnWidget);
QHBoxLayout* hLayout = new QHBoxLayout(btnWidget);
btnOk = new QPushButton(btnWidget);
btnOk->setText(tr("OK"));
btnCancel = new QPushButton(btnWidget);
btnCancel->setText(tr("Cancel"));
hLayout->addWidget(btnOk);
hLayout->addWidget(btnCancel);
btnOk->setObjectName("btnOK");
connect(btnOk, &QPushButton::clicked, [t = this]() {
if (t->updateReferenceData())
t->accept();
});
connect(btnCancel, &QPushButton::clicked, [t = this]() {
t->reject();
});
}
GUIFormBaseDialog::~GUIFormBaseDialog() {
this->mFormWidget->setObjectName("formWidget");
auto vLayout = new QVBoxLayout(this);
vLayout->addWidget(mFormWidget);
vLayout->addWidget(mBtnWidget);
auto hLayout = new QHBoxLayout(mBtnWidget);
hLayout->addWidget(mBtnOk);
hLayout->addWidget(mBtnCancel);
mBtnOk->setObjectName("btnOK");
connect(mBtnOk, &QPushButton::clicked, [=]() {
if (updateReferenceData()) accept();
});
connect(mBtnCancel, &QPushButton::clicked, [=]() {
reject();
});
}
void GUIFormBaseDialog::setButtonMode(DialogButtonMode mode) {
switch (mode) {
case OkOnly:
{
btnOk->setVisible(true);
btnCancel->setVisible(false);
return;
}
case OkAndCancel:
{
btnOk->setVisible(true);
btnCancel->setVisible(true);
return;
}
case None:
default:
{
btnOk->setVisible(false);
btnCancel->setVisible(false);
}
}
case OkOnly: {
mBtnOk->setVisible(true);
mBtnCancel->setVisible(false);
return;
}
case OkAndCancel: {
mBtnOk->setVisible(true);
mBtnCancel->setVisible(true);
return;
}
case None:
default: {
mBtnOk->setVisible(false);
mBtnCancel->setVisible(false);
}
}
}