<html><head></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; ">I can confirm success on my OSX system also with the patch you supplied, Giovanni. Cheers,<div>John</div><div><br><div><div>On Jul 9, 2012, at 8:13 AM, G. Allegri wrote:</div><br class="Apple-interchange-newline"><blockquote type="cite">The hack is working perfectly! <div>Tha Atlas plugin seems to be working now ;)</div><div><br></div><div>giovanni<br><br><div class="gmail_quote">2012/7/5 G. Allegri <span dir="ltr"><<a href="mailto:giohappy@gmail.com" target="_blank">giohappy@gmail.com</a>></span><br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Thanks to Jef, the hacked engine is exposed throug sip now ;)<div>I will try it ASAP.</div><div class="HOEnZb"><div class="h5">
<div><br></div><div>giovanni<br><br><div class="gmail_quote">2012/7/5 G. Allegri <span dir="ltr"><<a href="mailto:giohappy@gmail.com" target="_blank">giohappy@gmail.com</a>></span><br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">I fear it isn't possible (at least with common programming skills!) to reproduce it.<div>My approach was too naive. The paintEngine instance is a pointer to a subclass implementation, and AFACS there's no method to change the flags (render features) of an instanciated engine...</div>
<div><br></div><div>giovanni</div><div><br><div class="gmail_quote">2012/7/5 G. Allegri <span dir="ltr"><<a href="mailto:giohappy@gmail.com" target="_blank">giohappy@gmail.com</a>></span><div><div><br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br><br><div class="gmail_quote"><div>2012/7/5 Marco Hugentobler <span dir="ltr"><<a href="mailto:marco.hugentobler@sourcepole.ch" target="_blank">marco.hugentobler@sourcepole.ch</a>></span><br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div bgcolor="#FFFFFF" text="#000000">
<div>>made by Marco<br>
<br>
made by Jürgen (it fixes the pdf shift on windows).<br></div></div></blockquote><div><br></div></div><div>ops, sorry :)</div><div><div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div bgcolor="#FFFFFF" text="#000000"><div>
<br>
Marco<br>
<br>
Am 05.07.2012 16:11, schrieb G. Allegri:<br>
</div>
<blockquote type="cite"><div><div>Vincent highlighted a hack in the composer PDF
rendering (made by Marco) [1].
<div>I was trying to reproduce it in Python, to test if it can
solve some problems in the Atlas plugin.</div>
<div>I thought I could use the QPrinter.setEngines() method [2],
to set an instance of a derived QPaintEngine intitated with the
flags provided in the hack, but this method makes QGis crash. I
was doing something like this (excerpt):</div>
<div><br>
</div>
<div>paintE = self.getHackedPaintEngine</div>
<div>printE = printer.printEngine()</div>
<div>printer.setEngines(printE,paintE)</div>
<div><br>
</div>
<div>
<div>def getHackedPaintEngine(self):</div>
<div> class HackEngine(QPaintEngine):</div>
<div> def __init__(self):</div>
<div> QPaintEngine.__init__(self,</div>
<div> QPaintEngine.PrimitiveTransform</div>
<div> | QPaintEngine.PixmapTransform</div>
<div>
| QPaintEngine.PatternBrush</div>
<div> | QPaintEngine.AlphaBlend</div>
<div> | QPaintEngine.PainterPaths</div>
<div> | QPaintEngine.Antialiasing</div>
<div>
| QPaintEngine.BrushStroke</div>
<div> | QPaintEngine.ConstantOpacity</div>
<div> | QPaintEngine.MaskedBrush</div>
<div> | QPaintEngine.BlendModes</div>
<div>
| QPaintEngine.RasterOpModes</div>
<div> )</div>
<div> </div>
<div><span style="white-space:pre-wrap"> </span>return
HackEngine()</div>
</div>
<div>
<div><br>
</div>
<div>
What alternative way would you suggest to reproduce the hack?</div>
<div>giovanni</div>
<div><br>
</div>
<div>[1] <a href="https://github.com/qgis/Quantum-GIS/blob/master/src/app/composer/qgscomposer.cpp#L588" target="_blank">https://github.com/qgis/Quantum-GIS/blob/master/src/app/composer/qgscomposer.cpp#L588</a></div>
</div>
<div>[2] <a href="http://www.riverbankcomputing.co.uk/static/Docs/PyQt4/html/qprinter.html#setEngines" target="_blank">http://www.riverbankcomputing.co.uk/static/Docs/PyQt4/html/qprinter.html#setEngines</a></div>
<br>
<fieldset></fieldset>
<br>
</div></div><pre>_______________________________________________
Qgis-developer mailing list
<a href="mailto:Qgis-developer@lists.osgeo.org" target="_blank">Qgis-developer@lists.osgeo.org</a>
<a href="http://lists.osgeo.org/mailman/listinfo/qgis-developer" target="_blank">http://lists.osgeo.org/mailman/listinfo/qgis-developer</a><span><font color="#888888">
</font></span></pre><span><font color="#888888">
</font></span></blockquote><span><font color="#888888">
<br>
<br>
<pre cols="72">--
Dr. Marco Hugentobler
Sourcepole - Linux & Open Source Solutions
Weberstrasse 5, CH-8004 Zürich, Switzerland
<a href="mailto:marco.hugentobler@sourcepole.ch" target="_blank">marco.hugentobler@sourcepole.ch</a> <a href="http://www.sourcepole.ch/" target="_blank">http://www.sourcepole.ch</a>
Technical Advisor QGIS Project Steering Committee</pre>
</font></span></div>
<br>_______________________________________________<br>
Qgis-developer mailing list<br>
<a href="mailto:Qgis-developer@lists.osgeo.org" target="_blank">Qgis-developer@lists.osgeo.org</a><br>
<a href="http://lists.osgeo.org/mailman/listinfo/qgis-developer" target="_blank">http://lists.osgeo.org/mailman/listinfo/qgis-developer</a><br>
<br></blockquote></div></div></div><br>
</blockquote></div></div></div><br></div>
</blockquote></div><br></div>
</div></div></blockquote></div><br></div>
_______________________________________________<br>Qgis-developer mailing list<br><a href="mailto:Qgis-developer@lists.osgeo.org">Qgis-developer@lists.osgeo.org</a><br>http://lists.osgeo.org/mailman/listinfo/qgis-developer<br></blockquote></div><br></div></body></html>