bool QgsDataDefined::prepareExpression( QgsVectorLayer* layer ) { if ( layer ) { return prepareExpression( layer->fields() ); } else { //preparing expression without a layer set, so pass empty field list QgsFields empty; return prepareExpression( empty ); } }
bool QgsDataDefined::prepareExpression( QgsVectorLayer* layer ) { if ( layer ) { return prepareExpression( QgsExpressionContextUtils::createFeatureBasedContext( QgsFeature(), layer->fields() ) ); } else { //preparing expression without a layer set, so pass empty context QgsExpressionContext empty; return prepareExpression( empty ); } }
std::string EXParser::evaluate(std::string _expression) { steps.clear(); //clear previous solve steps findAndReplaceVariables(_expression, this->variables); try{ prepareExpression(_expression); priorityLoop(_expression); //main calculation loop } catch(EXError &error){ steps.push_back(EXSolveStep(error.first, "stopped_evaluation")); return error.first; } return _expression; }
std::string EXParser::evaluate(std::string _expression) { steps.clear(); //clear previous solve steps findAndReplaceVariables(_expression, this->variables); prepareExpression(_expression); if(!priorityLoop(_expression)) //main calculation loop return mErrorStr; return _expression; }
QStringList QgsDataDefined::referencedColumns( QgsVectorLayer* layer ) { if ( !mExprRefColmuns.isEmpty() ) { return mExprRefColmuns; } if ( mUseExpression ) { if ( !mExpression || !mExpressionPrepared ) { prepareExpression( layer ); } } else if ( !mField.isEmpty() ) { mExprRefColmuns << mField; } return mExprRefColmuns; }
QStringList QgsDataDefined::referencedColumns( const QgsFields &fields ) { if ( !d->exprRefColumns.isEmpty() ) { return d->exprRefColumns; } d.detach(); if ( d->useExpression ) { if ( !d->expression || !d->expressionPrepared ) { prepareExpression( fields ); } } else if ( !d->field.isEmpty() ) { d->exprRefColumns << d->field; } return d->exprRefColumns; }
bool QgsDataDefined::prepareExpression( const QgsFields &fields ) { return prepareExpression( QgsExpressionContextUtils::createFeatureBasedContext( QgsFeature(), fields ) ); }