diff options
Diffstat (limited to 'src/Authoring/Qt3DStudio/Palettes/Inspector/InspectorControlModel.h')
-rw-r--r-- | src/Authoring/Qt3DStudio/Palettes/Inspector/InspectorControlModel.h | 61 |
1 files changed, 34 insertions, 27 deletions
diff --git a/src/Authoring/Qt3DStudio/Palettes/Inspector/InspectorControlModel.h b/src/Authoring/Qt3DStudio/Palettes/Inspector/InspectorControlModel.h index 3063f047..bcd4ce22 100644 --- a/src/Authoring/Qt3DStudio/Palettes/Inspector/InspectorControlModel.h +++ b/src/Authoring/Qt3DStudio/Palettes/Inspector/InspectorControlModel.h @@ -70,6 +70,7 @@ class InspectorControlBase : public QObject Q_PROPERTY(bool animated MEMBER m_animated NOTIFY animatedChanged) Q_PROPERTY(bool controlled MEMBER m_controlled NOTIFY controlledChanged) Q_PROPERTY(bool controllable MEMBER m_controllable CONSTANT) + Q_PROPERTY(bool validData MEMBER m_valid NOTIFY validDataChanged) Q_PROPERTY(QString controller MEMBER m_controller NOTIFY controlledChanged) public: @@ -81,6 +82,7 @@ Q_SIGNALS: void animatedChanged(); void controlledChanged(); void tooltipChanged(); + void validDataChanged(); public: qt3dsdm::DataModelDataType::Value m_dataType; @@ -99,6 +101,7 @@ public: bool m_animated = false; bool m_controlled = false; bool m_controllable = false; + bool m_valid = true; QString m_controller; std::vector<qt3dsdm::TSignalConnectionPtr> m_connections; }; @@ -130,7 +133,8 @@ public: void refresh(); void saveIfMaterial(qt3dsdm::Qt3DSDMInstanceHandle instance); - bool hasInstanceProperty(long instance, int handle); + bool hasInstanceProperty(qt3dsdm::Qt3DSDMInstanceHandle instance, + qt3dsdm::Qt3DSDMPropertyHandle handle) const; qt3dsdm::SValue currentPropertyValue(long instance, int handle) const; QString currentControllerValue(long instance, int handle) const; @@ -158,25 +162,17 @@ public: Q_INVOKABLE void duplicateMaterial(); Q_INVOKABLE bool isGroupCollapsed(int groupIdx) const; Q_INVOKABLE void updateGroupCollapseState(int groupIdx, bool state); + Q_INVOKABLE void undo(); + Q_INVOKABLE void redo(); private: - void onSlideRearranged(const qt3dsdm::Qt3DSDMSlideHandle &inMaster, int inOldIndex, - int inNewIndex); - - - struct GroupInspectorControl { + struct GroupInspectorControl + { QString groupTitle; QVariantList controlElements; QString groupInfo; - - ~GroupInspectorControl() { - } }; - QVector<GroupInspectorControl> m_groupElements; - CInspectableBase *m_inspectableBase = nullptr; - GuideInspectable *m_guideInspectable = nullptr; - struct MaterialEntry { QString m_name; @@ -191,20 +187,9 @@ private: QMap<QString, QMap<QString, QString>> m_textureValues; }; - std::vector<MaterialEntry> m_materials; - std::vector<MaterialDataEntry> m_matDatas; - std::vector<Q3DStudio::CFilePath> m_cachedMatDatas; - qt3dsdm::Qt3DSDMInstanceHandle m_refMaterial; - - Q3DStudio::CUpdateableDocumentEditor m_UpdatableEditor; - - bool m_suspendMaterialRename = false; - - QPair<long, int> m_modifiedProperty; - - qt3dsdm::SValue m_previouslyCommittedValue; + void onSlideRearranged(const qt3dsdm::Qt3DSDMSlideHandle &inMaster, int inOldIndex, + int inNewIndex); - QHash<int, QHash<int, bool> > m_collapseMap; QString getBasicMaterialString() const; QString getAnimatableMaterialString() const; @@ -220,6 +205,8 @@ private: void updateMaterialValues(const QStringList &values, int elementIndex, bool updatingShaders = false); qt3dsdm::Qt3DSDMInstanceHandle getReferenceMaterial(CInspectableBase *inspectable) const; + qt3dsdm::Qt3DSDMInstanceHandle getReferenceMaterialRecursively( + CInspectableBase *inspectable) const; void updateShaderValues(); void updateMatDataValues(); void updatePropertyValue(InspectorControlBase *element) const; @@ -227,6 +214,7 @@ private: void refreshTree(); void updateAnimateToggleState(InspectorControlBase *inItem); void updateControlledToggleState(InspectorControlBase *inItem) const; + void updateValidState(InspectorControlBase *inItem) const; QStringList materialTypeValues() const; QStringList shaderValues() const; @@ -247,11 +235,30 @@ private: int theIndex, bool disableAnimation = false, bool isReference = false); bool isGroupRebuildRequired(CInspectableBase *inspectable, int theIndex) const; - + CInspectableBase *getInspectableFromInstance(qt3dsdm::Qt3DSDMInstanceHandle inInstance); CClientDataModelBridge *getBridge() const; static int handleToGuidePropIndex(int handle) { return handle - 1; } + QVector<GroupInspectorControl> m_groupElements; + CInspectableBase *m_inspectableBase = nullptr; + GuideInspectable *m_guideInspectable = nullptr; + + std::vector<MaterialEntry> m_materials; + std::vector<MaterialDataEntry> m_matDatas; + std::vector<Q3DStudio::CFilePath> m_cachedMatDatas; + qt3dsdm::Qt3DSDMInstanceHandle m_refMaterial; + + Q3DStudio::CUpdateableDocumentEditor m_UpdatableEditor; + + bool m_suspendMaterialRename = false; + + QPair<long, int> m_modifiedProperty; + + qt3dsdm::SValue m_previouslyCommittedValue; + + QHash<int, QHash<int, bool> > m_collapseMap; + VariantsGroupModel *m_variantsModel = nullptr; }; |