#pragma once #include #include class QComboBox; class QLineEdit; class QButtonGroup; class QStackedWidget; class QPushButton; namespace geopro::data { class IDatasetCommandRepository; } namespace geopro::app { // 白化对话框(I3,1:1 复刻原版 WhiteningDialog)。三种白化方式: // 1 数据边界自动:边界扩展 + 内/外白化单选。 // 2 白化模板:listWhitenedData(projectId, tmObjectId) 选白化文件。 // 3 模型白化:梯形/矩形单选。 // 确认 → whitenData,成功 accept(),调用方随后重载网格重绘。 class WhiteningDialog : public QDialog { Q_OBJECT public: WhiteningDialog(geopro::data::IDatasetCommandRepository* repo, QString dsId, QString projectId, QString tmObjectId, QWidget* parent = nullptr); private: void onMethodChanged(int method); // 切换方式 → 切到对应配置页 void loadWhitenedFiles(); // 方式 2:拉白化文件列表 void onConfirm(); // 确认 → whitenData geopro::data::IDatasetCommandRepository* repo_ = nullptr; QString dsId_; QString projectId_; QString tmObjectId_; QComboBox* methodCombo_ = nullptr; QStackedWidget* stack_ = nullptr; // 方式 1: QLineEdit* extension_ = nullptr; // 原版 AInput 文本框(默认 "0") QButtonGroup* whiteningType_ = nullptr; // 0 外部 / 1 内部 // 方式 2: QComboBox* fileCombo_ = nullptr; // 方式 3: QButtonGroup* modelSubType_ = nullptr; // 2 梯形 / 1 矩形 QPushButton* okBtn_ = nullptr; }; } // namespace geopro::app