diff options
Diffstat (limited to 'src/printsupport/dialogs/qpagesetupdialog_mac.mm')
-rw-r--r-- | src/printsupport/dialogs/qpagesetupdialog_mac.mm | 19 |
1 files changed, 15 insertions, 4 deletions
diff --git a/src/printsupport/dialogs/qpagesetupdialog_mac.mm b/src/printsupport/dialogs/qpagesetupdialog_mac.mm index 6e4469e387..e387a58607 100644 --- a/src/printsupport/dialogs/qpagesetupdialog_mac.mm +++ b/src/printsupport/dialogs/qpagesetupdialog_mac.mm @@ -39,6 +39,8 @@ ** ****************************************************************************/ +#ifndef QT_NO_PRINTDIALOG + #include <Cocoa/Cocoa.h> #include "qpagesetupdialog.h" @@ -47,8 +49,6 @@ #include <QtGui/qplatformnativeinterface_qpa.h> #include <QtPrintSupport/qprintengine.h> -#ifndef QT_NO_PRINTDIALOG - QT_USE_NAMESPACE @class QT_MANGLE_NAMESPACE(QCocoaPageLayoutDelegate); @@ -155,11 +155,15 @@ void QPageSetupDialogPrivate::closeCocoaPageLayout() QPageSetupDialog::QPageSetupDialog(QPrinter *printer, QWidget *parent) : QAbstractPageSetupDialog(*(new QPageSetupDialogPrivate), printer, parent) -{ } +{ + setAttribute(Qt::WA_DontShowOnScreen); +} QPageSetupDialog::QPageSetupDialog(QWidget *parent) : QAbstractPageSetupDialog(*(new QPageSetupDialogPrivate), 0, parent) -{ } +{ + setAttribute(Qt::WA_DontShowOnScreen); +} void QPageSetupDialog::setVisible(bool visible) { @@ -172,6 +176,8 @@ void QPageSetupDialog::setVisible(bool visible) if (!visible == !isCurrentlyVisible) return; + QDialog::setVisible(visible); + if (visible) { d->openCocoaPageLayout(parentWidget() ? Qt::WindowModal : Qt::ApplicationModal); @@ -191,10 +197,15 @@ int QPageSetupDialog::exec() if (d->printer->outputFormat() != QPrinter::NativeFormat) return Rejected; + QDialog::setVisible(true); + NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init]; d->openCocoaPageLayout(Qt::ApplicationModal); d->closeCocoaPageLayout(); [pool release]; + + QDialog::setVisible(false); + return result(); } |