QgsVectorLayerSimpleLabeling *QgsVectorLayerSimpleLabeling::create( const QDomElement &element, const QgsReadWriteContext &context ) { QDomElement settingsElem = element.firstChildElement( QStringLiteral( "settings" ) ); if ( !settingsElem.isNull() ) { QgsPalLayerSettings settings; settings.readXml( settingsElem, context ); return new QgsVectorLayerSimpleLabeling( settings ); } return new QgsVectorLayerSimpleLabeling( QgsPalLayerSettings() ); }
QgsRuleBasedLabeling::Rule*QgsRuleBasedLabeling::Rule::create( const QDomElement& ruleElem ) { QgsPalLayerSettings* settings = nullptr; QDomElement settingsElem = ruleElem.firstChildElement( "settings" ); if ( !settingsElem.isNull() ) { settings = new QgsPalLayerSettings; settings->readXml( settingsElem ); } QString filterExp = ruleElem.attribute( "filter" ); QString description = ruleElem.attribute( "description" ); int scaleMinDenom = ruleElem.attribute( "scalemindenom", "0" ).toInt(); int scaleMaxDenom = ruleElem.attribute( "scalemaxdenom", "0" ).toInt(); //QString ruleKey = ruleElem.attribute( "key" ); Rule* rule = new Rule( settings, scaleMinDenom, scaleMaxDenom, filterExp, description ); //if ( !ruleKey.isEmpty() ) // rule->mRuleKey = ruleKey; rule->setActive( ruleElem.attribute( "active", "1" ).toInt() ); QDomElement childRuleElem = ruleElem.firstChildElement( "rule" ); while ( !childRuleElem.isNull() ) { Rule* childRule = create( childRuleElem ); if ( childRule ) { rule->appendChild( childRule ); } else { //QgsDebugMsg( "failed to init a child rule!" ); } childRuleElem = childRuleElem.nextSiblingElement( "rule" ); } return rule; }