@@ -79,6 +79,10 @@ QgsExpressionBuilderWidget::QgsExpressionBuilderWidget( QWidget *parent )
79
79
registerItem ( tr ( " Operators" ), " AND" , " AND " );
80
80
registerItem ( tr ( " Operators" ), " NOT" , " NOT " );
81
81
82
+ QString casestring = " CASE WHEN condition THEN result END" ;
83
+ QString caseelsestring = " CASE WHEN condition THEN result ELSE result END" ;
84
+ registerItem ( tr ( " Conditionals" ), " CASE" , casestring );
85
+ registerItem ( tr ( " Conditionals" ), " CASE ELSE" , caseelsestring );
82
86
83
87
// Load the functions from the QgsExpression class
84
88
int count = QgsExpression::functionCount ();
@@ -380,9 +384,9 @@ void QgsExpressionBuilderWidget::setExpressionState( bool state )
380
384
mExpressionValid = state;
381
385
}
382
386
383
- QString QgsExpressionBuilderWidget::loadFunctionHelp ( QgsExpressionItem* functionName )
387
+ QString QgsExpressionBuilderWidget::loadFunctionHelp ( QgsExpressionItem* expressionItem )
384
388
{
385
- if ( functionName == NULL )
389
+ if ( expressionItem == NULL )
386
390
return " " ;
387
391
388
392
// set up the path to the help file
@@ -410,9 +414,9 @@ QString QgsExpressionBuilderWidget::loadFunctionHelp( QgsExpressionItem* functio
410
414
lang = " en_US" ;
411
415
}
412
416
413
- QString name = functionName ->text ();
417
+ QString name = expressionItem ->text ();
414
418
415
- if ( functionName ->getItemType () == QgsExpressionItem::Field )
419
+ if ( expressionItem ->getItemType () == QgsExpressionItem::Field )
416
420
name = " Field" ;
417
421
418
422
QString fullHelpPath = helpFilesPath + name + " -" + lang;
@@ -434,7 +438,7 @@ QString QgsExpressionBuilderWidget::loadFunctionHelp( QgsExpressionItem* functio
434
438
missingError += tr ( " It was neither available in your language (%1) nor English." ).arg ( lang );
435
439
436
440
// try en_US next
437
- fullHelpPath = helpFilesPath + functionName-> text () + " -en_US" ;
441
+ fullHelpPath = helpFilesPath + name + " -en_US" ;
438
442
file.setFileName ( fullHelpPath );
439
443
}
440
444
}
@@ -449,11 +453,7 @@ QString QgsExpressionBuilderWidget::loadFunctionHelp( QgsExpressionItem* functio
449
453
{
450
454
QTextStream in ( &file );
451
455
in.setCodec ( " UTF-8" ); // Help files must be in Utf-8
452
- while ( !in.atEnd () )
453
- {
454
- QString line = in.readLine ();
455
- helpContents += line;
456
- }
456
+ helpContents = in.readAll ();
457
457
}
458
458
459
459
file.close ();
0 commit comments