75 changes: 2 additions & 73 deletions src/core/composer/qgslegendmodel.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -190,64 +190,7 @@ int QgsLegendModel::addVectorLayerItemsV2( QStandardItem* layerItem, QgsVectorLa
return 0;
}

int QgsLegendModel::addVectorLayerItems( QStandardItem* layerItem, QgsVectorLayer* vlayer )
{
if ( !layerItem || !vlayer )
{
return 1;
}

int opacity = vlayer->getTransparency();

const QgsRenderer* vectorRenderer = vlayer->renderer();
if ( !vectorRenderer )
{
return 3;
}

//text field that describes classification attribute?
QSettings settings;
if ( settings.value( "/qgis/showLegendClassifiers", false ).toBool() )
{
const QgsFields& layerFields = vlayer->pendingFields();
QgsAttributeList attributes = vectorRenderer->classificationAttributes();
QgsAttributeList::const_iterator att_it = attributes.constBegin();
for ( ; att_it != attributes.constEnd(); ++att_it )
{
int idx = *att_it;
if ( idx >= 0 && idx < layerFields.count() )
{
QString attributeName = vlayer->attributeDisplayName( idx );
QStandardItem* attributeItem = new QStandardItem( attributeName );
attributeItem->setData( QgsLegendModel::ClassificationItem, Qt::UserRole + 1 ); //first user data stores the item type
attributeItem->setFlags( Qt::ItemIsEnabled | Qt::ItemIsSelectable );
layerItem->setChild( layerItem->rowCount(), 0, attributeItem );
}
}
}

const QList<QgsSymbol*> vectorSymbols = vectorRenderer->symbols();
QList<QgsSymbol*>::const_iterator symbolIt = vectorSymbols.constBegin();

for ( ; symbolIt != vectorSymbols.constEnd(); ++symbolIt )
{
if ( !( *symbolIt ) )
{
continue;
}

QStandardItem* currentSymbolItem = itemFromSymbol( *symbolIt, opacity, vlayer->id() );
if ( !currentSymbolItem )
{
continue;
}

layerItem->setChild( layerItem->rowCount(), 0, currentSymbolItem );

}

return 0;
}

int QgsLegendModel::addRasterLayerItems( QStandardItem* layerItem, QgsMapLayer* rlayer )
{
Expand Down Expand Up @@ -331,14 +274,7 @@ void QgsLegendModel::updateLayer( QStandardItem* layerItem )

if ( vLayer )
{
if ( vLayer->isUsingRendererV2() )
{
addVectorLayerItemsV2( lItem, vLayer );
}
else
{
addVectorLayerItems( lItem, vLayer );
}
addVectorLayerItemsV2( lItem, vLayer );
}

QgsRasterLayer* rLayer = qobject_cast<QgsRasterLayer*>( mapLayer );
Expand Down Expand Up @@ -393,14 +329,7 @@ void QgsLegendModel::addLayer( QgsMapLayer* theMapLayer )
QgsVectorLayer* vl = dynamic_cast<QgsVectorLayer*>( theMapLayer );
if ( vl )
{
if ( vl->isUsingRendererV2() )
{
addVectorLayerItemsV2( layerItem, vl );
}
else
{
addVectorLayerItems( layerItem, vl );
}
addVectorLayerItemsV2( layerItem, vl );
}
break;
}
Expand Down
4 changes: 0 additions & 4 deletions src/core/composer/qgslegendmodel.h
Original file line number Diff line number Diff line change
Expand Up @@ -102,10 +102,6 @@ class CORE_EXPORT QgsLegendModel: public QStandardItemModel
void layersChanged();

private:
/**Adds classification items of vector layers
@return 0 in case of success*/
int addVectorLayerItems( QStandardItem* layerItem, QgsVectorLayer* vlayer );

/**Adds classification items of vector layers using new symbology*/
int addVectorLayerItemsV2( QStandardItem* layerItem, QgsVectorLayer* vlayer );

Expand Down
6 changes: 0 additions & 6 deletions src/core/qgsproject.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -702,17 +702,11 @@ QPair< bool, QList<QDomNode> > QgsProject::_getMapLayers( QDomDocument const &do

//Update field map of layers with joins and create join caches if necessary
//Needs to be done here once all dependent layers are loaded
QString errorMessage;
QList< QPair< QgsVectorLayer*, QDomElement > >::iterator vIt = vLayerList.begin();
for ( ; vIt != vLayerList.end(); ++vIt )
{
vIt->first->createJoinCaches();
vIt->first->updateFields();
//for old symbology, it is necessary to read the symbology again after having the complete field map
if ( !vIt->first->isUsingRendererV2() )
{
vIt->first->readSymbology( vIt->second, errorMessage );
}
}

return qMakePair( returnStatus, brokenNodes );
Expand Down
11 changes: 3 additions & 8 deletions src/core/qgsvectorfilewriter.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -770,7 +770,7 @@ QgsVectorFileWriter::writeAsVectorFormat( QgsVectorLayer* layer,
//writer->createSymbolLayerTable( layer, writer->mDS );
}

if ( writer->symbologyExport() == SymbolLayerSymbology && layer->isUsingRendererV2() )
if ( writer->symbologyExport() == SymbolLayerSymbology )
{
QgsFeatureRendererV2* r = layer->rendererV2();
if ( r->capabilities() & QgsFeatureRendererV2::SymbolLevels
Expand Down Expand Up @@ -1198,11 +1198,6 @@ void QgsVectorFileWriter::createSymbolLayerTable( QgsVectorLayer* vl, const Qgs
return;
}

if ( !vl->isUsingRendererV2() )
{
return;
}

QgsFeatureRendererV2* renderer = vl->rendererV2();
if ( !renderer )
{
Expand Down Expand Up @@ -1246,7 +1241,7 @@ void QgsVectorFileWriter::createSymbolLayerTable( QgsVectorLayer* vl, const Qgs
QgsVectorFileWriter::WriterError QgsVectorFileWriter::exportFeaturesSymbolLevels( QgsVectorLayer* layer, QgsFeatureIterator& fit,
const QgsCoordinateTransform* ct, QString* errorMessage )
{
if ( !layer || !layer->isUsingRendererV2() )
if ( !layer )
{
//return error
}
Expand Down Expand Up @@ -1454,7 +1449,7 @@ QgsFeatureRendererV2* QgsVectorFileWriter::symbologyRenderer( QgsVectorLayer* vl
{
return 0;
}
if ( !vl || !vl->isUsingRendererV2() )
if ( !vl )
{
return 0;
}
Expand Down
875 changes: 49 additions & 826 deletions src/core/qgsvectorlayer.cpp

Large diffs are not rendered by default.

42 changes: 0 additions & 42 deletions src/core/qgsvectorlayer.h
Original file line number Diff line number Diff line change
Expand Up @@ -315,12 +315,6 @@ class CORE_EXPORT QgsVectorLayer : public QgsMapLayer
/** Returns the bounding box of the selected features. If there is no selection, QgsRectangle(0,0,0,0) is returned */
QgsRectangle boundingBoxOfSelected();

/** Returns a pointer to the renderer */
const QgsRenderer* renderer() const;

/** Sets the renderer. If a renderer is already present, it is deleted */
void setRenderer( QgsRenderer * r );

/** Sets diagram rendering object (takes ownership) */
void setDiagramRenderer( QgsDiagramRendererV2* r );
const QgsDiagramRendererV2* diagramRenderer() const { return mDiagramRenderer; }
Expand All @@ -335,14 +329,6 @@ class CORE_EXPORT QgsVectorLayer : public QgsMapLayer
* @note added in 1.4
*/
void setRendererV2( QgsFeatureRendererV2* r );
/** Return whether using renderer V2.
* @note added in 1.4
*/
bool isUsingRendererV2();
/** set whether to use renderer V2 for drawing.
* @note added in 1.4
*/
void setUsingRendererV2( bool usingRendererV2 );

/** Draw layer with renderer V2.
* @note added in 1.4
Expand Down Expand Up @@ -931,28 +917,6 @@ class CORE_EXPORT QgsVectorLayer : public QgsMapLayer
*/
bool setDataProvider( QString const & provider );

/** Draws features. May cause projections exceptions to be generated
* (i.e., code that calls this function needs to catch them) */
void drawFeature( QgsRenderContext &renderContext,
QgsFeature& fet,
QImage* marker );

/** Convenience function to transform the given point */
void transformPoint( double& x, double& y,
const QgsMapToPixel* mtp, const QgsCoordinateTransform* ct );

void transformPoints( QVector<double>& x, QVector<double>& y, QVector<double>& z, QgsRenderContext &renderContext );

/** Draw the linestring as given in the WKB format. Returns a pointer
* to the byte after the end of the line string binary data stream (WKB).
*/
unsigned char *drawLineString( unsigned char *WKBlinestring, QgsRenderContext &renderContext );

/** Draw the polygon as given in the WKB format. Returns a pointer to
* the byte after the end of the polygon binary data stream (WKB).
*/
unsigned char *drawPolygon( unsigned char *WKBpolygon, QgsRenderContext &renderContext );

/** Goes through all features and finds a free id (e.g. to give it temporarily to a not-commited feature) */
QgsFeatureId findFreeId();

Expand Down Expand Up @@ -1046,14 +1010,8 @@ class CORE_EXPORT QgsVectorLayer : public QgsMapLayer
int mWkbType;

/** Renderer object which holds the information about how to display the features */
QgsRenderer *mRenderer;

/** Renderer V2 */
QgsFeatureRendererV2 *mRendererV2;

/** whether to use V1 or V2 renderer */
bool mUsingRendererV2;

/** Label */
QgsLabel *mLabel;

Expand Down
1 change: 0 additions & 1 deletion src/core/renderer/qgscontinuouscolorrenderer.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -237,7 +237,6 @@ int QgsContinuousColorRenderer::readXML( const QDomNode& rnode, QgsVectorLayer&
usy->readXML( usymbolnode, &vl );
setMaximumSymbol( usy );
}
vl.setRenderer( this );
return 0;
}

Expand Down
1 change: 0 additions & 1 deletion src/core/renderer/qgsgraduatedsymbolrenderer.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -282,7 +282,6 @@ int QgsGraduatedSymbolRenderer::readXML( const QDomNode& rnode, QgsVectorLayer&
symbolnode = symbolnode.nextSibling();
}
updateSymbolAttributes();
vl.setRenderer( this );
return 0;
}

Expand Down
1 change: 0 additions & 1 deletion src/core/renderer/qgssinglesymbolrenderer.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -215,7 +215,6 @@ int QgsSingleSymbolRenderer::readXML( const QDomNode& rnode, QgsVectorLayer& vl

//create a renderer and add it to the vector layer
addSymbol( sy );
vl.setRenderer( this );
return 0;
}

Expand Down
1 change: 0 additions & 1 deletion src/core/renderer/qgsuniquevaluerenderer.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -236,7 +236,6 @@ int QgsUniqueValueRenderer::readXML( const QDomNode& rnode, QgsVectorLayer& vl )
symbolnode = symbolnode.nextSibling();
}
updateSymbolAttributes();
vl.setRenderer( this );
return 0;
}

Expand Down
454 changes: 230 additions & 224 deletions src/core/symbology-ng/qgssymbologyv2conversion.cpp

Large diffs are not rendered by default.

27 changes: 8 additions & 19 deletions src/core/symbology-ng/qgssymbologyv2conversion.h
Original file line number Diff line number Diff line change
Expand Up @@ -15,30 +15,19 @@
#ifndef QGSSYMBOLOGYV2CONVERSION_H
#define QGSSYMBOLOGYV2CONVERSION_H

class QgsSymbol;
class QgsSymbolV2;
class QgsVectorLayer;
class QDomNode;

class QgsFeatureRendererV2;

#include "qgis.h"

/** This class is not a part of public API, it is intended only for compatibility with older versions of QGIS (1.x) */
class CORE_EXPORT QgsSymbologyV2Conversion
{
public:

//! return a symbol in new symbology as close as possible to old symbol
//! @note not all properties will be preserved
static QgsSymbolV2* symbolV1toV2( const QgsSymbol* s );

//! return a symbol in old symbology as close as possible to new symbol
//! @note not all properties will be preserved
static QgsSymbol* symbolV2toV1( QgsSymbolV2* s );

//! convert layer from old symbology to new symbology
//! @note not all properties will be preserved
static void rendererV1toV2( QgsVectorLayer* layer );

//! convert layer from new symbology to old symbology
//! @note not all properties will be preserved
static void rendererV2toV1( QgsVectorLayer* layer );

/** Read old renderer definition from XML and create matching new renderer */
static QgsFeatureRendererV2* readOldRenderer( const QDomNode& layerNode, QGis::GeometryType geomType );
};

#endif // QGSSYMBOLOGYV2CONVERSION_H
17 changes: 0 additions & 17 deletions src/gui/qgsattributeeditor.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -432,23 +432,6 @@ QWidget *QgsAttributeEditor::createAttributeEditor( QWidget *parent, QWidget *ed
{
QMap<QString, QString> classes;

const QgsUniqueValueRenderer *uvr = dynamic_cast<const QgsUniqueValueRenderer *>( vl->renderer() );
if ( uvr )
{
const QList<QgsSymbol *> symbols = uvr->symbols();

for ( int i = 0; i < symbols.size(); i++ )
{
QString label = symbols[i]->label();
QString name = symbols[i]->lowerValue();

if ( label == "" )
label = name;

classes.insert( name, label );
}
}

const QgsCategorizedSymbolRendererV2 *csr = dynamic_cast<const QgsCategorizedSymbolRendererV2 *>( vl->rendererV2() );
if ( csr )
{
Expand Down
7 changes: 0 additions & 7 deletions src/gui/symbology-ng/qgsrendererv2propertiesdialog.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -100,13 +100,6 @@ QgsRendererV2PropertiesDialog::QgsRendererV2PropertiesDialog( QgsVectorLayer* la

cboRenderers->setCurrentIndex( -1 ); // set no current renderer

// if the layer doesn't use renderer V2, let's start using it!
if ( !mLayer->isUsingRendererV2() )
{
mLayer->setRendererV2( QgsFeatureRendererV2::defaultRenderer( mLayer->geometryType() ) );
mLayer->setUsingRendererV2( true );
}

// setup slot rendererChanged()
connect( cboRenderers, SIGNAL( currentIndexChanged( int ) ), this, SLOT( rendererChanged() ) );

Expand Down
3 changes: 0 additions & 3 deletions src/mapserver/qgssldparser.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -277,7 +277,6 @@ QList<QgsMapLayer*> QgsSLDParser::mapLayerFromStyle( const QString& layerName, c
{
QgsFeatureRendererV2* r = rendererFromUserStyle( userStyleElement, v );
v->setRendererV2( r );
v->setUsingRendererV2( true );
labelSettingsFromUserStyle( userStyleElement, v );
#ifdef DIAGRAMSERVER
overlaysFromUserStyle( userStyleElement, v );
Expand Down Expand Up @@ -394,7 +393,6 @@ QList<QgsMapLayer*> QgsSLDParser::mapLayerFromStyle( const QString& layerName, c
return resultList;
}
theVectorLayer->setRendererV2( theRenderer );
theVectorLayer->setUsingRendererV2( true );
QgsDebugMsg( "Returning the vectorlayer" );
setOpacityForLayer( userLayerElement, theVectorLayer );
resultList.push_back( theVectorLayer );
Expand Down Expand Up @@ -1389,7 +1387,6 @@ QgsVectorLayer* QgsSLDParser::contourLayerFromRaster( const QDomElement& userSty
//create renderer
QgsFeatureRendererV2* theRenderer = rendererFromUserStyle( userStyleElem, contourLayer );
contourLayer->setRendererV2( theRenderer );
contourLayer->setUsingRendererV2( true );

//add labelling if requested
labelSettingsFromUserStyle( userStyleElem, contourLayer );
Expand Down
56 changes: 19 additions & 37 deletions src/mapserver/qgswmsserver.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1291,30 +1291,19 @@ int QgsWMSServer::featureInfoFromVectorLayer( QgsVectorLayer* layer,
break;
}

//check if feature is rendered at all
if ( layer->isUsingRendererV2() )
QgsFeatureRendererV2* r2 = layer->rendererV2();
if ( !r2 )
{
QgsFeatureRendererV2* r2 = layer->rendererV2();
if ( !r2 )
{
continue;
}

r2->startRender( renderContext, layer );
bool renderV2 = r2->willRenderFeature( feature );
r2->stopRender( renderContext );
if ( !renderV2 )
{
continue;
}
continue;
}
else

//check if feature is rendered at all
r2->startRender( renderContext, layer );
bool renderV2 = r2->willRenderFeature( feature );
r2->stopRender( renderContext );
if ( !renderV2 )
{
QgsRenderer* r = const_cast<QgsRenderer*>( layer->renderer() ); //bad, 'willRenderFeature' should be const
if ( !r || !r->willRenderFeature( &feature ) )
{
continue;
}
continue;
}

QDomElement featureElement = infoDocument.createElement( "Feature" );
Expand Down Expand Up @@ -2114,23 +2103,16 @@ void QgsWMSServer::applyOpacities( const QStringList& layerList, QList< QPair< Q
if ( ml->type() == QgsMapLayer::VectorLayer )
{
QgsVectorLayer* vl = qobject_cast<QgsVectorLayer*>( ml );
if ( vl && vl->isUsingRendererV2() )
{
QgsFeatureRendererV2* rendererV2 = vl->rendererV2();
//backup old renderer
vectorRenderers.push_back( qMakePair( vl, rendererV2->clone() ) );
//modify symbols of current renderer
QgsSymbolV2List symbolList = rendererV2->symbols();
QgsSymbolV2List::iterator symbolIt = symbolList.begin();
for ( ; symbolIt != symbolList.end(); ++symbolIt )
{
( *symbolIt )->setAlpha(( *symbolIt )->alpha() * opacityRatio );
}
}
else //old symbology

QgsFeatureRendererV2* rendererV2 = vl->rendererV2();
//backup old renderer
vectorRenderers.push_back( qMakePair( vl, rendererV2->clone() ) );
//modify symbols of current renderer
QgsSymbolV2List symbolList = rendererV2->symbols();
QgsSymbolV2List::iterator symbolIt = symbolList.begin();
for ( ; symbolIt != symbolList.end(); ++symbolIt )
{
vectorOld.push_back( qMakePair( vl, vl->getTransparency() ) );
vl->setTransparency( opacity );
( *symbolIt )->setAlpha(( *symbolIt )->alpha() * opacityRatio );
}

//labeling
Expand Down
64 changes: 24 additions & 40 deletions src/ui/qgsoptionsbase.ui
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,8 @@
<rect>
<x>0</x>
<y>0</y>
<width>850</width>
<height>580</height>
<width>848</width>
<height>578</height>
</rect>
</property>
<property name="minimumSize">
Expand Down Expand Up @@ -266,8 +266,8 @@
<rect>
<x>0</x>
<y>0</y>
<width>654</width>
<height>642</height>
<width>663</width>
<height>564</height>
</rect>
</property>
<layout class="QVBoxLayout" name="verticalLayout_28">
Expand Down Expand Up @@ -912,8 +912,8 @@
<rect>
<x>0</x>
<y>0</y>
<width>611</width>
<height>808</height>
<width>663</width>
<height>757</height>
</rect>
</property>
<layout class="QVBoxLayout" name="verticalLayout_22">
Expand Down Expand Up @@ -1248,8 +1248,8 @@
<rect>
<x>0</x>
<y>0</y>
<width>559</width>
<height>417</height>
<width>680</width>
<height>511</height>
</rect>
</property>
<layout class="QVBoxLayout" name="verticalLayout_27">
Expand Down Expand Up @@ -1567,8 +1567,8 @@
<rect>
<x>0</x>
<y>0</y>
<width>615</width>
<height>781</height>
<width>663</width>
<height>635</height>
</rect>
</property>
<layout class="QVBoxLayout" name="verticalLayout_29">
Expand Down Expand Up @@ -1668,22 +1668,6 @@
</layout>
</widget>
</item>
<item>
<widget class="QGroupBox" name="groupBox_3">
<property name="title">
<string>Compatibility</string>
</property>
<layout class="QVBoxLayout" name="verticalLayout_9">
<item>
<widget class="QCheckBox" name="chkUseSymbologyNG">
<property name="text">
<string>Use new generation symbology for rendering</string>
</property>
</widget>
</item>
</layout>
</widget>
</item>
<item>
<widget class="QGroupBox" name="groupBox_14">
<property name="title">
Expand Down Expand Up @@ -2098,8 +2082,8 @@
<rect>
<x>0</x>
<y>0</y>
<width>474</width>
<height>390</height>
<width>452</width>
<height>357</height>
</rect>
</property>
<layout class="QVBoxLayout" name="verticalLayout_25">
Expand Down Expand Up @@ -2433,8 +2417,8 @@
<rect>
<x>0</x>
<y>0</y>
<width>556</width>
<height>712</height>
<width>491</width>
<height>636</height>
</rect>
</property>
<layout class="QVBoxLayout" name="verticalLayout_30">
Expand Down Expand Up @@ -2825,8 +2809,8 @@
<rect>
<x>0</x>
<y>0</y>
<width>517</width>
<height>642</height>
<width>442</width>
<height>574</height>
</rect>
</property>
<layout class="QVBoxLayout" name="verticalLayout_31">
Expand Down Expand Up @@ -3326,8 +3310,8 @@
<rect>
<x>0</x>
<y>0</y>
<width>537</width>
<height>361</height>
<width>426</width>
<height>336</height>
</rect>
</property>
<layout class="QVBoxLayout" name="verticalLayout_6">
Expand Down Expand Up @@ -3466,8 +3450,8 @@
<rect>
<x>0</x>
<y>0</y>
<width>614</width>
<height>393</height>
<width>582</width>
<height>352</height>
</rect>
</property>
<layout class="QGridLayout" name="gridLayout_15">
Expand Down Expand Up @@ -3647,8 +3631,8 @@
<rect>
<x>0</x>
<y>0</y>
<width>300</width>
<height>248</height>
<width>268</width>
<height>207</height>
</rect>
</property>
<layout class="QVBoxLayout" name="verticalLayout_32">
Expand Down Expand Up @@ -3747,8 +3731,8 @@
<rect>
<x>0</x>
<y>0</y>
<width>521</width>
<height>650</height>
<width>663</width>
<height>553</height>
</rect>
</property>
<layout class="QVBoxLayout" name="verticalLayout_33">
Expand Down