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

@@ -4,40 +4,51 @@
#include "event/EventCenter.h"
#include <QToolButton>
#include <QHBoxLayout>
GUIMessageDialog::GUIMessageDialog(QWidget *parent) :
QDialog(parent),
ui(new Ui::GUIMessageDialog)
GUIMessageDialog::GUIMessageDialog(QWidget *parent)
: QDialog(parent)
, mUI(new Ui::GUIMessageDialog)
, mBtnMain(new QToolButton(this))
, mBtnAppend(new QToolButton(this))
, mFrameIndex(0)
, mTimerID(-1)
, mPending(false)
{
ui->setupUi(this);
mUI->setupUi(this);
this->setObjectName("MessageDialog");
this->setWindowFlags (Qt :: FramelessWindowHint | Qt :: Dialog);
this->showFullScreen ();
ui->lbl_msg->setVisible(false);
ui->lbl_progressicon->setVisible(false);
btn_main = new QToolButton(this);
btn_main->setObjectName("btn_main");
btn_main->setVisible(false);
btn_main->setText("OK");
btn_Append = new QToolButton(this);
btn_Append->setObjectName("btn_main");
btn_Append->setVisible(false);
btn_Append->setText("Stop");
QWidget* btnContainer = new QWidget(this);
QHBoxLayout* hlayout = new QHBoxLayout(btnContainer);
hlayout->setMargin(0);
hlayout->addWidget(btn_main);
hlayout->addWidget(btn_Append);
ui->widget_2->layout()->addWidget(btnContainer);
initBaseLayout();
this->setWindowOpacity(0.6);
for (int i=1; i<=6;i++)
initLoadingFrameString();
}
void GUIMessageDialog::initBaseLayout() {
mUI->lblMsg->setVisible(false);
mUI->lblProgressIcon->setVisible(false);
mBtnMain->setObjectName("btn_main");
mBtnMain->setVisible(false);
mBtnMain->setText("OK");
mBtnAppend->setObjectName("btn_main");
mBtnAppend->setVisible(false);
mBtnAppend->setText("Stop");
auto btnContainer = new QWidget(this);
auto hLayout = new QHBoxLayout(btnContainer);
hLayout->setMargin(0);
hLayout->addWidget(mBtnMain);
hLayout->addWidget(mBtnAppend);
mUI->btnContainerWidget->layout()->addWidget(btnContainer);
}
void GUIMessageDialog::initLoadingFrameString(){
for (int i=1; i <= 6; i++)
{
QString str(" ");
for(int j=0;j<i;j++)
{
str[j]='.';
}
frame.append(str);
mFrame.append(str);
}
for (int i=1; i<=6;i++)
{
@@ -46,60 +57,60 @@ GUIMessageDialog::GUIMessageDialog(QWidget *parent) :
{
str[j]=' ';
}
frame.append(str);
mFrame.append(str);
}
}
GUIMessageDialog::~GUIMessageDialog()
{
delete ui;
delete mUI;
}
void GUIMessageDialog::timerEvent(QTimerEvent *event) {
if (frameIndex>11) frameIndex = frameIndex % 12;
ui->lbl_progressicon->setText(frame[frameIndex++]);
if (mFrameIndex > 11) mFrameIndex = mFrameIndex % 12;
mUI->lblProgressIcon->setText(mFrame[mFrameIndex++]);
this->update();
}
void GUIMessageDialog::stopLoading() {
if (timerID!=-1){
killTimer(timerID);
timerID=-1;
if (mTimerID != -1){
killTimer(mTimerID);
mTimerID=-1;
}
disconnect(btn_main,0,0,0);
ui->lbl_progressicon->setVisible(false);
disconnect(mBtnMain, nullptr, nullptr, nullptr);
mUI->lblProgressIcon->setVisible(false);
}
void GUIMessageDialog::startLoading() {
ui->lbl_progressicon->setVisible(true);
disconnect(btn_main,0,0,0);
connect(btn_main,&QToolButton::clicked,[=](){
if (timerID != -1){
killTimer(timerID);
timerID = -1;
mUI->lblProgressIcon->setVisible(true);
disconnect(mBtnMain, nullptr, nullptr, nullptr);
connect(mBtnMain, &QToolButton::clicked, [=](){
if (mTimerID != -1){
killTimer(mTimerID);
mTimerID = -1;
}
accept();
EventCenter::Default()->triggerEvent(GUIEvents::RequestStop, nullptr, nullptr);
LOG_USER_OPERATION(Stop);
});
timerID = startTimer(100);
btn_main->setText("Stop");
btn_main->setVisible(true);
mTimerID = startTimer(100);
mBtnMain->setText("Stop");
mBtnMain->setVisible(true);
}
void GUIMessageDialog::showMessage(QString msg) {
ui->lbl_msg->setVisible(true);
ui->lbl_msg->setText(msg);
void GUIMessageDialog::showMessage(const QString& msg) {
mUI->lblMsg->setVisible(true);
mUI->lblMsg->setText(msg);
}
void GUIMessageDialog::showExitButton() {
btn_main->setText("OK");
btn_main->setVisible(true);
disconnect(btn_main,0,0,0);
connect(btn_main,&QToolButton::clicked,[=](){
if (timerID != -1){
killTimer(timerID);
timerID = -1;
mBtnMain->setText("OK");
mBtnMain->setVisible(true);
disconnect(mBtnMain, nullptr, nullptr, nullptr);
connect(mBtnMain, &QToolButton::clicked, [=](){
if (mTimerID != -1){
killTimer(mTimerID);
mTimerID = -1;
}
accept();
LOG_USER_OPERATION(ConfirmError);
@@ -107,13 +118,13 @@ void GUIMessageDialog::showExitButton() {
}
void GUIMessageDialog::hideMessage() {
ui->lbl_msg->setVisible(false);
ui->lbl_msg->setText("");
mUI->lblMsg->setVisible(false);
mUI->lblMsg->setText("");
}
void GUIMessageDialog::hideExitButton() {
btn_main->setVisible(false);
disconnect(btn_main,0,0,0);
mBtnMain->setVisible(false);
disconnect(mBtnMain, nullptr, nullptr, nullptr);
}
void GUIMessageDialog::setOpacity(double opacity) {
@@ -121,18 +132,18 @@ void GUIMessageDialog::setOpacity(double opacity) {
}
void GUIMessageDialog::startPending() {
disconnect(btn_Append,0,0,0);
connect(btn_Append,&QToolButton::clicked,[=](){
disconnect(mBtnAppend, nullptr, nullptr, nullptr);
connect(mBtnAppend, &QToolButton::clicked, [=](){
EventCenter::Default()->triggerEvent(GUIEvents::RequestContinueScan, nullptr, nullptr);
stopPending();
});
btn_Append->setText("Next");
btn_Append->setVisible(true);
pending = true;
mBtnAppend->setText("Next");
mBtnAppend->setVisible(true);
mPending = true;
}
void GUIMessageDialog::stopPending() {
disconnect(btn_Append,0,0,0);
btn_Append->setVisible(false);
pending = false;
disconnect(mBtnAppend, nullptr, nullptr, nullptr);
mBtnAppend->setVisible(false);
mPending = false;
}