36 , mEmbeddedRendererWidget( 0 )
48 setupBlankUi( layer->
name() );
63 blockAllSignals(
true );
69 for (
int idx = 0; idx < layerAttributes.
count(); ++idx )
71 mLabelFieldComboBox->addItem( layerAttributes[idx].
name() );
73 mLabelFieldComboBox->addItem(
tr(
"None" ) );
76 if ( !currentLabelAttribute.
isEmpty() )
78 mLabelFieldComboBox->setCurrentIndex( mLabelFieldComboBox->findText( currentLabelAttribute ) );
82 mLabelFieldComboBox->setCurrentIndex( mLabelFieldComboBox->findText(
tr(
"None" ) ) );
89 for ( ; it != rendererList.
constEnd(); ++it )
91 if ( *it !=
"pointDisplacement" )
98 mCircleColorButton->setColorDialogTitle(
tr(
"Select color" ) );
99 mCircleColorButton->setContext(
"symbology" );
100 mLabelColorButton->setContext(
"symbology" );
101 mLabelColorButton->setColorDialogTitle(
tr(
"Select color" ) );
103 mCircleWidthSpinBox->setValue( mRenderer->
circleWidth() );
104 mCircleColorButton->setColor( mRenderer->
circleColor() );
105 mLabelColorButton->setColor( mRenderer->
labelColor() );
107 mDistanceSpinBox->setValue( mRenderer->
tolerance() );
111 mMaxScaleDenominatorEdit->setValidator(
new QDoubleValidator( mMaxScaleDenominatorEdit ) );
114 mScaleDependentLabelsCheckBox->setCheckState( Qt::Checked );
118 mScaleDependentLabelsCheckBox->setCheckState( Qt::Unchecked );
119 mMaxScaleDenominatorEdit->setEnabled(
false );
123 blockAllSignals(
false );
129 int rendererIndex = mRendererComboBox->findData( rendererName );
130 if ( rendererIndex != -1 )
132 mRendererComboBox->setCurrentIndex( rendererIndex );
133 on_mRendererComboBox_currentIndexChanged( rendererIndex );
143 delete mEmbeddedRendererWidget;
148 if ( mRenderer && mEmbeddedRendererWidget )
151 if ( embeddedRenderer )
159 void QgsPointDisplacementRendererWidget::on_mLabelFieldComboBox_currentIndexChanged(
const QString& text )
163 if ( text ==
tr(
"None" ) )
174 void QgsPointDisplacementRendererWidget::on_mRendererComboBox_currentIndexChanged(
int index )
176 QString rendererId = mRendererComboBox->itemData( index ).toString();
180 delete mEmbeddedRendererWidget;
185 void QgsPointDisplacementRendererWidget::on_mRendererSettingsButton_clicked()
187 if ( mEmbeddedRendererWidget )
199 buttonBox->
addButton( QDialogButtonBox::Ok );
201 layout->
addWidget( mEmbeddedRendererWidget, 0, 0 );
209 void QgsPointDisplacementRendererWidget::on_mLabelFontButton_clicked()
224 void QgsPointDisplacementRendererWidget::on_mCircleWidthSpinBox_valueChanged(
double d )
232 void QgsPointDisplacementRendererWidget::on_mCircleColorButton_colorChanged(
const QColor& newColor )
242 void QgsPointDisplacementRendererWidget::on_mLabelColorButton_colorChanged(
const QColor& newColor )
252 void QgsPointDisplacementRendererWidget::on_mCircleModificationSpinBox_valueChanged(
double d )
262 void QgsPointDisplacementRendererWidget::on_mDistanceSpinBox_valueChanged(
double d )
270 void QgsPointDisplacementRendererWidget::on_mScaleDependentLabelsCheckBox_stateChanged(
int state )
272 if ( state == Qt::Unchecked )
274 mMaxScaleDenominatorEdit->setText(
"-1" );
275 mMaxScaleDenominatorEdit->setEnabled(
false );
279 mMaxScaleDenominatorEdit->setEnabled(
true );
283 void QgsPointDisplacementRendererWidget::on_mMaxScaleDenominatorEdit_textChanged(
const QString & text )
291 double scaleDenominator = text.
toDouble( &ok );
298 void QgsPointDisplacementRendererWidget::blockAllSignals(
bool block )
300 mLabelFieldComboBox->blockSignals( block );
301 mLabelFontButton->blockSignals( block );
302 mCircleWidthSpinBox->blockSignals( block );
303 mCircleColorButton->blockSignals( block );
304 mRendererComboBox->blockSignals( block );
305 mLabelColorButton->blockSignals( block );
306 mCircleModificationSpinBox->blockSignals( block );
307 mScaleDependentLabelsCheckBox->blockSignals( block );
308 mMaxScaleDenominatorEdit->blockSignals( block );
309 mCenterSymbolPushButton->blockSignals( block );
310 mDistanceSpinBox->blockSignals( block );
313 void QgsPointDisplacementRendererWidget::on_mCenterSymbolPushButton_clicked()
321 if ( dlg.exec() == QDialog::Rejected )
330 void QgsPointDisplacementRendererWidget::updateCenterIcon()
338 mCenterSymbolPushButton->setIcon( icon );
341 void QgsPointDisplacementRendererWidget::setupBlankUi(
const QString& layerName )
344 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 );
static QgsRendererV2Registry * instance()
QgsRendererV2AbstractMetadata * rendererMetadata(QString rendererName)
get metadata for particular renderer. Returns NULL if not found in registry.
double maxLabelScaleDenominator() const
void setLabelAttributeName(const QString &name)
QFont getFont(bool &ok, const QFont &initial, const QString &title)
Show font selection dialog.
void setLabelFont(const QFont &f)
void setCenterSymbol(QgsMarkerSymbolV2 *symbol)
Sets the center symbol (takes ownership)
void setMaxLabelScaleDenominator(double d)
Container of fields for a vector layer.
static QgsPointDisplacementRenderer * convertFromRenderer(const QgsFeatureRendererV2 *renderer)
creates a QgsPointDisplacementRenderer from an existing renderer.
double circleWidth() const
double toDouble(bool *ok) const
QString tr(const char *sourceText, const char *disambiguation, int n)
QGis::WkbType wkbType() const
Returns the WKBType or WKBUnknown in case of error.
const QString & name() const
Get the display name of the layer.
const char * name() const
virtual QgsFeatureRendererV2 * clone() const =0
QString number(int n, int base)
static QIcon symbolPreviewIcon(QgsSymbolV2 *symbol, QSize size)
QString labelAttributeName() const
void setEmbeddedRenderer(QgsFeatureRendererV2 *r)
Sets embedded renderer (takes ownership)
QStringList renderersList()
return a list of available renderers
static QgsStyleV2 * defaultStyle()
return default application-wide style
void setLabelColor(const QColor &c)
virtual QgsSymbolV2 * clone() const override
int count() const
Return number of items.
QgsFeatureRendererV2 * embeddedRenderer() const
void setCircleRadiusAddition(double d)
QColor circleColor() const
A renderer that automatically displaces points with the same position.
void setCircleWidth(double w)
void setCircleColor(const QColor &c)
const QgsFields & pendingFields() const
returns field list in the to-be-committed state
const_iterator constEnd() const
const_iterator constBegin() const
bool connect(const QObject *sender, const char *signal, const QObject *receiver, const char *method, Qt::ConnectionType type)
QgsMarkerSymbolV2 * centerSymbol()
Returns the symbol for the center of a displacement group (but not ownership of the symbol) ...
Represents a vector layer which manages a vector based data sets.
QColor labelColor() const
void setTolerance(double t)
double circleRadiusAddition() const