Skip to content

Commit 40ba110

Browse files
author
mhugent
committed
Make renderFeature method virtual. More safety checks in the renderer props dialog
git-svn-id: http://svn.osgeo.org/qgis/trunk@13135 c8812cc2-4d05-0410-92ff-de0c093fc19c
1 parent 1d056de commit 40ba110

File tree

2 files changed

+17
-11
lines changed

2 files changed

+17
-11
lines changed

src/core/symbology-ng/qgsrendererv2.h

+1-1
Original file line numberDiff line numberDiff line change
@@ -73,7 +73,7 @@ class CORE_EXPORT QgsFeatureRendererV2
7373

7474
virtual QgsFeatureRendererV2* clone() = 0;
7575

76-
void renderFeature( QgsFeature& feature, QgsRenderContext& context, int layer = -1, bool drawVertexMarker = false );
76+
virtual void renderFeature( QgsFeature& feature, QgsRenderContext& context, int layer = -1, bool drawVertexMarker = false );
7777

7878
//! for debugging
7979
virtual QString dump();

src/gui/symbology-ng/qgsrendererv2propertiesdialog.cpp

+16-10
Original file line numberDiff line numberDiff line change
@@ -18,31 +18,31 @@
1818
#include <QKeyEvent>
1919
#include <QMessageBox>
2020

21-
static bool _initRenderer(QString name, QgsRendererV2WidgetFunc f, QString iconName )
21+
static bool _initRenderer( QString name, QgsRendererV2WidgetFunc f, QString iconName )
2222
{
2323
QgsRendererV2Registry* reg = QgsRendererV2Registry::instance();
2424
QgsRendererV2AbstractMetadata* am = reg->rendererMetadata( name );
25-
if (am == NULL)
25+
if ( am == NULL )
2626
return false;
27-
QgsRendererV2Metadata* m = dynamic_cast<QgsRendererV2Metadata*>(am);
28-
if (m == NULL)
27+
QgsRendererV2Metadata* m = dynamic_cast<QgsRendererV2Metadata*>( am );
28+
if ( m == NULL )
2929
return false;
3030

31-
m->setWidgetFunction(f);
31+
m->setWidgetFunction( f );
3232

3333
QString iconPath = QgsApplication::defaultThemePath() + iconName;
3434
QPixmap pix;
3535
if ( pix.load( iconPath, "png" ) )
36-
m->setIcon(pix);
36+
m->setIcon( pix );
3737

38-
QgsDebugMsg("Set for "+name);
38+
QgsDebugMsg( "Set for " + name );
3939
return true;
4040
}
4141

4242
static void _initRendererWidgetFunctions()
4343
{
4444
static bool initialized = false;
45-
if (initialized)
45+
if ( initialized )
4646
return;
4747

4848
_initRenderer( "singleSymbol", QgsSingleSymbolRendererV2Widget::create, "rendererSingleSymbol.png" );
@@ -154,9 +154,15 @@ void QgsRendererV2PropertiesDialog::rendererChanged()
154154

155155
void QgsRendererV2PropertiesDialog::apply()
156156
{
157-
if ( mActiveWidget != NULL )
157+
if ( !mActiveWidget || !mLayer )
158158
{
159-
mLayer->setRendererV2( mActiveWidget->renderer()->clone() );
159+
return;
160+
}
161+
162+
QgsFeatureRendererV2* renderer = mActiveWidget->renderer();
163+
if ( renderer )
164+
{
165+
mLayer->setRendererV2( renderer->clone() );
160166
}
161167
}
162168

0 commit comments

Comments
 (0)