Skip to content

Commit

Permalink
Add signals to atlas generation
Browse files Browse the repository at this point in the history
  • Loading branch information
Hugo Mercier committed Mar 18, 2014
1 parent 0a78102 commit 9eb8ef4
Show file tree
Hide file tree
Showing 7 changed files with 23 additions and 0 deletions.
5 changes: 5 additions & 0 deletions python/core/composer/qgsatlascomposition.sip
Original file line number Diff line number Diff line change
Expand Up @@ -122,4 +122,9 @@ public:
/**Is emitted when the coverage layer for an atlas changes*/
void coverageLayerChanged( QgsVectorLayer* layer );

/**Is emitted when atlas rendering has begun*/
void renderBegun();

/**Is emitted when atlas rendering has ended*/
void renderEnded();
};
3 changes: 3 additions & 0 deletions python/core/composer/qgscomposermap.sip
Original file line number Diff line number Diff line change
Expand Up @@ -407,6 +407,9 @@ class QgsComposerMap : QgsComposerItem
/**Is emitted on rotation change to notify north arrow pictures*/
void mapRotationChanged( double newRotation );

/**Is emitted when the map has been prepared for atlas rendering, just before actual rendering*/
void preparedForAtlas();

public slots:

/**Called if map canvas has changed*/
Expand Down
4 changes: 4 additions & 0 deletions src/core/composer/qgsatlascomposition.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -266,6 +266,8 @@ bool QgsAtlasComposition::beginRender()
return false;
}

emit renderBegun();

bool featuresUpdated = updateFeatures();
if ( !featuresUpdated )
{
Expand Down Expand Up @@ -296,6 +298,8 @@ void QgsAtlasComposition::endRender()
}

updateAtlasMaps();

emit renderEnded();
}

void QgsAtlasComposition::updateAtlasMaps()
Expand Down
6 changes: 6 additions & 0 deletions src/core/composer/qgsatlascomposition.h
Original file line number Diff line number Diff line change
Expand Up @@ -150,6 +150,12 @@ class CORE_EXPORT QgsAtlasComposition : public QObject
/**Is emitted when the coverage layer for an atlas changes*/
void coverageLayerChanged( QgsVectorLayer* layer );

/**Is emitted when atlas rendering has begun*/
void renderBegun();

/**Is emitted when atlas rendering has ended*/
void renderEnded();

private:
/**Updates the filename expression*/
void updateFilenameExpression();
Expand Down
1 change: 1 addition & 0 deletions src/core/composer/qgscomposermap.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -641,6 +641,7 @@ void QgsComposerMap::setNewAtlasFeatureExtent( const QgsRectangle& extent )

mAtlasFeatureExtent = newExtent;
mCacheUpdated = false;
emit preparedForAtlas();
updateItem();
emit itemChanged();
emit extentChanged();
Expand Down
3 changes: 3 additions & 0 deletions src/core/composer/qgscomposermap.h
Original file line number Diff line number Diff line change
Expand Up @@ -445,6 +445,9 @@ class CORE_EXPORT QgsComposerMap : public QgsComposerItem
/**Is emitted on rotation change to notify north arrow pictures*/
void mapRotationChanged( double newRotation );

/**Is emitted when the map has been prepared for atlas rendering, just before actual rendering*/
void preparedForAtlas();

public slots:

/**Called if map canvas has changed*/
Expand Down
1 change: 1 addition & 0 deletions src/core/composer/qgscomposition.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -2537,6 +2537,7 @@ bool QgsComposition::setAtlasMode( QgsComposition::AtlasMode mode )
if ( ! atlasHasFeatures )
{
mAtlasMode = QgsComposition::AtlasOff;
mAtlasComposition.endRender();
return false;
}
}
Expand Down

0 comments on commit 9eb8ef4

Please sign in to comment.