Skip to content

Commit

Permalink
Refine qml output for labels with no symbolizer rules
Browse files Browse the repository at this point in the history
  • Loading branch information
mholthausen committed May 18, 2021
1 parent 2872293 commit 057d1c2
Show file tree
Hide file tree
Showing 4 changed files with 32 additions and 28 deletions.
5 changes: 1 addition & 4 deletions data/qmls/no_symbolizer.qml
Original file line number Diff line number Diff line change
@@ -1,7 +1,4 @@
<!DOCTYPE qgis PUBLIC 'http://mrcc.com/qgis.dtd' 'SYSTEM'>
<qgis>
<renderer-v2 type="RuleRenderer">
<rules key="renderer_rules"/>
<symbols/>
</renderer-v2>
<renderer-v2 type="nullSymbol"/>
</qgis>
5 changes: 1 addition & 4 deletions data/qmls/point_label.qml
Original file line number Diff line number Diff line change
@@ -1,9 +1,6 @@
<!DOCTYPE qgis PUBLIC 'http://mrcc.com/qgis.dtd' 'SYSTEM'>
<qgis>
<renderer-v2 type="RuleRenderer">
<rules key="renderer_rules"/>
<symbols/>
</renderer-v2>
<renderer-v2 type="nullSymbol"/>
<labeling type="rule-based">
<rules key="labeling_rules">
<rule key="labeling_rule_0" filter="value > 0.1">
Expand Down
5 changes: 1 addition & 4 deletions data/qmls/text_text_buffer.qml
Original file line number Diff line number Diff line change
@@ -1,9 +1,6 @@
<!DOCTYPE qgis PUBLIC 'http://mrcc.com/qgis.dtd' 'SYSTEM'>
<qgis>
<renderer-v2 type="RuleRenderer">
<rules key="renderer_rules"/>
<symbols/>
</renderer-v2>
<renderer-v2 type="nullSymbol"/>
<labeling type="rule-based">
<rules key="labeling_rules">
<rule key="labeling_rule_0">
Expand Down
45 changes: 29 additions & 16 deletions src/QGISStyleParser.ts
Original file line number Diff line number Diff line change
Expand Up @@ -902,25 +902,38 @@ export class QGISStyleParser implements StyleParser {
const type: string = 'RuleRenderer';
const rules: any[] = [];
const symbols: any[] = this.getQmlSymbolsFromStyle(geoStylerStyle, rules);
return {
qgis: {
$: {},
'renderer-v2': [{
$: {
type
},
rules: [{
if (rules.length > 0 && symbols.length > 0) {
return {
qgis: {
$: {},
'renderer-v2': [{
$: {
key: 'renderer_rules'
type
},
rule: rules
}],
symbols: [{
symbol: symbols
rules: [{
$: {
key: 'renderer_rules'
},
rule: rules
}],
symbols: [{
symbol: symbols
}]
}]
}]
}
};
}
};
} else {
return {
qgis: {
$: {},
'renderer-v2': [{
$: {
type: 'nullSymbol'
}
}]
}
};
}
}

convertTextSymbolizerRule(qmlRuleList: any[], rule: Rule) {
Expand Down

0 comments on commit 057d1c2

Please sign in to comment.