113 Q_DECL_DEPRECATED
void loadFieldsAndValues(
const QMap<QString, QStringList> &fieldValues )
SIP_DEPRECATED;
122 QString expressionText();
125 void setExpressionText(
const QString &expression );
132 QString expectedOutputFormat();
140 void setExpectedOutputFormat(
const QString &expected );
158 bool isExpressionValid();
175 void setCustomPreviewGenerator(
const QString &label,
const QList<QPair<QString, QVariant>> &choices,
const std::function<
QgsExpressionContext(
const QVariant & )> &previewContextGenerator );
191 void setCustomPreviewGenerator(
const QString &label,
const QList<QPair<QString, QVariant>> &choices, SIP_PYCALLABLE );
194 Py_BEGIN_ALLOW_THREADS
195 sipCpp->setCustomPreviewGenerator( *a0, *a1, [a2](
const QVariant &value ) ->
QgsExpressionContext {
198 PyObject *s = sipCallMethod( NULL, a2,
"D", &value, sipType_QVariant, NULL );
202 if ( sipIsError == 0 )
206 sipReleaseType( t1, sipType_QgsExpressionContext, state );
221 Q_DECL_DEPRECATED
void saveToRecent(
const QString &collection =
"generic" )
SIP_DEPRECATED;
228 Q_DECL_DEPRECATED
void loadRecent( const QString &collection = u
"generic"_s )
SIP_DEPRECATED;
234 QgsExpressionTreeView *expressionTree() const;
248 Q_DECL_DEPRECATED
void saveToUserExpressions( const QString &label, const QString &expression, const QString &helpText )
SIP_DEPRECATED;
255 Q_DECL_DEPRECATED
void removeFromUserExpressions( const QString &label )
SIP_DEPRECATED;
260 void newFunctionFile( const QString &fileName =
"scratch" );
265 void saveFunctionFile( QString fileName );
270 void loadCodeFromFile( QString path );
277 void loadCodeFromProjectFunctions();
282 void loadFunctionCode( const QString &code );
287 void updateFunctionFileList( const QString &path );
295 void saveProjectFunctionsEntry();
308 QgsProject *project();
315 void setProject( QgsProject *project );
322 bool evalError() const;
329 bool parserError() const;
336 void setExpressionPreviewVisible(
bool isVisible );
345 void loadSampleValues();
352 void loadAllValues();
361 void loadSampleUsedValues();
370 void loadAllUsedValues();
390 void storeCurrentUserExpression();
397 void removeSelectedUserExpression();
404 void editSelectedUserExpression();
411 const QList<QgsExpressionItem *> findExpressions(
const QString &label );
415 void indicatorClicked(
int line,
int index, Qt::KeyboardModifiers state );
416 void onExpressionParsed(
bool state );
418 void operatorButtonClicked();
419 void commentLinesClicked();
420 void btnRun_pressed();
421 void btnNewFile_pressed();
422 void btnRemoveFile_pressed();
429 void exportUserExpressions_pressed();
436 void importUserExpressions_pressed();
437 void cmbFileNames_currentItemChanged( QListWidgetItem *item, QListWidgetItem *lastitem );
438 void insertExpressionText(
const QString &text );
439 void txtExpressionString_textChanged();
440 void txtSearchEditValues_textChanged();
441 void mValuesListView_doubleClicked(
const QModelIndex &index );
442 void txtPython_textChanged();
469 void showEvent( QShowEvent *e )
override;
477 , mExpressionBuilderWidget( expressionBuilderWidget ) {}
485 int FUNCTION_MARKER_ID = 25;
487 void createErrorMarkers(
const QList<QgsExpression::ParserError> &errors );
488 void createMarkers(
const QgsExpressionNode *node );
489 void clearFunctionMarkers();
491 void runPythonCode(
const QString &code );
492 void displayTemporaryLabel(
const QString &text );
493 QgsVectorLayer *contextLayer(
const QgsExpressionItem *item )
const;
494 void fillFieldValues(
const QString &fieldName, QgsVectorLayer *layer,
int countLimit,
bool forceUsedValues =
false );
495 QString getFunctionHelp( QgsExpressionFunction *function );
496 QString loadFunctionHelp( QgsExpressionItem *functionName );
497 QString helpStylesheet()
const;
500 void expressionContextUpdated();
505 std::unique_ptr<QStandardItemModel> mValuesModel;
506 std::unique_ptr<QSortFilterProxyModel> mProxyValues;
508 ExpressionTreeMenuProvider *mExpressionTreeMenuProvider =
nullptr;
510 bool mAutoSave =
true;
511 QString mFunctionsPath;
512 QgsVectorLayer *mLayer =
nullptr;
513 bool mExpressionValid =
false;
514 QgsExpressionContext mExpressionContext;
515 QPointer<QgsProject> mProject;
518 QString mUserExpressionsGroupName;
520 QgsCodeEditorExpression *txtExpressionString =
nullptr;
Expression contexts are used to encapsulate the parameters around which a QgsExpression should be eva...