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" ) ) );
88 QStringList::const_iterator it = rendererList.constBegin();
89 for ( ; it != rendererList.constEnd(); ++it )
91 if ( *it !=
"pointDisplacement" && *it !=
"heatmapRenderer" && *it !=
"invertedPolygonRenderer" )
98 mCircleColorButton->setColorDialogTitle(
tr(
"Select color" ) );
99 mCircleColorButton->setContext(
"symbology" );
100 mCircleColorButton->setAllowAlpha(
true );
101 mLabelColorButton->setContext(
"symbology" );
102 mLabelColorButton->setColorDialogTitle(
tr(
"Select color" ) );
103 mLabelColorButton->setAllowAlpha(
true );
105 mCircleWidthSpinBox->setValue( mRenderer->
circleWidth() );
106 mCircleColorButton->setColor( mRenderer->
circleColor() );
107 mLabelColorButton->setColor( mRenderer->
labelColor() );
109 mDistanceSpinBox->setValue( mRenderer->
tolerance() );
113 mMaxScaleDenominatorEdit->setValidator(
new QDoubleValidator( mMaxScaleDenominatorEdit ) );
116 mScaleDependentLabelsCheckBox->setCheckState( Qt::Checked );
120 mScaleDependentLabelsCheckBox->setCheckState( Qt::Unchecked );
121 mMaxScaleDenominatorEdit->setEnabled(
false );
125 blockAllSignals(
false );
131 int rendererIndex = mRendererComboBox->findData( rendererName );
132 if ( rendererIndex != -1 )
134 mRendererComboBox->setCurrentIndex( rendererIndex );
135 on_mRendererComboBox_currentIndexChanged( rendererIndex );
145 delete mEmbeddedRendererWidget;
150 if ( mRenderer && mEmbeddedRendererWidget )
153 if ( embeddedRenderer )
161 void QgsPointDisplacementRendererWidget::on_mLabelFieldComboBox_currentIndexChanged(
const QString& text )
165 if ( text ==
tr(
"None" ) )
176 void QgsPointDisplacementRendererWidget::on_mRendererComboBox_currentIndexChanged(
int index )
178 QString rendererId = mRendererComboBox->itemData( index ).toString();
182 delete mEmbeddedRendererWidget;
187 void QgsPointDisplacementRendererWidget::on_mRendererSettingsButton_clicked()
189 if ( mEmbeddedRendererWidget )
193 QDialog* d =
new QDialog( this->window() );
194 d->setWindowModality( Qt::WindowModal );
196 QDialog* d =
new QDialog();
198 QGridLayout* layout =
new QGridLayout( d );
199 mEmbeddedRendererWidget->setParent( d );
200 QDialogButtonBox* buttonBox =
new QDialogButtonBox( d );
201 buttonBox->addButton( QDialogButtonBox::Ok );
202 QObject::connect( buttonBox, SIGNAL( accepted() ), d, SLOT( accept() ) );
203 layout->addWidget( mEmbeddedRendererWidget, 0, 0 );
204 layout->addWidget( buttonBox, 1, 0 );
206 mEmbeddedRendererWidget->setParent( 0 );
211 void QgsPointDisplacementRendererWidget::on_mLabelFontButton_clicked()
226 void QgsPointDisplacementRendererWidget::on_mCircleWidthSpinBox_valueChanged(
double d )
234 void QgsPointDisplacementRendererWidget::on_mCircleColorButton_colorChanged(
const QColor& newColor )
244 void QgsPointDisplacementRendererWidget::on_mLabelColorButton_colorChanged(
const QColor& newColor )
254 void QgsPointDisplacementRendererWidget::on_mCircleModificationSpinBox_valueChanged(
double d )
264 void QgsPointDisplacementRendererWidget::on_mDistanceSpinBox_valueChanged(
double d )
272 void QgsPointDisplacementRendererWidget::on_mScaleDependentLabelsCheckBox_stateChanged(
int state )
274 if ( state == Qt::Unchecked )
276 mMaxScaleDenominatorEdit->setText(
"-1" );
277 mMaxScaleDenominatorEdit->setEnabled(
false );
281 mMaxScaleDenominatorEdit->setEnabled(
true );
285 void QgsPointDisplacementRendererWidget::on_mMaxScaleDenominatorEdit_textChanged(
const QString & text )
293 double scaleDenominator = text.toDouble( &ok );
300 void QgsPointDisplacementRendererWidget::blockAllSignals(
bool block )
302 mLabelFieldComboBox->blockSignals( block );
303 mLabelFontButton->blockSignals( block );
304 mCircleWidthSpinBox->blockSignals( block );
305 mCircleColorButton->blockSignals( block );
306 mRendererComboBox->blockSignals( block );
307 mLabelColorButton->blockSignals( block );
308 mCircleModificationSpinBox->blockSignals( block );
309 mScaleDependentLabelsCheckBox->blockSignals( block );
310 mMaxScaleDenominatorEdit->blockSignals( block );
311 mCenterSymbolPushButton->blockSignals( block );
312 mDistanceSpinBox->blockSignals( block );
315 void QgsPointDisplacementRendererWidget::on_mCenterSymbolPushButton_clicked()
323 if ( dlg.exec() == QDialog::Rejected )
332 void QgsPointDisplacementRendererWidget::updateCenterIcon()
340 mCenterSymbolPushButton->setIcon( icon );
343 void QgsPointDisplacementRendererWidget::setupBlankUi(
const QString& layerName )
345 QGridLayout* layout =
new QGridLayout(
this );
346 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 );
347 layout->addWidget( label );
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
QGis::WkbType wkbType() const
Returns the WKBType or WKBUnknown in case of error.
const QString & name() const
Get the display name of the layer.
virtual QgsFeatureRendererV2 * clone() const =0
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
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