summaryrefslogtreecommitdiffstats
path: root/src/Authoring/Qt3DStudio/Palettes/Inspector/InspectorControlModel.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/Authoring/Qt3DStudio/Palettes/Inspector/InspectorControlModel.h')
-rw-r--r--src/Authoring/Qt3DStudio/Palettes/Inspector/InspectorControlModel.h61
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;
};