Skip to content

Commit b45d853

Browse files
committed
Consider multi pages in snap to grid function
1 parent 7230ec9 commit b45d853

File tree

1 file changed

+8
-3
lines changed

1 file changed

+8
-3
lines changed

src/core/composer/qgscomposition.cpp

+8-3
Original file line numberDiff line numberDiff line change
@@ -795,11 +795,16 @@ QPointF QgsComposition::snapPointToGrid( const QPointF& scenePoint ) const
795795
return scenePoint;
796796
}
797797

798-
//snap x coordinate //todo: add support for x- and y- offset
798+
//y offset to current page
799+
int pageNr = ( int )( scenePoint.y() / ( mPageHeight + mSpaceBetweenPages ) );
800+
double yOffset = pageNr * ( mPageHeight + mSpaceBetweenPages );
801+
double yPage = scenePoint.y() - yOffset; //y-coordinate relative to current page
802+
803+
//snap x coordinate
799804
int xRatio = ( int )(( scenePoint.x() - mSnapGridOffsetX ) / mSnapGridResolution + 0.5 );
800-
int yRatio = ( int )(( scenePoint.y() - mSnapGridOffsetY ) / mSnapGridResolution + 0.5 );
805+
int yRatio = ( int )(( yPage - mSnapGridOffsetY ) / mSnapGridResolution + 0.5 );
801806

802-
return QPointF( xRatio * mSnapGridResolution + mSnapGridOffsetX, yRatio * mSnapGridResolution + mSnapGridOffsetY );
807+
return QPointF( xRatio * mSnapGridResolution + mSnapGridOffsetX, yRatio * mSnapGridResolution + mSnapGridOffsetY + yOffset );
803808
}
804809

805810
int QgsComposition::boundingRectOfSelectedItems( QRectF& bRect )

0 commit comments

Comments
 (0)