From 318a274381c441b13ce67517cad3fd74985c73a8 Mon Sep 17 00:00:00 2001 From: Oliver Wolff Date: Mon, 24 Oct 2011 09:25:32 +0200 Subject: Readded PrintSupport for Windows The prepared plugin architecture for printing support was used as much as possible but some functionality had to be done in src/printsupport. Change-Id: Ic8446cb8018a0970b4da97c1912ba6dc20d2a09f Reviewed-by: Friedemann Kleint --- src/printsupport/dialogs/dialogs.pri | 2 -- src/printsupport/dialogs/qpagesetupdialog_win.cpp | 10 +++++++--- src/printsupport/dialogs/qprintdialog_win.cpp | 13 +++++++------ src/printsupport/dialogs/qprintpreviewdialog.cpp | 4 ++-- 4 files changed, 16 insertions(+), 13 deletions(-) (limited to 'src/printsupport/dialogs') diff --git a/src/printsupport/dialogs/dialogs.pri b/src/printsupport/dialogs/dialogs.pri index 5dbaa9fec3..8d4f7b83ef 100644 --- a/src/printsupport/dialogs/dialogs.pri +++ b/src/printsupport/dialogs/dialogs.pri @@ -16,8 +16,6 @@ HEADERS += \ } win32 { - qpa:DEFINES += QT_NO_PRINTDIALOG - SOURCES += dialogs/qpagesetupdialog_win.cpp \ dialogs/qprintdialog_win.cpp } diff --git a/src/printsupport/dialogs/qpagesetupdialog_win.cpp b/src/printsupport/dialogs/qpagesetupdialog_win.cpp index 2e7cf860fc..d21bbb1a36 100644 --- a/src/printsupport/dialogs/qpagesetupdialog_win.cpp +++ b/src/printsupport/dialogs/qpagesetupdialog_win.cpp @@ -44,8 +44,10 @@ #ifndef QT_NO_PRINTDIALOG #include -#include -#include +#include "../kernel/qprintengine_win_p.h" +#include "qabstractpagesetupdialog_p.h" +#include "qprinter.h" +#include QT_BEGIN_NAMESPACE @@ -99,7 +101,9 @@ int QPageSetupDialog::exec() QWidget *parent = parentWidget(); parent = parent ? parent->window() : QApplication::activeWindow(); Q_ASSERT(!parent ||parent->testAttribute(Qt::WA_WState_Created)); - psd.hwndOwner = parent ? parent->winId() : 0; + + QWindow *parentWindow = parent->windowHandle(); + psd.hwndOwner = parentWindow ? (HWND)QGuiApplication::platformNativeInterface()->nativeResourceForWindow("handle", parentWindow) : 0; QRect paperRect = d->printer->paperRect(); QRect pageRect = d->printer->pageRect(); diff --git a/src/printsupport/dialogs/qprintdialog_win.cpp b/src/printsupport/dialogs/qprintdialog_win.cpp index c8d92d45f2..d413faeb18 100644 --- a/src/printsupport/dialogs/qprintdialog_win.cpp +++ b/src/printsupport/dialogs/qprintdialog_win.cpp @@ -48,9 +48,9 @@ #include #include -#include -#include -#include +#include "qabstractprintdialog_p.h" +#include "../kernel/qprintengine_win_p.h" +#include "../kernel/qprinter_p.h" #if !defined(PD_NOCURRENTPAGE) #define PD_NOCURRENTPAGE 0x00800000 @@ -61,7 +61,7 @@ QT_BEGIN_NAMESPACE -extern void qt_win_eatMouseMove(); +//extern void qt_win_eatMouseMove(); class QPrintDialogPrivate : public QAbstractPrintDialogPrivate { @@ -142,7 +142,8 @@ static void qt_win_setup_PRINTDLGEX(PRINTDLGEX *pd, QWidget *parent, if (d->ep->printToFile) pd->Flags |= PD_PRINTTOFILE; Q_ASSERT(parent); - pd->hwndOwner = parent->window()->winId(); + QWindow *parentWindow = parent->windowHandle(); + 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; @@ -275,7 +276,7 @@ int QPrintDialogPrivate::openWindowsPrintDialogModally() QApplicationPrivate::leaveModal(&modal_widget); - qt_win_eatMouseMove(); +// qt_win_eatMouseMove(); // write values back... if (result && (pd.dwResultAction == PD_RESULT_PRINT diff --git a/src/printsupport/dialogs/qprintpreviewdialog.cpp b/src/printsupport/dialogs/qprintpreviewdialog.cpp index 90e29ac7ca..7e5c7dac94 100644 --- a/src/printsupport/dialogs/qprintpreviewdialog.cpp +++ b/src/printsupport/dialogs/qprintpreviewdialog.cpp @@ -331,7 +331,7 @@ void QPrintPreviewDialogPrivate::init(QPrinter *_printer) q->setWindowTitle(caption); if (!printer->isValid() -#if defined(Q_WS_WIN) || defined(Q_WS_MAC) +#if defined(Q_OS_WIN) || defined(Q_OS_MAC) || printer->outputFormat() != QPrinter::NativeFormat #endif ) @@ -560,7 +560,7 @@ void QPrintPreviewDialogPrivate::_q_print() { Q_Q(QPrintPreviewDialog); -#if defined(Q_WS_WIN) || defined(Q_WS_MAC) +#if defined(Q_OS_WIN) || defined(Q_WS_MAC) if (printer->outputFormat() != QPrinter::NativeFormat) { QString title; QString suffix; -- cgit v1.2.3