Skip to content

Commit 0daeacb

Browse files
committed
Turn antialising render flag on when appropriate in QgsRenderContext::fromQPainter()
1 parent 8e19a32 commit 0daeacb

File tree

3 files changed

+7
-0
lines changed

3 files changed

+7
-0
lines changed

src/core/qgsrendercontext.cpp

+4
Original file line numberDiff line numberDiff line change
@@ -105,6 +105,10 @@ QgsRenderContext QgsRenderContext::fromQPainter( QPainter *painter )
105105
{
106106
context.setScaleFactor( 3.465 ); //assume 88 dpi as standard value
107107
}
108+
if ( painter && painter->renderHints() & QPainter::Antialiasing )
109+
{
110+
context.setFlag( QgsRenderContext::Antialiasing, true );
111+
}
108112
return context;
109113
}
110114

tests/src/python/test_qgsrendercontext.py

+3
Original file line numberDiff line numberDiff line change
@@ -73,15 +73,18 @@ def testFromQPainter(self):
7373
p = QPainter()
7474
c = QgsRenderContext.fromQPainter(p)
7575
self.assertEqual(c.painter(), p)
76+
self.assertEqual(c.testFlag(QgsRenderContext.Antialiasing), False)
7677
self.assertAlmostEqual(c.scaleFactor(), 88 / 25.4, 3)
7778

7879
im = QImage(1000, 600, QImage.Format_RGB32)
7980
dots_per_m = 300 / 25.4 * 1000 # 300 dpi to dots per m
8081
im.setDotsPerMeterX(dots_per_m)
8182
im.setDotsPerMeterY(dots_per_m)
8283
p = QPainter(im)
84+
p.setRenderHint(QPainter.Antialiasing)
8385
c = QgsRenderContext.fromQPainter(p)
8486
self.assertEqual(c.painter(), p)
87+
self.assertEqual(c.testFlag(QgsRenderContext.Antialiasing), True)
8588
self.assertAlmostEqual(c.scaleFactor(), dots_per_m / 1000, 3) # scaleFactor should be pixels/mm
8689

8790
def testFromMapSettings(self):
Loading

0 commit comments

Comments
 (0)