forked from qt-creator/qt-creator
QmlDesigner: Move component specific code out of the model
The model is an abstraction for communication between components and should not used as place for component specific code. Otherwise it will grow quite dramatically. Add Utils3D in component core which is shared between all components is actually the place to share code between components. Change-Id: Ic9d0be72e4480fc33ac6300a10871db4983b4a73 Reviewed-by: Qt CI Patch Build Bot <ci_patchbuild_bot@qt.io> Reviewed-by: Tim Jenssen <tim.jenssen@qt.io> Reviewed-by: Miikka Heikkinen <miikka.heikkinen@qt.io>
This commit is contained in:
@@ -626,6 +626,7 @@ extend_qtc_plugin(QmlDesigner
|
||||
anchoraction.cpp anchoraction.h
|
||||
svgpasteaction.cpp svgpasteaction.h
|
||||
viewmanager.cpp viewmanager.h
|
||||
utils3d.cpp utils3d.h
|
||||
)
|
||||
|
||||
extend_qtc_plugin(QmlDesigner
|
||||
|
@@ -9,11 +9,12 @@
|
||||
#include "assetslibraryview.h"
|
||||
#include "designeractionmanager.h"
|
||||
#include "import.h"
|
||||
#include "nodemetainfo.h"
|
||||
#include "modelnodeoperations.h"
|
||||
#include "nodemetainfo.h"
|
||||
#include "qmldesignerconstants.h"
|
||||
#include "qmldesignerplugin.h"
|
||||
#include "theme.h"
|
||||
#include <utils3d.h>
|
||||
|
||||
#include <studioquickwidget.h>
|
||||
|
||||
@@ -229,16 +230,18 @@ int AssetsLibraryWidget::qtVersion() const
|
||||
void AssetsLibraryWidget::addTextures(const QStringList &filePaths)
|
||||
{
|
||||
m_assetsView->executeInTransaction(__FUNCTION__, [&] {
|
||||
m_createTextures.execute(filePaths, AddTextureMode::Texture,
|
||||
m_assetsView->model()->active3DSceneId());
|
||||
m_createTextures.execute(filePaths,
|
||||
AddTextureMode::Texture,
|
||||
Utils3D::active3DSceneId(m_assetsView->model()));
|
||||
});
|
||||
}
|
||||
|
||||
void AssetsLibraryWidget::addLightProbe(const QString &filePath)
|
||||
{
|
||||
m_assetsView->executeInTransaction(__FUNCTION__, [&] {
|
||||
m_createTextures.execute({filePath}, AddTextureMode::LightProbe,
|
||||
m_assetsView->model()->active3DSceneId());
|
||||
m_createTextures.execute({filePath},
|
||||
AddTextureMode::LightProbe,
|
||||
Utils3D::active3DSceneId(m_assetsView->model()));
|
||||
});
|
||||
}
|
||||
|
||||
@@ -247,7 +250,8 @@ void AssetsLibraryWidget::updateContextMenuActionsEnableState()
|
||||
setHasMaterialLibrary(m_assetsView->materialLibraryNode().isValid()
|
||||
&& m_assetsView->model()->hasImport("QtQuick3D"));
|
||||
|
||||
ModelNode activeSceneEnv = m_createTextures.resolveSceneEnv(m_assetsView->model()->active3DSceneId());
|
||||
ModelNode activeSceneEnv = m_createTextures.resolveSceneEnv(
|
||||
Utils3D::active3DSceneId(m_assetsView->model()));
|
||||
setHasSceneEnv(activeSceneEnv.isValid());
|
||||
}
|
||||
|
||||
|
34
src/plugins/qmldesigner/components/componentcore/utils3d.cpp
Normal file
34
src/plugins/qmldesigner/components/componentcore/utils3d.cpp
Normal file
@@ -0,0 +1,34 @@
|
||||
// Copyright (C) 2024 The Qt Company Ltd.
|
||||
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
|
||||
|
||||
#include "utils3d.h"
|
||||
|
||||
namespace QmlDesigner {
|
||||
namespace Utils3D {
|
||||
|
||||
ModelNode active3DSceneNode(AbstractView *view)
|
||||
{
|
||||
if (!view)
|
||||
return {};
|
||||
|
||||
auto activeSceneAux = view->rootModelNode().auxiliaryData(active3dSceneProperty);
|
||||
if (activeSceneAux) {
|
||||
int activeScene = activeSceneAux->toInt();
|
||||
|
||||
if (view->hasModelNodeForInternalId(activeScene))
|
||||
return view->modelNodeForInternalId(activeScene);
|
||||
}
|
||||
|
||||
return {};
|
||||
}
|
||||
|
||||
qint32 active3DSceneId(Model *model)
|
||||
{
|
||||
auto sceneId = model->rootModelNode().auxiliaryData(active3dSceneProperty);
|
||||
if (sceneId)
|
||||
return sceneId->toInt();
|
||||
return -1;
|
||||
}
|
||||
|
||||
} // namespace Utils3D
|
||||
} // namespace QmlDesigner
|
18
src/plugins/qmldesigner/components/componentcore/utils3d.h
Normal file
18
src/plugins/qmldesigner/components/componentcore/utils3d.h
Normal file
@@ -0,0 +1,18 @@
|
||||
// Copyright (C) 2024 The Qt Company Ltd.
|
||||
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
|
||||
|
||||
// please put here 3d related functions which have no clear place elsewhere
|
||||
|
||||
#include <abstractview.h>
|
||||
|
||||
namespace QmlDesigner {
|
||||
namespace Utils3D {
|
||||
|
||||
inline constexpr AuxiliaryDataKeyView active3dSceneProperty{AuxiliaryDataType::Temporary,
|
||||
"active3dScene"};
|
||||
|
||||
ModelNode active3DSceneNode(AbstractView *view);
|
||||
qint32 active3DSceneId(Model *model);
|
||||
|
||||
} // namespace Utils3D
|
||||
} // namespace QmlDesigner
|
@@ -16,6 +16,7 @@
|
||||
#include "qmldesignerconstants.h"
|
||||
#include "qmlobjectnode.h"
|
||||
#include "variantproperty.h"
|
||||
#include <utils3d.h>
|
||||
|
||||
#include <coreplugin/messagebox.h>
|
||||
#include <enumeration.h>
|
||||
@@ -143,7 +144,7 @@ WidgetInfo ContentLibraryView::widgetInfo()
|
||||
QTC_ASSERT(typeName.size(), return);
|
||||
|
||||
if (!m_bundleEffectTarget)
|
||||
m_bundleEffectTarget = active3DSceneNode();
|
||||
m_bundleEffectTarget = Utils3D::active3DSceneNode(this);
|
||||
|
||||
QTC_ASSERT(m_bundleEffectTarget, return);
|
||||
|
||||
@@ -168,7 +169,7 @@ WidgetInfo ContentLibraryView::widgetInfo()
|
||||
QTC_ASSERT(metaInfo.isValid(), return);
|
||||
|
||||
if (!m_bundleEffectTarget)
|
||||
m_bundleEffectTarget = active3DSceneNode();
|
||||
m_bundleEffectTarget = Utils3D::active3DSceneNode(this);
|
||||
|
||||
QTC_ASSERT(m_bundleEffectTarget, return);
|
||||
|
||||
@@ -226,7 +227,7 @@ void ContentLibraryView::modelAttached(Model *model)
|
||||
m_widget->setHasQuick3DImport(m_hasQuick3DImport);
|
||||
m_widget->setIsQt6Project(externalDependencies().isQt6Project());
|
||||
|
||||
m_sceneId = model->active3DSceneId();
|
||||
m_sceneId = Utils3D::active3DSceneId(model);
|
||||
|
||||
m_widget->setHasActive3DScene(m_sceneId != -1);
|
||||
m_widget->clearSearchFilter();
|
||||
@@ -322,7 +323,7 @@ void ContentLibraryView::customNotification(const AbstractView *view,
|
||||
|
||||
m_bundleEffectPos = data.size() == 1 ? data.first() : QVariant();
|
||||
m_widget->effectsModel()->addInstance(m_draggedBundleEffect);
|
||||
m_bundleEffectTarget = nodeList.first() ? nodeList.first() : active3DSceneNode();
|
||||
m_bundleEffectTarget = nodeList.first() ? nodeList.first() : Utils3D::active3DSceneNode(this);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -341,6 +342,14 @@ void ContentLibraryView::nodeAboutToBeRemoved(const ModelNode &removedNode)
|
||||
m_widget->setHasMaterialLibrary(false);
|
||||
}
|
||||
|
||||
void ContentLibraryView::auxiliaryDataChanged(const ModelNode &,
|
||||
AuxiliaryDataKeyView type,
|
||||
const QVariant &data)
|
||||
{
|
||||
if (type == Utils3D::active3dSceneProperty)
|
||||
active3DSceneChanged(data.toInt());
|
||||
}
|
||||
|
||||
#ifdef QDS_USE_PROJECTSTORAGE
|
||||
void ContentLibraryView::applyBundleMaterialToDropTarget(const ModelNode &bundleMat,
|
||||
const TypeName &typeName)
|
||||
|
@@ -33,7 +33,6 @@ public:
|
||||
void modelAttached(Model *model) override;
|
||||
void modelAboutToBeDetached(Model *model) override;
|
||||
void importsChanged(const Imports &addedImports, const Imports &removedImports) override;
|
||||
void active3DSceneChanged(qint32 sceneId) override;
|
||||
void selectedNodesChanged(const QList<ModelNode> &selectedNodeList,
|
||||
const QList<ModelNode> &lastSelectedNodeList) override;
|
||||
void customNotification(const AbstractView *view, const QString &identifier,
|
||||
@@ -42,8 +41,12 @@ public:
|
||||
const NodeAbstractProperty &oldPropertyParent,
|
||||
AbstractView::PropertyChangeFlags propertyChange) override;
|
||||
void nodeAboutToBeRemoved(const ModelNode &removedNode) override;
|
||||
void auxiliaryDataChanged(const ModelNode &node,
|
||||
AuxiliaryDataKeyView type,
|
||||
const QVariant &data) override;
|
||||
|
||||
private:
|
||||
void active3DSceneChanged(qint32 sceneId);
|
||||
void updateBundleMaterialsImportedState();
|
||||
void updateBundleEffectsImportedState();
|
||||
void updateBundlesQuick3DVersion();
|
||||
|
@@ -12,6 +12,7 @@
|
||||
#include "nodemetainfo.h"
|
||||
#include "qmlobjectnode.h"
|
||||
#include "variantproperty.h"
|
||||
#include <utils3d.h>
|
||||
|
||||
#include <coreplugin/messagebox.h>
|
||||
|
||||
@@ -117,7 +118,7 @@ ModelNode CreateTexture::resolveSceneEnv(int sceneId)
|
||||
if (selectedNode.metaInfo().isQtQuick3DSceneEnvironment()) {
|
||||
activeSceneEnv = selectedNode;
|
||||
} else if (sceneId != -1) {
|
||||
ModelNode activeScene = m_view->active3DSceneNode();
|
||||
ModelNode activeScene = Utils3D::active3DSceneNode(m_view);
|
||||
if (activeScene.isValid()) {
|
||||
QmlObjectNode view3D;
|
||||
if (activeScene.metaInfo().isQtQuick3DView3D()) {
|
||||
|
@@ -16,6 +16,7 @@
|
||||
#include <nodemetainfo.h>
|
||||
#include <plaintexteditmodifier.h>
|
||||
#include <rewriterview.h>
|
||||
#include <utils3d.h>
|
||||
#include <variantproperty.h>
|
||||
|
||||
#include <coreplugin/icore.h>
|
||||
@@ -84,7 +85,7 @@ ModelNode BakeLights::resolveView3dNode(AbstractView *view)
|
||||
return {};
|
||||
|
||||
ModelNode activeView3D;
|
||||
ModelNode activeScene = view->active3DSceneNode();
|
||||
ModelNode activeScene = Utils3D::active3DSceneNode(view);
|
||||
|
||||
if (activeScene.isValid()) {
|
||||
if (activeScene.metaInfo().isQtQuick3DView3D()) {
|
||||
|
@@ -23,7 +23,9 @@
|
||||
#include "seekerslider.h"
|
||||
#include "snapconfiguration.h"
|
||||
|
||||
#include <auxiliarydataproperties.h>
|
||||
#include <model/modelutils.h>
|
||||
#include <utils3d.h>
|
||||
|
||||
#include <coreplugin/icore.h>
|
||||
#include <coreplugin/messagebox.h>
|
||||
@@ -143,7 +145,7 @@ void Edit3DView::updateActiveScene3D(const QVariantMap &sceneState)
|
||||
if (sceneState.contains(sceneKey)) {
|
||||
qint32 newActiveScene = sceneState[sceneKey].value<qint32>();
|
||||
edit3DWidget()->canvas()->updateActiveScene(newActiveScene);
|
||||
model()->setActive3DSceneId(newActiveScene);
|
||||
setActive3DSceneId(newActiveScene);
|
||||
updateAlignActionStates();
|
||||
}
|
||||
|
||||
@@ -238,7 +240,7 @@ void Edit3DView::updateActiveScene3D(const QVariantMap &sceneState)
|
||||
bool desiredSyncValue = false;
|
||||
if (sceneState.contains(syncEnvBgKey))
|
||||
desiredSyncValue = sceneState[syncEnvBgKey].toBool();
|
||||
ModelNode checkNode = active3DSceneNode();
|
||||
ModelNode checkNode = Utils3D::active3DSceneNode(this);
|
||||
const bool activeSceneValid = checkNode.isValid();
|
||||
|
||||
while (checkNode.isValid()) {
|
||||
@@ -385,7 +387,7 @@ void Edit3DView::updateAlignActionStates()
|
||||
{
|
||||
bool enabled = false;
|
||||
|
||||
ModelNode activeScene = active3DSceneNode();
|
||||
ModelNode activeScene = Utils3D::active3DSceneNode(this);
|
||||
if (activeScene.isValid()) {
|
||||
const QList<ModelNode> nodes = activeScene.allSubModelNodes();
|
||||
enabled = ::Utils::anyOf(nodes, [](const ModelNode &node) {
|
||||
@@ -397,6 +399,11 @@ void Edit3DView::updateAlignActionStates()
|
||||
m_alignViewAction->action()->setEnabled(enabled);
|
||||
}
|
||||
|
||||
void Edit3DView::setActive3DSceneId(qint32 sceneId)
|
||||
{
|
||||
rootModelNode().setAuxiliaryData(Utils3D::active3dSceneProperty, sceneId);
|
||||
}
|
||||
|
||||
void Edit3DView::modelAboutToBeDetached(Model *model)
|
||||
{
|
||||
m_isBakingLightsSupported = false;
|
||||
|
@@ -111,6 +111,7 @@ private:
|
||||
void handleEntriesChanged();
|
||||
void showMaterialPropertiesView();
|
||||
void updateAlignActionStates();
|
||||
void setActive3DSceneId(qint32 sceneId);
|
||||
|
||||
void createSelectBackgroundColorAction(QAction *syncEnvBackgroundAction);
|
||||
void createGridColorSelectionAction();
|
||||
|
@@ -19,6 +19,7 @@
|
||||
#include "qmleditormenu.h"
|
||||
#include "qmlvisualnode.h"
|
||||
#include "viewmanager.h"
|
||||
#include <utils3d.h>
|
||||
|
||||
#include <auxiliarydataproperties.h>
|
||||
#include <designeractionmanager.h>
|
||||
@@ -479,10 +480,7 @@ void Edit3DWidget::onCreateAction(QAction *action)
|
||||
if (!m_view->model()->hasImport(import, true, true))
|
||||
m_view->model()->changeImports({import}, {});
|
||||
|
||||
int activeScene = -1;
|
||||
auto data = m_view->rootModelNode().auxiliaryData(active3dSceneProperty);
|
||||
if (data)
|
||||
activeScene = data->toInt();
|
||||
int activeScene = Utils3D::active3DSceneId(m_view->model());
|
||||
auto modelNode = QmlVisualNode::createQml3DNode(m_view, entry,
|
||||
activeScene, m_contextMenuPos3d).modelNode();
|
||||
QTC_ASSERT(modelNode.isValid(), return);
|
||||
@@ -688,7 +686,7 @@ void Edit3DWidget::dragEnterEvent(QDragEnterEvent *dragEnterEvent)
|
||||
|| dragEnterEvent->mimeData()->hasFormat(Constants::MIME_TYPE_BUNDLE_MATERIAL)
|
||||
|| dragEnterEvent->mimeData()->hasFormat(Constants::MIME_TYPE_BUNDLE_EFFECT)
|
||||
|| dragEnterEvent->mimeData()->hasFormat(Constants::MIME_TYPE_TEXTURE)) {
|
||||
if (m_view->active3DSceneNode().isValid())
|
||||
if (Utils3D::active3DSceneNode(m_view).isValid())
|
||||
dragEnterEvent->acceptProposedAction();
|
||||
} else if (dragEnterEvent->mimeData()->hasFormat(Constants::MIME_TYPE_ITEM_LIBRARY_INFO)) {
|
||||
QByteArray data = dragEnterEvent->mimeData()->data(Constants::MIME_TYPE_ITEM_LIBRARY_INFO);
|
||||
|
@@ -15,6 +15,7 @@
|
||||
#include <nodeinstanceview.h>
|
||||
#include <nodelistproperty.h>
|
||||
#include <rewritingexception.h>
|
||||
#include <utils3d.h>
|
||||
#include <variantproperty.h>
|
||||
#include <viewmanager.h>
|
||||
#include <qmldesignerplugin.h>
|
||||
@@ -232,13 +233,12 @@ void DesignDocument::moveNodesToPosition(const QList<ModelNode> &nodes, const st
|
||||
});
|
||||
|
||||
if (all3DNodes) {
|
||||
auto data = rootModelNode().auxiliaryData(active3dSceneProperty);
|
||||
if (data) {
|
||||
if (int activeSceneId = data->toInt(); activeSceneId != -1) {
|
||||
NodeListProperty sceneNodeProperty = QmlVisualNode::findSceneNodeProperty(
|
||||
rootModelNode().view(), activeSceneId);
|
||||
targetNode = sceneNodeProperty.parentModelNode();
|
||||
}
|
||||
int activeSceneId = Utils3D::active3DSceneId(m_documentModel.get());
|
||||
|
||||
if (activeSceneId != -1) {
|
||||
NodeListProperty sceneNodeProperty = QmlVisualNode::findSceneNodeProperty(
|
||||
rootModelNode().view(), activeSceneId);
|
||||
targetNode = sceneNodeProperty.parentModelNode();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@@ -16,6 +16,7 @@
|
||||
#include "qmldesignerconstants.h"
|
||||
#include "qmlobjectnode.h"
|
||||
#include "variantproperty.h"
|
||||
#include <utils3d.h>
|
||||
|
||||
#include <coreplugin/icore.h>
|
||||
|
||||
@@ -240,7 +241,7 @@ void MaterialBrowserView::modelAttached(Model *model)
|
||||
loadPropertyGroups(); // Needs the delay because it uses metaInfo
|
||||
});
|
||||
|
||||
m_sceneId = model->active3DSceneId();
|
||||
m_sceneId = Utils3D::active3DSceneId(model);
|
||||
}
|
||||
|
||||
void MaterialBrowserView::refreshModel(bool updateImages)
|
||||
@@ -585,6 +586,14 @@ void MaterialBrowserView::instancePropertyChanged(const QList<QPair<ModelNode, P
|
||||
}
|
||||
}
|
||||
|
||||
void MaterialBrowserView::auxiliaryDataChanged(const ModelNode &,
|
||||
AuxiliaryDataKeyView type,
|
||||
const QVariant &data)
|
||||
{
|
||||
if (type == Utils3D::active3dSceneProperty)
|
||||
active3DSceneChanged(data.toInt());
|
||||
}
|
||||
|
||||
void MaterialBrowserView::applyTextureToModel3D(const QmlObjectNode &model3D, const ModelNode &texture)
|
||||
{
|
||||
if (!texture.isValid() && m_appliedTexturePath.isEmpty())
|
||||
|
@@ -49,7 +49,9 @@ public:
|
||||
const QList<ModelNode> &nodeList, const QList<QVariant> &data) override;
|
||||
void instancesCompleted(const QVector<ModelNode> &completedNodeList) override;
|
||||
void instancePropertyChanged(const QList<QPair<ModelNode, PropertyName> > &propertyList) override;
|
||||
void active3DSceneChanged(qint32 sceneId) override;
|
||||
void auxiliaryDataChanged(const ModelNode &node,
|
||||
AuxiliaryDataKeyView type,
|
||||
const QVariant &data) override;
|
||||
void currentStateChanged(const ModelNode &node) override;
|
||||
|
||||
void applyTextureToModel3D(const QmlObjectNode &model3D, const ModelNode &texture = {});
|
||||
@@ -65,6 +67,7 @@ protected:
|
||||
bool eventFilter(QObject *obj, QEvent *event) override;
|
||||
|
||||
private:
|
||||
void active3DSceneChanged(qint32 sceneId);
|
||||
void refreshModel(bool updateImages);
|
||||
void updateMaterialsPreview();
|
||||
bool isMaterial(const ModelNode &node) const;
|
||||
|
@@ -223,8 +223,6 @@ public:
|
||||
|
||||
virtual void view3DAction(View3DActionType type, const QVariant &value);
|
||||
|
||||
virtual void active3DSceneChanged(qint32 sceneId);
|
||||
|
||||
virtual void dragStarted(QMimeData *mimeData);
|
||||
virtual void dragEnded();
|
||||
|
||||
@@ -233,7 +231,6 @@ public:
|
||||
void ensureMaterialLibraryNode();
|
||||
ModelNode materialLibraryNode();
|
||||
bool isPartOfMaterialLibrary(const ModelNode &node);
|
||||
ModelNode active3DSceneNode();
|
||||
ModelNode getTextureDefaultInstance(const QString &source);
|
||||
|
||||
const NodeInstanceView *nodeInstanceView() const;
|
||||
|
@@ -95,8 +95,6 @@ inline constexpr AuxiliaryDataKeyDefaultValue insightCategoriesProperty{Auxiliar
|
||||
"insightCategories",
|
||||
{}};
|
||||
inline constexpr AuxiliaryDataKeyView uuidProperty{AuxiliaryDataType::Document, "uuid"};
|
||||
inline constexpr AuxiliaryDataKeyView active3dSceneProperty{AuxiliaryDataType::Temporary,
|
||||
"active3dScene"};
|
||||
inline constexpr AuxiliaryDataKeyView tmpProperty{AuxiliaryDataType::Temporary, "tmp"};
|
||||
inline constexpr AuxiliaryDataKeyView recordProperty{AuxiliaryDataType::Temporary, "Record"};
|
||||
inline constexpr AuxiliaryDataKeyView transitionDurationProperty{AuxiliaryDataType::Document,
|
||||
|
@@ -239,9 +239,6 @@ public:
|
||||
std::optional<std::function<bool(const QString &)>> isDuplicate = {}) const;
|
||||
QString generateIdFromName(const QString &name, const QString &fallbackId = "element") const;
|
||||
|
||||
void setActive3DSceneId(qint32 sceneId);
|
||||
qint32 active3DSceneId() const;
|
||||
|
||||
void startDrag(QMimeData *mimeData, const QPixmap &icon);
|
||||
void endDrag();
|
||||
|
||||
|
@@ -373,8 +373,6 @@ void AbstractView::modelNodePreviewPixmapChanged(const ModelNode &/*node*/, cons
|
||||
|
||||
void AbstractView::view3DAction(View3DActionType, const QVariant &) {}
|
||||
|
||||
void AbstractView::active3DSceneChanged(qint32 /*sceneId*/) {}
|
||||
|
||||
void AbstractView::dragStarted(QMimeData * /*mimeData*/) {}
|
||||
void AbstractView::dragEnded() {}
|
||||
|
||||
@@ -837,19 +835,6 @@ bool AbstractView::isPartOfMaterialLibrary(const ModelNode &node)
|
||||
|| (node.hasParentProperty() && node.parentProperty().parentModelNode() == matLib));
|
||||
}
|
||||
|
||||
ModelNode AbstractView::active3DSceneNode()
|
||||
{
|
||||
auto activeSceneAux = rootModelNode().auxiliaryData(active3dSceneProperty);
|
||||
if (activeSceneAux) {
|
||||
int activeScene = activeSceneAux->toInt();
|
||||
|
||||
if (hasModelNodeForInternalId(activeScene))
|
||||
return modelNodeForInternalId(activeScene);
|
||||
}
|
||||
|
||||
return {};
|
||||
}
|
||||
|
||||
ModelNode AbstractView::getTextureDefaultInstance(const QString &source)
|
||||
{
|
||||
ModelNode matLib = materialLibraryNode();
|
||||
|
@@ -733,11 +733,6 @@ void ModelPrivate::notifyView3DAction(View3DActionType type, const QVariant &val
|
||||
notifyNormalViewsLast([&](AbstractView *view) { view->view3DAction(type, value); });
|
||||
}
|
||||
|
||||
void ModelPrivate::notifyActive3DSceneIdChanged(qint32 sceneId)
|
||||
{
|
||||
notifyInstanceChanges([&](AbstractView *view) { view->active3DSceneChanged(sceneId); });
|
||||
}
|
||||
|
||||
void ModelPrivate::notifyDragStarted(QMimeData *mimeData)
|
||||
{
|
||||
notifyInstanceChanges([&](AbstractView *view) { view->dragStarted(mimeData); });
|
||||
@@ -1903,24 +1898,6 @@ QString Model::generateIdFromName(const QString &name, const QString &fallbackId
|
||||
return newId;
|
||||
}
|
||||
|
||||
void Model::setActive3DSceneId(qint32 sceneId)
|
||||
{
|
||||
auto activeSceneAux = d->rootNode()->auxiliaryData(active3dSceneProperty);
|
||||
if (activeSceneAux && activeSceneAux->toInt() == sceneId)
|
||||
return;
|
||||
|
||||
d->rootNode()->setAuxiliaryData(active3dSceneProperty, sceneId);
|
||||
d->notifyActive3DSceneIdChanged(sceneId);
|
||||
}
|
||||
|
||||
qint32 Model::active3DSceneId() const
|
||||
{
|
||||
auto sceneId = d->rootNode()->auxiliaryData(active3dSceneProperty);
|
||||
if (sceneId)
|
||||
return sceneId->toInt();
|
||||
return -1;
|
||||
}
|
||||
|
||||
void Model::startDrag(QMimeData *mimeData, const QPixmap &icon)
|
||||
{
|
||||
d->notifyDragStarted(mimeData);
|
||||
|
Reference in New Issue
Block a user