Skip to content

Commit a14beda

Browse files
committed
Add type name to renderers. Restore the corresponding renderer widget in raster properties
1 parent 9b8423e commit a14beda

12 files changed

+340
-18
lines changed

src/app/qgsrasterlayerproperties.cpp

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -345,6 +345,15 @@ QgsRasterLayerProperties::QgsRasterLayerProperties( QgsMapLayer* lyr, QgsMapCanv
345345
{
346346
mRenderTypeComboBox->addItem( rendererIt->visibleName, rendererIt->name );
347347
}
348+
349+
if ( renderer )
350+
{
351+
int widgetIndex = mRenderTypeComboBox->findData( renderer->type() );
352+
if ( widgetIndex != -1 )
353+
{
354+
mRenderTypeComboBox->setCurrentIndex( widgetIndex );
355+
}
356+
}
348357
on_mRenderTypeComboBox_currentIndexChanged( mRenderTypeComboBox->currentIndex() );
349358
} // QgsRasterLayerProperties ctor
350359

src/core/raster/qgsmultibandcolorrenderer.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ QgsMultiBandColorRenderer::QgsMultiBandColorRenderer( QgsRasterDataProvider* pro
2626
QgsContrastEnhancement* redEnhancement,
2727
QgsContrastEnhancement* greenEnhancement,
2828
QgsContrastEnhancement* blueEnhancement ):
29-
QgsRasterRenderer( provider ), mRedBand( redBand ), mGreenBand( greenBand ), mBlueBand( blueBand ),
29+
QgsRasterRenderer( provider, "multibandcolor" ), mRedBand( redBand ), mGreenBand( greenBand ), mBlueBand( blueBand ),
3030
mRedContrastEnhancement( redEnhancement ), mGreenContrastEnhancement( greenEnhancement ), mBlueContrastEnhancement( blueEnhancement )
3131
{
3232
}

src/core/raster/qgspalettedrasterrenderer.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@
2323

2424
QgsPalettedRasterRenderer::QgsPalettedRasterRenderer( QgsRasterDataProvider* provider, int bandNumber,
2525
QColor* colorArray, int nColors ):
26-
QgsRasterRenderer( provider ), mBandNumber( bandNumber ), mColors( colorArray ), mNColors( nColors )
26+
QgsRasterRenderer( provider, "paletted" ), mBandNumber( bandNumber ), mColors( colorArray ), mNColors( nColors )
2727
{
2828
}
2929

src/core/raster/qgsrasterrenderer.cpp

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,8 +24,9 @@
2424
#include <QImage>
2525
#include <QPainter>
2626

27-
QgsRasterRenderer::QgsRasterRenderer( QgsRasterDataProvider* provider ): mProvider( provider ), mZoomedInResampler( 0 ), mZoomedOutResampler( 0 ),
28-
mOpacity( 1.0 ), mRasterTransparency( 0 ), mAlphaBand( -1 ), mInvertColor( false ), mMaxOversampling( 2.0 )
27+
QgsRasterRenderer::QgsRasterRenderer( QgsRasterDataProvider* provider, const QString& type ): mProvider( provider ),
28+
mType( type ), mZoomedInResampler( 0 ), mZoomedOutResampler( 0 ), mOpacity( 1.0 ), mRasterTransparency( 0 ),
29+
mAlphaBand( -1 ), mInvertColor( false ), mMaxOversampling( 2.0 )
2930
{
3031
}
3132

src/core/raster/qgsrasterrenderer.h

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,8 +43,10 @@ class QgsRasterRenderer
4343
QgsRasterProjector* prj; //raster projector (or 0 if no reprojection is done)
4444
};
4545

46-
QgsRasterRenderer( QgsRasterDataProvider* provider );
46+
QgsRasterRenderer( QgsRasterDataProvider* provider, const QString& type );
4747
virtual ~QgsRasterRenderer();
48+
49+
virtual QString type() const { return mType; }
4850
virtual void draw( QPainter* p, QgsRasterViewPort* viewPort, const QgsMapToPixel* theQgsMapToPixel ) = 0;
4951

5052
bool usesTransparency( QgsCoordinateReferenceSystem& srcSRS, QgsCoordinateReferenceSystem& dstSRS ) const;
@@ -97,6 +99,7 @@ class QgsRasterRenderer
9799

98100

99101
QgsRasterDataProvider* mProvider;
102+
QString mType;
100103
/**Resampler used if screen resolution is higher than raster resolution (zoomed in). 0 means no resampling (nearest neighbour)*/
101104
QgsRasterResampler* mZoomedInResampler;
102105
/**Resampler used if raster resolution is higher than raster resolution (zoomed out). 0 mean no resampling (nearest neighbour)*/

src/core/raster/qgssinglebandcolordatarenderer.cpp

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@
2020
#include <QImage>
2121

2222
QgsSingleBandColorDataRenderer::QgsSingleBandColorDataRenderer( QgsRasterDataProvider* provider, int band ):
23-
QgsRasterRenderer( provider ), mBand( band )
23+
QgsRasterRenderer( provider, "singlebandcolordata" ), mBand( band )
2424
{
2525

2626
}
@@ -29,6 +29,11 @@ QgsSingleBandColorDataRenderer::~QgsSingleBandColorDataRenderer()
2929
{
3030
}
3131

32+
QgsRasterRenderer* QgsSingleBandColorDataRenderer::create( const QDomElement& elem )
33+
{
34+
return 0;
35+
}
36+
3237
void QgsSingleBandColorDataRenderer::draw( QPainter* p, QgsRasterViewPort* viewPort, const QgsMapToPixel* theQgsMapToPixel )
3338
{
3439
if ( !p || !mProvider || !viewPort || !theQgsMapToPixel )

src/core/raster/qgssinglebandcolordatarenderer.h

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,12 +20,16 @@
2020

2121
#include "qgsrasterrenderer.h"
2222

23+
class QDomElement;
24+
2325
class QgsSingleBandColorDataRenderer: public QgsRasterRenderer
2426
{
2527
public:
2628
QgsSingleBandColorDataRenderer( QgsRasterDataProvider* provider, int band );
2729
~QgsSingleBandColorDataRenderer();
2830

31+
static QgsRasterRenderer* create( const QDomElement& elem );
32+
2933
virtual void draw( QPainter* p, QgsRasterViewPort* viewPort, const QgsMapToPixel* theQgsMapToPixel );
3034

3135
private:

src/core/raster/qgssinglebandgrayrenderer.cpp

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,14 +21,19 @@
2121
#include <QImage>
2222

2323
QgsSingleBandGrayRenderer::QgsSingleBandGrayRenderer( QgsRasterDataProvider* provider, int grayBand ):
24-
QgsRasterRenderer( provider ), mGrayBand( grayBand ), mContrastEnhancement( 0 )
24+
QgsRasterRenderer( provider, "singlebandgray" ), mGrayBand( grayBand ), mContrastEnhancement( 0 )
2525
{
2626
}
2727

2828
QgsSingleBandGrayRenderer::~QgsSingleBandGrayRenderer()
2929
{
3030
}
3131

32+
QgsRasterRenderer* QgsSingleBandGrayRenderer::create( const QDomElement& elem )
33+
{
34+
return 0;
35+
}
36+
3237
void QgsSingleBandGrayRenderer::draw( QPainter* p, QgsRasterViewPort* viewPort, const QgsMapToPixel* theQgsMapToPixel )
3338
{
3439
if ( !p || !mProvider || !viewPort || !theQgsMapToPixel )

src/core/raster/qgssinglebandgrayrenderer.h

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,13 +21,16 @@
2121
#include "qgsrasterrenderer.h"
2222

2323
class QgsContrastEnhancement;
24+
class QDomElement;
2425

2526
class QgsSingleBandGrayRenderer: public QgsRasterRenderer
2627
{
2728
public:
2829
QgsSingleBandGrayRenderer( QgsRasterDataProvider* provider, int grayBand );
2930
~QgsSingleBandGrayRenderer();
3031

32+
static QgsRasterRenderer* create( const QDomElement& elem );
33+
3134
virtual void draw( QPainter* p, QgsRasterViewPort* viewPort, const QgsMapToPixel* theQgsMapToPixel );
3235

3336
const QgsContrastEnhancement* contrastEnhancement() const { return mContrastEnhancement; }

src/core/raster/qgssinglebandpseudocolorrenderer.cpp

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,14 +22,19 @@
2222
#include <QImage>
2323

2424
QgsSingleBandPseudoColorRenderer::QgsSingleBandPseudoColorRenderer( QgsRasterDataProvider* provider, int band, QgsRasterShader* shader ):
25-
QgsRasterRenderer( provider ), mShader( shader ), mBand( band )
25+
QgsRasterRenderer( provider, "singlebandpseudocolor" ), mShader( shader ), mBand( band )
2626
{
2727
}
2828

2929
QgsSingleBandPseudoColorRenderer::~QgsSingleBandPseudoColorRenderer()
3030
{
3131
}
3232

33+
QgsRasterRenderer* QgsSingleBandPseudoColorRenderer::create( const QDomElement& elem )
34+
{
35+
return 0;
36+
}
37+
3338
void QgsSingleBandPseudoColorRenderer::draw( QPainter* p, QgsRasterViewPort* viewPort, const QgsMapToPixel* theQgsMapToPixel )
3439
{
3540
if ( !p || !mProvider || !viewPort || !theQgsMapToPixel || !mShader )

0 commit comments

Comments
 (0)