diff --git a/tests/src/python/test_qgstextformatwidget.py b/tests/src/python/test_qgstextformatwidget.py index 2015a25b2a5..4cb6c29c7e1 100644 --- a/tests/src/python/test_qgstextformatwidget.py +++ b/tests/src/python/test_qgstextformatwidget.py @@ -19,7 +19,8 @@ from qgis.core import (QgsTextBufferSettings, QgsTextShadowSettings, QgsTextFormat, QgsUnitTypes, - QgsMapUnitScale) + QgsMapUnitScale, + QgsBlurEffect) from qgis.gui import (QgsTextFormatWidget, QgsTextFormatDialog) from qgis.PyQt.QtGui import (QColor, QPainter) from qgis.PyQt.QtCore import (Qt, QSizeF, QPointF) @@ -42,6 +43,7 @@ class PyQgsTextFormatWidget(unittest.TestCase): s.setOpacity(0.5) s.setJoinStyle(Qt.RoundJoin) s.setBlendMode(QPainter.CompositionMode_Difference) + s.setPaintEffect(QgsBlurEffect.create({'blur_level': '10', 'enabled': '1'})) return s def checkBufferSettings(self, s): @@ -55,6 +57,8 @@ class PyQgsTextFormatWidget(unittest.TestCase): self.assertEqual(s.opacity(), 0.5) self.assertEqual(s.joinStyle(), Qt.RoundJoin) self.assertEqual(s.blendMode(), QPainter.CompositionMode_Difference) + self.assertTrue(s.paintEffect()) + self.assertEqual(s.paintEffect().blurLevel(), 10) def createBackgroundSettings(self): s = QgsTextBackgroundSettings() @@ -81,6 +85,7 @@ class PyQgsTextFormatWidget(unittest.TestCase): s.setStrokeWidth(7) s.setStrokeWidthUnit(QgsUnitTypes.RenderMapUnits) s.setStrokeWidthMapUnitScale(QgsMapUnitScale(QgsMapUnitScale(25, 26))) + s.setPaintEffect(QgsBlurEffect.create({'blur_level': '6', 'enabled': '1'})) return s def checkBackgroundSettings(self, s): @@ -108,6 +113,8 @@ class PyQgsTextFormatWidget(unittest.TestCase): self.assertEqual(s.strokeWidth(), 7) self.assertEqual(s.strokeWidthUnit(), QgsUnitTypes.RenderMapUnits) self.assertEqual(s.strokeWidthMapUnitScale(), QgsMapUnitScale(25, 26)) + self.assertTrue(s.paintEffect()) + self.assertEqual(s.paintEffect().blurLevel(), 6) def createShadowSettings(self): s = QgsTextShadowSettings() diff --git a/tests/src/python/test_qgstextrenderer.py b/tests/src/python/test_qgstextrenderer.py index 9b2aa313585..3d89154ec8f 100644 --- a/tests/src/python/test_qgstextrenderer.py +++ b/tests/src/python/test_qgstextrenderer.py @@ -988,7 +988,7 @@ class PyQgsTextRenderer(unittest.TestCase): format.background().setStrokeWidth(3) format.background().setStrokeWidthUnit(QgsUnitTypes.RenderMillimeters) assert self.checkRender(format, 'background_outline', QgsTextRenderer.Background) - + def testDrawBackgroundEffect(self): format = QgsTextFormat() format.setFont(getTestFont('bold')) @@ -998,13 +998,12 @@ class PyQgsTextRenderer(unittest.TestCase): format.background().setType(QgsTextBackgroundSettings.ShapeRectangle) format.background().setSize(QSizeF(30, 20)) format.background().setSizeType(QgsTextBackgroundSettings.SizeFixed) - format.background().setPaintEffect( QgsBlurEffect.create({'blur_level':'10','enabled':'1'}) ) - assert self.checkRender(format, 'text_buffer_interior', QgsTextRenderer.Buffer, text=['test']) + format.background().setPaintEffect(QgsBlurEffect.create({'blur_level': '10', 'enabled': '1'})) + assert self.checkRender(format, 'background_effect', QgsTextRenderer.Background, text=['test']) def testDrawText(self): format = QgsTextFormat() format.setFont(getTestFont('bold')) - format.setFont(getTestFont('bold')) format.setSize(60) format.setSizeUnit(QgsUnitTypes.RenderPoints) assert self.checkRender(format, 'text_bold', QgsTextRenderer.Text, text=['test']) @@ -1012,7 +1011,6 @@ class PyQgsTextRenderer(unittest.TestCase): def testDrawTextPoint(self): format = QgsTextFormat() format.setFont(getTestFont('bold')) - format.setFont(getTestFont('bold')) format.setSize(60) format.setSizeUnit(QgsUnitTypes.RenderPoints) assert self.checkRenderPoint(format, 'text_point_bold', QgsTextRenderer.Text, text=['test']) @@ -1031,7 +1029,6 @@ class PyQgsTextRenderer(unittest.TestCase): def testDrawTextColor(self): format = QgsTextFormat() format.setFont(getTestFont('bold')) - format.setFont(getTestFont('bold')) format.setSize(60) format.setSizeUnit(QgsUnitTypes.RenderPoints) format.setColor(QColor(0, 255, 0)) @@ -1040,7 +1037,6 @@ class PyQgsTextRenderer(unittest.TestCase): def testDrawTextOpacity(self): format = QgsTextFormat() format.setFont(getTestFont('bold')) - format.setFont(getTestFont('bold')) format.setSize(60) format.setSizeUnit(QgsUnitTypes.RenderPoints) format.setOpacity(0.7) @@ -1049,7 +1045,6 @@ class PyQgsTextRenderer(unittest.TestCase): def testDrawTextBlendMode(self): format = QgsTextFormat() format.setFont(getTestFont('bold')) - format.setFont(getTestFont('bold')) format.setSize(60) format.setSizeUnit(QgsUnitTypes.RenderPoints) format.setColor(QColor(100, 100, 100)) @@ -1059,7 +1054,6 @@ class PyQgsTextRenderer(unittest.TestCase): def testDrawTextAngle(self): format = QgsTextFormat() format.setFont(getTestFont('bold')) - format.setFont(getTestFont('bold')) format.setSize(60) format.setSizeUnit(QgsUnitTypes.RenderPoints) assert self.checkRender(format, 'text_angled', QgsTextRenderer.Text, angle=90 / 180 * 3.141, text=['test']) @@ -1067,7 +1061,6 @@ class PyQgsTextRenderer(unittest.TestCase): def testDrawTextMapUnits(self): format = QgsTextFormat() format.setFont(getTestFont('bold')) - format.setFont(getTestFont('bold')) format.setSize(5) format.setSizeUnit(QgsUnitTypes.RenderMapUnits) assert self.checkRender(format, 'text_mapunits', QgsTextRenderer.Text, text=['test']) @@ -1075,7 +1068,6 @@ class PyQgsTextRenderer(unittest.TestCase): def testDrawTextPixels(self): format = QgsTextFormat() format.setFont(getTestFont('bold')) - format.setFont(getTestFont('bold')) format.setSize(50) format.setSizeUnit(QgsUnitTypes.RenderPixels) assert self.checkRender(format, 'text_pixels', QgsTextRenderer.Text, text=['test']) @@ -1083,7 +1075,6 @@ class PyQgsTextRenderer(unittest.TestCase): def testDrawMultiLineText(self): format = QgsTextFormat() format.setFont(getTestFont('bold')) - format.setFont(getTestFont('bold')) format.setSize(30) format.setSizeUnit(QgsUnitTypes.RenderPoints) assert self.checkRender(format, 'text_multiline', QgsTextRenderer.Text, text=['test', 'multi', 'line']) @@ -1091,7 +1082,6 @@ class PyQgsTextRenderer(unittest.TestCase): def testDrawMultiLineTextPoint(self): format = QgsTextFormat() format.setFont(getTestFont('bold')) - format.setFont(getTestFont('bold')) format.setSize(30) format.setSizeUnit(QgsUnitTypes.RenderPoints) assert self.checkRenderPoint(format, 'text_point_multiline', QgsTextRenderer.Text, text=['test', 'multi', 'line']) @@ -1099,7 +1089,6 @@ class PyQgsTextRenderer(unittest.TestCase): def testDrawLineHeightText(self): format = QgsTextFormat() format.setFont(getTestFont('bold')) - format.setFont(getTestFont('bold')) format.setSize(30) format.setSizeUnit(QgsUnitTypes.RenderPoints) format.setLineHeight(1.5) @@ -1108,7 +1097,6 @@ class PyQgsTextRenderer(unittest.TestCase): def testDrawBufferSizeMM(self): format = QgsTextFormat() format.setFont(getTestFont('bold')) - format.setFont(getTestFont('bold')) format.setSize(60) format.setSizeUnit(QgsUnitTypes.RenderPoints) format.buffer().setEnabled(True) @@ -1119,7 +1107,6 @@ class PyQgsTextRenderer(unittest.TestCase): def testDrawBufferDisabled(self): format = QgsTextFormat() format.setFont(getTestFont('bold')) - format.setFont(getTestFont('bold')) format.setSize(60) format.setSizeUnit(QgsUnitTypes.RenderPoints) format.buffer().setEnabled(False) @@ -1128,7 +1115,6 @@ class PyQgsTextRenderer(unittest.TestCase): def testDrawBufferSizeMapUnits(self): format = QgsTextFormat() format.setFont(getTestFont('bold')) - format.setFont(getTestFont('bold')) format.setSize(60) format.setSizeUnit(QgsUnitTypes.RenderPoints) format.buffer().setEnabled(True) @@ -1139,7 +1125,6 @@ class PyQgsTextRenderer(unittest.TestCase): def testDrawBufferSizePixels(self): format = QgsTextFormat() format.setFont(getTestFont('bold')) - format.setFont(getTestFont('bold')) format.setSize(60) format.setSizeUnit(QgsUnitTypes.RenderPoints) format.buffer().setEnabled(True) @@ -1150,7 +1135,6 @@ class PyQgsTextRenderer(unittest.TestCase): def testDrawBufferColor(self): format = QgsTextFormat() format.setFont(getTestFont('bold')) - format.setFont(getTestFont('bold')) format.setSize(60) format.setSizeUnit(QgsUnitTypes.RenderPoints) format.buffer().setEnabled(True) @@ -1162,7 +1146,6 @@ class PyQgsTextRenderer(unittest.TestCase): def testDrawBufferOpacity(self): format = QgsTextFormat() format.setFont(getTestFont('bold')) - format.setFont(getTestFont('bold')) format.setSize(60) format.setSizeUnit(QgsUnitTypes.RenderPoints) format.buffer().setEnabled(True) @@ -1174,7 +1157,6 @@ class PyQgsTextRenderer(unittest.TestCase): def testDrawBufferFillInterior(self): format = QgsTextFormat() format.setFont(getTestFont('bold')) - format.setFont(getTestFont('bold')) format.setSize(60) format.setSizeUnit(QgsUnitTypes.RenderPoints) format.buffer().setEnabled(True) @@ -1186,19 +1168,17 @@ class PyQgsTextRenderer(unittest.TestCase): def testDrawBufferEffect(self): format = QgsTextFormat() format.setFont(getTestFont('bold')) - format.setFont(getTestFont('bold')) format.setSize(60) format.setSizeUnit(QgsUnitTypes.RenderPoints) format.buffer().setEnabled(True) format.buffer().setSize(2) format.buffer().setSizeUnit(QgsUnitTypes.RenderMillimeters) - format.buffer().setPaintEffect( QgsBlurEffect.create({'blur_level':'10','enabled':'1'}) ) - assert self.checkRender(format, 'text_buffer_interior', QgsTextRenderer.Buffer, text=['test']) + format.buffer().setPaintEffect(QgsBlurEffect.create({'blur_level': '10', 'enabled': '1'})) + assert self.checkRender(format, 'text_buffer_effect', QgsTextRenderer.Buffer, text=['test']) def testDrawShadow(self): format = QgsTextFormat() format.setFont(getTestFont('bold')) - format.setFont(getTestFont('bold')) format.setSize(60) format.setSizeUnit(QgsUnitTypes.RenderPoints) format.setColor(QColor(255, 255, 255)) @@ -1213,7 +1193,6 @@ class PyQgsTextRenderer(unittest.TestCase): def testDrawShadowOffsetAngle(self): format = QgsTextFormat() format.setFont(getTestFont('bold')) - format.setFont(getTestFont('bold')) format.setSize(60) format.setSizeUnit(QgsUnitTypes.RenderPoints) format.setColor(QColor(255, 255, 255)) @@ -1229,7 +1208,6 @@ class PyQgsTextRenderer(unittest.TestCase): def testDrawShadowOffsetMapUnits(self): format = QgsTextFormat() format.setFont(getTestFont('bold')) - format.setFont(getTestFont('bold')) format.setSize(60) format.setSizeUnit(QgsUnitTypes.RenderPoints) format.setColor(QColor(255, 255, 255)) @@ -1244,7 +1222,6 @@ class PyQgsTextRenderer(unittest.TestCase): def testDrawShadowOffsetPixels(self): format = QgsTextFormat() format.setFont(getTestFont('bold')) - format.setFont(getTestFont('bold')) format.setSize(60) format.setSizeUnit(QgsUnitTypes.RenderPoints) format.setColor(QColor(255, 255, 255)) @@ -1259,7 +1236,6 @@ class PyQgsTextRenderer(unittest.TestCase): def testDrawShadowBlurRadiusMM(self): format = QgsTextFormat() format.setFont(getTestFont('bold')) - format.setFont(getTestFont('bold')) format.setSize(60) format.setSizeUnit(QgsUnitTypes.RenderPoints) format.setColor(QColor(255, 255, 255)) @@ -1275,7 +1251,6 @@ class PyQgsTextRenderer(unittest.TestCase): def testDrawShadowBlurRadiusMapUnits(self): format = QgsTextFormat() format.setFont(getTestFont('bold')) - format.setFont(getTestFont('bold')) format.setSize(60) format.setSizeUnit(QgsUnitTypes.RenderPoints) format.setColor(QColor(255, 255, 255)) @@ -1291,7 +1266,6 @@ class PyQgsTextRenderer(unittest.TestCase): def testDrawShadowBlurRadiusPixels(self): format = QgsTextFormat() format.setFont(getTestFont('bold')) - format.setFont(getTestFont('bold')) format.setSize(60) format.setSizeUnit(QgsUnitTypes.RenderPoints) format.setColor(QColor(255, 255, 255)) @@ -1307,7 +1281,6 @@ class PyQgsTextRenderer(unittest.TestCase): def testDrawShadowOpacity(self): format = QgsTextFormat() format.setFont(getTestFont('bold')) - format.setFont(getTestFont('bold')) format.setSize(60) format.setSizeUnit(QgsUnitTypes.RenderPoints) format.setColor(QColor(255, 255, 255)) @@ -1322,7 +1295,6 @@ class PyQgsTextRenderer(unittest.TestCase): def testDrawShadowColor(self): format = QgsTextFormat() format.setFont(getTestFont('bold')) - format.setFont(getTestFont('bold')) format.setSize(60) format.setSizeUnit(QgsUnitTypes.RenderPoints) format.setColor(QColor(255, 255, 255)) @@ -1337,7 +1309,6 @@ class PyQgsTextRenderer(unittest.TestCase): def testDrawShadowScale(self): format = QgsTextFormat() format.setFont(getTestFont('bold')) - format.setFont(getTestFont('bold')) format.setSize(60) format.setSizeUnit(QgsUnitTypes.RenderPoints) format.setColor(QColor(255, 255, 255)) @@ -1352,7 +1323,6 @@ class PyQgsTextRenderer(unittest.TestCase): def testDrawShadowScaleUp(self): format = QgsTextFormat() format.setFont(getTestFont('bold')) - format.setFont(getTestFont('bold')) format.setSize(60) format.setSizeUnit(QgsUnitTypes.RenderPoints) format.setColor(QColor(255, 255, 255)) @@ -1367,7 +1337,6 @@ class PyQgsTextRenderer(unittest.TestCase): def testDrawShadowBackgroundPlacement(self): format = QgsTextFormat() format.setFont(getTestFont('bold')) - format.setFont(getTestFont('bold')) format.setSize(60) format.setSizeUnit(QgsUnitTypes.RenderPoints) format.setColor(QColor(255, 255, 255)) @@ -1386,7 +1355,6 @@ class PyQgsTextRenderer(unittest.TestCase): def testDrawShadowBufferPlacement(self): format = QgsTextFormat() format.setFont(getTestFont('bold')) - format.setFont(getTestFont('bold')) format.setSize(60) format.setSizeUnit(QgsUnitTypes.RenderPoints) format.setColor(QColor(255, 255, 255)) @@ -1403,7 +1371,6 @@ class PyQgsTextRenderer(unittest.TestCase): def testDrawTextWithBuffer(self): format = QgsTextFormat() format.setFont(getTestFont('bold')) - format.setFont(getTestFont('bold')) format.setSize(60) format.setSizeUnit(QgsUnitTypes.RenderPoints) format.buffer().setEnabled(True) @@ -1414,7 +1381,6 @@ class PyQgsTextRenderer(unittest.TestCase): def testDrawTextWithBackground(self): format = QgsTextFormat() format.setFont(getTestFont('bold')) - format.setFont(getTestFont('bold')) format.setSize(60) format.setSizeUnit(QgsUnitTypes.RenderPoints) format.background().setEnabled(True) @@ -1427,7 +1393,6 @@ class PyQgsTextRenderer(unittest.TestCase): def testDrawTextWithBufferAndBackground(self): format = QgsTextFormat() format.setFont(getTestFont('bold')) - format.setFont(getTestFont('bold')) format.setSize(60) format.setSizeUnit(QgsUnitTypes.RenderPoints) format.background().setEnabled(True) @@ -1444,7 +1409,6 @@ class PyQgsTextRenderer(unittest.TestCase): def testDrawTextWithShadowAndBuffer(self): format = QgsTextFormat() format.setFont(getTestFont('bold')) - format.setFont(getTestFont('bold')) format.setSize(60) format.setSizeUnit(QgsUnitTypes.RenderPoints) format.shadow().setEnabled(True) @@ -1462,7 +1426,6 @@ class PyQgsTextRenderer(unittest.TestCase): def testDrawTextWithShadowBelowTextAndBuffer(self): format = QgsTextFormat() format.setFont(getTestFont('bold')) - format.setFont(getTestFont('bold')) format.setSize(60) format.setSizeUnit(QgsUnitTypes.RenderPoints) format.shadow().setEnabled(True) @@ -1481,7 +1444,6 @@ class PyQgsTextRenderer(unittest.TestCase): def testDrawTextWithBackgroundAndShadow(self): format = QgsTextFormat() format.setFont(getTestFont('bold')) - format.setFont(getTestFont('bold')) format.setSize(60) format.setSizeUnit(QgsUnitTypes.RenderPoints) format.shadow().setEnabled(True) @@ -1500,7 +1462,6 @@ class PyQgsTextRenderer(unittest.TestCase): def testDrawTextWithShadowBelowTextAndBackground(self): format = QgsTextFormat() format.setFont(getTestFont('bold')) - format.setFont(getTestFont('bold')) format.setSize(60) format.setSizeUnit(QgsUnitTypes.RenderPoints) format.shadow().setEnabled(True) @@ -1520,7 +1481,6 @@ class PyQgsTextRenderer(unittest.TestCase): def testDrawTextWithBackgroundBufferAndShadow(self): format = QgsTextFormat() format.setFont(getTestFont('bold')) - format.setFont(getTestFont('bold')) format.setSize(60) format.setSizeUnit(QgsUnitTypes.RenderPoints) format.shadow().setEnabled(True) @@ -1543,7 +1503,6 @@ class PyQgsTextRenderer(unittest.TestCase): def testDrawTextWithBackgroundBufferAndShadowBelowText(self): format = QgsTextFormat() format.setFont(getTestFont('bold')) - format.setFont(getTestFont('bold')) format.setSize(60) format.setSizeUnit(QgsUnitTypes.RenderPoints) format.shadow().setEnabled(True) @@ -1568,7 +1527,6 @@ class PyQgsTextRenderer(unittest.TestCase): def testDrawTextWithBackgroundBufferAndShadowBelowBuffer(self): format = QgsTextFormat() format.setFont(getTestFont('bold')) - format.setFont(getTestFont('bold')) format.setSize(60) format.setSizeUnit(QgsUnitTypes.RenderPoints) format.shadow().setEnabled(True) @@ -1593,7 +1551,6 @@ class PyQgsTextRenderer(unittest.TestCase): def testDrawTextRectMultilineRightAlign(self): format = QgsTextFormat() format.setFont(getTestFont('bold')) - format.setFont(getTestFont('bold')) format.setSize(30) format.setSizeUnit(QgsUnitTypes.RenderPoints) assert self.checkRender(format, 'text_rect_multiline_right_aligned', text=['test', 'right', 'aligned'], @@ -1602,7 +1559,6 @@ class PyQgsTextRenderer(unittest.TestCase): def testDrawTextRectRightAlign(self): format = QgsTextFormat() format.setFont(getTestFont('bold')) - format.setFont(getTestFont('bold')) format.setSize(30) format.setSizeUnit(QgsUnitTypes.RenderPoints) assert self.checkRender(format, 'text_rect_right_aligned', text=['test'], @@ -1611,7 +1567,6 @@ class PyQgsTextRenderer(unittest.TestCase): def testDrawTextRectMultilineCenterAlign(self): format = QgsTextFormat() format.setFont(getTestFont('bold')) - format.setFont(getTestFont('bold')) format.setSize(30) format.setSizeUnit(QgsUnitTypes.RenderPoints) assert self.checkRender(format, 'text_rect_multiline_center_aligned', text=['test', 'c', 'aligned'], @@ -1629,7 +1584,6 @@ class PyQgsTextRenderer(unittest.TestCase): def testDrawTextPointMultilineRightAlign(self): format = QgsTextFormat() format.setFont(getTestFont('bold')) - format.setFont(getTestFont('bold')) format.setSize(30) format.setSizeUnit(QgsUnitTypes.RenderPoints) assert self.checkRenderPoint(format, 'text_point_right_multiline_aligned', text=['test', 'right', 'aligned'], @@ -1638,7 +1592,6 @@ class PyQgsTextRenderer(unittest.TestCase): def testDrawTextPointMultilineCenterAlign(self): format = QgsTextFormat() format.setFont(getTestFont('bold')) - format.setFont(getTestFont('bold')) format.setSize(30) format.setSizeUnit(QgsUnitTypes.RenderPoints) assert self.checkRenderPoint(format, 'text_point_center_multiline_aligned', text=['test', 'center', 'aligned'], @@ -1647,7 +1600,6 @@ class PyQgsTextRenderer(unittest.TestCase): def testDrawTextPointRightAlign(self): format = QgsTextFormat() format.setFont(getTestFont('bold')) - format.setFont(getTestFont('bold')) format.setSize(30) format.setSizeUnit(QgsUnitTypes.RenderPoints) assert self.checkRenderPoint(format, 'text_point_right_aligned', text=['test'], @@ -1656,7 +1608,6 @@ class PyQgsTextRenderer(unittest.TestCase): def testDrawTextPointCenterAlign(self): format = QgsTextFormat() format.setFont(getTestFont('bold')) - format.setFont(getTestFont('bold')) format.setSize(30) format.setSizeUnit(QgsUnitTypes.RenderPoints) assert self.checkRenderPoint(format, 'text_point_center_aligned', text=['test'], diff --git a/tests/testdata/control_images/text_renderer/background_effect/background_effect.png b/tests/testdata/control_images/text_renderer/background_effect/background_effect.png new file mode 100644 index 00000000000..0d463e756fd Binary files /dev/null and b/tests/testdata/control_images/text_renderer/background_effect/background_effect.png differ diff --git a/tests/testdata/control_images/text_renderer/text_buffer_effect/text_buffer_effect.png b/tests/testdata/control_images/text_renderer/text_buffer_effect/text_buffer_effect.png new file mode 100644 index 00000000000..e0531002fac Binary files /dev/null and b/tests/testdata/control_images/text_renderer/text_buffer_effect/text_buffer_effect.png differ