Index: src/app/qgsoptions.cpp =================================================================== --- src/app/qgsoptions.cpp (wersja 15347) +++ src/app/qgsoptions.cpp (kopia robocza) @@ -188,10 +188,13 @@ { radUseGlobalProjection->setChecked( true ); } - txtGlobalWkt->setText( settings.value( "/Projections/defaultProjectionString", GEOPROJ4 ).toString() ); + QString myLayerDefaultCrsString = settings.value( "/Projections/defaultProjectionString", GEOPROJ4 ).toString(); + mLayerDefaultCrs.createFromProj4( myLayerDefaultCrsString ); + leLayerGlobalProjString->setText( mLayerDefaultCrs.authid() + " - " + + mLayerDefaultCrs.description() ); //on the fly CRS transformation settings - grpOtfTransform->setChecked( settings.value( "/Projections/otfTransformEnabled", 0 ).toBool() ); - QString myDefaultSrsString = settings.value( "/Projections/defaultOTFProjectionString", GEOPROJ4 ).toString(); + chkOtfTransform->setChecked( settings.value( "/Projections/otfTransformEnabled", 0 ).toBool() ); + QString myDefaultSrsString = settings.value( "/Projections/projectDefaultProjectionString", GEOPROJ4 ).toString(); mDefaultCrs.createFromProj4( myDefaultSrsString ); //display the crs as friendly text rather than in wkt leGlobalOtfProjString->setText( mDefaultCrs.authid() + " - " + @@ -635,11 +638,11 @@ settings.setValue( "/Projections/defaultBehaviour", "useGlobal" ); } - settings.setValue( "/Projections/defaultProjectionString", txtGlobalWkt->toPlainText() ); + settings.setValue( "/Projections/defaultProjectionString", mLayerDefaultCrs.toProj4() ); // save 'on the fly' CRS transformation settings - settings.setValue( "/Projections/otfTransformEnabled", grpOtfTransform->isChecked() ); - settings.setValue( "/Projections/defaultOTFProjectionString", mDefaultCrs.toProj4() ); + settings.setValue( "/Projections/otfTransformEnabled", chkOtfTransform->isChecked() ); + settings.setValue( "/Projections/projectDefaultProjectionString", mDefaultCrs.toProj4() ); settings.setValue( "/qgis/measure/ellipsoid", getEllipsoidAcronym( cmbEllipsoid->currentText() ) ); @@ -750,21 +753,19 @@ QgsGenericProjectionSelector * mySelector = new QgsGenericProjectionSelector( this ); //find out srs id of current proj4 string - QgsCoordinateReferenceSystem refSys; - if ( refSys.createFromProj4( txtGlobalWkt->toPlainText() ) ) - { - mySelector->setSelectedCrsId( refSys.srsid() ); - } + mySelector->setSelectedCrsId( mLayerDefaultCrs.srsid() ); if ( mySelector->exec() ) { - //! @todo changes this control name in gui to txtGlobalProjString - txtGlobalWkt->setText( mySelector->selectedProj4String() ); - QgsDebugMsg( QString( "------ Global Default Projection Selection set to ----------\n%1" ).arg( txtGlobalWkt->toPlainText() ) ); + mLayerDefaultCrs.createFromProj4( mySelector->selectedProj4String() ); + QgsDebugMsg( QString( "Setting default project CRS to : %1").arg( mySelector->selectedProj4String() ) ); + leLayerGlobalProjString->setText( mLayerDefaultCrs.authid() + " - " + + mLayerDefaultCrs.description() ); + QgsDebugMsg( QString( "------ Global Layer Default Projection Selection set to ----------\n%1" ).arg( leLayerGlobalProjString->text() ) ); } else { - QgsDebugMsg( "------ Global Default Projection Selection change cancelled ----------" ); + QgsDebugMsg( "------ Global Layer Default Projection Selection change cancelled ----------" ); QApplication::restoreOverrideCursor(); } Index: src/app/qgsoptions.h =================================================================== --- src/app/qgsoptions.h (wersja 15347) +++ src/app/qgsoptions.h (kopia robocza) @@ -131,6 +131,7 @@ private: QStringList i18nList(); QgsCoordinateReferenceSystem mDefaultCrs; + QgsCoordinateReferenceSystem mLayerDefaultCrs; }; #endif // #ifndef QGSOPTIONS_H Index: src/app/qgisapp.cpp =================================================================== --- src/app/qgisapp.cpp (wersja 15347) +++ src/app/qgisapp.cpp (kopia robocza) @@ -3256,27 +3256,29 @@ mMapCanvas->refresh(); mMapCanvas->clearExtentHistory(); + // set project CRS + QgsMapRenderer* myRenderer = mMapCanvas->mapRenderer(); + QString projString = settings.value( "/Projections/projectDefaultProjectionString", GEOPROJ4 ).toString(); + QgsCoordinateReferenceSystem srs; + srs.createFromProj4( projString ); + myRenderer->setDestinationSrs( srs ); + // write the projections _proj string_ to project settings + prj->writeEntry( "SpatialRefSys", "/ProjectCRSProj4String", projString ); + prj->dirty( false ); + if ( srs.mapUnits() != QGis::UnknownUnit ) + { + myRenderer->setMapUnits( srs.mapUnits() ); + } + // enable OTF CRS transformation if necessary if ( settings.value( "/Projections/otfTransformEnabled", 0 ).toBool() ) { - QgsMapRenderer* myRenderer = mMapCanvas->mapRenderer(); - QString projString = settings.value( "/Projections/defaultOTFProjectionString", GEOPROJ4 ).toString(); - QgsCoordinateReferenceSystem srs; - srs.createFromProj4( projString ); myRenderer->setProjectionsEnabled( true ); - myRenderer->setDestinationSrs( srs ); - // write the projections _proj string_ to project settings - prj->writeEntry( "SpatialRefSys", "/ProjectCRSProj4String", projString ); - prj->dirty( false ); - if ( srs.mapUnits() != QGis::UnknownUnit ) - { - myRenderer->setMapUnits( srs.mapUnits() ); - } mOnTheFlyProjectionStatusButton->setIcon( getThemeIcon( "mIconProjectionEnabled.png" ) ); } else { - mMapCanvas->mapRenderer()->setProjectionsEnabled( false ); + myRenderer->setProjectionsEnabled( false ); } // set the initial map tool @@ -5528,25 +5530,26 @@ double zoomFactor = mySettings.value( "/qgis/zoom_factor", 2 ).toDouble(); mMapCanvas->setWheelAction(( QgsMapCanvas::WheelAction ) action, zoomFactor ); + // set project CRS + QgsMapRenderer* myRenderer = mMapCanvas->mapRenderer(); + QString projString = mySettings.value( "/Projections/projectDefaultProjectionString", GEOPROJ4 ).toString(); + QgsCoordinateReferenceSystem srs; + srs.createFromProj4( projString ); + myRenderer->setDestinationSrs( srs ); + // write the projections _proj string_ to project settings + QgsProject::instance()->writeEntry( "SpatialRefSys", "/ProjectCRSProj4String", projString ); + if ( srs.mapUnits() != QGis::UnknownUnit ) + { + myRenderer->setMapUnits( srs.mapUnits() ); + } + //apply OTF CRS transformation if necessary if ( mySettings.value( "/Projections/otfTransformEnabled", 0 ).toBool() ) { - QgsMapRenderer* myRenderer = mMapCanvas->mapRenderer(); - QString projString = mySettings.value( "/Projections/defaultOTFProjectionString", GEOPROJ4 ).toString(); - QgsCoordinateReferenceSystem srs; - srs.createFromProj4( projString ); myRenderer->setProjectionsEnabled( true ); - myRenderer->setDestinationSrs( srs ); - // write the projections _proj string_ to project settings - QgsProject::instance()->writeEntry( "SpatialRefSys", "/ProjectCRSProj4String", projString ); - if ( srs.mapUnits() != QGis::UnknownUnit ) - { - myRenderer->setMapUnits( srs.mapUnits() ); - } } else { - QgsMapRenderer* myRenderer = mMapCanvas->mapRenderer(); myRenderer->setProjectionsEnabled( false ); } mMapCanvas->refresh(); Index: src/ui/qgsoptionsbase.ui =================================================================== --- src/ui/qgsoptionsbase.ui (wersja 15347) +++ src/ui/qgsoptionsbase.ui (kopia robocza) @@ -6,8 +6,8 @@ 0 0 - 804 - 567 + 820 + 573 @@ -20,7 +20,7 @@ true - + Qt::Horizontal @@ -30,7 +30,7 @@ - + 0 @@ -60,8 +60,8 @@ 0 0 - 746 - 862 + 775 + 755 @@ -499,8 +499,8 @@ 0 0 - 746 - 481 + 790 + 485 @@ -670,8 +670,8 @@ 0 0 - 746 - 500 + 790 + 485 @@ -950,8 +950,8 @@ 0 0 - 762 - 457 + 790 + 485 @@ -1025,8 +1025,8 @@ 0 0 - 837 - 454 + 790 + 485 @@ -1354,22 +1354,25 @@ 0 - -59 - 746 - 516 + 0 + 790 + 485 - + + + + 0 + 2 + + - Default Coordinate Reference System + Coordinate Reference System for new layers - - - 11 - - + + When a new layer is created, or when a layer is loaded that has no coordinate reference system (CRS) @@ -1379,63 +1382,106 @@ - + Prompt for CRS - + - Project wide default CRS will be used + Use project CRS - + - Global default CRS displa&yed below will be used + Use default CRS + + + + true + + + + + + + Specify... + + + + + + + Qt::Vertical + + + + 20 + 40 + + + + - - - - - - - Select Global Default ... + + + + + 0 + 1 + - - - - - Always use 'on the fly' CRS transformation for new projects + Default Coordinate Reference System for new projects - true + false - - + + true - + + + + Use 'on the fly' CRS transformation for new projects + + + + - Select CRS for 'on the fly' transformation ... + Specify... + + + + Qt::Vertical + + + + 20 + 40 + + + + @@ -1464,8 +1510,8 @@ 0 0 - 746 - 551 + 775 + 527 @@ -1555,8 +1601,8 @@ 0 0 - 746 - 548 + 790 + 485 @@ -1786,34 +1832,58 @@ tabWidget + scrollArea_2 chbAskToSaveProjectChanges chbWarnOldProjectVersion pbnSelectionColor pbnCanvasColor cmbTheme + cmbSize + cmbLegendDoubleClickAction capitaliseCheckBox cbxLegendClassifiers + cbxCreateRasterLegendIcons cbxHideSplash + cbxShowTips cbxIdentifyResultsDocked + cbxSnappingOptionsDocked cbxAttributeTableDocked cbxAddPostgisDC + cbxAddNewLayersToCurrentGroup + cmbAttrTableBehaviour + leNullValue + mListPluginPaths + mBtnAddPluginPath + mBtnRemovePluginPath + buttonBox + scrollArea_3 chkAddedVisibility spinBoxUpdateThreshold chkUseRenderCaching chkAntiAliasing chkUseQPixmap + chkUseSymbologyNG + mListSVGPaths mBtnAddSVGPath mBtnRemoveSVGPath - mListSVGPaths + scrollArea cmbIdentifyMode + cbxAutoFeatureForm spinBoxIdentifyValue cmbEllipsoid pbnMeasureColor + mDecimalPlacesSpinBox + mKeepBaseUnitCheckBox radMeters radFeet + mDegreesRadioButton + mRadiansRadioButton + mGonRadioButton cmbWheelAction spinZoomFactor + scrollArea_4 mOverlayAlgorithmComboBox + scrollArea_5 mLineWidthSpinBox mLineColorToolButton mDefaultSnapModeComboBox @@ -1821,25 +1891,39 @@ mDefaultSnappingToleranceComboBox mSearchRadiusVertexEditSpinBox mSearchRadiusVertexEditComboBox - mMarkersOnlyForSelectedCheckBox mMarkerStyleComboBox mMarkerSizeSpinBox + chkReuseLastValues chkDisableAttributeValuesDlg + scrollArea_6 + pbnSelectOtfProjection + leGlobalOtfProjString + chkOtfTransform radPromptForProjection radUseProjectProjection radUseGlobalProjection - txtGlobalWkt + leLayerGlobalProjString pbnSelectProjection + scrollArea_7 grpLocale cboLocale - mNetworkTimeoutSpinBox + scrollArea_8 grpProxy leProxyHost leProxyPort leProxyUser leProxyPassword mProxyTypeComboBox - buttonBox + mExcludeUrlListWidget + mAddUrlPushButton + mRemoveUrlPushButton + mCacheDirectory + mBrowseCacheDirectory + mCacheSize + mClearCache + leWmsSearch + mNetworkTimeoutSpinBox + mMarkersOnlyForSelectedCheckBox