Skip to content

Commit

Permalink
Initialize raster save as dialog
Browse files Browse the repository at this point in the history
  • Loading branch information
mhugent committed Jul 11, 2012
1 parent 67cd3f5 commit b5be666
Show file tree
Hide file tree
Showing 4 changed files with 90 additions and 5 deletions.
2 changes: 1 addition & 1 deletion src/app/qgisapp.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -3770,7 +3770,7 @@ void QgisApp::saveAsRasterFile()
return;
}

QgsRasterLayerSaveAsDialog d;
QgsRasterLayerSaveAsDialog d( rasterLayer->dataProvider() );
d.exec();
}

Expand Down
72 changes: 71 additions & 1 deletion src/gui/qgsrasterlayersaveasdialog.cpp
Original file line number Diff line number Diff line change
@@ -1,10 +1,80 @@
#include "qgsrasterlayersaveasdialog.h"
#include "qgsrasterdataprovider.h"

QgsRasterLayerSaveAsDialog::QgsRasterLayerSaveAsDialog( QgsRasterDataProvider* sourceProvider,
QWidget* parent, Qt::WindowFlags f ): QDialog( parent, f ),
mDataProvider( sourceProvider )

QgsRasterLayerSaveAsDialog::QgsRasterLayerSaveAsDialog( QWidget* parent, Qt::WindowFlags f ): QDialog( parent, f )
{
setupUi( this );
setValidators();

//fill reasonable default values depending on the provider
if ( mDataProvider )
{
if ( mDataProvider->capabilities() & QgsRasterDataProvider::ExactResolution )
{
int xSize = mDataProvider->xSize();
int ySize = mDataProvider->ySize();
mColumnsLineEdit->setText( QString::number( xSize ) );
mRowsLineEdit->setText( QString::number( ySize ) );
mMaximumSizeXLineEdit->setText( QString::number( xSize ) );
mMaximumSizeYLineEdit->setText( QString::number( ySize ) );
}
else //wms
{
mTileModeCheckBox->setChecked( true );
mColumnsLineEdit->setText( QString::number( 10000 ) );
mRowsLineEdit->setText( QString::number( 10000 ) );
mMaximumSizeXLineEdit->setText( QString::number( 2000 ) );
mMaximumSizeYLineEdit->setText( QString::number( 2000 ) );
}
}
}

void QgsRasterLayerSaveAsDialog::setValidators()
{
mColumnsLineEdit->setValidator( new QIntValidator( this ) );
mRowsLineEdit->setValidator( new QIntValidator( this ) );
mMaximumSizeXLineEdit->setValidator( new QIntValidator( this ) );
mMaximumSizeYLineEdit->setValidator( new QIntValidator( this ) );
}

QgsRasterLayerSaveAsDialog::~QgsRasterLayerSaveAsDialog()
{
}

int QgsRasterLayerSaveAsDialog::nColumns() const
{
return mColumnsLineEdit->text().toInt();
}

int QgsRasterLayerSaveAsDialog::nRows() const
{
return mRowsLineEdit->text().toInt();
}

int QgsRasterLayerSaveAsDialog::maximumTileSizeX() const
{
return mMaximumSizeXLineEdit->text().toInt();
}

int QgsRasterLayerSaveAsDialog::maximumTileSizeY() const
{
return mMaximumSizeYLineEdit->text().toInt();
}

bool QgsRasterLayerSaveAsDialog::tileMode() const
{
return mTileModeCheckBox->isChecked();
}

QString QgsRasterLayerSaveAsDialog::outputFileName() const
{
return mSaveAsLineEdit->text();
}

QString QgsRasterLayerSaveAsDialog::outputFormat() const
{
return ""; //soon...
}
17 changes: 16 additions & 1 deletion src/gui/qgsrasterlayersaveasdialog.h
Original file line number Diff line number Diff line change
Expand Up @@ -3,11 +3,26 @@

#include "ui_qgsrasterlayersaveasdialogbase.h"

class QgsRasterDataProvider;

class QgsRasterLayerSaveAsDialog: public QDialog, private Ui::QgsRasterLayerSaveAsDialogBase
{
public:
QgsRasterLayerSaveAsDialog( QWidget* parent = 0, Qt::WindowFlags f = 0 );
QgsRasterLayerSaveAsDialog( QgsRasterDataProvider* sourceProvider, QWidget* parent = 0, Qt::WindowFlags f = 0 );
~QgsRasterLayerSaveAsDialog();

int nColumns() const;
int nRows() const;
int maximumTileSizeX() const;
int maximumTileSizeY() const;
bool tileMode() const;
QString outputFileName() const;
QString outputFormat() const;

private:
QgsRasterDataProvider* mDataProvider;

void setValidators();
};

#endif // QGSRASTERLAYERSAVEASDIALOG_H
4 changes: 2 additions & 2 deletions src/ui/qgsrasterlayersaveasdialogbase.ui
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,7 @@
<bool>false</bool>
</property>
<property name="text">
<string>Browse</string>
<string>Browse...</string>
</property>
</widget>
</item>
Expand Down Expand Up @@ -85,7 +85,7 @@
</property>
<layout class="QGridLayout" name="gridLayout">
<item row="0" column="1">
<widget class="QLineEdit" name="mMaximumSizeXComboBox"/>
<widget class="QLineEdit" name="mMaximumSizeXLineEdit"/>
</item>
<item row="0" column="0">
<widget class="QLabel" name="mMaximumSizeXLabel">
Expand Down

0 comments on commit b5be666

Please sign in to comment.