549 |
549 |
}
|
550 |
550 |
else if ( li->type() == QgsLegendItem::LEGEND_GROUP )
|
551 |
551 |
{
|
|
552 |
theMenu.addAction( QgisApp::getThemeIcon( "/mActionZoomToLayer.png" ),
|
|
553 |
tr( "Zoom to group" ), this, SLOT( legendLayerZoom() ) );
|
|
554 |
|
552 |
555 |
theMenu.addAction( QgisApp::getThemeIcon( "/mActionRemoveLayer.png" ),
|
553 |
556 |
tr( "&Remove" ), this, SLOT( legendGroupRemove() ) );
|
554 |
557 |
}
|
... | ... | |
1656 |
1659 |
return;
|
1657 |
1660 |
}
|
1658 |
1661 |
|
1659 |
|
//find current Layer
|
1660 |
|
QgsLegendLayer* currentLayer = dynamic_cast<QgsLegendLayer *>( currentItem() );
|
1661 |
|
if ( !currentLayer )
|
1662 |
|
return;
|
|
1662 |
QgsRectangle extent;
|
1663 |
1663 |
|
1664 |
|
QgsMapLayer* theLayer = currentLayer->layer();
|
1665 |
|
QgsRectangle extent = theLayer->extent();
|
|
1664 |
QgsLegendItem* li = dynamic_cast<QgsLegendItem *>( currentItem() );
|
1666 |
1665 |
|
1667 |
|
//transform extent if otf-projection is on
|
1668 |
|
if ( mMapCanvas->hasCrsTransformEnabled() )
|
|
1666 |
if ( li->type() == QgsLegendItem::LEGEND_LAYER )
|
1669 |
1667 |
{
|
1670 |
|
QgsMapRenderer* renderer = mMapCanvas->mapRenderer();
|
1671 |
|
if ( renderer )
|
|
1668 |
QgsLegendLayer* currentLayer = dynamic_cast<QgsLegendLayer *>( currentItem() );
|
|
1669 |
if ( !currentLayer )
|
|
1670 |
return;
|
|
1671 |
|
|
1672 |
QgsMapLayer* theLayer = currentLayer->layer();
|
|
1673 |
extent = theLayer->extent();
|
|
1674 |
|
|
1675 |
//transform extent if otf-projection is on
|
|
1676 |
if ( mMapCanvas->hasCrsTransformEnabled() )
|
1672 |
1677 |
{
|
1673 |
|
extent = renderer->layerExtentToOutputExtent( theLayer, extent );
|
|
1678 |
QgsMapRenderer* renderer = mMapCanvas->mapRenderer();
|
|
1679 |
if ( renderer )
|
|
1680 |
{
|
|
1681 |
extent = renderer->layerExtentToOutputExtent( theLayer, extent );
|
|
1682 |
}
|
1674 |
1683 |
}
|
1675 |
1684 |
}
|
|
1685 |
else if ( li->type() == QgsLegendItem::LEGEND_GROUP )
|
|
1686 |
{
|
|
1687 |
QgsLegendGroup* currentGroup = dynamic_cast<QgsLegendGroup *>( currentItem() );
|
1676 |
1688 |
|
|
1689 |
QgsRectangle layerExtent;
|
|
1690 |
|
|
1691 |
QList<QgsLegendLayer*> layers = currentGroup->legendLayers();
|
|
1692 |
for (int i = 0; i < layers.size(); ++i )
|
|
1693 |
{
|
|
1694 |
QgsMapLayer* theLayer = layers.at( i )->layer();
|
|
1695 |
layerExtent = theLayer->extent();
|
|
1696 |
|
|
1697 |
//transform extent if otf-projection is on
|
|
1698 |
if ( mMapCanvas->hasCrsTransformEnabled() )
|
|
1699 |
{
|
|
1700 |
QgsMapRenderer* renderer = mMapCanvas->mapRenderer();
|
|
1701 |
if ( renderer )
|
|
1702 |
{
|
|
1703 |
layerExtent = renderer->layerExtentToOutputExtent( theLayer, layerExtent );
|
|
1704 |
}
|
|
1705 |
}
|
|
1706 |
|
|
1707 |
if ( i == 0 )
|
|
1708 |
{
|
|
1709 |
extent = layerExtent;
|
|
1710 |
}
|
|
1711 |
else
|
|
1712 |
{
|
|
1713 |
extent.combineExtentWith( &layerExtent );
|
|
1714 |
}
|
|
1715 |
}
|
|
1716 |
}
|
|
1717 |
|
1677 |
1718 |
// Increase bounding box with 5%, so that layer is a bit inside the borders
|
1678 |
1719 |
extent.scale( 1.05 );
|
1679 |
1720 |
|