QGIS API Documentation 3.27.0-Master (f261cc1f8b)
qgseffectstack.h
Go to the documentation of this file.
1/***************************************************************************
2 qgseffectstack.h
3 ----------------
4 begin : December 2014
5 copyright : (C) 2014 Nyall Dawson
6 email : nyall dot dawson at gmail dot com
7 ***************************************************************************/
8
9/***************************************************************************
10 * *
11 * This program is free software; you can redistribute it and/or modify *
12 * it under the terms of the GNU General Public License as published by *
13 * the Free Software Foundation; either version 2 of the License, or *
14 * (at your option) any later version. *
15 * *
16 ***************************************************************************/
17#ifndef QGSEFFECTSTACK_H
18#define QGSEFFECTSTACK_H
19
20#include "qgis_core.h"
21#include "qgis_sip.h"
22#include "qgspainteffect.h"
23
45{
46
47 public:
48
55 static QgsPaintEffect *create( const QVariantMap &map ) SIP_FACTORY;
56
60 QgsEffectStack() = default;
61
62 QgsEffectStack( const QgsEffectStack &other );
63
68
75 explicit QgsEffectStack( const QgsPaintEffect &effect );
76
77 ~QgsEffectStack() override;
78
79 QString type() const override { return QStringLiteral( "effectStack" ); }
80 QgsEffectStack *clone() const override SIP_FACTORY;
81 bool saveProperties( QDomDocument &doc, QDomElement &element ) const override;
82 bool readProperties( const QDomElement &element ) override;
83
87 QVariantMap properties() const override;
88
92 void readProperties( const QVariantMap &props ) override;
93
100 void appendEffect( QgsPaintEffect *effect SIP_TRANSFER );
101
109 bool insertEffect( int index, QgsPaintEffect *effect SIP_TRANSFER );
110
117 bool changeEffect( int index, QgsPaintEffect *effect SIP_TRANSFER );
118
123 QgsPaintEffect *takeEffect( int index SIP_TRANSFERBACK );
124
130 QList< QgsPaintEffect * > *effectList();
131
136 int count() const { return mEffectList.count(); }
137
143 QgsPaintEffect *effect( int index ) const;
144
145 QgsEffectStack &operator=( const QgsEffectStack &rhs );
146
147 QgsEffectStack &operator=( QgsEffectStack &&other ) SIP_SKIP;
148
149
150 protected:
151
152 void draw( QgsRenderContext &context ) override;
153
154 private:
155
156 QList< QgsPaintEffect * > mEffectList;
157
158 void clearStack();
159};
160
161#endif // QGSEFFECTSTACK_H
162
A paint effect which consists of a stack of other chained paint effects.
QgsEffectStack()=default
Constructor for empty QgsEffectStack.
QString type() const override
Returns the effect type.
Base class for visual effects which can be applied to QPicture drawings.
friend class QgsEffectStack
virtual QgsPaintEffect * clone() const =0
Duplicates an effect by creating a deep copy of the effect.
virtual void draw(QgsRenderContext &context)=0
Handles drawing of the effect's result on to the specified render context.
Contains information about the context of a rendering operation.
#define SIP_SKIP
Definition: qgis_sip.h:126
#define SIP_TRANSFER
Definition: qgis_sip.h:36
#define SIP_TRANSFERBACK
Definition: qgis_sip.h:48
#define SIP_FACTORY
Definition: qgis_sip.h:76
#define SIP_NODEFAULTCTORS
Definition: qgis_sip.h:101