Skip to content
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.

Commit 8912a59

Browse files
signedavgithub-actions[bot]
authored andcommittedMar 20, 2023
make operator name and expression more dynamic. E.g. '[ ]' value has no leading and tailing space.
1 parent 140d9c3 commit 8912a59

File tree

1 file changed

+28
-26
lines changed

1 file changed

+28
-26
lines changed
 

‎src/gui/qgsexpressiontreeview.cpp

Lines changed: 28 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -258,34 +258,36 @@ void QgsExpressionTreeView::updateFunctionTree()
258258
mModel->clear();
259259
mExpressionGroups.clear();
260260

261-
static const QStringList operators = QStringList() << QStringLiteral( "+" )
262-
<< QStringLiteral( "-" )
263-
<< QStringLiteral( "*" )
264-
<< QStringLiteral( "/" )
265-
<< QStringLiteral( "%" )
266-
<< QStringLiteral( "^" )
267-
<< QStringLiteral( "=" )
268-
<< QStringLiteral( "~" )
269-
<< QStringLiteral( ">" )
270-
<< QStringLiteral( "<" )
271-
<< QStringLiteral( "<>" )
272-
<< QStringLiteral( "<=" )
273-
<< QStringLiteral( ">=" )
274-
<< QStringLiteral( "[]" )
275-
<< QStringLiteral( "||" )
276-
<< QStringLiteral( "BETWEEN" )
277-
<< QStringLiteral( "NOT BETWEEN" )
278-
<< QStringLiteral( "IN" )
279-
<< QStringLiteral( "LIKE" )
280-
<< QStringLiteral( "ILIKE" )
281-
<< QStringLiteral( "IS" )
282-
<< QStringLiteral( "IS NOT" )
283-
<< QStringLiteral( "OR" )
284-
<< QStringLiteral( "AND" )
285-
<< QStringLiteral( "NOT" );
261+
//list of pairs where the first is the name and the second is the expression value when adding it
262+
static const QList< QPair<QString, QString> > operators = QList< QPair<QString, QString> >()
263+
<< QPair<QString, QString>( QStringLiteral( "+" ), QStringLiteral( " + " ) )
264+
<< QPair<QString, QString>( QStringLiteral( "-" ), QStringLiteral( " - " ) )
265+
<< QPair<QString, QString>( QStringLiteral( "*" ), QStringLiteral( " * " ) )
266+
<< QPair<QString, QString>( QStringLiteral( "/" ), QStringLiteral( " / " ) )
267+
<< QPair<QString, QString>( QStringLiteral( "%" ), QStringLiteral( " % " ) )
268+
<< QPair<QString, QString>( QStringLiteral( "^" ), QStringLiteral( " ^ " ) )
269+
<< QPair<QString, QString>( QStringLiteral( "=" ), QStringLiteral( " = " ) )
270+
<< QPair<QString, QString>( QStringLiteral( "~" ), QStringLiteral( " ~ " ) )
271+
<< QPair<QString, QString>( QStringLiteral( ">" ), QStringLiteral( " > " ) )
272+
<< QPair<QString, QString>( QStringLiteral( "<" ), QStringLiteral( " < " ) )
273+
<< QPair<QString, QString>( QStringLiteral( "<>" ), QStringLiteral( " <> " ) )
274+
<< QPair<QString, QString>( QStringLiteral( "<=" ), QStringLiteral( " <= " ) )
275+
<< QPair<QString, QString>( QStringLiteral( ">=" ), QStringLiteral( " >= " ) )
276+
<< QPair<QString, QString>( QStringLiteral( "[]" ), QStringLiteral( "[ ]" ) )
277+
<< QPair<QString, QString>( QStringLiteral( "||" ), QStringLiteral( " || " ) )
278+
<< QPair<QString, QString>( QStringLiteral( "BETWEEN" ), QStringLiteral( " BETWEEN " ) )
279+
<< QPair<QString, QString>( QStringLiteral( "NOT BETWEEN" ), QStringLiteral( " NOT BETWEEN " ) )
280+
<< QPair<QString, QString>( QStringLiteral( "IN" ), QStringLiteral( " IN " ) )
281+
<< QPair<QString, QString>( QStringLiteral( "LIKE" ), QStringLiteral( " LIKE " ) )
282+
<< QPair<QString, QString>( QStringLiteral( "ILIKE" ), QStringLiteral( " ILIKE " ) )
283+
<< QPair<QString, QString>( QStringLiteral( "IS" ), QStringLiteral( " IS " ) )
284+
<< QPair<QString, QString>( QStringLiteral( "IS NOT" ), QStringLiteral( " IS NOT " ) )
285+
<< QPair<QString, QString>( QStringLiteral( "OR" ), QStringLiteral( " OR " ) )
286+
<< QPair<QString, QString>( QStringLiteral( "AND" ), QStringLiteral( " AND " ) )
287+
<< QPair<QString, QString>( QStringLiteral( "NOT" ), QStringLiteral( " NOT " ) );
286288
for ( const auto &name : operators )
287289
{
288-
registerItem( QStringLiteral( "Operators" ), name, ' ' + name + ' ', QString(), QgsExpressionItem::ExpressionNode, false, -1, QIcon(), QgsExpression::tags( name ) );
290+
registerItem( QStringLiteral( "Operators" ), name.first, name.second, QString(), QgsExpressionItem::ExpressionNode, false, -1, QIcon(), QgsExpression::tags( name.first ) );
289291
}
290292

291293
QString casestring = QStringLiteral( "CASE WHEN condition THEN result END" );

0 commit comments

Comments
 (0)
Please sign in to comment.