#pragma once #include class QLabel; class QStackedWidget; class BlackholeResolveDialog final : public QDialog { Q_OBJECT public: enum class Algorithm { CopyBackgroundRegion, UseOriginalBackground, }; explicit BlackholeResolveDialog(const QString& blackholeName, QWidget* parent = nullptr); Algorithm selectedAlgorithm() const { return m_selectedAlgorithm; } private: void buildSelectPage(); void buildDetailPage(); void enterAlgorithmPage(Algorithm algo); private: QString m_blackholeName; Algorithm m_selectedAlgorithm = Algorithm::UseOriginalBackground; QStackedWidget* m_pages = nullptr; QWidget* m_pageSelect = nullptr; QWidget* m_pageDetail = nullptr; QLabel* m_detailTitle = nullptr; QLabel* m_detailHint = nullptr; QStackedWidget* m_algoDetails = nullptr; QWidget* m_copyDetail = nullptr; QWidget* m_originalDetail = nullptr; };