diff --git a/src/printsupport/dialogs/qpagesetupdialog_mac.mm b/src/printsupport/dialogs/qpagesetupdialog_mac.mm index 7180c01..6b6d924 100644 --- a/src/printsupport/dialogs/qpagesetupdialog_mac.mm +++ b/src/printsupport/dialogs/qpagesetupdialog_mac.mm @@ -50,6 +50,8 @@ #include #include +#include + QT_USE_NAMESPACE @class QT_MANGLE_NAMESPACE(QCocoaPageLayoutDelegate); @@ -76,7 +78,7 @@ QT_USE_NAMESPACE - (void)pageLayoutDidEnd:(NSPageLayout *)pageLayout returnCode:(int)returnCode contextInfo:(void *)contextInfo { - Q_UNUSED(pageLayout); + //Q_UNUSED(pageLayout); QPageSetupDialog *dialog = static_cast(contextInfo); QPrinter *printer = dialog->printer(); @@ -86,8 +88,17 @@ QT_USE_NAMESPACE PMGetUnadjustedPaperRect(format, &paperRect); QSizeF paperSize = QSizeF(paperRect.right - paperRect.left, paperRect.bottom - paperRect.top); printer->printEngine()->setProperty(QPrintEngine::PPK_CustomPaperSize, paperSize); + NSPrintInfo *nsinfo = [pageLayout printInfo]; + PMPageFormat format2 = static_cast([nsinfo PMPageFormat]); + PMOrientation orientation = kPMPortrait; + PMGetOrientation(format2, &orientation); + // PMGetOrientation(format, &orientation); + QPrinter::Orientation printerOrientation = QPrinter::Portrait; + if (orientation == kPMLandscape || orientation == kPMReverseLandscape) + printerOrientation = QPrinter::Landscape; + qDebug() << printerOrientation; + printer->setOrientation(printerOrientation); } - dialog->done((returnCode == NSOKButton) ? QDialog::Accepted : QDialog::Rejected); } @end diff --git a/src/printsupport/dialogs/qprintdialog_mac.mm b/src/printsupport/dialogs/qprintdialog_mac.mm index ba3837d..ba6dbb4 100644 --- a/src/printsupport/dialogs/qprintdialog_mac.mm +++ b/src/printsupport/dialogs/qprintdialog_mac.mm @@ -89,7 +89,7 @@ QT_USE_NAMESPACE - (void)printPanelDidEnd:(NSPrintPanel *)printPanel returnCode:(int)returnCode contextInfo:(void *)contextInfo; @end - +#include @implementation QT_MANGLE_NAMESPACE(QCocoaPrintPanelDelegate) - (id)initWithNSPrintInfo:(NSPrintInfo *)nsPrintInfo { @@ -101,12 +101,24 @@ QT_USE_NAMESPACE - (void)printPanelDidEnd:(NSPrintPanel *)printPanel returnCode:(int)returnCode contextInfo:(void *)contextInfo { - Q_UNUSED(printPanel); + //Q_UNUSED(printPanel); QPrintDialog *dialog = static_cast(contextInfo); QPrinter *printer = dialog->printer(); if (returnCode == NSOKButton) { + + NSPrintInfo *nsinfo = [printPanel printInfo]; + PMPageFormat format2 = static_cast([nsinfo PMPageFormat]); + PMOrientation orientation = kPMPortrait; + PMGetOrientation(format2, &orientation); + // PMGetOrientation(format, &orientation); + QPrinter::Orientation printerOrientation = QPrinter::Portrait; + if (orientation == kPMLandscape || orientation == kPMReverseLandscape) + printerOrientation = QPrinter::Landscape; + qDebug() << printerOrientation; + printer->setOrientation(printerOrientation); + PMPrintSession session = static_cast([printInfo PMPrintSession]); PMPrintSettings settings = static_cast([printInfo PMPrintSettings]);