| 
    QGIS API Documentation
    3.14.0-Pi (9f7028fd23)
    
   | 
 
 
 
 
Go to the documentation of this file.
   40 #include <QMessageBox> 
   42 static bool _initRenderer( 
const QString &name, 
QgsRendererWidgetFunc f, 
const QString &iconName = QString() )
 
   54   if ( !iconName.isEmpty() )
 
   63 static void _initRendererWidgetFunctions()
 
   65   static bool sInitialized = 
false;
 
   90   mLayerRenderingGroupBox->setSettingGroup( QStringLiteral( 
"layerRenderingGroupBox" ) );
 
   96     layout()->setContentsMargins( 0, 0, 0, 0 );
 
  100   _initRendererWidgetFunctions();
 
  104   const auto constRenderers = renderers;
 
  105   for ( 
const QString &name : constRenderers )
 
  111   cboRenderers->setCurrentIndex( -1 ); 
 
  117   connect( checkboxEnableOrderBy, &QAbstractButton::toggled, btnOrderBy, &QWidget::setEnabled );
 
  118   connect( btnOrderBy, &QAbstractButton::clicked, 
this, &QgsRendererPropertiesDialog::showOrderByDialog );
 
  122   QList<QWidget *> widgets;
 
  123   widgets << mOpacityWidget
 
  125           << checkboxEnableOrderBy
 
  126           << mBlendModeComboBox
 
  127           << mFeatureBlendComboBox
 
  136   const auto constWidgets = widgets;
 
  137   for ( QWidget *widget : constWidgets )
 
  141       connect( w, SIGNAL( changed ), 
this, slot );
 
  145       connect( w, SIGNAL( fieldChanged( QString ) ), 
this,  slot );
 
  147     else if ( 
QgsOpacityWidget *w = qobject_cast<QgsOpacityWidget *>( widget ) )
 
  149       connect( w, SIGNAL( opacityChanged( 
double ) ), 
this,  slot );
 
  151     else if ( QComboBox *w = qobject_cast<QComboBox *>( widget ) )
 
  153       connect( w, SIGNAL( currentIndexChanged( 
int ) ), 
this, slot );
 
  155     else if ( QSpinBox *w = qobject_cast<QSpinBox *>( widget ) )
 
  157       connect( w, SIGNAL( valueChanged( 
int ) ), 
this, slot );
 
  159     else if ( QDoubleSpinBox *w = qobject_cast<QDoubleSpinBox *>( widget ) )
 
  161       connect( w, SIGNAL( valueChanged( 
double ) ), 
this, slot );
 
  163     else if ( 
QgsColorButton *w = qobject_cast<QgsColorButton *>( widget ) )
 
  165       connect( w, SIGNAL( colorChanged( QColor ) ), 
this, slot );
 
  167     else if ( QCheckBox *w = qobject_cast<QCheckBox *>( widget ) )
 
  169       connect( w, SIGNAL( toggled( 
bool ) ), 
this, slot );
 
  171     else if ( QLineEdit *w = qobject_cast<QLineEdit *>( widget ) )
 
  173       connect( w, SIGNAL( textEdited( QString ) ), 
this, slot );
 
  174       connect( w, SIGNAL( textChanged( QString ) ), 
this, slot );
 
  178       connect( w, SIGNAL( changed() ), 
this, slot );
 
  211   mDockMode = dockMode;
 
  212   mEffectWidget->setDockMode( dockMode );
 
  220   if ( cboRenderers->currentIndex() == -1 )
 
  222     QgsDebugMsg( QStringLiteral( 
"No current item -- this should never happen!" ) );
 
  226   QString rendererName = cboRenderers->currentData().toString();
 
  279     stackedWidget->setCurrentWidget( pageNoWidget );
 
  326     QDialog *dlg = 
new QDialog();
 
  327     QString key = QStringLiteral( 
"/UI/paneldialog/%1" ).arg( panel->
panelTitle() );
 
  329     dlg->restoreGeometry( settings.
value( key ).toByteArray() );
 
  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 );
 
  337     settings.
setValue( key, dlg->saveGeometry() );
 
  342 void QgsRendererPropertiesDialog::syncToLayer()
 
  370     checkboxEnableOrderBy->setChecked( 
true );
 
  374     btnOrderBy->setEnabled( 
false );
 
  375     checkboxEnableOrderBy->setChecked( 
false );
 
  383     int rendererIdx = cboRenderers->findData( rendererName );
 
  384     cboRenderers->setCurrentIndex( rendererIdx );
 
  387     Q_ASSERT( rendererIdx != -1 && 
"there must be a renderer!" );
 
  392 void QgsRendererPropertiesDialog::showOrderByDialog()
 
  407   checkboxEnableOrderBy->setChecked( orderByEnabled );
 
  410 void QgsRendererPropertiesDialog::updateUIState( 
bool hidden )
 
  412   mLayerRenderingGroupBox->setHidden( hidden );
 
  413   cboRenderers->setHidden( hidden );
 
  420   if ( !isWindow() && e->key() == Qt::Key_Escape )
 
  426     QDialog::keyPressEvent( e );
 
  
void setRenderer(QgsFeatureRenderer *r)
Sets renderer which will be invoked to represent this layer.
 
~QgsRendererPropertiesDialog() override
 
void showPanel(QgsPanelWidget *panel)
Emit when you require a panel to be show in the interface.
 
QgsFeatureRequest::OrderBy mOrderBy
 
QgsMapCanvas * mapCanvas() const
Returns the map canvas associated with the widget.
 
static QgsRendererRegistry * rendererRegistry()
Returns the application's renderer registry, used for managing vector layer renderers.
 
QPainter::CompositionMode featureBlendMode() const
Returns the current blending mode for features.
 
void apply()
Apply the changes from the dialog to the layer.
 
QgsPaintEffect * mPaintEffect
 
static QIcon getThemeIcon(const QString &name)
Helper to get a theme icon.
 
QVariant value(const QString &key, const QVariant &defaultValue=QVariant(), Section section=NoSection) const
Returns the value for setting key.
 
void setOrderByEnabled(bool enabled)
Sets whether custom ordering should be applied before features are processed by this renderer.
 
#define QgsDebugMsgLevel(str, level)
 
QPainter::CompositionMode blendMode() const
Returns the current blending mode for a layer.
 
void setDockMode(bool dockMode)
Set the widget in dock mode which tells the widget to emit panel widgets and not open dialogs.
 
void setBlendMode(QPainter::CompositionMode blendMode)
Set the blending mode used for rendering a layer.
 
void setMapCanvas(QgsMapCanvas *canvas)
Sets the map canvas associated with the dialog.
 
void rendererChanged()
called when user changes renderer type
 
void setMapCanvas(QgsMapCanvas *canvas)
Sets the map canvas associated with the widget.
 
QgsFeatureRequest::OrderBy orderBy() const
Gets the order in which features shall be processed by this renderer.
 
QgsRendererWidget * mActiveWidget
 
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...
 
void setMessageBar(QgsMessageBar *bar)
Sets the message bar associated with the widget.
 
QgsRendererWidget *(* QgsRendererWidgetFunc)(QgsVectorLayer *, QgsStyle *, QgsFeatureRenderer *)
 
void layerVariablesChanged()
Emitted when expression context variables on the associated vector layers have been changed.
 
virtual QgsFeatureRenderer * clone() const =0
Create a deep copy of this renderer.
 
virtual QgsPaintEffect * clone() const =0
Duplicates an effect by creating a deep copy of the effect.
 
QgsRendererPropertiesDialog(QgsVectorLayer *layer, QgsStyle *style, bool embedded=false, QWidget *parent=nullptr)
Constructor for QgsRendererPropertiesDialog.
 
void setValue(const QString &key, const QVariant &value, QgsSettings::Section section=QgsSettings::NoSection)
Sets the value of setting key to value.
 
void onOK()
Apply and accept the changes for the dialog.
 
QStringList renderersList(QgsRendererAbstractMetadata::LayerTypes layerTypes=QgsRendererAbstractMetadata::All) const
Returns a list of available renderers.
 
QgsMessageBar * mMessageBar
 
void widgetChanged()
Emitted when something on the widget has changed.
 
void openPanel(QgsPanelWidget *panel)
Open a panel or dialog depending on dock mode setting If dock mode is true this method will emit the ...
 
void keyPressEvent(QKeyEvent *event) override
 
bool orderByEnabled() const
Returns whether custom ordering will be applied before features are processed by this renderer.
 
void setPaintEffect(QgsPaintEffect *effect)
Sets the current paint effect for the renderer.
 
void setOrderBy(const QgsFeatureRequest::OrderBy &orderBy)
Define the order in which features shall be processed by this renderer.
 
QgsMessageBar * messageBar() const
Returns the message bar associated with the widget.
 
QgsPaintEffect * paintEffect() const
Returns the current paint effect for the renderer.
 
void setContext(const QgsSymbolWidgetContext &context)
Sets the context in which the dialog is shown, e.g., the associated map canvas and expression context...
 
QgsRendererAbstractMetadata * rendererMetadata(const QString &rendererName)
Returns the metadata for a specified renderer.
 
void setOpacity(double opacity)
Sets the opacity for the vector layer, where opacity is a value between 0 (totally transparent) and 1...
 
QgsMapCanvas * mMapCanvas
 
void setFeatureBlendMode(QPainter::CompositionMode blendMode)
Sets the blending mode used for rendering each feature.
 
QgsFeatureRenderer * renderer()
Returns renderer.
 
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...