diff --git a/python/gui/qgssymbolbutton.sip b/python/gui/qgssymbolbutton.sip index 8c5566fdfdf..af8b1e4f9e1 100644 --- a/python/gui/qgssymbolbutton.sip +++ b/python/gui/qgssymbolbutton.sip @@ -53,6 +53,7 @@ class QgsSymbolButton : QToolButton :rtype: QgsSymbol %End + QgsMapCanvas *mapCanvas() const; %Docstring Returns the map canvas associated with the widget. diff --git a/python/gui/symbology-ng/qgspointclusterrendererwidget.sip b/python/gui/symbology-ng/qgspointclusterrendererwidget.sip index 90eb36b629f..84c1c659178 100644 --- a/python/gui/symbology-ng/qgspointclusterrendererwidget.sip +++ b/python/gui/symbology-ng/qgspointclusterrendererwidget.sip @@ -11,7 +11,7 @@ -class QgsPointClusterRendererWidget: QgsRendererWidget +class QgsPointClusterRendererWidget: QgsRendererWidget, QgsExpressionContextGenerator { %Docstring A widget which allows configuration of the properties for a QgsPointClusterRenderer. @@ -48,6 +48,9 @@ class QgsPointClusterRendererWidget: QgsRendererWidget virtual void setContext( const QgsSymbolWidgetContext &context ); + virtual QgsExpressionContext createExpressionContext() const; + + }; /************************************************************************ diff --git a/python/gui/symbology-ng/qgspointdisplacementrendererwidget.sip b/python/gui/symbology-ng/qgspointdisplacementrendererwidget.sip index 4b67f1eaee4..6a22045526b 100644 --- a/python/gui/symbology-ng/qgspointdisplacementrendererwidget.sip +++ b/python/gui/symbology-ng/qgspointdisplacementrendererwidget.sip @@ -10,7 +10,7 @@ -class QgsPointDisplacementRendererWidget: QgsRendererWidget +class QgsPointDisplacementRendererWidget: QgsRendererWidget, QgsExpressionContextGenerator { %TypeHeaderCode @@ -29,6 +29,9 @@ class QgsPointDisplacementRendererWidget: QgsRendererWidget virtual void setContext( const QgsSymbolWidgetContext &context ); + virtual QgsExpressionContext createExpressionContext() const; + + }; /************************************************************************ diff --git a/src/app/composer/qgscomposershapewidget.cpp b/src/app/composer/qgscomposershapewidget.cpp index c41874f0bbc..355c48b3c48 100644 --- a/src/app/composer/qgscomposershapewidget.cpp +++ b/src/app/composer/qgscomposershapewidget.cpp @@ -52,7 +52,10 @@ QgsComposerShapeWidget::QgsComposerShapeWidget( QgsComposerShape *composerShape if ( mComposerShape ) { connect( mComposerShape, &QgsComposerObject::itemChanged, this, &QgsComposerShapeWidget::setGuiElementValues ); + mShapeStyleButton->registerExpressionContextGenerator( mComposerShape ); } + connect( mShapeStyleButton, &QgsSymbolButton::changed, this, &QgsComposerShapeWidget::symbolChanged ); + mShapeStyleButton->setLayer( atlasCoverageLayer() ); } QgsComposerShapeWidget::~QgsComposerShapeWidget() @@ -76,7 +79,7 @@ void QgsComposerShapeWidget::setGuiElementValues() blockAllSignals( true ); - updateShapeStyle(); + mShapeStyleButton->setSymbol( mComposerShape->shapeStyleSymbol()->clone() ); mCornerRadiusSpinBox->setValue( mComposerShape->cornerRadius() ); if ( mComposerShape->shapeType() == QgsComposerShape::Ellipse ) @@ -98,38 +101,16 @@ void QgsComposerShapeWidget::setGuiElementValues() blockAllSignals( false ); } -void QgsComposerShapeWidget::on_mShapeStyleButton_clicked() +void QgsComposerShapeWidget::symbolChanged() { if ( !mComposerShape ) { return; } - // use the atlas coverage layer, if any - QgsVectorLayer *coverageLayer = atlasCoverageLayer(); - - QgsFillSymbol *newSymbol = mComposerShape->shapeStyleSymbol()->clone(); - QgsExpressionContext context = mComposerShape->createExpressionContext(); - - QgsSymbolSelectorWidget *d = new QgsSymbolSelectorWidget( newSymbol, QgsStyle::defaultStyle(), coverageLayer, nullptr ); - QgsSymbolWidgetContext symbolContext; - symbolContext.setExpressionContext( &context ); - d->setContext( symbolContext ); - - connect( d, &QgsPanelWidget::widgetChanged, this, &QgsComposerShapeWidget::updateSymbolFromWidget ); - connect( d, &QgsPanelWidget::panelAccepted, this, &QgsComposerShapeWidget::cleanUpSymbolSelector ); - openPanel( d ); mComposerShape->beginCommand( tr( "Shape style changed" ) ); -} - -void QgsComposerShapeWidget::updateShapeStyle() -{ - if ( mComposerShape ) - { - mComposerShape->refreshSymbol(); - QIcon icon = QgsSymbolLayerUtils::symbolPreviewIcon( mComposerShape->shapeStyleSymbol(), mShapeStyleButton->iconSize() ); - mShapeStyleButton->setIcon( icon ); - } + mComposerShape->setShapeStyleSymbol( mShapeStyleButton->clonedSymbol() ); + mComposerShape->endCommand(); } void QgsComposerShapeWidget::on_mCornerRadiusSpinBox_valueChanged( double val ) @@ -179,23 +160,3 @@ void QgsComposerShapeWidget::toggleRadiusSpin( const QString &shapeText ) mCornerRadiusSpinBox->setEnabled( false ); } } - -void QgsComposerShapeWidget::updateSymbolFromWidget() -{ - if ( QgsSymbolSelectorWidget *w = qobject_cast( sender() ) ) - mComposerShape->setShapeStyleSymbol( static_cast< QgsFillSymbol * >( w->symbol() ) ); -} - -void QgsComposerShapeWidget::cleanUpSymbolSelector( QgsPanelWidget *container ) -{ - QgsSymbolSelectorWidget *w = qobject_cast( container ); - if ( !w ) - return; - - delete w->symbol(); - updateShapeStyle(); - mComposerShape->endCommand(); -} - - - diff --git a/src/app/composer/qgscomposershapewidget.h b/src/app/composer/qgscomposershapewidget.h index 8aa62b8c73f..21aaccefdd7 100644 --- a/src/app/composer/qgscomposershapewidget.h +++ b/src/app/composer/qgscomposershapewidget.h @@ -40,17 +40,13 @@ class QgsComposerShapeWidget: public QgsComposerItemBaseWidget, private Ui::QgsC private slots: void on_mShapeComboBox_currentIndexChanged( const QString &text ); void on_mCornerRadiusSpinBox_valueChanged( double val ); - void on_mShapeStyleButton_clicked(); + void symbolChanged(); //! Sets the GUI elements to the currentValues of mComposerShape void setGuiElementValues(); - void updateShapeStyle(); - //! Enables or disables the rounded radius spin box based on shape type void toggleRadiusSpin( const QString &shapeText ); - void updateSymbolFromWidget(); - void cleanUpSymbolSelector( QgsPanelWidget *container ); }; #endif // QGSCOMPOSERSHAPEWIDGET_H diff --git a/src/gui/qgssymbolbutton.h b/src/gui/qgssymbolbutton.h index 972de290a0b..8df81616981 100644 --- a/src/gui/qgssymbolbutton.h +++ b/src/gui/qgssymbolbutton.h @@ -72,6 +72,28 @@ class GUI_EXPORT QgsSymbolButton : public QToolButton */ QgsSymbol *symbol(); + /** + * Returns a clone of the current symbol (as the specified template type) defined by the button. + * \see setSymbol() + * \see changed() + * \note Not available in Python bindings. + */ + template SymbolType *clonedSymbol() SIP_SKIP + { + QgsSymbol *tmpSymbol = mSymbol.get(); + SymbolType *symbolCastToType = dynamic_cast( tmpSymbol ); + + if ( symbolCastToType ) + { + return symbolCastToType->clone(); + } + else + { + //could not cast + return nullptr; + } + } + /** * Returns the map canvas associated with the widget. * \see setMapCanvas() diff --git a/src/gui/symbology-ng/qgspointclusterrendererwidget.cpp b/src/gui/symbology-ng/qgspointclusterrendererwidget.cpp index 350f670e70c..0a91a9a5700 100644 --- a/src/gui/symbology-ng/qgspointclusterrendererwidget.cpp +++ b/src/gui/symbology-ng/qgspointclusterrendererwidget.cpp @@ -79,6 +79,7 @@ QgsPointClusterRendererWidget::QgsPointClusterRendererWidget( QgsVectorLayer *la mDistanceSpinBox->setValue( mRenderer->tolerance() ); mDistanceUnitWidget->setUnit( mRenderer->toleranceUnit() ); mDistanceUnitWidget->setMapUnitScale( mRenderer->toleranceMapUnitScale() ); + mCenterSymbolToolButton->setSymbol( mRenderer->clusterSymbol()->clone() ); blockAllSignals( false ); @@ -94,7 +95,10 @@ QgsPointClusterRendererWidget::QgsPointClusterRendererWidget( QgsVectorLayer *la } } - updateCenterIcon(); + connect( mCenterSymbolToolButton, &QgsSymbolButton::changed, this, &QgsPointClusterRendererWidget::centerSymbolChanged ); + mCenterSymbolToolButton->setDialogTitle( tr( "Cluster symbol" ) ); + mCenterSymbolToolButton->setLayer( mLayer ); + mCenterSymbolToolButton->registerExpressionContextGenerator( this ); } QgsPointClusterRendererWidget::~QgsPointClusterRendererWidget() @@ -112,6 +116,8 @@ void QgsPointClusterRendererWidget::setContext( const QgsSymbolWidgetContext &co QgsRendererWidget::setContext( context ); if ( mDistanceUnitWidget ) mDistanceUnitWidget->setMapCanvas( context.mapCanvas() ); + if ( mCenterSymbolToolButton ) + mCenterSymbolToolButton->setMapCanvas( context.mapCanvas() ); } void QgsPointClusterRendererWidget::on_mRendererComboBox_currentIndexChanged( int index ) @@ -175,53 +181,34 @@ void QgsPointClusterRendererWidget::on_mDistanceUnitWidget_changed() void QgsPointClusterRendererWidget::blockAllSignals( bool block ) { mRendererComboBox->blockSignals( block ); - mCenterSymbolPushButton->blockSignals( block ); + mCenterSymbolToolButton->blockSignals( block ); mDistanceSpinBox->blockSignals( block ); mDistanceUnitWidget->blockSignals( block ); } -void QgsPointClusterRendererWidget::on_mCenterSymbolPushButton_clicked() +QgsExpressionContext QgsPointClusterRendererWidget::createExpressionContext() const { - if ( !mRenderer || !mRenderer->clusterSymbol() ) - { - return; - } - QgsMarkerSymbol *markerSymbol = mRenderer->clusterSymbol()->clone(); - QgsSymbolSelectorWidget *dlg = new QgsSymbolSelectorWidget( markerSymbol, QgsStyle::defaultStyle(), mLayer, this ); - dlg->setPanelTitle( tr( "Cluster symbol" ) ); - dlg->setDockMode( this->dockMode() ); - - QgsSymbolWidgetContext context = mContext; + QgsExpressionContext context; + if ( mContext.expressionContext() ) + context = *mContext.expressionContext(); + else + context.appendScopes( mContext.globalProjectAtlasMapLayerScopes( mLayer ) ); QgsExpressionContextScope scope; scope.addVariable( QgsExpressionContextScope::StaticVariable( QgsExpressionContext::EXPR_CLUSTER_COLOR, "", true ) ); scope.addVariable( QgsExpressionContextScope::StaticVariable( QgsExpressionContext::EXPR_CLUSTER_SIZE, 0, true ) ); - QList< QgsExpressionContextScope > scopes = context.additionalExpressionContextScopes(); + QList< QgsExpressionContextScope > scopes = mContext.additionalExpressionContextScopes(); scopes << scope; - context.setAdditionalExpressionContextScopes( scopes ); - - dlg->setContext( context ); - - connect( dlg, &QgsPanelWidget::widgetChanged, this, &QgsPointClusterRendererWidget::updateCenterSymbolFromWidget ); - connect( dlg, &QgsPanelWidget::panelAccepted, this, &QgsPointClusterRendererWidget::cleanUpSymbolSelector ); - openPanel( dlg ); -} - -void QgsPointClusterRendererWidget::updateCenterSymbolFromWidget() -{ - QgsSymbolSelectorWidget *dlg = qobject_cast( sender() ); - QgsSymbol *symbol = dlg->symbol()->clone(); - mRenderer->setClusterSymbol( static_cast< QgsMarkerSymbol * >( symbol ) ); - updateCenterIcon(); - emit widgetChanged(); -} - -void QgsPointClusterRendererWidget::cleanUpSymbolSelector( QgsPanelWidget *container ) -{ - if ( container ) + Q_FOREACH ( const QgsExpressionContextScope &s, scopes ) { - QgsSymbolSelectorWidget *dlg = qobject_cast( container ); - delete dlg->symbol(); + context << new QgsExpressionContextScope( s ); } + return context; +} + +void QgsPointClusterRendererWidget::centerSymbolChanged() +{ + mRenderer->setClusterSymbol( mCenterSymbolToolButton->clonedSymbol< QgsMarkerSymbol >() ); + emit widgetChanged(); } void QgsPointClusterRendererWidget::updateRendererFromWidget() @@ -234,17 +221,6 @@ void QgsPointClusterRendererWidget::updateRendererFromWidget() emit widgetChanged(); } -void QgsPointClusterRendererWidget::updateCenterIcon() -{ - QgsMarkerSymbol *symbol = mRenderer->clusterSymbol(); - if ( !symbol ) - { - return; - } - QIcon icon = QgsSymbolLayerUtils::symbolPreviewIcon( symbol, mCenterSymbolPushButton->iconSize() ); - mCenterSymbolPushButton->setIcon( icon ); -} - void QgsPointClusterRendererWidget::setupBlankUi( const QString &layerName ) { QGridLayout *layout = new QGridLayout( this ); diff --git a/src/gui/symbology-ng/qgspointclusterrendererwidget.h b/src/gui/symbology-ng/qgspointclusterrendererwidget.h index fa3207e30e3..4d11872165d 100644 --- a/src/gui/symbology-ng/qgspointclusterrendererwidget.h +++ b/src/gui/symbology-ng/qgspointclusterrendererwidget.h @@ -21,6 +21,7 @@ #include "ui_qgspointclusterrendererwidgetbase.h" #include "qgis.h" #include "qgsrendererwidget.h" +#include "qgsexpressioncontextgenerator.h" #include "qgis_gui.h" class QgsPointClusterRenderer; @@ -31,9 +32,10 @@ class QgsPointClusterRenderer; * \since QGIS 3.0 */ -class GUI_EXPORT QgsPointClusterRendererWidget: public QgsRendererWidget, private Ui::QgsPointClusterRendererWidgetBase +class GUI_EXPORT QgsPointClusterRendererWidget: public QgsRendererWidget, public QgsExpressionContextGenerator, private Ui::QgsPointClusterRendererWidgetBase { Q_OBJECT + public: /** Returns a new QgsPointClusterRendererWidget. @@ -56,11 +58,12 @@ class GUI_EXPORT QgsPointClusterRendererWidget: public QgsRendererWidget, privat QgsFeatureRenderer *renderer() override; void setContext( const QgsSymbolWidgetContext &context ) override; + QgsExpressionContext createExpressionContext() const override; + private: QgsPointClusterRenderer *mRenderer = nullptr; void blockAllSignals( bool block ); - void updateCenterIcon(); void setupBlankUi( const QString &layerName ); private slots: @@ -68,10 +71,8 @@ class GUI_EXPORT QgsPointClusterRendererWidget: public QgsRendererWidget, privat void on_mRendererComboBox_currentIndexChanged( int index ); void on_mDistanceSpinBox_valueChanged( double d ); void on_mDistanceUnitWidget_changed(); - void on_mCenterSymbolPushButton_clicked(); void on_mRendererSettingsButton_clicked(); - void updateCenterSymbolFromWidget(); - void cleanUpSymbolSelector( QgsPanelWidget *container ); + void centerSymbolChanged(); void updateRendererFromWidget(); }; diff --git a/src/gui/symbology-ng/qgspointdisplacementrendererwidget.cpp b/src/gui/symbology-ng/qgspointdisplacementrendererwidget.cpp index 8e5a771acba..c457a02c17a 100644 --- a/src/gui/symbology-ng/qgspointdisplacementrendererwidget.cpp +++ b/src/gui/symbology-ng/qgspointdisplacementrendererwidget.cpp @@ -118,6 +118,7 @@ QgsPointDisplacementRendererWidget::QgsPointDisplacementRendererWidget( QgsVecto mDistanceSpinBox->setValue( mRenderer->tolerance() ); mDistanceUnitWidget->setUnit( mRenderer->toleranceUnit() ); mDistanceUnitWidget->setMapUnitScale( mRenderer->toleranceMapUnitScale() ); + mCenterSymbolToolButton->setSymbol( mRenderer->centerSymbol()->clone() ); mPlacementComboBox->setCurrentIndex( mPlacementComboBox->findData( mRenderer->placement() ) ); @@ -150,8 +151,10 @@ QgsPointDisplacementRendererWidget::QgsPointDisplacementRendererWidget( QgsVecto connect( mMinLabelScaleWidget, &QgsScaleWidget::scaleChanged, this, &QgsPointDisplacementRendererWidget::minLabelScaleChanged ); connect( mLabelFontButton, &QgsFontButton::changed, this, &QgsPointDisplacementRendererWidget::labelFontChanged ); - - updateCenterIcon(); + connect( mCenterSymbolToolButton, &QgsSymbolButton::changed, this, &QgsPointDisplacementRendererWidget::centerSymbolChanged ); + mCenterSymbolToolButton->setDialogTitle( tr( "Center symbol" ) ); + mCenterSymbolToolButton->setLayer( mLayer ); + mCenterSymbolToolButton->registerExpressionContextGenerator( this ); } QgsPointDisplacementRendererWidget::~QgsPointDisplacementRendererWidget() @@ -174,6 +177,29 @@ void QgsPointDisplacementRendererWidget::setContext( const QgsSymbolWidgetContex mMinLabelScaleWidget->setMapCanvas( context.mapCanvas() ); mMinLabelScaleWidget->setShowCurrentScaleButton( true ); } + if ( mCenterSymbolToolButton ) + { + mCenterSymbolToolButton->setMapCanvas( context.mapCanvas() ); + } +} + +QgsExpressionContext QgsPointDisplacementRendererWidget::createExpressionContext() const +{ + QgsExpressionContext context; + if ( mContext.expressionContext() ) + context = *mContext.expressionContext(); + else + context.appendScopes( mContext.globalProjectAtlasMapLayerScopes( mLayer ) ); + QgsExpressionContextScope scope; + scope.addVariable( QgsExpressionContextScope::StaticVariable( QgsExpressionContext::EXPR_CLUSTER_COLOR, "", true ) ); + scope.addVariable( QgsExpressionContextScope::StaticVariable( QgsExpressionContext::EXPR_CLUSTER_SIZE, 0, true ) ); + QList< QgsExpressionContextScope > scopes = mContext.additionalExpressionContextScopes(); + scopes << scope; + Q_FOREACH ( const QgsExpressionContextScope &s, scopes ) + { + context << new QgsExpressionContextScope( s ); + } + return context; } void QgsPointDisplacementRendererWidget::on_mLabelFieldComboBox_currentIndexChanged( const QString &text ) @@ -348,55 +374,18 @@ void QgsPointDisplacementRendererWidget::blockAllSignals( bool block ) mCircleModificationSpinBox->blockSignals( block ); mScaleDependentLabelsCheckBox->blockSignals( block ); mMinLabelScaleWidget->blockSignals( block ); - mCenterSymbolPushButton->blockSignals( block ); + mCenterSymbolToolButton->blockSignals( block ); mDistanceSpinBox->blockSignals( block ); mDistanceUnitWidget->blockSignals( block ); mPlacementComboBox->blockSignals( block ); } -void QgsPointDisplacementRendererWidget::on_mCenterSymbolPushButton_clicked() +void QgsPointDisplacementRendererWidget::centerSymbolChanged() { - if ( !mRenderer || !mRenderer->centerSymbol() ) - { - return; - } - QgsMarkerSymbol *markerSymbol = mRenderer->centerSymbol()->clone(); - QgsSymbolSelectorWidget *dlg = new QgsSymbolSelectorWidget( markerSymbol, QgsStyle::defaultStyle(), mLayer, this ); - dlg->setPanelTitle( tr( "Center symbol" ) ); - - QgsSymbolWidgetContext context = mContext; - - QgsExpressionContextScope scope; - scope.addVariable( QgsExpressionContextScope::StaticVariable( QgsExpressionContext::EXPR_CLUSTER_COLOR, "", true ) ); - scope.addVariable( QgsExpressionContextScope::StaticVariable( QgsExpressionContext::EXPR_CLUSTER_SIZE, 0, true ) ); - QList< QgsExpressionContextScope > scopes = context.additionalExpressionContextScopes(); - scopes << scope; - context.setAdditionalExpressionContextScopes( scopes ); - dlg->setContext( context ); - - connect( dlg, &QgsPanelWidget::widgetChanged, this, &QgsPointDisplacementRendererWidget::updateCenterSymbolFromWidget ); - connect( dlg, &QgsPanelWidget::panelAccepted, this, &QgsPointDisplacementRendererWidget::cleanUpSymbolSelector ); - openPanel( dlg ); -} - -void QgsPointDisplacementRendererWidget::updateCenterSymbolFromWidget() -{ - QgsSymbolSelectorWidget *dlg = qobject_cast( sender() ); - QgsSymbol *symbol = dlg->symbol()->clone(); - mRenderer->setCenterSymbol( static_cast< QgsMarkerSymbol * >( symbol ) ); - updateCenterIcon(); + mRenderer->setCenterSymbol( mCenterSymbolToolButton->clonedSymbol< QgsMarkerSymbol >() ); emit widgetChanged(); } -void QgsPointDisplacementRendererWidget::cleanUpSymbolSelector( QgsPanelWidget *container ) -{ - if ( container ) - { - QgsSymbolSelectorWidget *dlg = qobject_cast( container ); - delete dlg->symbol(); - } -} - void QgsPointDisplacementRendererWidget::updateRendererFromWidget() { QgsRendererWidget *w = qobject_cast( sender() ); @@ -407,17 +396,6 @@ void QgsPointDisplacementRendererWidget::updateRendererFromWidget() emit widgetChanged(); } -void QgsPointDisplacementRendererWidget::updateCenterIcon() -{ - QgsMarkerSymbol *symbol = mRenderer->centerSymbol(); - if ( !symbol ) - { - return; - } - QIcon icon = QgsSymbolLayerUtils::symbolPreviewIcon( symbol, mCenterSymbolPushButton->iconSize() ); - mCenterSymbolPushButton->setIcon( icon ); -} - void QgsPointDisplacementRendererWidget::setupBlankUi( const QString &layerName ) { QLabel *label = new QLabel( tr( "The point displacement renderer only applies to (single) point layers. \n'%1' is not a point layer and cannot be displayed by the point displacement renderer" ).arg( layerName ), this ); diff --git a/src/gui/symbology-ng/qgspointdisplacementrendererwidget.h b/src/gui/symbology-ng/qgspointdisplacementrendererwidget.h index 498299a13a3..e339f97fc35 100644 --- a/src/gui/symbology-ng/qgspointdisplacementrendererwidget.h +++ b/src/gui/symbology-ng/qgspointdisplacementrendererwidget.h @@ -21,6 +21,7 @@ #include "ui_qgspointdisplacementrendererwidgetbase.h" #include "qgis.h" #include "qgsrendererwidget.h" +#include "qgsexpressioncontextgenerator.h" #include "qgis_gui.h" class QgsPointDisplacementRenderer; @@ -28,7 +29,7 @@ class QgsPointDisplacementRenderer; /** \ingroup gui * \class QgsPointDisplacementRendererWidget */ -class GUI_EXPORT QgsPointDisplacementRendererWidget: public QgsRendererWidget, private Ui::QgsPointDisplacementRendererWidgetBase +class GUI_EXPORT QgsPointDisplacementRendererWidget: public QgsRendererWidget, public QgsExpressionContextGenerator, private Ui::QgsPointDisplacementRendererWidgetBase { Q_OBJECT public: @@ -39,11 +40,12 @@ class GUI_EXPORT QgsPointDisplacementRendererWidget: public QgsRendererWidget, p QgsFeatureRenderer *renderer() override; void setContext( const QgsSymbolWidgetContext &context ) override; + QgsExpressionContext createExpressionContext() const override; + private: QgsPointDisplacementRenderer *mRenderer = nullptr; void blockAllSignals( bool block ); - void updateCenterIcon(); void setupBlankUi( const QString &layerName ); private slots: @@ -59,10 +61,8 @@ class GUI_EXPORT QgsPointDisplacementRendererWidget: public QgsRendererWidget, p void on_mCircleModificationSpinBox_valueChanged( double d ); void on_mScaleDependentLabelsCheckBox_stateChanged( int state ); void minLabelScaleChanged( double scale ); - void on_mCenterSymbolPushButton_clicked(); void on_mRendererSettingsButton_clicked(); - void updateCenterSymbolFromWidget(); - void cleanUpSymbolSelector( QgsPanelWidget *container ); + void centerSymbolChanged(); void updateRendererFromWidget(); }; diff --git a/src/ui/composer/qgscomposershapewidgetbase.ui b/src/ui/composer/qgscomposershapewidgetbase.ui index b6f1428600b..442c4e4b255 100644 --- a/src/ui/composer/qgscomposershapewidgetbase.ui +++ b/src/ui/composer/qgscomposershapewidgetbase.ui @@ -96,8 +96,11 @@ + + + - + 0 @@ -109,9 +112,6 @@ - - - @@ -122,6 +122,11 @@ + + QgsDoubleSpinBox + QDoubleSpinBox +
qgsdoublespinbox.h
+
QgsScrollArea QScrollArea @@ -135,9 +140,9 @@ 1 - QgsDoubleSpinBox - QDoubleSpinBox -
qgsdoublespinbox.h
+ QgsSymbolButton + QToolButton +
qgssymbolbutton.h
diff --git a/src/ui/composer/qgscompositionwidgetbase.ui b/src/ui/composer/qgscompositionwidgetbase.ui index a366e3d94eb..98fffd9d545 100644 --- a/src/ui/composer/qgscompositionwidgetbase.ui +++ b/src/ui/composer/qgscompositionwidgetbase.ui @@ -663,6 +663,11 @@ + + QgsDoubleSpinBox + QDoubleSpinBox +
qgsdoublespinbox.h
+
QgsScrollArea QScrollArea @@ -681,11 +686,6 @@
qgscollapsiblegroupbox.h
1
- - QgsDoubleSpinBox - QDoubleSpinBox -
qgsdoublespinbox.h
-
QgsSpinBox QSpinBox diff --git a/src/ui/qgspointdisplacementrendererwidgetbase.ui b/src/ui/qgspointdisplacementrendererwidgetbase.ui index 2f5e5ab5bee..07fd8057935 100755 --- a/src/ui/qgspointdisplacementrendererwidgetbase.ui +++ b/src/ui/qgspointdisplacementrendererwidgetbase.ui @@ -136,13 +136,6 @@ - - - - - - - @@ -272,14 +265,26 @@ + + + + + 0 + 0 + + + + + + + - QgsColorButton - QToolButton -
qgscolorbutton.h
- 1 + QgsDoubleSpinBox + QDoubleSpinBox +
qgsdoublespinbox.h
QgsCollapsibleGroupBoxBasic @@ -288,9 +293,15 @@ 1 - QgsDoubleSpinBox - QDoubleSpinBox -
qgsdoublespinbox.h
+ QgsSymbolButton + QToolButton +
qgssymbolbutton.h
+
+ + QgsColorButton + QToolButton +
qgscolorbutton.h
+ 1
QgsFontButton @@ -310,7 +321,7 @@
- mCenterSymbolPushButton + mCenterSymbolToolButton mRendererComboBox mRendererSettingsButton mDistanceSpinBox diff --git a/src/ui/symbollayer/qgspointclusterrendererwidgetbase.ui b/src/ui/symbollayer/qgspointclusterrendererwidgetbase.ui index e93debe9256..650b909e953 100644 --- a/src/ui/symbollayer/qgspointclusterrendererwidgetbase.ui +++ b/src/ui/symbollayer/qgspointclusterrendererwidgetbase.ui @@ -26,13 +26,6 @@ 0 - - - - - - - @@ -98,6 +91,19 @@ + + + + + 0 + 0 + + + + + + + @@ -106,6 +112,11 @@ QDoubleSpinBox
qgsdoublespinbox.h
+ + QgsSymbolButton + QToolButton +
qgssymbolbutton.h
+
QgsUnitSelectionWidget QWidget @@ -114,7 +125,7 @@
- mCenterSymbolPushButton + mCenterSymbolToolButton mRendererComboBox mRendererSettingsButton mDistanceSpinBox