Skip to content

Commit 43d6042

Browse files
committedJan 7, 2015
Support for reading/writing additional styles for layers
1 parent 19b7281 commit 43d6042

File tree

4 files changed

+36
-1
lines changed

4 files changed

+36
-1
lines changed
 

‎src/core/qgsmaplayer.cpp

Lines changed: 23 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -704,6 +704,28 @@ void QgsMapLayer::writeCustomProperties( QDomNode &layerNode, QDomDocument &doc
704704
mCustomProperties.writeXml( layerNode, doc );
705705
}
706706

707+
void QgsMapLayer::readStyleManager( const QDomNode& layerNode )
708+
{
709+
QDomElement styleMgrElem = layerNode.firstChildElement( "map-layer-style-manager" );
710+
if ( !styleMgrElem.isNull() )
711+
{
712+
enableStyleManager();
713+
styleManager()->readXml( styleMgrElem );
714+
}
715+
else
716+
enableStyleManager( false );
717+
}
718+
719+
void QgsMapLayer::writeStyleManager( QDomNode& layerNode, QDomDocument& doc ) const
720+
{
721+
if ( mStyleManager )
722+
{
723+
QDomElement styleMgrElem = doc.createElement( "map-layer-style-manager" );
724+
mStyleManager->writeXml( styleMgrElem );
725+
layerNode.appendChild( styleMgrElem );
726+
}
727+
}
728+
707729

708730

709731

@@ -1428,7 +1450,7 @@ QgsMapLayerLegend*QgsMapLayer::legend() const
14281450

14291451
void QgsMapLayer::enableStyleManager( bool enable )
14301452
{
1431-
if ( ( enable && mStyleManager ) || ( !enable && !mStyleManager ) )
1453+
if (( enable && mStyleManager ) || ( !enable && !mStyleManager ) )
14321454
return;
14331455

14341456
if ( enable )

‎src/core/qgsmaplayer.h

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -549,6 +549,11 @@ class CORE_EXPORT QgsMapLayer : public QObject
549549
/** Write custom properties to project file. */
550550
void writeCustomProperties( QDomNode & layerNode, QDomDocument & doc ) const;
551551

552+
/** Read style manager's configuration (if any). To be called by subclasses. */
553+
void readStyleManager( const QDomNode& layerNode );
554+
/** Write style manager's configuration (if exists). To be called by subclasses. */
555+
void writeStyleManager( QDomNode& layerNode, QDomDocument& doc ) const;
556+
552557
/** debugging member - invoked when a connect() is made to this object */
553558
void connectNotify( const char * signal );
554559

‎src/core/qgsvectorlayer.cpp

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1328,6 +1328,8 @@ bool QgsVectorLayer::readXml( const QDomNode& layer_node )
13281328
return false;
13291329
}
13301330

1331+
readStyleManager( layer_node );
1332+
13311333
setLegend( QgsMapLayerLegend::defaultVectorLegend( this ) );
13321334

13331335
return mValid; // should be true if read successfully
@@ -1478,6 +1480,8 @@ bool QgsVectorLayer::writeXml( QDomNode & layer_node,
14781480
// save expression fields
14791481
mExpressionFieldBuffer->writeXml( layer_node, document );
14801482

1483+
writeStyleManager( layer_node, document );
1484+
14811485
// renderer specific settings
14821486
QString errorMsg;
14831487
return writeSymbology( layer_node, document, errorMsg );

‎src/core/raster/qgsrasterlayer.cpp

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1435,6 +1435,8 @@ bool QgsRasterLayer::readXml( const QDomNode& layer_node )
14351435
}
14361436
}
14371437

1438+
readStyleManager( layer_node );
1439+
14381440
return res;
14391441
} // QgsRasterLayer::readXml( QDomNode & layer_node )
14401442

@@ -1523,6 +1525,8 @@ bool QgsRasterLayer::writeXml( QDomNode & layer_node,
15231525
layer_node.appendChild( noData );
15241526
}
15251527

1528+
writeStyleManager( layer_node, document );
1529+
15261530
//write out the symbology
15271531
QString errorMsg;
15281532
return writeSymbology( layer_node, document, errorMsg );

0 commit comments

Comments
 (0)
Please sign in to comment.