From 29de20016a58d3f58aa526ec2b1af320520a4d90 Mon Sep 17 00:00:00 2001 From: Marco Hugentobler Date: Sun, 18 May 2014 06:39:17 +0200 Subject: [PATCH] Fix getLegendGraphic --- src/mapserver/qgsserverprojectparser.cpp | 7 ++++++- src/mapserver/qgswmsprojectparser.cpp | 21 ++++++++++++++------- 2 files changed, 20 insertions(+), 8 deletions(-) diff --git a/src/mapserver/qgsserverprojectparser.cpp b/src/mapserver/qgsserverprojectparser.cpp index 77be251f6685..5d2feb55e025 100644 --- a/src/mapserver/qgsserverprojectparser.cpp +++ b/src/mapserver/qgsserverprojectparser.cpp @@ -946,7 +946,12 @@ QDomElement QgsServerProjectParser::firstComposerLegendElement() const { return QDomElement(); } - return composerElem.firstChildElement( "ComposerLegend" ); + QDomElement compositionElem = composerElem.firstChildElement( "Composition" ); + if ( compositionElem.isNull() ) + { + return QDomElement(); + } + return compositionElem.firstChildElement( "ComposerLegend" ); } QList QgsServerProjectParser::publishedComposerElements() const diff --git a/src/mapserver/qgswmsprojectparser.cpp b/src/mapserver/qgswmsprojectparser.cpp index cc4c7b77c4e7..23d9a4e360a6 100644 --- a/src/mapserver/qgswmsprojectparser.cpp +++ b/src/mapserver/qgswmsprojectparser.cpp @@ -257,37 +257,44 @@ QStringList QgsWMSProjectParser::wfsLayerNames() const double QgsWMSProjectParser::legendBoxSpace() const { - return mProjectParser.firstComposerLegendElement().attribute( "boxSpace" ).toDouble(); + QDomElement legendElem = mProjectParser.firstComposerLegendElement(); + return legendElem.isNull() ? 2.0 : legendElem.attribute( "boxSpace" ).toDouble(); } double QgsWMSProjectParser::legendLayerSpace() const { - return mProjectParser.firstComposerLegendElement().attribute( "layerSpace" ).toDouble(); + QDomElement legendElem = mProjectParser.firstComposerLegendElement(); + return legendElem.isNull() ? 3.0 : legendElem.attribute( "layerSpace" ).toDouble(); } double QgsWMSProjectParser::legendLayerTitleSpace() const { - return mProjectParser.firstComposerLegendElement().attribute( "layerTitleSpace" ).toDouble(); + QDomElement legendElem = mProjectParser.firstComposerLegendElement(); + return legendElem.isNull() ? 3.0 : legendElem.attribute( "layerTitleSpace" ).toDouble(); } double QgsWMSProjectParser::legendSymbolSpace() const { - return mProjectParser.firstComposerLegendElement().attribute( "symbolSpace" ).toDouble(); + QDomElement legendElem = mProjectParser.firstComposerLegendElement(); + return legendElem.isNull() ? 2.0 : legendElem.attribute( "symbolSpace" ).toDouble(); } double QgsWMSProjectParser::legendIconLabelSpace() const { - return mProjectParser.firstComposerLegendElement().attribute( "iconLabelSpace" ).toDouble(); + QDomElement legendElem = mProjectParser.firstComposerLegendElement(); + return legendElem.isNull() ? 2.0 : legendElem.attribute( "iconLabelSpace" ).toDouble(); } double QgsWMSProjectParser::legendSymbolWidth() const { - return mProjectParser.firstComposerLegendElement().attribute( "symbolWidth" ).toDouble(); + QDomElement legendElem = mProjectParser.firstComposerLegendElement(); + return legendElem.isNull() ? 7.0 : legendElem.attribute( "symbolWidth" ).toDouble(); } double QgsWMSProjectParser::legendSymbolHeight() const { - return mProjectParser.firstComposerLegendElement().attribute( "symbolHeight" ).toDouble(); + QDomElement legendElem = mProjectParser.firstComposerLegendElement(); + return legendElem.isNull() ? 4.0 : legendElem.attribute( "symbolHeight" ).toDouble(); } const QFont& QgsWMSProjectParser::legendLayerFont() const