32#include "moc_qgsdiagramwidget.cpp"
51 mDiagramTypeComboBox->addItem(
QgsApplication::getThemeIcon( QStringLiteral(
"stacked-bar.svg" ) ), tr(
"Stacked Bars" ), ModeStackedBar );
52 mDiagramTypeComboBox->addItem(
QgsApplication::getThemeIcon( QStringLiteral(
"stacked-diagram.svg" ) ), tr(
"Stacked Diagram" ), ModeStacked );
54 connect( mEngineSettingsButton, &QAbstractButton::clicked,
this, &QgsDiagramWidget::showEngineConfigDialog );
56 connect( mDiagramTypeComboBox,
static_cast<void ( QComboBox::* )(
int )
>( &QComboBox::currentIndexChanged ),
this, &QgsDiagramWidget::mDiagramTypeComboBox_currentIndexChanged );
59 mEngineSettingsButton->setIconSize( QSize( iconSize16, iconSize16 ) );
64 const Mode mode =
static_cast<Mode
>( mDiagramTypeComboBox->currentData().toInt() );
85 mLayer->setDiagramRenderer(
nullptr );
88 mLayer->setDiagramLayerSettings( dls );
92 mLayer->triggerRepaint();
104 whileBlocking( mDiagramTypeComboBox )->setCurrentIndex( -1 );
113 mDiagramTypeComboBox->setCurrentIndex( ModeStacked );
120 mDiagramTypeComboBox->setCurrentIndex( ModePie );
124 mDiagramTypeComboBox->setCurrentIndex( ModeText );
128 mDiagramTypeComboBox->setCurrentIndex( ModeStackedBar );
133 mDiagramTypeComboBox->setCurrentIndex( ModeHistogram );
139 mDiagramTypeComboBox->setCurrentIndex( ModeNone );
143void QgsDiagramWidget::mDiagramTypeComboBox_currentIndexChanged(
int index )
146 mStackedWidget->removeWidget( mWidget );
154 const Mode mode =
static_cast<Mode
>( mDiagramTypeComboBox->currentData().toInt() );
164 singleWidget->layout()->setContentsMargins( 0, 0, 0, 0 );
168 if ( mode == ModePie )
170 else if ( mode == ModeText )
172 else if ( mode == ModeHistogram )
174 else if ( mode == ModeStackedBar )
181 mWidget = singleWidget;
182 mStackedWidget->addWidget( mWidget );
183 mStackedWidget->setCurrentWidget( mWidget );
188 QgsStackedDiagramProperties *stackedWidget =
new QgsStackedDiagramProperties( mLayer,
this, mCanvas );
193 mWidget = stackedWidget;
194 mStackedWidget->addWidget( mWidget );
195 mStackedWidget->setCurrentWidget( mWidget );
204void QgsDiagramWidget::showEngineConfigDialog()
209 QgsLabelEngineConfigWidget *widget =
new QgsLabelEngineConfigWidget( mCanvas );
215 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.