qt/LedOK/base/waitingdlg.h
2023-08-01 11:42:41 +08:00

51 lines
1.2 KiB
C++

#ifndef WAITINGDLG_H
#define WAITINGDLG_H
#include <QLabel>
#include <QNetworkReply>
#include <QDialog>
class WaitingIndicator : public QWidget {
Q_OBJECT
public:
using QWidget::QWidget;
QColor mColor{0x0088ff};
public slots:
void success();
protected:
void timerEvent(QTimerEvent * event) override;
void paintEvent(QPaintEvent * event) override;
int angle{0};
int timerId{0};
};
class WaitingDlg : public QDialog {
Q_OBJECT
public:
explicit WaitingDlg(QWidget *parent = nullptr, QString text = 0, QString sucText = 0);
inline void connAbort(QNetworkReply *reply) {
connect(this, &WaitingDlg::rejected, reply, [reply] {
reply->blockSignals(true);
reply->abort();
reply->blockSignals(false);
reply->deleteLater();
});
}
QLabel *fdText;
QString sucText;
WaitingIndicator *mIndicator;
public slots:
void show();
void showLater();
void success();
protected:
void timerEvent(QTimerEvent *) override;
void closeEvent(QCloseEvent *) override;
private:
int closeTimerId{0}, showTimerId{0};
};
#endif // WAITINGDLG_H