Skip to content

Commit 3200062

Browse files
committed
[BUGFIX] The way layer's shortname is write in QGIS project and used in QGIS Server
1 parent e6bb623 commit 3200062

File tree

2 files changed

+26
-15
lines changed

2 files changed

+26
-15
lines changed

src/core/qgsmaplayer.cpp

+25-14
Original file line numberDiff line numberDiff line change
@@ -69,6 +69,9 @@ QgsMapLayer::QgsMapLayer( QgsMapLayer::LayerType type,
6969
mLayerName = capitaliseLayerName( mLayerOrigName );
7070
QgsDebugMsg( "display name: '" + mLayerName + '\'' );
7171

72+
mShortName = "";
73+
//mShortName.replace( QRegExp( "[\\W]" ), "_" );
74+
7275
// Generate the unique ID of this layer
7376
QDateTime dt = QDateTime::currentDateTime();
7477
mID = lyrname + dt.toString( "yyyyMMddhhmmsszzz" );
@@ -653,26 +656,34 @@ bool QgsMapLayer::writeLayerXML( QDomElement& layerElement, QDomDocument& docume
653656
QDomElement layerName = document.createElement( "layername" );
654657
QDomText layerNameText = document.createTextNode( originalName() );
655658
layerName.appendChild( layerNameText );
659+
layerElement.appendChild( layerName );
656660

657661
// layer short name
658-
QDomElement layerShortName = document.createElement( "shortname" );
659-
QDomText layerShortNameText = document.createTextNode( shortName() );
660-
layerShortName.appendChild( layerShortNameText );
662+
if ( !mShortName.isEmpty() )
663+
{
664+
QDomElement layerShortName = document.createElement( "shortname" );
665+
QDomText layerShortNameText = document.createTextNode( mShortName );
666+
layerShortName.appendChild( layerShortNameText );
667+
layerElement.appendChild( layerShortName );
668+
}
661669

662670
// layer title
663-
QDomElement layerTitle = document.createElement( "title" );
664-
QDomText layerTitleText = document.createTextNode( title() );
665-
layerTitle.appendChild( layerTitleText );
671+
if ( !mTitle.isEmpty() )
672+
{
673+
QDomElement layerTitle = document.createElement( "title" );
674+
QDomText layerTitleText = document.createTextNode( mTitle );
675+
layerTitle.appendChild( layerTitleText );
676+
layerElement.appendChild( layerTitle );
677+
}
666678

667679
// layer abstract
668-
QDomElement layerAbstract = document.createElement( "abstract" );
669-
QDomText layerAbstractText = document.createTextNode( abstract() );
670-
layerAbstract.appendChild( layerAbstractText );
671-
672-
layerElement.appendChild( layerName );
673-
layerElement.appendChild( layerShortName );
674-
layerElement.appendChild( layerTitle );
675-
layerElement.appendChild( layerAbstract );
680+
if ( !mAbstract.isEmpty() )
681+
{
682+
QDomElement layerAbstract = document.createElement( "abstract" );
683+
QDomText layerAbstractText = document.createTextNode( mAbstract );
684+
layerAbstract.appendChild( layerAbstractText );
685+
layerElement.appendChild( layerAbstract );
686+
}
676687

677688
// layer keyword list
678689
QStringList keywordStringList = keywordList().split( ',' );

src/server/qgsserverprojectparser.cpp

+1-1
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ QgsServerProjectParser::QgsServerProjectParser( QDomDocument* xmlDoc, const QStr
5050
currentElement = layerNodeList.at( i ).toElement();
5151
mProjectLayerElements.push_back( currentElement );
5252
QString lName = layerShortName( currentElement );
53-
if ( lName.isNull() )
53+
if ( lName.isEmpty() )
5454
lName = layerName( currentElement );
5555
mProjectLayerElementsByName.insert( lName, currentElement );
5656
mProjectLayerElementsById.insert( layerId( currentElement ), currentElement );

0 commit comments

Comments
 (0)