23#include "moc_qgscalloutpanelwidget.cpp"
34 for (
const QString &type : calloutTypes )
39 connect( mCalloutStyleComboBox, qOverload<int>( &QComboBox::currentIndexChanged ),
this, &QgsCalloutPanelWidget::calloutTypeChanged );
51 if (
QgsCalloutWidget *cw = qobject_cast<QgsCalloutWidget *>( mCalloutStackedWidget->currentWidget() ) )
66 whileBlocking( mCalloutStyleComboBox )->setCurrentIndex( mCalloutStyleComboBox->findData(
callout->type() ) );
74 const QString calloutType = mCalloutStyleComboBox->currentData().toString();
75 std::unique_ptr<QgsCallout>
callout;
76 if (
QgsCalloutWidget *pew = qobject_cast<QgsCalloutWidget *>( mCalloutStackedWidget->currentWidget() ) )
78 callout.reset( pew->callout()->clone() );
87void QgsCalloutPanelWidget::calloutTypeChanged()
89 const QString newCalloutType = mCalloutStyleComboBox->currentData().toString();
90 QgsCalloutWidget *pew = qobject_cast<QgsCalloutWidget *>( mCalloutStackedWidget->currentWidget() );
99 QgsCalloutAbstractMetadata *am = registry->
calloutMetadata( newCalloutType );
105 const std::unique_ptr<QgsCallout> newCallout( am->
createCallout( pew && pew->
callout() ? pew->
callout()->
properties( QgsReadWriteContext() ) : QVariantMap(), QgsReadWriteContext() ) );
109 updateCalloutWidget( newCallout.get() );
113void QgsCalloutPanelWidget::updateCalloutWidget(
const QgsCallout *callout )
117 mCalloutStackedWidget->setCurrentWidget( pageDummy );
121 if ( mCalloutStackedWidget->currentWidget() != pageDummy )
124 if ( QgsCalloutWidget *pew = qobject_cast<QgsCalloutWidget *>( mCalloutStackedWidget->currentWidget() ) )
134 if ( QgsVectorLayer *vLayer = qobject_cast<QgsVectorLayer *>( mLayer ) )
140 mCalloutStackedWidget->addWidget( w );
141 mCalloutStackedWidget->setCurrentWidget( w );
148 mCalloutStackedWidget->setCurrentWidget( pageDummy );
GeometryType
The geometry types are used to group Qgis::WkbType in a coarse way.
static QgsCalloutRegistry * calloutRegistry()
Returns the application's callout registry, used for managing callout types.
QgsCalloutAbstractMetadata * calloutMetadata(const QString &type) const
Returns the metadata for specified the specified callout type.
QStringList calloutTypes() const
Returns a list of all available callout types.
Abstract base class for callout renderers.
virtual QString type() const =0
Returns a unique string representing the callout type.
virtual QVariantMap properties(const QgsReadWriteContext &context) const
Returns the properties describing the callout encoded in a string format.
static void initCalloutWidgets()
Initializes callout widgets.
Base class for all map layer types.
Contains settings which reflect the context in which a symbol (or renderer) widget is shown,...
QgsSignalBlocker< Object > whileBlocking(Object *object)
Temporarily blocks signals from a QObject while calling a single method from the object.