28#include <QStandardItem>
31#include "moc_qgspainteffectpropertieswidget.cpp"
33using namespace Qt::StringLiterals;
40 if ( !abstractMetadata )
42 QgsDebugError( u
"Failed to find paint effect entry in registry: %1"_s.arg( name ) );
48 QgsDebugError( u
"Failed to cast paint effect's metadata: "_s.arg( name ) );
55static void _initWidgetFunctions()
57 static bool sInitialized =
false;
79 _initWidgetFunctions();
81 populateEffectTypes();
85 const int idx = mEffectTypeCombo->findData( effect->
type() );
86 mEffectTypeCombo->setCurrentIndex( idx );
89 updateEffectWidget( effect );
94void QgsPaintEffectPropertiesWidget::populateEffectTypes()
97 const QStringList types = registry->
effects();
99 const auto constTypes = types;
100 for (
const QString &type : constTypes )
103 if ( type ==
"effectStack"_L1 )
110void QgsPaintEffectPropertiesWidget::updateEffectWidget(
QgsPaintEffect *effect )
114 stackedWidget->setCurrentWidget( pageDummy );
118 if ( stackedWidget->currentWidget() != pageDummy )
121 if ( QgsPaintEffectWidget *pew = qobject_cast<QgsPaintEffectWidget *>( stackedWidget->currentWidget() ) )
123 stackedWidget->removeWidget( stackedWidget->currentWidget() );
134 stackedWidget->addWidget( w );
135 stackedWidget->setCurrentWidget( w );
142 stackedWidget->setCurrentWidget( pageDummy );
151 const QString newEffectType = mEffectTypeCombo->currentData().toString();
152 if ( effect->
type() == newEffectType )
167 updateEffectWidget( newEffect );
static QgsPaintEffectRegistry * paintEffectRegistry()
Returns the application's paint effect registry, used for managing paint effects.
Registry of available paint effects.
QgsPaintEffectAbstractMetadata * effectMetadata(const QString &name) const
Returns the metadata for a specific effect.
QStringList effects() const
Returns a list of known paint effects.
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.
virtual QString type() const =0
Returns the effect type.
#define QgsDebugError(str)
QgsPaintEffectWidget *(* QgsPaintEffectWidgetFunc)()