summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/plugins/platforms/cocoa/qcocoaprintersupport.mm6
-rw-r--r--src/printsupport/kernel/qprinterinfo.cpp41
-rw-r--r--src/printsupport/kernel/qprinterinfo.h5
-rw-r--r--src/printsupport/kernel/qprinterinfo_p.h3
-rw-r--r--tests/auto/printsupport/kernel/qprinterinfo/tst_qprinterinfo.cpp9
5 files changed, 63 insertions, 1 deletions
diff --git a/src/plugins/platforms/cocoa/qcocoaprintersupport.mm b/src/plugins/platforms/cocoa/qcocoaprintersupport.mm
index 2ded23ac05..b77d5a20ea 100644
--- a/src/plugins/platforms/cocoa/qcocoaprintersupport.mm
+++ b/src/plugins/platforms/cocoa/qcocoaprintersupport.mm
@@ -129,6 +129,12 @@ QPrinterInfo QCocoaPrinterSupport::printerInfoFromPMPrinter(const PMPrinter &pri
return QPrinterInfo();
QPrinterInfo pi = QPrinterInfo(QCFString::toQString(PMPrinterGetID(printer)));
+
+ pi.d_func()->description = QCFString::toQString(PMPrinterGetName(printer));
+ pi.d_func()->location = QCFString::toQString(PMPrinterGetLocation(printer));
+ CFStringRef makeAndModel;
+ PMPrinterGetMakeAndModelName(printer, &makeAndModel);
+ pi.d_func()->makeAndModel = QCFString::toQString(makeAndModel);
pi.d_func()->isDefault = PMPrinterIsDefault(printer);
return pi;
diff --git a/src/printsupport/kernel/qprinterinfo.cpp b/src/printsupport/kernel/qprinterinfo.cpp
index dc60d7a50f..5ce0165a15 100644
--- a/src/printsupport/kernel/qprinterinfo.cpp
+++ b/src/printsupport/kernel/qprinterinfo.cpp
@@ -137,6 +137,9 @@ QPrinterInfo &QPrinterInfo::operator=(const QPrinterInfo &other)
/*!
Returns the name of the printer.
+ This is a unique id to identify the printer and may not be human-readable.
+
+ \sa QPrinterInfo::description()
\sa QPrinter::setPrinterName()
*/
QString QPrinterInfo::printerName() const
@@ -146,6 +149,44 @@ QString QPrinterInfo::printerName() const
}
/*!
+ \fn QString QPrinterInfo::description()
+ \since 5.0
+
+ Returns the human-readable description of the printer.
+
+ \sa QPrinterInfo::printerName()
+*/
+QString QPrinterInfo::description() const
+{
+ const Q_D(QPrinterInfo);
+ return d->description;
+}
+
+/*!
+ \fn QString QPrinterInfo::location()
+ \since 5.0
+
+ Returns the human-readable location of the printer.
+*/
+QString QPrinterInfo::location() const
+{
+ const Q_D(QPrinterInfo);
+ return d->location;
+}
+
+/*!
+ \fn QString QPrinterInfo::makeAndModel()
+ \since 5.0
+
+ Returns the human-readable make and model of the printer.
+*/
+QString QPrinterInfo::makeAndModel() const
+{
+ const Q_D(QPrinterInfo);
+ return d->makeAndModel;
+}
+
+/*!
Returns whether this QPrinterInfo object holds a printer definition.
An empty QPrinterInfo object could result for example from calling
diff --git a/src/printsupport/kernel/qprinterinfo.h b/src/printsupport/kernel/qprinterinfo.h
index 8b3ab448c8..634b68ceb0 100644
--- a/src/printsupport/kernel/qprinterinfo.h
+++ b/src/printsupport/kernel/qprinterinfo.h
@@ -65,8 +65,13 @@ public:
QPrinterInfo &operator=(const QPrinterInfo &other);
QString printerName() const;
+ QString description() const;
+ QString location() const;
+ QString makeAndModel() const;
+
bool isNull() const;
bool isDefault() const;
+
QList<QPrinter::PaperSize> supportedPaperSizes() const;
static QList<QPrinterInfo> availablePrinters();
diff --git a/src/printsupport/kernel/qprinterinfo_p.h b/src/printsupport/kernel/qprinterinfo_p.h
index ee139762c4..6e1c088f79 100644
--- a/src/printsupport/kernel/qprinterinfo_p.h
+++ b/src/printsupport/kernel/qprinterinfo_p.h
@@ -77,6 +77,9 @@ public:
static QPrinterInfoPrivate shared_null;
QString name;
+ QString description;
+ QString location;
+ QString makeAndModel;
bool isDefault;
#if !defined(QT_NO_CUPS) && !defined(QT_NO_LIBRARY)
diff --git a/tests/auto/printsupport/kernel/qprinterinfo/tst_qprinterinfo.cpp b/tests/auto/printsupport/kernel/qprinterinfo/tst_qprinterinfo.cpp
index 826cc73fc3..3427a122ee 100644
--- a/tests/auto/printsupport/kernel/qprinterinfo/tst_qprinterinfo.cpp
+++ b/tests/auto/printsupport/kernel/qprinterinfo/tst_qprinterinfo.cpp
@@ -296,6 +296,9 @@ void tst_QPrinterInfo::testAssignment()
QCOMPARE(copy.printerName(), printers.at(i).printerName());
QCOMPARE(copy.isNull(), printers.at(i).isNull());
QCOMPARE(copy.isDefault(), printers.at(i).isDefault());
+ QCOMPARE(copy.description(), printers.at(i).description());
+ QCOMPARE(copy.location(), printers.at(i).location());
+ QCOMPARE(copy.makeAndModel(), printers.at(i).makeAndModel());
QCOMPARE(copy.supportedPaperSizes(), printers.at(i).supportedPaperSizes());
}
}
@@ -308,9 +311,13 @@ void tst_QPrinterInfo::namedPrinter()
foreach (const QPrinterInfo &pi, printers) {
QPrinterInfo pi2 = QPrinterInfo::printerInfo(pi.printerName());
- qDebug() << "Printer: " << pi2.printerName() << " : "
+ qDebug() << "Printer: " << pi2.printerName() << " : " << pi2.description() << " : "
+ << pi2.location() << " : " << pi2.makeAndModel() << " : "
<< pi2.isNull() << " : " << pi2.isDefault();
QCOMPARE(pi2.printerName(), pi.printerName());
+ QCOMPARE(pi2.description(), pi.description());
+ QCOMPARE(pi2.location(), pi.location());
+ QCOMPARE(pi2.makeAndModel(), pi.makeAndModel());
QCOMPARE(pi2.supportedPaperSizes(), pi.supportedPaperSizes());
QCOMPARE(pi2.isNull(), pi.isNull());
QCOMPARE(pi2.isDefault(), pi.isDefault());