summaryrefslogtreecommitdiffstats
path: root/src/printsupport/kernel/qprinter.cpp
diff options
context:
space:
mode:
authorLars Knoll <lars.knoll@nokia.com>2011-08-18 11:04:06 +0200
committerLars Knoll <lars.knoll@nokia.com>2011-08-19 09:17:03 +0200
commit28f1c1b9ef10fc3a49a64a535c7747a009939453 (patch)
tree7b8211a4130804ccf7f1210da003eb2792e15fde /src/printsupport/kernel/qprinter.cpp
parent6d2c5d9ffe255410c34edbb1c1228e68c9d745bd (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.cpp31
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;
}