22#include "moc_qgssymbollayerselectionwidget.cpp" 
   32  mTree = 
new QTreeWidget( 
this );
 
   33  mTree->setHeaderHidden( 
true );
 
   35  connect( mTree, &QTreeWidget::itemChanged, 
this, [&]( QTreeWidgetItem *, 
int ) { emit this->
changed(); } );
 
   38  QVBoxLayout *vbox = 
new QVBoxLayout();
 
   39  vbox->setContentsMargins( 0, 0, 0, 0 );
 
   40  vbox->addWidget( mTree );
 
 
   54      TreeFillVisitor( QTreeWidgetItem *layerItem, 
const QgsVectorLayer *layer, QHash<QString, QTreeWidgetItem *> &items, QScreen *screen )
 
   55        : mLayerItem( layerItem )
 
   72      void visitSymbol( QTreeWidgetItem *rootItem, 
const QString &identifier, 
const QgsSymbol *symbol, QVector<int> rootPath )
 
   83          QVector<int> indexPath = rootPath;
 
   84          indexPath.append( idx );
 
   86          QTreeWidgetItem *slItem = 
new QTreeWidgetItem();
 
   88          slItem->setData( 0, Qt::UserRole, idx );
 
   89          slItem->setIcon( 0, slIcon );
 
   90          auto flags = slItem->flags();
 
   93            flags.setFlag( Qt::ItemIsUserCheckable, 
true );
 
   94            slItem->setCheckState( 0, Qt::Unchecked );
 
   98            flags.setFlag( Qt::ItemIsUserCheckable, 
false );
 
  100          slItem->setFlags( flags );
 
  101          rootItem->addChild( slItem );
 
  102          slItem->setExpanded( 
true );
 
  104          mItems[sl->
id()] = slItem;
 
  108            visitSymbol( slItem, identifier, subSymbol, indexPath );
 
  119        const QgsSymbol *symbol = symbolEntity->symbol();
 
  124        QTreeWidgetItem *symbolItem = 
new QTreeWidgetItem( QStringList() << ( mCurrentDescription + leaf.
description ) );
 
  126        symbolItem->setData( 0, Qt::UserRole, mCurrentIdentifier );
 
  127        symbolItem->setIcon( 0, icon );
 
  128        mLayerItem->addChild( symbolItem );
 
  129        symbolItem->setExpanded( 
true );
 
  131        visitSymbol( symbolItem, leaf.
identifier, symbol, {} );
 
  137      QString mCurrentDescription;
 
  138      QString mCurrentIdentifier;
 
  139      QTreeWidgetItem *mLayerItem;
 
  141      QHash<QString, QTreeWidgetItem *> &mItems;
 
  142      QPointer<QScreen> mScreen;
 
  151  TreeFillVisitor visitor( mTree->invisibleRootItem(), mLayer, mItems, screen() );
 
 
  158  for ( 
auto it = mItems.begin(); it != mItems.end(); it++ )
 
  160    if ( it.value()->checkState( 0 ) == Qt::Checked )
 
  161      sel.insert( it.key() );
 
 
  169  for ( 
auto it = mItems.begin(); it != mItems.end(); it++ )
 
  171    if ( it.value()->flags() & Qt::ItemIsUserCheckable )
 
  172      it.value()->setCheckState( 0, Qt::Unchecked );
 
  176  for ( 
const QString &lid : sel )
 
  178    const auto it = mItems.find( lid );
 
  179    if ( it != mItems.end() )
 
  180      ( *it )->setCheckState( 0, Qt::Checked );
 
 
@ Millimeters
Millimeters.
 
virtual bool accept(QgsStyleEntityVisitorInterface *visitor) const
Accepts the specified symbology visitor, causing it to visit all symbols associated with the renderer...
 
Struct for storing maximum and minimum scales for measurements in map units.
 
Stores properties relating to a screen.
 
virtual QgsStyle::StyleEntity type() const =0
Returns the type of style entity.
 
An interface for classes which can visit style entity (e.g.
 
@ SymbolRule
Rule based symbology or label child rule.
 
A symbol entity for QgsStyle databases.
 
static QIcon symbolLayerPreviewIcon(const QgsSymbolLayer *layer, Qgis::RenderUnit u, QSize size, const QgsMapUnitScale &scale=QgsMapUnitScale(), Qgis::SymbolType parentSymbolType=Qgis::SymbolType::Hybrid, QgsMapLayer *mapLayer=nullptr, const QgsScreenProperties &screen=QgsScreenProperties())
Draws a symbol layer preview to an icon.
 
static QIcon symbolPreviewIcon(const QgsSymbol *symbol, QSize size, int padding=0, QgsLegendPatchShape *shape=nullptr, const QgsScreenProperties &screen=QgsScreenProperties())
Returns an icon preview for a color ramp.
 
Abstract base class for symbol layers.
 
virtual QString layerType() const =0
Returns a string that represents this layer type.
 
QString id() const
Returns symbol layer identifier This id is unique in the whole project.
 
Abstract base class for all rendered symbols.
 
QgsSymbolLayer * symbolLayer(int layer)
Returns the symbol layer at the specified index.
 
int symbolLayerCount() const
Returns the total number of symbol layers contained in the symbol.
 
Qgis::SymbolType type() const
Returns the symbol's type.
 
Represents a vector layer which manages a vector based dataset.
 
QgsFeatureRenderer * renderer()
Returns the feature renderer used for rendering the features in the layer in 2D map views.
 
int scaleIconSize(int standardSize)
Scales an icon size to compensate for display pixel density, making the icon size hi-dpi friendly,...
 
Contains information relating to a node (i.e.
 
QString identifier
A string identifying the node.
 
QString description
A string describing the node.
 
QgsStyleEntityVisitorInterface::NodeType type
Node type.
 
Contains information relating to the style entity currently being visited.
 
QString description
A string describing the style entity.
 
const QgsStyleEntityInterface * entity
Reference to style entity being visited.
 
QString identifier
A string identifying the style entity.