#pragma once #include #ifdef _WIN32 #include #include #endif class progress_dialog : public QProgressDialog { public: progress_dialog(const QString& windowTitle, const QString& labelText, const QString& cancelButtonText, int minimum, int maximum, bool delete_on_close, QWidget* parent = Q_NULLPTR, Qt::WindowFlags flags = Qt::WindowFlags()); ~progress_dialog(); void SetRange(int min, int max); void SetValue(int progress); void SignalFailure() const; private: #ifdef _WIN32 std::unique_ptr m_tb_button = nullptr; QWinTaskbarProgress* m_tb_progress = nullptr; #elif HAVE_QTDBUS void UpdateProgress(int progress, bool progress_visible); #endif };