QGIS API Documentation  3.14.0-Pi (9f7028fd23)
qgsrendererpropertiesdialog.cpp
Go to the documentation of this file.
1 /***************************************************************************
2  qgsrendererpropertiesdialog.cpp
3  ---------------------
4  begin : December 2009
5  copyright : (C) 2009 by Martin Dobias
6  email : wonder dot sk at gmail dot com
7  ***************************************************************************
8  * *
9  * This program is free software; you can redistribute it and/or modify *
10  * it under the terms of the GNU General Public License as published by *
11  * the Free Software Foundation; either version 2 of the License, or *
12  * (at your option) any later version. *
13  * *
14  ***************************************************************************/
16 
17 #include "qgsrenderer.h"
18 #include "qgsrendererregistry.h"
19 
20 #include "qgsrendererwidget.h"
29 #include "qgs25drendererwidget.h"
31 #include "qgspanelwidget.h"
32 #include "qgspainteffect.h"
33 
34 #include "qgsorderbydialog.h"
35 #include "qgsapplication.h"
36 #include "qgslogger.h"
37 #include "qgsvectorlayer.h"
38 
39 #include <QKeyEvent>
40 #include <QMessageBox>
41 
42 static bool _initRenderer( const QString &name, QgsRendererWidgetFunc f, const QString &iconName = QString() )
43 {
46  if ( !am )
47  return false;
48  QgsRendererMetadata *m = dynamic_cast<QgsRendererMetadata *>( am );
49  if ( !m )
50  return false;
51 
52  m->setWidgetFunction( f );
53 
54  if ( !iconName.isEmpty() )
55  {
56  m->setIcon( QgsApplication::getThemeIcon( iconName ) );
57  }
58 
59  QgsDebugMsgLevel( "Set for " + name, 2 );
60  return true;
61 }
62 
63 static void _initRendererWidgetFunctions()
64 {
65  static bool sInitialized = false;
66  if ( sInitialized )
67  return;
68 
69  _initRenderer( QStringLiteral( "singleSymbol" ), QgsSingleSymbolRendererWidget::create, QStringLiteral( "rendererSingleSymbol.svg" ) );
70  _initRenderer( QStringLiteral( "categorizedSymbol" ), QgsCategorizedSymbolRendererWidget::create, QStringLiteral( "rendererCategorizedSymbol.svg" ) );
71  _initRenderer( QStringLiteral( "graduatedSymbol" ), QgsGraduatedSymbolRendererWidget::create, QStringLiteral( "rendererGraduatedSymbol.svg" ) );
72  _initRenderer( QStringLiteral( "RuleRenderer" ), QgsRuleBasedRendererWidget::create, QStringLiteral( "rendererRuleBasedSymbol.svg" ) );
73  _initRenderer( QStringLiteral( "pointDisplacement" ), QgsPointDisplacementRendererWidget::create, QStringLiteral( "rendererPointDisplacementSymbol.svg" ) );
74  _initRenderer( QStringLiteral( "pointCluster" ), QgsPointClusterRendererWidget::create, QStringLiteral( "rendererPointClusterSymbol.svg" ) );
75  _initRenderer( QStringLiteral( "invertedPolygonRenderer" ), QgsInvertedPolygonRendererWidget::create, QStringLiteral( "rendererInvertedSymbol.svg" ) );
76  _initRenderer( QStringLiteral( "heatmapRenderer" ), QgsHeatmapRendererWidget::create, QStringLiteral( "rendererHeatmapSymbol.svg" ) );
77  _initRenderer( QStringLiteral( "25dRenderer" ), Qgs25DRendererWidget::create, QStringLiteral( "renderer25dSymbol.svg" ) );
78  _initRenderer( QStringLiteral( "nullSymbol" ), QgsNullSymbolRendererWidget::create, QStringLiteral( "rendererNullSymbol.svg" ) );
79  sInitialized = true;
80 }
81 
82 QgsRendererPropertiesDialog::QgsRendererPropertiesDialog( QgsVectorLayer *layer, QgsStyle *style, bool embedded, QWidget *parent )
83  : QDialog( parent )
84  , mLayer( layer )
85  , mStyle( style )
86 
87 {
88  setupUi( this );
90  mLayerRenderingGroupBox->setSettingGroup( QStringLiteral( "layerRenderingGroupBox" ) );
91 
92  // can be embedded in vector layer properties
93  if ( embedded )
94  {
95  buttonBox->hide();
96  layout()->setContentsMargins( 0, 0, 0, 0 );
97  }
98 
99  // initialize registry's widget functions
100  _initRendererWidgetFunctions();
101 
103  QStringList renderers = reg->renderersList( mLayer );
104  const auto constRenderers = renderers;
105  for ( const QString &name : constRenderers )
106  {
108  cboRenderers->addItem( m->icon(), m->visibleName(), name );
109  }
110 
111  cboRenderers->setCurrentIndex( -1 ); // set no current renderer
112 
113  connect( buttonBox, &QDialogButtonBox::accepted, this, &QgsRendererPropertiesDialog::onOK );
114 
115  // connect layer opacity slider and spin box
116  connect( cboRenderers, static_cast<void ( QComboBox::* )( int )>( &QComboBox::currentIndexChanged ), this, &QgsRendererPropertiesDialog::rendererChanged );
117  connect( checkboxEnableOrderBy, &QAbstractButton::toggled, btnOrderBy, &QWidget::setEnabled );
118  connect( btnOrderBy, &QAbstractButton::clicked, this, &QgsRendererPropertiesDialog::showOrderByDialog );
119 
120  syncToLayer();
121 
122  QList<QWidget *> widgets;
123  widgets << mOpacityWidget
124  << cboRenderers
125  << checkboxEnableOrderBy
126  << mBlendModeComboBox
127  << mFeatureBlendComboBox
128  << mEffectWidget;
129 
130  connectValueChanged( widgets, SIGNAL( widgetChanged() ) );
131  connect( mEffectWidget, &QgsPanelWidget::showPanel, this, &QgsRendererPropertiesDialog::openPanel );
132 }
133 
134 void QgsRendererPropertiesDialog::connectValueChanged( const QList<QWidget *> &widgets, const char *slot )
135 {
136  const auto constWidgets = widgets;
137  for ( QWidget *widget : constWidgets )
138  {
139  if ( QgsPropertyOverrideButton *w = qobject_cast<QgsPropertyOverrideButton *>( widget ) )
140  {
141  connect( w, SIGNAL( changed ), this, slot );
142  }
143  else if ( QgsFieldExpressionWidget *w = qobject_cast<QgsFieldExpressionWidget *>( widget ) )
144  {
145  connect( w, SIGNAL( fieldChanged( QString ) ), this, slot );
146  }
147  else if ( QgsOpacityWidget *w = qobject_cast<QgsOpacityWidget *>( widget ) )
148  {
149  connect( w, SIGNAL( opacityChanged( double ) ), this, slot );
150  }
151  else if ( QComboBox *w = qobject_cast<QComboBox *>( widget ) )
152  {
153  connect( w, SIGNAL( currentIndexChanged( int ) ), this, slot );
154  }
155  else if ( QSpinBox *w = qobject_cast<QSpinBox *>( widget ) )
156  {
157  connect( w, SIGNAL( valueChanged( int ) ), this, slot );
158  }
159  else if ( QDoubleSpinBox *w = qobject_cast<QDoubleSpinBox *>( widget ) )
160  {
161  connect( w, SIGNAL( valueChanged( double ) ), this, slot );
162  }
163  else if ( QgsColorButton *w = qobject_cast<QgsColorButton *>( widget ) )
164  {
165  connect( w, SIGNAL( colorChanged( QColor ) ), this, slot );
166  }
167  else if ( QCheckBox *w = qobject_cast<QCheckBox *>( widget ) )
168  {
169  connect( w, SIGNAL( toggled( bool ) ), this, slot );
170  }
171  else if ( QLineEdit *w = qobject_cast<QLineEdit *>( widget ) )
172  {
173  connect( w, SIGNAL( textEdited( QString ) ), this, slot );
174  connect( w, SIGNAL( textChanged( QString ) ), this, slot );
175  }
176  else if ( QgsEffectStackCompactWidget *w = qobject_cast<QgsEffectStackCompactWidget *>( widget ) )
177  {
178  connect( w, SIGNAL( changed() ), this, slot );
179  }
180  }
181 }
182 
184 {
185  delete mPaintEffect;
186 }
187 
189 {
190  mMapCanvas = canvas;
191  if ( mActiveWidget )
192  {
193  QgsSymbolWidgetContext context;
194  context.setMapCanvas( mMapCanvas );
195  mActiveWidget->setContext( context );
196  }
197 }
198 
200 {
201  mMapCanvas = context.mapCanvas();
202  mMessageBar = context.messageBar();
203  if ( mActiveWidget )
204  {
205  mActiveWidget->setContext( context );
206  }
207 }
208 
210 {
211  mDockMode = dockMode;
212  mEffectWidget->setDockMode( dockMode );
213  if ( mActiveWidget )
214  mActiveWidget->setDockMode( mDockMode );
215 }
216 
217 
219 {
220  if ( cboRenderers->currentIndex() == -1 )
221  {
222  QgsDebugMsg( QStringLiteral( "No current item -- this should never happen!" ) );
223  return;
224  }
225 
226  QString rendererName = cboRenderers->currentData().toString();
227 
228  //Retrieve the previous renderer: from the old active widget if possible, otherwise from the layer
229  QgsFeatureRenderer *oldRenderer = nullptr;
231  {
232  oldRenderer = mActiveWidget->renderer()->clone();
233  }
234  else
235  {
236  oldRenderer = mLayer->renderer()->clone();
237  }
238 
239  // get rid of old active widget (if any)
240  if ( mActiveWidget )
241  {
242  stackedWidget->removeWidget( mActiveWidget );
243 
244  delete mActiveWidget;
245  mActiveWidget = nullptr;
246  }
247 
248  QgsRendererWidget *w = nullptr;
250  if ( m )
251  w = m->createRendererWidget( mLayer, mStyle, oldRenderer );
252  delete oldRenderer;
253 
254  if ( w )
255  {
256  // instantiate the widget and set as active
257  mActiveWidget = w;
258  stackedWidget->addWidget( mActiveWidget );
259  stackedWidget->setCurrentWidget( mActiveWidget );
260  if ( mActiveWidget->renderer() )
261  {
262  if ( mMapCanvas || mMessageBar )
263  {
264  QgsSymbolWidgetContext context;
265  context.setMapCanvas( mMapCanvas );
266  context.setMessageBar( mMessageBar );
267  mActiveWidget->setContext( context );
268  }
269  changeOrderBy( mActiveWidget->renderer()->orderBy(), mActiveWidget->renderer()->orderByEnabled() );
271  }
274  w->setDockMode( mDockMode );
275  }
276  else
277  {
278  // set default "no edit widget available" page
279  stackedWidget->setCurrentWidget( pageNoWidget );
280  }
281 }
282 
284 {
285  if ( !mActiveWidget || !mLayer )
286  {
287  return;
288  }
289 
291 
293  if ( renderer )
294  {
295  renderer->setPaintEffect( mPaintEffect->clone() );
296  // set the order by
297  renderer->setOrderBy( mOrderBy );
298  renderer->setOrderByEnabled( checkboxEnableOrderBy->isChecked() );
299 
300  mLayer->setRenderer( renderer->clone() );
301  }
302 
303  // set the blend modes for the layer
304  mLayer->setBlendMode( mBlendModeComboBox->blendMode() );
305  mLayer->setFeatureBlendMode( mFeatureBlendComboBox->blendMode() );
306 
307  // set opacity for the layer
308  mLayer->setOpacity( mOpacityWidget->opacity() );
309 }
310 
312 {
313  apply();
314  accept();
315 }
316 
318 {
319  if ( mDockMode )
320  {
321  emit showPanel( panel );
322  }
323  else
324  {
325  // Show the dialog version if no one is connected
326  QDialog *dlg = new QDialog();
327  QString key = QStringLiteral( "/UI/paneldialog/%1" ).arg( panel->panelTitle() );
328  QgsSettings settings;
329  dlg->restoreGeometry( settings.value( key ).toByteArray() );
330  dlg->setWindowTitle( panel->panelTitle() );
331  dlg->setLayout( new QVBoxLayout() );
332  dlg->layout()->addWidget( panel );
333  QDialogButtonBox *buttonBox = new QDialogButtonBox( QDialogButtonBox::Ok );
334  connect( buttonBox, &QDialogButtonBox::accepted, dlg, &QDialog::accept );
335  dlg->layout()->addWidget( buttonBox );
336  dlg->exec();
337  settings.setValue( key, dlg->saveGeometry() );
338  panel->acceptPanel();
339  }
340 }
341 
342 void QgsRendererPropertiesDialog::syncToLayer()
343 {
344  // Blend mode
345  mBlendModeComboBox->setBlendMode( mLayer->blendMode() );
346 
347  // Feature blend mode
348  mFeatureBlendComboBox->setBlendMode( mLayer->featureBlendMode() );
349 
350  // Layer opacity
351  mOpacityWidget->setOpacity( mLayer->opacity() );
352 
353  //paint effect widget
354  if ( mLayer->renderer() )
355  {
356  if ( mLayer->renderer()->paintEffect() )
357  {
359  mEffectWidget->setPaintEffect( mPaintEffect );
360  }
361 
363  }
364 
365  // setup slot rendererChanged()
366  //setup order by
367  if ( mLayer->renderer() &&
369  {
370  checkboxEnableOrderBy->setChecked( true );
371  }
372  else
373  {
374  btnOrderBy->setEnabled( false );
375  checkboxEnableOrderBy->setChecked( false );
376  }
377 
378  if ( mLayer->renderer() )
379  {
380  // set current renderer from layer
381  QString rendererName = mLayer->renderer()->type();
382 
383  int rendererIdx = cboRenderers->findData( rendererName );
384  cboRenderers->setCurrentIndex( rendererIdx );
385 
386  // no renderer found... this mustn't happen
387  Q_ASSERT( rendererIdx != -1 && "there must be a renderer!" );
388  }
389 
390 }
391 
392 void QgsRendererPropertiesDialog::showOrderByDialog()
393 {
394  QgsOrderByDialog dlg( mLayer, this );
395 
396  dlg.setOrderBy( mOrderBy );
397  if ( dlg.exec() )
398  {
399  mOrderBy = dlg.orderBy();
400  emit widgetChanged();
401  }
402 }
403 
404 void QgsRendererPropertiesDialog::changeOrderBy( const QgsFeatureRequest::OrderBy &orderBy, bool orderByEnabled )
405 {
406  mOrderBy = orderBy;
407  checkboxEnableOrderBy->setChecked( orderByEnabled );
408 }
409 
410 void QgsRendererPropertiesDialog::updateUIState( bool hidden )
411 {
412  mLayerRenderingGroupBox->setHidden( hidden );
413  cboRenderers->setHidden( hidden );
414 }
415 
416 
418 {
419  // Ignore the ESC key to avoid close the dialog without the properties window
420  if ( !isWindow() && e->key() == Qt::Key_Escape )
421  {
422  e->ignore();
423  }
424  else
425  {
426  QDialog::keyPressEvent( e );
427  }
428 }
QgsVectorLayer::setRenderer
void setRenderer(QgsFeatureRenderer *r)
Sets renderer which will be invoked to represent this layer.
Definition: qgsvectorlayer.cpp:3638
QgsRendererWidget::renderer
virtual QgsFeatureRenderer * renderer()=0
Returns pointer to the renderer (no transfer of ownership)
qgsrulebasedrendererwidget.h
QgsRendererPropertiesDialog::~QgsRendererPropertiesDialog
~QgsRendererPropertiesDialog() override
Definition: qgsrendererpropertiesdialog.cpp:183
QgsRendererPropertiesDialog::showPanel
void showPanel(QgsPanelWidget *panel)
Emit when you require a panel to be show in the interface.
QgsRendererPropertiesDialog::mOrderBy
QgsFeatureRequest::OrderBy mOrderBy
Definition: qgsrendererpropertiesdialog.h:161
QgsSymbolWidgetContext::mapCanvas
QgsMapCanvas * mapCanvas() const
Returns the map canvas associated with the widget.
Definition: qgssymbolwidgetcontext.cpp:54
QgsApplication::rendererRegistry
static QgsRendererRegistry * rendererRegistry()
Returns the application's renderer registry, used for managing vector layer renderers.
Definition: qgsapplication.cpp:2099
QgsVectorLayer::featureBlendMode
QPainter::CompositionMode featureBlendMode() const
Returns the current blending mode for features.
Definition: qgsvectorlayer.cpp:4319
qgspointdisplacementrendererwidget.h
QgsRendererPropertiesDialog::apply
void apply()
Apply the changes from the dialog to the layer.
Definition: qgsrendererpropertiesdialog.cpp:283
QgsRendererPropertiesDialog::mPaintEffect
QgsPaintEffect * mPaintEffect
Definition: qgsrendererpropertiesdialog.h:156
QgsRendererAbstractMetadata::setIcon
void setIcon(const QIcon &icon)
Sets an icon representing the renderer.
Definition: qgsrendererregistry.h:94
QgsApplication::getThemeIcon
static QIcon getThemeIcon(const QString &name)
Helper to get a theme icon.
Definition: qgsapplication.cpp:605
QgsSettings::value
QVariant value(const QString &key, const QVariant &defaultValue=QVariant(), Section section=NoSection) const
Returns the value for setting key.
Definition: qgssettings.cpp:174
QgsFeatureRenderer::setOrderByEnabled
void setOrderByEnabled(bool enabled)
Sets whether custom ordering should be applied before features are processed by this renderer.
Definition: qgsrenderer.cpp:450
QgsRuleBasedRendererWidget::create
static QgsRendererWidget * create(QgsVectorLayer *layer, QgsStyle *style, QgsFeatureRenderer *renderer)
Definition: qgsrulebasedrendererwidget.cpp:48
QgsDebugMsgLevel
#define QgsDebugMsgLevel(str, level)
Definition: qgslogger.h:39
QgsMapLayer::blendMode
QPainter::CompositionMode blendMode() const
Returns the current blending mode for a layer.
Definition: qgsmaplayer.cpp:212
QgsPointClusterRendererWidget::create
static QgsRendererWidget * create(QgsVectorLayer *layer, QgsStyle *style, QgsFeatureRenderer *renderer)
Returns a new QgsPointClusterRendererWidget.
Definition: qgspointclusterrendererwidget.cpp:29
qgsheatmaprendererwidget.h
QgsRendererAbstractMetadata::visibleName
QString visibleName() const
Returns a friendly display name of the renderer.
Definition: qgsrendererregistry.h:82
QgsCategorizedSymbolRendererWidget::create
static QgsRendererWidget * create(QgsVectorLayer *layer, QgsStyle *style, QgsFeatureRenderer *renderer)
Definition: qgscategorizedsymbolrendererwidget.cpp:492
QgsSymbolWidgetContext
Definition: qgssymbolwidgetcontext.h:35
QgsMapCanvas
Definition: qgsmapcanvas.h:83
qgs25drendererwidget.h
QgsFeatureRenderer::type
QString type() const
Definition: qgsrenderer.h:141
QgsRendererWidget::applyChanges
void applyChanges()
This method should be called whenever the renderer is actually set on the layer.
Definition: qgsrendererwidget.cpp:347
QgsRendererPropertiesDialog::setDockMode
void setDockMode(bool dockMode)
Set the widget in dock mode which tells the widget to emit panel widgets and not open dialogs.
Definition: qgsrendererpropertiesdialog.cpp:209
QgsSettings
Definition: qgssettings.h:61
QgsMapLayer::setBlendMode
void setBlendMode(QPainter::CompositionMode blendMode)
Set the blending mode used for rendering a layer.
Definition: qgsmaplayer.cpp:202
QgsRendererPropertiesDialog::setMapCanvas
void setMapCanvas(QgsMapCanvas *canvas)
Sets the map canvas associated with the dialog.
Definition: qgsrendererpropertiesdialog.cpp:188
QgsDebugMsg
#define QgsDebugMsg(str)
Definition: qgslogger.h:38
qgspainteffect.h
QgsRendererPropertiesDialog::rendererChanged
void rendererChanged()
called when user changes renderer type
Definition: qgsrendererpropertiesdialog.cpp:218
QgsHeatmapRendererWidget::create
static QgsRendererWidget * create(QgsVectorLayer *layer, QgsStyle *style, QgsFeatureRenderer *renderer)
Static creation method.
Definition: qgsheatmaprendererwidget.cpp:33
QgsPropertyOverrideButton
Definition: qgspropertyoverridebutton.h:50
QgsSymbolWidgetContext::setMapCanvas
void setMapCanvas(QgsMapCanvas *canvas)
Sets the map canvas associated with the widget.
Definition: qgssymbolwidgetcontext.cpp:49
QgsFeatureRenderer::orderBy
QgsFeatureRequest::OrderBy orderBy() const
Gets the order in which features shall be processed by this renderer.
Definition: qgsrenderer.cpp:435
QgsPanelWidget::showPanel
void showPanel(QgsPanelWidget *panel)
Emit when you require a panel to be show in the interface.
qgssinglesymbolrendererwidget.h
qgsapplication.h
QgsRendererPropertiesDialog::mActiveWidget
QgsRendererWidget * mActiveWidget
Definition: qgsrendererpropertiesdialog.h:154
QgsGui::enableAutoGeometryRestore
static void enableAutoGeometryRestore(QWidget *widget, const QString &key=QString())
Register the widget to allow its position to be automatically saved and restored when open and closed...
Definition: qgsgui.cpp:133
QgsSymbolWidgetContext::setMessageBar
void setMessageBar(QgsMessageBar *bar)
Sets the message bar associated with the widget.
Definition: qgssymbolwidgetcontext.cpp:59
QgsRendererWidgetFunc
QgsRendererWidget *(* QgsRendererWidgetFunc)(QgsVectorLayer *, QgsStyle *, QgsFeatureRenderer *)
Definition: qgsrendererregistry.h:134
qgsgraduatedsymbolrendererwidget.h
QgsPanelWidget
Base class for any widget that can be shown as a inline panel.
Definition: qgspanelwidget.h:29
QgsRendererPropertiesDialog::layerVariablesChanged
void layerVariablesChanged()
Emitted when expression context variables on the associated vector layers have been changed.
qgsorderbydialog.h
QgsEffectStackCompactWidget
A small widget consisting of a checkbox for enabling/disabling an effect stack and a button for openi...
Definition: qgseffectstackpropertieswidget.h:218
QgsFeatureRenderer::clone
virtual QgsFeatureRenderer * clone() const =0
Create a deep copy of this renderer.
QgsPanelWidget::acceptPanel
void acceptPanel()
Accept the panel.
Definition: qgspanelwidget.cpp:107
qgspointclusterrendererwidget.h
qgsrendererregistry.h
QgsPaintEffect::clone
virtual QgsPaintEffect * clone() const =0
Duplicates an effect by creating a deep copy of the effect.
QgsRendererWidget::setDockMode
void setDockMode(bool dockMode) override
Set the widget in dock mode which tells the widget to emit panel widgets and not open dialogs.
Definition: qgsrendererwidget.cpp:352
QgsPanelWidget::widgetChanged
void widgetChanged()
Emitted when the widget state changes.
QgsRendererPropertiesDialog::QgsRendererPropertiesDialog
QgsRendererPropertiesDialog(QgsVectorLayer *layer, QgsStyle *style, bool embedded=false, QWidget *parent=nullptr)
Constructor for QgsRendererPropertiesDialog.
Definition: qgsrendererpropertiesdialog.cpp:82
QgsPanelWidget::panelTitle
QString panelTitle()
The title of the panel.
Definition: qgspanelwidget.h:50
QgsInvertedPolygonRendererWidget::create
static QgsRendererWidget * create(QgsVectorLayer *layer, QgsStyle *style, QgsFeatureRenderer *renderer)
Static creation method.
Definition: qgsinvertedpolygonrendererwidget.cpp:25
QgsOpacityWidget
A widget for setting an opacity value.
Definition: qgsopacitywidget.h:32
QgsSettings::setValue
void setValue(const QString &key, const QVariant &value, QgsSettings::Section section=QgsSettings::NoSection)
Sets the value of setting key to value.
Definition: qgssettings.cpp:289
qgsrenderer.h
QgsRendererPropertiesDialog::onOK
void onOK()
Apply and accept the changes for the dialog.
Definition: qgsrendererpropertiesdialog.cpp:311
QgsRendererRegistry::renderersList
QStringList renderersList(QgsRendererAbstractMetadata::LayerTypes layerTypes=QgsRendererAbstractMetadata::All) const
Returns a list of available renderers.
Definition: qgsrendererregistry.cpp:123
QgsSingleSymbolRendererWidget::create
static QgsRendererWidget * create(QgsVectorLayer *layer, QgsStyle *style, QgsFeatureRenderer *renderer)
Definition: qgssinglesymbolrendererwidget.cpp:30
QgsRendererWidget
Definition: qgsrendererwidget.h:44
QgsRendererPropertiesDialog::mMessageBar
QgsMessageBar * mMessageBar
Definition: qgsrendererpropertiesdialog.h:159
QgsRendererPropertiesDialog::widgetChanged
void widgetChanged()
Emitted when something on the widget has changed.
qgsvectorlayer.h
QgsRendererPropertiesDialog::openPanel
void openPanel(QgsPanelWidget *panel)
Open a panel or dialog depending on dock mode setting If dock mode is true this method will emit the ...
Definition: qgsrendererpropertiesdialog.cpp:317
QgsRendererPropertiesDialog::keyPressEvent
void keyPressEvent(QKeyEvent *event) override
Definition: qgsrendererpropertiesdialog.cpp:417
QgsRendererPropertiesDialog::mLayer
QgsVectorLayer * mLayer
Definition: qgsrendererpropertiesdialog.h:151
QgsFeatureRenderer
Definition: qgsrenderer.h:102
QgsFeatureRequest::OrderBy
Definition: qgsfeaturerequest.h:242
QgsPointDisplacementRendererWidget::create
static QgsRendererWidget * create(QgsVectorLayer *layer, QgsStyle *style, QgsFeatureRenderer *renderer)
Definition: qgspointdisplacementrendererwidget.cpp:29
QgsRendererMetadata
Definition: qgsrendererregistry.h:141
QgsStyle
Definition: qgsstyle.h:159
QgsVectorLayer
Definition: qgsvectorlayer.h:385
QgsFeatureRenderer::orderByEnabled
bool orderByEnabled() const
Returns whether custom ordering will be applied before features are processed by this renderer.
Definition: qgsrenderer.cpp:445
qgsnullsymbolrendererwidget.h
QgsRendererMetadata::setWidgetFunction
void setWidgetFunction(QgsRendererWidgetFunc f)
Definition: qgsrendererregistry.h:192
qgsinvertedpolygonrendererwidget.h
QgsRendererWidget::layerVariablesChanged
void layerVariablesChanged()
Emitted when expression context variables on the associated vector layers have been changed.
QgsColorButton
Definition: qgscolorbutton.h:35
QgsRendererPropertiesDialog::mStyle
QgsStyle * mStyle
Definition: qgsrendererpropertiesdialog.h:152
qgsrendererwidget.h
QgsFeatureRenderer::setPaintEffect
void setPaintEffect(QgsPaintEffect *effect)
Sets the current paint effect for the renderer.
Definition: qgsrenderer.cpp:429
QgsGraduatedSymbolRendererWidget::create
static QgsRendererWidget * create(QgsVectorLayer *layer, QgsStyle *style, QgsFeatureRenderer *renderer)
Definition: qgsgraduatedsymbolrendererwidget.cpp:410
QgsFeatureRenderer::setOrderBy
void setOrderBy(const QgsFeatureRequest::OrderBy &orderBy)
Define the order in which features shall be processed by this renderer.
Definition: qgsrenderer.cpp:440
QgsSymbolWidgetContext::messageBar
QgsMessageBar * messageBar() const
Returns the message bar associated with the widget.
Definition: qgssymbolwidgetcontext.cpp:64
QgsRendererAbstractMetadata::icon
QIcon icon() const
Returns an icon representing the renderer.
Definition: qgsrendererregistry.h:88
qgscategorizedsymbolrendererwidget.h
qgsrendererpropertiesdialog.h
QgsVectorLayer::opacity
double opacity
Definition: qgsvectorlayer.h:394
QgsFeatureRenderer::paintEffect
QgsPaintEffect * paintEffect() const
Returns the current paint effect for the renderer.
Definition: qgsrenderer.cpp:424
qgslogger.h
QgsRendererPropertiesDialog::setContext
void setContext(const QgsSymbolWidgetContext &context)
Sets the context in which the dialog is shown, e.g., the associated map canvas and expression context...
Definition: qgsrendererpropertiesdialog.cpp:199
QgsRendererAbstractMetadata::createRendererWidget
virtual QgsRendererWidget * createRendererWidget(QgsVectorLayer *layer, QgsStyle *style, QgsFeatureRenderer *oldRenderer)
Returns new instance of settings widget for the renderer.
Definition: qgsrendererregistry.h:114
qgspanelwidget.h
QgsRendererRegistry
Registry of renderers.
Definition: qgsrendererregistry.h:223
QgsFieldExpressionWidget
The QgsFieldExpressionWidget class reates a widget to choose fields and edit expressions It contains ...
Definition: qgsfieldexpressionwidget.h:46
QgsRendererRegistry::rendererMetadata
QgsRendererAbstractMetadata * rendererMetadata(const QString &rendererName)
Returns the metadata for a specified renderer.
Definition: qgsrendererregistry.cpp:118
Qgs25DRendererWidget::create
static QgsRendererWidget * create(QgsVectorLayer *layer, QgsStyle *style, QgsFeatureRenderer *renderer)
Static creation method.
Definition: qgs25drendererwidget.cpp:113
QgsRendererAbstractMetadata
Definition: qgsrendererregistry.h:41
QgsRendererWidget::setContext
virtual void setContext(const QgsSymbolWidgetContext &context)
Sets the context in which the renderer widget is shown, e.g., the associated map canvas and expressio...
Definition: qgsrendererwidget.cpp:337
QgsVectorLayer::setOpacity
void setOpacity(double opacity)
Sets the opacity for the vector layer, where opacity is a value between 0 (totally transparent) and 1...
Definition: qgsvectorlayer.cpp:4324
QgsRendererPropertiesDialog::mMapCanvas
QgsMapCanvas * mMapCanvas
Definition: qgsrendererpropertiesdialog.h:158
QgsVectorLayer::setFeatureBlendMode
void setFeatureBlendMode(QPainter::CompositionMode blendMode)
Sets the blending mode used for rendering each feature.
Definition: qgsvectorlayer.cpp:4309
QgsNullSymbolRendererWidget::create
static QgsRendererWidget * create(QgsVectorLayer *layer, QgsStyle *style, QgsFeatureRenderer *renderer)
Creates a new QgsNullSymbolRendererWidget object.
Definition: qgsnullsymbolrendererwidget.cpp:22
QgsOrderByDialog
Definition: qgsorderbydialog.h:37
QgsVectorLayer::renderer
QgsFeatureRenderer * renderer()
Returns renderer.
Definition: qgsvectorlayer.h:881
QgsRendererPropertiesDialog::connectValueChanged
void connectValueChanged(const QList< QWidget * > &widgets, const char *slot)
Connect the given slot to the value changed event for the set of widgets Each widget is checked for t...
Definition: qgsrendererpropertiesdialog.cpp:134