Port some symbol buttons across to QgsSymbolButton

- composer shape style button (no other composer ones for now- they're
all getting removed with layouts anyway)
- point cluster/displacement renderer buttons
This commit is contained in:
Nyall Dawson 2017-07-23 14:48:07 +10:00
parent 22c4740f63
commit 46f6f83fb9
14 changed files with 167 additions and 199 deletions

View File

@ -53,6 +53,7 @@ class QgsSymbolButton : QToolButton
:rtype: QgsSymbol
%End
QgsMapCanvas *mapCanvas() const;
%Docstring
Returns the map canvas associated with the widget.

View File

@ -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;
};
/************************************************************************

View File

@ -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;
};
/************************************************************************

View File

@ -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<QgsFillSymbol>() );
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<QgsSymbolSelectorWidget *>( sender() ) )
mComposerShape->setShapeStyleSymbol( static_cast< QgsFillSymbol * >( w->symbol() ) );
}
void QgsComposerShapeWidget::cleanUpSymbolSelector( QgsPanelWidget *container )
{
QgsSymbolSelectorWidget *w = qobject_cast<QgsSymbolSelectorWidget *>( container );
if ( !w )
return;
delete w->symbol();
updateShapeStyle();
mComposerShape->endCommand();
}

View File

@ -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

View File

@ -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 <class SymbolType> SymbolType *clonedSymbol() SIP_SKIP
{
QgsSymbol *tmpSymbol = mSymbol.get();
SymbolType *symbolCastToType = dynamic_cast<SymbolType *>( tmpSymbol );
if ( symbolCastToType )
{
return symbolCastToType->clone();
}
else
{
//could not cast
return nullptr;
}
}
/**
* Returns the map canvas associated with the widget.
* \see setMapCanvas()

View File

@ -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<QgsSymbolSelectorWidget *>( 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<QgsSymbolSelectorWidget *>( 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 );

View File

@ -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();
};

View File

@ -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<QgsSymbolSelectorWidget *>( 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<QgsSymbolSelectorWidget *>( container );
delete dlg->symbol();
}
}
void QgsPointDisplacementRendererWidget::updateRendererFromWidget()
{
QgsRendererWidget *w = qobject_cast<QgsRendererWidget *>( 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 );

View File

@ -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();
};

View File

@ -96,8 +96,11 @@
</property>
</widget>
</item>
<item row="0" column="0" colspan="2">
<widget class="QComboBox" name="mShapeComboBox"/>
</item>
<item row="2" column="1">
<widget class="QPushButton" name="mShapeStyleButton">
<widget class="QgsSymbolButton" name="mShapeStyleButton">
<property name="sizePolicy">
<sizepolicy hsizetype="Expanding" vsizetype="Fixed">
<horstretch>0</horstretch>
@ -109,9 +112,6 @@
</property>
</widget>
</item>
<item row="0" column="0" colspan="2">
<widget class="QComboBox" name="mShapeComboBox"/>
</item>
</layout>
</widget>
</item>
@ -122,6 +122,11 @@
</layout>
</widget>
<customwidgets>
<customwidget>
<class>QgsDoubleSpinBox</class>
<extends>QDoubleSpinBox</extends>
<header>qgsdoublespinbox.h</header>
</customwidget>
<customwidget>
<class>QgsScrollArea</class>
<extends>QScrollArea</extends>
@ -135,9 +140,9 @@
<container>1</container>
</customwidget>
<customwidget>
<class>QgsDoubleSpinBox</class>
<extends>QDoubleSpinBox</extends>
<header>qgsdoublespinbox.h</header>
<class>QgsSymbolButton</class>
<extends>QToolButton</extends>
<header>qgssymbolbutton.h</header>
</customwidget>
</customwidgets>
<tabstops>

View File

@ -663,6 +663,11 @@
</widget>
<layoutdefault spacing="6" margin="11"/>
<customwidgets>
<customwidget>
<class>QgsDoubleSpinBox</class>
<extends>QDoubleSpinBox</extends>
<header>qgsdoublespinbox.h</header>
</customwidget>
<customwidget>
<class>QgsScrollArea</class>
<extends>QScrollArea</extends>
@ -681,11 +686,6 @@
<header>qgscollapsiblegroupbox.h</header>
<container>1</container>
</customwidget>
<customwidget>
<class>QgsDoubleSpinBox</class>
<extends>QDoubleSpinBox</extends>
<header>qgsdoublespinbox.h</header>
</customwidget>
<customwidget>
<class>QgsSpinBox</class>
<extends>QSpinBox</extends>

View File

@ -136,13 +136,6 @@
</property>
</widget>
</item>
<item row="0" column="1">
<widget class="QPushButton" name="mCenterSymbolPushButton">
<property name="text">
<string/>
</property>
</widget>
</item>
<item row="4" column="0" colspan="2">
<widget class="QPushButton" name="mRendererSettingsButton">
<property name="text">
@ -272,14 +265,26 @@
</layout>
</widget>
</item>
<item row="0" column="1">
<widget class="QgsSymbolButton" name="mCenterSymbolToolButton">
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="text">
<string/>
</property>
</widget>
</item>
</layout>
</widget>
<customwidgets>
<customwidget>
<class>QgsColorButton</class>
<extends>QToolButton</extends>
<header>qgscolorbutton.h</header>
<container>1</container>
<class>QgsDoubleSpinBox</class>
<extends>QDoubleSpinBox</extends>
<header>qgsdoublespinbox.h</header>
</customwidget>
<customwidget>
<class>QgsCollapsibleGroupBoxBasic</class>
@ -288,9 +293,15 @@
<container>1</container>
</customwidget>
<customwidget>
<class>QgsDoubleSpinBox</class>
<extends>QDoubleSpinBox</extends>
<header>qgsdoublespinbox.h</header>
<class>QgsSymbolButton</class>
<extends>QToolButton</extends>
<header>qgssymbolbutton.h</header>
</customwidget>
<customwidget>
<class>QgsColorButton</class>
<extends>QToolButton</extends>
<header>qgscolorbutton.h</header>
<container>1</container>
</customwidget>
<customwidget>
<class>QgsFontButton</class>
@ -310,7 +321,7 @@
</customwidget>
</customwidgets>
<tabstops>
<tabstop>mCenterSymbolPushButton</tabstop>
<tabstop>mCenterSymbolToolButton</tabstop>
<tabstop>mRendererComboBox</tabstop>
<tabstop>mRendererSettingsButton</tabstop>
<tabstop>mDistanceSpinBox</tabstop>

View File

@ -26,13 +26,6 @@
<property name="bottomMargin">
<number>0</number>
</property>
<item row="0" column="1">
<widget class="QPushButton" name="mCenterSymbolPushButton">
<property name="text">
<string/>
</property>
</widget>
</item>
<item row="2" column="1">
<widget class="QComboBox" name="mRendererComboBox"/>
</item>
@ -98,6 +91,19 @@
</property>
</widget>
</item>
<item row="0" column="1">
<widget class="QgsSymbolButton" name="mCenterSymbolToolButton">
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="text">
<string/>
</property>
</widget>
</item>
</layout>
</widget>
<customwidgets>
@ -106,6 +112,11 @@
<extends>QDoubleSpinBox</extends>
<header>qgsdoublespinbox.h</header>
</customwidget>
<customwidget>
<class>QgsSymbolButton</class>
<extends>QToolButton</extends>
<header>qgssymbolbutton.h</header>
</customwidget>
<customwidget>
<class>QgsUnitSelectionWidget</class>
<extends>QWidget</extends>
@ -114,7 +125,7 @@
</customwidget>
</customwidgets>
<tabstops>
<tabstop>mCenterSymbolPushButton</tabstop>
<tabstop>mCenterSymbolToolButton</tabstop>
<tabstop>mRendererComboBox</tabstop>
<tabstop>mRendererSettingsButton</tabstop>
<tabstop>mDistanceSpinBox</tabstop>