summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorMike Krus <mike.krus@kdab.com>2016-02-23 14:26:40 +0000
committerMike Krus <mike.krus@kdab.com>2016-03-03 09:52:34 +0000
commitfeac4677c669737ce947b01b8313623d25d54d45 (patch)
treed31cadd69fe3a5bf86d8cefcc7879e7441e3017c /src
parent7f334c8dee3e40ee22e6a3b0be921921487145ab (diff)
Restore picking, and clear current picker on release
Picking was disabled in previous change (0935bc1c), intended? Also clearing the current picker on release otherwise you also get release events Change-Id: Ie242f3734d6d9683a1af2e3c0518a16663ca4153 Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
Diffstat (limited to 'src')
-rw-r--r--src/render/frontend/qrenderaspect.cpp12
-rw-r--r--src/render/jobs/pickboundingvolumejob.cpp2
2 files changed, 8 insertions, 6 deletions
diff --git a/src/render/frontend/qrenderaspect.cpp b/src/render/frontend/qrenderaspect.cpp
index 2a72cb485..edf829fb6 100644
--- a/src/render/frontend/qrenderaspect.cpp
+++ b/src/render/frontend/qrenderaspect.cpp
@@ -341,7 +341,7 @@ QVector<Qt3DCore::QAspectJobPtr> QRenderAspect::jobsToExecute(qint64 time)
}
Render::NodeManagers *manager = d->m_renderer->nodeManagers();
- //QAspectJobPtr pickBoundingVolumeJob = d->m_renderer->pickBoundingVolumeJob();
+ QAspectJobPtr pickBoundingVolumeJob = d->m_renderer->pickBoundingVolumeJob();
// Create the jobs to build the frame
d->m_framePreparationJob->setRoot(d->m_renderer->sceneRoot());
@@ -377,16 +377,16 @@ QVector<Qt3DCore::QAspectJobPtr> QRenderAspect::jobsToExecute(qint64 time)
jobs.append(geometryJobs);
// Only add dependency if not already present
-// const QVector<QWeakPointer<QAspectJob> > dependencies = pickBoundingVolumeJob->dependencies();
-// if (std::find(dependencies.begin(), dependencies.end(), d->m_framePreparationJob) == dependencies.end())
-// pickBoundingVolumeJob->addDependency(d->m_framePreparationJob);
+ const QVector<QWeakPointer<QAspectJob> > dependencies = pickBoundingVolumeJob->dependencies();
+ if (std::find(dependencies.begin(), dependencies.end(), d->m_framePreparationJob) == dependencies.end())
+ pickBoundingVolumeJob->addDependency(d->m_framePreparationJob);
// Add all jobs to queue
jobs.append(d->m_calculateBoundingVolumeJob);
jobs.append(d->m_worldTransformJob);
- //jobs.append(d->m_updateBoundingVolumeJob);
+ jobs.append(d->m_updateBoundingVolumeJob);
jobs.append(d->m_framePreparationJob);
- //jobs.append(pickBoundingVolumeJob);
+ jobs.append(pickBoundingVolumeJob);
// Clear any old dependencies from previous frames
d->m_cleanupJob->removeDependency(QWeakPointer<QAspectJob>());
diff --git a/src/render/jobs/pickboundingvolumejob.cpp b/src/render/jobs/pickboundingvolumejob.cpp
index 1154d46ec..3fa84fa09 100644
--- a/src/render/jobs/pickboundingvolumejob.cpp
+++ b/src/render/jobs/pickboundingvolumejob.cpp
@@ -374,6 +374,7 @@ void PickBoundingVolumeJob::run()
case QEvent::MouseButtonRelease: {
// Send release event to m_currentPicker
if (lastCurrentPicker != Q_NULLPTR) {
+ m_currentPicker = HObjectPicker();
lastCurrentPicker->onClicked(pickEvent);
lastCurrentPicker->onReleased(pickEvent);
}
@@ -420,6 +421,7 @@ void PickBoundingVolumeJob::run()
case QEvent::MouseButtonRelease: {
// Send release event to m_currentPicker
if (lastCurrentPicker != Q_NULLPTR) {
+ m_currentPicker = HObjectPicker();
QPickEventPtr pickEvent(new QPickEvent);
lastCurrentPicker->onReleased(pickEvent);
}