diff options
Diffstat (limited to 'src/datavisualizationqml2/abstractdeclarative.cpp')
-rw-r--r-- | src/datavisualizationqml2/abstractdeclarative.cpp | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/src/datavisualizationqml2/abstractdeclarative.cpp b/src/datavisualizationqml2/abstractdeclarative.cpp index 175215d8..59511163 100644 --- a/src/datavisualizationqml2/abstractdeclarative.cpp +++ b/src/datavisualizationqml2/abstractdeclarative.cpp @@ -53,6 +53,8 @@ AbstractDeclarative::AbstractDeclarative(QQuickItem *parent) : m_mainThread(QThread::currentThread()), m_contextThread(0) { + m_nodeMutex = QSharedPointer<QMutex>(new QMutex); + connect(this, &QQuickItem::windowChanged, this, &AbstractDeclarative::handleWindowChanged); // Set contents to false in case we are in qml designer to make component look nice @@ -66,6 +68,8 @@ AbstractDeclarative::~AbstractDeclarative() disconnect(this, 0, this, 0); checkWindowList(0); + + m_nodeMutex.clear(); } void AbstractDeclarative::setRenderingMode(AbstractDeclarative::RenderingMode mode) @@ -133,7 +137,7 @@ QSGNode *AbstractDeclarative::updatePaintNode(QSGNode *oldNode, UpdatePaintNodeD DeclarativeRenderNode *node = static_cast<DeclarativeRenderNode *>(oldNode); if (!node) { - node = new DeclarativeRenderNode(this); + node = new DeclarativeRenderNode(this, m_nodeMutex); node->setController(m_controller.data()); node->setQuickWindow(window()); } @@ -215,7 +219,7 @@ void AbstractDeclarative::removeCustomItemAt(const QVector3D &position) void AbstractDeclarative::releaseCustomItem(QCustom3DItem *item) { - return m_controller->releaseCustomItem(item); + m_controller->releaseCustomItem(item); } int AbstractDeclarative::selectedLabelIndex() const |