55 Q_FOREACH (
int id, order )
66 int numNodes = lst.
count();
75 QgsDebugMsg(
"Legend node order manipulation is invalid without existing legend" );
83 for (
int i = 0; i < numNodes; ++i )
95 if ( orderStr ==
"empty" )
101 Q_FOREACH (
const QString& item, orderStr.
split(
',' ) )
104 int id = item.
toInt( &ok );
105 if ( !ok || id < 0 || id >= numNodes )
142 if ( !userLabel.
isNull() )
153 Q_FOREACH (
int idx, order )
161 newOrder << nodes[idx];
166 for (
int i = 0; i < nodes.
count(); ++i )
209 if ( nodes.
count() == 1 && nodes[0]->data( Qt::EditRole ).toString().
isEmpty() )
210 nodes[0]->setEmbeddedInParent(
true );
247 if ( rasterItemList.
isEmpty() )
253 int max_count = 1000;
256 itemIt != rasterItemList.
constEnd(); ++itemIt, ++count )
260 if ( count == max_count )
262 QString label =
tr(
"following %1 items\nnot displayed" ).
arg( rasterItemList.
size() - max_count );
284 QSize iconSize( 16, 16 );
291 Q_FOREACH (
const XY& item, symbologyList )
static void setLegendNodeOrder(QgsLayerTreeLayer *nodeLayer, const QList< int > &order)
static QgsMapLayerLegend * defaultPluginLegend(QgsPluginLayer *pl)
Create new legend implementation for raster layer.
QgsMapLayerLegend * legend() const
Can be null.
static void setLegendNodeUserLabel(QgsLayerTreeLayer *nodeLayer, int originalIndex, const QString &newLabel)
This class provides qgis with the ability to render raster datasets onto the mapcanvas.
virtual QList< QgsLayerTreeModelLegendNode *> legendItems(QgsLayerTreeLayer *nodeLayer) const
Returns list of legend nodes for the diagram.
Base class for plugin layers.
QStringList split(const QString &sep, SplitBehavior behavior, Qt::CaseSensitivity cs) const
virtual QList< QgsLayerTreeModelLegendNode * > createLayerTreeModelLegendNodes(QgsLayerTreeLayer *nodeLayer) override
Return list of legend nodes to be used for a particular layer tree layer node.
Implementation of legend node interface for displaying raster legend entries.
static QList< int > legendNodeOrder(QgsLayerTreeLayer *nodeLayer)
QgsDefaultPluginLayerLegend(QgsPluginLayer *pl)
bool contains(const QString &str, Qt::CaseSensitivity cs) const
Default legend implementation for raster layers.
virtual bool supportsLegendGraphic() const
Returns whether the provider supplies a legend graphic.
static bool hasLegendNodeOrder(QgsLayerTreeLayer *nodeLayer)
virtual QgsLegendSymbolListV2 legendSymbolItemsV2() const
Return a list of symbology items for the legend.
QString join(const QString &separator) const
QgsDefaultVectorLayerLegend(QgsVectorLayer *vl)
QStringList customProperties() const
Return list of keys stored in custom properties.
QString tr(const char *sourceText, const char *disambiguation, int n)
virtual QList< QgsLayerTreeModelLegendNode * > createLayerTreeModelLegendNodes(QgsLayerTreeLayer *nodeLayer) override
Return list of legend nodes to be used for a particular layer tree layer node.
QgsFeatureRendererV2 * rendererV2()
Return renderer V2.
QString number(int n, int base)
int count(const T &value) const
void append(const T &value)
static int _originalLegendNodeCount(QgsLayerTreeLayer *nodeLayer)
static QString legendNodeUserLabel(QgsLayerTreeLayer *nodeLayer, int originalIndex)
QgsMapLayerLegend(QObject *parent=nullptr)
int toInt(bool *ok, int base) const
const QgsDiagramRendererV2 * diagramRenderer() const
QVariant customProperty(const QString &key, const QVariant &defaultValue=QVariant()) const
Read a custom property from layer.
The QgsMapLayerLegend class is abstract interface for implementations of legends for one map layer...
virtual QString legendClassificationAttribute() const
If supported by the renderer, return classification attribute for the use in legend.
static bool hasLegendNodeUserLabel(QgsLayerTreeLayer *nodeLayer, int originalIndex)
Implementation of legend node interface for displaying arbitrary label with icon. ...
bool countSymbolFeatures(bool showProgress=true)
Count features for symbols.
static QgsMapLayerLegend * defaultVectorLegend(QgsVectorLayer *vl)
Create new legend implementation for vector layer.
bool contains(const T &value) const
QgsMapLayer * layer() const
Implementation of legend node interface for displaying WMS legend entries.
QVariant value(const QString &key, const QVariant &defaultValue) const
void itemsChanged()
Emitted when existing items/nodes got invalid and should be replaced by new ones. ...
static QgsMapLayerLegend * defaultRasterLegend(QgsRasterLayer *rl)
Create new legend implementation for raster layer.
static void applyLayerNodeProperties(QgsLayerTreeLayer *nodeLayer, QList< QgsLayerTreeModelLegendNode *> &nodes)
update according to layer node's custom properties (order of items, user labels for items) ...
QgsDefaultRasterLayerLegend(QgsRasterLayer *rl)
Default legend implementation for plugin layers.
virtual QList< QgsLayerTreeModelLegendNode * > createLayerTreeModelLegendNodes(QgsLayerTreeLayer *nodeLayer) override
Return list of legend nodes to be used for a particular layer tree layer node.
static QList< int > _makeNodeOrder(QgsLayerTreeLayer *nodeLayer)
The QgsLegendRendererItem class is abstract interface for legend items returned from QgsMapLayerLegen...
Implementation of legend node interface for displaying preview of vector symbols and their labels and...
QgsRasterDataProvider * dataProvider()
Returns the data provider.
const_iterator constEnd() const
const_iterator constBegin() const
Default legend implementation for vector layers.
bool connect(const QObject *sender, const char *signal, const QObject *receiver, const char *method, Qt::ConnectionType type)
QgsLegendColorList legendSymbologyItems() const
Returns a list with classification items (Text and color)
Represents a vector layer which manages a vector based data sets.
The class stores information about one class/rule of a vector layer renderer in a unified way that ca...
QString arg(qlonglong a, int fieldWidth, int base, const QChar &fillChar) const
virtual QgsLegendSymbologyList legendSymbologyItems(QSize iconSize)
return a list of symbology items for the legend (defult implementation returns nothing) ...
virtual QList< QgsLayerTreeModelLegendNode * > createLayerTreeModelLegendNodes(QgsLayerTreeLayer *nodeLayer)=0
Return list of legend nodes to be used for a particular layer tree layer node.
bool diagramsEnabled() const
Returns whether the layer contains diagrams which are enabled and should be drawn.
virtual void setUserLabel(const QString &userLabel)
void setCustomProperty(const QString &key, const QVariant &value)
Set a custom property for the node.
Layer tree node points to a map layer.