Skip to content

Commit

Permalink
Quote layer names in raster calculator
Browse files Browse the repository at this point in the history
  • Loading branch information
mhugent committed Jul 31, 2013
1 parent 7d44e0a commit ba86804
Show file tree
Hide file tree
Showing 3 changed files with 16 additions and 1 deletion.
3 changes: 3 additions & 0 deletions src/analysis/raster/qgsrastercalclexer.ll
Expand Up @@ -48,6 +48,7 @@ number {num1}|{num2}
non_ascii [\x80-\xFF]
raster_ref_char [A-Za-z0-9_./:]|{non_ascii}|[-]
raster_band_ref ({raster_ref_char}+)@{dig}
raster_band_ref_quoted \"(\\.|[^"])*\"
%%
Expand All @@ -74,6 +75,8 @@ raster_band_ref ({raster_ref_char}+)@{dig}
{raster_band_ref} { return RASTER_BAND_REF; }
{raster_band_ref_quoted} { return RASTER_BAND_REF; }
{white} /* skip blanks and tabs */
%%
Expand Down
12 changes: 11 additions & 1 deletion src/app/qgsrastercalcdialog.cpp
Expand Up @@ -130,7 +130,7 @@ void QgsRasterCalcDialog::insertAvailableRasterBands()
QgsRasterCalculatorEntry entry;
entry.raster = rlayer;
entry.bandNumber = i + 1;
entry.ref = rlayer->name() + "@" + QString::number( i + 1 );
entry.ref = quoteBandEntry( rlayer->name() + "@" + QString::number( i + 1 ) );
mAvailableRasterBands.push_back( entry );
mRasterBandsListWidget->addItem( entry.ref );
}
Expand Down Expand Up @@ -406,3 +406,13 @@ void QgsRasterCalcDialog::on_mOrButton_clicked()
{
mExpressionTextEdit->insertPlainText( " OR " );
}

QString QgsRasterCalcDialog::quoteBandEntry( const QString& layerName )
{
// '"' -> '\\"'
QString quotedName = layerName;
quotedName.replace( "\"", "\\\"" );
quotedName.append( "\"" );
quotedName.prepend( "\"" );
return quotedName;
}
2 changes: 2 additions & 0 deletions src/app/qgsrastercalcdialog.h
Expand Up @@ -87,6 +87,8 @@ class QgsRasterCalcDialog: public QDialog, private Ui::QgsRasterCalcDialogBase
/**Returns true if output file directory exists*/
bool filePathValid() const;

static QString quoteBandEntry( const QString& layerName );

/**Stores relation between driver name and extension*/
QMap<QString, QString> mDriverExtensionMap;

Expand Down

0 comments on commit ba86804

Please sign in to comment.