Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
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
  • Loading branch information
nyalldawson committed Nov 6, 2018
1 parent 0ea86bf commit c54c559
Show file tree
Hide file tree
Showing 2 changed files with 10 additions and 1 deletion.
10 changes: 9 additions & 1 deletion src/app/qgisapp.cpp
Expand Up @@ -8203,7 +8203,15 @@ QList<QgsMapCanvasAnnotationItem *> QgisApp::annotationItems()

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

void QgisApp::removeAnnotationItems()
Expand Down
1 change: 1 addition & 0 deletions src/gui/qgsbrowserdockwidget_p.cpp
Expand Up @@ -121,6 +121,7 @@ QgsBrowserLayerProperties::QgsBrowserLayerProperties( QWidget *parent )
mMetadataTextBrowser->setOpenLinks( false );
connect( mMetadataTextBrowser, &QTextBrowser::anchorClicked, this, &QgsBrowserLayerProperties::urlClicked );

mMapCanvas->setProperty( "browser_canvas", true );
mMapCanvas->setLayers( QList< QgsMapLayer * >() );
mMapCanvas->setMapTool( new QgsMapToolPan( mMapCanvas ) );
mMapCanvas->freeze( true );
Expand Down

0 comments on commit c54c559

Please sign in to comment.