Skip to content

Commit 92f0327

Browse files
committed
Correctly use QgsMapCanvas::freeze instead of setRenderFlag
1 parent 79fb8ae commit 92f0327

File tree

3 files changed

+30
-31
lines changed

3 files changed

+30
-31
lines changed

python/plugins/db_manager/db_plugins/postgis/plugins/qgis_topoview/__init__.py

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -99,8 +99,8 @@ def run(item, action, mainwindow):
9999
template_dir = os.path.join(current_path, 'templates')
100100

101101
# do not refresh the canvas until all the layers are added
102-
prevRenderFlagState = iface.mapCanvas().renderFlag()
103-
iface.mapCanvas().setRenderFlag(False)
102+
wasFrozen = iface.mapCanvas().isFrozen()
103+
iface.mapCanvas().freeze()
104104
try:
105105
provider = db.dbplugin().providerName()
106106
uri = db.uri()
@@ -264,6 +264,7 @@ def run(item, action, mainwindow):
264264
canvas.setExtent(ext)
265265

266266
# restore canvas render flag
267-
iface.mapCanvas().setRenderFlag(prevRenderFlagState)
267+
if not wasFrozen:
268+
iface.mapCanvas().freeze(False)
268269

269270
return True

python/plugins/db_manager/layer_preview.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -91,7 +91,7 @@ def _clear(self):
9191
def _loadTablePreview(self, table, limit=False):
9292
""" if has geometry column load to map canvas """
9393
QApplication.setOverrideCursor(QCursor(Qt.WaitCursor))
94-
self.setRenderFlag(False)
94+
self.freeze()
9595
vl = None
9696

9797
if table and table.geomType:
@@ -130,5 +130,5 @@ def _loadTablePreview(self, table, limit=False):
130130

131131
self.currentLayer = vl
132132

133-
self.setRenderFlag(True)
133+
self.freeze(False)
134134
QApplication.restoreOverrideCursor()

src/app/qgisapp.cpp

Lines changed: 24 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -4437,10 +4437,11 @@ void QgisApp::addAfsLayer()
44374437
connect( afss, SIGNAL( addLayer( QString, QString ) ),
44384438
this, SLOT( addAfsLayer( QString, QString ) ) );
44394439

4440-
bool bkRenderFlag = mapCanvas()->renderFlag();
4441-
mapCanvas()->setRenderFlag( false );
4440+
bool wasFrozen = mapCanvas()->isFrozen();
4441+
mapCanvas()->freeze( true );
44424442
afss->exec();
4443-
mapCanvas()->setRenderFlag( bkRenderFlag );
4443+
if ( !wasFrozen )
4444+
mapCanvas()->freeze( false );
44444445
delete afss;
44454446
}
44464447

@@ -4470,10 +4471,11 @@ void QgisApp::addAmsLayer()
44704471
connect( amss, SIGNAL( addLayer( QString, QString ) ),
44714472
this, SLOT( addAmsLayer( QString, QString ) ) );
44724473

4473-
bool bkRenderFlag = mapCanvas()->renderFlag();
4474-
mapCanvas()->setRenderFlag( false );
4474+
bool wasFrozen = mapCanvas()->isFrozen();
4475+
mapCanvas()->freeze( true );
44754476
amss->exec();
4476-
mapCanvas()->setRenderFlag( bkRenderFlag );
4477+
if ( !wasFrozen )
4478+
mapCanvas()->freeze( false );
44774479
delete amss;
44784480
}
44794481

@@ -5627,13 +5629,12 @@ void QgisApp::toggleFullScreen()
56275629
// showMaxmized() is a work-around. Turn off rendering for this as it
56285630
// would otherwise cause two re-renders of the map, which can take a
56295631
// long time.
5630-
bool renderFlag = mapCanvas()->renderFlag();
5631-
if ( renderFlag )
5632-
mapCanvas()->setRenderFlag( false );
5632+
bool wasFrozen = mapCanvas()->isFrozen();
5633+
mapCanvas()->freeze();
56335634
showNormal();
56345635
showMaximized();
5635-
if ( renderFlag )
5636-
mapCanvas()->setRenderFlag( true );
5636+
if ( !wasFrozen )
5637+
mapCanvas()->freeze( false );
56375638
mPrevScreenModeMaximized = false;
56385639
}
56395640
else
@@ -7393,9 +7394,8 @@ void QgisApp::selectByRadius()
73937394
void QgisApp::deselectAll()
73947395
{
73957396
// Turn off rendering to improve speed.
7396-
bool renderFlagState = mMapCanvas->renderFlag();
7397-
if ( renderFlagState )
7398-
mMapCanvas->setRenderFlag( false );
7397+
bool wasFrozen = mMapCanvas->isFrozen();
7398+
mMapCanvas->freeze();
73997399

74007400
QMap<QString, QgsMapLayer*> layers = QgsProject::instance()->mapLayers();
74017401
for ( QMap<QString, QgsMapLayer*>::iterator it = layers.begin(); it != layers.end(); ++it )
@@ -7408,8 +7408,8 @@ void QgisApp::deselectAll()
74087408
}
74097409

74107410
// Turn on rendering (if it was on previously)
7411-
if ( renderFlagState )
7412-
mMapCanvas->setRenderFlag( true );
7411+
if ( !wasFrozen )
7412+
mMapCanvas->freeze( false );
74137413
}
74147414

74157415
void QgisApp::invertSelection()
@@ -7426,15 +7426,14 @@ void QgisApp::invertSelection()
74267426
}
74277427

74287428
// Turn off rendering to improve speed.
7429-
bool renderFlagState = mMapCanvas->renderFlag();
7430-
if ( renderFlagState )
7431-
mMapCanvas->setRenderFlag( false );
7429+
bool wasFrozen = mMapCanvas->isFrozen();
7430+
mMapCanvas->freeze();
74327431

74337432
vlayer->invertSelection();
74347433

74357434
// Turn on rendering (if it was on previously)
7436-
if ( renderFlagState )
7437-
mMapCanvas->setRenderFlag( true );
7435+
if ( !wasFrozen )
7436+
mMapCanvas->freeze( false );
74387437
}
74397438

74407439
void QgisApp::selectAll()
@@ -7451,15 +7450,14 @@ void QgisApp::selectAll()
74517450
}
74527451

74537452
// Turn off rendering to improve speed.
7454-
bool renderFlagState = mMapCanvas->renderFlag();
7455-
if ( renderFlagState )
7456-
mMapCanvas->setRenderFlag( false );
7453+
bool wasFrozen = mMapCanvas->isFrozen();
7454+
mMapCanvas->freeze();
74577455

74587456
vlayer->selectAll();
74597457

74607458
// Turn on rendering (if it was on previously)
7461-
if ( renderFlagState )
7462-
mMapCanvas->setRenderFlag( true );
7459+
if ( !wasFrozen )
7460+
mMapCanvas->freeze( false );
74637461
}
74647462

74657463
void QgisApp::selectByExpression()

0 commit comments

Comments
 (0)