Fix a Message box bug.

This commit is contained in:
Krad
2021-10-27 16:03:10 +08:00
parent 06936ac4e8
commit fb1ed527c1
2 changed files with 21 additions and 13 deletions

View File

@@ -74,13 +74,13 @@ void GUIMessageDialog::startLoading() {
void GUIMessageDialog::showMessage(QString msg) { void GUIMessageDialog::showMessage(QString msg) {
ui->lbl_msg->setVisible(true); ui->lbl_msg->setVisible(true);
ui->lbl_msg->setText(msg); ui->lbl_msg->setText(msg);
disconnect(ui->btn_main); disconnect(ui->btn_main,0,0,0);
} }
void GUIMessageDialog::showExitButton() { void GUIMessageDialog::showExitButton() {
ui->btn_main->setText("OK"); ui->btn_main->setText("OK");
ui->btn_main->setVisible(true); ui->btn_main->setVisible(true);
disconnect(ui->btn_main); disconnect(ui->btn_main,0,0,0);
connect(ui->btn_main,&QToolButton::clicked,[=](){ connect(ui->btn_main,&QToolButton::clicked,[=](){
if (timerID != -1){ if (timerID != -1){
killTimer(timerID); killTimer(timerID);
@@ -96,6 +96,6 @@ void GUIMessageDialog::hideMessage() {
} }
void GUIMessageDialog::hideExitButton() { void GUIMessageDialog::hideExitButton() {
if(ui->btn_main->text()=="OK") ui->btn_main->setVisible(false); ui->btn_main->setVisible(false);
disconnect(ui->btn_main); disconnect(ui->btn_main,0,0,0);
} }

View File

@@ -89,7 +89,11 @@ MainWindow::MainWindow(QWidget* parent) :
ui->centralWidget->setLayout(layout); ui->centralWidget->setLayout(layout);
this->setWindowFlags(Qt::Window); this->setWindowFlags(Qt::Window);
connect(EventCenter::Default(), &EventCenter::GUIErrorRaise, [=](QObject*, QObject* msg) { 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) if (msg)
{ {
QString* str = (QString*)msg; QString* str = (QString*)msg;
@@ -98,13 +102,17 @@ MainWindow::MainWindow(QWidget* parent) :
else { else {
msgDialog->showMessage("Something went error!"); msgDialog->showMessage("Something went error!");
} }
msgDialog->showExitButton();
msgDialog->stopLoading(); msgDialog->stopLoading();
msgDialog->showExitButton();
// msgDialog->showFullScreen(); // msgDialog->showFullScreen();
msgDialog->show(); if (msgDialog->isHidden())msgDialog->show();
}); });
connect(EventCenter::Default(), &EventCenter::InvokeOperationStart, [=](QObject*, QObject* msg) { 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) if (msg)
{ {
QString* str = (QString*)msg; QString* str = (QString*)msg;
@@ -116,7 +124,7 @@ MainWindow::MainWindow(QWidget* parent) :
msgDialog->hideExitButton(); msgDialog->hideExitButton();
msgDialog->startLoading(); msgDialog->startLoading();
// msgDialog->showFullScreen(); // msgDialog->showFullScreen();
msgDialog->show(); if (msgDialog->isHidden())msgDialog->show();
}); });
connect(EventCenter::Default(), &EventCenter::InvokeOperationProgress, [=](QObject*, QObject* msg) { connect(EventCenter::Default(), &EventCenter::InvokeOperationProgress, [=](QObject*, QObject* msg) {
if (!msgDialog) msgDialog = new GUIMessageDialog(this); if (!msgDialog) msgDialog = new GUIMessageDialog(this);
@@ -128,14 +136,14 @@ MainWindow::MainWindow(QWidget* parent) :
else { else {
msgDialog->hideMessage(); msgDialog->hideMessage();
} }
msgDialog->hideExitButton();
// msgDialog->showFullScreen(); // msgDialog->showFullScreen();
msgDialog->show(); if (msgDialog->isHidden())msgDialog->show();
}); });
connect(EventCenter::Default(), &EventCenter::InvokeOperationEnd, [=]() { connect(EventCenter::Default(), &EventCenter::InvokeOperationEnd, [=]() {
if (!msgDialog) return; if (!msgDialog) return;
msgDialog->stopLoading(); if (!msgDialog->isHidden())msgDialog->accept();
msgDialog->hide(); delete msgDialog;
msgDialog = nullptr;
}); });
DeviceManager::Default()->initDevice(); DeviceManager::Default()->initDevice();
centerWidgetHide(); centerWidgetHide();