geopro/src/app/panels/chart/DetailViewFactory.hpp

35 lines
1.4 KiB
C++
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#pragma once
#include <functional>
#include <memory>
#include <QString>
#include "DatasetDetailTab.hpp" // geopro::controller::ViewKind
class QWidget;
namespace geopro::data {
class IColorTemplateRepository;
class IDatasetCommandRepository;
}
namespace geopro::app {
class IDetailView;
// 按 render kind 造详情视图。E1b 仅支持 Scatter / FilledContour反演两页签
// Bar/LineProfile/PolylineMap/Table 留待后续阶段measurement/trajectory/grid
// 现阶段命中会抛 std::runtime_error明确失败而非静默空指针
// colorTplRepo/projectIdGetterFilledContour 视图的色阶模板仓储注入(可空 → 编辑器后端按钮禁用)。
// cmdRepo/dsIdGetterScatter 视图measurement反演运算/生成视电阻率命令仓储注入(可空 → 按钮占位提示)。
// tmObjectIdGetterFilledContour 视图白化对话框所需 tmObjectId=数据集 structParentId取值回调可空 → 模板列表空)。
std::unique_ptr<IDetailView> makeDetailView(
controller::ViewKind kind, QWidget* parent,
geopro::data::IColorTemplateRepository* colorTplRepo = nullptr,
std::function<QString()> projectIdGetter = {},
geopro::data::IDatasetCommandRepository* cmdRepo = nullptr,
std::function<QString()> dsIdGetter = {},
std::function<QString()> tmObjectIdGetter = {});
} // namespace geopro::app