28using namespace Qt::StringLiterals;
56 qDeleteAll( mMetadata );
61 if ( mMetadata.contains( name ) )
62 return mMetadata.value( name );
69 if ( !metadata || mMetadata.contains( metadata->
name() ) )
72 mMetadata[metadata->
name()] = metadata;
78 if ( !mMetadata.contains( name ) )
81 std::unique_ptr<QgsPaintEffect> effect( mMetadata[name]->createPaintEffect( properties ) );
87 if ( element.isNull() )
92 const QString type = element.attribute( u
"type"_s );
98 effect->readProperties( element );
105 QMap<QString, QgsPaintEffectAbstractMetadata *>::ConstIterator it = mMetadata.begin();
106 for ( ; it != mMetadata.end(); ++it )
108 lst.append( it.key() );
116 auto stack = std::make_unique<QgsEffectStack>();
119 stack->appendEffect( dropShadow );
122 stack->appendEffect( outerGlow );
126 stack->appendEffect( innerShadow );
129 stack->appendEffect( innerGlow );
139 if ( effectStack->
count() != 5 )
142 for (
int i = 0; i < 5; ++i )
163 if ( sourceEffect->
blendMode() != QPainter::CompositionMode_SourceOver )
static QgsPaintEffectRegistry * paintEffectRegistry()
Returns the application's paint effect registry, used for managing paint effects.
static std::unique_ptr< QgsPaintEffect > create(const QVariantMap &map)
Creates a new QgsBlurEffect effect from a properties string map.
static std::unique_ptr< QgsPaintEffect > create(const QVariantMap &map)
Creates a new QgsColorEffect effect from a properties string map.
A paint effect which draws the source picture with minor or no alterations.
QPainter::CompositionMode blendMode() const
Returns the blend mode for the effect.
double opacity() const
Returns the opacity for the effect.
static std::unique_ptr< QgsPaintEffect > create(const QVariantMap &map)
Creates a new QgsDrawSource effect from a properties string map.
A paint effect which draws an offset and optionally blurred drop shadow.
static std::unique_ptr< QgsPaintEffect > create(const QVariantMap &map)
Creates a new QgsDropShadowEffect effect from a properties string map.
A paint effect which consists of a stack of other chained paint effects.
static std::unique_ptr< QgsPaintEffect > create(const QVariantMap &map)
Creates a new QgsEffectStack effect.
int count() const
Returns count of effects contained by the stack.
QgsPaintEffect * effect(int index) const
Returns a pointer to the effect at a specified index within the stack.
A paint effect which draws a glow within a picture.
static std::unique_ptr< QgsPaintEffect > create(const QVariantMap &map)
Creates a new QgsInnerGlowEffect effect from a properties string map.
A paint effect which draws an offset and optionally blurred drop shadow within a picture.
static std::unique_ptr< QgsPaintEffect > create(const QVariantMap &map)
Creates a new QgsInnerShadowEffect effect from a properties string map.
A paint effect which draws a glow outside of a picture.
static std::unique_ptr< QgsPaintEffect > create(const QVariantMap &map)
Creates a new QgsOuterGlowEffect effect from a properties string map.
~QgsPaintEffectRegistry()
QgsPaintEffectAbstractMetadata * effectMetadata(const QString &name) const
Returns the metadata for a specific effect.
QStringList effects() const
Returns a list of known paint effects.
std::unique_ptr< QgsPaintEffect > createEffect(const QString &name, const QVariantMap &properties=QVariantMap()) const
Creates a new paint effect given the effect name and properties map.
static bool isDefaultStack(QgsPaintEffect *effect)
Tests whether a paint effect matches the default effects stack.
bool addEffectType(QgsPaintEffectAbstractMetadata *metadata)
Registers a new effect type.
static std::unique_ptr< QgsPaintEffect > defaultStack()
Returns a new effect stack consisting of a sensible selection of default effects.
Base class for visual effects which can be applied to QPicture drawings.
void setEnabled(bool enabled)
Sets whether the effect is enabled.
bool enabled() const
Returns whether the effect is enabled.
bool qgsDoubleNear(double a, double b, double epsilon=4 *std::numeric_limits< double >::epsilon())
Compare two doubles (but allow some difference).