summaryrefslogtreecommitdiffstats
path: root/src/Authoring/Studio/Render/Q3DSTranslation.h
diff options
context:
space:
mode:
authorMiikka Heikkinen <miikka.heikkinen@qt.io>2019-02-04 18:04:29 +0200
committerMiikka Heikkinen <miikka.heikkinen@qt.io>2019-02-08 08:47:52 +0000
commit7115459791965dde6e5e5085b26110e683456930 (patch)
treed1174bfa1ae872d234d86c9852c82a1b1192ef10 /src/Authoring/Studio/Render/Q3DSTranslation.h
parent4b5f7c08272a7eeb0dca411d0979a1b856b11fba (diff)
Make dragged objects follow the cursor accurately
Fixes issues when dragging objects by directly grabbing the object instead of using a widget: - Objects now accurately track the cursor - Cursor offset to object position is calculated so there is no initial jump when drag starts - Axis locked dragging (shift) is supported Task-number: QT3DS-2901 Change-Id: I5b16de517d33509b9789c0ad538d9af63dba2502 Reviewed-by: Jere Tuliniemi <jere.tuliniemi@qt.io> Reviewed-by: Antti Määttä <antti.maatta@qt.io> Reviewed-by: Mahmoud Badri <mahmoud.badri@qt.io> Reviewed-by: Miikka Heikkinen <miikka.heikkinen@qt.io>
Diffstat (limited to 'src/Authoring/Studio/Render/Q3DSTranslation.h')
-rw-r--r--src/Authoring/Studio/Render/Q3DSTranslation.h6
1 files changed, 4 insertions, 2 deletions
diff --git a/src/Authoring/Studio/Render/Q3DSTranslation.h b/src/Authoring/Studio/Render/Q3DSTranslation.h
index e682d1cb..a6ea0491 100644
--- a/src/Authoring/Studio/Render/Q3DSTranslation.h
+++ b/src/Authoring/Studio/Render/Q3DSTranslation.h
@@ -183,6 +183,8 @@ private:
bool m_editCameraEnabled = false;
Q3DSGraphObjectTranslator *m_dragTranslator = nullptr;
Q3DSCameraNode *m_dragCamera = nullptr;
+ QPoint m_dragStartMousePos;
+ QPoint m_dragPosDiff;
bool m_presentationInit = false;
Q3DSLayerNode *m_backgroundLayer = nullptr;
@@ -259,8 +261,8 @@ public:
Q3DSGraphObjectTranslator *aliasTranslator
= nullptr);
- void prepareDrag(Q3DSGraphObjectTranslator *selected = nullptr);
- void prepareWidgetDrag(Q3DSGraphObject *obj);
+ void prepareDrag(const QPoint &mousePos, Q3DSGraphObjectTranslator *selected = nullptr);
+ void prepareWidgetDrag(const QPoint &mousePos, Q3DSGraphObject *obj);
void endDrag(bool dragReset, CUpdateableDocumentEditor &inEditor);
void endPickWidget();