From 0874c57779f38419a6a8c292d6bb1a59d1a3399c Mon Sep 17 00:00:00 2001 From: TurboGraphxBeige Date: Thu, 3 Dec 2020 18:46:04 -0500 Subject: [PATCH] Zoom to multiple selected layer(s) in layer tree --- src/app/qgsapplayertreeviewmenuprovider.cpp | 1 + src/gui/layertree/qgslayertreeviewdefaultactions.cpp | 8 +++----- src/ui/qgisapp.ui | 2 +- 3 files changed, 5 insertions(+), 6 deletions(-) diff --git a/src/app/qgsapplayertreeviewmenuprovider.cpp b/src/app/qgsapplayertreeviewmenuprovider.cpp index c170bd582365..2509b1c83979 100644 --- a/src/app/qgsapplayertreeviewmenuprovider.cpp +++ b/src/app/qgsapplayertreeviewmenuprovider.cpp @@ -150,6 +150,7 @@ QMenu *QgsAppLayerTreeViewMenuProvider::createContextMenu() if ( layer && layer->isSpatial() ) { + QAction *zoomToLayer = actions->actionZoomToLayer( mCanvas, menu ); zoomToLayer->setEnabled( layer->isValid() ); menu->addAction( zoomToLayer ); diff --git a/src/gui/layertree/qgslayertreeviewdefaultactions.cpp b/src/gui/layertree/qgslayertreeviewdefaultactions.cpp index 90a9efdf668a..7d0f5157c820 100644 --- a/src/gui/layertree/qgslayertreeviewdefaultactions.cpp +++ b/src/gui/layertree/qgslayertreeviewdefaultactions.cpp @@ -91,7 +91,7 @@ QAction *QgsLayerTreeViewDefaultActions::actionShowFeatureCount( QObject *parent QAction *QgsLayerTreeViewDefaultActions::actionZoomToLayer( QgsMapCanvas *canvas, QObject *parent ) { QAction *a = new QAction( QgsApplication::getThemeIcon( QStringLiteral( "/mActionZoomToLayer.svg" ) ), - tr( "&Zoom to Layer" ), parent ); + tr( "&Zoom to Layer(s)" ), parent ); a->setData( QVariant::fromValue( reinterpret_cast( canvas ) ) ); connect( a, &QAction::triggered, this, static_cast( &QgsLayerTreeViewDefaultActions::zoomToLayer ) ); return a; @@ -283,12 +283,10 @@ void QgsLayerTreeViewDefaultActions::showFeatureCount() void QgsLayerTreeViewDefaultActions::zoomToLayer( QgsMapCanvas *canvas ) { - QgsMapLayer *layer = mView->currentLayer(); - if ( !layer ) + QList layers = mView->selectedLayers(); + if ( layers.isEmpty() ) return; - QList layers; - layers << layer; zoomToLayers( canvas, layers ); } diff --git a/src/ui/qgisapp.ui b/src/ui/qgisapp.ui index 276a15e6c452..fff86ccc0994 100644 --- a/src/ui/qgisapp.ui +++ b/src/ui/qgisapp.ui @@ -1351,7 +1351,7 @@ :/images/themes/default/mActionZoomToLayer.svg:/images/themes/default/mActionZoomToLayer.svg - Zoom to &Layer + Zoom to &Layer(s)