fix_zoom_to_full_extent.diff

Proposed patch - Alexander Bruy, 2011-04-16 10:38 AM

Download (2.39 KB)

View differences:

src/gui/qgsmapcanvas.cpp (working copy)
232 232
  }
233 233

  
234 234
  // create layer set
235
  QStringList layerSet, layerSetOverview;
235
  QStringList layerSet, layerSetOverview, allLayerSet;
236 236

  
237 237
  int i;
238 238
  for ( i = 0; i < layers.size(); i++ )
......
243 243
      continue;
244 244
    }
245 245

  
246
    // collect all layers (both visible and not visible)
247
    allLayerSet.push_back( lyr.layer()->id() );
248
    
246 249
    if ( lyr.isVisible() )
247 250
    {
248 251
      layerSet.push_back( lyr.layer()->id() );
......
275 278
    }
276 279

  
277 280
    mMapRenderer->setLayerSet( layerSet );
281
    mMapRenderer->setAllLayerSet( allLayerSet );
278 282

  
279 283
    for ( i = 0; i < layerCount(); i++ )
280 284
    {
src/core/qgsmaprenderer.h (working copy)
207 207
    //! change current layer set
208 208
    void setLayerSet( const QStringList& layers );
209 209

  
210
    //! change current all layer set
211
    void setAllLayerSet( const QStringList& layers );
212

  
210 213
    //! updates extent of the layer set
211 214
    void updateFullExtent();
212 215

  
......
303 306
    //! stores array of layers to be rendered (identified by string)
304 307
    QStringList mLayerSet;
305 308

  
309
    //! stores array of all canvas layers (identified by string).
310
    //! Need this to calculate full extent correctly
311
    QStringList mAllLayerSet;
312

  
306 313
    //! full extent of the layer set
307 314
    QgsRectangle mFullExtent;
308 315

  
src/core/qgsmaprenderer.cpp (working copy)
840 840

  
841 841
  // iterate through the map layers and test each layers extent
842 842
  // against the current min and max values
843
  QStringList::iterator it = mLayerSet.begin();
844
  while ( it != mLayerSet.end() )
843
  QStringList::iterator it = mAllLayerSet.begin();
844
  while ( it != mAllLayerSet.end() )
845 845
  {
846 846
    QgsMapLayer * lyr = registry->mapLayer( *it );
847 847
    if ( lyr == NULL )
......
903 903
  updateFullExtent();
904 904
}
905 905

  
906
void QgsMapRenderer::setAllLayerSet( const QStringList& layers )
907
{
908
  mAllLayerSet = layers;
909
  updateFullExtent();
910
}
911

  
906 912
QStringList& QgsMapRenderer::layerSet()
907 913
{
908 914
  return mLayerSet;