27 const SessionItem* itemFromIndex(
const QModelIndex& index)
29 auto model =
dynamic_cast<const ViewModel*
>(index.model());
72 std::unique_ptr<CustomEditor>
75 auto item = itemFromIndex(index);
81 std::unique_ptr<CustomEditor>
85 return builder ? builder(item) : std::unique_ptr<CustomEditor>();
105 std::unique_ptr<CustomEditor>
108 auto item = itemFromIndex(index);
109 auto value = item ? item->data<QVariant>() : index.data(Qt::EditRole);
111 return builder ? builder(item) : std::unique_ptr<CustomEditor>();
EditorBuilders::builder_t findBuilder(const std::string &name) const
std::map< std::string, EditorBuilders::builder_t > m_nameToBuilderMap
void registerBuilder(const std::string &name, EditorBuilders::builder_t builder)
std::unique_ptr< RoleDependentEditorFactory > m_roleDependentFactory
std::unique_ptr< CustomEditor > createEditor(const QModelIndex &index) const override
Creates editor for given model index basing either on editorType() or specific variant name.
std::unique_ptr< VariantDependentEditorFactory > m_variantDependentFactory
Editor factory for cell editors in Qt trees and tables, relies on EDITORTYPE role stored on board of ...
std::unique_ptr< CustomEditor > createEditor(const QModelIndex &index) const override
Creates cell editor basing on item role. It is expected that the index belongs to a ViewModel.
std::unique_ptr< CustomEditor > createItemEditor(const SessionItem *item) const
Creates cell editor basing on editor type.
RoleDependentEditorFactory()
The main object representing an editable/displayable/serializable entity.
std::string editorType() const
Returns editor type.
Editor factory for cell editors in Qt trees and tables, relies on variant type stored as DATA role on...
VariantDependentEditorFactory()
std::unique_ptr< CustomEditor > createEditor(const QModelIndex &index) const override
Creates cell editor basing on variant name.
Main class to represent content of SessionModel in Qt's trees and tables.
SessionItem * sessionItemFromIndex(const QModelIndex &index) const
const std::string SelectableComboPropertyEditorType
const std::string ComboPropertyEditorType
const std::string ExternalPropertyEditorType
const std::string ScientficSpinBoxEditorType
const std::string bool_type_name
const std::string comboproperty_type_name
const std::string double_type_name
const std::string ColorEditorType
const std::string ScientficDoubleEditorType
const std::string extproperty_type_name
const std::string BoolEditorType
const std::string DoubleEditorType
const std::string IntegerEditorType
const std::string qcolor_type_name
const std::string int_type_name
MVVM_VIEWMODEL_EXPORT builder_t ColorEditorBuilder()
Builder for color property editor.
MVVM_VIEWMODEL_EXPORT builder_t BoolEditorBuilder()
Builder for boolean property editor.
MVVM_VIEWMODEL_EXPORT builder_t SelectableComboPropertyEditorBuilder()
Builder for ComboProperty editor with multi-selection functionality.
MVVM_VIEWMODEL_EXPORT builder_t ScientificDoubleEditorBuilder()
Builder for double editor with scientific notation based on simple text field.
MVVM_VIEWMODEL_EXPORT builder_t ComboPropertyEditorBuilder()
Builder for ComboProperty editor.
std::function< editor_t(const SessionItem *)> builder_t
MVVM_VIEWMODEL_EXPORT builder_t ScientificSpinBoxEditorBuilder()
Builder for double editor with scientific notation and spinbox functionality.
MVVM_VIEWMODEL_EXPORT builder_t ExternalPropertyEditorBuilder()
Builder for external property editor.
MVVM_VIEWMODEL_EXPORT builder_t IntegerEditorBuilder()
Builder for integer property editor.
MVVM_VIEWMODEL_EXPORT builder_t DoubleEditorBuilder()
Builder for double editor with limits support.
MVVM_MODEL_EXPORT std::string VariantName(const Variant &variant)
Returns name of variant.
materialitems.h Collection of materials to populate MaterialModel.
QString const & name(EShape k)