Add method to retrieve highlighted variable list from QgsExpressionContext

This commit is contained in:
Nyall Dawson 2019-04-07 12:38:27 +10:00
parent 702804f6f9
commit ee51551baa
4 changed files with 25 additions and 0 deletions

View File

@ -448,6 +448,15 @@ variable.
.. seealso:: :py:func:`setHighlightedVariables` .. seealso:: :py:func:`setHighlightedVariables`
.. seealso:: :py:func:`isHighlightedFunction` .. seealso:: :py:func:`isHighlightedFunction`
%End
QStringList highlightedVariables() const;
%Docstring
Returns the current list of variables highlighted within the context.
.. seealso:: :py:func:`setHighlightedVariables`
.. versionadded:: 3.8
%End %End
void setHighlightedVariables( const QStringList &variableNames ); void setHighlightedVariables( const QStringList &variableNames );

View File

@ -318,6 +318,11 @@ bool QgsExpressionContext::isHighlightedVariable( const QString &name ) const
return mHighlightedVariables.contains( name ); return mHighlightedVariables.contains( name );
} }
QStringList QgsExpressionContext::highlightedVariables() const
{
return mHighlightedVariables;
}
void QgsExpressionContext::setHighlightedVariables( const QStringList &variableNames ) void QgsExpressionContext::setHighlightedVariables( const QStringList &variableNames )
{ {
mHighlightedVariables = variableNames; mHighlightedVariables = variableNames;

View File

@ -429,6 +429,14 @@ class CORE_EXPORT QgsExpressionContext
*/ */
bool isHighlightedVariable( const QString &name ) const; bool isHighlightedVariable( const QString &name ) const;
/**
* Returns the current list of variables highlighted within the context.
*
* \see setHighlightedVariables()
* \since QGIS 3.8
*/
QStringList highlightedVariables() const;
/** /**
* Sets the list of variable names within the context intended to be highlighted to the user. This * Sets the list of variable names within the context intended to be highlighted to the user. This
* is used by the expression builder to more prominently display these variables. * is used by the expression builder to more prominently display these variables.

View File

@ -551,12 +551,14 @@ void TestQgsExpressionContext::highlighted()
QgsExpressionContext context; QgsExpressionContext context;
QVERIFY( !context.isHighlightedFunction( QStringLiteral( "x" ) ) ); QVERIFY( !context.isHighlightedFunction( QStringLiteral( "x" ) ) );
QVERIFY( !context.isHighlightedVariable( QStringLiteral( "x" ) ) ); QVERIFY( !context.isHighlightedVariable( QStringLiteral( "x" ) ) );
QVERIFY( context.highlightedVariables().isEmpty() );
context.setHighlightedFunctions( QStringList() << QStringLiteral( "x" ) << QStringLiteral( "y" ) ); context.setHighlightedFunctions( QStringList() << QStringLiteral( "x" ) << QStringLiteral( "y" ) );
QVERIFY( context.isHighlightedFunction( QStringLiteral( "x" ) ) ); QVERIFY( context.isHighlightedFunction( QStringLiteral( "x" ) ) );
QVERIFY( context.isHighlightedFunction( QStringLiteral( "y" ) ) ); QVERIFY( context.isHighlightedFunction( QStringLiteral( "y" ) ) );
QVERIFY( !context.isHighlightedFunction( QStringLiteral( "z" ) ) ); QVERIFY( !context.isHighlightedFunction( QStringLiteral( "z" ) ) );
QVERIFY( !context.isHighlightedVariable( QStringLiteral( "x" ) ) ); QVERIFY( !context.isHighlightedVariable( QStringLiteral( "x" ) ) );
context.setHighlightedVariables( QStringList() << QStringLiteral( "a" ) << QStringLiteral( "b" ) ); context.setHighlightedVariables( QStringList() << QStringLiteral( "a" ) << QStringLiteral( "b" ) );
QCOMPARE( context.highlightedVariables(), QStringList() << QStringLiteral( "a" ) << QStringLiteral( "b" ) );
QVERIFY( context.isHighlightedVariable( QStringLiteral( "a" ) ) ); QVERIFY( context.isHighlightedVariable( QStringLiteral( "a" ) ) );
QVERIFY( context.isHighlightedVariable( QStringLiteral( "b" ) ) ); QVERIFY( context.isHighlightedVariable( QStringLiteral( "b" ) ) );
QVERIFY( !context.isHighlightedVariable( QStringLiteral( "c" ) ) ); QVERIFY( !context.isHighlightedVariable( QStringLiteral( "c" ) ) );
@ -565,6 +567,7 @@ void TestQgsExpressionContext::highlighted()
context.setHighlightedVariables( QStringList() ); context.setHighlightedVariables( QStringList() );
QVERIFY( !context.isHighlightedFunction( QStringLiteral( "x" ) ) ); QVERIFY( !context.isHighlightedFunction( QStringLiteral( "x" ) ) );
QVERIFY( !context.isHighlightedVariable( QStringLiteral( "a" ) ) ); QVERIFY( !context.isHighlightedVariable( QStringLiteral( "a" ) ) );
QVERIFY( context.highlightedVariables().isEmpty() );
} }
void TestQgsExpressionContext::globalScope() void TestQgsExpressionContext::globalScope()