From fb1ed527c11be107454ebd611178db7933c4a2df Mon Sep 17 00:00:00 2001 From: Krad Date: Wed, 27 Oct 2021 16:03:10 +0800 Subject: [PATCH] Fix a Message box bug. --- src/guimessagedialog.cpp | 8 ++++---- src/mainwindow.cpp | 26 +++++++++++++++++--------- 2 files changed, 21 insertions(+), 13 deletions(-) diff --git a/src/guimessagedialog.cpp b/src/guimessagedialog.cpp index d1409ab..447501a 100644 --- a/src/guimessagedialog.cpp +++ b/src/guimessagedialog.cpp @@ -74,13 +74,13 @@ void GUIMessageDialog::startLoading() { void GUIMessageDialog::showMessage(QString msg) { ui->lbl_msg->setVisible(true); ui->lbl_msg->setText(msg); - disconnect(ui->btn_main); + disconnect(ui->btn_main,0,0,0); } void GUIMessageDialog::showExitButton() { ui->btn_main->setText("OK"); ui->btn_main->setVisible(true); - disconnect(ui->btn_main); + disconnect(ui->btn_main,0,0,0); connect(ui->btn_main,&QToolButton::clicked,[=](){ if (timerID != -1){ killTimer(timerID); @@ -96,6 +96,6 @@ void GUIMessageDialog::hideMessage() { } void GUIMessageDialog::hideExitButton() { - if(ui->btn_main->text()=="OK") ui->btn_main->setVisible(false); - disconnect(ui->btn_main); + ui->btn_main->setVisible(false); + disconnect(ui->btn_main,0,0,0); } diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp index e5de335..5275426 100644 --- a/src/mainwindow.cpp +++ b/src/mainwindow.cpp @@ -89,7 +89,11 @@ MainWindow::MainWindow(QWidget* parent) : ui->centralWidget->setLayout(layout); this->setWindowFlags(Qt::Window); connect(EventCenter::Default(), &EventCenter::GUIErrorRaise, [=](QObject*, QObject* msg) { - if (!msgDialog) msgDialog = new GUIMessageDialog(this); + if (msgDialog){ + msgDialog->hide(); + delete msgDialog; + } + msgDialog = new GUIMessageDialog(this); if (msg) { QString* str = (QString*)msg; @@ -98,13 +102,17 @@ MainWindow::MainWindow(QWidget* parent) : else { msgDialog->showMessage("Something went error!"); } - msgDialog->showExitButton(); msgDialog->stopLoading(); + msgDialog->showExitButton(); // msgDialog->showFullScreen(); - msgDialog->show(); + if (msgDialog->isHidden())msgDialog->show(); }); connect(EventCenter::Default(), &EventCenter::InvokeOperationStart, [=](QObject*, QObject* msg) { - if (!msgDialog) msgDialog = new GUIMessageDialog(this); + if (msgDialog){ + msgDialog->hide(); + delete msgDialog; + } + msgDialog = new GUIMessageDialog(this); if (msg) { QString* str = (QString*)msg; @@ -116,7 +124,7 @@ MainWindow::MainWindow(QWidget* parent) : msgDialog->hideExitButton(); msgDialog->startLoading(); // msgDialog->showFullScreen(); - msgDialog->show(); + if (msgDialog->isHidden())msgDialog->show(); }); connect(EventCenter::Default(), &EventCenter::InvokeOperationProgress, [=](QObject*, QObject* msg) { if (!msgDialog) msgDialog = new GUIMessageDialog(this); @@ -128,14 +136,14 @@ MainWindow::MainWindow(QWidget* parent) : else { msgDialog->hideMessage(); } - msgDialog->hideExitButton(); // msgDialog->showFullScreen(); - msgDialog->show(); + if (msgDialog->isHidden())msgDialog->show(); }); connect(EventCenter::Default(), &EventCenter::InvokeOperationEnd, [=]() { if (!msgDialog) return; - msgDialog->stopLoading(); - msgDialog->hide(); + if (!msgDialog->isHidden())msgDialog->accept(); + delete msgDialog; + msgDialog = nullptr; }); DeviceManager::Default()->initDevice(); centerWidgetHide();