Skip to content

Commit

Permalink
layer crs instead of provider crs in raster save dialog
Browse files Browse the repository at this point in the history
  • Loading branch information
blazek committed Aug 21, 2012
1 parent 953c4e0 commit a205034
Show file tree
Hide file tree
Showing 3 changed files with 11 additions and 8 deletions.
2 changes: 1 addition & 1 deletion src/app/qgisapp.cpp
Expand Up @@ -3924,7 +3924,7 @@ void QgisApp::saveAsRasterFile()
return;
}

QgsRasterLayerSaveAsDialog d( rasterLayer->dataProvider(), mMapCanvas->extent(), mMapCanvas->mapRenderer()->destinationCrs() );
QgsRasterLayerSaveAsDialog d( rasterLayer->dataProvider(), mMapCanvas->extent(), rasterLayer->crs(), mMapCanvas->mapRenderer()->destinationCrs() );
if ( d.exec() == QDialog::Accepted )
{
QgsRasterFileWriter fileWriter( d.outputFileName() );
Expand Down
14 changes: 8 additions & 6 deletions src/gui/qgsrasterlayersaveasdialog.cpp
Expand Up @@ -9,11 +9,13 @@
#include <QSettings>

QgsRasterLayerSaveAsDialog::QgsRasterLayerSaveAsDialog( QgsRasterDataProvider* sourceProvider, const QgsRectangle& currentExtent,
const QgsCoordinateReferenceSystem& layerCrs,
const QgsCoordinateReferenceSystem& currentCrs,
QWidget* parent, Qt::WindowFlags f ):
QDialog( parent, f )
, mDataProvider( sourceProvider )
, mCurrentExtent( currentExtent )
, mLayerCrs( layerCrs )
, mCurrentCrs( currentCrs )
, mExtentState( OriginalExtent )
, mResolutionState( OriginalResolution )
Expand All @@ -40,7 +42,7 @@ QgsRasterLayerSaveAsDialog::QgsRasterLayerSaveAsDialog( QgsRasterDataProvider* s
if ( mDataProvider )
{
//extent
setOutputExtent( mDataProvider->extent(), mDataProvider->crs(), OriginalExtent );
setOutputExtent( mDataProvider->extent(), mLayerCrs, OriginalExtent );

if ( mDataProvider->capabilities() & QgsRasterDataProvider::ExactResolution )
{
Expand Down Expand Up @@ -130,7 +132,7 @@ void QgsRasterLayerSaveAsDialog::on_mOriginalExtentButton_clicked()
{
if ( mDataProvider )
{
setOutputExtent( mDataProvider->extent(), mDataProvider->crs(), OriginalExtent );
setOutputExtent( mDataProvider->extent(), mLayerCrs, OriginalExtent );
}
}

Expand Down Expand Up @@ -266,7 +268,7 @@ void QgsRasterLayerSaveAsDialog::setOriginalResolution()
// Init to something if no original resolution is available
xRes = yRes = mDataProvider->extent().width() / 100;
}
setResolution( xRes, yRes, mDataProvider->crs() );
setResolution( xRes, yRes, mLayerCrs );
mResolutionState = OriginalResolution;
recalcSize();
}
Expand Down Expand Up @@ -414,7 +416,7 @@ void QgsRasterLayerSaveAsDialog::crsChanged()
if ( mExtentState == OriginalExtent )
{
previousExtent = mDataProvider->extent();
previousCrs = mDataProvider->crs();
previousCrs = mLayerCrs;
}
else if ( mExtentState == CurrentExtent )
{
Expand Down Expand Up @@ -456,7 +458,7 @@ void QgsRasterLayerSaveAsDialog::updateCrsGroup()
QgsDebugMsg( "Entered" );

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

mCrsComboBox->setItemText( mCrsComboBox->findData( CurrentCrs ),
tr( "Project" ) + " (" + mCurrentCrs.description() + ", " + mCurrentCrs.authid() + ")" );
Expand All @@ -470,7 +472,7 @@ QgsCoordinateReferenceSystem QgsRasterLayerSaveAsDialog::outputCrs()
int state = mCrsComboBox->itemData( mCrsComboBox->currentIndex() ).toInt();
if ( state == OriginalCrs )
{
return mDataProvider->crs();
return mLayerCrs;
}
else if ( state == CurrentCrs )
{
Expand Down
3 changes: 2 additions & 1 deletion src/gui/qgsrasterlayersaveasdialog.h
Expand Up @@ -35,7 +35,7 @@ class GUI_EXPORT QgsRasterLayerSaveAsDialog: public QDialog, private Ui::QgsRast
UserResolution
};

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

Mode mode() const;
Expand Down Expand Up @@ -82,6 +82,7 @@ class GUI_EXPORT QgsRasterLayerSaveAsDialog: public QDialog, private Ui::QgsRast
private:
QgsRasterDataProvider* mDataProvider;
QgsRectangle mCurrentExtent;
QgsCoordinateReferenceSystem mLayerCrs; // may differ from provider CRS
QgsCoordinateReferenceSystem mCurrentCrs;
QgsCoordinateReferenceSystem mUserCrs;
QgsCoordinateReferenceSystem mPreviousCrs;
Expand Down

0 comments on commit a205034

Please sign in to comment.