#pragma once #include #include class QLineEdit; class QComboBox; class QPlainTextEdit; class QLabel; namespace geopro::app { // 异常保存对话框(#4b,需求 R50):名称 + 异常类型 + 备注 + 截图预览/大小。 // 异常类型本期 mock 列表(真实 exceptionType 端点只读、后续可接)。accept 后取 name/typeName/typeId/remark。 class AnomalySaveDialog : public QDialog { Q_OBJECT public: // screenshotPath:圈定结束截图的本地路径(为空则不显示预览);w/h:截图像素尺寸(R50「确定截图大小」)。 AnomalySaveDialog(const QString& screenshotPath, int shotW, int shotH, QWidget* parent = nullptr); QString anomalyName() const; QString typeName() const; QString typeId() const; QString remark() const; private: QLineEdit* name_ = nullptr; QComboBox* type_ = nullptr; QPlainTextEdit* remark_ = nullptr; }; } // namespace geopro::app