summaryrefslogtreecommitdiffstats
path: root/src/printsupport/kernel/qprinterinfo.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/printsupport/kernel/qprinterinfo.cpp')
-rw-r--r--src/printsupport/kernel/qprinterinfo.cpp31
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