Skip to content

Commit c2f00ca

Browse files
committedApr 7, 2013
[API] Removed old renderer support from QgsVectorLayer
1 parent 37da713 commit c2f00ca

25 files changed

+346
-1580
lines changed
 

‎python/core/core.sip

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -171,7 +171,6 @@
171171

172172
%Include symbology-ng/qgsstylev2.sip
173173
%Include symbology-ng/qgssvgcache.sip
174-
%Include symbology-ng/qgssymbologyv2conversion.sip
175174
%Include symbology-ng/qgssymbolv2.sip
176175
%Include symbology-ng/qgscolorbrewerpalette.sip
177176
%Include symbology-ng/qgscptcityarchive.sip

‎python/core/qgsvectorlayer.sip

Lines changed: 0 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -242,12 +242,6 @@ class QgsVectorLayer : QgsMapLayer
242242
/** Returns the bounding box of the selected features. If there is no selection, QgsRectangle(0,0,0,0) is returned */
243243
QgsRectangle boundingBoxOfSelected();
244244

245-
/** Returns a pointer to the renderer */
246-
const QgsRenderer* renderer() const;
247-
248-
/** Sets the renderer. If a renderer is already present, it is deleted */
249-
void setRenderer( QgsRenderer * r /Transfer/ );
250-
251245
/** Sets diagram rendering object (takes ownership) */
252246
void setDiagramRenderer( QgsDiagramRendererV2* r /Transfer/ );
253247
const QgsDiagramRendererV2* diagramRenderer() const;
@@ -262,14 +256,6 @@ class QgsVectorLayer : QgsMapLayer
262256
* @note added in 1.4
263257
*/
264258
void setRendererV2( QgsFeatureRendererV2* r /Transfer/ );
265-
/** Return whether using renderer V2.
266-
* @note added in 1.4
267-
*/
268-
bool isUsingRendererV2();
269-
/** set whether to use renderer V2 for drawing.
270-
* @note added in 1.4
271-
*/
272-
void setUsingRendererV2( bool usingRendererV2 );
273259

274260
/** Draw layer with renderer V2.
275261
* @note added in 1.4

‎python/core/symbology-ng/qgssymbologyv2conversion.sip

Lines changed: 0 additions & 24 deletions
This file was deleted.

‎src/app/legend/qgslegendlayer.cpp

Lines changed: 1 addition & 158 deletions
Original file line numberDiff line numberDiff line change
@@ -137,10 +137,7 @@ void QgsLegendLayer::refreshSymbology( const QString& key, double widthScale )
137137
if ( theMapLayer->type() == QgsMapLayer::VectorLayer ) // VECTOR
138138
{
139139
QgsVectorLayer* vlayer = qobject_cast<QgsVectorLayer *>( theMapLayer );
140-
if ( vlayer->isUsingRendererV2() )
141-
vectorLayerSymbologyV2( vlayer );
142-
else
143-
vectorLayerSymbology( vlayer, widthScale ); // get and change symbology
140+
vectorLayerSymbologyV2( vlayer );
144141
}
145142
else if ( theMapLayer->type() == QgsMapLayer::RasterLayer ) // RASTER
146143
{
@@ -187,106 +184,6 @@ void QgsLegendLayer::changeSymbologySettings( const QgsMapLayer* theMapLayer,
187184

188185

189186

190-
void QgsLegendLayer::vectorLayerSymbology( QgsVectorLayer* layer, double widthScale )
191-
{
192-
if ( !layer )
193-
{
194-
return;
195-
}
196-
197-
SymbologyList itemList;
198-
if ( layer->hasGeometryType() )
199-
{
200-
//add the new items
201-
QString lw, uv, label;
202-
const QgsRenderer* renderer = layer->renderer();
203-
const QList<QgsSymbol*> sym = renderer->symbols();
204-
205-
//create an item for each classification field (only one for most renderers)
206-
QSettings settings;
207-
if ( settings.value( "/qgis/showLegendClassifiers", false ).toBool() )
208-
{
209-
if ( renderer->needsAttributes() )
210-
{
211-
QgsAttributeList classfieldlist = renderer->classificationAttributes();
212-
const QgsFields& fields = layer->pendingFields();
213-
for ( QgsAttributeList::iterator it = classfieldlist.begin(); it != classfieldlist.end(); ++it )
214-
{
215-
int idx = *it;
216-
if ( idx < 0 || idx >= fields.count() )
217-
continue;
218-
QString classfieldname = layer->attributeAlias( idx );
219-
if ( classfieldname.isEmpty() )
220-
{
221-
classfieldname = fields[idx].name();
222-
}
223-
itemList.append( qMakePair( classfieldname, QPixmap() ) );
224-
}
225-
}
226-
}
227-
228-
QMap< QgsSymbol*, int > featureCountMap;
229-
if ( mShowFeatureCount )
230-
{
231-
updateItemListCount( layer, sym, featureCountMap );
232-
}
233-
234-
for ( QList<QgsSymbol*>::const_iterator it = sym.begin(); it != sym.end(); ++it )
235-
{
236-
QImage img;
237-
if (( *it )->type() == QGis::Point )
238-
{
239-
img = ( *it )->getPointSymbolAsImage( widthScale );
240-
}
241-
else if (( *it )->type() == QGis::Line )
242-
{
243-
img = ( *it )->getLineSymbolAsImage();
244-
}
245-
else if (( *it )->type() == QGis::Polygon )
246-
{
247-
img = ( *it )->getPolygonSymbolAsImage();
248-
}
249-
else
250-
{
251-
// must be a layer without geometry then
252-
}
253-
254-
QString values;
255-
lw = ( *it )->lowerValue();
256-
if ( !lw.isEmpty() )
257-
{
258-
values += lw;
259-
}
260-
uv = ( *it )->upperValue();
261-
if ( !uv.isEmpty() && lw != uv )
262-
{
263-
values += " - ";
264-
values += uv;
265-
}
266-
label = ( *it )->label();
267-
if ( !label.isEmpty() )
268-
{
269-
values += " ";
270-
values += label;
271-
}
272-
273-
if ( mShowFeatureCount )
274-
{
275-
int fCount = featureCountMap[*it];
276-
if ( fCount >= 0 )
277-
{
278-
values += ( " [" + QString::number( fCount ) + "]" );
279-
}
280-
}
281-
282-
QPixmap pix = QPixmap::fromImage( img ); // convert to pixmap
283-
itemList.append( qMakePair( values, pix ) );
284-
}
285-
}
286-
changeSymbologySettings( layer, itemList );
287-
}
288-
289-
290187
void QgsLegendLayer::vectorLayerSymbologyV2( QgsVectorLayer* layer )
291188
{
292189
QSize iconSize( 16, 16 );
@@ -666,60 +563,6 @@ void QgsLegendLayer::updateItemListCountV2( SymbologyList& itemList, QgsVectorLa
666563
}
667564
}
668565

669-
void QgsLegendLayer::updateItemListCount( QgsVectorLayer* layer, const QList<QgsSymbol*>& sym, QMap< QgsSymbol*, int >& featureCountMap )
670-
{
671-
featureCountMap.clear();
672-
QList<QgsSymbol*>::const_iterator symbolIt = sym.constBegin();
673-
for ( ; symbolIt != sym.constEnd(); ++symbolIt )
674-
{
675-
featureCountMap.insert( *symbolIt, 0 );
676-
}
677-
678-
QgsRenderer* renderer = const_cast<QgsRenderer*>( layer->renderer() );
679-
if ( !renderer )
680-
{
681-
return;
682-
}
683-
684-
//go through all features and count the number of occurrences
685-
int nFeatures = layer->pendingFeatureCount();
686-
QProgressDialog p( tr( "Updating feature count for layer %1" ).arg( layer->name() ), tr( "Abort" ), 0, nFeatures );
687-
p.setWindowModality( Qt::WindowModal );
688-
int featuresCounted = 0;
689-
690-
QgsFeatureIterator fit = layer->getFeatures( QgsFeatureRequest().setFlags( QgsFeatureRequest::NoGeometry ) );
691-
QgsFeature f;
692-
QgsSymbol* currentSymbol = 0;
693-
694-
while ( fit.nextFeature( f ) )
695-
{
696-
currentSymbol = renderer->symbolForFeature( &f );
697-
if ( currentSymbol )
698-
{
699-
featureCountMap[currentSymbol] += 1;
700-
}
701-
++featuresCounted;
702-
703-
if ( featuresCounted % 50 == 0 )
704-
{
705-
if ( featuresCounted > nFeatures ) //sometimes the feature count is not correct
706-
{
707-
p.setMaximum( 0 );
708-
}
709-
p.setValue( featuresCounted );
710-
if ( p.wasCanceled() ) //set all entries to -1 (= invalid)
711-
{
712-
QMap< QgsSymbol*, int >::iterator cIt = featureCountMap.begin();
713-
for ( ; cIt != featureCountMap.end(); ++cIt )
714-
{
715-
cIt.value() = -1;
716-
}
717-
return;
718-
}
719-
}
720-
}
721-
p.setValue( nFeatures );
722-
}
723566

724567
void QgsLegendLayer::setShowFeatureCount( bool show, bool update )
725568
{

‎src/app/legend/qgslegendlayer.h

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -110,8 +110,6 @@ class QgsLegendLayer : public QgsLegendItem
110110
protected:
111111

112112
/** Prepare and change symbology for vector layer */
113-
void vectorLayerSymbology( QgsVectorLayer* mapLayer, double widthScale = 1.0 );
114-
115113
void vectorLayerSymbologyV2( QgsVectorLayer* vlayer );
116114

117115
/** Prepare and change symbology for raster layer */
@@ -122,8 +120,6 @@ class QgsLegendLayer : public QgsLegendItem
122120

123121
/**Adds feature counts to the symbology items (for symbology v2)*/
124122
void updateItemListCountV2( SymbologyList& itemList, QgsVectorLayer* layer );
125-
/**Calculates feature count for the individual symbols (old symbology)*/
126-
void updateItemListCount( QgsVectorLayer* layer, const QList<QgsSymbol*>& sym, QMap< QgsSymbol*, int >& featureCountMap );
127123

128124
QPixmap getOriginalPixmap();
129125

‎src/app/qgsmaptoolrotatepointsymbols.cpp

Lines changed: 3 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -238,26 +238,6 @@ int QgsMapToolRotatePointSymbols::layerRotationAttributes( QgsVectorLayer* vl, Q
238238
return 1;
239239
}
240240

241-
//old symbology
242-
const QgsRenderer* layerRenderer = vl->renderer();
243-
if ( layerRenderer )
244-
{
245-
//get renderer symbols
246-
const QList<QgsSymbol*> rendererSymbols = layerRenderer->symbols();
247-
int currentRotationAttribute;
248-
249-
QList<QgsSymbol*>::const_iterator symbolIt = rendererSymbols.constBegin();
250-
for ( ; symbolIt != rendererSymbols.constEnd(); ++symbolIt )
251-
{
252-
currentRotationAttribute = ( *symbolIt )->rotationClassificationField();
253-
if ( currentRotationAttribute >= 0 )
254-
{
255-
attList.push_back( currentRotationAttribute );
256-
}
257-
}
258-
return 0;
259-
}
260-
261241
//new symbology
262242
const QgsFeatureRendererV2* symbologyNgRenderer = vl->rendererV2();
263243
if ( symbologyNgRenderer )
@@ -306,27 +286,10 @@ void QgsMapToolRotatePointSymbols::createPixmapItem( QgsFeature& f )
306286

307287
//get the image that is used for that symbol, but without point rotation
308288
QImage pointImage;
309-
QgsRenderer* r = 0;
310-
QgsFeatureRendererV2* rv2 = 0;
311-
312-
if ( mActiveLayer && mActiveLayer->renderer() ) //old symbology
313-
{
314-
//copy renderer
315-
QgsRenderer* r = mActiveLayer->renderer()->clone();
316289

317-
//set all symbol fields of the cloned renderer to -1. Very ugly but necessary
318-
QList<QgsSymbol*> symbolList( r->symbols() );
319-
QList<QgsSymbol*>::iterator it = symbolList.begin();
320-
for ( ; it != symbolList.end(); ++it )
321-
{
322-
( *it )->setRotationClassificationField( -1 );
323-
}
324-
325-
r->renderFeature( *renderContext, f, &pointImage, false );
326-
}
327-
else if ( mActiveLayer && mActiveLayer->rendererV2() ) //symbology-ng
290+
if ( mActiveLayer && mActiveLayer->rendererV2() ) //symbology-ng
328291
{
329-
rv2 = mActiveLayer->rendererV2()->clone();
292+
QgsFeatureRendererV2* rv2 = mActiveLayer->rendererV2()->clone();
330293
rv2->setRotationField( "" );
331294
rv2->startRender( *renderContext, mActiveLayer );
332295

@@ -336,12 +299,11 @@ void QgsMapToolRotatePointSymbols::createPixmapItem( QgsFeature& f )
336299
pointImage = symbolV2->bigSymbolPreviewImage();
337300
}
338301
rv2->stopRender( *renderContext );
302+
delete rv2;
339303
}
340304

341305
mRotationItem = new QgsPointRotationItem( mCanvas );
342306
mRotationItem->setSymbol( pointImage );
343-
delete r;
344-
delete rv2;
345307
}
346308

347309
void QgsMapToolRotatePointSymbols::setPixmapItemRotation( double rotation )

‎src/app/qgsoptions.cpp

Lines changed: 0 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -500,15 +500,6 @@ QgsOptions::QgsOptions( QWidget *parent, Qt::WFlags fl ) :
500500
chkAntiAliasing->setChecked( settings.value( "/qgis/enable_anti_aliasing", true ).toBool() );
501501
chkUseRenderCaching->setChecked( settings.value( "/qgis/enable_render_caching", false ).toBool() );
502502

503-
//Changed to default to true as of QGIS 1.7
504-
//TODO: remove hack when http://hub.qgis.org/issues/5170 is fixed
505-
#ifdef ANDROID
506-
bool use_symbology_ng_default = false;
507-
#else
508-
bool use_symbology_ng_default = true;
509-
#endif
510-
chkUseSymbologyNG->setChecked( settings.value( "/qgis/use_symbology_ng", use_symbology_ng_default ).toBool() );
511-
512503
// Slightly awkard here at the settings value is true to use QImage,
513504
// but the checkbox is true to use QPixmap
514505
chkUseQPixmap->setChecked( !( settings.value( "/qgis/use_qimage_to_render", true ).toBool() ) );
@@ -1031,7 +1022,6 @@ void QgsOptions::saveOptions()
10311022
settings.setValue( "/qgis/enable_anti_aliasing", chkAntiAliasing->isChecked() );
10321023
settings.setValue( "/qgis/enable_render_caching", chkUseRenderCaching->isChecked() );
10331024
settings.setValue( "/qgis/use_qimage_to_render", !( chkUseQPixmap->isChecked() ) );
1034-
settings.setValue( "/qgis/use_symbology_ng", chkUseSymbologyNG->isChecked() );
10351025
settings.setValue( "/qgis/legendDoubleClickAction", cmbLegendDoubleClickAction->currentIndex() );
10361026
bool legendLayersCapitalise = settings.value( "/qgis/capitaliseLayerName", false ).toBool();
10371027
settings.setValue( "/qgis/capitaliseLayerName", capitaliseCheckBox->isChecked() );

‎src/app/qgsvectorlayerproperties.cpp

Lines changed: 7 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -413,12 +413,8 @@ void QgsVectorLayerProperties::apply()
413413
// Apply fields settings
414414
mFieldsPropertiesDialog->apply();
415415

416-
if ( layer->isUsingRendererV2() )
417-
{
418-
QgsRendererV2PropertiesDialog* dlg =
419-
static_cast<QgsRendererV2PropertiesDialog*>( widgetStackRenderers->currentWidget() );
420-
dlg->apply();
421-
}
416+
QgsRendererV2PropertiesDialog* dlg = static_cast<QgsRendererV2PropertiesDialog*>( widgetStackRenderers->currentWidget() );
417+
dlg->apply();
422418

423419
//apply diagram settings
424420
diagramPropertiesDialog->apply();
@@ -778,19 +774,12 @@ void QgsVectorLayerProperties::updateSymbologyPage()
778774
delete mRendererDialog;
779775
mRendererDialog = 0;
780776

781-
if ( layer->isUsingRendererV2() )
782-
{
783-
mRendererDialog = new QgsRendererV2PropertiesDialog( layer, QgsStyleV2::defaultStyle(), true );
777+
mRendererDialog = new QgsRendererV2PropertiesDialog( layer, QgsStyleV2::defaultStyle(), true );
784778

785-
// display the menu to choose the output format (fix #5136)
786-
pbnSaveStyleAs->setText( tr( "Save Style" ) );
787-
pbnSaveStyleAs->setMenu( mSaveAsMenu );
788-
QObject::disconnect( pbnSaveStyleAs, SIGNAL( clicked() ), this, SLOT( on_pbnSaveStyleAs_clicked() ) );
789-
}
790-
else
791-
{
792-
tabWidget->setTabEnabled( 0, false ); // hide symbology item
793-
}
779+
// display the menu to choose the output format (fix #5136)
780+
pbnSaveStyleAs->setText( tr( "Save Style" ) );
781+
pbnSaveStyleAs->setMenu( mSaveAsMenu );
782+
QObject::disconnect( pbnSaveStyleAs, SIGNAL( clicked() ), this, SLOT( on_pbnSaveStyleAs_clicked() ) );
794783

795784
if ( mRendererDialog )
796785
{

0 commit comments

Comments
 (0)
Please sign in to comment.