56 mTargetScreenProperties = properties;
61 return mTargetScreenProperties;
70 : QAbstractItemModel( parent )
77 mEntityNames.insert( entity, mStyle->
allNames( entity ) );
100 if ( sIconGenerator )
113 switch ( entityType )
120 name = mEntityNames[ entityType ].value(
index.row() - offsetForEntity( entityType ) );
126 case Qt::DisplayRole:
127 case Qt::ToolTipRole:
130 switch (
index.column() )
134 const QStringList tags = mStyle->
tagsOfSymbol( entityType, name );
136 if ( role == Qt::ToolTipRole )
138 QString tooltip = QStringLiteral(
"<h3>%1</h3><p><i>%2</i>" ).arg( name,
139 tags.count() > 0 ? tags.join( QLatin1String(
", " ) ) : tr(
"Not tagged" ) );
143 for (
auto it = mTargetScreenProperties.constBegin(); it != mTargetScreenProperties.constEnd(); ++it )
145 if ( !maxDevicePixelRatioScreen.
isValid() || it->devicePixelRatio() > maxDevicePixelRatioScreen.
devicePixelRatio() )
146 maxDevicePixelRatioScreen = *it;
149 switch ( entityType )
154 std::unique_ptr< QgsSymbol > symbol( mStyle->
symbol( name ) );
157 int width =
static_cast< int >(
Qgis::UI_SCALE_FACTOR * QFontMetrics(
data(
index, Qt::FontRole ).value< QFont >() ).horizontalAdvance(
'X' ) * 23 );
158 int height =
static_cast< int >( width / 1.61803398875 );
161 QBuffer buffer( &
data );
162 pm.save( &buffer,
"PNG", 100 );
163 tooltip += QStringLiteral(
"<p><img src='data:image/png;base64, %3' width=\"%4\">" ).arg( QString(
data.toBase64() ) ).arg( width );
170 int width =
static_cast< int >(
Qgis::UI_SCALE_FACTOR * QFontMetrics(
data(
index, Qt::FontRole ).value< QFont >() ).horizontalAdvance(
'X' ) * 23 );
171 int height =
static_cast< int >( width / 1.61803398875 );
175 QBuffer buffer( &
data );
176 pm.save( &buffer,
"PNG", 100 );
177 tooltip += QStringLiteral(
"<p><img src='data:image/png;base64, %3' width=\"%4\">" ).arg( QString(
data.toBase64() ) ).arg( width );
183 int width =
static_cast< int >(
Qgis::UI_SCALE_FACTOR * QFontMetrics(
data(
index, Qt::FontRole ).value< QFont >() ).horizontalAdvance(
'X' ) * 23 );
184 int height =
static_cast< int >( width / 1.61803398875 );
188 QBuffer buffer( &
data );
189 pm.save( &buffer,
"PNG", 100 );
190 tooltip += QStringLiteral(
"<p><img src='data:image/png;base64, %3' width=\"%4\">" ).arg( QString(
data.toBase64() ) ).arg( width );
196 int width =
static_cast< int >(
Qgis::UI_SCALE_FACTOR * QFontMetrics(
data(
index, Qt::FontRole ).value< QFont >() ).horizontalAdvance(
'X' ) * 23 );
197 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 );
225 return mStyle->
tagsOfSymbol( entityType, name ).join( QLatin1String(
", " ) );
230 case Qt::DecorationRole:
235 if ( !mExpressionContext )
241 mExpressionContext = std::make_unique< QgsExpressionContext >();
245 switch (
index.column() )
248 switch ( entityType )
253 QIcon icon = mIconCache[ entityType ].value( name );
254 if ( !icon.isNull() )
257 std::unique_ptr< QgsSymbol > symbol( mStyle->
symbol( name ) );
260 for (
auto it = mTargetScreenProperties.constBegin(); it != mTargetScreenProperties.constEnd(); ++it )
262 if ( mAdditionalSizes.isEmpty() )
265 for (
const QSize &s : mAdditionalSizes )
272 mIconCache[ entityType ].insert( name, icon );
278 QIcon icon = mIconCache[ entityType ].value( name );
279 if ( !icon.isNull() )
282 std::unique_ptr< QgsColorRamp > ramp( mStyle->
colorRamp( name ) );
285 if ( mAdditionalSizes.isEmpty() )
287 for (
const QSize &s : mAdditionalSizes )
293 mIconCache[ entityType ].insert( name, icon );
300 QIcon icon = mIconCache[ entityType ].value( name );
301 if ( !icon.isNull() )
305 for (
auto it = mTargetScreenProperties.constBegin(); it != mTargetScreenProperties.constEnd(); ++it )
307 if ( mAdditionalSizes.isEmpty() )
309 for (
const QSize &s : mAdditionalSizes )
314 mIconCache[ entityType ].insert( name, icon );
321 QIcon icon = mIconCache[ entityType ].value( name );
322 if ( !icon.isNull() )
326 for (
auto it = mTargetScreenProperties.constBegin(); it != mTargetScreenProperties.constEnd(); ++it )
328 if ( mAdditionalSizes.isEmpty() )
330 for (
const QSize &s : mAdditionalSizes )
335 mIconCache[ entityType ].insert( name, icon );
342 QIcon icon = mIconCache[ entityType ].value( name );
343 if ( !icon.isNull() )
349 for (
auto it = mTargetScreenProperties.constBegin(); it != mTargetScreenProperties.constEnd(); ++it )
353 if ( mAdditionalSizes.isEmpty() )
356 for (
const QSize &s : mAdditionalSizes )
363 mIconCache[ entityType ].insert( name, icon );
373 QIcon icon = mIconCache[ entityType ].value( name );
374 if ( !icon.isNull() )
377 if ( sIconGenerator && !mPending3dSymbolIcons.contains( name ) )
379 mPending3dSymbolIcons.insert( name );
384 if ( mAdditionalSizes.isEmpty() )
386 for (
const QSize &s : mAdditionalSizes )
390 mIconCache[ entityType ].insert( name, icon );
413 return mStyle->
isFavorite( entityType, name );
417 switch ( entityType )
422 return symbol ?
static_cast< int >( symbol->
type() ) : QVariant();
441 switch ( entityType )
460 switch ( entityType )
466 res.reserve( types.size() );
469 res << static_cast< int >( type );
490 return mStyle->
name();
505 if (
index.row() < 0 ||
index.row() >=
rowCount( QModelIndex() ) || role != Qt::EditRole )
508 switch (
index.column() )
514 switch ( entityType )
521 name = mEntityNames[ entityType ].value(
index.row() - offsetForEntity( entityType ) );
525 const QString newName = value.toString();
526 return mStyle->
renameEntity( entityType, name, newName );
538 Qt::ItemFlags
flags = QAbstractItemModel::flags(
index );
541 return flags | Qt::ItemIsEditable;
551 return headerDataStatic( section, orientation, role );
554QVariant QgsStyleModel::headerDataStatic(
int section, Qt::Orientation orientation,
int role )
556 if ( role == Qt::DisplayRole )
558 if ( orientation == Qt::Vertical )
560 return QVariant( section );
567 return QVariant( tr(
"Name" ) );
570 return QVariant( tr(
"Tags" ) );
585 if ( !hasIndex( row, column,
parent ) )
586 return QModelIndex();
590 return createIndex( row, column );
593 return QModelIndex();
599 return QModelIndex();
608 count += mEntityNames[ type ].size();
621 if ( mAdditionalSizes.contains( size ) )
624 mAdditionalSizes << size;
626 if ( sIconGenerator )
634 if ( mTargetScreenProperties.contains( properties ) )
637 mTargetScreenProperties.insert( properties );
639 if ( sIconGenerator )
647 sIconGenerator = generator;
653 mIconCache[ type ].remove( name );
654 const QStringList newSymbolNames = mStyle->
allNames( type );
657 const int newNameIndex = newSymbolNames.indexOf( name );
658 if ( newNameIndex < 0 )
661 const int offset = offsetForEntity( type );
662 beginInsertRows( QModelIndex(), newNameIndex + offset, newNameIndex + offset );
663 mEntityNames[ type ] = newSymbolNames;
669 mIconCache[ type ].remove( name );
670 const QStringList oldSymbolNames = mEntityNames[ type ];
671 const QStringList newSymbolNames = mStyle->
allNames( type );
674 const int oldNameIndex = oldSymbolNames.indexOf( name );
675 if ( oldNameIndex < 0 )
678 const int offset = offsetForEntity( type );
679 beginRemoveRows( QModelIndex(), oldNameIndex + offset, oldNameIndex + offset );
680 mEntityNames[ type ] = newSymbolNames;
686 mIconCache[ type ].remove( name );
688 const int offset = offsetForEntity( type );
689 QModelIndex i =
index( offset + mEntityNames[ type ].indexOf( name ),
Tags );
690 emit dataChanged( i, i, QVector< int >() << Qt::DecorationRole );
695 const int offset = offsetForEntity( type );
696 QModelIndex i =
index( offset + mEntityNames[ type ].indexOf( name ),
Name );
700void QgsStyleModel::onEntityRename(
QgsStyle::StyleEntity type,
const QString &oldName,
const QString &newName )
702 mIconCache[ type ].remove( oldName );
703 const QStringList oldSymbolNames = mEntityNames[ type ];
704 const QStringList newSymbolNames = mStyle->
allNames( type );
707 const int oldNameIndex = oldSymbolNames.indexOf( oldName );
708 if ( oldNameIndex < 0 )
712 const int newNameIndex = newSymbolNames.indexOf( newName );
713 if ( newNameIndex < 0 )
716 if ( newNameIndex == oldNameIndex )
718 mEntityNames[ type ] = newSymbolNames;
722 const int offset = offsetForEntity( type );
723 beginMoveRows( QModelIndex(), oldNameIndex + offset, oldNameIndex + offset, QModelIndex(), ( newNameIndex > oldNameIndex ? newNameIndex + 1 : newNameIndex ) + offset );
724 mEntityNames[ type ] = newSymbolNames;
728void QgsStyleModel::onTagsChanged(
int entity,
const QString &name,
const QStringList & )
731 int row = mEntityNames[type].indexOf( name ) + offsetForEntity( type );
744void QgsStyleModel::rebuildSymbolIcons()
747 mExpressionContext.reset();
751void QgsStyleModel::iconGenerated(
QgsStyle::StyleEntity type,
const QString &name,
const QIcon &icon )
753 int row = mEntityNames[type].indexOf( name ) + offsetForEntity( type );
758 mPending3dSymbolIcons.remove( name );
760 emit dataChanged(
index( row, 0 ),
index( row, 0 ) );
776 int maxRowForEntity = 0;
779 maxRowForEntity += mEntityNames[ type ].size();
780 if ( row < maxRowForEntity )
794 if ( type == entity )
797 offset += mEntityNames[ type ].size();
807 : QSortFilterProxyModel( parent )
811 setSourceModel( mModel );
815void QgsStyleProxyModel::initialize()
817 setSortCaseSensitivity( Qt::CaseInsensitive );
819 setDynamicSortFilter(
true );
829 if ( mSmartGroupId >= 0 )
845 if ( mSmartGroupId >= 0 )
852 : QSortFilterProxyModel( parent )
854 , mStyle( model->style() )
856 setSourceModel( mModel );
861 : QSortFilterProxyModel( parent )
862 , mCombinedModel( model )
864 setSourceModel( mCombinedModel );
870 if ( mFilterString.isEmpty() && !mEntityFilterEnabled && !mSymbolTypeFilterEnabled && mTagId < 0 && mSmartGroupId < 0 && !mFavoritesOnly && mTagFilter.isEmpty() )
873 const QModelIndex index = sourceModel()->index( source_row, 0, source_parent );
878 const QString name = sourceModel()->data( index ).toString();
882 if ( mEntityFilterEnabled && ( mEntityFilters.empty() || !mEntityFilters.contains( styleEntityType ) ) )
886 if ( mSymbolTypeFilterEnabled &&
symbolType != mSymbolType )
891 switch ( styleEntityType )
911 if ( !types.empty() && !types.contains( QVariant::fromValue( mLayerType ) ) )
918 if ( mTagId >= 0 && !mTaggedSymbolNames.contains( name ) )
921 if ( mSmartGroupId >= 0 && !mSmartGroupSymbolNames.contains( name ) )
924 if ( !mTagFilter.isEmpty() && !tags.contains( mTagFilter, Qt::CaseInsensitive ) )
930 if ( !mFilterString.isEmpty() )
934 const QStringList partsToMatch = mFilterString.trimmed().split(
' ' );
936 QStringList partsToSearch = name.split(
' ' );
937 for (
const QString &tag : tags )
939 partsToSearch.append( tag.split(
' ' ) );
942 for (
const QString &part : partsToMatch )
945 for (
const QString &partToSearch : std::as_const( partsToSearch ) )
947 if ( partToSearch.contains( part, Qt::CaseInsensitive ) )
965 if ( leftSource != rightSource )
966 return QString::localeAwareCompare( leftSource, rightSource ) < 0;
970 return QString::localeAwareCompare( leftName, rightName ) < 0;
975 mFilterString = filter;
982 return mFavoritesOnly;
995 if ( mCombinedModel )
1003 if ( mCombinedModel )
1009 return mSymbolTypeFilterEnabled;
1014 mSymbolTypeFilterEnabled = enabled;
1035 mTaggedSymbolNames.clear();
1039 mTaggedSymbolNames.append( mStyle->
symbolsWithTag( entity, mTagId ) );
1069 mSmartGroupSymbolNames.clear();
1070 if ( mSmartGroupId >= 0 )
1081 return mSmartGroupId;
1097 return mEntityFilterEnabled;
1113 mEntityFilters = QList< QgsStyle::StyleEntity >() <<
entityFilter;
1119 mEntityFilters = filters;
GeometryType
The geometry types are used to group Qgis::WkbType in a coarse way.
SymbolType
Attribute editing capabilities which may be supported by vector data providers.
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 ...
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
@ StyleName
Name of associated QgsStyle (QgsStyle::name()) (since QGIS 3.26)
@ LayerTypeRole
Layer type (for label settings entities)
@ StyleFileName
File name of associated QgsStyle (QgsStyle::fileName()) (since QGIS 3.26)
@ EntityName
Entity name (since QGIS 3.26)
@ TypeRole
Style entity type, see QgsStyle::StyleEntity.
@ CompatibleGeometryTypesRole
Compatible layer geometry types (for 3D symbols)
@ IsFavoriteRole
Whether entity is flagged as a favorite.
@ SymbolTypeRole
Symbol type (for symbol or legend patch shape entities)
@ IsTitleRole
True if the index corresponds to a title item (since QGIS 3.26)
@ TagRole
String list of tags.
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.
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 (since QGIS 3.14)
@ ColorrampEntity
Color ramps.
@ LegendPatchShapeEntity
Legend patch shape (since QGIS 3.14)
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)
QString fileName() const
Returns the current file name of the style database.
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