Skip to content

Commit a205034

Browse files
committedAug 21, 2012
layer crs instead of provider crs in raster save dialog
1 parent 953c4e0 commit a205034

File tree

3 files changed

+11
-8
lines changed

3 files changed

+11
-8
lines changed
 

‎src/app/qgisapp.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3924,7 +3924,7 @@ void QgisApp::saveAsRasterFile()
39243924
return;
39253925
}
39263926

3927-
QgsRasterLayerSaveAsDialog d( rasterLayer->dataProvider(), mMapCanvas->extent(), mMapCanvas->mapRenderer()->destinationCrs() );
3927+
QgsRasterLayerSaveAsDialog d( rasterLayer->dataProvider(), mMapCanvas->extent(), rasterLayer->crs(), mMapCanvas->mapRenderer()->destinationCrs() );
39283928
if ( d.exec() == QDialog::Accepted )
39293929
{
39303930
QgsRasterFileWriter fileWriter( d.outputFileName() );

‎src/gui/qgsrasterlayersaveasdialog.cpp

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -9,11 +9,13 @@
99
#include <QSettings>
1010

1111
QgsRasterLayerSaveAsDialog::QgsRasterLayerSaveAsDialog( QgsRasterDataProvider* sourceProvider, const QgsRectangle& currentExtent,
12+
const QgsCoordinateReferenceSystem& layerCrs,
1213
const QgsCoordinateReferenceSystem& currentCrs,
1314
QWidget* parent, Qt::WindowFlags f ):
1415
QDialog( parent, f )
1516
, mDataProvider( sourceProvider )
1617
, mCurrentExtent( currentExtent )
18+
, mLayerCrs( layerCrs )
1719
, mCurrentCrs( currentCrs )
1820
, mExtentState( OriginalExtent )
1921
, mResolutionState( OriginalResolution )
@@ -40,7 +42,7 @@ QgsRasterLayerSaveAsDialog::QgsRasterLayerSaveAsDialog( QgsRasterDataProvider* s
4042
if ( mDataProvider )
4143
{
4244
//extent
43-
setOutputExtent( mDataProvider->extent(), mDataProvider->crs(), OriginalExtent );
45+
setOutputExtent( mDataProvider->extent(), mLayerCrs, OriginalExtent );
4446

4547
if ( mDataProvider->capabilities() & QgsRasterDataProvider::ExactResolution )
4648
{
@@ -130,7 +132,7 @@ void QgsRasterLayerSaveAsDialog::on_mOriginalExtentButton_clicked()
130132
{
131133
if ( mDataProvider )
132134
{
133-
setOutputExtent( mDataProvider->extent(), mDataProvider->crs(), OriginalExtent );
135+
setOutputExtent( mDataProvider->extent(), mLayerCrs, OriginalExtent );
134136
}
135137
}
136138

@@ -266,7 +268,7 @@ void QgsRasterLayerSaveAsDialog::setOriginalResolution()
266268
// Init to something if no original resolution is available
267269
xRes = yRes = mDataProvider->extent().width() / 100;
268270
}
269-
setResolution( xRes, yRes, mDataProvider->crs() );
271+
setResolution( xRes, yRes, mLayerCrs );
270272
mResolutionState = OriginalResolution;
271273
recalcSize();
272274
}
@@ -414,7 +416,7 @@ void QgsRasterLayerSaveAsDialog::crsChanged()
414416
if ( mExtentState == OriginalExtent )
415417
{
416418
previousExtent = mDataProvider->extent();
417-
previousCrs = mDataProvider->crs();
419+
previousCrs = mLayerCrs;
418420
}
419421
else if ( mExtentState == CurrentExtent )
420422
{
@@ -456,7 +458,7 @@ void QgsRasterLayerSaveAsDialog::updateCrsGroup()
456458
QgsDebugMsg( "Entered" );
457459

458460
mCrsComboBox->setItemText( mCrsComboBox->findData( OriginalCrs ),
459-
tr( "Layer" ) + " (" + mDataProvider->crs().description() + ", " + mDataProvider->crs().authid() + ")" );
461+
tr( "Layer" ) + " (" + mLayerCrs.description() + ", " + mLayerCrs.authid() + ")" );
460462

461463
mCrsComboBox->setItemText( mCrsComboBox->findData( CurrentCrs ),
462464
tr( "Project" ) + " (" + mCurrentCrs.description() + ", " + mCurrentCrs.authid() + ")" );
@@ -470,7 +472,7 @@ QgsCoordinateReferenceSystem QgsRasterLayerSaveAsDialog::outputCrs()
470472
int state = mCrsComboBox->itemData( mCrsComboBox->currentIndex() ).toInt();
471473
if ( state == OriginalCrs )
472474
{
473-
return mDataProvider->crs();
475+
return mLayerCrs;
474476
}
475477
else if ( state == CurrentCrs )
476478
{

‎src/gui/qgsrasterlayersaveasdialog.h

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ class GUI_EXPORT QgsRasterLayerSaveAsDialog: public QDialog, private Ui::QgsRast
3535
UserResolution
3636
};
3737

38-
QgsRasterLayerSaveAsDialog( QgsRasterDataProvider* sourceProvider, const QgsRectangle& currentExtent, const QgsCoordinateReferenceSystem& currentCrs, QWidget* parent = 0, Qt::WindowFlags f = 0 );
38+
QgsRasterLayerSaveAsDialog( QgsRasterDataProvider* sourceProvider, const QgsRectangle& currentExtent, const QgsCoordinateReferenceSystem& layerCrs, const QgsCoordinateReferenceSystem& currentCrs, QWidget* parent = 0, Qt::WindowFlags f = 0 );
3939
~QgsRasterLayerSaveAsDialog();
4040

4141
Mode mode() const;
@@ -82,6 +82,7 @@ class GUI_EXPORT QgsRasterLayerSaveAsDialog: public QDialog, private Ui::QgsRast
8282
private:
8383
QgsRasterDataProvider* mDataProvider;
8484
QgsRectangle mCurrentExtent;
85+
QgsCoordinateReferenceSystem mLayerCrs; // may differ from provider CRS
8586
QgsCoordinateReferenceSystem mCurrentCrs;
8687
QgsCoordinateReferenceSystem mUserCrs;
8788
QgsCoordinateReferenceSystem mPreviousCrs;

0 commit comments

Comments
 (0)
Please sign in to comment.