59 LoadUserExpressions = 1 << 2,
60 LoadAll = LoadRecent | LoadUserExpressions,
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;
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 );
292 void saveProjectFunctionsEntry();
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();
379 void setAutoSave(
bool enabled ) { mAutoSave = enabled; }
385 void storeCurrentUserExpression();
392 void removeSelectedUserExpression();
399 void editSelectedUserExpression();
406 const QList<QgsExpressionItem *> findExpressions(
const QString &label );
410 void indicatorClicked(
int line,
int index, Qt::KeyboardModifiers state );
411 void onExpressionParsed(
bool state );
413 void operatorButtonClicked();
414 void btnRun_pressed();
415 void btnNewFile_pressed();
416 void btnRemoveFile_pressed();
423 void exportUserExpressions_pressed();
430 void importUserExpressions_pressed();
431 void cmbFileNames_currentItemChanged( QListWidgetItem *item, QListWidgetItem *lastitem );
432 void insertExpressionText(
const QString &text );
433 void txtExpressionString_textChanged();
434 void txtSearchEditValues_textChanged();
435 void mValuesListView_doubleClicked(
const QModelIndex &index );
436 void txtPython_textChanged();
463 void showEvent( QShowEvent *e )
override;
471 , mExpressionBuilderWidget( expressionBuilderWidget ) {}
479 int FUNCTION_MARKER_ID = 25;
481 void createErrorMarkers(
const QList<QgsExpression::ParserError> &errors );
483 void clearFunctionMarkers();
485 void runPythonCode(
const QString &code );
487 void fillFieldValues(
const QString &fieldName,
QgsVectorLayer *layer,
int countLimit,
bool forceUsedValues =
false );
490 QString helpStylesheet()
const;
493 void expressionContextUpdated();
498 std::unique_ptr<QStandardItemModel> mValuesModel;
499 std::unique_ptr<QSortFilterProxyModel> mProxyValues;
501 ExpressionTreeMenuProvider *mExpressionTreeMenuProvider =
nullptr;
503 bool mAutoSave =
true;
504 QString mFunctionsPath;
506 bool mExpressionValid =
false;
508 QPointer<QgsProject> mProject;
511 QString mUserExpressionsGroupName;
Expression contexts are used to encapsulate the parameters around which a QgsExpression should be eva...