34#include "moc_qgsdiagramwidget.cpp"
36using namespace Qt::StringLiterals;
58 connect( mEngineSettingsButton, &QAbstractButton::clicked,
this, &QgsDiagramWidget::showEngineConfigDialog );
60 connect( mDiagramTypeComboBox,
static_cast<void ( QComboBox::* )(
int )
>( &QComboBox::currentIndexChanged ),
this, &QgsDiagramWidget::mDiagramTypeComboBox_currentIndexChanged );
63 mEngineSettingsButton->setIconSize( QSize( iconSize16, iconSize16 ) );
68 const Mode mode =
static_cast<Mode
>( mDiagramTypeComboBox->currentData().toInt() );
89 mLayer->setDiagramRenderer(
nullptr );
92 mLayer->setDiagramLayerSettings( dls );
96 mLayer->triggerRepaint();
108 whileBlocking( mDiagramTypeComboBox )->setCurrentIndex( -1 );
117 mDiagramTypeComboBox->setCurrentIndex( ModeStacked );
124 mDiagramTypeComboBox->setCurrentIndex( ModePie );
128 mDiagramTypeComboBox->setCurrentIndex( ModeText );
132 mDiagramTypeComboBox->setCurrentIndex( ModeStackedBar );
137 mDiagramTypeComboBox->setCurrentIndex( ModeHistogram );
143 mDiagramTypeComboBox->setCurrentIndex( ModeNone );
147void QgsDiagramWidget::mDiagramTypeComboBox_currentIndexChanged(
int index )
150 mStackedWidget->removeWidget( mWidget );
158 const Mode mode =
static_cast<Mode
>( mDiagramTypeComboBox->currentData().toInt() );
168 singleWidget->layout()->setContentsMargins( 0, 0, 0, 0 );
172 if ( mode == ModePie )
174 else if ( mode == ModeText )
176 else if ( mode == ModeHistogram )
178 else if ( mode == ModeStackedBar )
185 mWidget = singleWidget;
186 mStackedWidget->addWidget( mWidget );
187 mStackedWidget->setCurrentWidget( mWidget );
192 QgsStackedDiagramProperties *stackedWidget =
new QgsStackedDiagramProperties( mLayer,
this, mCanvas );
197 mWidget = stackedWidget;
198 mStackedWidget->addWidget( mWidget );
199 mStackedWidget->setCurrentWidget( mWidget );
208void QgsDiagramWidget::showEngineConfigDialog()
213 QgsLabelEngineConfigWidget *widget =
new QgsLabelEngineConfigWidget( mCanvas );
219 QgsLabelEngineConfigDialog dialog( mCanvas,
this );
static QIcon getThemeIcon(const QString &name, const QColor &fillColor=QColor(), const QColor &strokeColor=QColor())
Helper to get a theme icon.
Stores the settings for rendering of all diagrams for a layer.
A widget which configures diagrams for a vector layer.
void setDockMode(bool dockMode) override
Sets the widget in dock mode.
void syncToLayer()
Updates the widget to reflect the layer's current diagram settings.
void setDiagramType(const QString diagramType)
Defines the widget's diagram type and lets it know it should hide the type comboBox.
void auxiliaryFieldCreated()
Evaluates and returns the diagram settings relating to a diagram for a specific feature.
virtual QString rendererName() const =0
QgsDiagram * diagram() const
virtual QString diagramName() const =0
Gets a descriptive name for this diagram type.
static const QString DIAGRAM_NAME_HISTOGRAM
Map canvas is a class for displaying all GIS data types on a canvas.
static const QString DIAGRAM_NAME_PIE
static QgsProject * instance()
Returns the QgsProject singleton instance.
void setDirty(bool b=true)
Flag the project as dirty (modified).
static const QString DIAGRAM_NAME_STACKED_BAR
A widget for editing sub diagrams.
static const QString DIAGRAM_RENDERER_NAME_STACKED
static const QString DIAGRAM_NAME_TEXT
Represents a vector layer which manages a vector based dataset.
int scaleIconSize(int standardSize)
Scales an icon size to compensate for display pixel density, making the icon size hi-dpi friendly,...
QgsSignalBlocker< Object > whileBlocking(Object *object)
Temporarily blocks signals from a QObject while calling a single method from the object.