21#include "cc_tools_qt/details/ToolsFieldBase.h"
22#include "cc_tools_qt/field/ToolsOptionalField.h"
33template <
typename TField>
34class ToolsOptionalFieldImpl :
public ToolsFieldBase<cc_tools_qt::field::ToolsOptionalField, TField>
36 using Base = ToolsFieldBase<cc_tools_qt::field::ToolsOptionalField, TField>;
39 using Mode =
typename Base::Mode;
40 using Ptr =
typename Base::Ptr;
41 using ActPtr =
typename Base::ActPtr;
44 explicit ToolsOptionalFieldImpl(Field& fieldRef)
50 virtual Mode getModeImpl()
const override
52 return Base::field().getMode();
55 virtual void setModeImpl(Mode mode)
override
57 Base::field().setMode(mode);
60 virtual Ptr cloneImpl()
override
62 return ActPtr(
new ToolsOptionalFieldImpl<TField>(Base::field()));
66template <
typename TField>
67auto makeOptionalField(TField& field)
69 return std::make_unique<ToolsOptionalFieldImpl<TField>>(field);