summaryrefslogtreecommitdiffstats
path: root/src/gui/painting/qpdf.cpp
Commit message (Collapse)AuthorAgeFilesLines
...
* | Merge remote-tracking branch 'origin/5.4' into devFrederik Gladhorn2014-11-241-5/+2
|\| | | | | | | | | | | | | | | | | | | | | | | Conflicts: src/corelib/io/qiodevice.cpp src/plugins/bearer/linux_common/qofonoservice_linux.cpp src/plugins/bearer/linux_common/qofonoservice_linux_p.h src/plugins/platforms/android/qandroidplatformtheme.cpp src/tools/bootstrap/bootstrap.pro src/widgets/styles/qmacstyle_mac.mm Change-Id: Ia02aab6c4598ce74e9c30bb4666d5e2ef000f99b
| * Make it possible to disable font embeddingEskil Abrahamsen Blomfeldt2014-11-151-1/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When font embedding is explicitly disabled, fall back to painter paths as we would if the font prohibits embedding. Note that this flag was never respected on any platform in any version of Qt, as far as I've been able to tell, because the handling of it in the X11 print engine was removed shortly after it was introduced in 2005. [ChangeLog][Printing] Disabling font embedding is now possible using the QPrinter::setFontEmbedding() function. Task-number: QTBUG-41943 Change-Id: Ice5e893f9893c5243310ae7892bec7497dd55c4a Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com> Reviewed-by: Lars Knoll <lars.knoll@digia.com>
| * Windows: Remove font size hackEskil Abrahamsen Blomfeldt2014-11-111-4/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This hack was reintroduced in a4478b28966c5f630ba3d93b97bc91a3cec2fdbe, and hides scaling artifacts in fonts where there is heavy hinting, such as Arial, but introduces new bugs in other fonts, such as Vijaya. The bottom line is that we shouldn't arbitrarily override the pixel size of the font with the character height that we get from GDI. Due to hinting, there will be some artifacts when printing with screen resolution on Windows. The only way to make this look correct is to use high resolution printing, like the documentation says, or perhaps to force design metrics on the text layout. Task-number: QTBUG-40770 Change-Id: Id151eb0ede5f73efb2a401924ce379d4414ca2b1 Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* | Merge remote-tracking branch 'origin/5.4' into devFrederik Gladhorn2014-10-271-1/+5
|\| | | | | | | | | | | | | Conflicts: src/gui/text/qfontdatabase.cpp Change-Id: I6ac1f55faa22b8e7b591386fb67f0333d0ea443d
| * Fix printing of semitransparent images to PDFAllan Sandfeld Jensen2014-10-241-1/+3
| | | | | | | | | | | | | | | | | | | | The patch marks the image data to be inverted when a soft mask is used. Without this any embedded image with semitransparent pixels would be decoded with inverted colors. Task-number: QTBUG-31540 Change-Id: Ia607f7c1acf542ecf3bc88d713dfd87785b43f40 Reviewed-by: Lars Knoll <lars.knoll@digia.com>
| * Correctly apply miter limits when stroking linesLars Knoll2014-10-211-0/+2
| | | | | | | | | | | | | | | | | | | | | | The PDF generator was in many cases not correctly applying miter limits to the generated strokes leading to drawing artifacts for very sharp edges. Task-number: QTBUG-37903 Change-Id: Ie93b0f4a56775729105a375ba3bcdb5b58993433 Reviewed-by: Gunnar Sletta <gunnar@sletta.org> Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
* | Merge remote-tracking branch 'origin/5.4' into devOswald Buddenhagen2014-09-291-19/+11
|\| | | | | | | | | | | | | | | | | | | | | Conflicts: src/corelib/tools/qbytearray.cpp src/gui/image/qimage.cpp src/gui/image/qppmhandler.cpp src/gui/kernel/qguiapplication.cpp src/gui/painting/qpaintengine_raster.cpp Change-Id: I7c1a8e7ebdfd7f7ae767fdb932823498a7660765
| * Update license headers and add new license filesMatti Paaso2014-09-241-19/+11
| | | | | | | | | | | | | | | | | | - Renamed LICENSE.LGPL to LICENSE.LGPLv21 - Added LICENSE.LGPLv3 - Removed LICENSE.GPL Change-Id: Iec3406e3eb3f133be549092015cefe33d259a3f2 Reviewed-by: Iikka Eklund <iikka.eklund@digia.com>
* | QPdf: Extract Method is_monochrome()Marc Mutz2014-09-021-4/+9
|/ | | | | | | | | | | | | | | The old code repeatedly evaluated QImage::colorTable(), which returns a vector by value. Instead, factor the checks performed on the color table into a helper function and pass the color table to it, reducing the number of evaluations from three to one. Also makes the code more readable, because the condition now fits on a single line. Change-Id: I82773c235047e76b87c8a9d630f7df9440430351 Reviewed-by: Allan Sandfeld Jensen <allan.jensen@digia.com>
* QPdf::addImage(): avoid a QImage detach when it's in an acceptable FormatMartin Pley2014-07-031-3/+3
| | | | | | | | | Don't detach QImage, when it's in Format_Mono or Format_ARG32. Use QImage::constScanLine() instead of QImage::scanLine(). Change-Id: I30fcafb576aea3189637a40fd75f77c70017ba46 Reviewed-by: John Layt <jlayt@kde.org> Reviewed-by: Gunnar Sletta <gunnar.sletta@jollamobile.com>
* Fix drawing paths with constant opacity onto PDFAllan Sandfeld Jensen2014-03-291-1/+1
| | | | | | | | | | | | | The native PDF strokes can not be used with constant opacity as any overlapping parts of the path will end up being drawn multiple times getting the wrong final opacity. A constant opacity should therefore be treated the same as opacity on the pen color, and trigger the fallback drawing. Task-number: QTBUG-37101 Change-Id: I44f70a8b494567ee89804a5fa6333304a5abe91e Reviewed-by: Michael Bruning <michael.bruning@digia.com> Reviewed-by: Gunnar Sletta <gunnar.sletta@jollamobile.com>
* QPdfPaintEngine - Use QPageLayout and QPageSizeJohn Layt2014-03-171-51/+53
| | | | | | | | | | Switch internals of QPdfPageEngine and derived classes to use QPageLayout and QPageSize to make handling of page layout and size more consistent by removing multiple implementations. In particular remove all use of the QPdf namespace version of page size. Change-Id: Ie820340015e8812c8162bd1a257dd0f51f4f0b85 Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* QPdfPaintEngine - Remove postscript flagJohn Layt2014-01-091-4/+2
| | | | | | | Remove a now unneeded postscript flag. Change-Id: I307e4a64aa7ba4eed396530ffbf3bca5ae73e9c2 Reviewed-by: Gunnar Sletta <gunnar.sletta@jollamobile.com>
* QPdfEngine - Remove Producer copyright noticeJohn Layt2013-11-041-1/+1
| | | | | | | | | | | | | | Remove the copyright notice from the PDF Producer field which could be misunderstood. Comparison to other PDF Producers shows no other company does this. Task-number: QTBUG-33853 Change-Id: Ie657a356dc7c4b15f04d961978e0c8514c092a31 Reviewed-by: Olivier Goffart <ogoffart@woboq.com> Reviewed-by: Jake Petroules <jake.petroules@petroules.com> Reviewed-by: Thorbjørn Lund Martsum <tmartsum@gmail.com> Reviewed-by: Lars Knoll <lars.knoll@digia.com> Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com>
* QPdfWriter: Fix setting of paper size.Friedemann Kleint2013-07-101-1/+11
| | | | | | | | | Introduce setter for converting mm to Postscript points. Task-number: QTBUG-31443 Change-Id: I032118322657ae2a8b3b457010218d6ea3f3e720 Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
* REG: Fix character size when exporting PDF on WindowsEskil Abrahamsen Blomfeldt2013-07-051-0/+4
| | | | | | | | | | | | | | | | | | | | In Qt 4, there was a special case in qpdf.cpp which would use the tmHeight from TEXTMETRIC to calculate the height of the text instead of the pixel size. This was removed when all code inside Q_WS_WIN was removed from QtGui. The tmHeight is defined to be the same as ascent + descent, so we reinsert this code for Windows. It could be that this code is okay cross-platform, since the font height and the pixel size are supposed to be the same, though for some reason not on Windows. However, the safer approach is to #ifdef it for Windows, since the bug is not present on other platforms, and since it was #ifdef'd in Qt 4. Task-number: QTBUG-30875 Change-Id: If0817768bf0ca5ce216842119422a0be944df0bf Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com> Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* Make qtbase compile with QT_NO_TEMPORARYFILETasuku Suzuki2013-06-041-2/+7
| | | | | | | | Change-Id: Ida2f59bb245ef70bf65f7e8944c4c315d5bc2f81 Reviewed-by: David Faure (KDE) <faure@kde.org> Reviewed-by: Jørgen Lind <jorgen.lind@digia.com> Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com> Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
* Add devicePixelRatio metric to QPaintDevice.Morten Johan Sørvig2013-04-151-0/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | Previously QPainter computed the devicePixelRatio based on the physical and logical dpi, and expected that the ratio between them would be either 1x or 2x. This was problematic for paint devices like printers where the physical dpi can be much higher than the logical dpi, and also for QScreen where the physical dpi would have to be defined as a multiple of the logical dpi. Add QPaintDevice::PdmDevicePixelRatio and QPaintDevice:: devicePixelRatio() getter and implement it for the QPaintDevice subclasses. Use it when calculating the highdpi scale transform in qpainter.cpp and when scaling the clip rect in qwidget.cpp. Remove physical dpi scaling for QImage, QPixmap and QOpenGLPaintDevice, reverting to the old behavior. Change-Id: I6c97510613196d4536ff39d08e9750b8782283d4 Reviewed-by: Samuel Rødal <samuel.rodal@digia.com> Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com>
* QPdfEnginePrivate: Fix invalid format for rectangles on some localesDmitry Shachnev2013-01-241-6/+10
| | | | | | | | | This is done by using locale-independent QByteArray::setNum() instead of qvsnprintf() for printing doubles. Task-number: QTBUG-24949 Change-Id: I68cb192417d9a94f72e039c40f647b4a6826a3b7 Reviewed-by: John Layt <jlayt@kde.org>
* Update copyright year in Digia's license headersSergio Ahumada2013-01-181-1/+1
| | | | | Change-Id: Ic804938fc352291d011800d21e549c10acac66fb Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* Change license header from Nokia to DigiaSergio Ahumada2012-11-261-1/+1
| | | | | Change-Id: I2be215284d7670f60f8b5838fce1e6832dde2270 Reviewed-by: Martin Smith <martin.smith@digia.com>
* Make QPen default to 1-width non-cosmetic.Samuel Rødal2012-10-221-3/+6
| | | | | | | | | | | Use the Qt4CompatiblePainting render hint when painting with QPainter to treat default constructed QPens as cosmetic still. The NonCosmeticDefaultPen render hint gets documented as obsolete, since it was in any case not respected by the raster nor OpenGL paint engine. Change-Id: I04d910e9700baf7f13a8aac07a3633014bb9283e Reviewed-by: Jens Bache-Wiig <jens.bache-wiig@digia.com>
* Change copyrights from Nokia to DigiaIikka Eklund2012-09-221-24/+24
| | | | | | | | Change copyrights and license headers from Nokia to Digia Change-Id: If1cc974286d29fd01ec6c19dd4719a67f4c3f00e Reviewed-by: Lars Knoll <lars.knoll@digia.com> Reviewed-by: Sergio Ahumada <sergio.ahumada@digia.com>
* Avoid duplicate setPen() in PDF when reusing QPrinterEskil Abrahamsen Blomfeldt2012-09-111-0/+1
| | | | | | | | | | | | The simplePen property was not reset when reusing the QPrinter, thus we would output two identical setPen() commands in the PDF making the autotest that compares the results fail. Task-number: QTBUG-27171 Change-Id: I601042ec59e45ef72a56f230f6112a91a259b4a5 Reviewed-by: Qt Doc Bot <qt_docbot@qt-project.org> Reviewed-by: Jiang Jiang <jiang.jiang@nokia.com> Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
* QTBUG-24936: Ensure alpha cache is cleared when printing to PDF.Tarja Sundqvist2012-04-021-0/+1
| | | | | | | | | Added 'd->alphaCache.clear();' to qtbase/src/gui/painting/qpdf.cpp since also the alpha cache needs to cleared when printing to PDF. Task-number: QTBUG-24936 Change-Id: I12c41a98f4bd54c154fa47acebe0421e9a38a3ec Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
* Remove "All rights reserved" line from license headers.Jason McDonald2012-01-301-1/+1
| | | | | | | | | | As in the past, to avoid rewriting various autotests that contain line-number information, an extra blank line has been inserted at the end of the license text to ensure that this commit does not change the total number of lines in the license header. Change-Id: I311e001373776812699d6efc045b5f742890c689 Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com>
* Update contact information in license headers.Jason McDonald2012-01-231-1/+1
| | | | | | | Replace Nokia contact email address with Qt Project website. Change-Id: I431bbbf76d7c27d8b502f87947675c116994c415 Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com>
* Update copyright year in license headers.Jason McDonald2012-01-051-1/+1
| | | | | Change-Id: I02f2c620296fcd91d4967d58767ea33fc4e1e7dc Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com>
* Remove Q_WS_ and Q_OS_SYMBIAN from QtGui.Friedemann Kleint2011-10-131-12/+0
| | | | | | Change-Id: I2ac3376513c3fbfc81a2e695a73a0d948d2696bc Reviewed-on: http://codereview.qt-project.org/6607 Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
* Introduce a paged paintdevice and use itLars Knoll2011-08-191-9/+3
| | | | | | | | | | | Introduce a QPagedPaintDevice class that has a newPage() method and page dimensions. QPdfWriter and QPrinter inherit from it. Add a bit of API to QPdfWriter. Change-Id: Ibf23e7fe741f3a5ed854faf5d249a272acc75f35 Reviewed-on: http://codereview.qt.nokia.com/3206 Reviewed-by: Gunnar Sletta <gunnar.sletta@nokia.com>
* PDF doesn't require the alpha paintengineLars Knoll2011-08-191-57/+2
| | | | | | | | | | | Remove the inheritance from the alpha paint engine for the PDF generator. The alpha engine was only required to support transparency on Postscript. Change-Id: If09a00a3123f73e4c36f708651a3abae014187a3 Reviewed-on: http://codereview.qt.nokia.com/3204 Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com> Reviewed-by: Gunnar Sletta <gunnar.sletta@nokia.com>
* Move the remaining QPrinter dependencies out of qpf.*Lars Knoll2011-08-191-102/+77
| | | | | | Change-Id: I4fd0158d65afad1bc67c52eff17ce2e12ff60641 Reviewed-on: http://codereview.qt.nokia.com/3203 Reviewed-by: Gunnar Sletta <gunnar.sletta@nokia.com>
* Rename QPdf(Base)EngineLars Knoll2011-08-191-63/+63
| | | | | | | | | | Rename QPdfBaseEngine to QPdfEngine and QPdfEngine to QPdfPrintEngine. This fit's better with the use cases. Change-Id: Ic208b079581768a957f9fdcc333f0bf87f619d46 Reviewed-on: http://codereview.qt.nokia.com/3202 Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com> Reviewed-by: Gunnar Sletta <gunnar.sletta@nokia.com>
* Move the PDF related functionality into QPdfLars Knoll2011-08-191-529/+1137
| | | | | | | | | | Goal is to have all functionality related to PDF generation in QPdf, and then separate out the parts related to interfacing with the printing system into the pdf printengine. Change-Id: I8c30cb65365c503945fc270fad5cbcaabe59495d Reviewed-on: http://codereview.qt.nokia.com/3201 Reviewed-by: Gunnar Sletta <gunnar.sletta@nokia.com>
* Update licenseheader text in source files for qtbase Qt moduleJyri Tahtela2011-05-241-17/+17
| | | | | | | Updated version of LGPL and FDL licenseheaders. Apply release phase licenseheaders for all source files. Reviewed-by: Trust Me
* Initial import from the monolithic Qt.Qt by Nokia2011-04-271-0/+2106
This is the beginning of revision history for this module. If you want to look at revision history older than this, please refer to the Qt Git wiki for how to use Git history grafting. At the time of writing, this wiki is located here: http://qt.gitorious.org/qt/pages/GitIntroductionWithQt If you have already performed the grafting and you don't see any history beyond this commit, try running "git log" with the "--follow" argument. Branched from the monolithic repo, Qt master branch, at commit 896db169ea224deb96c59ce8af800d019de63f12