29 mFormatNumbersCheckBox->setTristate(
false );
31 mFontButton->setShowNullFormat(
true );
32 mFontButton->setNoFormatString( tr(
"Clear Formatting" ) );
34 mBackgroundColorButton->setAllowOpacity(
true );
35 mBackgroundColorButton->setColorDialogTitle( tr(
"Background Color" ) );
36 mBackgroundColorButton->setDefaultColor( QColor( 255, 255, 255 ) );
37 mBackgroundColorButton->setShowNull(
true );
39 mHorizontalAlignComboBox->setAvailableAlignments( Qt::AlignLeft | Qt::AlignHCenter | Qt::AlignRight | Qt::AlignJustify );
40 mVerticalAlignComboBox->setAvailableAlignments( Qt::AlignTop | Qt::AlignVCenter | Qt::AlignBottom );
42 mRowHeightSpinBox->setClearValue( 0, tr(
"Automatic" ) );
43 mColumnWidthSpinBox->setClearValue( 0, tr(
"Automatic" ) );
56 connect( mFormatNumbersCheckBox, &QCheckBox::stateChanged,
this, [ = ](
int state )
58 mCustomizeFormatButton->setEnabled( state == Qt::Checked );
59 if ( state != Qt::PartiallyChecked )
60 mFormatNumbersCheckBox->setTristate(
false );
71 mCustomizeFormatButton->setEnabled(
false );
72 connect( mCustomizeFormatButton, &QPushButton::clicked,
this, [ = ]
75 widget->
setFormat( mNumericFormat.get() );
79 mNumericFormat.reset( widget->
format() );
85 connect( mRowHeightSpinBox, qOverload<double>( &QDoubleSpinBox::valueChanged ),
this, [ = ](
double height )
92 mRowHeightSpinBox->setClearValue( 0, tr(
"Automatic" ) );
96 connect( mColumnWidthSpinBox, qOverload<double>( &QDoubleSpinBox::valueChanged ),
this, [ = ](
double width )
103 mColumnWidthSpinBox->setClearValue( 0, tr(
"Automatic" ) );
110 if ( !mBlockSignals )
118 if ( !mBlockSignals )
126 if ( !mBlockSignals )
132 mExpressionEdit->setAllowEmptyFieldName(
true );
134 mExpressionEdit->registerExpressionContextGenerator(
this );
135 mFontButton->registerExpressionContextGenerator(
this );
140 if ( !mNumericFormat || mFormatNumbersCheckBox->checkState() != Qt::Checked )
143 return mNumericFormat->clone();
148 return mFontButton->textFormat();
154 mBackgroundColorButton->setColor( color );
160 mNumericFormat.reset( format ? format->
clone() : nullptr );
162 mFormatNumbersCheckBox->setTristate( isMixedFormat );
163 mFormatNumbersCheckBox->setCheckState( isMixedFormat ? Qt::PartiallyChecked : ( mNumericFormat.get() ? Qt::Checked : Qt::Unchecked ) );
170 mFontButton->setTextFormat( format );
178 mRowHeightSpinBox->setClearValue( 0, tr(
"Mixed" ) );
180 mRowHeightSpinBox->setClearValue( 0, tr(
"Automatic" ) );
181 mRowHeightSpinBox->setValue( height < 0 ? 0 : height );
189 mColumnWidthSpinBox->setClearValue( 0, tr(
"Mixed" ) );
191 mColumnWidthSpinBox->setClearValue( 0, tr(
"Automatic" ) );
192 mColumnWidthSpinBox->setValue( width < 0 ? 0 : width );
199 if ( alignment & Qt::AlignHorizontal_Mask && alignment & Qt::AlignVertical_Mask )
200 mHorizontalAlignComboBox->setCurrentIndex( -1 );
202 mHorizontalAlignComboBox->setCurrentAlignment( alignment );
209 if ( alignment & Qt::AlignHorizontal_Mask && alignment & Qt::AlignVertical_Mask )
210 mVerticalAlignComboBox->setCurrentIndex( -1 );
212 mVerticalAlignComboBox->setCurrentAlignment( alignment );
220 mExpressionEdit->setExpression( QString() );
222 mExpressionEdit->setExpression( property.
asExpression() );
228 mExpressionEdit->setLayer( layer );
233 mContextGenerator = generator;
239 if ( mContextGenerator )
244 cellScope->
setVariable( QStringLiteral(
"row_number" ), 0 );
245 cellScope->
setVariable( QStringLiteral(
"column_number" ), 0 );
248 context.
setHighlightedVariables( QStringList() << QStringLiteral(
"row_number" ) << QStringLiteral(
"column_number" ) );
void changed()
Emitted when the alignment is changed.
Abstract interface for generating an expression context.
virtual QgsExpressionContext createExpressionContext() const =0
This method needs to be reimplemented in all classes which implement this interface and return an exp...
Single scope for storing variables and functions for use within a QgsExpressionContext.
void setVariable(const QString &name, const QVariant &value, bool isStatic=false)
Convenience method for setting a variable in the context scope by name name and value.
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.
void setHighlightedVariables(const QStringList &variableNames)
Sets the list of variable names within the context intended to be highlighted to the user.
Base class for all map layer types.
A store for object properties.
QString asExpression() const
Returns an expression string representing the state of the property, or an empty string if the proper...
static QgsProperty fromExpression(const QString &expression, bool isActive=true)
Returns a new ExpressionBasedProperty created from the specified expression.
bool isActive() const
Returns whether the property is currently active.
Container for all settings relating to text rendering.