Skip to content

Commit

Permalink
add method to set raster options in QgsRasterFormatOptionsWidget
Browse files Browse the repository at this point in the history
  • Loading branch information
alexbruy committed Jan 7, 2017
1 parent 0513bb3 commit 60cb517
Show file tree
Hide file tree
Showing 3 changed files with 125 additions and 0 deletions.
50 changes: 50 additions & 0 deletions python/gui/qgsrasterformatsaveoptionswidget.sip
Expand Up @@ -21,19 +21,69 @@ class QgsRasterFormatSaveOptionsWidget : QWidget
const QString& provider = "gdal" );
~QgsRasterFormatSaveOptionsWidget();

/**
* Set output raster format, it is used to determine list
* of available options
*/
void setFormat( const QString& format );

/**
* Set provider key, , it is used to determine list
* of available options
*/
void setProvider( const QString& provider );

/**
* Set output raster layer
*/
void setRasterLayer( QgsRasterLayer* rasterLayer );

/**
* Set output raster file name
*/
void setRasterFileName( const QString& file );

/**
* Returns list of selected options
* @see setOptions()
*/
QStringList options() const;

/**
* Populate widget with user-defined options
* @see options()
* @note added in QGIS 3.0
*/
void setOptions( const QString& options);

/**
* Set widget look and feel
*/
void setType( QgsRasterFormatSaveOptionsWidget::Type type = Default );

/**
* Set pyramids format to use
*/
void setPyramidsFormat( QgsRaster::RasterPyramidsFormat format );

public slots:

void apply();

/**
* Opens window with options desctiption for given provider
* and output format
*/
void helpOptions();

/**
* Validates options correctness
*/
QString validateOptions( bool gui = true, bool reportOk = true );

/**
* Reloads profiles list from QGIS settings
*/
void updateProfiles();

private slots:
Expand Down
25 changes: 25 additions & 0 deletions src/gui/qgsrasterformatsaveoptionswidget.cpp
Expand Up @@ -631,3 +631,28 @@ void QgsRasterFormatSaveOptionsWidget::showEvent( QShowEvent * event )
QgsDebugMsg( "done" );
}

void QgsRasterFormatSaveOptionsWidget::setOptions( const QString& options)
{
mOptionsTable->blockSignals( true );
mOptionsTable->clearContents();

QStringList values;
QStringList optionsList = options.trimmed().split( ' ', QString::SkipEmptyParts );
Q_FOREACH ( const QString &opt, optionsList )
{
int rowCount = mOptionsTable->rowCount();
mOptionsTable->insertRow( rowCount );

values = opt.split( '=' );
QTableWidgetItem* nameItem = new QTableWidgetItem( values.at( 0 ) );
mOptionsTable->setItem( rowCount, 0, nameItem );
QTableWidgetItem* valueItem = new QTableWidgetItem( values.at( 1 ) );
mOptionsTable->setItem( rowCount, 0, valueItem );
}

mOptionsMap[ currentProfileKey()] = options.trimmed();
mOptionsLineEdit->setText( options.trimmed() );
mOptionsLineEdit->setCursorPosition( 0 );

mOptionsTable->blockSignals( false );
}
50 changes: 50 additions & 0 deletions src/gui/qgsrasterformatsaveoptionswidget.h
Expand Up @@ -47,20 +47,70 @@ class GUI_EXPORT QgsRasterFormatSaveOptionsWidget: public QWidget,
QgsRasterFormatSaveOptionsWidget::Type type = Default,
const QString& provider = "gdal" );

/**
* Set output raster format, it is used to determine list
* of available options
*/
void setFormat( const QString& format );

/**
* Set provider key, , it is used to determine list
* of available options
*/
void setProvider( const QString& provider );

/**
* Set output raster layer
*/
void setRasterLayer( QgsRasterLayer* rasterLayer ) { mRasterLayer = rasterLayer; mRasterFileName = QString(); }

/**
* Set output raster file name
*/
void setRasterFileName( const QString& file ) { mRasterLayer = nullptr; mRasterFileName = file; }

/**
* Returns list of selected options
* @see setOptions()
*/
QStringList options() const;

/**
* Populate widget with user-defined options
* @see options()
* @note added in QGIS 3.0
*/
void setOptions( const QString& options);

/**
* Set widget look and feel
*/
void setType( QgsRasterFormatSaveOptionsWidget::Type type = Default );

/**
* Set pyramids format to use
*/
void setPyramidsFormat( QgsRaster::RasterPyramidsFormat format )
{ mPyramids = true; mPyramidsFormat = format; }

public slots:

void apply();

/**
* Opens window with options desctiption for given provider
* and output format
*/
void helpOptions();

/**
* Validates options correctness
*/
QString validateOptions( bool gui = true, bool reportOk = true );

/**
* Reloads profiles list from QGIS settings
*/
void updateProfiles();

private slots:
Expand Down

0 comments on commit 60cb517

Please sign in to comment.