Add confirm with stop scan.

This commit is contained in:
sunwen
2023-09-07 16:02:45 +08:00
parent b4de724f48
commit 4ab248a29b
3 changed files with 45 additions and 6 deletions

View File

@@ -433,8 +433,8 @@ void DialogManager::invokeOperationEnd(QObject *parent, QObject *msg) {
if (msg != nullptr) if (msg != nullptr)
{ {
mOperationMessageDialog->stopLoading(); mOperationMessageDialog->stopLoading();
mOperationMessageDialog->showMessage(*(QString*)msg);
mOperationMessageDialog->showExitButton(); mOperationMessageDialog->showExitButton();
mOperationMessageDialog->showMessage(*(QString*)msg);
mOperationMessageDialog->setWindowModality(Qt::WindowModal); mOperationMessageDialog->setWindowModality(Qt::WindowModal);
mOperationMessageDialog->showFullScreen(); mOperationMessageDialog->showFullScreen();
mOperationMessageDialog->exec(); mOperationMessageDialog->exec();

View File

@@ -12,9 +12,12 @@ GUIMessageDialog::GUIMessageDialog(QWidget *parent)
, mUI(new Ui::GUIMessageDialog) , mUI(new Ui::GUIMessageDialog)
, mBtnMain(new QToolButton(this)) , mBtnMain(new QToolButton(this))
, mBtnAppend(new QToolButton(this)) , mBtnAppend(new QToolButton(this))
, mConfirmStopButton(new QToolButton(this))
, mConfirmCancleButton(new QToolButton(this))
, mFrameIndex(0) , mFrameIndex(0)
, mTimerID(-1) , mTimerID(-1)
, mPending(false) , mPending(false)
, mConfirmMessage()
{ {
mUI->setupUi(this); mUI->setupUi(this);
this->setObjectName("MessageDialog"); this->setObjectName("MessageDialog");
@@ -31,15 +34,23 @@ void GUIMessageDialog::initBaseLayout() {
mUI->lblProgressIcon->setVisible(false); mUI->lblProgressIcon->setVisible(false);
mBtnMain->setObjectName("dialogBtnStop"); mBtnMain->setObjectName("dialogBtnStop");
mBtnMain->setVisible(false); mBtnMain->setVisible(false);
mBtnMain->setText("Stop"); mBtnMain->setText(tr("Stop"));
mBtnAppend->setObjectName("dialogBtnOK"); mBtnAppend->setObjectName("dialogBtnOK");
mBtnAppend->setVisible(false); 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 btnContainer = new QWidget(this);
auto hLayout = new QHBoxLayout(btnContainer); auto hLayout = new QHBoxLayout(btnContainer);
hLayout->setMargin(0); hLayout->setMargin(0);
hLayout->addWidget(mBtnMain); hLayout->addWidget(mBtnMain);
hLayout->addWidget(mBtnAppend); hLayout->addWidget(mBtnAppend);
hLayout->addWidget(mConfirmStopButton);
hLayout->addWidget(mConfirmCancleButton);
mUI->btnContainerWidget->layout()->addWidget(btnContainer); mUI->btnContainerWidget->layout()->addWidget(btnContainer);
} }
@@ -89,7 +100,18 @@ void GUIMessageDialog::startLoading() {
mUI->lblProgressIcon->setVisible(true); mUI->lblProgressIcon->setVisible(true);
disconnect(mBtnMain, nullptr, nullptr, nullptr); disconnect(mBtnMain, nullptr, nullptr, nullptr);
connect(mBtnMain, &QToolButton::clicked, [=](){ 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); killTimer(mTimerID);
mTimerID = -1; mTimerID = -1;
} }
@@ -97,19 +119,33 @@ void GUIMessageDialog::startLoading() {
EventCenter::Default()->triggerEvent(GUIEvents::RequestFullScanStop, nullptr, nullptr); EventCenter::Default()->triggerEvent(GUIEvents::RequestFullScanStop, nullptr, nullptr);
LOG_USER_OPERATION("Stop Scan"); 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); mTimerID = startTimer(100);
mBtnMain->setVisible(true); mBtnMain->setVisible(true);
} }
void GUIMessageDialog::showMessage(const QString& msg) { void GUIMessageDialog::showMessage(const QString& msg) {
mUI->lblMsg->setVisible(true); mUI->lblMsg->setVisible(true);
mUI->lblMsg->setText(msg); mUI->lblMsg->setText(mConfirmMessage + msg);
} }
void GUIMessageDialog::showExitButton() { void GUIMessageDialog::showExitButton() {
mBtnMain->setVisible(false); mBtnMain->setVisible(false);
mBtnAppend->setVisible(true); mBtnAppend->setVisible(true);
mConfirmStopButton->setVisible(false);
mConfirmCancleButton->setVisible(false);
mBtnAppend->setText(tr("OK")); mBtnAppend->setText(tr("OK"));
mConfirmMessage.clear();
disconnect(mBtnAppend, nullptr, nullptr, nullptr); disconnect(mBtnAppend, nullptr, nullptr, nullptr);
connect(mBtnAppend, &QToolButton::clicked, [=](){ connect(mBtnAppend, &QToolButton::clicked, [=](){
if (mTimerID != -1){ if (mTimerID != -1){
@@ -117,7 +153,7 @@ void GUIMessageDialog::showExitButton() {
mTimerID = -1; mTimerID = -1;
} }
accept(); accept();
LOG_USER_OPERATION("Confirm Error"); LOG_USER_OPERATION(QString("Confirm %1").arg(mUI->lblMsg->text()));
}); });
} }

View File

@@ -37,9 +37,12 @@ private:
QList<QString> mFrame; QList<QString> mFrame;
QToolButton *mBtnMain; QToolButton *mBtnMain;
QToolButton *mBtnAppend; QToolButton *mBtnAppend;
QToolButton* mConfirmStopButton;
QToolButton* mConfirmCancleButton;
int mFrameIndex; int mFrameIndex;
int mTimerID; int mTimerID;
bool mPending; bool mPending;
QString mConfirmMessage;
}; };
#endif // GUIMESSAGEDIALOG_H #endif // GUIMESSAGEDIALOG_H