Skip to content

Commit

Permalink
Add mapRefreshCanceled() signal to QgsMapCanvas
Browse files Browse the repository at this point in the history
This is useful when one wants to follow what exactly is happening
with map canvas rendering. We already have renderStarting() signal
when a job is started and mapCanvasRefreshed() signal when a job
has finished, but there was no notification if the pending job
got cancelled (for example because used moved/zoomed the map).
  • Loading branch information
wonder-sk authored and nyalldawson committed Jan 13, 2021
1 parent 23b50ab commit 1ed818e
Show file tree
Hide file tree
Showing 3 changed files with 14 additions and 0 deletions.
7 changes: 7 additions & 0 deletions python/gui/auto_generated/qgsmapcanvas.sip.in
Expand Up @@ -1087,6 +1087,13 @@ Emitted when canvas finished a refresh request.
void renderStarting();
%Docstring
Emitted when the canvas is about to be rendered.
%End

void mapRefreshCanceled();
%Docstring
Emitted when the pending map refresh has been canceled

.. versionadded:: 3.18
%End

void layersChanged();
Expand Down
1 change: 1 addition & 0 deletions src/gui/qgsmapcanvas.cpp
Expand Up @@ -1000,6 +1000,7 @@ void QgsMapCanvas::stopRendering()
connect( mJob, &QgsMapRendererQImageJob::finished, mJob, &QgsMapRendererQImageJob::deleteLater );
mJob->cancelWithoutBlocking();
mJob = nullptr;
emit mapRefreshCanceled();
}
stopPreviewJobs();
}
Expand Down
6 changes: 6 additions & 0 deletions src/gui/qgsmapcanvas.h
Expand Up @@ -996,6 +996,12 @@ class GUI_EXPORT QgsMapCanvas : public QGraphicsView
//! Emitted when the canvas is about to be rendered.
void renderStarting();

/**
* Emitted when the pending map refresh has been canceled
* \since QGIS 3.18
*/
void mapRefreshCanceled();

//! Emitted when a new set of layers has been received
void layersChanged();

Expand Down

0 comments on commit 1ed818e

Please sign in to comment.