diff --git a/data/qmls/no_symbolizer.qml b/data/qmls/no_symbolizer.qml index 39a4a74a..554c0244 100644 --- a/data/qmls/no_symbolizer.qml +++ b/data/qmls/no_symbolizer.qml @@ -1,7 +1,4 @@ - - - - + diff --git a/data/qmls/point_label.qml b/data/qmls/point_label.qml index 670638a4..b2518c97 100644 --- a/data/qmls/point_label.qml +++ b/data/qmls/point_label.qml @@ -1,9 +1,6 @@ - - - - + diff --git a/data/qmls/text_text_buffer.qml b/data/qmls/text_text_buffer.qml index 53481a82..f1e57608 100644 --- a/data/qmls/text_text_buffer.qml +++ b/data/qmls/text_text_buffer.qml @@ -1,16 +1,13 @@ - - - - + - + diff --git a/src/QGISStyleParser.ts b/src/QGISStyleParser.ts index b23d546b..535839f4 100644 --- a/src/QGISStyleParser.ts +++ b/src/QGISStyleParser.ts @@ -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) { @@ -964,7 +977,10 @@ export class QGISStyleParser implements StyleParser { textRule.settings[0]['text-buffer'] = [{ $: { bufferSize: textSymbolizer.haloWidth || `0`, - bufferColor: this.qmlColorFromHexAndOpacity(textSymbolizer.haloColor, 1) + bufferColor: this.qmlColorFromHexAndOpacity(textSymbolizer.haloColor, 1), + bufferDraw: 1, + bufferSizeUnits: 'Pixel', + bufferSizeMapUnitScale: '3x:0,0,0,0,0,0' } }]; }