diff options
author | John Layt <jlayt@kde.org> | 2012-05-14 20:17:16 +0100 |
---|---|---|
committer | Qt by Nokia <qt-info@nokia.com> | 2012-05-24 09:48:27 +0200 |
commit | 36f469bdb1c705f0082610a4fe9fd88b90accd24 (patch) | |
tree | fa96b0b3091d1730966a20d142add5d12d87d400 /src/printsupport/kernel/qprinterinfo.cpp | |
parent | ce5c1db2d3db7d7c7af28e9053ca591f76c6101c (diff) |
QtPrintSupport - Modify Platform Plugin QPrinterInfo api
Change the way the printsupport plugin creates QPrinterInfo
objects, provide platform api to return a named printer, and
expose this as static public api in QPrinterInfo.
Only the Mac plugin used the old api, the other plugins will
have direct support added in separate commits, but will use
the default implementation for now.
Change-Id: I7d6b6556eb39919cfb15bc0e814afbaf13c5712c
Reviewed-by: Bradley T. Hughes <bradley.hughes@nokia.com>
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
Diffstat (limited to 'src/printsupport/kernel/qprinterinfo.cpp')
-rw-r--r-- | src/printsupport/kernel/qprinterinfo.cpp | 31 |
1 files changed, 25 insertions, 6 deletions
diff --git a/src/printsupport/kernel/qprinterinfo.cpp b/src/printsupport/kernel/qprinterinfo.cpp index 3d0ba7f31d..fbf2e4de33 100644 --- a/src/printsupport/kernel/qprinterinfo.cpp +++ b/src/printsupport/kernel/qprinterinfo.cpp @@ -96,11 +96,10 @@ QPrinterInfo::QPrinterInfo(const QPrinterInfo &other) QPrinterInfo::QPrinterInfo(const QPrinter &printer) : d_ptr(&QPrinterInfoPrivate::shared_null) { - foreach (const QPrinterInfo &printerInfo, availablePrinters()) { - if (printerInfo.printerName() == printer.printerName()) { - d_ptr.reset(new QPrinterInfoPrivate(*printerInfo.d_ptr)); - break; - } + QPlatformPrinterSupport *ps = QPlatformPrinterSupportPlugin::get(); + if (ps) { + QPrinterInfo pi = ps->printerInfo(printer.printerName()); + d_ptr.reset(new QPrinterInfoPrivate(*pi.d_ptr)); } } @@ -195,7 +194,27 @@ QPrinterInfo QPrinterInfo::defaultPrinter() QPlatformPrinterSupport *ps = QPlatformPrinterSupportPlugin::get(); if (!ps) return QPrinterInfo(); - return QPlatformPrinterSupportPlugin::get()->defaultPrinter(); + return ps->defaultPrinter(); +} + +/*! + \fn QPrinterInfo QPrinterInfo::printerInfo() + \since 5.0 + + Returns the named printer. + + The return value should be checked using isNull() before being + used, in case the named printer does not exist. + + \sa isNull() +*/ + +QPrinterInfo QPrinterInfo::printerInfo(const QString &printerName) +{ + QPlatformPrinterSupport *ps = QPlatformPrinterSupportPlugin::get(); + if (!ps) + return QPrinterInfo(); + return ps->printerInfo(printerName); } QT_END_NAMESPACE |