d->paintEngine->begin(dev);
Q_ASSERT_X(d->state == QPrinter::Idle, "QMacPrintEngine", "printer already active");
- if (PMSessionValidatePrintSettings(d->session, d->settings, kPMDontWantBoolean) != noErr
- || PMSessionValidatePageFormat(d->session, d->format, kPMDontWantBoolean) != noErr) {
+ if (PMSessionValidatePrintSettings(d->session(), d->settings(), kPMDontWantBoolean) != noErr
+ || PMSessionValidatePageFormat(d->session(), d->format(), kPMDontWantBoolean) != noErr) {
d->state = QPrinter::Error;
return false;
}
QCFString(d->outputFilename),
kCFURLPOSIXPathStyle,
false);
- if (PMSessionSetDestination(d->session, d->settings, kPMDestinationFile,
+ if (PMSessionSetDestination(d->session(), d->settings(), kPMDestinationFile,
kPMDocumentFormatPDF, outFile) != noErr) {
qWarning("QMacPrintEngine::begin: Problem setting file [%s]", d->outputFilename.toUtf8().constData());
return false;
}
}
- OSStatus status = PMSessionBeginCGDocumentNoDialog(d->session, d->settings, d->format);
+ OSStatus status = PMSessionBeginCGDocumentNoDialog(d->session(), d->settings(), d->format());
if (status != noErr) {
d->state = QPrinter::Error;
return false;
QCFType<CFArrayRef> formats;
PMPrinter printer;
- if (PMSessionGetCurrentPrinter(session, &printer) == noErr
- && PMSessionCreatePageFormatList(session, printer, &formats) == noErr) {
+ if (PMSessionGetCurrentPrinter(session(), &printer) == noErr
+ && PMSessionCreatePageFormatList(session(), printer, &formats) == noErr) {
CFIndex total = CFArrayGetCount(formats);
PMPageFormat tmp;
PMRect paper;
int wMM = int((paper.right - paper.left) / 72 * 25.4 + 0.5);
int hMM = int((paper.bottom - paper.top) / 72 * 25.4 + 0.5);
if (newSize.width() == wMM && newSize.height() == hMM) {
- PMCopyPageFormat(tmp, format);
+ PMCopyPageFormat(tmp, format());
// reset the orientation and resolution as they are lost in the copy.
q->setProperty(QPrintEngine::PPK_Orientation, orient);
- if (PMSessionValidatePageFormat(session, format, kPMDontWantBoolean) != noErr) {
+ if (PMSessionValidatePageFormat(session(), format(), kPMDontWantBoolean) != noErr) {
// Don't know, warn for the moment.
qWarning("QMacPrintEngine, problem setting format and resolution for this page size");
}
if (hasCustomPaperSize)
return QPrinter::Custom;
PMRect paper;
- PMGetUnadjustedPaperRect(format, &paper);
+ PMGetUnadjustedPaperRect(format(), &paper);
QSizeF sizef((paper.right - paper.left) / 72.0 * 25.4, (paper.bottom - paper.top) / 72.0 * 25.4);
return QPlatformPrinterSupport::convertQSizeFToPaperSize(sizef);
}
QList<QVariant> QMacPrintEnginePrivate::supportedResolutions() const
{
- Q_ASSERT_X(session, "QMacPrinterEngine::supportedResolutions",
+ Q_ASSERT_X(printInfo, "QMacPrinterEngine::supportedResolutions",
"must have a valid printer session");
UInt32 resCount;
QList<QVariant> resolutions;
PMPrinter printer;
- if (PMSessionGetCurrentPrinter(session, &printer) == noErr) {
+ if (PMSessionGetCurrentPrinter(session(), &printer) == noErr) {
PMResolution res;
OSStatus status = PMPrinterGetPrinterResolutionCount(printer, &resCount);
if (status == kPMNotImplemented) {
{
Q_D(QMacPrintEngine);
Q_ASSERT(d->state == QPrinter::Active);
- OSStatus err =
- PMSessionEndPageNoDialog(d->session);
+ OSStatus err = PMSessionEndPageNoDialog(d->session());
if (err != noErr) {
if (err == kPMCancel) {
// User canceled, we need to abort!
val -= qRound(margins.at(0).toDouble() + margins.at(2).toDouble());
}
} else {
- val = qt_get_PDMWidth(d->format, property(PPK_FullPage).toBool(), d->resolution);
+ val = qt_get_PDMWidth(d->format(), property(PPK_FullPage).toBool(), d->resolution);
}
break;
case QPaintDevice::PdmHeight:
val -= qRound(margins.at(1).toDouble() + margins.at(3).toDouble());
}
} else {
- val = qt_get_PDMHeight(d->format, property(PPK_FullPage).toBool(), d->resolution);
+ val = qt_get_PDMHeight(d->format(), property(PPK_FullPage).toBool(), d->resolution);
}
break;
case QPaintDevice::PdmWidthMM:
case QPaintDevice::PdmPhysicalDpiX:
case QPaintDevice::PdmPhysicalDpiY: {
PMPrinter printer;
- if (PMSessionGetCurrentPrinter(d->session, &printer) == noErr) {
+ if (PMSessionGetCurrentPrinter(d->session(), &printer) == noErr) {
PMResolution resolution;
- PMPrinterGetOutputResolution(printer, d->settings, &resolution);
+ PMPrinterGetOutputResolution(printer, d->settings(), &resolution);
val = (int)resolution.vRes;
break;
}
QCocoaAutoReleasePool pool;
printInfo = [[NSPrintInfo alloc] initWithDictionary:[NSDictionary dictionary]];
- session = static_cast<PMPrintSession>([printInfo PMPrintSession]);
PMPrinter printer;
- if (session && PMSessionGetCurrentPrinter(session, &printer) == noErr) {
+ if (printInfo && PMSessionGetCurrentPrinter(session(), &printer) == noErr) {
QList<QVariant> resolutions = supportedResolutions();
if (!resolutions.isEmpty() && mode != QPrinter::ScreenResolution) {
if (resolutions.count() > 1 && mode == QPrinter::HighResolution) {
}
}
- settings = static_cast<PMPrintSettings>([printInfo PMPrintSettings]);
- format = static_cast<PMPageFormat>([printInfo PMPageFormat]);
-
QHash<QMacPrintEngine::PrintEnginePropertyKey, QVariant>::const_iterator propC;
for (propC = valueCache.constBegin(); propC != valueCache.constEnd(); propC++) {
q->setProperty(propC.key(), propC.value());
void QMacPrintEnginePrivate::releaseSession()
{
- PMSessionEndPageNoDialog(session);
- PMSessionEndDocumentNoDialog(session);
+ PMSessionEndPageNoDialog(session());
+ PMSessionEndDocumentNoDialog(session());
[printInfo release];
printInfo = 0;
- session = 0;
}
bool QMacPrintEnginePrivate::newPage_helper()
Q_Q(QMacPrintEngine);
Q_ASSERT(state == QPrinter::Active);
- if (PMSessionError(session) != noErr) {
+ if (PMSessionError(session()) != noErr) {
q->abort();
return false;
}
while (cgEngine->d_func()->stackCount > 0)
cgEngine->d_func()->restoreGraphicsState();
- OSStatus status = PMSessionBeginPageNoDialog(session, format, 0);
+ OSStatus status = PMSessionBeginPageNoDialog(session(), format(), 0);
if (status != noErr) {
state = QPrinter::Error;
return false;
CGContextRef cgContext;
OSStatus err = noErr;
- err = PMSessionGetCGGraphicsContext(session, &cgContext);
+ err = PMSessionGetCGGraphicsContext(session(), &cgContext);
if (err != noErr) {
qWarning("QMacPrintEngine::newPage: Cannot retrieve CoreGraphics context: %ld", long(err));
state = QPrinter::Error;
Q_D(QMacPrintEngine);
d->valueCache.insert(key, value);
- if (!d->session)
+ if (!d->printInfo)
return;
switch (key) {
case PPK_Resolution: {
PMPrinter printer;
UInt32 count;
- if (PMSessionGetCurrentPrinter(d->session, &printer) != noErr)
+ if (PMSessionGetCurrentPrinter(d->session(), &printer) != noErr)
break;
if (PMPrinterGetPrinterResolutionCount(printer, &count) != noErr)
break;
}
}
}
- PMSessionValidatePageFormat(d->session, d->format, kPMDontWantBoolean);
+ PMSessionValidatePageFormat(d->session(), d->format(), kPMDontWantBoolean);
break;
}
break;
case PPK_CopyCount: // fallthrough
case PPK_NumberOfCopies:
- PMSetCopies(d->settings, value.toInt(), false);
+ PMSetCopies(d->settings(), value.toInt(), false);
break;
case PPK_Orientation: {
if (d->state == QPrinter::Active) {
d->customSize = QSizeF(d->customSize.height(), d->customSize.width());
d->orient = newOrientation;
PMOrientation o = d->orient == QPrinter::Portrait ? kPMPortrait : kPMLandscape;
- PMSetOrientation(d->format, o, false);
- PMSessionValidatePageFormat(d->session, d->format, kPMDontWantBoolean);
+ PMSetOrientation(d->format(), o, false);
+ PMSessionValidatePageFormat(d->session(), d->format(), kPMDontWantBoolean);
}
break; }
case PPK_OutputFileName:
PMPrinter printer = static_cast<PMPrinter>(const_cast<void *>(CFArrayGetValueAtIndex(printerList, i)));
QString name = QCFString::toQString(PMPrinterGetName(printer));
if (name == value.toString()) {
- status = PMSessionSetCurrentPMPrinter(d->session, printer);
+ status = PMSessionSetCurrentPMPrinter(d->session(), printer);
printerNameSet = true;
break;
}
case PPK_CustomPaperSize:
{
PMOrientation orientation;
- PMGetOrientation(d->format, &orientation);
+ PMGetOrientation(d->format(), &orientation);
d->hasCustomPaperSize = true;
d->customSize = value.toSizeF();
if (orientation != kPMPortrait)
Q_D(const QMacPrintEngine);
QVariant ret;
- if (!d->session && d->valueCache.contains(key))
+ if (!d->printInfo && d->valueCache.contains(key))
return *d->valueCache.find(key);
switch (key) {
break;
case PPK_CopyCount: {
UInt32 copies = 1;
- PMGetCopies(d->settings, &copies);
+ PMGetCopies(d->settings(), &copies);
ret = (uint) copies;
break;
}
break;
case PPK_Orientation:
PMOrientation orientation;
- PMGetOrientation(d->format, &orientation);
+ PMGetOrientation(d->format(), &orientation);
ret = orientation == kPMPortrait ? QPrinter::Portrait : QPrinter::Landscape;
break;
case PPK_OutputFileName:
-qRound(margins.at(2).toDouble() * hRatio),
-qRound(margins.at(3).toDouble()) * vRatio);
}
- } else if (PMGetAdjustedPageRect(d->format, ¯ect) == noErr
- && PMGetAdjustedPaperRect(d->format, &macpaper) == noErr)
+ } else if (PMGetAdjustedPageRect(d->format(), ¯ect) == noErr
+ && PMGetAdjustedPaperRect(d->format(), &macpaper) == noErr)
{
if (d->fullPage || d->hasCustomPageMargins) {
r.setCoords(int(macpaper.left * hRatio), int(macpaper.top * vRatio),
qreal vRatio = d->resolution.vRes / 72;
if (d->hasCustomPaperSize) {
r = QRect(0, 0, qRound(d->customSize.width() * hRatio), qRound(d->customSize.height() * vRatio));
- } else if (PMGetAdjustedPaperRect(d->format, ¯ect) == noErr) {
+ } else if (PMGetAdjustedPaperRect(d->format(), ¯ect) == noErr) {
r.setCoords(int(macrect.left * hRatio), int(macrect.top * vRatio),
int(macrect.right * hRatio), int(macrect.bottom * vRatio));
r.translate(-r.x(), -r.y());
break; }
case PPK_PrinterName: {
PMPrinter printer;
- OSStatus status = PMSessionGetCurrentPrinter(d->session, &printer);
+ OSStatus status = PMSessionGetCurrentPrinter(d->session(), &printer);
if (status != noErr)
qWarning("QMacPrintEngine::printerName: Failed getting current PMPrinter: %ld", long(status));
if (printer)
} else {
PMPaperMargins paperMargins;
PMPaper paper;
- PMGetPageFormatPaper(d->format, &paper);
+ PMGetPageFormatPaper(d->format(), &paper);
PMPaperGetMargins(paper, &paperMargins);
margins << paperMargins.left << paperMargins.top
<< paperMargins.right << paperMargins.bottom;