111 Q_DECL_DEPRECATED
void loadFieldsAndValues(
const QMap<QString, QStringList> &fieldValues )
SIP_DEPRECATED;
120 QString expressionText();
123 void setExpressionText(
const QString &expression );
130 QString expectedOutputFormat();
138 void setExpectedOutputFormat(
const QString &expected );
156 bool isExpressionValid();
173 void setCustomPreviewGenerator(
const QString &label,
const QList<QPair<QString, QVariant>> &choices,
const std::function<
QgsExpressionContext(
const QVariant & )> &previewContextGenerator );
189 void setCustomPreviewGenerator(
const QString &label,
const QList<QPair<QString, QVariant>> &choices, SIP_PYCALLABLE );
192 Py_BEGIN_ALLOW_THREADS
193 sipCpp->setCustomPreviewGenerator( *a0, *a1, [a2](
const QVariant &value ) ->
QgsExpressionContext {
196 PyObject *s = sipCallMethod( NULL, a2,
"D", &value, sipType_QVariant, NULL );
200 if ( sipIsError == 0 )
204 sipReleaseType( t1, sipType_QgsExpressionContext, state );
219 Q_DECL_DEPRECATED
void saveToRecent(
const QString &collection =
"generic" )
SIP_DEPRECATED;
226 Q_DECL_DEPRECATED
void loadRecent( const QString &collection = QStringLiteral(
"generic" ) )
SIP_DEPRECATED;
232 QgsExpressionTreeView *expressionTree() const;
246 Q_DECL_DEPRECATED
void saveToUserExpressions( const QString &label, const QString &expression, const QString &helpText )
SIP_DEPRECATED;
253 Q_DECL_DEPRECATED
void removeFromUserExpressions( const QString &label )
SIP_DEPRECATED;
258 void newFunctionFile( const QString &fileName =
"scratch" );
263 void saveFunctionFile( QString fileName );
268 void loadCodeFromFile( QString path );
275 void loadCodeFromProjectFunctions();
280 void loadFunctionCode( const QString &code );
285 void updateFunctionFileList( const QString &path );
293 void saveProjectFunctionsEntry();
306 QgsProject *project();
313 void setProject( QgsProject *project );
320 bool evalError() const;
327 bool parserError() const;
334 void setExpressionPreviewVisible(
bool isVisible );
343 void loadSampleValues();
350 void loadAllValues();
359 void loadSampleUsedValues();
368 void loadAllUsedValues();
388 void storeCurrentUserExpression();
395 void removeSelectedUserExpression();
402 void editSelectedUserExpression();
409 const QList<QgsExpressionItem *> findExpressions(
const QString &label );
413 void indicatorClicked(
int line,
int index, Qt::KeyboardModifiers state );
414 void onExpressionParsed(
bool state );
416 void operatorButtonClicked();
417 void commentLinesClicked();
418 void btnRun_pressed();
419 void btnNewFile_pressed();
420 void btnRemoveFile_pressed();
427 void exportUserExpressions_pressed();
434 void importUserExpressions_pressed();
435 void cmbFileNames_currentItemChanged( QListWidgetItem *item, QListWidgetItem *lastitem );
436 void insertExpressionText(
const QString &text );
437 void txtExpressionString_textChanged();
438 void txtSearchEditValues_textChanged();
439 void mValuesListView_doubleClicked(
const QModelIndex &index );
440 void txtPython_textChanged();
467 void showEvent( QShowEvent *e )
override;
475 , mExpressionBuilderWidget( expressionBuilderWidget ) {}
483 int FUNCTION_MARKER_ID = 25;
485 void createErrorMarkers(
const QList<QgsExpression::ParserError> &errors );
486 void createMarkers(
const QgsExpressionNode *node );
487 void clearFunctionMarkers();
489 void runPythonCode(
const QString &code );
490 void displayTemporaryLabel(
const QString &text );
491 QgsVectorLayer *contextLayer(
const QgsExpressionItem *item )
const;
492 void fillFieldValues(
const QString &fieldName, QgsVectorLayer *layer,
int countLimit,
bool forceUsedValues =
false );
493 QString getFunctionHelp( QgsExpressionFunction *function );
494 QString loadFunctionHelp( QgsExpressionItem *functionName );
495 QString helpStylesheet()
const;
498 void expressionContextUpdated();
503 std::unique_ptr<QStandardItemModel> mValuesModel;
504 std::unique_ptr<QSortFilterProxyModel> mProxyValues;
506 ExpressionTreeMenuProvider *mExpressionTreeMenuProvider =
nullptr;
508 bool mAutoSave =
true;
509 QString mFunctionsPath;
510 QgsVectorLayer *mLayer =
nullptr;
511 bool mExpressionValid =
false;
512 QgsExpressionContext mExpressionContext;
513 QPointer<QgsProject> mProject;
516 QString mUserExpressionsGroupName;
518 QgsCodeEditorExpression *txtExpressionString =
nullptr;
Expression contexts are used to encapsulate the parameters around which a QgsExpression should be eva...