diff options
author | Mike Krus <mike.krus@kdab.com> | 2016-02-23 14:26:40 +0000 |
---|---|---|
committer | Mike Krus <mike.krus@kdab.com> | 2016-03-03 09:52:34 +0000 |
commit | feac4677c669737ce947b01b8313623d25d54d45 (patch) | |
tree | d31cadd69fe3a5bf86d8cefcc7879e7441e3017c /src | |
parent | 7f334c8dee3e40ee22e6a3b0be921921487145ab (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.cpp | 12 | ||||
-rw-r--r-- | src/render/jobs/pickboundingvolumejob.cpp | 2 |
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); } |