Skip to content

Commit 378a55e

Browse files
committedMay 15, 2013
removed raster layer drawing style getter/setter
1 parent d64ee56 commit 378a55e

File tree

7 files changed

+53
-67
lines changed

7 files changed

+53
-67
lines changed
 

‎python/core/raster/qgsrasterlayer.sip

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -113,7 +113,7 @@ class QgsRasterLayer : QgsMapLayer
113113
void setDataProvider( const QString & provider );
114114

115115
/** \brief Accessor for drawing style */
116-
DrawingStyle drawingStyle();
116+
//DrawingStyle drawingStyle();
117117

118118
/** \brief Accessor that returns the width of the (unclipped) raster */
119119
int width();
@@ -125,7 +125,7 @@ class QgsRasterLayer : QgsMapLayer
125125
LayerType rasterType();
126126

127127
/** \brief Mutator for drawing style */
128-
void setDrawingStyle( const DrawingStyle & theDrawingStyle );
128+
//void setDrawingStyle( const DrawingStyle & theDrawingStyle );
129129

130130
/**Set raster renderer. Takes ownership of the renderer object*/
131131
void setRenderer( QgsRasterRenderer* theRenderer /Transfer/ );

‎src/app/qgsrasterlayerproperties.cpp

Lines changed: 10 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@
3232
#include "qgsmaprenderer.h"
3333
#include "qgsmaptoolemitpoint.h"
3434
#include "qgsmaptopixel.h"
35+
#include "qgsmultibandcolorrenderer.h"
3536
#include "qgsmultibandcolorrendererwidget.h"
3637
#include "qgspalettedrendererwidget.h"
3738
#include "qgsproject.h"
@@ -1206,7 +1207,7 @@ void QgsRasterLayerProperties::on_pbnExportTransparentPixelValues_clicked()
12061207
{
12071208
QTextStream myOutputStream( &myOutputFile );
12081209
myOutputStream << "# " << tr( "QGIS Generated Transparent Pixel Value Export File" ) << "\n";
1209-
if ( /*rbtnThreeBand->isChecked() &&*/ QgsRasterLayer::MultiBandColor == mRasterLayer->drawingStyle() )
1210+
if ( rasterIsMultiBandColor() )
12101211
{
12111212
myOutputStream << "#\n#\n# " << tr( "Red" ) << "\t" << tr( "Green" ) << "\t" << tr( "Blue" ) << "\t" << tr( "Percent Transparent" );
12121213
for ( int myTableRunner = 0; myTableRunner < tableTransparency->rowCount(); myTableRunner++ )
@@ -1219,17 +1220,7 @@ void QgsRasterLayerProperties::on_pbnExportTransparentPixelValues_clicked()
12191220
}
12201221
else
12211222
{
1222-
if ( QgsRasterLayer::PalettedColor != mRasterLayer->drawingStyle() &&
1223-
QgsRasterLayer::PalettedSingleBandGray != mRasterLayer->drawingStyle() &&
1224-
QgsRasterLayer::PalettedSingleBandPseudoColor != mRasterLayer->drawingStyle() &&
1225-
QgsRasterLayer::PalettedMultiBandColor != mRasterLayer->drawingStyle() )
1226-
{
1227-
myOutputStream << "#\n#\n# " << tr( "Gray" ) << "\t" << tr( "Percent Transparent" );
1228-
}
1229-
else
1230-
{
1231-
myOutputStream << "#\n#\n# " << tr( "Indexed Value" ) << "\t" << tr( "Percent Transparent" );
1232-
}
1223+
myOutputStream << "#\n#\n# " << tr( "Value" ) << "\t" << tr( "Percent Transparent" );
12331224

12341225
for ( int myTableRunner = 0; myTableRunner < tableTransparency->rowCount(); myTableRunner++ )
12351226
{
@@ -1331,7 +1322,7 @@ void QgsRasterLayerProperties::on_pbnImportTransparentPixelValues_clicked()
13311322
{
13321323
QTextStream myInputStream( &myInputFile );
13331324
QString myInputLine;
1334-
if ( /*rbtnThreeBand->isChecked() &&*/ QgsRasterLayer::MultiBandColor == mRasterLayer->drawingStyle() )
1325+
if ( rasterIsMultiBandColor() )
13351326
{
13361327
for ( int myTableRunner = tableTransparency->rowCount() - 1; myTableRunner >= 0; myTableRunner-- )
13371328
{
@@ -1714,3 +1705,9 @@ void QgsRasterLayerProperties::on_mResetColorRenderingBtn_clicked()
17141705
mColorizeCheck->setChecked( false );
17151706
sliderColorizeStrength->setValue( 100 );
17161707
}
1708+
1709+
bool QgsRasterLayerProperties::rasterIsMultiBandColor()
1710+
{
1711+
return mRasterLayer && dynamic_cast<QgsMultiBandColorRenderer*>( mRasterLayer->renderer() ) != 0;
1712+
}
1713+

‎src/app/qgsrasterlayerproperties.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -155,6 +155,8 @@ class QgsRasterLayerProperties : public QgsOptionsDialogBase, private Ui::QgsRas
155155

156156
QgsRasterRendererWidget* mRendererWidget;
157157

158+
bool rasterIsMultiBandColor();
159+
158160
void setupTransparencyTable( int nBands );
159161

160162
/** \brief Clear the current transparency table and populate the table with the correct types for current drawing mode and data type*/

‎src/core/raster/qgsrasterlayer.cpp

Lines changed: 28 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -788,7 +788,7 @@ void QgsRasterLayer::init()
788788
{
789789
mRasterType = QgsRasterLayer::GrayOrUndefined;
790790

791-
setDrawingStyle( QgsRasterLayer::UndefinedDrawingStyle );
791+
setRendererForDrawingStyle( QgsRasterLayer::UndefinedDrawingStyle );
792792

793793
//Initialize the last view port structure, should really be a class
794794
mLastViewPort.mWidth = 0;
@@ -895,16 +895,16 @@ void QgsRasterLayer::setDataProvider( QString const & provider )
895895
QgsDebugMsg( "mRasterType = " + QString::number( mRasterType ) );
896896
if ( mRasterType == ColorLayer )
897897
{
898-
QgsDebugMsg( "Setting mDrawingStyle to SingleBandColorDataStyle " + QString::number( SingleBandColorDataStyle ) );
899-
setDrawingStyle( SingleBandColorDataStyle );
898+
QgsDebugMsg( "Setting drawing style to SingleBandColorDataStyle " + QString::number( SingleBandColorDataStyle ) );
899+
setRendererForDrawingStyle( SingleBandColorDataStyle );
900900
}
901901
else if ( mRasterType == Palette && mDataProvider->colorInterpretation( 1 ) == QgsRaster::PaletteIndex )
902902
{
903-
setDrawingStyle( PalettedColor ); //sensible default
903+
setRendererForDrawingStyle( PalettedColor ); //sensible default
904904
}
905905
else if ( mRasterType == Palette && mDataProvider->colorInterpretation( 1 ) == QgsRaster::ContinuousPalette )
906906
{
907-
setDrawingStyle( SingleBandPseudoColor );
907+
setRendererForDrawingStyle( SingleBandPseudoColor );
908908
// Load color table
909909
QList<QgsColorRampShader::ColorRampItem> colorTable = mDataProvider->colorTable( 1 );
910910
QgsSingleBandPseudoColorRenderer* r = dynamic_cast<QgsSingleBandPseudoColorRenderer*>( renderer() );
@@ -921,11 +921,11 @@ void QgsRasterLayer::setDataProvider( QString const & provider )
921921
}
922922
else if ( mRasterType == Multiband )
923923
{
924-
setDrawingStyle( MultiBandColor ); //sensible default
924+
setRendererForDrawingStyle( MultiBandColor ); //sensible default
925925
}
926926
else //GrayOrUndefined
927927
{
928-
setDrawingStyle( SingleBandGray ); //sensible default
928+
setRendererForDrawingStyle( SingleBandGray ); //sensible default
929929
}
930930

931931
// Auto set alpha band
@@ -1092,19 +1092,20 @@ void QgsRasterLayer::setContrastEnhancement( QgsContrastEnhancement::ContrastEnh
10921092

10931093
void QgsRasterLayer::setDefaultContrastEnhancement()
10941094
{
1095-
QgsDebugMsg( QString( "mDrawingStyle = %1" ).arg( mDrawingStyle ) );
1095+
QgsDebugMsg( "Entered" );
10961096

10971097
QSettings mySettings;
10981098

10991099
QString myKey;
11001100
QString myDefault;
11011101

1102-
if ( mDrawingStyle == SingleBandGray || mDrawingStyle == MultiBandSingleBandGray )
1102+
// TODO: we should not test renderer class here, move it somehow to renderers
1103+
if ( dynamic_cast<QgsSingleBandGrayRenderer*>( renderer() ) )
11031104
{
11041105
myKey = "singleBand";
11051106
myDefault = "StretchToMinimumMaximum";
11061107
}
1107-
else if ( mDrawingStyle == MultiBandColor )
1108+
else if ( dynamic_cast<QgsMultiBandColorRenderer*>( renderer() ) )
11081109
{
11091110
if ( QgsRasterBlock::typeSize( dataProvider()->srcDataType( 1 ) ) == 1 )
11101111
{
@@ -1148,52 +1149,54 @@ void QgsRasterLayer::setDefaultContrastEnhancement()
11481149
void QgsRasterLayer::setDrawingStyle( QString const & theDrawingStyleQString )
11491150
{
11501151
QgsDebugMsg( "DrawingStyle = " + theDrawingStyleQString );
1152+
DrawingStyle drawingStyle;
11511153
if ( theDrawingStyleQString == "SingleBandGray" )//no need to tr() this its not shown in ui
11521154
{
1153-
mDrawingStyle = SingleBandGray;
1155+
drawingStyle = SingleBandGray;
11541156
}
11551157
else if ( theDrawingStyleQString == "SingleBandPseudoColor" )//no need to tr() this its not shown in ui
11561158
{
1157-
mDrawingStyle = SingleBandPseudoColor;
1159+
drawingStyle = SingleBandPseudoColor;
11581160
}
11591161
else if ( theDrawingStyleQString == "PalettedColor" )//no need to tr() this its not shown in ui
11601162
{
1161-
mDrawingStyle = PalettedColor;
1163+
drawingStyle = PalettedColor;
11621164
}
11631165
else if ( theDrawingStyleQString == "PalettedSingleBandGray" )//no need to tr() this its not shown in ui
11641166
{
1165-
mDrawingStyle = PalettedSingleBandGray;
1167+
drawingStyle = PalettedSingleBandGray;
11661168
}
11671169
else if ( theDrawingStyleQString == "PalettedSingleBandPseudoColor" )//no need to tr() this its not shown in ui
11681170
{
1169-
mDrawingStyle = PalettedSingleBandPseudoColor;
1171+
drawingStyle = PalettedSingleBandPseudoColor;
11701172
}
11711173
else if ( theDrawingStyleQString == "PalettedMultiBandColor" )//no need to tr() this its not shown in ui
11721174
{
1173-
mDrawingStyle = PalettedMultiBandColor;
1175+
drawingStyle = PalettedMultiBandColor;
11741176
}
11751177
else if ( theDrawingStyleQString == "MultiBandSingleBandGray" )//no need to tr() this its not shown in ui
11761178
{
1177-
mDrawingStyle = MultiBandSingleBandGray;
1179+
drawingStyle = MultiBandSingleBandGray;
11781180
}
11791181
else if ( theDrawingStyleQString == "MultiBandSingleBandPseudoColor" )//no need to tr() this its not shown in ui
11801182
{
1181-
mDrawingStyle = MultiBandSingleBandPseudoColor;
1183+
drawingStyle = MultiBandSingleBandPseudoColor;
11821184
}
11831185
else if ( theDrawingStyleQString == "MultiBandColor" )//no need to tr() this its not shown in ui
11841186
{
1185-
mDrawingStyle = MultiBandColor;
1187+
drawingStyle = MultiBandColor;
11861188
}
11871189
else if ( theDrawingStyleQString == "SingleBandColorDataStyle" )//no need to tr() this its not shown in ui
11881190
{
1189-
QgsDebugMsg( "Setting mDrawingStyle to SingleBandColorDataStyle " + QString::number( SingleBandColorDataStyle ) );
1190-
mDrawingStyle = SingleBandColorDataStyle;
1191-
QgsDebugMsg( "Setted mDrawingStyle to " + QString::number( mDrawingStyle ) );
1191+
QgsDebugMsg( "Setting drawingStyle to SingleBandColorDataStyle " + QString::number( SingleBandColorDataStyle ) );
1192+
drawingStyle = SingleBandColorDataStyle;
1193+
QgsDebugMsg( "Setted drawingStyle to " + QString::number( drawingStyle ) );
11921194
}
11931195
else
11941196
{
1195-
mDrawingStyle = UndefinedDrawingStyle;
1197+
drawingStyle = UndefinedDrawingStyle;
11961198
}
1199+
setRendererForDrawingStyle( drawingStyle );
11971200
}
11981201

11991202
void QgsRasterLayer::setLayerOrder( QStringList const & layers )
@@ -1413,24 +1416,6 @@ bool QgsRasterLayer::readSymbology( const QDomNode& layer_node, QString& errorMe
14131416
14141417
Raster layer project file XML of form:
14151418
1416-
\verbatim
1417-
<maplayer type="raster" visible="1" showInOverviewFlag="1">
1418-
<layername>Wynoochee_dem</layername>
1419-
<datasource>/home/mcoletti/mnt/MCOLETTIF8F9/c/Toolkit_Course/Answers/Training_Data/wynoochee_dem.img</datasource>
1420-
<zorder>0</zorder>
1421-
<transparencyLevelInt>255</transparencyLevelInt>
1422-
<rasterproperties>
1423-
<mDrawingStyle>SingleBandGray</mDrawingStyle>
1424-
<mInvertColor boolean="false"/>
1425-
<mStandardDeviations>0</mStandardDeviations>
1426-
<mRedBandName>Not Set</mRedBandName>
1427-
<mGreenBandName>Not Set</mGreenBandName>
1428-
<mBlueBandName>Not Set</mBlueBandName>
1429-
<mGrayBandName>Undefined</mGrayBandName>
1430-
</rasterproperties>
1431-
</maplayer>
1432-
\endverbatim
1433-
14341419
@note Called by QgsMapLayer::readXML().
14351420
*/
14361421
bool QgsRasterLayer::readXml( const QDomNode& layer_node )
@@ -1505,11 +1490,9 @@ bool QgsRasterLayer::readXml( const QDomNode& layer_node )
15051490
bool res = readSymbology( layer_node, theError );
15061491

15071492
// old wms settings we need to correct
1508-
if ( res &&
1509-
mProviderKey == "wms" &&
1510-
mDrawingStyle == MultiBandColor )
1493+
if ( res && mProviderKey == "wms" )
15111494
{
1512-
mDrawingStyle = SingleBandColorDataStyle;
1495+
setRendererForDrawingStyle( SingleBandColorDataStyle );
15131496
}
15141497

15151498
// Check timestamp

‎src/core/raster/qgsrasterlayer.h

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -260,14 +260,14 @@ class CORE_EXPORT QgsRasterLayer : public QgsMapLayer
260260
/** [ data provider interface ] Set the data provider */
261261
void setDataProvider( const QString & provider );
262262

263-
/** \brief Accessor for drawing style */
264-
DrawingStyle drawingStyle() { return mDrawingStyle; }
265-
266263
/** \brief Accessor for raster layer type (which is a read only property) */
267264
LayerType rasterType() { return mRasterType; }
268265

266+
/** \brief Accessor for drawing style */
267+
//DrawingStyle drawingStyle() { return mDrawingStyle; }
268+
269269
/** \brief Mutator for drawing style */
270-
void setDrawingStyle( const DrawingStyle & theDrawingStyle ) { mDrawingStyle = theDrawingStyle; setRendererForDrawingStyle( theDrawingStyle ); }
270+
//void setDrawingStyle( const DrawingStyle & theDrawingStyle ) { mDrawingStyle = theDrawingStyle; setRendererForDrawingStyle( theDrawingStyle ); }
271271

272272
/**Set raster renderer. Takes ownership of the renderer object*/
273273
void setRenderer( QgsRasterRenderer* theRenderer );
@@ -439,7 +439,7 @@ class CORE_EXPORT QgsRasterLayer : public QgsMapLayer
439439
/** Pointer to data provider */
440440
QgsRasterDataProvider* mDataProvider;
441441

442-
DrawingStyle mDrawingStyle;
442+
//DrawingStyle mDrawingStyle;
443443

444444
/** [ data provider interface ]The error message associated with the last error */
445445
QString mError;

‎src/mapserver/qgsmslayerbuilder.cpp

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717

1818
#include "qgsmslayerbuilder.h"
1919
#include "qgsrasterlayer.h"
20+
#include "qgsrasterrendererregistry.h"
2021

2122
#include <QDir>
2223
#include <QFileInfo>
@@ -92,7 +93,8 @@ void QgsMSLayerBuilder::clearRasterSymbology( QgsRasterLayer* rl ) const
9293
{
9394
if ( rl->rasterType() == QgsRasterLayer::GrayOrUndefined )
9495
{
95-
rl->setDrawingStyle( QgsRasterLayer::SingleBandPseudoColor );
96+
//rl->setDrawingStyle( QgsRasterLayer::SingleBandPseudoColor );
97+
rl->setRenderer( QgsRasterRendererRegistry::instance()->defaultRendererForDrawingStyle( QgsRasterLayer::SingleBandPseudoColor, rl->dataProvider() ) );
9698
}
9799
}
98100
}

‎src/mapserver/qgssldparser.cpp

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@
3131
#include "qgsmslayercache.h"
3232
#include "qgsmsutils.h"
3333
#include "qgsrasterlayer.h"
34+
#include "qgsrasterrendererregistry.h"
3435
#include "qgscolorrampshader.h"
3536
#include "qgscoordinatereferencesystem.h"
3637
#include "qgslabelattributes.h"
@@ -1496,7 +1497,8 @@ void QgsSLDParser::clearRasterSymbology( QgsRasterLayer* rl ) const
14961497
{
14971498
if ( rl->rasterType() == QgsRasterLayer::GrayOrUndefined )
14981499
{
1499-
rl->setDrawingStyle( QgsRasterLayer::SingleBandPseudoColor );
1500+
//rl->setDrawingStyle( QgsRasterLayer::SingleBandPseudoColor );
1501+
rl->setRenderer( QgsRasterRendererRegistry::instance()->defaultRendererForDrawingStyle( QgsRasterLayer::SingleBandPseudoColor, rl->dataProvider() ) );
15001502
}
15011503
}
15021504
}

0 commit comments

Comments
 (0)
Please sign in to comment.