Skip to content

Commit 3730579

Browse files
committedNov 10, 2018
Ensure browser preview canvases don't get treated like map canvas
docks They have their own special logic, and shouldn't respond to any project based settings or triggers Fixes #20362 (cherry picked from commit c54c559)
1 parent d43d28b commit 3730579

File tree

2 files changed

+10
-1
lines changed

2 files changed

+10
-1
lines changed
 

‎src/app/qgisapp.cpp

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8181,7 +8181,15 @@ QList<QgsMapCanvasAnnotationItem *> QgisApp::annotationItems()
81818181

81828182
QList<QgsMapCanvas *> QgisApp::mapCanvases()
81838183
{
8184-
return findChildren< QgsMapCanvas * >();
8184+
// filter out browser canvases -- they are children of app, but a different
8185+
// kind of beast, and here we only want the main canvas or dock canvases
8186+
auto canvases = findChildren< QgsMapCanvas * >();
8187+
canvases.erase( std::remove_if( canvases.begin(), canvases.end(),
8188+
[]( QgsMapCanvas * canvas )
8189+
{
8190+
return !canvas || canvas->property( "browser_canvas" ).toBool();
8191+
} ), canvases.end() );
8192+
return canvases;
81858193
}
81868194

81878195
void QgisApp::removeAnnotationItems()

‎src/gui/qgsbrowserdockwidget_p.cpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -121,6 +121,7 @@ QgsBrowserLayerProperties::QgsBrowserLayerProperties( QWidget *parent )
121121
mMetadataTextBrowser->setOpenLinks( false );
122122
connect( mMetadataTextBrowser, &QTextBrowser::anchorClicked, this, &QgsBrowserLayerProperties::urlClicked );
123123

124+
mMapCanvas->setProperty( "browser_canvas", true );
124125
mMapCanvas->setLayers( QList< QgsMapLayer * >() );
125126
mMapCanvas->setMapTool( new QgsMapToolPan( mMapCanvas ) );
126127
mMapCanvas->freeze( true );

0 commit comments

Comments
 (0)
Please sign in to comment.