29 mPreviewLabel->clear();
30 mFeaturePickerWidget->setShowBrowserButtons(
true );
33 connect( mPreviewLabel, &QLabel::linkActivated,
this, &QgsExpressionPreviewWidget::linkActivated );
39 mFeaturePickerWidget->setLayer( layer );
44 mExpressionText = expression;
69 mUseGeomCalculator =
true;
74 mExpressionContext = context;
77 void QgsExpressionPreviewWidget::refreshPreview()
81 if ( mExpressionText.isEmpty() )
83 mPreviewLabel->clear();
84 mPreviewLabel->setStyleSheet( QString() );
85 setExpressionToolTip( QString() );
93 if ( mUseGeomCalculator )
100 QVariant value = mExpression.
evaluate( &mExpressionContext );
111 tooltip = QStringLiteral(
"<b>%1:</b>"
112 "%2" ).arg( tr(
"Parser Errors" ), errorString );
115 tooltip += QStringLiteral(
"<b>%1:</b> %2" ).arg( tr(
"Eval Error" ), mExpression.
evalErrorString() );
117 mPreviewLabel->setText( tr(
"Expression is invalid <a href=""more"">(more info)</a>" ) );
118 mPreviewLabel->setStyleSheet( QStringLiteral(
"color: rgba(255, 6, 10, 255);" ) );
119 setExpressionToolTip( tooltip );
126 mPreviewLabel->setStyleSheet( QString() );
127 setExpressionToolTip( QString() );
129 setParserError(
false );
130 setEvalError(
false );
135 void QgsExpressionPreviewWidget::linkActivated(
const QString & )
137 QgsMessageViewer mv(
this, QgsGuiUtils::ModalDialogFlags,
false );
138 mv.setWindowTitle( tr(
"More Info on Expression Error" ) );
139 mv.setMessageAsHtml( mToolTip );
143 void QgsExpressionPreviewWidget::setExpressionToolTip(
const QString &toolTip )
145 if ( toolTip == mToolTip )
149 mPreviewLabel->setToolTip( mToolTip );
153 void QgsExpressionPreviewWidget::setParserError(
bool parserError )
166 void QgsExpressionPreviewWidget::setEvalError(
bool evalError )