Skip to content

Commit 2019d63

Browse files
author
jef
committedAug 27, 2010
add lower/upper support to search string (fixes #2970)
git-svn-id: http://svn.osgeo.org/qgis/trunk/qgis@14154 c8812cc2-4d05-0410-92ff-de0c093fc19c

File tree

3 files changed

+12
-1
lines changed

3 files changed

+12
-1
lines changed
 

‎src/core/qgssearchstringlexer.ll

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -91,6 +91,8 @@ string "'"{str_char}*"'"
9191
"to int" { yylval.op = QgsSearchTreeNode::opTOINT; return FUNCTION;}
9292
"to real" { yylval.op = QgsSearchTreeNode::opTOREAL; return FUNCTION;}
9393
"to string" { yylval.op = QgsSearchTreeNode::opTOSTRING; return FUNCTION;}
94+
"lower" { yylval.op = QgsSearchTreeNode::opLOWER; return FUNCTION;}
95+
"upper" { yylval.op = QgsSearchTreeNode::opUPPER; return FUNCTION;}
9496
9597
"||" { return CONCAT; }
9698

‎src/core/qgssearchtreenode.cpp

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -192,7 +192,8 @@ QString QgsSearchTreeNode::makeSearchString()
192192
{
193193
if ( mOp == opSQRT || mOp == opSIN || mOp == opCOS || mOp == opTAN ||
194194
mOp == opASIN || mOp == opACOS || mOp == opATAN ||
195-
mOp == opTOINT || mOp == opTOREAL || mOp == opTOSTRING )
195+
mOp == opTOINT || mOp == opTOREAL || mOp == opTOSTRING ||
196+
mOp == opLOWER || mOp == opUPPER )
196197
{
197198
// functions
198199
switch ( mOp )
@@ -207,6 +208,8 @@ QString QgsSearchTreeNode::makeSearchString()
207208
case opTOINT: str += "to int"; break;
208209
case opTOREAL: str += "to real"; break;
209210
case opTOSTRING: str += "to string"; break;
211+
case opLOWER: str += "lower"; break;
212+
case opUPPER: str += "upper"; break;
210213
default: str += "?";
211214
}
212215
// currently all functions take one parameter
@@ -672,6 +675,10 @@ QgsSearchTreeValue QgsSearchTreeNode::valueAgainst( const QgsFieldMap& fields, c
672675
return QgsSearchTreeValue( val1 );
673676
case opTOSTRING:
674677
return QgsSearchTreeValue( QString::number( val1 ) );
678+
case opLOWER:
679+
return QgsSearchTreeValue( value1.string().toLower() );
680+
case opUPPER:
681+
return QgsSearchTreeValue( value1.string().toUpper() );
675682
}
676683
}
677684

‎src/core/qgssearchtreenode.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -96,6 +96,8 @@ class CORE_EXPORT QgsSearchTreeNode
9696

9797
// string handling
9898
opCONCAT,
99+
opLOWER,
100+
opUPPER,
99101

100102
opROWNUM
101103
};

0 commit comments

Comments
 (0)
Please sign in to comment.