Skip to content

Commit 4ec56bc

Browse files
committedMay 6, 2017
Draw cached composer map image respecting any content movement
1 parent b7ca787 commit 4ec56bc

File tree

2 files changed

+8
-1
lines changed

2 files changed

+8
-1
lines changed
 

‎src/core/composer/qgscomposermap.cpp

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -297,6 +297,8 @@ void QgsComposerMap::painterJobFinished()
297297
mPainter.reset( nullptr );
298298
mCacheUpdated = true;
299299
mCacheFinalImage = std::move( mCacheRenderingImage );
300+
mLastRenderedImageOffsetX = 0;
301+
mLastRenderedImageOffsetY = 0;
300302
updateItem();
301303
}
302304

@@ -341,7 +343,7 @@ void QgsComposerMap::paint( QPainter *painter, const QStyleOptionGraphicsItem *,
341343

342344
painter->save();
343345

344-
painter->translate( mXOffset, mYOffset );
346+
painter->translate( mLastRenderedImageOffsetX + mXOffset, mLastRenderedImageOffsetY + mYOffset );
345347
painter->scale( scale, scale );
346348
painter->drawImage( 0, 0, *mCacheFinalImage );
347349

@@ -599,6 +601,8 @@ void QgsComposerMap::resize( double dx, double dy )
599601

600602
void QgsComposerMap::moveContent( double dx, double dy )
601603
{
604+
mLastRenderedImageOffsetX -= dx;
605+
mLastRenderedImageOffsetY -= dy;
602606
if ( !mDrawing )
603607
{
604608
transformShift( dx, dy );

‎src/core/composer/qgscomposermap.h

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -543,6 +543,9 @@ class CORE_EXPORT QgsComposerMap : public QgsComposerItem
543543
//! Offset in y direction for showing map cache image
544544
double mYOffset = 0.0;
545545

546+
double mLastRenderedImageOffsetX = 0.0;
547+
double mLastRenderedImageOffsetY = 0.0;
548+
546549
//! Map rotation
547550
double mMapRotation = 0;
548551

0 commit comments

Comments
 (0)
Please sign in to comment.