diff options
author | Lars Knoll <lars.knoll@nokia.com> | 2011-08-18 11:04:06 +0200 |
---|---|---|
committer | Lars Knoll <lars.knoll@nokia.com> | 2011-08-19 09:17:03 +0200 |
commit | 28f1c1b9ef10fc3a49a64a535c7747a009939453 (patch) | |
tree | 7b8211a4130804ccf7f1210da003eb2792e15fde /src/printsupport/kernel/qprinter.cpp | |
parent | 6d2c5d9ffe255410c34edbb1c1228e68c9d745bd (diff) |
Restore feature compatibility with QPrinter in QTextDocument::print
Add a margin method to QPagedPaintDevice. The other variables
required are stored in QPagedPaintDevicePrivate without a
public API for now. This needs cleaning up once we have a new
printing system.
Change-Id: Id3f2d7ac7f3cbce8619072a897d91f3a588add64
Reviewed-on: http://codereview.qt.nokia.com/3211
Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com>
Reviewed-by: Gunnar Sletta <gunnar.sletta@nokia.com>
Diffstat (limited to 'src/printsupport/kernel/qprinter.cpp')
-rw-r--r-- | src/printsupport/kernel/qprinter.cpp | 31 |
1 files changed, 20 insertions, 11 deletions
diff --git a/src/printsupport/kernel/qprinter.cpp b/src/printsupport/kernel/qprinter.cpp index 3f169755d8..a0740976f4 100644 --- a/src/printsupport/kernel/qprinter.cpp +++ b/src/printsupport/kernel/qprinter.cpp @@ -54,6 +54,7 @@ #include "qplatformprintplugin_qpa.h" #include <QtPrintSupport/QPlatformPrinterSupport> +#include <private/qpagedpaintdevice_p.h> #if defined (Q_WS_WIN) #include <private/qprintengine_win_p.h> @@ -1153,6 +1154,8 @@ QSizeF QPrinter::paperSize(Unit unit) const void QPrinter::setPageOrder(PageOrder pageOrder) { + d->pageOrderAscending = (pageOrder == FirstPageFirst); + Q_D(QPrinter); ABORT_IF_ACTIVE("QPrinter::setPageOrder"); d->printEngine->setProperty(QPrintEngine::PPK_PageOrder, pageOrder); @@ -1659,16 +1662,28 @@ QRect QPrinter::paperRect() const */ void QPrinter::setPageMargins(qreal left, qreal top, qreal right, qreal bottom, QPrinter::Unit unit) { + const qreal multiplier = qt_multiplierForUnit(unit, resolution()) * 25.4/72.; + Margins m = { left*multiplier, right*multiplier, top*multiplier, bottom*multiplier }; + setMargins(m); +} + +/*! + reimp + */ +void QPrinter::setMargins(const Margins &m) +{ Q_D(QPrinter); - const qreal multiplier = qt_multiplierForUnit(unit, resolution()); + + const qreal multiplier = 72./25.4; QList<QVariant> margins; - margins << (left * multiplier) << (top * multiplier) - << (right * multiplier) << (bottom * multiplier); + margins << (m.left * multiplier) << (m.top * multiplier) + << (m.right * multiplier) << (m.bottom * multiplier); d->printEngine->setProperty(QPrintEngine::PPK_PageMargins, margins); d->addToManualSetList(QPrintEngine::PPK_PageMargins); d->hasCustomPageMargins = true; } + /*! \since 4.4 @@ -1972,7 +1987,6 @@ void QPrinter::setPrinterSelectionOption(const QString &option) int QPrinter::fromPage() const { - Q_D(const QPrinter); return d->fromPage; } @@ -1997,7 +2011,6 @@ int QPrinter::fromPage() const int QPrinter::toPage() const { - Q_D(const QPrinter); return d->toPage; } @@ -2020,18 +2033,12 @@ int QPrinter::toPage() const void QPrinter::setFromTo(int from, int to) { - Q_D(QPrinter); if (from > to) { qWarning() << "QPrinter::setFromTo: 'from' must be less than or equal to 'to'"; from = to; } d->fromPage = from; d->toPage = to; - - if (d->minPage == 0 && d->maxPage == 0) { - d->minPage = 1; - d->maxPage = to; - } } /*! @@ -2041,6 +2048,8 @@ void QPrinter::setFromTo(int from, int to) */ void QPrinter::setPrintRange( PrintRange range ) { + d->printSelectionOnly = (range == Selection); + Q_D(QPrinter); d->printRange = range; } |