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 qtQuick3DModelMetaInfo() const;
|
||||
NodeMetaInfo qtQuick3DNodeMetaInfo() const;
|
||||
NodeMetaInfo qtQuick3DObject3DMetaInfo() const;
|
||||
NodeMetaInfo qtQuick3DOrthographicCameraMetaInfo() const;
|
||||
NodeMetaInfo qtQuick3DParticles3DSpriteParticle3DMetaInfo() const;
|
||||
NodeMetaInfo qtQuick3DPerspectiveCameraMetaInfo() const;
|
||||
|
@@ -191,6 +191,7 @@ public:
|
||||
bool isQtQuick3DMaterial() const;
|
||||
bool isQtQuick3DModel() const;
|
||||
bool isQtQuick3DNode() const;
|
||||
bool isQtQuick3DObject3D() const;
|
||||
bool isQtQuick3DParticlesAbstractShape() const;
|
||||
bool isQtQuick3DParticles3DAffector3D() 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
|
||||
{
|
||||
if constexpr (useProjectStorage()) {
|
||||
|
@@ -372,6 +372,16 @@ void SubComponentManager::registerQmlFile(const QFileInfo &fileInfo, const QStri
|
||||
if (!qualifier.isEmpty())
|
||||
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))
|
||||
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
|
||||
{
|
||||
if constexpr (useProjectStorage()) {
|
||||
|
@@ -71,6 +71,7 @@ inline constexpr char Material[] = "Material";
|
||||
inline constexpr char Model[] = "Model";
|
||||
inline constexpr char MouseArea[] = "MouseArea";
|
||||
inline constexpr char Node[] = "Node";
|
||||
inline constexpr char Object3D[] = "Object3D";
|
||||
inline constexpr char OrthographicCamera[] = "OrthographicCamera";
|
||||
inline constexpr char Particle3D[] = "Particle3D";
|
||||
inline constexpr char ParticleEmitter3D[] = "ParticleEmitter3D";
|
||||
@@ -223,6 +224,7 @@ class CommonTypeCache
|
||||
CacheType<QtQuick3D, ModuleKind::QmlLibrary, Material>,
|
||||
CacheType<QtQuick3D, ModuleKind::QmlLibrary, Model>,
|
||||
CacheType<QtQuick3D, ModuleKind::QmlLibrary, Node>,
|
||||
CacheType<QtQuick3D, ModuleKind::QmlLibrary, Object3D>,
|
||||
CacheType<QtQuick3D, ModuleKind::QmlLibrary, OrthographicCamera>,
|
||||
CacheType<QtQuick3D, ModuleKind::QmlLibrary, Pass>,
|
||||
CacheType<QtQuick3D, ModuleKind::QmlLibrary, PerspectiveCamera>,
|
||||
|
Reference in New Issue
Block a user