summaryrefslogtreecommitdiffstats
path: root/src/Authoring/Studio/Render/StudioRenderer.cpp
diff options
context:
space:
mode:
authorTomi Korpipaa <tomi.korpipaa@qt.io>2018-03-19 09:50:18 +0200
committerTomi Korpipää <tomi.korpipaa@qt.io>2018-03-19 09:16:50 +0000
commitabb2cb96584f482441a2961caeb43b1469ce0d0c (patch)
tree10cf3ca85d2d84ad6ac4d75871c72c38a08c151e /src/Authoring/Studio/Render/StudioRenderer.cpp
parent2b3819c8e3cde79f5b31b042bcd1fc69e84527a2 (diff)
Allow deselecting by clicking an empty spot in scene view
Task-number: QT3DS-374 Change-Id: I0a53bc9e774e94f46a7549d3243115d5cdadc290 Reviewed-by: Mahmoud Badri <mahmoud.badri@qt.io> Reviewed-by: Miikka Heikkinen <miikka.heikkinen@qt.io>
Diffstat (limited to 'src/Authoring/Studio/Render/StudioRenderer.cpp')
-rw-r--r--src/Authoring/Studio/Render/StudioRenderer.cpp25
1 files changed, 13 insertions, 12 deletions
diff --git a/src/Authoring/Studio/Render/StudioRenderer.cpp b/src/Authoring/Studio/Render/StudioRenderer.cpp
index 23270a13..345d0bac 100644
--- a/src/Authoring/Studio/Render/StudioRenderer.cpp
+++ b/src/Authoring/Studio/Render/StudioRenderer.cpp
@@ -574,35 +574,36 @@ struct SRendererImpl : public IStudioRenderer,
break;
}
if (inSenderType == SceneDragSenderType::SceneWindow
- && m_Translation->GetPickArea(inPoint) == PickTargetAreas::Presentation) {
+ && m_Translation->GetPickArea(inPoint) == PickTargetAreas::Presentation) {
m_RenderContext->BeginRender();
m_PickResult = m_Translation->Pick(inPoint, theSelectMode);
m_RenderContext->EndRender();
// If we definitely did not pick a widget.
if (m_PickResult.getType() == StudioPickValueTypes::Instance) {
- qt3dsdm::Qt3DSDMInstanceHandle theHandle(m_PickResult.getData<Qt3DSDMInstanceHandle>());
-
+ qt3dsdm::Qt3DSDMInstanceHandle theHandle(
+ m_PickResult.getData<Qt3DSDMInstanceHandle>());
if (theHandle != m_Doc.GetSelectedInstance())
m_Doc.SelectDataModelObject(theHandle);
- } else if (m_PickResult.getType() == StudioPickValueTypes::Guide)
+ } else if (m_PickResult.getType() == StudioPickValueTypes::Guide) {
m_Doc.NotifySelectionChanged(m_PickResult.getData<qt3dsdm::Qt3DSDMGuideHandle>());
- else if (m_PickResult.getType() == StudioPickValueTypes::Path) {
+ } else if (m_PickResult.getType() == StudioPickValueTypes::Path) {
SPathPick thePick = m_PickResult.getData<SPathPick>();
qt3dsdm::Qt3DSDMInstanceHandle theAnchorHandle =
- m_Translation->GetAnchorPoint(thePick);
- if (theAnchorHandle.Valid() && theAnchorHandle != m_Doc.GetSelectedInstance()) {
+ m_Translation->GetAnchorPoint(thePick);
+ if (theAnchorHandle.Valid() && theAnchorHandle != m_Doc.GetSelectedInstance())
m_Doc.SelectDataModelObject(theAnchorHandle);
- }
+ } else if (m_PickResult.getType() == StudioPickValueTypes::UnknownValueType) {
+ m_Doc.DeselectAllItems(true);
}
RequestRender();
} else {
qt3ds::foundation::Option<qt3dsdm::SGuideInfo> pickResult =
- m_Translation->PickRulers(inPoint);
- if (pickResult.hasValue() == false)
+ m_Translation->PickRulers(inPoint);
+ if (!pickResult.hasValue()) {
m_Translation->PrepareForDrag();
- else {
+ } else {
Q3DStudio::IDocumentEditor &docEditor(
- m_UpdatableEditor.EnsureEditor(L"Create Guide", __FILE__, __LINE__));
+ m_UpdatableEditor.EnsureEditor(L"Create Guide", __FILE__, __LINE__));
Qt3DSDMGuideHandle newGuide = docEditor.CreateGuide(*pickResult);
m_PickResult = SStudioPickValue(newGuide);
m_Doc.NotifySelectionChanged(newGuide);