Skip to content

Commit 87bdff9

Browse files
committed
sort QgsRasterRendererRegistry entity names in a logical order, for use in raster properties dialog
1 parent dbce353 commit 87bdff9

3 files changed

Lines changed: 14 additions & 8 deletions

File tree

‎src/app/qgsrasterlayerproperties.cpp‎

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -274,11 +274,13 @@ QgsRasterLayerProperties::QgsRasterLayerProperties( QgsMapLayer* lyr, QgsMapCanv
274274
QgsRasterRendererRegistry::instance()->insertWidgetFunction( "singlebandgray", QgsSingleBandGrayRendererWidget::create );
275275

276276
//fill available renderers into combo box
277-
QList< QgsRasterRendererRegistryEntry > rendererEntries = QgsRasterRendererRegistry::instance()->entries();
278-
QList< QgsRasterRendererRegistryEntry >::const_iterator rendererIt = rendererEntries.constBegin();
279-
for ( ; rendererIt != rendererEntries.constEnd(); ++rendererIt )
277+
QgsRasterRendererRegistryEntry entry;
278+
foreach( QString name, QgsRasterRendererRegistry::instance()->renderersList() )
280279
{
281-
mRenderTypeComboBox->addItem( rendererIt->visibleName, rendererIt->name );
280+
if ( QgsRasterRendererRegistry::instance()->rendererData( name, entry ) )
281+
{
282+
mRenderTypeComboBox->addItem( entry.visibleName, entry.name );
283+
}
282284
}
283285

284286
if ( renderer )

‎src/core/raster/qgsrasterrendererregistry.cpp‎

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -48,13 +48,14 @@ QgsRasterRendererRegistry* QgsRasterRendererRegistry::instance()
4848

4949
QgsRasterRendererRegistry::QgsRasterRendererRegistry()
5050
{
51-
insert( QgsRasterRendererRegistryEntry( "paletted", QObject::tr( "Paletted" ), QgsPalettedRasterRenderer::create, 0 ) );
51+
// insert items in a particular order, which is returned in renderersList()
5252
insert( QgsRasterRendererRegistryEntry( "multibandcolor", QObject::tr( "Multiband color" ),
5353
QgsMultiBandColorRenderer::create, 0 ) );
54-
insert( QgsRasterRendererRegistryEntry( "singlebandpseudocolor", QObject::tr( "Singleband pseudocolor" ),
55-
QgsSingleBandPseudoColorRenderer::create, 0 ) );
54+
insert( QgsRasterRendererRegistryEntry( "paletted", QObject::tr( "Paletted" ), QgsPalettedRasterRenderer::create, 0 ) );
5655
insert( QgsRasterRendererRegistryEntry( "singlebandgray", QObject::tr( "Singleband gray" ),
5756
QgsSingleBandGrayRenderer::create, 0 ) );
57+
insert( QgsRasterRendererRegistryEntry( "singlebandpseudocolor", QObject::tr( "Singleband pseudocolor" ),
58+
QgsSingleBandPseudoColorRenderer::create, 0 ) );
5859
insert( QgsRasterRendererRegistryEntry( "singlebandcolordata", QObject::tr( "Singleband color data" ),
5960
QgsSingleBandColorDataRenderer::create, 0 ) );
6061
}
@@ -66,6 +67,7 @@ QgsRasterRendererRegistry::~QgsRasterRendererRegistry()
6667
void QgsRasterRendererRegistry::insert( QgsRasterRendererRegistryEntry entry )
6768
{
6869
mEntries.insert( entry.name, entry );
70+
mSortedEntries.append( entry.name );
6971
}
7072

7173
void QgsRasterRendererRegistry::insertWidgetFunction( const QString& rendererName, QgsRasterRendererWidgetCreateFunc func )
@@ -90,7 +92,8 @@ bool QgsRasterRendererRegistry::rendererData( const QString& rendererName, QgsRa
9092

9193
QStringList QgsRasterRendererRegistry::renderersList() const
9294
{
93-
return QStringList( mEntries.keys() );
95+
// return QStringList( mEntries.keys() );
96+
return mSortedEntries;
9497
}
9598

9699
QList< QgsRasterRendererRegistryEntry > QgsRasterRendererRegistry::entries() const

‎src/core/raster/qgsrasterrendererregistry.h‎

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -64,6 +64,7 @@ class CORE_EXPORT QgsRasterRendererRegistry
6464
private:
6565
static QgsRasterRendererRegistry* mInstance;
6666
QHash< QString, QgsRasterRendererRegistryEntry > mEntries;
67+
QStringList mSortedEntries;
6768

6869
//read min/max values from
6970
bool minMaxValuesForBand( int band, QgsRasterDataProvider* provider, double& minValue, double& maxValue ) const;

0 commit comments

Comments
 (0)