Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
Add 0 pointer for renderer widget in case of singleband data
  • Loading branch information
mhugent committed Mar 24, 2012
1 parent ee06512 commit e3ce033
Show file tree
Hide file tree
Showing 2 changed files with 12 additions and 6 deletions.
15 changes: 9 additions & 6 deletions src/app/qgsrasterlayerproperties.cpp
Expand Up @@ -97,11 +97,6 @@ QgsRasterLayerProperties::QgsRasterLayerProperties( QgsMapLayer* lyr, QgsMapCanv
leNoDataValue->setValidator( new QDoubleValidator( -std::numeric_limits<float>::max(), std::numeric_limits<float>::max(), 1000, this ) );

// build GUI components

//
// Set up the combo boxes that contain band lists using the qstring list generated above
//

QIcon myPyramidPixmap( QgisApp::getThemeIcon( "/mIconPyramid.png" ) );
QIcon myNoPyramidPixmap( QgisApp::getThemeIcon( "/mIconNoPyramid.png" ) );

Expand Down Expand Up @@ -554,7 +549,10 @@ void QgsRasterLayerProperties::apply()

//set renderer from widget
QgsRasterRendererWidget* rendererWidget = dynamic_cast<QgsRasterRendererWidget*>( mRendererStackedWidget->currentWidget() );
mRasterLayer->setRenderer( rendererWidget->renderer() );
if ( rendererWidget )
{
mRasterLayer->setRenderer( rendererWidget->renderer() );
}

//resampling
QgsRasterRenderer* rasterRenderer = mRasterLayer->renderer();
Expand Down Expand Up @@ -917,6 +915,11 @@ void QgsRasterLayerProperties::on_mRenderTypeComboBox_currentIndexChanged( int i
mRendererWidget = ( *rendererEntry.widgetCreateFunction )( mRasterLayer );
mRendererStackedWidget->addWidget( mRendererWidget );
}
else //single band color data renderer e.g. has no widget
{
delete mRendererWidget;
mRendererWidget = 0;
}
}
}

Expand Down
3 changes: 3 additions & 0 deletions src/core/raster/qgsrasterrendererregistry.cpp
Expand Up @@ -18,6 +18,7 @@
#include "qgsrasterrendererregistry.h"
#include "qgsmultibandcolorrenderer.h"
#include "qgspalettedrasterrenderer.h"
#include "qgssinglebandcolordatarenderer.h"
#include "qgssinglebandgrayrenderer.h"
#include "qgssinglebandpseudocolorrenderer.h"

Expand Down Expand Up @@ -53,6 +54,8 @@ QgsRasterRendererRegistry::QgsRasterRendererRegistry()
QgsSingleBandPseudoColorRenderer::create, 0 ) );
insert( QgsRasterRendererRegistryEntry( "singlebandgray", QObject::tr( "Singleband gray" ),
QgsSingleBandGrayRenderer::create, 0 ) );
insert( QgsRasterRendererRegistryEntry( "singlebandcolordata", QObject::tr( "Singleband color data" ),
QgsSingleBandColorDataRenderer::create, 0 ) );
}

QgsRasterRendererRegistry::~QgsRasterRendererRegistry()
Expand Down

0 comments on commit e3ce033

Please sign in to comment.