25#include "moc_qgslayoutchartseriesdetailswidget.cpp"
27using namespace Qt::StringLiterals;
31 , mVectorLayer( layer )
33 , mYAxisOnly( yAxisOnly )
39 mXExpressionWidget->setVisible(
false );
40 xExpressionLabel->setVisible(
false );
45 mXExpressionWidget->setLayer( mVectorLayer.data() );
46 mYExpressionWidget->setLayer( mVectorLayer.data() );
49 mXExpressionWidget->setExpression( seriesDetails.
xExpression() );
50 mXExpressionWidget->registerExpressionContextGenerator(
this );
51 mYExpressionWidget->setExpression( seriesDetails.
yExpression() );
52 mYExpressionWidget->registerExpressionContextGenerator(
this );
61 connect( mFilterLineEdit, &QLineEdit::textChanged,
this, [
this] { emit
widgetChanged(); } );
62 connect( mFilterButton, &QToolButton::clicked,
this, &QgsLayoutChartSeriesDetailsWidget::mFilterButton_clicked );
72 return mXExpressionWidget->asExpression();
77 return mYExpressionWidget->asExpression();
82 return mFilterLineEdit->text();
85void QgsLayoutChartSeriesDetailsWidget::mFilterButton_clicked()
91 QgsExpressionBuilderDialog expressionBuilderDialog( mVectorLayer.data(), mFilterLineEdit->text(),
this, u
"generic"_s, context );
93 expressionBuilderDialog.setWindowTitle( tr(
"Expression Based Filter" ) );
95 if ( expressionBuilderDialog.exec() == QDialog::Accepted )
97 const QString expression = expressionBuilderDialog.expressionText();
98 if ( !expression.isEmpty() )
100 mFilterLineEdit->setText( expression );
107 mExpressionContextGenerator = generator;
113 if ( mExpressionContextGenerator )
115 context = mExpressionContextGenerator->createExpressionContext();
A generic dialog for building expression strings.
Abstract interface for generating an expression context.
static QgsExpressionContextScope * globalScope()
Creates a new scope which contains variables and functions relating to the global QGIS context.
Expression contexts are used to encapsulate the parameters around which a QgsExpression should be eva...
void appendScope(QgsExpressionContextScope *scope)
Appends a scope to the end of the context.
Chart series details covering all supported series types.
QString yExpression() const
Returns the expression used to generate Y-axis values.
QString filterExpression() const
Returns the filter expression used to generate a series against a subset of the source layer.
QString xExpression() const
Returns the expression used to generate X-axis values.
Represents a vector layer which manages a vector based dataset.