Skip to content

Commit

Permalink
Add test for issue #38716
Browse files Browse the repository at this point in the history
  • Loading branch information
elpaso committed Sep 17, 2020
1 parent 2018edb commit 247a399
Show file tree
Hide file tree
Showing 2 changed files with 52 additions and 0 deletions.
52 changes: 52 additions & 0 deletions tests/src/python/test_qgsmarkerlinesymbollayer.py
Expand Up @@ -340,6 +340,58 @@ def testCenterSegment(self):
rendered_image = self.renderGeometry(s, g)
assert self.imageCheck('markerline_segmentcenter', 'markerline_segmentcenter', rendered_image)

def testMarkerAngleDD(self):
"""Test issue https://github.com/qgis/QGIS/issues/38716"""

s = QgsLineSymbol()
s.deleteSymbolLayer(0)

marker_line = QgsMarkerLineSymbolLayer(True)
marker_line.setRotateSymbols(True)
marker_line.setPlacement(QgsTemplatedLineSymbolLayerBase.CentralPoint)
marker = QgsSimpleMarkerSymbolLayer(QgsSimpleMarkerSymbolLayer.Arrow, 10)
marker.setAngle(90)
marker.setColor(QColor(255, 0, 0))
marker.setStrokeStyle(Qt.NoPen)
marker_symbol = QgsMarkerSymbol()
marker_symbol.changeSymbolLayer(0, marker)
marker_line.setSubSymbol(marker_symbol)
line_symbol = QgsLineSymbol()
line_symbol.changeSymbolLayer(0, marker_line)

s.appendSymbolLayer(marker_line.clone())

g = QgsGeometry.fromWkt('LineString(0 0, 10 10, 20 20)')
rendered_image = self.renderGeometry(s, g)
assert self.imageCheck('markerline_center_angle_dd', 'markerline_center_angle_dd', rendered_image)

# Now with DD

s = QgsLineSymbol()
s.deleteSymbolLayer(0)

marker_line = QgsMarkerLineSymbolLayer(True)
marker_line.setRotateSymbols(True)
marker_line.setPlacement(QgsTemplatedLineSymbolLayerBase.CentralPoint)
marker = QgsSimpleMarkerSymbolLayer(QgsSimpleMarkerSymbolLayer.Arrow, 10)
# Note: set this to a different value than the reference test (90)
marker.setAngle(30)
marker.setColor(QColor(255, 0, 0))
marker.setStrokeStyle(Qt.NoPen)
marker_symbol = QgsMarkerSymbol()
marker_symbol.changeSymbolLayer(0, marker)
# This is the same value of the reference test
marker_symbol.setDataDefinedAngle(QgsProperty.fromExpression('90'))
marker_line.setSubSymbol(marker_symbol)
line_symbol = QgsLineSymbol()
line_symbol.changeSymbolLayer(0, marker_line)

s.appendSymbolLayer(marker_line.clone())

g = QgsGeometry.fromWkt('LineString(0 0, 10 10, 20 20)')
rendered_image = self.renderGeometry(s, g)
assert self.imageCheck('markerline_center_angle_dd', 'markerline_center_angle_dd', rendered_image)

def renderGeometry(self, symbol, geom, buffer=20):
f = QgsFeature()
f.setGeometry(geom)
Expand Down
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.

0 comments on commit 247a399

Please sign in to comment.