#pragma once #include #include #include #include #include #include #include "inspectors/inspectorbase.h" class Component; class Asset; class Inspector : public QFrame { Q_OBJECT public: explicit Inspector(QWidget* parent = nullptr); ~Inspector(); QFrame* GetInspector(std::type_index, Component* component); QFrame* GetInspectorAsset(Asset* asset); template void Register() { m_inspectors.emplace(typeid(Object), new Inspector(nullptr)); } public slots: void Rebuild(bool override = false); private: int m_lastEntitySelected = 0; QLabel* m_label; QVBoxLayout* m_masterlayout; QFrame* m_itemsContainer; QScrollArea* m_scrollArea; QGridLayout* m_layout2; QMenu* m_addComponentMenu; QPushButton* m_addComponentButton; std::vector m_inspectorFrames; std::map m_inspectors; };