117 Q_DECL_DEPRECATED
void loadFieldsAndValues(
const QMap<QString, QStringList> &fieldValues )
SIP_DEPRECATED;
126 QString expressionText();
129 void setExpressionText(
const QString &expression );
136 QString expectedOutputFormat();
144 void setExpectedOutputFormat(
const QString &expected );
162 bool isExpressionValid();
179 void setCustomPreviewGenerator(
const QString &label,
const QList<QPair<QString, QVariant>> &choices,
const std::function<
QgsExpressionContext(
const QVariant & )> &previewContextGenerator );
195 void setCustomPreviewGenerator(
const QString &label,
const QList<QPair<QString, QVariant>> &choices, SIP_PYCALLABLE );
198 Py_BEGIN_ALLOW_THREADS sipCpp->setCustomPreviewGenerator( *a0, *a1, [a2](
const QVariant &value ) ->
QgsExpressionContext {
201 PyObject *s = sipCallMethod( NULL, a2,
"D", &value, sipType_QVariant, NULL );
205 if ( sipIsError == 0 )
209 sipReleaseType( t1, sipType_QgsExpressionContext, state );
224 Q_DECL_DEPRECATED
void saveToRecent(
const QString &collection =
"generic" )
SIP_DEPRECATED;
231 Q_DECL_DEPRECATED
void loadRecent( const QString &collection = u
"generic"_s )
SIP_DEPRECATED;
237 QgsExpressionTreeView *expressionTree() const;
251 Q_DECL_DEPRECATED
void saveToUserExpressions( const QString &label, const QString &expression, const QString &helpText )
SIP_DEPRECATED;
258 Q_DECL_DEPRECATED
void removeFromUserExpressions( const QString &label )
SIP_DEPRECATED;
263 void newFunctionFile( const QString &fileName =
"scratch" );
268 void saveFunctionFile( QString fileName );
273 void loadCodeFromFile( QString path );
280 void loadCodeFromProjectFunctions();
285 void loadFunctionCode( const QString &code );
290 void updateFunctionFileList( const QString &path );
298 void saveProjectFunctionsEntry();
311 QgsProject *project();
318 void setProject( QgsProject *project );
325 bool evalError() const;
332 bool parserError() const;
339 void setExpressionPreviewVisible(
bool isVisible );
348 void loadSampleValues();
355 void loadAllValues();
364 void loadSampleUsedValues();
373 void loadAllUsedValues();
393 void storeCurrentUserExpression();
400 void removeSelectedUserExpression();
407 void editSelectedUserExpression();
414 const QList<QgsExpressionItem *> findExpressions(
const QString &label );
418 void indicatorClicked(
int line,
int index, Qt::KeyboardModifiers state );
419 void onExpressionParsed(
bool state );
421 void operatorButtonClicked();
422 void commentLinesClicked();
423 void btnRun_pressed();
424 void btnNewFile_pressed();
425 void btnRemoveFile_pressed();
432 void exportUserExpressions_pressed();
439 void importUserExpressions_pressed();
440 void cmbFileNames_currentItemChanged( QListWidgetItem *item, QListWidgetItem *lastitem );
441 void insertExpressionText(
const QString &text );
442 void txtExpressionString_textChanged();
443 void txtSearchEditValues_textChanged();
444 void mValuesListView_doubleClicked(
const QModelIndex &index );
445 void txtPython_textChanged();
472 void showEvent( QShowEvent *e )
override;
480 , mExpressionBuilderWidget( expressionBuilderWidget )
489 int FUNCTION_MARKER_ID = 25;
491 void createErrorMarkers(
const QList<QgsExpression::ParserError> &errors );
492 void createMarkers(
const QgsExpressionNode *node );
493 void clearFunctionMarkers();
495 void runPythonCode(
const QString &code );
496 void displayTemporaryLabel(
const QString &text );
497 QgsVectorLayer *contextLayer(
const QgsExpressionItem *item )
const;
498 void fillFieldValues(
const QString &fieldName, QgsVectorLayer *layer,
int countLimit,
bool forceUsedValues =
false );
499 QString getFunctionHelp( QgsExpressionFunction *function );
500 QString loadFunctionHelp( QgsExpressionItem *functionName );
501 QString helpStylesheet()
const;
504 void expressionContextUpdated();
509 std::unique_ptr<QStandardItemModel> mValuesModel;
510 std::unique_ptr<QSortFilterProxyModel> mProxyValues;
512 ExpressionTreeMenuProvider *mExpressionTreeMenuProvider =
nullptr;
514 bool mAutoSave =
true;
515 QString mFunctionsPath;
516 QgsVectorLayer *mLayer =
nullptr;
517 bool mExpressionValid =
false;
518 QgsExpressionContext mExpressionContext;
519 QPointer<QgsProject> mProject;
522 QString mUserExpressionsGroupName;
524 QgsCodeEditorExpression *txtExpressionString =
nullptr;
Expression contexts are used to encapsulate the parameters around which a QgsExpression should be eva...