17#include "moc_qgsstylemodel.cpp" 
   57  mTargetScreenProperties = properties;
 
 
   62  return mTargetScreenProperties;
 
 
   71  : QAbstractItemModel( parent )
 
 
   87void QgsStyleModel::initStyleModel()
 
   92    mEntityNames.insert( entity, mStyle->
allNames( entity ) );
 
  116  if ( sIconGenerator )
 
  129  switch ( entityType )
 
  136      name = mEntityNames[ entityType ].value( 
index.row() - offsetForEntity( entityType ) );
 
  142    case Qt::DisplayRole:
 
  143    case Qt::ToolTipRole:
 
  146      switch ( 
index.column() )
 
  150          const QStringList tags = mStyle->
tagsOfSymbol( entityType, name );
 
  152          if ( role == Qt::ToolTipRole )
 
  154            QString tooltip = QStringLiteral( 
"<h3>%1</h3><p><i>%2</i>" ).arg( name,
 
  155                              tags.count() > 0 ? tags.join( QLatin1String( 
", " ) ) : tr( 
"Not tagged" ) );
 
  159            for ( 
auto it = mTargetScreenProperties.constBegin(); it != mTargetScreenProperties.constEnd(); ++it )
 
  161              if ( !maxDevicePixelRatioScreen.
isValid() || it->devicePixelRatio() > maxDevicePixelRatioScreen.
devicePixelRatio() )
 
  162                maxDevicePixelRatioScreen = *it;
 
  165            switch ( entityType )
 
  170                std::unique_ptr< QgsSymbol > symbol( mStyle->
symbol( name ) );
 
  173                  int width = 
static_cast< int >( 
Qgis::UI_SCALE_FACTOR * QFontMetrics( 
data( 
index, Qt::FontRole ).value< QFont >() ).horizontalAdvance( 
'X' ) * 23 );
 
  174                  int height = 
static_cast< int >( width / 1.61803398875 ); 
 
  177                  QBuffer buffer( &
data );
 
  178                  pm.save( &buffer, 
"PNG", 100 );
 
  179                  tooltip += QStringLiteral( 
"<p><img src='data:image/png;base64, %3' width=\"%4\">" ).arg( QString( 
data.toBase64() ) ).arg( width );
 
  186                int width = 
static_cast< int >( 
Qgis::UI_SCALE_FACTOR * QFontMetrics( 
data( 
index, Qt::FontRole ).value< QFont >() ).horizontalAdvance( 
'X' ) * 23 );
 
  187                int height = 
static_cast< int >( width / 1.61803398875 ); 
 
  191                QBuffer buffer( &
data );
 
  192                pm.save( &buffer, 
"PNG", 100 );
 
  193                tooltip += QStringLiteral( 
"<p><img src='data:image/png;base64, %3' width=\"%4\">" ).arg( QString( 
data.toBase64() ) ).arg( width );
 
  199                int width = 
static_cast< int >( 
Qgis::UI_SCALE_FACTOR * QFontMetrics( 
data( 
index, Qt::FontRole ).value< QFont >() ).horizontalAdvance( 
'X' ) * 23 );
 
  200                int height = 
static_cast< int >( width / 1.61803398875 ); 
 
  204                QBuffer buffer( &
data );
 
  205                pm.save( &buffer, 
"PNG", 100 );
 
  206                tooltip += QStringLiteral( 
"<p><img src='data:image/png;base64, %3' width=\"%4\">" ).arg( QString( 
data.toBase64() ) ).arg( width );
 
  212                int width = 
static_cast< int >( 
Qgis::UI_SCALE_FACTOR * QFontMetrics( 
data( 
index, Qt::FontRole ).value< QFont >() ).horizontalAdvance( 
'X' ) * 23 );
 
  213                int height = 
static_cast< int >( width / 1.61803398875 ); 
 
  220                  QBuffer buffer( &
data );
 
  221                  pm.save( &buffer, 
"PNG", 100 );
 
  222                  tooltip += QStringLiteral( 
"<p><img src='data:image/png;base64, %3' width=\"%4\">" ).arg( QString( 
data.toBase64() ) ).arg( width );
 
  241          return mStyle->
tagsOfSymbol( entityType, name ).join( QLatin1String( 
", " ) );
 
  249    case Qt::DecorationRole:
 
  254      if ( !mExpressionContext )
 
  260        mExpressionContext = std::make_unique< QgsExpressionContext >();
 
  264      switch ( 
index.column() )
 
  267          switch ( entityType )
 
  272              QIcon icon = mIconCache[ entityType ].value( name );
 
  273              if ( !icon.isNull() )
 
  276              std::unique_ptr< QgsSymbol > symbol( mStyle->
symbol( name ) );
 
  279                for ( 
auto it = mTargetScreenProperties.constBegin(); it != mTargetScreenProperties.constEnd(); ++it )
 
  281                  if ( mAdditionalSizes.isEmpty() )
 
  284                  for ( 
const QSize &s : mAdditionalSizes )
 
  291              mIconCache[ entityType ].insert( name, icon );
 
  297              QIcon icon = mIconCache[ entityType ].value( name );
 
  298              if ( !icon.isNull() )
 
  301              std::unique_ptr< QgsColorRamp > ramp( mStyle->
colorRamp( name ) );
 
  304                if ( mAdditionalSizes.isEmpty() )
 
  306                for ( 
const QSize &s : mAdditionalSizes )
 
  312              mIconCache[ entityType ].insert( name, icon );
 
  319              QIcon icon = mIconCache[ entityType ].value( name );
 
  320              if ( !icon.isNull() )
 
  324              for ( 
auto it = mTargetScreenProperties.constBegin(); it != mTargetScreenProperties.constEnd(); ++it )
 
  326                if ( mAdditionalSizes.isEmpty() )
 
  328                for ( 
const QSize &s : mAdditionalSizes )
 
  333              mIconCache[ entityType ].insert( name, icon );
 
  340              QIcon icon = mIconCache[ entityType ].value( name );
 
  341              if ( !icon.isNull() )
 
  345              for ( 
auto it = mTargetScreenProperties.constBegin(); it != mTargetScreenProperties.constEnd(); ++it )
 
  347                if ( mAdditionalSizes.isEmpty() )
 
  349                for ( 
const QSize &s : mAdditionalSizes )
 
  354              mIconCache[ entityType ].insert( name, icon );
 
  361              QIcon icon = mIconCache[ entityType ].value( name );
 
  362              if ( !icon.isNull() )
 
  368                for ( 
auto it = mTargetScreenProperties.constBegin(); it != mTargetScreenProperties.constEnd(); ++it )
 
  372                    if ( mAdditionalSizes.isEmpty() )
 
  375                    for ( 
const QSize &s : mAdditionalSizes )
 
  382              mIconCache[ entityType ].insert( name, icon );
 
  392              QIcon icon = mIconCache[ entityType ].value( name );
 
  393              if ( !icon.isNull() )
 
  396              if ( sIconGenerator && !mPending3dSymbolIcons.contains( name ) )
 
  398                mPending3dSymbolIcons.insert( name );
 
  403              if ( mAdditionalSizes.isEmpty() )
 
  405              for ( 
const QSize &s : mAdditionalSizes )
 
  409              mIconCache[ entityType ].insert( name, icon );
 
  435      return mStyle->
isFavorite( entityType, name );
 
  439      switch ( entityType )
 
  444          return symbol ? 
static_cast< int >( symbol->
type() ) : QVariant();
 
  463      switch ( entityType )
 
  482      switch ( entityType )
 
  488          res.reserve( types.size() );
 
  491            res << static_cast< int >( type );
 
  512      return mStyle->
name();
 
 
  527  if ( 
index.row() < 0 || 
index.row() >= 
rowCount( QModelIndex() ) || role != Qt::EditRole )
 
  530  switch ( 
index.column() )
 
  536      switch ( entityType )
 
  543          name = mEntityNames[ entityType ].value( 
index.row() - offsetForEntity( entityType ) );
 
  547      const QString newName = value.toString();
 
  548      return mStyle->
renameEntity( entityType, name, newName );
 
 
  563  Qt::ItemFlags 
flags = QAbstractItemModel::flags( 
index );
 
  566    return flags | Qt::ItemIsEditable;
 
 
  576  return headerDataStatic( section, orientation, role );
 
 
  579QVariant QgsStyleModel::headerDataStatic( 
int section, Qt::Orientation orientation, 
int role )
 
  581  if ( role == Qt::DisplayRole )
 
  583    if ( orientation == Qt::Vertical ) 
 
  585      return QVariant( section );
 
  592          return QVariant( tr( 
"Name" ) );
 
  595          return QVariant( tr( 
"Tags" ) );
 
  610  if ( !hasIndex( row, column, 
parent ) )
 
  611    return QModelIndex();
 
  615    return createIndex( row, column );
 
  618  return QModelIndex();
 
 
  624  return QModelIndex();
 
 
  633      count += mEntityNames[ type ].size();
 
 
  646  if ( mAdditionalSizes.contains( size ) )
 
  649  mAdditionalSizes << size;
 
  651  if ( sIconGenerator )
 
 
  659  if ( mTargetScreenProperties.contains( properties ) )
 
  662  mTargetScreenProperties.insert( properties );
 
  664  if ( sIconGenerator )
 
 
  672  sIconGenerator = generator;
 
 
  678  mIconCache[ type ].remove( name );
 
  679  const QStringList newSymbolNames = mStyle->
allNames( type );
 
  682  const int newNameIndex = newSymbolNames.indexOf( name );
 
  683  if ( newNameIndex < 0 )
 
  686  const int offset = offsetForEntity( type );
 
  687  beginInsertRows( QModelIndex(), newNameIndex + offset, newNameIndex + offset );
 
  688  mEntityNames[ type ] = newSymbolNames;
 
  694  mIconCache[ type ].remove( name );
 
  695  const QStringList oldSymbolNames = mEntityNames[ type ];
 
  696  const QStringList newSymbolNames = mStyle->
allNames( type );
 
  699  const int oldNameIndex = oldSymbolNames.indexOf( name );
 
  700  if ( oldNameIndex < 0 )
 
  703  const int offset = offsetForEntity( type );
 
  704  beginRemoveRows( QModelIndex(), oldNameIndex + offset, oldNameIndex + offset );
 
  705  mEntityNames[ type ] = newSymbolNames;
 
  711  mIconCache[ type ].remove( name );
 
  713  const int offset = offsetForEntity( type );
 
  714  QModelIndex i = 
index( offset + mEntityNames[ type ].indexOf( name ), 
Tags );
 
  715  emit dataChanged( i, i, QVector< int >() << Qt::DecorationRole );
 
  720  const int offset = offsetForEntity( type );
 
  721  QModelIndex i = 
index( offset + mEntityNames[ type ].indexOf( name ), 
Name );
 
  725void QgsStyleModel::onEntityRename( 
QgsStyle::StyleEntity type, 
const QString &oldName, 
const QString &newName )
 
  727  mIconCache[ type ].remove( oldName );
 
  728  const QStringList oldSymbolNames = mEntityNames[ type ];
 
  729  const QStringList newSymbolNames = mStyle->
allNames( type );
 
  732  const int oldNameIndex = oldSymbolNames.indexOf( oldName );
 
  733  if ( oldNameIndex < 0 )
 
  737  const int newNameIndex = newSymbolNames.indexOf( newName );
 
  738  if ( newNameIndex < 0 )
 
  741  if ( newNameIndex == oldNameIndex )
 
  743    mEntityNames[ type ] = newSymbolNames;
 
  747  const int offset = offsetForEntity( type );
 
  748  beginMoveRows( QModelIndex(), oldNameIndex + offset, oldNameIndex + offset, QModelIndex(), ( newNameIndex > oldNameIndex ? newNameIndex + 1 : newNameIndex ) + offset );
 
  749  mEntityNames[ type ] = newSymbolNames;
 
  753void QgsStyleModel::onTagsChanged( 
int entity, 
const QString &name, 
const QStringList & )
 
  756  int row = mEntityNames[type].indexOf( name ) + offsetForEntity( type );
 
  769void QgsStyleModel::rebuildSymbolIcons()
 
  772  mExpressionContext.reset();
 
  776    emit dataChanged( 
index( 0, 0 ), 
index( lastRow, 0 ), QVector<int>() << Qt::DecorationRole );
 
  780void QgsStyleModel::iconGenerated( 
QgsStyle::StyleEntity type, 
const QString &name, 
const QIcon &icon )
 
  782  int row = mEntityNames[type].indexOf( name ) + offsetForEntity( type );
 
  787      mPending3dSymbolIcons.remove( name );
 
  789      emit dataChanged( 
index( row, 0 ), 
index( row, 0 ) );
 
  805  int maxRowForEntity = 0;
 
  808    maxRowForEntity += mEntityNames[ type ].size();
 
  809    if ( row < maxRowForEntity )
 
  823    if ( type == entity )
 
  826    offset += mEntityNames[ type ].size();
 
  836  : QSortFilterProxyModel( parent )
 
  840  setSourceModel( mModel );
 
 
  844void QgsStyleProxyModel::initialize()
 
  846  setSortCaseSensitivity( Qt::CaseInsensitive );
 
  848  setDynamicSortFilter( 
true );
 
  858      if ( mSmartGroupId >= 0 )
 
  874      if ( mSmartGroupId >= 0 )
 
  881  : QSortFilterProxyModel( parent )
 
  883  , mStyle( model->style() )
 
  885  setSourceModel( mModel );
 
 
  890  : QSortFilterProxyModel( parent )
 
  891  , mCombinedModel( model )
 
  893  setSourceModel( mCombinedModel );
 
 
  899  if ( mFilterString.isEmpty()  && !mEntityFilterEnabled && !mSymbolTypeFilterEnabled && mTagId < 0 && mSmartGroupId < 0 && !mFavoritesOnly && mTagFilter.isEmpty() )
 
  902  const QModelIndex index = sourceModel()->index( source_row, 0, source_parent );
 
  907  const QString name = sourceModel()->data( index ).toString();
 
  911  if ( mEntityFilterEnabled && ( mEntityFilters.empty() || !mEntityFilters.contains( styleEntityType ) ) )
 
  915  if ( mSymbolTypeFilterEnabled && 
symbolType != mSymbolType )
 
  920    switch ( styleEntityType )
 
  940        if ( !types.empty() && !types.contains( QVariant::fromValue( mLayerType ) ) )
 
  947  if ( mTagId >= 0 && !mTaggedSymbolNames.contains( name ) )
 
  950  if ( mSmartGroupId >= 0 && !mSmartGroupSymbolNames.contains( name ) )
 
  953  if ( !mTagFilter.isEmpty() && !tags.contains( mTagFilter, Qt::CaseInsensitive ) )
 
  959  if ( !mFilterString.isEmpty() )
 
  963    const QStringList partsToMatch = mFilterString.trimmed().split( 
' ' );
 
  965    QStringList partsToSearch = name.split( 
' ' );
 
  966    for ( 
const QString &tag : tags )
 
  968      partsToSearch.append( tag.split( 
' ' ) );
 
  971    for ( 
const QString &part : partsToMatch )
 
  974      for ( 
const QString &partToSearch : std::as_const( partsToSearch ) )
 
  976        if ( partToSearch.contains( part, Qt::CaseInsensitive ) )
 
 
  994  if ( leftSource != rightSource )
 
  995    return QString::localeAwareCompare( leftSource, rightSource ) < 0;
 
  999  return QString::localeAwareCompare( leftName, rightName ) < 0;
 
 
 1004  mFilterString = filter;
 
 
 1011  return mFavoritesOnly;
 
 
 1024  if ( mCombinedModel )
 
 
 1032  if ( mCombinedModel )
 
 
 1038  return mSymbolTypeFilterEnabled;
 
 
 1043  mSymbolTypeFilterEnabled = enabled;
 
 
 1064  mTaggedSymbolNames.clear();
 
 1068      mTaggedSymbolNames.append( mStyle->
symbolsWithTag( entity, mTagId ) );
 
 
 1098  mSmartGroupSymbolNames.clear();
 
 1099  if ( mSmartGroupId >= 0 )
 
 
 1110  return mSmartGroupId;
 
 
 1126  return mEntityFilterEnabled;
 
 
 1142  mEntityFilters = QList< QgsStyle::StyleEntity >() << 
entityFilter;
 
 
 1148  mEntityFilters = filters;
 
 
GeometryType
The geometry types are used to group Qgis::WkbType in a coarse way.
 
static const double UI_SCALE_FACTOR
UI scaling factor.
 
An abstract base class for icon generators for a QgsStyleModel.
 
void setTargetScreenProperties(const QSet< QgsScreenProperties > &properties)
Sets the target screen properties to use when generating icons.
 
void setIconSizes(const QList< QSize > &sizes)
Sets the list of icon sizes to generate.
 
virtual void generateIcon(QgsStyle *style, QgsStyle::StyleEntity type, const QString &name)=0
Triggers generation of an icon for an entity from the specified style database, with matching entity ...
 
QgsAbstractStyleEntityIconGenerator(QObject *parent)
Constructor for QgsAbstractStyleEntityIconGenerator, with the specified parent object.
 
QSet< QgsScreenProperties > targetScreenProperties() const
Returns the target screen properties to use when generating icons.
 
QList< QSize > iconSizes() const
Returns the list of icon sizes to generate.
 
void iconGenerated(QgsStyle::StyleEntity type, const QString &name, const QIcon &icon)
Emitted when the icon for the style entity with matching type and name has been generated.
 
static QString defaultThemePath()
Returns the path to the default theme directory.
 
static QgsImageCache * imageCache()
Returns the application's image cache, used for caching resampled versions of raster images.
 
static QgsSvgCache * svgCache()
Returns the application's SVG cache, used for caching SVG images and handling parameter replacement w...
 
static QgsStyleModel * defaultStyleModel()
Returns a shared QgsStyleModel containing the default style library (see QgsStyle::defaultStyle()).
 
A model which contains entities from multiple QgsStyle databases.
 
void addTargetScreenProperties(const QgsScreenProperties &properties)
Adds additional target screen properties to use when generating icons for Qt::DecorationRole data.
 
void addDesiredIconSize(QSize size)
Adds an additional icon size to generate for Qt::DecorationRole data.
 
static QList< QgsExpressionContextScope * > globalProjectLayerScopes(const QgsMapLayer *layer)
Creates a list of three scopes: global, layer's project and layer.
 
void remoteImageFetched(const QString &url)
Emitted when the cache has finished retrieving an image file from a remote url.
 
Represents a patch shape for use in map legends.
 
bool isNull() const
Returns true if the patch shape is a null QgsLegendPatchShape, which indicates that the default legen...
 
Contains settings for how a map layer will be labeled.
 
static QPixmap labelSettingsPreviewPixmap(const QgsPalLayerSettings &settings, QSize size, const QString &previewText=QString(), int padding=0, const QgsScreenProperties &screen=QgsScreenProperties())
Returns a pixmap preview for label settings.
 
Stores properties relating to a screen.
 
double devicePixelRatio() const
Returns the ratio between physical pixels and device-independent pixels for the screen.
 
bool isValid() const
Returns true if the properties are valid.
 
A QAbstractItemModel subclass for showing symbol and color ramp entities contained within a QgsStyle ...
 
@ IsFavorite
Whether entity is flagged as a favorite.
 
@ LayerType
Layer type (for label settings entities)
 
@ IsTitle
True if the index corresponds to a title item.
 
@ SymbolType
Symbol type (for symbol or legend patch shape entities)
 
@ StyleFileName
File name of associated QgsStyle (QgsStyle::fileName())
 
@ Type
Style entity type, see QgsStyle::StyleEntity.
 
@ CompatibleGeometryTypes
Compatible layer geometry types (for 3D symbols)
 
@ Tag
String list of tags.
 
@ StyleName
Name of associated QgsStyle (QgsStyle::name())
 
Qt::ItemFlags flags(const QModelIndex &index) const override
 
QModelIndex index(int row, int column, const QModelIndex &parent=QModelIndex()) const override
 
QVariant headerData(int section, Qt::Orientation orientation, int role=Qt::DisplayRole) const override
 
int columnCount(const QModelIndex &parent=QModelIndex()) const override
 
QVariant data(const QModelIndex &index, int role) const override
 
static void setIconGenerator(QgsAbstractStyleEntityIconGenerator *generator)
Sets the icon generator to use for deferred style entity icon generation.
 
int rowCount(const QModelIndex &parent=QModelIndex()) const override
 
bool setData(const QModelIndex &index, const QVariant &value, int role=Qt::EditRole) override
 
QModelIndex parent(const QModelIndex &index) const override
 
void addTargetScreenProperties(const QgsScreenProperties &properties)
Adds additional target screen properties to use when generating icons for Qt::DecorationRole data.
 
QgsStyleModel(QgsStyle *style, QObject *parent=nullptr)
Constructor for QgsStyleModel, for the specified style and parent object.
 
void addDesiredIconSize(QSize size)
Adds an additional icon size to generate for Qt::DecorationRole data.
 
void setEntityFilter(QgsStyle::StyleEntity filter)
Sets the style entity type filter.
 
bool lessThan(const QModelIndex &left, const QModelIndex &right) const override
 
bool favoritesOnly() const
Returns true if the model is showing only favorited entities.
 
void setSymbolTypeFilterEnabled(bool enabled)
Sets whether filtering by symbol type is enabled.
 
void setTagId(int id)
Sets a tag id to filter style entities by.
 
QString tagString() const
Returns the tag string used to filter style entities by.
 
Qgis::SymbolType symbolType() const
Returns the symbol type filter.
 
void setTagString(const QString &tag)
Sets a tag to filter style entities by.
 
QgsStyle::StyleEntity entityFilter() const
Returns the style entity type filter.
 
QgsStyleProxyModel(QgsStyle *style, QObject *parent=nullptr)
Constructor for QgsStyleProxyModel, for the specified style and parent object.
 
int tagId() const
Returns the tag id used to filter style entities by.
 
void setEntityFilters(const QList< QgsStyle::StyleEntity > &filters)
Sets the style entity type filters.
 
bool filterAcceptsRow(int source_row, const QModelIndex &source_parent) const override
 
void setFavoritesOnly(bool favoritesOnly)
Sets whether the model should show only favorited entities.
 
void setSymbolType(Qgis::SymbolType type)
Sets the symbol type filter.
 
bool entityFilterEnabled() const
Returns true if filtering by entity type is enabled.
 
Qgis::GeometryType layerType() const
Returns the layer type filter, or Qgis::GeometryType::Unknown if no layer type filter is present.
 
void addDesiredIconSize(QSize size)
Adds an additional icon size to generate for Qt::DecorationRole data.
 
void addTargetScreenProperties(const QgsScreenProperties &properties)
Adds additional target screen properties to use when generating icons for Qt::DecorationRole data.
 
void setEntityFilterEnabled(bool enabled)
Sets whether filtering by entity type is enabled.
 
void setSmartGroupId(int id)
Sets a smart group id to filter style entities by.
 
bool symbolTypeFilterEnabled() const
Returns true if filtering by symbol type is enabled.
 
int smartGroupId() const
Returns the smart group id used to filter style entities by.
 
void setFilterString(const QString &filter)
Sets a filter string, such that only symbol entities with names matching the specified string will be...
 
void setLayerType(Qgis::GeometryType type)
Sets the layer type filter.
 
A database of saved style entities, including symbols, color ramps, text formats and others.
 
QgsTextFormat textFormat(const QString &name) const
Returns the text format with the specified name.
 
QStringList allNames(StyleEntity type) const
Returns a list of the names of all existing entities of the specified type.
 
void entityChanged(QgsStyle::StyleEntity entity, const QString &name)
Emitted whenever an entity's definition is changed.
 
void rebuildIconPreviews()
Emitted whenever icon previews for entities in the style must be rebuilt.
 
QStringList symbolsWithTag(StyleEntity type, int tagid) const
Returns the symbol names with which have the given tag.
 
QgsSymbol * symbol(const QString &name)
Returns a NEW copy of symbol.
 
QStringList symbolsOfSmartgroup(StyleEntity type, int id)
Returns the symbols for the smartgroup.
 
StyleEntity
Enum for Entities involved in a style.
 
@ LabelSettingsEntity
Label settings.
 
@ TextFormatEntity
Text formats.
 
@ SmartgroupEntity
Smart groups.
 
@ Symbol3DEntity
3D symbol entity
 
@ ColorrampEntity
Color ramps.
 
@ LegendPatchShapeEntity
Legend patch shape.
 
QStringList tagsOfSymbol(StyleEntity type, const QString &symbol)
Returns the tags associated with the symbol.
 
QList< Qgis::GeometryType > symbol3DCompatibleGeometryTypes(const QString &name) const
Returns the list of the vector layer geometry types which are compatible with the 3D symbol with the ...
 
void entityRenamed(QgsStyle::StyleEntity entity, const QString &oldName, const QString &newName)
Emitted whenever a entity of the specified type has been renamed from oldName to newName.
 
const QgsSymbol * symbolRef(const QString &name) const
Returns a const pointer to a symbol (doesn't create new instance)
 
void initialized()
Emitted when the style database has been fully initialized.
 
QString fileName() const
Returns the current file name of the style database.
 
bool isInitialized() const
Returns true if the style is initialized and ready for use.
 
QgsColorRamp * colorRamp(const QString &name) const
Returns a new copy of the specified color ramp.
 
bool renameEntity(StyleEntity type, const QString &oldName, const QString &newName)
Renames an entity of the specified type from oldName to newName.
 
bool isFavorite(StyleEntity type, const QString &name)
Returns true if the symbol with matching type and name is marked as a favorite.
 
QString name() const
Returns the name of the style.
 
Qgis::GeometryType labelSettingsLayerType(const QString &name) const
Returns the layer geometry type corresponding to the label settings with the specified name,...
 
void entityTagsChanged(QgsStyle::StyleEntity entity, const QString &name, const QStringList &newTags)
Emitted whenever an entity's tags are changed.
 
void favoritedChanged(QgsStyle::StyleEntity entity, const QString &name, bool isFavorite)
Emitted whenever an entity is either favorited or un-favorited.
 
QgsPalLayerSettings labelSettings(const QString &name) const
Returns the label settings with the specified name.
 
void entityRemoved(QgsStyle::StyleEntity entity, const QString &name)
Emitted whenever an entity of the specified type is removed from the style and the database has been ...
 
Qgis::SymbolType legendPatchShapeSymbolType(const QString &name) const
Returns the symbol type corresponding to the legend patch shape with the specified name,...
 
const QgsSymbol * previewSymbolForPatchShape(const QgsLegendPatchShape &shape) const
Returns a symbol to use for rendering preview icons for a patch shape.
 
QgsLegendPatchShape legendPatchShape(const QString &name) const
Returns the legend patch shape with the specified name.
 
void entityAdded(QgsStyle::StyleEntity entity, const QString &name)
Emitted every time a new entity has been added to the database.
 
void remoteSvgFetched(const QString &url)
Emitted when the cache has finished retrieving an SVG file from a remote url.
 
static QPixmap colorRampPreviewPixmap(QgsColorRamp *ramp, QSize size, int padding=0, Qt::Orientation direction=Qt::Horizontal, bool flipDirection=false, bool drawTransparentBackground=true)
Returns a pixmap preview for a color ramp.
 
static QPixmap symbolPreviewPixmap(const QgsSymbol *symbol, QSize size, int padding=0, QgsRenderContext *customContext=nullptr, bool selected=false, const QgsExpressionContext *expressionContext=nullptr, const QgsLegendPatchShape *shape=nullptr, const QgsScreenProperties &screen=QgsScreenProperties())
Returns a pixmap preview for a color ramp.
 
Abstract base class for all rendered symbols.
 
Qgis::SymbolType type() const
Returns the symbol's type.
 
Container for all settings relating to text rendering.
 
static QPixmap textFormatPreviewPixmap(const QgsTextFormat &format, QSize size, const QString &previewText=QString(), int padding=0, const QgsScreenProperties &screen=QgsScreenProperties())
Returns a pixmap preview for a text format.
 
const double ICON_PADDING_FACTOR