#pragma once #include #include #include class QTimer; namespace Ui { class ConnectingDialog; } namespace LtsUtils { class LTSUTILSGUICONNECTDIALOG_EXPORT ConnectingDialogNT : public LtsWidgets::LtsFramelessDialog { Q_OBJECT public: explicit ConnectingDialogNT(const std::function &checkFn, const QString &serviceName, const QString &exerciseName, QWidget *parent); ~ConnectingDialogNT(); void failed(); private slots: void slotGo(); void slotRetry(); signals: void signalGo(); void signalFailed(); void signalSuccess(); private: QString m_serviceName; QString m_exerciseName; std::function m_checkFn; bool m_go; QTimer *m_autoRetryTimer; int m_autoRetryTick { 0 }; Ui::ConnectingDialog *m_ui; int random(int min, int max); bool event(QEvent *event) override; void reset(); }; }