@@ -1385,10 +1385,6 @@ bool QgsVectorLayer::readXml( const QDomNode& layer_node )
1385
1385
return false ;
1386
1386
}
1387
1387
1388
- QDomElement mapLayerNode = layer_node.toElement ();
1389
- if ( mapLayerNode.attribute ( QStringLiteral ( " readOnly" ), QStringLiteral ( " 0" ) ).toInt () == 1 )
1390
- mReadOnly = true ;
1391
-
1392
1388
QDomElement pkeyElem = pkeyNode.toElement ();
1393
1389
if ( !pkeyElem.isNull () )
1394
1390
{
@@ -1418,79 +1414,11 @@ bool QgsVectorLayer::readXml( const QDomNode& layer_node )
1418
1414
1419
1415
readStyleManager ( layer_node );
1420
1416
1421
- // default expressions
1422
- mDefaultExpressionMap .clear ();
1423
- QDomNode defaultsNode = layer_node.namedItem ( QStringLiteral ( " defaults" ) );
1424
- if ( !defaultsNode.isNull () )
1425
- {
1426
- QDomNodeList defaultNodeList = defaultsNode.toElement ().elementsByTagName ( QStringLiteral ( " default" ) );
1427
- for ( int i = 0 ; i < defaultNodeList.size (); ++i )
1428
- {
1429
- QDomElement defaultElem = defaultNodeList.at ( i ).toElement ();
1430
-
1431
- QString field = defaultElem.attribute ( QStringLiteral ( " field" ), QString () );
1432
- QString expression = defaultElem.attribute ( QStringLiteral ( " expression" ), QString () );
1433
- if ( field.isEmpty () || expression.isEmpty () )
1434
- continue ;
1435
-
1436
- mDefaultExpressionMap .insert ( field, expression );
1437
- }
1438
- }
1439
-
1440
- // constraints
1441
- mFieldConstraints .clear ();
1442
- mFieldConstraintStrength .clear ();
1443
- QDomNode constraintsNode = layer_node.namedItem ( " constraints" );
1444
- if ( !constraintsNode.isNull () )
1445
- {
1446
- QDomNodeList constraintNodeList = constraintsNode.toElement ().elementsByTagName ( " constraint" );
1447
- for ( int i = 0 ; i < constraintNodeList.size (); ++i )
1448
- {
1449
- QDomElement constraintElem = constraintNodeList.at ( i ).toElement ();
1450
-
1451
- QString field = constraintElem.attribute ( " field" , QString () );
1452
- int constraints = constraintElem.attribute ( " constraints" , QString ( " 0" ) ).toInt ();
1453
- if ( field.isEmpty () || constraints == 0 )
1454
- continue ;
1455
-
1456
- mFieldConstraints .insert ( field, static_cast < QgsFieldConstraints::Constraints >( constraints ) );
1457
-
1458
- int uniqueStrength = constraintElem.attribute ( " unique_strength" , QString ( " 1" ) ).toInt ();
1459
- int notNullStrength = constraintElem.attribute ( " notnull_strength" , QString ( " 1" ) ).toInt ();
1460
- int expStrength = constraintElem.attribute ( " exp_strength" , QString ( " 1" ) ).toInt ();
1461
-
1462
- mFieldConstraintStrength .insert ( qMakePair ( field, QgsFieldConstraints::ConstraintUnique ), static_cast < QgsFieldConstraints::ConstraintStrength >( uniqueStrength ) );
1463
- mFieldConstraintStrength .insert ( qMakePair ( field, QgsFieldConstraints::ConstraintNotNull ), static_cast < QgsFieldConstraints::ConstraintStrength >( notNullStrength ) );
1464
- mFieldConstraintStrength .insert ( qMakePair ( field, QgsFieldConstraints::ConstraintExpression ), static_cast < QgsFieldConstraints::ConstraintStrength >( expStrength ) );
1465
- }
1466
- }
1467
- mFieldConstraintExpressions .clear ();
1468
- QDomNode constraintExpressionsNode = layer_node.namedItem ( " constraintExpressions" );
1469
- if ( !constraintExpressionsNode.isNull () )
1470
- {
1471
- QDomNodeList constraintNodeList = constraintExpressionsNode.toElement ().elementsByTagName ( " constraint" );
1472
- for ( int i = 0 ; i < constraintNodeList.size (); ++i )
1473
- {
1474
- QDomElement constraintElem = constraintNodeList.at ( i ).toElement ();
1475
-
1476
- QString field = constraintElem.attribute ( " field" , QString () );
1477
- QString exp = constraintElem.attribute ( " exp" , QString () );
1478
- QString desc = constraintElem.attribute ( " desc" , QString () );
1479
- if ( field.isEmpty () || exp.isEmpty () )
1480
- continue ;
1481
-
1482
- mFieldConstraintExpressions .insert ( field, qMakePair ( exp, desc ) );
1483
- }
1484
- }
1485
-
1486
- updateFields ();
1487
-
1488
1417
QDomNode depsNode = layer_node.namedItem ( QStringLiteral ( " dataDependencies" ) );
1489
1418
QDomNodeList depsNodes = depsNode.childNodes ();
1490
1419
QSet<QgsMapLayerDependency> sources;
1491
1420
for ( int i = 0 ; i < depsNodes.count (); i++ )
1492
1421
{
1493
- QDomNode node = depsNodes.at ( i );
1494
1422
QString source = depsNodes.at ( i ).toElement ().attribute ( QStringLiteral ( " id" ) );
1495
1423
sources << QgsMapLayerDependency ( source );
1496
1424
}
@@ -1678,44 +1606,6 @@ bool QgsVectorLayer::writeXml( QDomNode & layer_node,
1678
1606
}
1679
1607
layer_node.appendChild ( dependenciesElement );
1680
1608
1681
- // default expressions
1682
- QDomElement defaultsElem = document.createElement ( QStringLiteral ( " defaults" ) );
1683
- Q_FOREACH ( const QgsField& field, mFields )
1684
- {
1685
- QDomElement defaultElem = document.createElement ( QStringLiteral ( " default" ) );
1686
- defaultElem.setAttribute ( QStringLiteral ( " field" ), field.name () );
1687
- defaultElem.setAttribute ( QStringLiteral ( " expression" ), field.defaultValueExpression () );
1688
- defaultsElem.appendChild ( defaultElem );
1689
- }
1690
- layer_node.appendChild ( defaultsElem );
1691
-
1692
- // constraints
1693
- QDomElement constraintsElem = document.createElement ( " constraints" );
1694
- Q_FOREACH ( const QgsField& field, mFields )
1695
- {
1696
- QDomElement constraintElem = document.createElement ( " constraint" );
1697
- constraintElem.setAttribute ( " field" , field.name () );
1698
- constraintElem.setAttribute ( " constraints" , field.constraints ().constraints () );
1699
- constraintElem.setAttribute ( " unique_strength" , field.constraints ().constraintStrength ( QgsFieldConstraints::ConstraintUnique ) );
1700
- constraintElem.setAttribute ( " notnull_strength" , field.constraints ().constraintStrength ( QgsFieldConstraints::ConstraintNotNull ) );
1701
- constraintElem.setAttribute ( " exp_strength" , field.constraints ().constraintStrength ( QgsFieldConstraints::ConstraintExpression ) );
1702
- constraintsElem.appendChild ( constraintElem );
1703
- }
1704
- layer_node.appendChild ( constraintsElem );
1705
-
1706
- // constraint expressions
1707
- QDomElement constraintExpressionsElem = document.createElement ( " constraintExpressions" );
1708
- Q_FOREACH ( const QgsField& field, mFields )
1709
- {
1710
- QDomElement constraintExpressionElem = document.createElement ( " constraint" );
1711
- constraintExpressionElem.setAttribute ( " field" , field.name () );
1712
- constraintExpressionElem.setAttribute ( " exp" , field.constraints ().constraintExpression () );
1713
- constraintExpressionElem.setAttribute ( " desc" , field.constraints ().constraintDescription () );
1714
- constraintExpressionsElem.appendChild ( constraintExpressionElem );
1715
- }
1716
- layer_node.appendChild ( constraintExpressionsElem );
1717
-
1718
-
1719
1609
// change dependencies
1720
1610
QDomElement dataDependenciesElement = document.createElement ( QStringLiteral ( " dataDependencies" ) );
1721
1611
Q_FOREACH ( const QgsMapLayerDependency& dep, dependencies () )
@@ -1804,6 +1694,72 @@ bool QgsVectorLayer::readSymbology( const QDomNode& layerNode, QString& errorMes
1804
1694
mAttributeAliasMap .insert ( field, aliasElem.attribute ( QStringLiteral ( " name" ) ) );
1805
1695
}
1806
1696
}
1697
+
1698
+ // default expressions
1699
+ mDefaultExpressionMap .clear ();
1700
+ QDomNode defaultsNode = layerNode.namedItem ( QStringLiteral ( " defaults" ) );
1701
+ if ( !defaultsNode.isNull () )
1702
+ {
1703
+ QDomNodeList defaultNodeList = defaultsNode.toElement ().elementsByTagName ( QStringLiteral ( " default" ) );
1704
+ for ( int i = 0 ; i < defaultNodeList.size (); ++i )
1705
+ {
1706
+ QDomElement defaultElem = defaultNodeList.at ( i ).toElement ();
1707
+
1708
+ QString field = defaultElem.attribute ( QStringLiteral ( " field" ), QString () );
1709
+ QString expression = defaultElem.attribute ( QStringLiteral ( " expression" ), QString () );
1710
+ if ( field.isEmpty () || expression.isEmpty () )
1711
+ continue ;
1712
+
1713
+ mDefaultExpressionMap .insert ( field, expression );
1714
+ }
1715
+ }
1716
+
1717
+ // constraints
1718
+ mFieldConstraints .clear ();
1719
+ mFieldConstraintStrength .clear ();
1720
+ QDomNode constraintsNode = layerNode.namedItem ( " constraints" );
1721
+ if ( !constraintsNode.isNull () )
1722
+ {
1723
+ QDomNodeList constraintNodeList = constraintsNode.toElement ().elementsByTagName ( " constraint" );
1724
+ for ( int i = 0 ; i < constraintNodeList.size (); ++i )
1725
+ {
1726
+ QDomElement constraintElem = constraintNodeList.at ( i ).toElement ();
1727
+
1728
+ QString field = constraintElem.attribute ( " field" , QString () );
1729
+ int constraints = constraintElem.attribute ( " constraints" , QString ( " 0" ) ).toInt ();
1730
+ if ( field.isEmpty () || constraints == 0 )
1731
+ continue ;
1732
+
1733
+ mFieldConstraints .insert ( field, static_cast < QgsFieldConstraints::Constraints >( constraints ) );
1734
+
1735
+ int uniqueStrength = constraintElem.attribute ( " unique_strength" , QString ( " 1" ) ).toInt ();
1736
+ int notNullStrength = constraintElem.attribute ( " notnull_strength" , QString ( " 1" ) ).toInt ();
1737
+ int expStrength = constraintElem.attribute ( " exp_strength" , QString ( " 1" ) ).toInt ();
1738
+
1739
+ mFieldConstraintStrength .insert ( qMakePair ( field, QgsFieldConstraints::ConstraintUnique ), static_cast < QgsFieldConstraints::ConstraintStrength >( uniqueStrength ) );
1740
+ mFieldConstraintStrength .insert ( qMakePair ( field, QgsFieldConstraints::ConstraintNotNull ), static_cast < QgsFieldConstraints::ConstraintStrength >( notNullStrength ) );
1741
+ mFieldConstraintStrength .insert ( qMakePair ( field, QgsFieldConstraints::ConstraintExpression ), static_cast < QgsFieldConstraints::ConstraintStrength >( expStrength ) );
1742
+ }
1743
+ }
1744
+ mFieldConstraintExpressions .clear ();
1745
+ QDomNode constraintExpressionsNode = layerNode.namedItem ( " constraintExpressions" );
1746
+ if ( !constraintExpressionsNode.isNull () )
1747
+ {
1748
+ QDomNodeList constraintNodeList = constraintExpressionsNode.toElement ().elementsByTagName ( " constraint" );
1749
+ for ( int i = 0 ; i < constraintNodeList.size (); ++i )
1750
+ {
1751
+ QDomElement constraintElem = constraintNodeList.at ( i ).toElement ();
1752
+
1753
+ QString field = constraintElem.attribute ( " field" , QString () );
1754
+ QString exp = constraintElem.attribute ( " exp" , QString () );
1755
+ QString desc = constraintElem.attribute ( " desc" , QString () );
1756
+ if ( field.isEmpty () || exp.isEmpty () )
1757
+ continue ;
1758
+
1759
+ mFieldConstraintExpressions .insert ( field, qMakePair ( exp, desc ) );
1760
+ }
1761
+ }
1762
+
1807
1763
updateFields ();
1808
1764
1809
1765
// Attributes excluded from WMS and WFS
@@ -1857,6 +1813,10 @@ bool QgsVectorLayer::readSymbology( const QDomNode& layerNode, QString& errorMes
1857
1813
1858
1814
readCustomProperties ( layerNode, QStringLiteral ( " variable" ) );
1859
1815
1816
+ QDomElement mapLayerNode = layerNode.toElement ();
1817
+ if ( mapLayerNode.attribute ( QStringLiteral ( " readOnly" ), QStringLiteral ( " 0" ) ).toInt () == 1 )
1818
+ mReadOnly = true ;
1819
+
1860
1820
return true ;
1861
1821
}
1862
1822
@@ -2041,6 +2001,43 @@ bool QgsVectorLayer::writeSymbology( QDomNode& node, QDomDocument& doc, QString&
2041
2001
}
2042
2002
node.appendChild ( excludeWFSElem );
2043
2003
2004
+ // default expressions
2005
+ QDomElement defaultsElem = doc.createElement ( QStringLiteral ( " defaults" ) );
2006
+ Q_FOREACH ( const QgsField& field, mFields )
2007
+ {
2008
+ QDomElement defaultElem = doc.createElement ( QStringLiteral ( " default" ) );
2009
+ defaultElem.setAttribute ( QStringLiteral ( " field" ), field.name () );
2010
+ defaultElem.setAttribute ( QStringLiteral ( " expression" ), field.defaultValueExpression () );
2011
+ defaultsElem.appendChild ( defaultElem );
2012
+ }
2013
+ node.appendChild ( defaultsElem );
2014
+
2015
+ // constraints
2016
+ QDomElement constraintsElem = doc.createElement ( " constraints" );
2017
+ Q_FOREACH ( const QgsField& field, mFields )
2018
+ {
2019
+ QDomElement constraintElem = doc.createElement ( " constraint" );
2020
+ constraintElem.setAttribute ( " field" , field.name () );
2021
+ constraintElem.setAttribute ( " constraints" , field.constraints ().constraints () );
2022
+ constraintElem.setAttribute ( " unique_strength" , field.constraints ().constraintStrength ( QgsFieldConstraints::ConstraintUnique ) );
2023
+ constraintElem.setAttribute ( " notnull_strength" , field.constraints ().constraintStrength ( QgsFieldConstraints::ConstraintNotNull ) );
2024
+ constraintElem.setAttribute ( " exp_strength" , field.constraints ().constraintStrength ( QgsFieldConstraints::ConstraintExpression ) );
2025
+ constraintsElem.appendChild ( constraintElem );
2026
+ }
2027
+ node.appendChild ( constraintsElem );
2028
+
2029
+ // constraint expressions
2030
+ QDomElement constraintExpressionsElem = doc.createElement ( " constraintExpressions" );
2031
+ Q_FOREACH ( const QgsField& field, mFields )
2032
+ {
2033
+ QDomElement constraintExpressionElem = doc.createElement ( " constraint" );
2034
+ constraintExpressionElem.setAttribute ( " field" , field.name () );
2035
+ constraintExpressionElem.setAttribute ( " exp" , field.constraints ().constraintExpression () );
2036
+ constraintExpressionElem.setAttribute ( " desc" , field.constraints ().constraintDescription () );
2037
+ constraintExpressionsElem.appendChild ( constraintExpressionElem );
2038
+ }
2039
+ node.appendChild ( constraintExpressionsElem );
2040
+
2044
2041
// add attribute actions
2045
2042
mActions ->writeXml ( node );
2046
2043
mAttributeTableConfig .writeXml ( node );
0 commit comments