// dataModel.h #pragma once #include "diagramEditor/editItems.h" #include "diagramEditor/dataModel.h" #include class EditItemFactory { public: virtual ~EditItemFactory() = default; virtual EditBaseItem* createItem(BlockDataPtr blockData) = 0; virtual QGraphicsLinearLayout* createLayerLayout() = 0; static EditItemFactory* getFactory(int itemType); protected: virtual void setupItem(EditBaseItem* item, BlockDataPtr blockData) = 0; };