diff options
-rw-r--r-- | src/plugins/platforms/cocoa/qcocoaprintersupport.mm | 6 | ||||
-rw-r--r-- | src/printsupport/kernel/qprinterinfo.cpp | 41 | ||||
-rw-r--r-- | src/printsupport/kernel/qprinterinfo.h | 5 | ||||
-rw-r--r-- | src/printsupport/kernel/qprinterinfo_p.h | 3 | ||||
-rw-r--r-- | tests/auto/printsupport/kernel/qprinterinfo/tst_qprinterinfo.cpp | 9 |
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()); |