@@ -37,6 +37,8 @@ QgsCameraController::QgsCameraController( Qt3DCore::QNode *parent )
37
37
, mRightMouseButtonInput( new Qt3DInput::QActionInput() )
38
38
, mShiftAction( new Qt3DInput::QAction() )
39
39
, mShiftInput( new Qt3DInput::QActionInput() )
40
+ , mCtrlAction( new Qt3DInput::QAction() )
41
+ , mCtrlInput( new Qt3DInput::QActionInput() )
40
42
, mWheelAxis( new Qt3DInput::QAxis() )
41
43
, mMouseWheelInput( new Qt3DInput::QAnalogAxisInput() )
42
44
, mTxAxis( new Qt3DInput::QAxis() )
@@ -82,6 +84,11 @@ QgsCameraController::QgsCameraController( Qt3DCore::QNode *parent )
82
84
mShiftInput ->setSourceDevice ( mKeyboardDevice );
83
85
mShiftAction ->addInput ( mShiftInput );
84
86
87
+ // Keyboard ctrl
88
+ mCtrlInput ->setButtons ( QVector<int >() << Qt::Key_Control );
89
+ mCtrlInput ->setSourceDevice ( mKeyboardDevice );
90
+ mCtrlAction ->addInput ( mCtrlInput );
91
+
85
92
// Keyboard Pos Tx
86
93
mKeyboardTxPosInput ->setButtons ( QVector<int >() << Qt::Key_Right );
87
94
mKeyboardTxPosInput ->setScale ( 1 .0f );
@@ -110,6 +117,7 @@ QgsCameraController::QgsCameraController( Qt3DCore::QNode *parent )
110
117
mLogicalDevice ->addAction ( mMiddleMouseButtonAction );
111
118
mLogicalDevice ->addAction ( mRightMouseButtonAction );
112
119
mLogicalDevice ->addAction ( mShiftAction );
120
+ mLogicalDevice ->addAction ( mCtrlAction );
113
121
mLogicalDevice ->addAxis ( mWheelAxis );
114
122
mLogicalDevice ->addAxis ( mTxAxis );
115
123
mLogicalDevice ->addAxis ( mTyAxis );
@@ -221,7 +229,8 @@ void QgsCameraController::frameTriggered( float dt )
221
229
int dy = mMousePos .y () - mLastMousePos .y ();
222
230
mLastMousePos = mMousePos ;
223
231
224
- mCameraData .dist -= mCameraData .dist * mWheelAxis ->value () * 10 * dt;
232
+ double scaling = ( mCtrlAction ->isActive () ? 0.1 : 1.0 );
233
+ mCameraData .dist -= scaling * mCameraData .dist * mWheelAxis ->value () * 10 * dt;
225
234
226
235
if ( mRightMouseButtonAction ->isActive () )
227
236
{
0 commit comments