diff --git a/data/qmls/text_text_buffer.qml b/data/qmls/text_text_buffer.qml new file mode 100644 index 00000000..53481a82 --- /dev/null +++ b/data/qmls/text_text_buffer.qml @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + + + + diff --git a/data/styles/text_text_buffer.ts b/data/styles/text_text_buffer.ts new file mode 100644 index 00000000..a55cc69b --- /dev/null +++ b/data/styles/text_text_buffer.ts @@ -0,0 +1,24 @@ +import { Style } from 'geostyler-style'; + +const labelSample: Style = { + name: 'roads_oneways', + rules: [ + { + name: '', + scaleDenominator: { max: 1000 }, + symbolizers: [ + { + kind: 'Text', + label: 'Sample label', + padding: 0, + font: ['DejaVuSans'], + size: 10.6135611907387, + haloColor: '#fafafa', + haloWidth: 0.7938257993384785 + } + ] + } + ] +} as Style; + +export default labelSample; diff --git a/src/QGISStyleParser.spec.ts b/src/QGISStyleParser.spec.ts index d3c2b467..913e274b 100644 --- a/src/QGISStyleParser.spec.ts +++ b/src/QGISStyleParser.spec.ts @@ -11,6 +11,7 @@ import point_ranges from '../data/styles/point_ranges'; import point_external_graphic from '../data/styles/point_external_graphic'; import polygon_simple from '../data/styles/polygon_simple'; import no_symbolizer from '../data/styles/no_symbolizer'; +import text_text_buffer from '../data/styles/text_text_buffer'; it('QGISStyleParser is defined', () => { expect(QGISStyleParser).toBeDefined(); @@ -163,6 +164,15 @@ describe('QMLStyleParser implements StyleParser', () => { expect(qgisStyle).toEqual(qml.trim()); }); }); + it('can write QML with text-buffer', async () => { + expect.assertions(2); + const qml = fs.readFileSync('./data/qmls/text_text_buffer.qml', 'utf8'); + return styleParser.writeStyle(text_text_buffer) + .then((qgisStyle: string) => { + expect(qgisStyle).toBeDefined(); + expect(qgisStyle).toEqual(qml.trim()); + }); + }); }); describe('LineSymbolizer', () => { it('can write a simple QML LineSymbol', async () => { diff --git a/src/QGISStyleParser.ts b/src/QGISStyleParser.ts index 8b1869ed..7f67f15d 100644 --- a/src/QGISStyleParser.ts +++ b/src/QGISStyleParser.ts @@ -971,6 +971,7 @@ export class QGISStyleParser implements StyleParser { if (rule.filter) { textRule.$.filter = this.cqlParser.write(rule.filter); } + qmlRuleList.push(textRule); } });