forked from qt-creator/qt-creator
Revert "Revert "QmlDesigner: Fix drag & drop 3D components into 2D/3D view""
This reverts commit 95931b9847
.
Reason for revert: fixed conflicts
Change-Id: I96176eb0acb46af657d5c25555e5abe9c0464c5d
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
This commit is contained in:
@@ -173,6 +173,7 @@ public:
|
|||||||
NodeMetaInfo qtQuick3DMaterialMetaInfo() const;
|
NodeMetaInfo qtQuick3DMaterialMetaInfo() const;
|
||||||
NodeMetaInfo qtQuick3DModelMetaInfo() const;
|
NodeMetaInfo qtQuick3DModelMetaInfo() const;
|
||||||
NodeMetaInfo qtQuick3DNodeMetaInfo() const;
|
NodeMetaInfo qtQuick3DNodeMetaInfo() const;
|
||||||
|
NodeMetaInfo qtQuick3DObject3DMetaInfo() const;
|
||||||
NodeMetaInfo qtQuick3DOrthographicCameraMetaInfo() const;
|
NodeMetaInfo qtQuick3DOrthographicCameraMetaInfo() const;
|
||||||
NodeMetaInfo qtQuick3DParticles3DSpriteParticle3DMetaInfo() const;
|
NodeMetaInfo qtQuick3DParticles3DSpriteParticle3DMetaInfo() const;
|
||||||
NodeMetaInfo qtQuick3DPerspectiveCameraMetaInfo() const;
|
NodeMetaInfo qtQuick3DPerspectiveCameraMetaInfo() const;
|
||||||
|
@@ -191,6 +191,7 @@ public:
|
|||||||
bool isQtQuick3DMaterial() const;
|
bool isQtQuick3DMaterial() const;
|
||||||
bool isQtQuick3DModel() const;
|
bool isQtQuick3DModel() const;
|
||||||
bool isQtQuick3DNode() const;
|
bool isQtQuick3DNode() const;
|
||||||
|
bool isQtQuick3DObject3D() const;
|
||||||
bool isQtQuick3DParticlesAbstractShape() const;
|
bool isQtQuick3DParticlesAbstractShape() const;
|
||||||
bool isQtQuick3DParticles3DAffector3D() const;
|
bool isQtQuick3DParticles3DAffector3D() const;
|
||||||
bool isQtQuick3DParticles3DAttractor3D() const;
|
bool isQtQuick3DParticles3DAttractor3D() const;
|
||||||
|
@@ -4156,6 +4156,22 @@ bool NodeMetaInfo::isQtQuick3DNode() const
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool NodeMetaInfo::isQtQuick3DObject3D() const
|
||||||
|
{
|
||||||
|
if constexpr (useProjectStorage()) {
|
||||||
|
if (!isValid())
|
||||||
|
return false;
|
||||||
|
|
||||||
|
using NanotraceHR::keyValue;
|
||||||
|
NanotraceHR::Tracer tracer{"is QtQuick3D.Object3D", category(), keyValue("type id", m_typeId)};
|
||||||
|
|
||||||
|
using namespace Storage::Info;
|
||||||
|
return isBasedOnCommonType<QtQuick3D, Object3D>(m_projectStorage, m_typeId);
|
||||||
|
} else {
|
||||||
|
return isValid() && isSubclassOf("QtQuick3D.Object3D");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
bool NodeMetaInfo::isQtQuick3DParticles3DAffector3D() const
|
bool NodeMetaInfo::isQtQuick3DParticles3DAffector3D() const
|
||||||
{
|
{
|
||||||
if constexpr (useProjectStorage()) {
|
if constexpr (useProjectStorage()) {
|
||||||
|
@@ -372,6 +372,16 @@ void SubComponentManager::registerQmlFile(const QFileInfo &fileInfo, const QStri
|
|||||||
if (!qualifier.isEmpty())
|
if (!qualifier.isEmpty())
|
||||||
itemLibraryEntry.setRequiredImport(fixedQualifier);
|
itemLibraryEntry.setRequiredImport(fixedQualifier);
|
||||||
|
|
||||||
|
const NodeMetaInfo nodeMetaInfo = model()->metaInfo(baseComponentName.toUtf8());
|
||||||
|
if (nodeMetaInfo.isValid()) {
|
||||||
|
QHash<QString, QString> hints;
|
||||||
|
if (nodeMetaInfo.isBasedOn(model()->qtQuick3DObject3DMetaInfo()))
|
||||||
|
hints["canBeDroppedInFormEditor"] = "false";
|
||||||
|
if (nodeMetaInfo.isBasedOn(model()->qtQuick3DNodeMetaInfo()))
|
||||||
|
hints["canBeDroppedInView3D"] = "true";
|
||||||
|
itemLibraryEntry.addHints(hints);
|
||||||
|
}
|
||||||
|
|
||||||
if (!model()->metaInfo().itemLibraryInfo()->containsEntry(itemLibraryEntry))
|
if (!model()->metaInfo().itemLibraryInfo()->containsEntry(itemLibraryEntry))
|
||||||
model()->metaInfo().itemLibraryInfo()->addEntries({itemLibraryEntry});
|
model()->metaInfo().itemLibraryInfo()->addEntries({itemLibraryEntry});
|
||||||
}
|
}
|
||||||
|
@@ -2544,6 +2544,16 @@ NodeMetaInfo Model::qtQuick3DNodeMetaInfo() const
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
NodeMetaInfo Model::qtQuick3DObject3DMetaInfo() const
|
||||||
|
{
|
||||||
|
if constexpr (useProjectStorage()) {
|
||||||
|
using namespace Storage::Info;
|
||||||
|
return createNodeMetaInfo<QtQuick3D, Object3D>();
|
||||||
|
} else {
|
||||||
|
return metaInfo("QtQuick3D.Object3D");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
NodeMetaInfo Model::qtQuick3DPointLightMetaInfo() const
|
NodeMetaInfo Model::qtQuick3DPointLightMetaInfo() const
|
||||||
{
|
{
|
||||||
if constexpr (useProjectStorage()) {
|
if constexpr (useProjectStorage()) {
|
||||||
|
@@ -71,6 +71,7 @@ inline constexpr char Material[] = "Material";
|
|||||||
inline constexpr char Model[] = "Model";
|
inline constexpr char Model[] = "Model";
|
||||||
inline constexpr char MouseArea[] = "MouseArea";
|
inline constexpr char MouseArea[] = "MouseArea";
|
||||||
inline constexpr char Node[] = "Node";
|
inline constexpr char Node[] = "Node";
|
||||||
|
inline constexpr char Object3D[] = "Object3D";
|
||||||
inline constexpr char OrthographicCamera[] = "OrthographicCamera";
|
inline constexpr char OrthographicCamera[] = "OrthographicCamera";
|
||||||
inline constexpr char Particle3D[] = "Particle3D";
|
inline constexpr char Particle3D[] = "Particle3D";
|
||||||
inline constexpr char ParticleEmitter3D[] = "ParticleEmitter3D";
|
inline constexpr char ParticleEmitter3D[] = "ParticleEmitter3D";
|
||||||
@@ -223,6 +224,7 @@ class CommonTypeCache
|
|||||||
CacheType<QtQuick3D, ModuleKind::QmlLibrary, Material>,
|
CacheType<QtQuick3D, ModuleKind::QmlLibrary, Material>,
|
||||||
CacheType<QtQuick3D, ModuleKind::QmlLibrary, Model>,
|
CacheType<QtQuick3D, ModuleKind::QmlLibrary, Model>,
|
||||||
CacheType<QtQuick3D, ModuleKind::QmlLibrary, Node>,
|
CacheType<QtQuick3D, ModuleKind::QmlLibrary, Node>,
|
||||||
|
CacheType<QtQuick3D, ModuleKind::QmlLibrary, Object3D>,
|
||||||
CacheType<QtQuick3D, ModuleKind::QmlLibrary, OrthographicCamera>,
|
CacheType<QtQuick3D, ModuleKind::QmlLibrary, OrthographicCamera>,
|
||||||
CacheType<QtQuick3D, ModuleKind::QmlLibrary, Pass>,
|
CacheType<QtQuick3D, ModuleKind::QmlLibrary, Pass>,
|
||||||
CacheType<QtQuick3D, ModuleKind::QmlLibrary, PerspectiveCamera>,
|
CacheType<QtQuick3D, ModuleKind::QmlLibrary, PerspectiveCamera>,
|
||||||
|
Reference in New Issue
Block a user