Add pending function to guimessagedialog.

This commit is contained in:
Krad
2022-05-12 09:07:55 +08:00
parent d18332baed
commit a7a5e1e308
3 changed files with 54 additions and 22 deletions

View File

@@ -2,6 +2,8 @@
#include "guimessagedialog.h"
#include "ui_guimessagedialog.h"
#include "event/EventCenter.h"
#include <QToolButton>
#include <QHBoxLayout>
GUIMessageDialog::GUIMessageDialog(QWidget *parent) :
QDialog(parent),
ui(new Ui::GUIMessageDialog)
@@ -12,8 +14,21 @@ GUIMessageDialog::GUIMessageDialog(QWidget *parent) :
this->showFullScreen ();
ui->lbl_msg->setVisible(false);
ui->lbl_progressicon->setVisible(false);
ui->btn_main->setVisible(false);
ui->btn_main->setText("OK");
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);
this->setWindowOpacity(0.6);
for (int i=1; i<=6;i++)
{
@@ -51,14 +66,14 @@ void GUIMessageDialog::stopLoading() {
killTimer(timerID);
timerID=-1;
}
disconnect(ui->btn_main,0,0,0);
disconnect(btn_main,0,0,0);
ui->lbl_progressicon->setVisible(false);
}
void GUIMessageDialog::startLoading() {
ui->lbl_progressicon->setVisible(true);
disconnect(ui->btn_main,0,0,0);
connect(ui->btn_main,&QToolButton::clicked,[=](){
disconnect(btn_main,0,0,0);
connect(btn_main,&QToolButton::clicked,[=](){
if (timerID != -1){
killTimer(timerID);
timerID = -1;
@@ -68,9 +83,8 @@ void GUIMessageDialog::startLoading() {
LOG_USER_OPERATION(Stop);
});
timerID = startTimer(100);
ui->btn_main->setText("Stop");
ui->btn_main->setVisible(true);
btn_main->setText("Stop");
btn_main->setVisible(true);
}
void GUIMessageDialog::showMessage(QString msg) {
@@ -79,10 +93,10 @@ void GUIMessageDialog::showMessage(QString msg) {
}
void GUIMessageDialog::showExitButton() {
ui->btn_main->setText("OK");
ui->btn_main->setVisible(true);
disconnect(ui->btn_main,0,0,0);
connect(ui->btn_main,&QToolButton::clicked,[=](){
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;
@@ -98,10 +112,27 @@ void GUIMessageDialog::hideMessage() {
}
void GUIMessageDialog::hideExitButton() {
ui->btn_main->setVisible(false);
disconnect(ui->btn_main,0,0,0);
btn_main->setVisible(false);
disconnect(btn_main,0,0,0);
}
void GUIMessageDialog::setOpacity(double opacity) {
this->setWindowOpacity(opacity);
}
void GUIMessageDialog::startPending() {
disconnect(btn_Append,0,0,0);
connect(btn_Append,&QToolButton::clicked,[=](){
EventCenter::Default()->triggerEvent(GUIEvents::RequestContinueScan, nullptr, nullptr);
stopPending();
});
btn_Append->setText("Next");
btn_Append->setVisible(true);
pending = true;
}
void GUIMessageDialog::stopPending() {
disconnect(btn_Append,0,0,0);
btn_Append->setVisible(false);
pending = false;
}

View File

@@ -6,7 +6,7 @@
namespace Ui {
class GUIMessageDialog;
}
class QToolButton;
class GUIMessageDialog : public QDialog
{
Q_OBJECT
@@ -20,14 +20,22 @@ public:
void hideExitButton();
void startLoading();
void stopLoading();
void startPending();
void stopPending();
bool Pending(){
return pending;
}
void setOpacity(double);
protected:
void timerEvent(QTimerEvent* event) override ;
private:
Ui::GUIMessageDialog *ui;
QList<QString> frame;
QToolButton *btn_main;
QToolButton *btn_Append;
int frameIndex=0;
int timerID = -1;
bool pending = false;
};
#endif // GUIMESSAGEDIALOG_H

View File

@@ -96,13 +96,6 @@
</layout>
</widget>
</item>
<item alignment="Qt::AlignHCenter">
<widget class="QToolButton" name="btn_main">
<property name="text">
<string>...</string>
</property>
</widget>
</item>
</layout>
</widget>
</item>