summaryrefslogtreecommitdiffstats
path: root/src/plugins/platforms/cocoa/qcocoaprintersupport.mm
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins/platforms/cocoa/qcocoaprintersupport.mm')
-rw-r--r--src/plugins/platforms/cocoa/qcocoaprintersupport.mm23
1 files changed, 21 insertions, 2 deletions
diff --git a/src/plugins/platforms/cocoa/qcocoaprintersupport.mm b/src/plugins/platforms/cocoa/qcocoaprintersupport.mm
index a6eb5ddeb8..2ded23ac05 100644
--- a/src/plugins/platforms/cocoa/qcocoaprintersupport.mm
+++ b/src/plugins/platforms/cocoa/qcocoaprintersupport.mm
@@ -44,6 +44,7 @@
#include <QtPrintSupport/QPrinter>
#include <QtPrintSupport/QPrinterInfo>
+#include <private/qprinterinfo_p.h>
QCocoaPrinterSupport::QCocoaPrinterSupport()
{ }
@@ -108,9 +109,27 @@ QList<QPrinterInfo> QCocoaPrinterSupport::availablePrinters()
CFIndex count = CFArrayGetCount(printerList);
for (CFIndex i = 0; i < count; ++i) {
PMPrinter printer = static_cast<PMPrinter>(const_cast<void *>(CFArrayGetValueAtIndex(printerList, i)));
- QString printerName = QCFString::toQString(PMPrinterGetID(printer));
- returnValue += QPlatformPrinterSupport::printerInfo(printerName, PMPrinterIsDefault(printer));
+ returnValue += printerInfoFromPMPrinter(printer);
}
}
return returnValue;
}
+
+QPrinterInfo QCocoaPrinterSupport::printerInfo(const QString &printerName)
+{
+ PMPrinter printer = PMPrinterCreateFromPrinterID(QCFString::toCFStringRef(printerName));
+ QPrinterInfo pi = printerInfoFromPMPrinter(printer);
+ PMRelease(printer);
+ return pi;
+}
+
+QPrinterInfo QCocoaPrinterSupport::printerInfoFromPMPrinter(const PMPrinter &printer)
+{
+ if (!printer)
+ return QPrinterInfo();
+
+ QPrinterInfo pi = QPrinterInfo(QCFString::toQString(PMPrinterGetID(printer)));
+ pi.d_func()->isDefault = PMPrinterIsDefault(printer);
+
+ return pi;
+}