Skip to content

Commit fc1bf37

Browse files
author
ersts
committed
-Fix problem with missing "Red" band under the gray scale selection pulldown
-This would have been a problem for all non-english systems -The problem will be fully resolved once ts files are updated -Closes ticket #923 git-svn-id: http://svn.osgeo.org/qgis/trunk/qgis@8401 c8812cc2-4d05-0410-92ff-de0c093fc19c
1 parent 01ffdb1 commit fc1bf37

File tree

4 files changed

+56
-51
lines changed

4 files changed

+56
-51
lines changed

src/app/qgsrasterlayerproperties.cpp

+48-47
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,8 @@
4949
const char * const ident =
5050
"$Id$";
5151

52+
// Constant that signals property not used.
53+
const QString QgsRasterLayerProperties::QSTRING_NOT_SET = "Not Set";
5254

5355
QgsRasterLayerProperties::QgsRasterLayerProperties(QgsMapLayer *lyr, QWidget *parent, Qt::WFlags fl)
5456
: QDialog(parent, fl),
@@ -146,30 +148,30 @@ mRasterLayer( dynamic_cast<QgsRasterLayer*>(lyr) )
146148
//
147149
// Set up the combo boxes that contain band lists using the qstring list generated above
148150
//
149-
151+
150152
if (mRasterLayer->getRasterLayerType()
151153
== QgsRasterLayer::PALETTE) //paletted layers have hard coded color entries
152154
{
153-
cboRed->addItem("Red");
154-
cboGreen->addItem("Red");
155-
cboBlue->addItem("Red");
155+
cboRed->addItem(tr("Red"));
156+
cboGreen->addItem(tr("Red"));
157+
cboBlue->addItem(tr("Red"));
156158

157-
cboRed->addItem("Green");
158-
cboGreen->addItem("Green");
159-
cboBlue->addItem("Green");
159+
cboRed->addItem(tr("Green"));
160+
cboGreen->addItem(tr("Green"));
161+
cboBlue->addItem(tr("Green"));
160162

161-
cboRed->addItem("Blue");
162-
cboGreen->addItem("Blue");
163-
cboBlue->addItem("Blue");
163+
cboRed->addItem(tr("Blue"));
164+
cboGreen->addItem(tr("Blue"));
165+
cboBlue->addItem(tr("Blue"));
164166

165-
cboRed->addItem(tr(QgsRasterLayer::QSTRING_NOT_SET));
166-
cboGreen->addItem(tr(QgsRasterLayer::QSTRING_NOT_SET));
167-
cboBlue->addItem(tr(QgsRasterLayer::QSTRING_NOT_SET));
167+
cboRed->addItem(tr(QSTRING_NOT_SET));
168+
cboGreen->addItem(tr(QSTRING_NOT_SET));
169+
cboBlue->addItem(tr(QSTRING_NOT_SET));
168170

169-
cboGray->addItem("Red");
170-
cboGray->addItem("Green");
171-
cboGray->addItem("Blue");
172-
cboGray->addItem(tr(QgsRasterLayer::QSTRING_NOT_SET));
171+
cboGray->addItem(tr("Red"));
172+
cboGray->addItem(tr("Green"));
173+
cboGray->addItem(tr("Blue"));
174+
cboGray->addItem(tr(QSTRING_NOT_SET));
173175

174176
lstHistogramLabels->insertItem(tr("Palette"));
175177
}
@@ -268,16 +270,15 @@ mRasterLayer( dynamic_cast<QgsRasterLayer*>(lyr) )
268270
cboGreen->addItem(myQString);
269271
cboBlue->addItem(myQString);
270272
}
271-
//TODO: Need to handle situations where a band is set to Not Set, currently if you set a band to this it will segfault.
272-
cboRed->addItem(tr(QgsRasterLayer::QSTRING_NOT_SET));
273-
cboGreen->addItem(tr(QgsRasterLayer::QSTRING_NOT_SET));
274-
cboBlue->addItem(tr(QgsRasterLayer::QSTRING_NOT_SET));
275-
if (cboGray->count() != 1)
276-
cboGray->addItem(tr(QgsRasterLayer::QSTRING_NOT_SET));
273+
274+
cboRed->addItem(tr(QSTRING_NOT_SET));
275+
cboGreen->addItem(tr(QSTRING_NOT_SET));
276+
cboBlue->addItem(tr(QSTRING_NOT_SET));
277+
cboGray->addItem(tr(QSTRING_NOT_SET));
277278
}
278279

279-
cboxTransparencyBand->addItem(tr(QgsRasterLayer::QSTRING_NOT_SET));
280-
cboxTransparencyLayer->addItem(tr(QgsRasterLayer::QSTRING_NOT_SET));
280+
cboxTransparencyBand->addItem(tr(QSTRING_NOT_SET));
281+
cboxTransparencyLayer->addItem(tr(QSTRING_NOT_SET));
281282
QMap<QString, QgsMapLayer *> myLayers = QgsMapLayerRegistry::instance()->mapLayers();
282283
QMap<QString, QgsMapLayer *>::iterator it;
283284
for(it = myLayers.begin(); it != myLayers.end(); it++)
@@ -641,17 +642,17 @@ void QgsRasterLayerProperties::sync()
641642
QgsRasterLayer::PALETTED_SINGLE_BAND_PSEUDO_COLOR != mRasterLayer->getDrawingStyle() &&
642643
QgsRasterLayer::PALETTED_MULTI_BAND_COLOR != mRasterLayer->getDrawingStyle())
643644
{
644-
if(mRasterLayer->getRedBandName() != tr(QgsRasterLayer::QSTRING_NOT_SET))
645+
if(mRasterLayer->getRedBandName() != tr(QSTRING_NOT_SET))
645646
{
646647
leRedMin->setText(QString::number(mRasterLayer->getMinimumValue(mRasterLayer->getRedBandName())));
647648
leRedMax->setText(QString::number(mRasterLayer->getMaximumValue(mRasterLayer->getRedBandName())));
648649
}
649-
if(mRasterLayer->getGreenBandName() != tr(QgsRasterLayer::QSTRING_NOT_SET))
650+
if(mRasterLayer->getGreenBandName() != tr(QSTRING_NOT_SET))
650651
{
651652
leGreenMin->setText(QString::number(mRasterLayer->getMinimumValue(mRasterLayer->getGreenBandName())));
652653
leGreenMax->setText(QString::number(mRasterLayer->getMaximumValue(mRasterLayer->getGreenBandName())));
653654
}
654-
if(mRasterLayer->getBlueBandName() != tr(QgsRasterLayer::QSTRING_NOT_SET))
655+
if(mRasterLayer->getBlueBandName() != tr(QSTRING_NOT_SET))
655656
{
656657
leBlueMin->setText(QString::number(mRasterLayer->getMinimumValue(mRasterLayer->getBlueBandName())));
657658
leBlueMax->setText(QString::number(mRasterLayer->getMaximumValue(mRasterLayer->getBlueBandName())));
@@ -678,7 +679,7 @@ void QgsRasterLayerProperties::sync()
678679
QgsRasterLayer::PALETTED_SINGLE_BAND_PSEUDO_COLOR != mRasterLayer->getDrawingStyle() &&
679680
QgsRasterLayer::PALETTED_MULTI_BAND_COLOR != mRasterLayer->getDrawingStyle())
680681
{
681-
if(mRasterLayer->getGrayBandName() != tr(QgsRasterLayer::QSTRING_NOT_SET))
682+
if(mRasterLayer->getGrayBandName() != tr(QSTRING_NOT_SET))
682683
{
683684
leGrayMin->setText(QString::number(mRasterLayer->getMinimumValue(mRasterLayer->getGrayBandName())));
684685
leGrayMax->setText(QString::number(mRasterLayer->getMaximumValue(mRasterLayer->getGrayBandName())));
@@ -754,7 +755,7 @@ void QgsRasterLayerProperties::sync()
754755
}
755756
else
756757
{
757-
cboxTransparencyLayer->setCurrentIndex(cboxTransparencyLayer->findText(tr(QgsRasterLayer::QSTRING_NOT_SET)));
758+
cboxTransparencyLayer->setCurrentIndex(cboxTransparencyLayer->findText(tr(QSTRING_NOT_SET)));
758759
}
759760

760761
myIndex = cboxTransparencyBand->findText(mRasterLayer->getTransparentBandName());
@@ -764,7 +765,7 @@ void QgsRasterLayerProperties::sync()
764765
}
765766
else
766767
{
767-
cboxTransparencyBand->setCurrentIndex(cboxTransparencyBand->findText(tr(QgsRasterLayer::QSTRING_NOT_SET)));
768+
cboxTransparencyBand->setCurrentIndex(cboxTransparencyBand->findText(tr(QSTRING_NOT_SET)));
768769
}
769770
//add current NoDataValue to NoDataValue line edit
770771
if(mRasterLayer->isNoDataValueValid())
@@ -1133,17 +1134,17 @@ void QgsRasterLayerProperties::apply()
11331134
//Set min max based on user defined values if all are set and stdDev is 0.0
11341135
if(rbtnThreeBandMinMax->isEnabled() && rbtnThreeBandMinMax->isChecked() && validUserDefinedMinMax())
11351136
{
1136-
if(mRasterLayer->getRedBandName() != tr(QgsRasterLayer::QSTRING_NOT_SET))
1137+
if(mRasterLayer->getRedBandName() != tr(QSTRING_NOT_SET))
11371138
{
11381139
mRasterLayer->setMinimumValue(cboRed->currentText(), leRedMin->text().toDouble(), false);
11391140
mRasterLayer->setMaximumValue(cboRed->currentText(), leRedMax->text().toDouble());
11401141
}
1141-
if(mRasterLayer->getGreenBandName() != tr(QgsRasterLayer::QSTRING_NOT_SET))
1142+
if(mRasterLayer->getGreenBandName() != tr(QSTRING_NOT_SET))
11421143
{
11431144
mRasterLayer->setMinimumValue(cboGreen->currentText(), leGreenMin->text().toDouble(), false);
11441145
mRasterLayer->setMaximumValue(cboGreen->currentText(), leGreenMax->text().toDouble());
11451146
}
1146-
if(mRasterLayer->getBlueBandName() != tr(QgsRasterLayer::QSTRING_NOT_SET))
1147+
if(mRasterLayer->getBlueBandName() != tr(QSTRING_NOT_SET))
11471148
{
11481149
mRasterLayer->setMinimumValue(cboBlue->currentText(), leBlueMin->text().toDouble(), false);
11491150
mRasterLayer->setMaximumValue(cboBlue->currentText(), leBlueMax->text().toDouble());
@@ -1167,7 +1168,7 @@ void QgsRasterLayerProperties::apply()
11671168
//Set min max based on user defined values if all are set and stdDev is 0.0
11681169
if(rbtnSingleBandMinMax->isEnabled() && rbtnSingleBandMinMax->isChecked() && validUserDefinedMinMax())
11691170
{
1170-
if(mRasterLayer->getGrayBandName() != tr(QgsRasterLayer::QSTRING_NOT_SET))
1171+
if(mRasterLayer->getGrayBandName() != tr(QSTRING_NOT_SET))
11711172
{
11721173
mRasterLayer->setMinimumValue(cboGray->currentText(), leGrayMin->text().toDouble(), false);
11731174
mRasterLayer->setMaximumValue(cboGray->currentText(), leGrayMax->text().toDouble());
@@ -1485,17 +1486,17 @@ void QgsRasterLayerProperties::apply()
14851486

14861487
if(rbtnThreeBandMinMax->isEnabled())
14871488
{
1488-
if(mRasterLayer->getRedBandName() != tr(QgsRasterLayer::QSTRING_NOT_SET))
1489+
if(mRasterLayer->getRedBandName() != tr(QSTRING_NOT_SET))
14891490
{
14901491
leRedMin->setText(QString::number(mRasterLayer->getMinimumValue(mRasterLayer->getRedBandName())));
14911492
leRedMax->setText(QString::number(mRasterLayer->getMaximumValue(mRasterLayer->getRedBandName())));
14921493
}
1493-
if(mRasterLayer->getGreenBandName() != tr(QgsRasterLayer::QSTRING_NOT_SET))
1494+
if(mRasterLayer->getGreenBandName() != tr(QSTRING_NOT_SET))
14941495
{
14951496
leGreenMin->setText(QString::number(mRasterLayer->getMinimumValue(mRasterLayer->getGreenBandName())));
14961497
leGreenMax->setText(QString::number(mRasterLayer->getMaximumValue(mRasterLayer->getGreenBandName())));
14971498
}
1498-
if(mRasterLayer->getBlueBandName() != tr(QgsRasterLayer::QSTRING_NOT_SET))
1499+
if(mRasterLayer->getBlueBandName() != tr(QSTRING_NOT_SET))
14991500
{
15001501
leBlueMin->setText(QString::number(mRasterLayer->getMinimumValue(mRasterLayer->getBlueBandName())));
15011502
leBlueMax->setText(QString::number(mRasterLayer->getMaximumValue(mRasterLayer->getBlueBandName())));
@@ -1511,7 +1512,7 @@ void QgsRasterLayerProperties::apply()
15111512

15121513
if(rbtnSingleBandMinMax->isEnabled())
15131514
{
1514-
if(mRasterLayer->getGrayBandName() != tr(QgsRasterLayer::QSTRING_NOT_SET))
1515+
if(mRasterLayer->getGrayBandName() != tr(QSTRING_NOT_SET))
15151516
{
15161517
leGrayMin->setText(QString::number(mRasterLayer->getMinimumValue(mRasterLayer->getGrayBandName())));
15171518
leGrayMax->setText(QString::number(mRasterLayer->getMaximumValue(mRasterLayer->getGrayBandName())));
@@ -1623,7 +1624,7 @@ void QgsRasterLayerProperties::on_buttonBuildPyramids_clicked()
16231624

16241625
void QgsRasterLayerProperties::on_cboBlue_currentIndexChanged(const QString& theText)
16251626
{
1626-
if(mRasterLayerIsGdal && tr(QgsRasterLayer::QSTRING_NOT_SET) != theText)
1627+
if(mRasterLayerIsGdal && tr(QSTRING_NOT_SET) != theText)
16271628
{
16281629
leBlueMin->setText(QString::number(mRasterLayer->getMinimumValue(theText)));
16291630
leBlueMax->setText(QString::number(mRasterLayer->getMaximumValue(theText)));
@@ -1632,7 +1633,7 @@ void QgsRasterLayerProperties::on_cboBlue_currentIndexChanged(const QString& the
16321633

16331634
void QgsRasterLayerProperties::on_cboGray_currentIndexChanged(const QString& theText)
16341635
{
1635-
if(mRasterLayerIsGdal && tr(QgsRasterLayer::QSTRING_NOT_SET) != theText)
1636+
if(mRasterLayerIsGdal && tr(QSTRING_NOT_SET) != theText)
16361637
{
16371638
leGrayMin->setText(QString::number(mRasterLayer->getMinimumValue(theText)));
16381639
leGrayMax->setText(QString::number(mRasterLayer->getMaximumValue(theText)));
@@ -1641,7 +1642,7 @@ void QgsRasterLayerProperties::on_cboGray_currentIndexChanged(const QString& the
16411642

16421643
void QgsRasterLayerProperties::on_cboGreen_currentIndexChanged(const QString& theText)
16431644
{
1644-
if(mRasterLayerIsGdal && tr(QgsRasterLayer::QSTRING_NOT_SET) != theText)
1645+
if(mRasterLayerIsGdal && tr(QSTRING_NOT_SET) != theText)
16451646
{
16461647
leGreenMin->setText(QString::number(mRasterLayer->getMinimumValue(theText)));
16471648
leGreenMax->setText(QString::number(mRasterLayer->getMaximumValue(theText)));
@@ -1650,7 +1651,7 @@ void QgsRasterLayerProperties::on_cboGreen_currentIndexChanged(const QString& th
16501651

16511652
void QgsRasterLayerProperties::on_cboRed_currentIndexChanged(const QString& theText)
16521653
{
1653-
if(mRasterLayerIsGdal && tr(QgsRasterLayer::QSTRING_NOT_SET) != theText)
1654+
if(mRasterLayerIsGdal && tr(QSTRING_NOT_SET) != theText)
16541655
{
16551656
leRedMin->setText(QString::number(mRasterLayer->getMinimumValue(theText)));
16561657
leRedMax->setText(QString::number(mRasterLayer->getMaximumValue(theText)));
@@ -1743,10 +1744,10 @@ void QgsRasterLayerProperties::on_cboxColorMap_currentIndexChanged(const QString
17431744

17441745
void QgsRasterLayerProperties::on_cboxTransparencyLayer_currentIndexChanged(const QString& theText)
17451746
{
1746-
if(theText == tr(QgsRasterLayer::QSTRING_NOT_SET))
1747+
if(theText == tr(QSTRING_NOT_SET))
17471748
{
17481749
cboxTransparencyBand->clear();
1749-
cboxTransparencyBand->addItem(tr(QgsRasterLayer::QSTRING_NOT_SET));
1750+
cboxTransparencyBand->addItem(tr(QSTRING_NOT_SET));
17501751
}
17511752
else
17521753
{
@@ -1759,7 +1760,7 @@ void QgsRasterLayerProperties::on_cboxTransparencyLayer_currentIndexChanged(cons
17591760
QgsRasterLayer* myRasterLayer = (QgsRasterLayer*)it.value();
17601761
int myBandCount = myRasterLayer->getBandCount();
17611762
cboxTransparencyBand->clear();
1762-
cboxTransparencyBand->addItem(tr(QgsRasterLayer::QSTRING_NOT_SET));
1763+
cboxTransparencyBand->addItem(tr(QSTRING_NOT_SET));
17631764
for(int bandRunner = 1; bandRunner <= myBandCount; bandRunner++)
17641765
{
17651766
cboxTransparencyBand->addItem(myRasterLayer->getRasterBandName(bandRunner));
@@ -2459,7 +2460,7 @@ void QgsRasterLayerProperties::on_rbtnSingleBand_toggled(bool theState)
24592460
// Populate transparency table with single value transparency pixels
24602461
populateTransparencyTable();
24612462
// If no band is selected but there are multiple bands, selcet the first as the default
2462-
if(cboGray->currentText() == tr(QgsRasterLayer::QSTRING_NOT_SET) && 1 < cboGray->count())
2463+
if(cboGray->currentText() == tr(QSTRING_NOT_SET) && 1 < cboGray->count())
24632464
{
24642465
cboGray->setCurrentIndex(0);
24652466
}

src/app/qgsrasterlayerproperties.h

+3
Original file line numberDiff line numberDiff line change
@@ -120,6 +120,9 @@ class QgsRasterLayerProperties : public QDialog, private Ui::QgsRasterLayerPrope
120120

121121

122122
private:
123+
/** \brief A constant that signals property not used */
124+
static const QString QSTRING_NOT_SET;
125+
123126
/** \brief Pointer to the raster layer that this property dilog changes the behaviour of. */
124127
QgsRasterLayer * mRasterLayer;
125128

src/core/raster/qgsrasterlayer.cpp

+2-1
Original file line numberDiff line numberDiff line change
@@ -106,7 +106,7 @@ static const char *const mSupportedRasterFormats[] =
106106

107107

108108
// Constant that signals property not used.
109-
const QString QgsRasterLayer::QSTRING_NOT_SET = QString("Not Set");
109+
const QString QgsRasterLayer::QSTRING_NOT_SET = "Not Set";
110110

111111
/**
112112
Builds the list of file filter strings to later be used by
@@ -387,6 +387,7 @@ QgsRasterLayer::QgsRasterLayer(
387387
mStandardDeviations(0),
388388
mDataProvider(0)
389389
{
390+
390391
mUserDefinedRGBMinMaxFlag = false; //defaults needed to bypass stretch
391392
mUserDefinedGrayMinMaxFlag = false;
392393

src/core/raster/qgsrasterlayer.h

+3-3
Original file line numberDiff line numberDiff line change
@@ -180,9 +180,6 @@ class CORE_EXPORT QgsRasterLayer : public QgsMapLayer
180180
{
181181
Q_OBJECT
182182
public:
183-
// Static constant defining flag for XML
184-
static const QString QSTRING_NOT_SET;
185-
186183
//
187184
// Static methods:
188185
//
@@ -1006,6 +1003,9 @@ public slots:
10061003
//
10071004
// Private member vars
10081005
//
1006+
/** \brief Static constant defining flag for XML and a constant that signals property not used */
1007+
static const QString QSTRING_NOT_SET;
1008+
10091009
/** \brief Raster width. */
10101010
int mRasterXDim;
10111011
/** \brief Raster Height. */

0 commit comments

Comments
 (0)