110 Q_DECL_DEPRECATED
void loadFieldsAndValues(
const QMap<QString, QStringList> &fieldValues )
SIP_DEPRECATED;
119 QString expressionText();
122 void setExpressionText(
const QString &expression );
129 QString expectedOutputFormat();
137 void setExpectedOutputFormat(
const QString &expected );
155 bool isExpressionValid();
172 void setCustomPreviewGenerator(
const QString &label,
const QList<QPair<QString, QVariant>> &choices,
const std::function<
QgsExpressionContext(
const QVariant & )> &previewContextGenerator );
188 void setCustomPreviewGenerator(
const QString &label,
const QList<QPair<QString, QVariant>> &choices, SIP_PYCALLABLE );
191 Py_BEGIN_ALLOW_THREADS
192 sipCpp->setCustomPreviewGenerator( *a0, *a1, [a2](
const QVariant &value ) ->
QgsExpressionContext {
195 PyObject *s = sipCallMethod( NULL, a2,
"D", &value, sipType_QVariant, NULL );
199 if ( sipIsError == 0 )
203 sipReleaseType( t1, sipType_QgsExpressionContext, state );
218 Q_DECL_DEPRECATED
void saveToRecent(
const QString &collection =
"generic" )
SIP_DEPRECATED;
225 Q_DECL_DEPRECATED
void loadRecent( const QString &collection = QStringLiteral(
"generic" ) )
SIP_DEPRECATED;
231 QgsExpressionTreeView *expressionTree() const;
245 Q_DECL_DEPRECATED
void saveToUserExpressions( const QString &label, const QString &expression, const QString &helpText )
SIP_DEPRECATED;
252 Q_DECL_DEPRECATED
void removeFromUserExpressions( const QString &label )
SIP_DEPRECATED;
257 void newFunctionFile( const QString &fileName =
"scratch" );
262 void saveFunctionFile( QString fileName );
267 void loadCodeFromFile( QString path );
274 void loadCodeFromProjectFunctions();
279 void loadFunctionCode( const QString &code );
284 void updateFunctionFileList( const QString &path );
292 void saveProjectFunctionsEntry();
305 QgsProject *project();
312 void setProject( QgsProject *project );
319 bool evalError() const;
326 bool parserError() const;
333 void setExpressionPreviewVisible(
bool isVisible );
342 void loadSampleValues();
349 void loadAllValues();
358 void loadSampleUsedValues();
367 void loadAllUsedValues();
387 void storeCurrentUserExpression();
394 void removeSelectedUserExpression();
401 void editSelectedUserExpression();
408 const QList<QgsExpressionItem *> findExpressions(
const QString &label );
412 void indicatorClicked(
int line,
int index, Qt::KeyboardModifiers state );
413 void onExpressionParsed(
bool state );
415 void operatorButtonClicked();
416 void commentLinesClicked();
417 void btnRun_pressed();
418 void btnNewFile_pressed();
419 void btnRemoveFile_pressed();
426 void exportUserExpressions_pressed();
433 void importUserExpressions_pressed();
434 void cmbFileNames_currentItemChanged( QListWidgetItem *item, QListWidgetItem *lastitem );
435 void insertExpressionText(
const QString &text );
436 void txtExpressionString_textChanged();
437 void txtSearchEditValues_textChanged();
438 void mValuesListView_doubleClicked(
const QModelIndex &index );
439 void txtPython_textChanged();
466 void showEvent( QShowEvent *e )
override;
474 , mExpressionBuilderWidget( expressionBuilderWidget ) {}
482 int FUNCTION_MARKER_ID = 25;
484 void createErrorMarkers(
const QList<QgsExpression::ParserError> &errors );
485 void createMarkers(
const QgsExpressionNode *node );
486 void clearFunctionMarkers();
488 void runPythonCode(
const QString &code );
489 void displayTemporaryLabel(
const QString &text );
490 QgsVectorLayer *contextLayer(
const QgsExpressionItem *item )
const;
491 void fillFieldValues(
const QString &fieldName, QgsVectorLayer *layer,
int countLimit,
bool forceUsedValues =
false );
492 QString getFunctionHelp( QgsExpressionFunction *function );
493 QString loadFunctionHelp( QgsExpressionItem *functionName );
494 QString helpStylesheet()
const;
497 void expressionContextUpdated();
502 std::unique_ptr<QStandardItemModel> mValuesModel;
503 std::unique_ptr<QSortFilterProxyModel> mProxyValues;
505 ExpressionTreeMenuProvider *mExpressionTreeMenuProvider =
nullptr;
507 bool mAutoSave =
true;
508 QString mFunctionsPath;
509 QgsVectorLayer *mLayer =
nullptr;
510 bool mExpressionValid =
false;
511 QgsExpressionContext mExpressionContext;
512 QPointer<QgsProject> mProject;
515 QString mUserExpressionsGroupName;
517 QgsCodeEditorExpression *txtExpressionString =
nullptr;
Expression contexts are used to encapsulate the parameters around which a QgsExpression should be eva...