mirror of
https://github.com/qgis/QGIS.git
synced 2025-04-14 00:07:35 -04:00
API cleanup for legend support in renderers
This commit is contained in:
parent
b3bd45b052
commit
a8999639c7
@ -265,6 +265,7 @@ should now call QgsCoordinateReferenceSystem::invalidateCache() and QgsCoordinat
|
||||
- QgsDataDefined was removed. Use the QgsProperty framework instead.
|
||||
- QgsDataDefinedButton was removed. Use QgsPropertyOverrideButton instead.
|
||||
- QgsDataDefinedSymbolDialog was removed. Code using this dialog should be reworked to use QgsPropertyOverrideButton
|
||||
- QgsDefaultPluginLayerLegend was removed. Use QgsMapLayer::setLegend() to provide legend nodes for plugin layers.
|
||||
- QgsFileNameWidgetWrapper was removed. Use QgsExternalResourceWidgetWrapper instead.
|
||||
- QgsFormAnnotationItem. Use QgsFormAnnotation instead.
|
||||
- QgsHtmlAnnotationItem. Use QgsHtmlAnnotation instead.
|
||||
@ -1181,6 +1182,9 @@ QgsFeatureRendererV2 {#qgis_api_break_3_0_QgsFeatureRendererV2}
|
||||
- usedAttributes() now requires a QgsRenderContext argument.
|
||||
- save() expects QgsReadWriteContext reference as the last argument
|
||||
- static create() method in subclasses expects QgsReadWriteContext reference as the last argument
|
||||
- legendSymbologyItems() was removed.
|
||||
- legendSymbolItems() was removed.
|
||||
- legendSymbolItemsV2() has been renamed to legendSymbolItems()
|
||||
|
||||
|
||||
QgsFeatureRequest {#qgis_api_break_3_0_QgsFeatureRequest}
|
||||
@ -1530,6 +1534,12 @@ QgsMapLayerActionRegistry {#qgis_api_break_3_0_QgsMapLayerActionRegistry}
|
||||
- This class is no longer a singleton and instance() has been removed. Instead use QgsGui::mapLayerActionRegistry().
|
||||
|
||||
|
||||
QgsMapLayerLegend {#qgis_api_break_3_0_QgsMapLayerLegend}
|
||||
-----------------
|
||||
|
||||
- defaultPluginLegend() was removed. Plugin layers have to provide their legend implementation.
|
||||
|
||||
|
||||
QgsMapOverviewCanvas {#qgis_api_break_3_0_QgsMapOverviewCanvas}
|
||||
--------------------
|
||||
|
||||
@ -1768,6 +1778,7 @@ QgsPluginLayer {#qgis_api_break_3_0_QgsPluginLayer}
|
||||
|
||||
- createMapRenderer(): default implementation (which called plugin's draw() method) has been removed. Plugin layers must implement createMapRenderer().
|
||||
- clone(): new pure virtual method. Plugin layer must implement clone().
|
||||
- legendSymbologyItems() has been removed. Use QgsMapLayer::setLegend() to provide legend nodes.
|
||||
|
||||
|
||||
QgsPluginLayerRegistry {#qgis_api_break_3_0_QgsPluginLayerRegistry}
|
||||
@ -1786,7 +1797,7 @@ QgsPointDisplacementRenderer {#qgis_api_break_3_0_QgsPointDisplacementRen
|
||||
----------------------------
|
||||
|
||||
- The deprecated method setDisplacementGroups() has been removed. This method has had no effect since QGIS 2.4
|
||||
- setMaxLabelScaleDenominator() and maxLabelScaleDenominator() were renamed to setMinimumLabelScale() and
|
||||
- setMaxLabelScaleDenominator() and maxLabelScaleDenominator() were renamed to setMinimumLabelScale() and
|
||||
minimumLabelScale() for consistency with other areas in the QGIS API.
|
||||
|
||||
|
||||
@ -2008,6 +2019,8 @@ QgsRuleBasedRenderer {#qgis_api_break_3_0_QgsRuleBasedRenderer}
|
||||
- QgsRuleBasedRenderer.Rule checkState() and setCheckState() were removed. Use active() and setActive() instead.
|
||||
- QgsRuleBasedRenderer.Rule updateElseRules() was removed.
|
||||
- QgsRuleBasedRenderer.Rule scaleMinDenom(), scaleMaxDenom(), setScaleMaxDenom() and setScaleMinDenom() were removed. Use minimumScale(), maximumScale(), setMinimumScale() and setMaximumScale() instead.
|
||||
- QgsRuleBasedRenderer.Rule legendSymbolItems() was removed.
|
||||
- QgsRuleBasedRenderer.Rule legendSymbolItemsV2() was renamed to legendSymbolItems()
|
||||
- startRender( QgsRenderContext& context, const QgsFields& fields ) was removed. Use startRender( QgsRenderContext& context, const QgsFields& fields, QString& filter ) instead.
|
||||
|
||||
|
||||
|
@ -43,12 +43,6 @@ Create new legend implementation for vector layer
|
||||
|
||||
static QgsMapLayerLegend *defaultRasterLegend( QgsRasterLayer *rl ) /Factory/;
|
||||
%Docstring
|
||||
Create new legend implementation for raster layer
|
||||
:rtype: QgsMapLayerLegend
|
||||
%End
|
||||
|
||||
static QgsMapLayerLegend *defaultPluginLegend( QgsPluginLayer *pl ) /Factory/;
|
||||
%Docstring
|
||||
Create new legend implementation for raster layer
|
||||
:rtype: QgsMapLayerLegend
|
||||
%End
|
||||
@ -137,23 +131,6 @@ class QgsDefaultRasterLayerLegend : QgsMapLayerLegend
|
||||
};
|
||||
|
||||
|
||||
class QgsDefaultPluginLayerLegend : QgsMapLayerLegend
|
||||
{
|
||||
%Docstring
|
||||
Default legend implementation for plugin layers
|
||||
.. versionadded:: 2.6
|
||||
%End
|
||||
|
||||
%TypeHeaderCode
|
||||
#include "qgsmaplayerlegend.h"
|
||||
%End
|
||||
public:
|
||||
explicit QgsDefaultPluginLayerLegend( QgsPluginLayer *pl );
|
||||
|
||||
virtual QList<QgsLayerTreeModelLegendNode *> createLayerTreeModelLegendNodes( QgsLayerTreeLayer *nodeLayer ) /Factory/;
|
||||
|
||||
};
|
||||
|
||||
/************************************************************************
|
||||
* This file has been generated automatically from *
|
||||
* *
|
||||
|
@ -52,12 +52,6 @@ Set extent of the layer
|
||||
.. versionadded:: 2.16
|
||||
%End
|
||||
|
||||
virtual QgsLegendSymbologyList legendSymbologyItems( QSize iconSize );
|
||||
%Docstring
|
||||
.. versionadded:: 2.1
|
||||
:rtype: QgsLegendSymbologyList
|
||||
%End
|
||||
|
||||
protected:
|
||||
};
|
||||
|
||||
|
@ -163,8 +163,7 @@ create renderer from XML element
|
||||
%End
|
||||
|
||||
virtual QDomElement save( QDomDocument &doc, const QgsReadWriteContext &context );
|
||||
virtual QgsLegendSymbologyList legendSymbologyItems( QSize iconSize );
|
||||
virtual QgsLegendSymbolListV2 legendSymbolItemsV2() const;
|
||||
virtual QgsLegendSymbolList legendSymbolItems() const;
|
||||
|
||||
virtual QSet< QString > legendKeysForFeature( QgsFeature &feature, QgsRenderContext &context );
|
||||
|
||||
|
@ -308,8 +308,7 @@ create renderer from XML element
|
||||
%End
|
||||
|
||||
virtual QDomElement save( QDomDocument &doc, const QgsReadWriteContext &context );
|
||||
virtual QgsLegendSymbologyList legendSymbologyItems( QSize iconSize );
|
||||
virtual QgsLegendSymbolListV2 legendSymbolItemsV2() const;
|
||||
virtual QgsLegendSymbolList legendSymbolItems() const;
|
||||
|
||||
virtual QSet< QString > legendKeysForFeature( QgsFeature &feature, QgsRenderContext &context );
|
||||
|
||||
|
@ -105,12 +105,12 @@ Proxy that will call this method on the embedded renderer.
|
||||
Proxy that will call this method on the embedded renderer.
|
||||
:rtype: QgsSymbolList
|
||||
%End
|
||||
virtual QgsLegendSymbologyList legendSymbologyItems( QSize iconSize );
|
||||
%Docstring
|
||||
Proxy that will call this method on the embedded renderer.
|
||||
:rtype: QgsLegendSymbologyList
|
||||
%End
|
||||
|
||||
virtual QgsLegendSymbolList legendSymbolItems() const;
|
||||
%Docstring
|
||||
Proxy that will call this method on the embedded renderer.
|
||||
:rtype: QgsLegendSymbolList
|
||||
%End
|
||||
|
||||
virtual bool willRenderFeature( QgsFeature &feat, QgsRenderContext &context );
|
||||
%Docstring
|
||||
|
@ -97,7 +97,7 @@ Set symbol of the item. Takes ownership of symbol.
|
||||
};
|
||||
|
||||
|
||||
typedef QList< QgsLegendSymbolItem > QgsLegendSymbolListV2;
|
||||
typedef QList< QgsLegendSymbolItem > QgsLegendSymbolList;
|
||||
|
||||
/************************************************************************
|
||||
* This file has been generated automatically from *
|
||||
|
@ -83,8 +83,7 @@ Optional label text
|
||||
virtual void startRender( QgsRenderContext &context, const QgsFields &fields );
|
||||
virtual void stopRender( QgsRenderContext &context );
|
||||
|
||||
virtual QgsLegendSymbologyList legendSymbologyItems( QSize iconSize );
|
||||
|
||||
virtual QgsLegendSymbolList legendSymbolItems() const;
|
||||
virtual void setEmbeddedRenderer( QgsFeatureRenderer *r /Transfer/ );
|
||||
|
||||
virtual const QgsFeatureRenderer *embeddedRenderer() const;
|
||||
|
@ -13,9 +13,6 @@
|
||||
|
||||
typedef QList<QgsSymbol *> QgsSymbolList;
|
||||
|
||||
typedef QList< QPair<QString, QPixmap> > QgsLegendSymbologyList;
|
||||
typedef QList< QPair<QString, QgsSymbol *> > QgsLegendSymbolList;
|
||||
|
||||
|
||||
|
||||
|
||||
@ -267,12 +264,6 @@ store renderer info to XML element
|
||||
used from subclasses to create SLD Rule elements following SLD v1.1 specs
|
||||
%End
|
||||
|
||||
virtual QgsLegendSymbologyList legendSymbologyItems( QSize iconSize );
|
||||
%Docstring
|
||||
return a list of symbology items for the legend
|
||||
:rtype: QgsLegendSymbologyList
|
||||
%End
|
||||
|
||||
virtual bool legendSymbolItemsCheckable() const;
|
||||
%Docstring
|
||||
.. versionadded:: 2.5
|
||||
@ -298,11 +289,10 @@ return a list of symbology items for the legend
|
||||
.. versionadded:: 2.14
|
||||
%End
|
||||
|
||||
|
||||
virtual QgsLegendSymbolListV2 legendSymbolItemsV2() const;
|
||||
virtual QgsLegendSymbolList legendSymbolItems() const;
|
||||
%Docstring
|
||||
.. versionadded:: 2.6
|
||||
:rtype: QgsLegendSymbolListV2
|
||||
:rtype: QgsLegendSymbolList
|
||||
%End
|
||||
|
||||
virtual QString legendClassificationAttribute() const;
|
||||
|
@ -118,11 +118,10 @@ Constructor takes ownership of the symbol
|
||||
:rtype: QgsSymbolList
|
||||
%End
|
||||
|
||||
|
||||
QgsLegendSymbolListV2 legendSymbolItemsV2( int currentLevel = -1 ) const;
|
||||
QgsLegendSymbolList legendSymbolItems( int currentLevel = -1 ) const;
|
||||
%Docstring
|
||||
.. versionadded:: 2.6
|
||||
:rtype: QgsLegendSymbolListV2
|
||||
:rtype: QgsLegendSymbolList
|
||||
%End
|
||||
|
||||
bool isFilterOK( QgsFeature &f, QgsRenderContext *context = 0 ) const;
|
||||
@ -486,13 +485,12 @@ return symbol for current feature. Should not be used individually: there could
|
||||
virtual QgsSymbolList symbols( QgsRenderContext &context );
|
||||
|
||||
virtual QDomElement save( QDomDocument &doc, const QgsReadWriteContext &context );
|
||||
virtual QgsLegendSymbologyList legendSymbologyItems( QSize iconSize );
|
||||
virtual bool legendSymbolItemsCheckable() const;
|
||||
virtual bool legendSymbolItemChecked( const QString &key );
|
||||
virtual void checkLegendSymbolItem( const QString &key, bool state = true );
|
||||
|
||||
virtual void setLegendSymbolItem( const QString &key, QgsSymbol *symbol /Transfer/ );
|
||||
virtual QgsLegendSymbolListV2 legendSymbolItemsV2() const;
|
||||
virtual QgsLegendSymbolList legendSymbolItems() const;
|
||||
virtual QString dump() const;
|
||||
virtual bool willRenderFeature( QgsFeature &feat, QgsRenderContext &context );
|
||||
virtual QgsSymbolList symbolsForFeature( QgsFeature &feat, QgsRenderContext &context );
|
||||
|
@ -48,8 +48,7 @@ create renderer from XML element
|
||||
:rtype: QgsFeatureRenderer
|
||||
%End
|
||||
virtual QDomElement save( QDomDocument &doc, const QgsReadWriteContext &context );
|
||||
virtual QgsLegendSymbologyList legendSymbologyItems( QSize iconSize );
|
||||
virtual QgsLegendSymbolListV2 legendSymbolItemsV2() const;
|
||||
virtual QgsLegendSymbolList legendSymbolItems() const;
|
||||
virtual QSet< QString > legendKeysForFeature( QgsFeature &feature, QgsRenderContext &context );
|
||||
virtual void setLegendSymbolItem( const QString &key, QgsSymbol *symbol /Transfer/ );
|
||||
|
||||
|
@ -239,7 +239,7 @@ void QgsSymbolLegendNode::checkAll( bool state )
|
||||
if ( !vlayer || !vlayer->renderer() )
|
||||
return;
|
||||
|
||||
QgsLegendSymbolListV2 symbolList = vlayer->renderer()->legendSymbolItemsV2();
|
||||
QgsLegendSymbolList symbolList = vlayer->renderer()->legendSymbolItems();
|
||||
Q_FOREACH ( const QgsLegendSymbolItem &item, symbolList )
|
||||
{
|
||||
vlayer->renderer()->checkLegendSymbolItem( item.ruleKey(), state );
|
||||
|
@ -40,11 +40,6 @@ QgsMapLayerLegend *QgsMapLayerLegend::defaultRasterLegend( QgsRasterLayer *rl )
|
||||
return new QgsDefaultRasterLayerLegend( rl );
|
||||
}
|
||||
|
||||
QgsMapLayerLegend *QgsMapLayerLegend::defaultPluginLegend( QgsPluginLayer *pl )
|
||||
{
|
||||
return new QgsDefaultPluginLayerLegend( pl );
|
||||
}
|
||||
|
||||
// -------------------------------------------------------------------------
|
||||
|
||||
|
||||
@ -199,7 +194,7 @@ QList<QgsLayerTreeModelLegendNode *> QgsDefaultVectorLayerLegend::createLayerTre
|
||||
nodes.append( new QgsSimpleLegendNode( nodeLayer, r->legendClassificationAttribute() ) );
|
||||
}
|
||||
|
||||
Q_FOREACH ( const QgsLegendSymbolItem &i, r->legendSymbolItemsV2() )
|
||||
Q_FOREACH ( const QgsLegendSymbolItem &i, r->legendSymbolItems() )
|
||||
{
|
||||
QgsSymbolLegendNode *n = new QgsSymbolLegendNode( nodeLayer, i );
|
||||
nodes.append( n );
|
||||
@ -266,32 +261,3 @@ QList<QgsLayerTreeModelLegendNode *> QgsDefaultRasterLayerLegend::createLayerTre
|
||||
|
||||
return nodes;
|
||||
}
|
||||
|
||||
|
||||
// -------------------------------------------------------------------------
|
||||
|
||||
|
||||
QgsDefaultPluginLayerLegend::QgsDefaultPluginLayerLegend( QgsPluginLayer *pl )
|
||||
: mLayer( pl )
|
||||
{
|
||||
}
|
||||
|
||||
QList<QgsLayerTreeModelLegendNode *> QgsDefaultPluginLayerLegend::createLayerTreeModelLegendNodes( QgsLayerTreeLayer *nodeLayer )
|
||||
{
|
||||
QList<QgsLayerTreeModelLegendNode *> nodes;
|
||||
|
||||
QSize iconSize( 16, 16 );
|
||||
QgsLegendSymbologyList symbologyList = mLayer->legendSymbologyItems( iconSize );
|
||||
|
||||
if ( symbologyList.isEmpty() )
|
||||
return nodes;
|
||||
|
||||
typedef QPair<QString, QPixmap> XY;
|
||||
Q_FOREACH ( const XY &item, symbologyList )
|
||||
{
|
||||
nodes << new QgsSimpleLegendNode( nodeLayer, item.first, QIcon( item.second ) );
|
||||
}
|
||||
|
||||
return nodes;
|
||||
}
|
||||
|
||||
|
@ -56,9 +56,6 @@ class CORE_EXPORT QgsMapLayerLegend : public QObject
|
||||
//! Create new legend implementation for raster layer
|
||||
static QgsMapLayerLegend *defaultRasterLegend( QgsRasterLayer *rl ) SIP_FACTORY;
|
||||
|
||||
//! Create new legend implementation for raster layer
|
||||
static QgsMapLayerLegend *defaultPluginLegend( QgsPluginLayer *pl ) SIP_FACTORY;
|
||||
|
||||
signals:
|
||||
//! Emitted when existing items/nodes got invalid and should be replaced by new ones
|
||||
void itemsChanged();
|
||||
@ -124,21 +121,4 @@ class CORE_EXPORT QgsDefaultRasterLayerLegend : public QgsMapLayerLegend
|
||||
};
|
||||
|
||||
|
||||
/** \ingroup core
|
||||
* Default legend implementation for plugin layers
|
||||
* \since QGIS 2.6
|
||||
*/
|
||||
class CORE_EXPORT QgsDefaultPluginLayerLegend : public QgsMapLayerLegend
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
explicit QgsDefaultPluginLayerLegend( QgsPluginLayer *pl );
|
||||
|
||||
virtual QList<QgsLayerTreeModelLegendNode *> createLayerTreeModelLegendNodes( QgsLayerTreeLayer *nodeLayer ) SIP_FACTORY override;
|
||||
|
||||
private:
|
||||
QgsPluginLayer *mLayer = nullptr;
|
||||
};
|
||||
|
||||
#endif // QGSMAPLAYERLEGEND_H
|
||||
|
@ -308,7 +308,7 @@ void QgsMapThemeCollection::applyMapThemeCheckedLegendNodesToLayer( const MapThe
|
||||
|
||||
bool someNodesUnchecked = layerRec.usingLegendItems;
|
||||
|
||||
Q_FOREACH ( const QgsLegendSymbolItem &item, vlayer->renderer()->legendSymbolItemsV2() )
|
||||
Q_FOREACH ( const QgsLegendSymbolItem &item, vlayer->renderer()->legendSymbolItems() )
|
||||
{
|
||||
bool checked = renderer->legendSymbolItemChecked( item.ruleKey() );
|
||||
bool shouldBeChecked = someNodesUnchecked ? layerRec.checkedLegendItems.contains( item.ruleKey() ) : true;
|
||||
|
@ -21,7 +21,6 @@ QgsPluginLayer::QgsPluginLayer( const QString &layerType, const QString &layerNa
|
||||
: QgsMapLayer( PluginLayer, layerName )
|
||||
, mPluginLayerType( layerType )
|
||||
{
|
||||
setLegend( QgsMapLayerLegend::defaultPluginLegend( this ) );
|
||||
}
|
||||
|
||||
QgsPluginLayer::~QgsPluginLayer()
|
||||
@ -45,9 +44,3 @@ void QgsPluginLayer::setSource( const QString &source )
|
||||
{
|
||||
mDataSource = source;
|
||||
}
|
||||
|
||||
QgsLegendSymbologyList QgsPluginLayer::legendSymbologyItems( QSize iconSize )
|
||||
{
|
||||
Q_UNUSED( iconSize );
|
||||
return QgsLegendSymbologyList();
|
||||
}
|
||||
|
@ -18,7 +18,6 @@
|
||||
#include "qgis_core.h"
|
||||
#include "qgsmaplayer.h"
|
||||
|
||||
typedef QList< QPair<QString, QPixmap> > QgsLegendSymbologyList SIP_SKIP;
|
||||
|
||||
/** \ingroup core
|
||||
Base class for plugin layers. These can be implemented by plugins
|
||||
@ -53,11 +52,6 @@ class CORE_EXPORT QgsPluginLayer : public QgsMapLayer
|
||||
*/
|
||||
void setSource( const QString &source );
|
||||
|
||||
//! return a list of symbology items for the legend
|
||||
//! (default implementation returns nothing)
|
||||
//! \since QGIS v2.1
|
||||
virtual QgsLegendSymbologyList legendSymbologyItems( QSize iconSize );
|
||||
|
||||
protected:
|
||||
QString mPluginLayerType;
|
||||
};
|
||||
|
@ -20,7 +20,7 @@ bool QgsVectorLayerFeatureCounter::run()
|
||||
|
||||
for ( ; symbolIt != symbolList.constEnd(); ++symbolIt )
|
||||
{
|
||||
mSymbolFeatureCountMap.insert( symbolIt->first, 0 );
|
||||
mSymbolFeatureCountMap.insert( symbolIt->label(), 0 );
|
||||
}
|
||||
|
||||
// If there are no features to be counted, we can spare us the trouble
|
||||
|
@ -730,38 +730,21 @@ QDomElement QgsCategorizedSymbolRenderer::save( QDomDocument &doc, const QgsRead
|
||||
return rendererElem;
|
||||
}
|
||||
|
||||
QgsLegendSymbologyList QgsCategorizedSymbolRenderer::legendSymbologyItems( QSize iconSize )
|
||||
{
|
||||
QgsLegendSymbologyList lst;
|
||||
int count = categories().count();
|
||||
lst.reserve( count );
|
||||
for ( int i = 0; i < count; i++ )
|
||||
{
|
||||
const QgsRendererCategory &cat = categories()[i];
|
||||
QPixmap pix = QgsSymbolLayerUtils::symbolPreviewPixmap( cat.symbol(), iconSize );
|
||||
lst << qMakePair( cat.label(), pix );
|
||||
}
|
||||
return lst;
|
||||
}
|
||||
|
||||
QgsLegendSymbolList QgsCategorizedSymbolRenderer::legendSymbolItems( double scale, const QString &rule )
|
||||
QgsLegendSymbolList QgsCategorizedSymbolRenderer::baseLegendSymbolItems() const
|
||||
{
|
||||
Q_UNUSED( scale );
|
||||
QgsLegendSymbolList lst;
|
||||
|
||||
int i = 0;
|
||||
Q_FOREACH ( const QgsRendererCategory &cat, mCategories )
|
||||
{
|
||||
if ( rule.isEmpty() || cat.label() == rule )
|
||||
{
|
||||
lst << qMakePair( cat.label(), cat.symbol() );
|
||||
}
|
||||
lst << QgsLegendSymbolItem( cat.symbol(), cat.label(), QString::number( i++ ), true );
|
||||
}
|
||||
return lst;
|
||||
}
|
||||
|
||||
QgsLegendSymbolListV2 QgsCategorizedSymbolRenderer::legendSymbolItemsV2() const
|
||||
QgsLegendSymbolList QgsCategorizedSymbolRenderer::legendSymbolItems() const
|
||||
{
|
||||
QgsLegendSymbolListV2 lst;
|
||||
QgsLegendSymbolList lst;
|
||||
if ( mSourceSymbol && mSourceSymbol->type() == QgsSymbol::Marker )
|
||||
{
|
||||
// check that all symbols that have the same size expression
|
||||
@ -775,7 +758,7 @@ QgsLegendSymbolListV2 QgsCategorizedSymbolRenderer::legendSymbolItemsV2() const
|
||||
if ( sSize != ddSize )
|
||||
{
|
||||
// no common size expression
|
||||
return QgsFeatureRenderer::legendSymbolItemsV2();
|
||||
return baseLegendSymbolItems();
|
||||
}
|
||||
}
|
||||
else
|
||||
@ -786,7 +769,7 @@ QgsLegendSymbolListV2 QgsCategorizedSymbolRenderer::legendSymbolItemsV2() const
|
||||
|
||||
if ( !ddSize || !ddSize.isActive() )
|
||||
{
|
||||
return QgsFeatureRenderer::legendSymbolItemsV2();
|
||||
return baseLegendSymbolItems();
|
||||
}
|
||||
|
||||
if ( const QgsSizeScaleTransformer *sizeTransformer = dynamic_cast< const QgsSizeScaleTransformer * >( ddSize.transformer() ) )
|
||||
@ -803,14 +786,14 @@ QgsLegendSymbolListV2 QgsCategorizedSymbolRenderer::legendSymbolItemsV2() const
|
||||
lst << si;
|
||||
}
|
||||
// now list the categorized symbols
|
||||
const QgsLegendSymbolListV2 list2 = QgsFeatureRenderer::legendSymbolItemsV2() ;
|
||||
const QgsLegendSymbolList list2 = baseLegendSymbolItems();
|
||||
Q_FOREACH ( const QgsLegendSymbolItem &item, list2 )
|
||||
lst << item;
|
||||
return lst;
|
||||
}
|
||||
}
|
||||
|
||||
return QgsFeatureRenderer::legendSymbolItemsV2();
|
||||
return baseLegendSymbolItems();
|
||||
}
|
||||
|
||||
QSet<QString> QgsCategorizedSymbolRenderer::legendKeysForFeature( QgsFeature &feature, QgsRenderContext &context )
|
||||
|
@ -131,9 +131,7 @@ class CORE_EXPORT QgsCategorizedSymbolRenderer : public QgsFeatureRenderer
|
||||
static QgsFeatureRenderer *create( QDomElement &element, const QgsReadWriteContext &context ) SIP_FACTORY;
|
||||
|
||||
virtual QDomElement save( QDomDocument &doc, const QgsReadWriteContext &context ) override;
|
||||
virtual QgsLegendSymbologyList legendSymbologyItems( QSize iconSize ) override;
|
||||
virtual QgsLegendSymbolList legendSymbolItems( double scale = -1, const QString &rule = QString() ) override SIP_SKIP;
|
||||
QgsLegendSymbolListV2 legendSymbolItemsV2() const override;
|
||||
QgsLegendSymbolList legendSymbolItems() const override;
|
||||
virtual QSet< QString > legendKeysForFeature( QgsFeature &feature, QgsRenderContext &context ) override;
|
||||
|
||||
/** Returns the renderer's source symbol, which is the base symbol used for the each categories' symbol before applying
|
||||
@ -210,6 +208,8 @@ class CORE_EXPORT QgsCategorizedSymbolRenderer : public QgsFeatureRenderer
|
||||
//! Returns calculated classification value for a feature
|
||||
QVariant valueForFeature( QgsFeature &feature, QgsRenderContext &context ) const;
|
||||
|
||||
//! Returns list of legend symbol items from individual categories
|
||||
QgsLegendSymbolList baseLegendSymbolItems() const;
|
||||
};
|
||||
|
||||
#endif // QGSCATEGORIZEDSYMBOLRENDERERV2_H
|
||||
|
@ -1136,23 +1136,20 @@ QDomElement QgsGraduatedSymbolRenderer::save( QDomDocument &doc, const QgsReadWr
|
||||
return rendererElem;
|
||||
}
|
||||
|
||||
QgsLegendSymbologyList QgsGraduatedSymbolRenderer::legendSymbologyItems( QSize iconSize )
|
||||
QgsLegendSymbolList QgsGraduatedSymbolRenderer::baseLegendSymbolItems() const
|
||||
{
|
||||
QgsLegendSymbologyList lst;
|
||||
int count = ranges().count();
|
||||
lst.reserve( count );
|
||||
for ( int i = 0; i < count; i++ )
|
||||
QgsLegendSymbolList lst;
|
||||
int i = 0;
|
||||
Q_FOREACH ( const QgsRendererRange &range, mRanges )
|
||||
{
|
||||
const QgsRendererRange &range = ranges()[i];
|
||||
QPixmap pix = QgsSymbolLayerUtils::symbolPreviewPixmap( range.symbol(), iconSize );
|
||||
lst << qMakePair( range.label(), pix );
|
||||
lst << QgsLegendSymbolItem( range.symbol(), range.label(), QString::number( i++ ), true );
|
||||
}
|
||||
return lst;
|
||||
}
|
||||
|
||||
QgsLegendSymbolListV2 QgsGraduatedSymbolRenderer::legendSymbolItemsV2() const
|
||||
QgsLegendSymbolList QgsGraduatedSymbolRenderer::legendSymbolItems() const
|
||||
{
|
||||
QgsLegendSymbolListV2 list;
|
||||
QgsLegendSymbolList list;
|
||||
if ( mSourceSymbol && mSourceSymbol->type() == QgsSymbol::Marker )
|
||||
{
|
||||
// check that all symbols that have the same size expression
|
||||
@ -1166,7 +1163,7 @@ QgsLegendSymbolListV2 QgsGraduatedSymbolRenderer::legendSymbolItemsV2() const
|
||||
if ( sSize && sSize != ddSize )
|
||||
{
|
||||
// no common size expression
|
||||
return QgsFeatureRenderer::legendSymbolItemsV2();
|
||||
return baseLegendSymbolItems();
|
||||
}
|
||||
}
|
||||
else
|
||||
@ -1177,7 +1174,7 @@ QgsLegendSymbolListV2 QgsGraduatedSymbolRenderer::legendSymbolItemsV2() const
|
||||
|
||||
if ( !ddSize || !ddSize.isActive() )
|
||||
{
|
||||
return QgsFeatureRenderer::legendSymbolItemsV2();
|
||||
return baseLegendSymbolItems();
|
||||
}
|
||||
|
||||
if ( const QgsSizeScaleTransformer *sizeTransformer = dynamic_cast< const QgsSizeScaleTransformer * >( ddSize.transformer() ) )
|
||||
@ -1194,14 +1191,14 @@ QgsLegendSymbolListV2 QgsGraduatedSymbolRenderer::legendSymbolItemsV2() const
|
||||
list << si;
|
||||
}
|
||||
// now list the graduated symbols
|
||||
const QgsLegendSymbolListV2 list2 = QgsFeatureRenderer::legendSymbolItemsV2() ;
|
||||
const QgsLegendSymbolList list2 = baseLegendSymbolItems();
|
||||
Q_FOREACH ( const QgsLegendSymbolItem &item, list2 )
|
||||
list << item;
|
||||
return list;
|
||||
}
|
||||
}
|
||||
|
||||
return QgsFeatureRenderer::legendSymbolItemsV2();
|
||||
return baseLegendSymbolItems();
|
||||
}
|
||||
|
||||
QSet< QString > QgsGraduatedSymbolRenderer::legendKeysForFeature( QgsFeature &feature, QgsRenderContext &context )
|
||||
@ -1220,21 +1217,6 @@ QSet< QString > QgsGraduatedSymbolRenderer::legendKeysForFeature( QgsFeature &fe
|
||||
return QSet< QString >();
|
||||
}
|
||||
|
||||
QgsLegendSymbolList QgsGraduatedSymbolRenderer::legendSymbolItems( double scale, const QString &rule )
|
||||
{
|
||||
Q_UNUSED( scale );
|
||||
QgsLegendSymbolList lst;
|
||||
|
||||
Q_FOREACH ( const QgsRendererRange &range, mRanges )
|
||||
{
|
||||
if ( rule.isEmpty() || range.label() == rule )
|
||||
{
|
||||
lst << qMakePair( range.label(), range.symbol() );
|
||||
}
|
||||
}
|
||||
return lst;
|
||||
}
|
||||
|
||||
QgsSymbol *QgsGraduatedSymbolRenderer::sourceSymbol()
|
||||
{
|
||||
return mSourceSymbol.get();
|
||||
|
@ -250,9 +250,7 @@ class CORE_EXPORT QgsGraduatedSymbolRenderer : public QgsFeatureRenderer
|
||||
static QgsFeatureRenderer *create( QDomElement &element, const QgsReadWriteContext &context ) SIP_FACTORY;
|
||||
|
||||
virtual QDomElement save( QDomDocument &doc, const QgsReadWriteContext &context ) override;
|
||||
virtual QgsLegendSymbologyList legendSymbologyItems( QSize iconSize ) override;
|
||||
virtual QgsLegendSymbolList legendSymbolItems( double scale = -1, const QString &rule = QString() ) override SIP_SKIP;
|
||||
QgsLegendSymbolListV2 legendSymbolItemsV2() const override;
|
||||
QgsLegendSymbolList legendSymbolItems() const override;
|
||||
virtual QSet< QString > legendKeysForFeature( QgsFeature &feature, QgsRenderContext &context ) override;
|
||||
|
||||
/** Returns the renderer's source symbol, which is the base symbol used for the each classes' symbol before applying
|
||||
@ -361,6 +359,9 @@ class CORE_EXPORT QgsGraduatedSymbolRenderer : public QgsFeatureRenderer
|
||||
*/
|
||||
QVariant valueForFeature( QgsFeature &feature, QgsRenderContext &context ) const;
|
||||
|
||||
//! Returns list of legend symbol items from individual ranges
|
||||
QgsLegendSymbolList baseLegendSymbolItems() const;
|
||||
|
||||
#ifdef SIP_RUN
|
||||
QgsGraduatedSymbolRenderer( const QgsGraduatedSymbolRenderer & );
|
||||
QgsGraduatedSymbolRenderer &operator=( const QgsGraduatedSymbolRenderer & );
|
||||
|
@ -471,22 +471,13 @@ QSet<QString> QgsInvertedPolygonRenderer::usedAttributes( const QgsRenderContext
|
||||
return mSubRenderer->usedAttributes( context );
|
||||
}
|
||||
|
||||
QgsLegendSymbologyList QgsInvertedPolygonRenderer::legendSymbologyItems( QSize iconSize )
|
||||
{
|
||||
if ( !mSubRenderer )
|
||||
{
|
||||
return QgsLegendSymbologyList();
|
||||
}
|
||||
return mSubRenderer->legendSymbologyItems( iconSize );
|
||||
}
|
||||
|
||||
QgsLegendSymbolList QgsInvertedPolygonRenderer::legendSymbolItems( double scale, const QString &rule )
|
||||
QgsLegendSymbolList QgsInvertedPolygonRenderer::legendSymbolItems() const
|
||||
{
|
||||
if ( !mSubRenderer )
|
||||
{
|
||||
return QgsLegendSymbolList();
|
||||
}
|
||||
return mSubRenderer->legendSymbolItems( scale, rule );
|
||||
return mSubRenderer->legendSymbolItems();
|
||||
}
|
||||
|
||||
bool QgsInvertedPolygonRenderer::willRenderFeature( QgsFeature &feat, QgsRenderContext &context )
|
||||
|
@ -98,13 +98,10 @@ class CORE_EXPORT QgsInvertedPolygonRenderer : public QgsFeatureRenderer
|
||||
/** Proxy that will call this method on the embedded renderer.
|
||||
*/
|
||||
virtual QgsSymbolList originalSymbolsForFeature( QgsFeature &feat, QgsRenderContext &context ) override;
|
||||
//! Proxy that will call this method on the embedded renderer.
|
||||
virtual QgsLegendSymbologyList legendSymbologyItems( QSize iconSize ) override;
|
||||
|
||||
/** Proxy that will call this method on the embedded renderer.
|
||||
* \note not available in Python bindings
|
||||
*/
|
||||
virtual QgsLegendSymbolList legendSymbolItems( double scale = -1, const QString &rule = "" ) override SIP_SKIP;
|
||||
virtual QgsLegendSymbolList legendSymbolItems() const override;
|
||||
|
||||
/** Proxy that will call this method on the embedded renderer.
|
||||
*/
|
||||
|
@ -96,6 +96,6 @@ class CORE_EXPORT QgsLegendSymbolItem
|
||||
};
|
||||
|
||||
|
||||
typedef QList< QgsLegendSymbolItem > QgsLegendSymbolListV2;
|
||||
typedef QList< QgsLegendSymbolItem > QgsLegendSymbolList;
|
||||
|
||||
#endif // QGSLEGENDSYMBOLITEMV2_H
|
||||
|
@ -330,25 +330,15 @@ void QgsPointDistanceRenderer::stopRender( QgsRenderContext &context )
|
||||
mRenderer->stopRender( context );
|
||||
}
|
||||
|
||||
QgsLegendSymbologyList QgsPointDistanceRenderer::legendSymbologyItems( QSize iconSize )
|
||||
QgsLegendSymbolList QgsPointDistanceRenderer::legendSymbolItems() const
|
||||
{
|
||||
if ( mRenderer )
|
||||
{
|
||||
return mRenderer->legendSymbologyItems( iconSize );
|
||||
}
|
||||
return QgsLegendSymbologyList();
|
||||
}
|
||||
|
||||
QgsLegendSymbolList QgsPointDistanceRenderer::legendSymbolItems( double scale, const QString &rule )
|
||||
{
|
||||
if ( mRenderer )
|
||||
{
|
||||
return mRenderer->legendSymbolItems( scale, rule );
|
||||
return mRenderer->legendSymbolItems();
|
||||
}
|
||||
return QgsLegendSymbolList();
|
||||
}
|
||||
|
||||
|
||||
QgsRectangle QgsPointDistanceRenderer::searchRect( const QgsPointXY &p, double distance ) const
|
||||
{
|
||||
return QgsRectangle( p.x() - distance, p.y() - distance, p.x() + distance, p.y() + distance );
|
||||
|
@ -90,8 +90,7 @@ class CORE_EXPORT QgsPointDistanceRenderer: public QgsFeatureRenderer
|
||||
virtual bool willRenderFeature( QgsFeature &feat, QgsRenderContext &context ) override;
|
||||
virtual void startRender( QgsRenderContext &context, const QgsFields &fields ) override;
|
||||
void stopRender( QgsRenderContext &context ) override;
|
||||
QgsLegendSymbologyList legendSymbologyItems( QSize iconSize ) override;
|
||||
QgsLegendSymbolList legendSymbolItems( double scale = -1, const QString &rule = "" ) override SIP_SKIP;
|
||||
virtual QgsLegendSymbolList legendSymbolItems() const override;
|
||||
void setEmbeddedRenderer( QgsFeatureRenderer *r SIP_TRANSFER ) override;
|
||||
const QgsFeatureRenderer *embeddedRenderer() const override;
|
||||
void setLegendSymbolItem( const QString &key, QgsSymbol *symbol SIP_TRANSFER ) override;
|
||||
|
@ -274,13 +274,6 @@ QDomElement QgsFeatureRenderer::writeSld( QDomDocument &doc, const QString &styl
|
||||
return userStyleElem;
|
||||
}
|
||||
|
||||
QgsLegendSymbologyList QgsFeatureRenderer::legendSymbologyItems( QSize iconSize )
|
||||
{
|
||||
Q_UNUSED( iconSize );
|
||||
// empty list by default
|
||||
return QgsLegendSymbologyList();
|
||||
}
|
||||
|
||||
bool QgsFeatureRenderer::legendSymbolItemsCheckable() const
|
||||
{
|
||||
return false;
|
||||
@ -304,25 +297,11 @@ void QgsFeatureRenderer::setLegendSymbolItem( const QString &key, QgsSymbol *sym
|
||||
delete symbol;
|
||||
}
|
||||
|
||||
QgsLegendSymbolList QgsFeatureRenderer::legendSymbolItems( double scale, const QString &rule )
|
||||
QgsLegendSymbolList QgsFeatureRenderer::legendSymbolItems() const
|
||||
{
|
||||
Q_UNUSED( scale );
|
||||
Q_UNUSED( rule );
|
||||
return QgsLegendSymbolList();
|
||||
}
|
||||
|
||||
QgsLegendSymbolListV2 QgsFeatureRenderer::legendSymbolItemsV2() const
|
||||
{
|
||||
QgsLegendSymbolList lst = const_cast<QgsFeatureRenderer *>( this )->legendSymbolItems();
|
||||
QgsLegendSymbolListV2 lst2;
|
||||
int i = 0;
|
||||
for ( QgsLegendSymbolList::const_iterator it = lst.begin(); it != lst.end(); ++it, ++i )
|
||||
{
|
||||
lst2 << QgsLegendSymbolItem( it->second, it->first, QString::number( i ), legendSymbolItemsCheckable() );
|
||||
}
|
||||
return lst2;
|
||||
}
|
||||
|
||||
void QgsFeatureRenderer::setVertexMarkerAppearance( int type, int size )
|
||||
{
|
||||
mCurrentVertexMarkerType = type;
|
||||
|
@ -43,9 +43,6 @@ typedef QMap<QString, QString> QgsStringMap SIP_SKIP;
|
||||
typedef QList<QgsSymbol *> QgsSymbolList;
|
||||
typedef QMap<QString, QgsSymbol * > QgsSymbolMap SIP_SKIP;
|
||||
|
||||
typedef QList< QPair<QString, QPixmap> > QgsLegendSymbologyList;
|
||||
typedef QList< QPair<QString, QgsSymbol *> > QgsLegendSymbolList;
|
||||
|
||||
#include "qgslegendsymbolitem.h"
|
||||
|
||||
|
||||
@ -281,9 +278,6 @@ class CORE_EXPORT QgsFeatureRenderer
|
||||
( void ) props; // warning avoidance
|
||||
}
|
||||
|
||||
//! return a list of symbology items for the legend
|
||||
virtual QgsLegendSymbologyList legendSymbologyItems( QSize iconSize );
|
||||
|
||||
//! items of symbology items in legend should be checkable
|
||||
//! \since QGIS 2.5
|
||||
virtual bool legendSymbolItemsCheckable() const;
|
||||
@ -303,17 +297,9 @@ class CORE_EXPORT QgsFeatureRenderer
|
||||
*/
|
||||
virtual void setLegendSymbolItem( const QString &key, QgsSymbol *symbol SIP_TRANSFER );
|
||||
|
||||
/**
|
||||
* Return a list of legend item text / symbol.
|
||||
* The \a scale value indicates the scale denominator for the legend symbols, e.g. 1000.0 for a 1:1000 map.
|
||||
* \note not available in Python bindings
|
||||
*/
|
||||
virtual QgsLegendSymbolList legendSymbolItems( double scale = -1, const QString &rule = "" ) SIP_SKIP;
|
||||
|
||||
//! Return a list of symbology items for the legend. Better choice than legendSymbolItems().
|
||||
//! Default fallback implementation just uses legendSymbolItems() implementation
|
||||
//! Returns a list of symbology items for the legend
|
||||
//! \since QGIS 2.6
|
||||
virtual QgsLegendSymbolListV2 legendSymbolItemsV2() const;
|
||||
virtual QgsLegendSymbolList legendSymbolItems() const;
|
||||
|
||||
//! If supported by the renderer, return classification attribute for the use in legend
|
||||
//! \since QGIS 2.6
|
||||
|
@ -236,25 +236,9 @@ void QgsRuleBasedRenderer::Rule::setFilterExpression( const QString &filterExp )
|
||||
initFilter();
|
||||
}
|
||||
|
||||
QgsLegendSymbolList QgsRuleBasedRenderer::Rule::legendSymbolItems( double scale, const QString &ruleFilter ) const
|
||||
QgsLegendSymbolList QgsRuleBasedRenderer::Rule::legendSymbolItems( int currentLevel ) const
|
||||
{
|
||||
QgsLegendSymbolList lst;
|
||||
if ( mSymbol && ( ruleFilter.isEmpty() || mLabel == ruleFilter ) )
|
||||
lst << qMakePair( mLabel, mSymbol );
|
||||
|
||||
Q_FOREACH ( Rule *rule, mChildren )
|
||||
{
|
||||
if ( qgsDoubleNear( scale, -1 ) || rule->isScaleOK( scale ) )
|
||||
{
|
||||
lst << rule->legendSymbolItems( scale, ruleFilter );
|
||||
}
|
||||
}
|
||||
return lst;
|
||||
}
|
||||
|
||||
QgsLegendSymbolListV2 QgsRuleBasedRenderer::Rule::legendSymbolItemsV2( int currentLevel ) const
|
||||
{
|
||||
QgsLegendSymbolListV2 lst;
|
||||
if ( currentLevel != -1 ) // root rule should not be shown
|
||||
{
|
||||
lst << QgsLegendSymbolItem( mSymbol, mLabel, mRuleKey, true, mMaximumScale, mMinimumScale, currentLevel, mParent ? mParent->mRuleKey : QString() );
|
||||
@ -263,7 +247,7 @@ QgsLegendSymbolListV2 QgsRuleBasedRenderer::Rule::legendSymbolItemsV2( int curre
|
||||
for ( RuleList::const_iterator it = mChildren.constBegin(); it != mChildren.constEnd(); ++it )
|
||||
{
|
||||
Rule *rule = *it;
|
||||
lst << rule->legendSymbolItemsV2( currentLevel + 1 );
|
||||
lst << rule->legendSymbolItems( currentLevel + 1 );
|
||||
}
|
||||
return lst;
|
||||
}
|
||||
@ -981,19 +965,6 @@ QDomElement QgsRuleBasedRenderer::save( QDomDocument &doc, const QgsReadWriteCon
|
||||
return rendererElem;
|
||||
}
|
||||
|
||||
QgsLegendSymbologyList QgsRuleBasedRenderer::legendSymbologyItems( QSize iconSize )
|
||||
{
|
||||
QgsLegendSymbologyList lst;
|
||||
QgsLegendSymbolList items = legendSymbolItems();
|
||||
for ( QgsLegendSymbolList::iterator it = items.begin(); it != items.end(); ++it )
|
||||
{
|
||||
QPair<QString, QgsSymbol *> pair = *it;
|
||||
QPixmap pix = QgsSymbolLayerUtils::symbolPreviewPixmap( pair.second, iconSize );
|
||||
lst << qMakePair( pair.first, pix );
|
||||
}
|
||||
return lst;
|
||||
}
|
||||
|
||||
bool QgsRuleBasedRenderer::legendSymbolItemsCheckable() const
|
||||
{
|
||||
return true;
|
||||
@ -1021,14 +992,9 @@ void QgsRuleBasedRenderer::setLegendSymbolItem( const QString &key, QgsSymbol *s
|
||||
delete symbol;
|
||||
}
|
||||
|
||||
QgsLegendSymbolList QgsRuleBasedRenderer::legendSymbolItems( double scale, const QString &rule )
|
||||
QgsLegendSymbolList QgsRuleBasedRenderer::legendSymbolItems() const
|
||||
{
|
||||
return mRootRule->legendSymbolItems( scale, rule );
|
||||
}
|
||||
|
||||
QgsLegendSymbolListV2 QgsRuleBasedRenderer::legendSymbolItemsV2() const
|
||||
{
|
||||
return mRootRule->legendSymbolItemsV2();
|
||||
return mRootRule->legendSymbolItems();
|
||||
}
|
||||
|
||||
|
||||
|
@ -155,11 +155,8 @@ class CORE_EXPORT QgsRuleBasedRenderer : public QgsFeatureRenderer
|
||||
//! \note available in Python bindings as symbol2
|
||||
QgsSymbolList symbols( const QgsRenderContext &context = QgsRenderContext() ) const;
|
||||
|
||||
//! \note not available in Python bindings
|
||||
QgsLegendSymbolList legendSymbolItems( double scale = -1, const QString &rule = "" ) const SIP_SKIP;
|
||||
|
||||
//! \since QGIS 2.6
|
||||
QgsLegendSymbolListV2 legendSymbolItemsV2( int currentLevel = -1 ) const;
|
||||
QgsLegendSymbolList legendSymbolItems( int currentLevel = -1 ) const;
|
||||
|
||||
/**
|
||||
* Check if a given feature shall be rendered by this rule
|
||||
@ -468,14 +465,12 @@ class CORE_EXPORT QgsRuleBasedRenderer : public QgsFeatureRenderer
|
||||
virtual QgsSymbolList symbols( QgsRenderContext &context ) override;
|
||||
|
||||
virtual QDomElement save( QDomDocument &doc, const QgsReadWriteContext &context ) override;
|
||||
virtual QgsLegendSymbologyList legendSymbologyItems( QSize iconSize ) override;
|
||||
virtual bool legendSymbolItemsCheckable() const override;
|
||||
virtual bool legendSymbolItemChecked( const QString &key ) override;
|
||||
virtual void checkLegendSymbolItem( const QString &key, bool state = true ) override;
|
||||
|
||||
virtual void setLegendSymbolItem( const QString &key, QgsSymbol *symbol SIP_TRANSFER ) override;
|
||||
virtual QgsLegendSymbolList legendSymbolItems( double scale = -1, const QString &rule = "" ) override SIP_SKIP;
|
||||
virtual QgsLegendSymbolListV2 legendSymbolItemsV2() const override;
|
||||
virtual QgsLegendSymbolList legendSymbolItems() const override;
|
||||
virtual QString dump() const override;
|
||||
virtual bool willRenderFeature( QgsFeature &feat, QgsRenderContext &context ) override;
|
||||
virtual QgsSymbolList symbolsForFeature( QgsFeature &feat, QgsRenderContext &context ) override;
|
||||
|
@ -278,29 +278,9 @@ QDomElement QgsSingleSymbolRenderer::save( QDomDocument &doc, const QgsReadWrite
|
||||
return rendererElem;
|
||||
}
|
||||
|
||||
QgsLegendSymbologyList QgsSingleSymbolRenderer::legendSymbologyItems( QSize iconSize )
|
||||
QgsLegendSymbolList QgsSingleSymbolRenderer::legendSymbolItems() const
|
||||
{
|
||||
QgsLegendSymbologyList lst;
|
||||
if ( mSymbol )
|
||||
{
|
||||
QPixmap pix = QgsSymbolLayerUtils::symbolPreviewPixmap( mSymbol.get(), iconSize );
|
||||
lst << qMakePair( QString(), pix );
|
||||
}
|
||||
return lst;
|
||||
}
|
||||
|
||||
QgsLegendSymbolList QgsSingleSymbolRenderer::legendSymbolItems( double scale, const QString &rule )
|
||||
{
|
||||
Q_UNUSED( scale );
|
||||
Q_UNUSED( rule );
|
||||
QgsLegendSymbolList lst;
|
||||
lst << qMakePair( QString(), mSymbol.get() );
|
||||
return lst;
|
||||
}
|
||||
|
||||
QgsLegendSymbolListV2 QgsSingleSymbolRenderer::legendSymbolItemsV2() const
|
||||
{
|
||||
QgsLegendSymbolListV2 lst;
|
||||
if ( mSymbol->type() == QgsSymbol::Marker )
|
||||
{
|
||||
const QgsMarkerSymbol *symbol = static_cast<const QgsMarkerSymbol *>( mSymbol.get() );
|
||||
|
@ -52,9 +52,7 @@ class CORE_EXPORT QgsSingleSymbolRenderer : public QgsFeatureRenderer
|
||||
//! create renderer from XML element
|
||||
static QgsFeatureRenderer *create( QDomElement &element, const QgsReadWriteContext &context ) SIP_FACTORY;
|
||||
virtual QDomElement save( QDomDocument &doc, const QgsReadWriteContext &context ) override;
|
||||
virtual QgsLegendSymbologyList legendSymbologyItems( QSize iconSize ) override;
|
||||
virtual QgsLegendSymbolList legendSymbolItems( double scale = -1, const QString &rule = QString() ) override SIP_SKIP;
|
||||
virtual QgsLegendSymbolListV2 legendSymbolItemsV2() const override;
|
||||
virtual QgsLegendSymbolList legendSymbolItems() const override;
|
||||
virtual QSet< QString > legendKeysForFeature( QgsFeature &feature, QgsRenderContext &context ) override;
|
||||
virtual void setLegendSymbolItem( const QString &key, QgsSymbol *symbol SIP_TRANSFER ) override;
|
||||
|
||||
|
@ -249,9 +249,7 @@ void QgsRendererWidget::changeSymbolAngle()
|
||||
|
||||
void QgsRendererWidget::showSymbolLevelsDialog( QgsFeatureRenderer *r )
|
||||
{
|
||||
QgsLegendSymbolList symbols = r->legendSymbolItems();
|
||||
|
||||
QgsSymbolLevelsDialog dlg( symbols, r->usingSymbolLevels(), this );
|
||||
QgsSymbolLevelsDialog dlg( r->legendSymbolItems(), r->usingSymbolLevels(), this );
|
||||
|
||||
if ( dlg.exec() )
|
||||
{
|
||||
|
@ -396,9 +396,7 @@ void QgsRuleBasedRendererWidget::keyPressEvent( QKeyEvent *event )
|
||||
|
||||
void QgsRuleBasedRendererWidget::setRenderingOrder()
|
||||
{
|
||||
QgsLegendSymbolList lst = mRenderer->legendSymbolItems();
|
||||
|
||||
QgsSymbolLevelsDialog dlg( lst, true, this );
|
||||
QgsSymbolLevelsDialog dlg( mRenderer->legendSymbolItems(), true, this );
|
||||
dlg.setForceOrderingEnabled( true );
|
||||
|
||||
dlg.exec();
|
||||
|
@ -44,17 +44,18 @@ QgsSymbolLevelsDialog::QgsSymbolLevelsDialog( const QgsLegendSymbolList &list, b
|
||||
|
||||
connect( chkEnable, &QAbstractButton::clicked, this, &QgsSymbolLevelsDialog::updateUi );
|
||||
|
||||
if ( mList.count() > 0 && !mList[0].second )
|
||||
// only consider entries with symbols
|
||||
Q_FOREACH ( const QgsLegendSymbolItem &item, list )
|
||||
{
|
||||
// remove symbolless entry (probably classifier of categorized renderer)
|
||||
mList.removeFirst();
|
||||
if ( item.symbol() )
|
||||
mList << item;
|
||||
}
|
||||
|
||||
int maxLayers = 0;
|
||||
tableLevels->setRowCount( mList.count() );
|
||||
for ( int i = 0; i < mList.count(); i++ )
|
||||
{
|
||||
QgsSymbol *sym = mList.at( i ).second;
|
||||
QgsSymbol *sym = mList.at( i ).symbol();
|
||||
|
||||
// set icons for the rows
|
||||
QIcon icon = QgsSymbolLayerUtils::symbolPreviewIcon( sym, QSize( 16, 16 ) );
|
||||
@ -96,8 +97,8 @@ void QgsSymbolLevelsDialog::populateTable()
|
||||
{
|
||||
for ( int row = 0; row < mList.count(); row++ )
|
||||
{
|
||||
QgsSymbol *sym = mList.at( row ).second;
|
||||
QString label = mList.at( row ).first;
|
||||
QgsSymbol *sym = mList.at( row ).symbol();
|
||||
QString label = mList.at( row ).label();
|
||||
QTableWidgetItem *itemLabel = new QTableWidgetItem( label );
|
||||
itemLabel->setFlags( itemLabel->flags() ^ Qt::ItemIsEditable );
|
||||
tableLevels->setItem( row, 0, itemLabel );
|
||||
@ -131,7 +132,7 @@ void QgsSymbolLevelsDialog::setDefaultLevels()
|
||||
{
|
||||
for ( int i = 0; i < mList.count(); i++ )
|
||||
{
|
||||
QgsSymbol *sym = mList.at( i ).second;
|
||||
QgsSymbol *sym = mList.at( i ).symbol();
|
||||
for ( int layer = 0; layer < sym->symbolLayerCount(); layer++ )
|
||||
{
|
||||
sym->symbolLayer( layer )->setRenderingPass( layer );
|
||||
@ -148,7 +149,7 @@ void QgsSymbolLevelsDialog::renderingPassChanged( int row, int column )
|
||||
{
|
||||
if ( row < 0 || row >= mList.count() )
|
||||
return;
|
||||
QgsSymbol *sym = mList.at( row ).second;
|
||||
QgsSymbol *sym = mList.at( row ).symbol();
|
||||
if ( column < 0 || column > sym->symbolLayerCount() )
|
||||
return;
|
||||
sym->symbolLayer( column - 1 )->setRenderingPass( tableLevels->item( row, column )->text().toInt() );
|
||||
|
@ -2974,7 +2974,7 @@ namespace QgsWms
|
||||
const SymbolSet &usedSymbols = hitTest[vl];
|
||||
QList<int> order;
|
||||
int i = 0;
|
||||
Q_FOREACH ( const QgsLegendSymbolItem &legendItem, vl->renderer()->legendSymbolItemsV2() )
|
||||
Q_FOREACH ( const QgsLegendSymbolItem &legendItem, vl->renderer()->legendSymbolItems() )
|
||||
{
|
||||
QString sProp = QgsSymbolLayerUtils::symbolProperties( legendItem.legacyRuleKey() );
|
||||
if ( usedSymbols.contains( sProp ) )
|
||||
|
@ -359,7 +359,7 @@ void TestQgsLayerTree::testFindLegendNode()
|
||||
QVERIFY( !m->findLegendNode( QString( "id" ), QString( "rule" ) ) );
|
||||
QVERIFY( !m->findLegendNode( QString( "vl" ), QString( "rule" ) ) );
|
||||
|
||||
QgsLegendSymbolListV2 symbolList = renderer->legendSymbolItemsV2();
|
||||
QgsLegendSymbolList symbolList = renderer->legendSymbolItems();
|
||||
Q_FOREACH ( const QgsLegendSymbolItem &symbol, symbolList )
|
||||
{
|
||||
QgsLayerTreeModelLegendNode *found = m->findLegendNode( vl->id(), symbol.ruleKey() );
|
||||
@ -488,7 +488,7 @@ void TestQgsLayerTree::testRendererLegend( QgsFeatureRenderer *renderer )
|
||||
m->refreshLayerLegend( n );
|
||||
|
||||
//test initial symbol
|
||||
QgsLegendSymbolListV2 symbolList = renderer->legendSymbolItemsV2();
|
||||
QgsLegendSymbolList symbolList = renderer->legendSymbolItems();
|
||||
Q_FOREACH ( const QgsLegendSymbolItem &symbol, symbolList )
|
||||
{
|
||||
QgsSymbolLegendNode *symbolNode = dynamic_cast< QgsSymbolLegendNode * >( m->findLegendNode( vl->id(), symbol.ruleKey() ) );
|
||||
@ -503,7 +503,7 @@ void TestQgsLayerTree::testRendererLegend( QgsFeatureRenderer *renderer )
|
||||
symbolNode->setSymbol( newSymbol );
|
||||
QCOMPARE( symbolNode->symbol()->color(), QColor( 255, 255, 0 ) );
|
||||
//test that symbol change was sent to renderer
|
||||
symbolList = renderer->legendSymbolItemsV2();
|
||||
symbolList = renderer->legendSymbolItems();
|
||||
QCOMPARE( symbolList.at( 1 ).symbol()->color(), QColor( 255, 255, 0 ) );
|
||||
|
||||
//another test - check directly setting symbol at renderer
|
||||
|
Loading…
x
Reference in New Issue
Block a user