Skip to content

Commit 4b89f5e

Browse files
committed
Respect events which has been set to ignore in QgsLayoutViewTools
If ignored, default handling occurs
1 parent dc0425a commit 4b89f5e

File tree

4 files changed

+39
-8
lines changed

4 files changed

+39
-8
lines changed

src/gui/layout/qgslayoutview.cpp

+22-7
Original file line numberDiff line numberDiff line change
@@ -80,8 +80,10 @@ void QgsLayoutView::mousePressEvent( QMouseEvent *event )
8080
{
8181
std::unique_ptr<QgsLayoutViewMouseEvent> me( new QgsLayoutViewMouseEvent( this, event ) );
8282
mTool->layoutPressEvent( me.get() );
83+
event->setAccepted( me->isAccepted() );
8384
}
84-
else
85+
86+
if ( !mTool || !event->isAccepted() )
8587
QGraphicsView::mousePressEvent( event );
8688
}
8789

@@ -91,8 +93,10 @@ void QgsLayoutView::mouseReleaseEvent( QMouseEvent *event )
9193
{
9294
std::unique_ptr<QgsLayoutViewMouseEvent> me( new QgsLayoutViewMouseEvent( this, event ) );
9395
mTool->layoutReleaseEvent( me.get() );
96+
event->setAccepted( me->isAccepted() );
9497
}
95-
else
98+
99+
if ( !mTool || !event->isAccepted() )
96100
QGraphicsView::mouseReleaseEvent( event );
97101
}
98102

@@ -102,8 +106,10 @@ void QgsLayoutView::mouseMoveEvent( QMouseEvent *event )
102106
{
103107
std::unique_ptr<QgsLayoutViewMouseEvent> me( new QgsLayoutViewMouseEvent( this, event ) );
104108
mTool->layoutMoveEvent( me.get() );
109+
event->setAccepted( me->isAccepted() );
105110
}
106-
else
111+
112+
if ( !mTool || !event->isAccepted() )
107113
QGraphicsView::mouseMoveEvent( event );
108114
}
109115

@@ -113,8 +119,10 @@ void QgsLayoutView::mouseDoubleClickEvent( QMouseEvent *event )
113119
{
114120
std::unique_ptr<QgsLayoutViewMouseEvent> me( new QgsLayoutViewMouseEvent( this, event ) );
115121
mTool->layoutDoubleClickEvent( me.get() );
122+
event->setAccepted( me->isAccepted() );
116123
}
117-
else
124+
125+
if ( !mTool || !event->isAccepted() )
118126
QGraphicsView::mouseDoubleClickEvent( event );
119127
}
120128

@@ -124,22 +132,29 @@ void QgsLayoutView::wheelEvent( QWheelEvent *event )
124132
{
125133
mTool->wheelEvent( event );
126134
}
127-
else
135+
136+
if ( !mTool || !event->isAccepted() )
128137
QGraphicsView::wheelEvent( event );
129138
}
130139

131140
void QgsLayoutView::keyPressEvent( QKeyEvent *event )
132141
{
133142
if ( mTool )
143+
{
134144
mTool->keyPressEvent( event );
135-
else
145+
}
146+
147+
if ( !mTool || !event->isAccepted() )
136148
QGraphicsView::keyPressEvent( event );
137149
}
138150

139151
void QgsLayoutView::keyReleaseEvent( QKeyEvent *event )
140152
{
141153
if ( mTool )
154+
{
142155
mTool->keyReleaseEvent( event );
143-
else
156+
}
157+
158+
if ( !mTool || !event->isAccepted() )
144159
QGraphicsView::keyReleaseEvent( event );
145160
}

src/gui/layout/qgslayoutviewtooladditem.cpp

+6
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,7 @@ void QgsLayoutViewToolAddItem::layoutPressEvent( QgsLayoutViewMouseEvent *event
4343
{
4444
if ( event->button() != Qt::LeftButton )
4545
{
46+
event->ignore();
4647
return;
4748
}
4849

@@ -61,12 +62,17 @@ void QgsLayoutViewToolAddItem::layoutMoveEvent( QgsLayoutViewMouseEvent *event )
6162
{
6263
mRubberBand->update( event->layoutPoint(), event->modifiers() );
6364
}
65+
else
66+
{
67+
event->ignore();
68+
}
6469
}
6570

6671
void QgsLayoutViewToolAddItem::layoutReleaseEvent( QgsLayoutViewMouseEvent *event )
6772
{
6873
if ( event->button() != Qt::LeftButton || !mDrawing )
6974
{
75+
event->ignore();
7076
return;
7177
}
7278
mDrawing = false;

src/gui/layout/qgslayoutviewtoolpan.cpp

+5
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@ void QgsLayoutViewToolPan::layoutPressEvent( QgsLayoutViewMouseEvent *event )
2828
{
2929
if ( event->button() != Qt::LeftButton )
3030
{
31+
event->ignore();
3132
return;
3233
}
3334

@@ -39,7 +40,10 @@ void QgsLayoutViewToolPan::layoutPressEvent( QgsLayoutViewMouseEvent *event )
3940
void QgsLayoutViewToolPan::layoutMoveEvent( QgsLayoutViewMouseEvent *event )
4041
{
4142
if ( !mIsPanning )
43+
{
44+
event->ignore();
4245
return;
46+
}
4347

4448
view()->horizontalScrollBar()->setValue( view()->horizontalScrollBar()->value() - ( event->x() - mLastMousePos.x() ) );
4549
view()->verticalScrollBar()->setValue( view()->verticalScrollBar()->value() - ( event->y() - mLastMousePos.y() ) );
@@ -50,6 +54,7 @@ void QgsLayoutViewToolPan::layoutReleaseEvent( QgsLayoutViewMouseEvent *event )
5054
{
5155
if ( !mIsPanning || event->button() != Qt::LeftButton )
5256
{
57+
event->ignore();
5358
return;
5459
}
5560

src/gui/layout/qgslayoutviewtoolzoom.cpp

+6-1
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@ void QgsLayoutViewToolZoom::layoutPressEvent( QgsLayoutViewMouseEvent *event )
3636
{
3737
if ( event->button() != Qt::LeftButton )
3838
{
39+
event->ignore();
3940
return;
4041
}
4142

@@ -64,7 +65,10 @@ void QgsLayoutViewToolZoom::layoutPressEvent( QgsLayoutViewMouseEvent *event )
6465
void QgsLayoutViewToolZoom::layoutMoveEvent( QgsLayoutViewMouseEvent *event )
6566
{
6667
if ( !mMarqueeZoom )
68+
{
69+
event->ignore();
6770
return;
71+
}
6872

6973
mRubberBand->update( event->layoutPoint(), 0 );
7074
}
@@ -73,6 +77,7 @@ void QgsLayoutViewToolZoom::layoutReleaseEvent( QgsLayoutViewMouseEvent *event )
7377
{
7478
if ( !mMarqueeZoom || event->button() != Qt::LeftButton )
7579
{
80+
event->ignore();
7681
return;
7782
}
7883

@@ -99,7 +104,7 @@ void QgsLayoutViewToolZoom::layoutReleaseEvent( QgsLayoutViewMouseEvent *event )
99104
void QgsLayoutViewToolZoom::keyPressEvent( QKeyEvent *event )
100105
{
101106
//respond to changes in the alt key status and update cursor accordingly
102-
if ( ! event->isAutoRepeat() )
107+
if ( !event->isAutoRepeat() )
103108
{
104109
QPixmap zoomQPixmap = QPixmap( ( const char ** )( ( event->modifiers() & Qt::AltModifier ) ? zoom_out : zoom_in ) );
105110
QCursor zoomCursor = QCursor( zoomQPixmap, 7, 7 );

0 commit comments

Comments
 (0)