31  d = 
new QgsTextBackgroundSettingsPrivate();
 
 
   65  if ( d->enabled != other.
enabled()
 
   66       || d->type != other.
type()
 
   67       || d->svgFile != other.
svgFile()
 
   69       || d->size != other.
size()
 
   74       || d->offset != other.
offset()
 
   77       || d->radii != other.
radii()
 
   83       || d->opacity != other.
opacity()
 
   90  if ( 
static_cast< bool >( d->paintEffect ) != 
static_cast< bool >( other.
paintEffect() )
 
   94  if ( 
static_cast< bool >( d->markerSymbol ) != 
static_cast< bool >( other.
markerSymbol() )
 
   98  if ( 
static_cast< bool >( d->fillSymbol ) != 
static_cast< bool >( other.
fillSymbol() )
 
 
  107  return !( *
this == other );
 
 
  142  return d->markerSymbol.get();
 
 
  151  d->markerSymbol.reset( symbol );
 
 
  156  return d->fillSymbol.get();
 
 
  165  d->fillSymbol.reset( symbol );
 
 
  200  return d->sizeMapUnitScale;
 
 
  205  d->sizeMapUnitScale = scale;
 
 
  210  return d->rotationType;
 
 
  215  d->rotationType = 
type;
 
 
  240  return d->offsetUnits;
 
 
  245  d->offsetUnits = units;
 
 
  250  return d->offsetMapUnitScale;
 
 
  255  d->offsetMapUnitScale = scale;
 
 
  270  return d->radiiUnits;
 
 
  275  d->radiiUnits = units;
 
 
  280  return d->radiiMapUnitScale;
 
 
  285  d->radiiMapUnitScale = scale;
 
 
  310  return d->fillSymbol ? d->fillSymbol->color() : d->fillColor;
 
 
  315  d->fillColor = color;
 
  318    d->fillSymbol->setColor( color );
 
 
  324  if ( d->fillSymbol && d->fillSymbol->symbolLayers().at( 0 )->layerType() == QLatin1String( 
"SimpleFill" ) )
 
  326    return qgis::down_cast< QgsSimpleFillSymbolLayer * >( d->fillSymbol->symbolLayers().at( 0 ) )->strokeColor();
 
  328  return d->strokeColor;
 
 
  333  d->strokeColor = color;
 
  334  if ( d->fillSymbol && d->fillSymbol->symbolLayers().at( 0 )->layerType() == QLatin1String( 
"SimpleFill" ) )
 
  336    qgis::down_cast< QgsSimpleFillSymbolLayer * >( d->fillSymbol->symbolLayers().at( 0 ) )->setStrokeColor( color );
 
 
  342  if ( d->fillSymbol && d->fillSymbol->symbolLayers().at( 0 )->layerType() == QLatin1String( 
"SimpleFill" ) )
 
  344    return qgis::down_cast< QgsSimpleFillSymbolLayer * >( d->fillSymbol->symbolLayers().at( 0 ) )->strokeWidth();
 
  346  return d->strokeWidth;
 
 
  351  d->strokeWidth = width;
 
  352  if ( d->fillSymbol && d->fillSymbol->symbolLayers().at( 0 )->layerType() == QLatin1String( 
"SimpleFill" ) )
 
  354    QgsSimpleFillSymbolLayer *fill = qgis::down_cast< QgsSimpleFillSymbolLayer * >( d->fillSymbol->symbolLayers().at( 0 ) );
 
 
  362  if ( d->fillSymbol && d->fillSymbol->symbolLayers().at( 0 )->layerType() == QLatin1String( 
"SimpleFill" ) )
 
  364    return qgis::down_cast< QgsSimpleFillSymbolLayer * >( d->fillSymbol->symbolLayers().at( 0 ) )->strokeWidthUnit();
 
  366  return d->strokeWidthUnits;
 
 
  371  d->strokeWidthUnits = units;
 
  372  if ( d->fillSymbol && d->fillSymbol->symbolLayers().at( 0 )->layerType() == QLatin1String( 
"SimpleFill" ) )
 
  374    qgis::down_cast< QgsSimpleFillSymbolLayer * >( d->fillSymbol->symbolLayers().at( 0 ) )->setStrokeWidthUnit( units );
 
 
  380  if ( d->fillSymbol && d->fillSymbol->symbolLayers().at( 0 )->layerType() == QLatin1String( 
"SimpleFill" ) )
 
  382    return qgis::down_cast< QgsSimpleFillSymbolLayer * >( d->fillSymbol->symbolLayers().at( 0 ) )->strokeWidthMapUnitScale();
 
  384  return d->strokeWidthMapUnitScale;
 
 
  389  d->strokeWidthMapUnitScale = scale;
 
  390  if ( d->fillSymbol && d->fillSymbol->symbolLayers().at( 0 )->layerType() == QLatin1String( 
"SimpleFill" ) )
 
  392    qgis::down_cast< QgsSimpleFillSymbolLayer * >( d->fillSymbol->symbolLayers().at( 0 ) )->setStrokeWidthMapUnitScale( scale );
 
 
  398  if ( d->fillSymbol && d->fillSymbol->symbolLayers().at( 0 )->layerType() == QLatin1String( 
"SimpleFill" ) )
 
  400    return qgis::down_cast< QgsSimpleFillSymbolLayer * >( d->fillSymbol->symbolLayers().at( 0 ) )->penJoinStyle();
 
 
  407  d->joinStyle = style;
 
  408  if ( d->fillSymbol && d->fillSymbol->symbolLayers().at( 0 )->layerType() == QLatin1String( 
"SimpleFill" ) )
 
  410    qgis::down_cast< QgsSimpleFillSymbolLayer * >( d->fillSymbol->symbolLayers().at( 0 ) )->setPenJoinStyle( style );
 
 
  416  return d->paintEffect.get();
 
 
  421  d->paintEffect.reset( effect );
 
 
  426  d->enabled = layer->
customProperty( QStringLiteral( 
"labeling/shapeDraw" ), QVariant( 
false ) ).toBool();
 
  428  d->svgFile = layer->
customProperty( QStringLiteral( 
"labeling/shapeSVGFile" ), QVariant( 
"" ) ).toString();
 
  430  d->size = QSizeF( layer->
customProperty( QStringLiteral( 
"labeling/shapeSizeX" ), QVariant( 0.0 ) ).toDouble(),
 
  431                    layer->
customProperty( QStringLiteral( 
"labeling/shapeSizeY" ), QVariant( 0.0 ) ).toDouble() );
 
  433  if ( layer->
customProperty( QStringLiteral( 
"labeling/shapeSizeUnit" ) ).toString().isEmpty() )
 
  442  if ( layer->
customProperty( QStringLiteral( 
"labeling/shapeSizeMapUnitScale" ) ).toString().isEmpty() )
 
  445    const double oldMin = layer->
customProperty( QStringLiteral( 
"labeling/shapeSizeMapUnitMinScale" ), 0.0 ).toDouble();
 
  446    d->sizeMapUnitScale.minScale = oldMin != 0 ? 1.0 / oldMin : 0;
 
  447    const double oldMax = layer->
customProperty( QStringLiteral( 
"labeling/shapeSizeMapUnitMaxScale" ), 0.0 ).toDouble();
 
  448    d->sizeMapUnitScale.maxScale = oldMax != 0 ? 1.0 / oldMax : 0;
 
  455  d->rotation = layer->
customProperty( QStringLiteral( 
"labeling/shapeRotation" ), QVariant( 0.0 ) ).toDouble();
 
  456  d->offset = QPointF( layer->
customProperty( QStringLiteral( 
"labeling/shapeOffsetX" ), QVariant( 0.0 ) ).toDouble(),
 
  457                       layer->
customProperty( QStringLiteral( 
"labeling/shapeOffsetY" ), QVariant( 0.0 ) ).toDouble() );
 
  459  if ( layer->
customProperty( QStringLiteral( 
"labeling/shapeOffsetUnit" ) ).toString().isEmpty() )
 
  468  if ( layer->
customProperty( QStringLiteral( 
"labeling/shapeOffsetMapUnitScale" ) ).toString().isEmpty() )
 
  471    const double oldMin = layer->
customProperty( QStringLiteral( 
"labeling/shapeOffsetMapUnitMinScale" ), 0.0 ).toDouble();
 
  472    d->offsetMapUnitScale.minScale = oldMin != 0 ? 1.0 / oldMin : 0;
 
  473    const double oldMax = layer->
customProperty( QStringLiteral( 
"labeling/shapeOffsetMapUnitMaxScale" ), 0.0 ).toDouble();
 
  474    d->offsetMapUnitScale.maxScale = oldMax != 0 ? 1.0 / oldMax : 0;
 
  480  d->radii = QSizeF( layer->
customProperty( QStringLiteral( 
"labeling/shapeRadiiX" ), QVariant( 0.0 ) ).toDouble(),
 
  481                     layer->
customProperty( QStringLiteral( 
"labeling/shapeRadiiY" ), QVariant( 0.0 ) ).toDouble() );
 
  484  if ( layer->
customProperty( QStringLiteral( 
"labeling/shapeRadiiUnit" ) ).toString().isEmpty() )
 
  493  if ( layer->
customProperty( QStringLiteral( 
"labeling/shapeRadiiMapUnitScale" ) ).toString().isEmpty() )
 
  496    const double oldMin = layer->
customProperty( QStringLiteral( 
"labeling/shapeRadiiMapUnitMinScale" ), 0.0 ).toDouble();
 
  497    d->radiiMapUnitScale.minScale = oldMin != 0 ? 1.0 / oldMin : 0;
 
  498    const double oldMax = layer->
customProperty( QStringLiteral( 
"labeling/shapeRadiiMapUnitMaxScale" ), 0.0 ).toDouble();
 
  499    d->radiiMapUnitScale.maxScale = oldMax != 0 ? 1.0 / oldMax : 0;
 
  507  d->strokeWidth = layer->
customProperty( QStringLiteral( 
"labeling/shapeBorderWidth" ), QVariant( .0 ) ).toDouble();
 
  508  if ( layer->
customProperty( QStringLiteral( 
"labeling/shapeBorderWidthUnit" ) ).toString().isEmpty() )
 
  516  if ( layer->
customProperty( QStringLiteral( 
"labeling/shapeBorderWidthMapUnitScale" ) ).toString().isEmpty() )
 
  519    const double oldMin = layer->
customProperty( QStringLiteral( 
"labeling/shapeBorderWidthMapUnitMinScale" ), 0.0 ).toDouble();
 
  520    d->strokeWidthMapUnitScale.minScale = oldMin != 0 ? 1.0 / oldMin : 0;
 
  521    const double oldMax = layer->
customProperty( QStringLiteral( 
"labeling/shapeBorderWidthMapUnitMaxScale" ), 0.0 ).toDouble();
 
  522    d->strokeWidthMapUnitScale.maxScale = oldMax != 0 ? 1.0 / oldMax : 0;
 
  528  d->joinStyle = 
static_cast< Qt::PenJoinStyle 
>( layer->
customProperty( QStringLiteral( 
"labeling/shapeJoinStyle" ), QVariant( Qt::BevelJoin ) ).toUInt() );
 
  530  if ( layer->
customProperty( QStringLiteral( 
"labeling/shapeOpacity" ) ).toString().isEmpty() )
 
  532    d->opacity = ( 1 - layer->
customProperty( QStringLiteral( 
"labeling/shapeTransparency" ) ).toInt() / 100.0 ); 
 
  536    d->opacity = ( layer->
customProperty( QStringLiteral( 
"labeling/shapeOpacity" ) ).toDouble() );
 
  541  if ( layer->
customProperty( QStringLiteral( 
"labeling/shapeEffect" ) ).isValid() )
 
  543    QDomDocument doc( QStringLiteral( 
"effect" ) );
 
  544    doc.setContent( layer->
customProperty( QStringLiteral( 
"labeling/shapeEffect" ) ).toString() );
 
  545    const QDomElement effectElem = doc.firstChildElement( QStringLiteral( 
"effect" ) ).firstChildElement( QStringLiteral( 
"effect" ) );
 
 
  554  const QDomElement backgroundElem = elem.firstChildElement( QStringLiteral( 
"background" ) );
 
  555  d->enabled = backgroundElem.attribute( QStringLiteral( 
"shapeDraw" ), QStringLiteral( 
"0" ) ).toInt();
 
  556  d->type = 
static_cast< ShapeType >( backgroundElem.attribute( QStringLiteral( 
"shapeType" ), QString::number( 
ShapeRectangle ) ).toUInt() );
 
  558  d->sizeType = 
static_cast< SizeType >( backgroundElem.attribute( QStringLiteral( 
"shapeSizeType" ), QString::number( 
SizeBuffer ) ).toUInt() );
 
  559  d->size = QSizeF( backgroundElem.attribute( QStringLiteral( 
"shapeSizeX" ), QStringLiteral( 
"0" ) ).toDouble(),
 
  560                    backgroundElem.attribute( QStringLiteral( 
"shapeSizeY" ), QStringLiteral( 
"0" ) ).toDouble() );
 
  562  if ( !backgroundElem.hasAttribute( QStringLiteral( 
"shapeSizeUnit" ) ) )
 
  571  if ( !backgroundElem.hasAttribute( QStringLiteral( 
"shapeSizeMapUnitScale" ) ) )
 
  574    const double oldMin = backgroundElem.attribute( QStringLiteral( 
"shapeSizeMapUnitMinScale" ), QStringLiteral( 
"0" ) ).toDouble();
 
  575    d->sizeMapUnitScale.minScale = oldMin != 0 ? 1.0 / oldMin : 0;
 
  576    const double oldMax = backgroundElem.attribute( QStringLiteral( 
"shapeSizeMapUnitMaxScale" ), QStringLiteral( 
"0" ) ).toDouble();
 
  577    d->sizeMapUnitScale.maxScale = oldMax != 0 ? 1.0 / oldMax : 0;
 
  583  d->rotationType = 
static_cast< RotationType >( backgroundElem.attribute( QStringLiteral( 
"shapeRotationType" ), QString::number( 
RotationSync ) ).toUInt() );
 
  584  d->rotation = backgroundElem.attribute( QStringLiteral( 
"shapeRotation" ), QStringLiteral( 
"0" ) ).toDouble();
 
  585  d->offset = QPointF( backgroundElem.attribute( QStringLiteral( 
"shapeOffsetX" ), QStringLiteral( 
"0" ) ).toDouble(),
 
  586                       backgroundElem.attribute( QStringLiteral( 
"shapeOffsetY" ), QStringLiteral( 
"0" ) ).toDouble() );
 
  588  if ( !backgroundElem.hasAttribute( QStringLiteral( 
"shapeOffsetUnit" ) ) )
 
  597  if ( !backgroundElem.hasAttribute( QStringLiteral( 
"shapeOffsetMapUnitScale" ) ) )
 
  600    const double oldMin = backgroundElem.attribute( QStringLiteral( 
"shapeOffsetMapUnitMinScale" ), QStringLiteral( 
"0" ) ).toDouble();
 
  601    d->offsetMapUnitScale.minScale = oldMin != 0 ? 1.0 / oldMin : 0;
 
  602    const double oldMax = backgroundElem.attribute( QStringLiteral( 
"shapeOffsetMapUnitMaxScale" ), QStringLiteral( 
"0" ) ).toDouble();
 
  603    d->offsetMapUnitScale.maxScale = oldMax != 0 ? 1.0 / oldMax : 0;
 
  609  d->radii = QSizeF( backgroundElem.attribute( QStringLiteral( 
"shapeRadiiX" ), QStringLiteral( 
"0" ) ).toDouble(),
 
  610                     backgroundElem.attribute( QStringLiteral( 
"shapeRadiiY" ), QStringLiteral( 
"0" ) ).toDouble() );
 
  612  if ( !backgroundElem.hasAttribute( QStringLiteral( 
"shapeRadiiUnit" ) ) )
 
  620  if ( !backgroundElem.hasAttribute( QStringLiteral( 
"shapeRadiiMapUnitScale" ) ) )
 
  623    const double oldMin = backgroundElem.attribute( QStringLiteral( 
"shapeRadiiMapUnitMinScale" ), QStringLiteral( 
"0" ) ).toDouble();
 
  624    d->radiiMapUnitScale.minScale = oldMin != 0 ? 1.0 / oldMin : 0;
 
  625    const double oldMax = backgroundElem.attribute( QStringLiteral( 
"shapeRadiiMapUnitMaxScale" ), QStringLiteral( 
"0" ) ).toDouble();
 
  626    d->radiiMapUnitScale.maxScale = oldMax != 0 ? 1.0 / oldMax : 0;
 
  634  d->strokeWidth = backgroundElem.attribute( QStringLiteral( 
"shapeBorderWidth" ), QStringLiteral( 
"0" ) ).toDouble();
 
  636  if ( !backgroundElem.hasAttribute( QStringLiteral( 
"shapeBorderWidthUnit" ) ) )
 
  644  if ( !backgroundElem.hasAttribute( QStringLiteral( 
"shapeBorderWidthMapUnitScale" ) ) )
 
  647    const double oldMin = backgroundElem.attribute( QStringLiteral( 
"shapeBorderWidthMapUnitMinScale" ), QStringLiteral( 
"0" ) ).toDouble();
 
  648    d->strokeWidthMapUnitScale.minScale = oldMin != 0 ? 1.0 / oldMin : 0;
 
  649    const double oldMax = backgroundElem.attribute( QStringLiteral( 
"shapeBorderWidthMapUnitMaxScale" ), QStringLiteral( 
"0" ) ).toDouble();
 
  650    d->strokeWidthMapUnitScale.maxScale = oldMax != 0 ? 1.0 / oldMax : 0;
 
  656  d->joinStyle = 
static_cast< Qt::PenJoinStyle 
>( backgroundElem.attribute( QStringLiteral( 
"shapeJoinStyle" ), QString::number( Qt::BevelJoin ) ).toUInt() );
 
  658  if ( !backgroundElem.hasAttribute( QStringLiteral( 
"shapeOpacity" ) ) )
 
  660    d->opacity = ( 1 - backgroundElem.attribute( QStringLiteral( 
"shapeTransparency" ) ).toInt() / 100.0 ); 
 
  664    d->opacity = ( backgroundElem.attribute( QStringLiteral( 
"shapeOpacity" ) ).toDouble() );
 
  670  const QDomElement effectElem = backgroundElem.firstChildElement( QStringLiteral( 
"effect" ) );
 
  671  if ( !effectElem.isNull() )
 
  678  const QDomNodeList symbols = backgroundElem.elementsByTagName( QStringLiteral( 
"symbol" ) );
 
  679  for ( 
int i = 0; i < symbols.size(); ++i )
 
  681    if ( symbols.at( i ).isElement() )
 
  683      const QDomElement symbolElement = symbols.at( i ).toElement();
 
  684      const QString symbolElementName = symbolElement.attribute( QStringLiteral( 
"name" ) );
 
  685      if ( symbolElementName == QLatin1String( 
"markerSymbol" ) )
 
  687        setMarkerSymbol( QgsSymbolLayerUtils::loadSymbol< QgsMarkerSymbol >( symbolElement, context ).release() );
 
  689      else if ( symbolElementName == QLatin1String( 
"fillSymbol" ) )
 
  691        setFillSymbol( QgsSymbolLayerUtils::loadSymbol< QgsFillSymbol >( symbolElement, context ).release() );
 
  696  if ( !d->fillSymbol )
 
 
  713  QDomElement backgroundElem = doc.createElement( QStringLiteral( 
"background" ) );
 
  714  backgroundElem.setAttribute( QStringLiteral( 
"shapeDraw" ), d->enabled );
 
  715  backgroundElem.setAttribute( QStringLiteral( 
"shapeType" ), 
static_cast< unsigned int >( d->type ) );
 
  717  backgroundElem.setAttribute( QStringLiteral( 
"shapeSizeType" ), 
static_cast< unsigned int >( d->sizeType ) );
 
  718  backgroundElem.setAttribute( QStringLiteral( 
"shapeSizeX" ), d->size.width() );
 
  719  backgroundElem.setAttribute( QStringLiteral( 
"shapeSizeY" ), d->size.height() );
 
  722  backgroundElem.setAttribute( QStringLiteral( 
"shapeRotationType" ), 
static_cast< unsigned int >( d->rotationType ) );
 
  723  backgroundElem.setAttribute( QStringLiteral( 
"shapeRotation" ), d->rotation );
 
  724  backgroundElem.setAttribute( QStringLiteral( 
"shapeOffsetX" ), d->offset.x() );
 
  725  backgroundElem.setAttribute( QStringLiteral( 
"shapeOffsetY" ), d->offset.y() );
 
  728  backgroundElem.setAttribute( QStringLiteral( 
"shapeRadiiX" ), d->radii.width() );
 
  729  backgroundElem.setAttribute( QStringLiteral( 
"shapeRadiiY" ), d->radii.height() );
 
  734  backgroundElem.setAttribute( QStringLiteral( 
"shapeBorderWidth" ), d->strokeWidth );
 
  735  backgroundElem.setAttribute( QStringLiteral( 
"shapeBorderWidthUnit" ), 
QgsUnitTypes::encodeUnit( d->strokeWidthUnits ) );
 
  737  backgroundElem.setAttribute( QStringLiteral( 
"shapeJoinStyle" ), 
static_cast< unsigned int >( d->joinStyle ) );
 
  738  backgroundElem.setAttribute( QStringLiteral( 
"shapeOpacity" ), d->opacity );
 
  741    d->paintEffect->saveProperties( doc, backgroundElem );
 
  743  if ( d->markerSymbol )
 
  749  return backgroundElem;
 
 
  754  if ( !d->fillSymbol || d->fillSymbol->symbolLayers().at( 0 )->layerType() != QLatin1String( 
"SimpleFill" ) )
 
  756  QgsSimpleFillSymbolLayer *fill = qgis::down_cast< QgsSimpleFillSymbolLayer * >( d->fillSymbol->symbolLayers().at( 0 ) );
 
 
  812    const QString units = exprVal.toString();
 
  813    if ( !units.isEmpty() )
 
  825    const QString skind = exprVal.toString().trimmed();
 
  826    if ( !skind.isEmpty() )
 
  835    const QString stype = exprVal.toString().trimmed();
 
  836    if ( !stype.isEmpty() )
 
  847    const QString svgfile = exprVal.toString().trimmed();
 
  859    const QString rotstr = exprVal.toString().trimmed();
 
  860    if ( !rotstr.isEmpty() )
 
  879    const QString units = exprVal.toString();
 
  880    if ( !units.isEmpty() )
 
  885        d->offsetUnits = res;
 
  903    const QString units = exprVal.toString();
 
  904    if ( !units.isEmpty() )
 
  919      d->opacity = val.toDouble() / 100.0;
 
  943    const QString units = exprVal.toString();
 
  944    if ( !units.isEmpty() )
 
  956    const QString blendstr = exprVal.toString().trimmed();
 
  957    if ( !blendstr.isEmpty() )
 
  964    const QString joinstr = exprVal.toString().trimmed();
 
  965    if ( !joinstr.isEmpty() )
 
 
  974  QSet< QString > fields;
 
  975  if ( d->markerSymbol )
 
  977    fields.unite( d->markerSymbol->usedAttributes( context ) );
 
  981    fields.unite( d->fillSymbol->usedAttributes( context ) );
 
 
BlendMode
Blending modes defining the available composition modes that can be used when painting.
 
RenderUnit
Rendering size units.
 
QColor valueAsColor(int key, const QgsExpressionContext &context, const QColor &defaultColor=QColor(), bool *ok=nullptr) const
Calculates the current value of the property with the specified key and interprets it as a color.
 
bool valueAsBool(int key, const QgsExpressionContext &context, bool defaultValue=false, bool *ok=nullptr) const
Calculates the current value of the property with the specified key and interprets it as an boolean.
 
double valueAsDouble(int key, const QgsExpressionContext &context, double defaultValue=0.0, bool *ok=nullptr) const
Calculates the current value of the property with the specified key and interprets it as a double.
 
static QgsPaintEffectRegistry * paintEffectRegistry()
Returns the application's paint effect registry, used for managing paint effects.
 
static QColor colorFromString(const QString &string)
Decodes a string into a color value.
 
static QString colorToString(const QColor &color)
Encodes a color into a string value.
 
void setOriginalValueVariable(const QVariant &value)
Sets the original value variable value for the context.
 
A fill symbol type, for rendering Polygon and MultiPolygon geometries.
 
Q_INVOKABLE QVariant customProperty(const QString &value, const QVariant &defaultValue=QVariant()) const
Read a custom property from layer.
 
Struct for storing maximum and minimum scales for measurements in map units.
 
A marker symbol type, for rendering Point and MultiPoint geometries.
 
static bool isDefaultStack(QgsPaintEffect *effect)
Tests whether a paint effect matches the default effects stack.
 
Base class for visual effects which can be applied to QPicture drawings.
 
virtual QVariantMap properties() const =0
Returns the properties describing the paint effect encoded in a string format.
 
static Qgis::BlendMode getBlendModeEnum(QPainter::CompositionMode blendMode)
Returns a Qgis::BlendMode corresponding to a QPainter::CompositionMode.
 
static QPainter::CompositionMode getCompositionMode(Qgis::BlendMode blendMode)
Returns a QPainter::CompositionMode corresponding to a Qgis::BlendMode.
 
@ ShapeOpacity
Shape opacity.
 
A grouped map of multiple QgsProperty objects, each referenced by an integer key value.
 
QVariant value(int key, const QgsExpressionContext &context, const QVariant &defaultValue=QVariant()) const final
Returns the calculated value of the property with the specified key from within the collection.
 
bool hasProperty(int key) const final
Returns true if the collection contains a property with the specified key.
 
void setProperty(int key, const QgsProperty &property)
Adds a property to the collection and takes ownership of it.
 
bool isActive(int key) const final
Returns true if the collection contains an active property with the specified key.
 
QgsProperty property(int key) const final
Returns a matching property from the collection, if one exists.
 
A store for object properties.
 
A container for the context for various read/write operations on objects.
 
const QgsPathResolver & pathResolver() const
Returns path resolver for conversion between relative and absolute paths.
 
Contains information about the context of a rendering operation.
 
QgsExpressionContext & expressionContext()
Gets the expression context.
 
const QgsPathResolver & pathResolver() const
Returns the path resolver for conversion between relative and absolute paths during rendering operati...
 
Renders polygons using a single fill and stroke color.
 
void setStrokeWidthMapUnitScale(const QgsMapUnitScale &scale)
 
void setStrokeWidthUnit(Qgis::RenderUnit unit)
Sets the units for the width of the fill's stroke.
 
void setPenJoinStyle(Qt::PenJoinStyle style)
 
void setStrokeWidth(double strokeWidth)
 
void setStrokeStyle(Qt::PenStyle strokeStyle)
 
static void clearSymbolLayerIds(QgsSymbol *symbol)
Remove recursively unique id from all symbol symbol layers and set an empty string instead.
 
static Qt::PenJoinStyle decodePenJoinStyle(const QString &str)
 
static QString encodeMapUnitScale(const QgsMapUnitScale &mapUnitScale)
 
static QString svgSymbolPathToName(const QString &path, const QgsPathResolver &pathResolver)
Determines an SVG symbol's name from its path.
 
static QPointF toPoint(const QVariant &value, bool *ok=nullptr)
Converts a value to a point.
 
static QgsMapUnitScale decodeMapUnitScale(const QString &str)
 
static QSizeF toSize(const QVariant &value, bool *ok=nullptr)
Converts a value to a size.
 
static QPainter::CompositionMode decodeBlendMode(const QString &s)
 
static QString svgSymbolNameToPath(const QString &name, const QgsPathResolver &pathResolver)
Determines an SVG symbol's path from its name.
 
static QString encodeColor(const QColor &color)
 
static QDomElement saveSymbol(const QString &symbolName, const QgsSymbol *symbol, QDomDocument &doc, const QgsReadWriteContext &context)
Writes a symbol definition to XML.
 
static QString symbolProperties(QgsSymbol *symbol)
Returns a string representing the symbol.
 
@ StrokeColor
Stroke color.
 
@ JoinStyle
Line join style.
 
@ StrokeWidth
Stroke width.
 
QgsPropertyCollection & dataDefinedProperties()
Returns a reference to the symbol layer's property collection, used for data defined overrides.
 
bool changeSymbolLayer(int index, QgsSymbolLayer *layer)
Deletes the current layer at the specified index and replaces it with layer.
 
Container for settings relating to a text background object.
 
QgsMapUnitScale strokeWidthMapUnitScale() const
Returns the map unit scale object for the shape stroke width.
 
void setRadiiUnit(Qgis::RenderUnit units)
Sets the units used for the shape's radii.
 
void setFillSymbol(QgsFillSymbol *symbol)
Sets the current fill symbol for the background shape.
 
RotationType rotationType() const
Returns the method used for rotating the background shape.
 
QString svgFile() const
Returns the absolute path to the background SVG file, if set.
 
QSizeF size() const
Returns the size of the background shape.
 
QSizeF radii() const
Returns the radii used for rounding the corners of shapes.
 
QSet< QString > referencedFields(const QgsRenderContext &context) const
Returns all field names referenced by the configuration (e.g.
 
QgsMapUnitScale radiiMapUnitScale() const
Returns the map unit scale object for the shape radii.
 
void upgradeDataDefinedProperties(QgsPropertyCollection &properties)
Upgrade data defined properties when reading a project file saved in QGIS prior to version 3....
 
void setOpacity(double opacity)
Sets the background shape's opacity.
 
void setStrokeColor(const QColor &color)
Sets the color used for outlining the background shape.
 
Qgis::RenderUnit radiiUnit() const
Returns the units used for the shape's radii.
 
void setSizeMapUnitScale(const QgsMapUnitScale &scale)
Sets the map unit scale object for the shape size.
 
QPainter::CompositionMode blendMode() const
Returns the blending mode used for drawing the background shape.
 
Qt::PenJoinStyle joinStyle() const
Returns the join style used for drawing the background shape.
 
SizeType
Methods for determining the background shape size.
 
@ SizeBuffer
Shape size is determined by adding a buffer margin around text.
 
bool enabled() const
Returns whether the background is enabled.
 
QgsTextBackgroundSettings()
 
void readXml(const QDomElement &elem, const QgsReadWriteContext &context)
Read settings from a DOM element.
 
void setJoinStyle(Qt::PenJoinStyle style)
Sets the join style used for drawing the background shape.
 
double opacity() const
Returns the background shape's opacity.
 
bool operator!=(const QgsTextBackgroundSettings &other) const
 
void updateDataDefinedProperties(QgsRenderContext &context, const QgsPropertyCollection &properties)
Updates the format by evaluating current values of data defined properties.
 
void setStrokeWidthMapUnitScale(const QgsMapUnitScale &scale)
Sets the map unit scale object for the shape stroke width.
 
double rotation() const
Returns the rotation for the background shape, in degrees clockwise.
 
QColor fillColor() const
Returns the color used for filing the background shape.
 
void setMarkerSymbol(QgsMarkerSymbol *symbol)
Sets the current marker symbol for the background shape.
 
void setRadii(QSizeF radii)
Sets the radii used for rounding the corners of shapes.
 
SizeType sizeType() const
Returns the method used to determine the size of the background shape (e.g., fixed size or buffer aro...
 
QgsTextBackgroundSettings & operator=(const QgsTextBackgroundSettings &other)
 
Qgis::RenderUnit strokeWidthUnit() const
Returns the units used for the shape's stroke width.
 
~QgsTextBackgroundSettings()
 
ShapeType type() const
Returns the type of background shape (e.g., square, ellipse, SVG).
 
double strokeWidth() const
Returns the width of the shape's stroke (stroke).
 
void setSizeType(SizeType type)
Sets the method used to determine the size of the background shape (e.g., fixed size or buffer around...
 
ShapeType
Background shape types.
 
@ ShapeRectangle
Rectangle.
 
void setFillColor(const QColor &color)
Sets the color used for filing the background shape.
 
void setPaintEffect(QgsPaintEffect *effect)
Sets the current paint effect for the background shape.
 
void setSizeUnit(Qgis::RenderUnit unit)
Sets the units used for the shape's size.
 
Qgis::RenderUnit offsetUnit() const
Returns the units used for the shape's offset.
 
QColor strokeColor() const
Returns the color used for outlining the background shape.
 
QDomElement writeXml(QDomDocument &doc, const QgsReadWriteContext &context) const
Write settings into a DOM element.
 
void setRotationType(RotationType type)
Sets the method used for rotating the background shape.
 
void setOffsetMapUnitScale(const QgsMapUnitScale &scale)
Sets the map unit scale object for the shape offset.
 
QgsFillSymbol * fillSymbol() const
Returns the fill symbol to be rendered in the background.
 
void setBlendMode(QPainter::CompositionMode mode)
Sets the blending mode used for drawing the background shape.
 
void readFromLayer(QgsVectorLayer *layer)
Reads settings from a layer's custom properties (for QGIS 2.x projects).
 
QgsMapUnitScale sizeMapUnitScale() const
Returns the map unit scale object for the shape size.
 
void setType(ShapeType type)
Sets the type of background shape to draw (e.g., square, ellipse, SVG).
 
Qgis::RenderUnit sizeUnit() const
Returns the units used for the shape's size.
 
RotationType
Methods for determining the rotation of the background shape.
 
@ RotationSync
Shape rotation is synced with text rotation.
 
bool operator==(const QgsTextBackgroundSettings &other) const
 
void setEnabled(bool enabled)
Sets whether the text background will be drawn.
 
QgsMarkerSymbol * markerSymbol() const
Returns the marker symbol to be rendered in the background.
 
void setRadiiMapUnitScale(const QgsMapUnitScale &scale)
Sets the map unit scale object for the shape radii.
 
void setRotation(double rotation)
Sets the rotation for the background shape, in degrees clockwise.
 
void setStrokeWidthUnit(Qgis::RenderUnit units)
Sets the units used for the shape's stroke width.
 
void setOffsetUnit(Qgis::RenderUnit units)
Sets the units used for the shape's offset.
 
void setOffset(QPointF offset)
Sets the offset used for drawing the background shape.
 
void setSize(QSizeF size)
Sets the size of the background shape.
 
const QgsPaintEffect * paintEffect() const
Returns the current paint effect for the background shape.
 
void setSvgFile(const QString &file)
Sets the path to the background SVG file.
 
QgsMapUnitScale offsetMapUnitScale() const
Returns the map unit scale object for the shape offset.
 
void setStrokeWidth(double width)
Sets the width of the shape's stroke (stroke).
 
QPointF offset() const
Returns the offset used for drawing the background shape.
 
static QgsTextBackgroundSettings::ShapeType decodeShapeType(const QString &string)
Decodes a string representation of a background shape type to a type.
 
static QColor readColor(QgsVectorLayer *layer, const QString &property, const QColor &defaultColor=Qt::black, bool withAlpha=true)
Converts an encoded color value from a layer property.
 
static QgsTextBackgroundSettings::RotationType decodeBackgroundRotationType(const QString &string)
Decodes a string representation of a background rotation type to a type.
 
static QgsTextBackgroundSettings::SizeType decodeBackgroundSizeType(const QString &string)
Decodes a string representation of a background size type to a type.
 
static Qgis::RenderUnit convertFromOldLabelUnit(int val)
Converts a unit from an old (pre 3.0) label unit.
 
static Q_INVOKABLE Qgis::RenderUnit decodeRenderUnit(const QString &string, bool *ok=nullptr)
Decodes a render unit from a string.
 
static Q_INVOKABLE QString encodeUnit(Qgis::DistanceUnit unit)
Encodes a distance unit to a string.
 
static bool isNull(const QVariant &variant, bool silenceNullWarnings=false)
Returns true if the specified variant should be considered a NULL value.
 
Represents a vector layer which manages a vector based dataset.
 
bool qgsDoubleNear(double a, double b, double epsilon=4 *std::numeric_limits< double >::epsilon())
Compare two doubles (but allow some difference)