From 4ab248a29b771b23e14df23b3d46d1bb6ca75a9b Mon Sep 17 00:00:00 2001 From: sunwen Date: Thu, 7 Sep 2023 16:02:45 +0800 Subject: [PATCH] Add confirm with stop scan. --- src/dialogs/DialogManager.cpp | 2 +- src/dialogs/GUIMessageDialog.cpp | 46 ++++++++++++++++++++++++++++---- src/dialogs/GUIMessageDialog.h | 3 +++ 3 files changed, 45 insertions(+), 6 deletions(-) diff --git a/src/dialogs/DialogManager.cpp b/src/dialogs/DialogManager.cpp index 4db5a2e..9e1c45a 100644 --- a/src/dialogs/DialogManager.cpp +++ b/src/dialogs/DialogManager.cpp @@ -433,8 +433,8 @@ void DialogManager::invokeOperationEnd(QObject *parent, QObject *msg) { if (msg != nullptr) { mOperationMessageDialog->stopLoading(); - mOperationMessageDialog->showMessage(*(QString*)msg); mOperationMessageDialog->showExitButton(); + mOperationMessageDialog->showMessage(*(QString*)msg); mOperationMessageDialog->setWindowModality(Qt::WindowModal); mOperationMessageDialog->showFullScreen(); mOperationMessageDialog->exec(); diff --git a/src/dialogs/GUIMessageDialog.cpp b/src/dialogs/GUIMessageDialog.cpp index b6ea577..ab3a623 100644 --- a/src/dialogs/GUIMessageDialog.cpp +++ b/src/dialogs/GUIMessageDialog.cpp @@ -12,9 +12,12 @@ GUIMessageDialog::GUIMessageDialog(QWidget *parent) , mUI(new Ui::GUIMessageDialog) , mBtnMain(new QToolButton(this)) , mBtnAppend(new QToolButton(this)) +, mConfirmStopButton(new QToolButton(this)) +, mConfirmCancleButton(new QToolButton(this)) , mFrameIndex(0) , mTimerID(-1) , mPending(false) +, mConfirmMessage() { mUI->setupUi(this); this->setObjectName("MessageDialog"); @@ -31,15 +34,23 @@ void GUIMessageDialog::initBaseLayout() { mUI->lblProgressIcon->setVisible(false); mBtnMain->setObjectName("dialogBtnStop"); mBtnMain->setVisible(false); - mBtnMain->setText("Stop"); + mBtnMain->setText(tr("Stop")); mBtnAppend->setObjectName("dialogBtnOK"); mBtnAppend->setVisible(false); - mBtnAppend->setText("OK"); + mBtnAppend->setText(tr("OK")); + mConfirmStopButton->setObjectName("dialogBtnStop"); + mConfirmStopButton->setVisible(false); + mConfirmStopButton->setText(tr("Stop")); + mConfirmCancleButton->setObjectName("dialogBtnOK"); + mConfirmCancleButton->setVisible(false); + mConfirmCancleButton->setText(tr("Cancle")); auto btnContainer = new QWidget(this); auto hLayout = new QHBoxLayout(btnContainer); hLayout->setMargin(0); hLayout->addWidget(mBtnMain); hLayout->addWidget(mBtnAppend); + hLayout->addWidget(mConfirmStopButton); + hLayout->addWidget(mConfirmCancleButton); mUI->btnContainerWidget->layout()->addWidget(btnContainer); } @@ -89,7 +100,18 @@ void GUIMessageDialog::startLoading() { mUI->lblProgressIcon->setVisible(true); disconnect(mBtnMain, nullptr, nullptr, nullptr); connect(mBtnMain, &QToolButton::clicked, [=](){ - if (mTimerID != -1){ + mConfirmStopButton->setVisible(true); + mConfirmCancleButton->setVisible(true); + mBtnMain->setVisible(false); + mConfirmMessage = tr("Confirm stop the scan. \n"); + this->showMessage(mUI->lblMsg->text()); + }); + + connect(mConfirmStopButton, &QToolButton::clicked, [=]() + { + mConfirmMessage.clear(); + if (mTimerID != -1) + { killTimer(mTimerID); mTimerID = -1; } @@ -97,19 +119,33 @@ void GUIMessageDialog::startLoading() { EventCenter::Default()->triggerEvent(GUIEvents::RequestFullScanStop, nullptr, nullptr); LOG_USER_OPERATION("Stop Scan"); }); + + connect(mConfirmCancleButton, &QToolButton::clicked, [=]() + { + mConfirmStopButton->setVisible(false); + mConfirmCancleButton->setVisible(false); + mBtnMain->setVisible(true); + mConfirmMessage.clear(); + this->showMessage(mUI->lblMsg->text()); + }); + mTimerID = startTimer(100); mBtnMain->setVisible(true); + } void GUIMessageDialog::showMessage(const QString& msg) { mUI->lblMsg->setVisible(true); - mUI->lblMsg->setText(msg); + mUI->lblMsg->setText(mConfirmMessage + msg); } void GUIMessageDialog::showExitButton() { mBtnMain->setVisible(false); mBtnAppend->setVisible(true); + mConfirmStopButton->setVisible(false); + mConfirmCancleButton->setVisible(false); mBtnAppend->setText(tr("OK")); + mConfirmMessage.clear(); disconnect(mBtnAppend, nullptr, nullptr, nullptr); connect(mBtnAppend, &QToolButton::clicked, [=](){ if (mTimerID != -1){ @@ -117,7 +153,7 @@ void GUIMessageDialog::showExitButton() { mTimerID = -1; } accept(); - LOG_USER_OPERATION("Confirm Error"); + LOG_USER_OPERATION(QString("Confirm %1").arg(mUI->lblMsg->text())); }); } diff --git a/src/dialogs/GUIMessageDialog.h b/src/dialogs/GUIMessageDialog.h index 9bde1bd..609c2cc 100644 --- a/src/dialogs/GUIMessageDialog.h +++ b/src/dialogs/GUIMessageDialog.h @@ -37,9 +37,12 @@ private: QList mFrame; QToolButton *mBtnMain; QToolButton *mBtnAppend; + QToolButton* mConfirmStopButton; + QToolButton* mConfirmCancleButton; int mFrameIndex; int mTimerID; bool mPending; + QString mConfirmMessage; }; #endif // GUIMESSAGEDIALOG_H