diff options
| author | John Layt <jlayt@kde.org> | 2014-01-20 15:40:23 +0100 |
|---|---|---|
| committer | The Qt Project <gerrit-noreply@qt-project.org> | 2014-02-26 12:58:00 +0100 |
| commit | f05e48381b309447297a290f699a3389ac41af41 (patch) | |
| tree | ec69b3247b7db8f48ef782feea03f4a120e08a69 /src/printsupport/dialogs/qprintdialog_win.cpp | |
| parent | 5ddc5df3501675fc4cd2a6994b46b00969b7c02c (diff) | |
QPrintEngine - Improve devMode handling
Improve the sharing of the devMode between the QPrintEngine and the
print dialogs, in particular start to change the dialogs from directly
accessing the QPrintEngine internals.
Change-Id: Ieb4649c19b936433c85207297a0b6e59356c3880
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
Diffstat (limited to 'src/printsupport/dialogs/qprintdialog_win.cpp')
| -rw-r--r-- | src/printsupport/dialogs/qprintdialog_win.cpp | 15 |
1 files changed, 8 insertions, 7 deletions
diff --git a/src/printsupport/dialogs/qprintdialog_win.cpp b/src/printsupport/dialogs/qprintdialog_win.cpp index 9d972ef5c48..722f0e186f5 100644 --- a/src/printsupport/dialogs/qprintdialog_win.cpp +++ b/src/printsupport/dialogs/qprintdialog_win.cpp @@ -68,12 +68,13 @@ class QPrintDialogPrivate : public QAbstractPrintDialogPrivate Q_DECLARE_PUBLIC(QPrintDialog) public: QPrintDialogPrivate() - : ep(0) + : engine(0), ep(0) { } int openWindowsPrintDialogModally(); + QWin32PrintEngine *engine; QWin32PrintEnginePrivate *ep; }; @@ -141,7 +142,7 @@ static void qt_win_setup_PRINTDLGEX(PRINTDLGEX *pd, QWidget *parent, pd->hwndOwner = parentWindow ? (HWND)QGuiApplication::platformNativeInterface()->nativeResourceForWindow("handle", parentWindow) : 0; pd->lpPageRanges[0].nFromPage = qMax(pdlg->fromPage(), pdlg->minPage()); pd->lpPageRanges[0].nToPage = (pdlg->toPage() > 0) ? qMin(pdlg->toPage(), pdlg->maxPage()) : 1; - pd->nCopies = d->ep->num_copies; + pd->nCopies = d->printer->copyCount(); } static void qt_win_read_back_PRINTDLGEX(PRINTDLGEX *pd, QPrintDialog *pdlg, QPrintDialogPrivate *d) @@ -162,9 +163,7 @@ static void qt_win_read_back_PRINTDLGEX(PRINTDLGEX *pd, QPrintDialog *pdlg, QPri d->ep->printToFile = (pd->Flags & PD_PRINTTOFILE) != 0; - d->ep->readDevnames(pd->hDevNames); - d->ep->readDevmode(pd->hDevMode); - d->ep->updateCustomPaperSize(); + d->engine->setGlobalDevMode(pd->hDevNames, pd->hDevMode); if (d->ep->printToFile && d->ep->fileName.isEmpty()) d->ep->fileName = QLatin1String("FILE:"); @@ -187,6 +186,7 @@ QPrintDialog::QPrintDialog(QPrinter *printer, QWidget *parent) Q_D(QPrintDialog); if (!warnIfNotNative(d->printer)) return; + d->engine = static_cast<QWin32PrintEngine *>(d->printer->printEngine()); d->ep = static_cast<QWin32PrintEngine *>(d->printer->printEngine())->d_func(); setAttribute(Qt::WA_DontShowOnScreen); } @@ -197,6 +197,7 @@ QPrintDialog::QPrintDialog(QWidget *parent) Q_D(QPrintDialog); if (!warnIfNotNative(d->printer)) return; + d->engine = static_cast<QWin32PrintEngine *>(d->printer->printEngine()); d->ep = static_cast<QWin32PrintEngine *>(d->printer->printEngine())->d_func(); setAttribute(Qt::WA_DontShowOnScreen); } @@ -229,7 +230,7 @@ int QPrintDialogPrivate::openWindowsPrintDialogModally() q->QDialog::setVisible(true); - HGLOBAL *tempDevNames = ep->createDevNames(); + HGLOBAL *tempDevNames = engine->createGlobalDevNames(); bool done; bool result; @@ -278,7 +279,7 @@ int QPrintDialogPrivate::openWindowsPrintDialogModally() { qt_win_read_back_PRINTDLGEX(&pd, q, this); // update printer validity - printer->d_func()->validPrinter = !ep->name.isEmpty(); + printer->d_func()->validPrinter = !printer->printerName().isEmpty(); } // Cleanup... |
