From e4d3da2eca0d8bae947b448379f31c86ded80e13 Mon Sep 17 00:00:00 2001 From: Luigi Pirelli Date: Wed, 8 Feb 2017 12:37:42 +0100 Subject: [PATCH] moved node value parsing to ogc filter parsing --- src/core/qgsogcutils.cpp | 10 ++++++++++ src/core/symbology-ng/qgssymbollayerv2utils.cpp | 8 -------- 2 files changed, 10 insertions(+), 8 deletions(-) diff --git a/src/core/qgsogcutils.cpp b/src/core/qgsogcutils.cpp index fce0bc98e326..06ad0cc092b3 100644 --- a/src/core/qgsogcutils.cpp +++ b/src/core/qgsogcutils.cpp @@ -1599,6 +1599,16 @@ QgsExpression* QgsOgcUtils::expressionFromOgcFilter( const QDomElement& element if ( element.isNull() || !element.hasChildNodes() ) return nullptr; + // check if it is a single string value => no DomElement + if ( element.firstChild().nodeType() == QDomNode::TextNode ) + { + QgsExpression *expr = new QgsExpression( element.firstChild().nodeValue() ); + expr->d->mParserErrorString = QString(); + return expr; + } + + // now parse OGC operators. OGC operator does not have a only text value + // but only sub element operators QgsExpression *expr = new QgsExpression(); QDomElement childElem = element.firstChildElement(); diff --git a/src/core/symbology-ng/qgssymbollayerv2utils.cpp b/src/core/symbology-ng/qgssymbollayerv2utils.cpp index 0b9293dc4467..31b8d844f044 100644 --- a/src/core/symbology-ng/qgssymbollayerv2utils.cpp +++ b/src/core/symbology-ng/qgssymbollayerv2utils.cpp @@ -2593,14 +2593,6 @@ bool QgsSymbolLayerV2Utils::functionFromSldElement( QDomElement &element, QStrin return false; } - // check if it is a single string value - if ( elem.hasChildNodes() && - elem.firstChild().nodeType() == QDomNode::TextNode ) - { - function = elem.firstChild().nodeValue(); - return true; - } - // parse ogc:Filter QgsExpression *expr = QgsOgcUtils::expressionFromOgcFilter( elem ); if ( !expr )