34
34
#include " qgsgenericprojectionselector.h"
35
35
#include " qgsclipboard.h"
36
36
#include " qgsmessagelog.h"
37
+ #include " qgsmessagebar.h"
37
38
38
39
#include < QFont>
39
40
#include < QDomDocument>
@@ -83,6 +84,7 @@ QgsLegend::QgsLegend( QgsMapCanvas *canvas, QWidget * parent, const char *name )
83
84
, mChanging( false )
84
85
, mUpdateDrawingOrder( true )
85
86
, mGetLegendGraphicPopup( 0 )
87
+ , mLoadingLayers( false )
86
88
{
87
89
setObjectName ( name );
88
90
@@ -100,6 +102,8 @@ QgsLegend::QgsLegend( QgsMapCanvas *canvas, QWidget * parent, const char *name )
100
102
this , SLOT ( readProject ( const QDomDocument & ) ) );
101
103
connect ( QgsProject::instance (), SIGNAL ( writeProject ( QDomDocument & ) ),
102
104
this , SLOT ( writeProject ( QDomDocument & ) ) );
105
+ connect ( QgsProject::instance (), SIGNAL ( layerLoaded ( int , int ) ),
106
+ this , SLOT ( layerLoaded ( int , int ) ) );
103
107
104
108
// connect map layer registry signal to legend
105
109
connect ( QgsMapLayerRegistry::instance (),
@@ -1162,22 +1166,26 @@ void QgsLegend::addLayers( QList<QgsMapLayer *> theLayerList )
1162
1166
updateMapCanvasLayerSet ();
1163
1167
emit itemAdded ( indexFromItem ( llayer ) );
1164
1168
}
1169
+
1165
1170
// first layer?
1166
1171
if ( myFirstLayerFlag )
1167
1172
{
1168
1173
QgsMapLayer * myFirstLayer = theLayerList.at ( 0 );
1169
- if ( !mMapCanvas ->mapSettings ().hasCrsTransformEnabled () )
1174
+ if ( !mMapCanvas ->mapSettings ().hasCrsTransformEnabled () && ! mLoadingLayers )
1170
1175
{
1171
1176
mMapCanvas ->setDestinationCrs ( myFirstLayer->crs () );
1172
1177
mMapCanvas ->setMapUnits ( myFirstLayer->crs ().mapUnits () );
1178
+
1179
+ QgisApp::instance ()->messageBar ()->pushMessage ( tr ( " Destination CRS set to %1" ).arg ( myFirstLayer->crs ().authid () ), QgsMessageBar::INFO, QgisApp::instance ()->messageTimeout () );
1173
1180
}
1174
1181
mMapCanvas ->zoomToFullExtent ();
1175
1182
mMapCanvas ->clearExtentHistory ();
1176
1183
}
1177
1184
else
1178
1185
{
1179
1186
if ( settings.value ( " /Projections/otfTransformAutoEnable" , true ).toBool () &&
1180
- !mMapCanvas ->mapSettings ().hasCrsTransformEnabled () )
1187
+ !mMapCanvas ->mapSettings ().hasCrsTransformEnabled () &&
1188
+ !mLoadingLayers )
1181
1189
{
1182
1190
// Verify if all layers have the same CRS
1183
1191
foreach ( QgsMapLayer *l, layers () )
@@ -1187,6 +1195,8 @@ void QgsLegend::addLayers( QList<QgsMapLayer *> theLayerList )
1187
1195
// Set to the previous de facto used so that extent does not change
1188
1196
mMapCanvas ->setDestinationCrs ( myPreviousCrs );
1189
1197
mMapCanvas ->setCrsTransformEnabled ( true );
1198
+
1199
+ QgisApp::instance ()->messageBar ()->pushMessage ( tr ( " On the fly reprojection enabled." ), QgsMessageBar::INFO, QgisApp::instance ()->messageTimeout () );
1190
1200
break ;
1191
1201
}
1192
1202
}
@@ -3270,3 +3280,8 @@ QImage QgsLegend::getWmsLegendPixmap( QTreeWidgetItem *item )
3270
3280
return rasterLayer->dataProvider ()->getLegendGraphic ( canvas ()->scale () );
3271
3281
}
3272
3282
3283
+
3284
+ void QgsLegend::layerLoaded ( int i, int n )
3285
+ {
3286
+ mLoadingLayers = i < n;
3287
+ }
0 commit comments