diff options
author | Andy Shaw <andy.shaw@qt.io> | 2017-08-21 14:34:17 +0200 |
---|---|---|
committer | Andy Shaw <andy.shaw@qt.io> | 2017-08-25 06:50:10 +0000 |
commit | 8ebfe00f4ab79516a8276929a682c24f4c675b5f (patch) | |
tree | 300b3bc21caddde394ecdff542993a060b3b1bf1 /src/plugins/printsupport/cups | |
parent | 31190140c3aa11570f4c07ca2cb62b2bfe96a131 (diff) |
Initialize the print engine with the given printer name
Originally when the QPrinter was created it would create the engine with
the default printer and then change it afterwards even though the
desired printer may already be known here. So by passing the printer
name we ensure that it is initialized with the desired one right away.
Task-number: QTBUG-62221
Change-Id: Iaa90243708b57bf89354a527a982ac45c991f603
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
Diffstat (limited to 'src/plugins/printsupport/cups')
4 files changed, 6 insertions, 6 deletions
diff --git a/src/plugins/printsupport/cups/qcupsprintengine.cpp b/src/plugins/printsupport/cups/qcupsprintengine.cpp index a16eb3abb5..e7949d3a0b 100644 --- a/src/plugins/printsupport/cups/qcupsprintengine.cpp +++ b/src/plugins/printsupport/cups/qcupsprintengine.cpp @@ -57,11 +57,11 @@ QT_BEGIN_NAMESPACE extern QMarginsF qt_convertMargins(const QMarginsF &margins, QPageLayout::Unit fromUnits, QPageLayout::Unit toUnits); -QCupsPrintEngine::QCupsPrintEngine(QPrinter::PrinterMode m) +QCupsPrintEngine::QCupsPrintEngine(QPrinter::PrinterMode m, const QString &deviceId) : QPdfPrintEngine(*new QCupsPrintEnginePrivate(m)) { Q_D(QCupsPrintEngine); - d->setupDefaultPrinter(); + d->changePrinter(deviceId); state = QPrinter::Idle; } diff --git a/src/plugins/printsupport/cups/qcupsprintengine_p.h b/src/plugins/printsupport/cups/qcupsprintengine_p.h index 5956c86551..0ebf6e7a0f 100644 --- a/src/plugins/printsupport/cups/qcupsprintengine_p.h +++ b/src/plugins/printsupport/cups/qcupsprintengine_p.h @@ -68,7 +68,7 @@ class QCupsPrintEngine : public QPdfPrintEngine { Q_DECLARE_PRIVATE(QCupsPrintEngine) public: - QCupsPrintEngine(QPrinter::PrinterMode m); + QCupsPrintEngine(QPrinter::PrinterMode m, const QString &deviceId); virtual ~QCupsPrintEngine(); // reimplementations QPdfPrintEngine diff --git a/src/plugins/printsupport/cups/qcupsprintersupport.cpp b/src/plugins/printsupport/cups/qcupsprintersupport.cpp index 1887625406..a9c992a2e1 100644 --- a/src/plugins/printsupport/cups/qcupsprintersupport.cpp +++ b/src/plugins/printsupport/cups/qcupsprintersupport.cpp @@ -63,9 +63,9 @@ QCupsPrinterSupport::~QCupsPrinterSupport() { } -QPrintEngine *QCupsPrinterSupport::createNativePrintEngine(QPrinter::PrinterMode printerMode) +QPrintEngine *QCupsPrinterSupport::createNativePrintEngine(QPrinter::PrinterMode printerMode, const QString &deviceId) { - return new QCupsPrintEngine(printerMode); + return new QCupsPrintEngine(printerMode, (deviceId.isEmpty() ? defaultPrintDeviceId() : deviceId)); } QPaintEngine *QCupsPrinterSupport::createPaintEngine(QPrintEngine *engine, QPrinter::PrinterMode printerMode) diff --git a/src/plugins/printsupport/cups/qcupsprintersupport_p.h b/src/plugins/printsupport/cups/qcupsprintersupport_p.h index 13f64b5e69..df6507d324 100644 --- a/src/plugins/printsupport/cups/qcupsprintersupport_p.h +++ b/src/plugins/printsupport/cups/qcupsprintersupport_p.h @@ -64,7 +64,7 @@ public: QCupsPrinterSupport(); ~QCupsPrinterSupport(); - QPrintEngine *createNativePrintEngine(QPrinter::PrinterMode printerMode) Q_DECL_OVERRIDE; + QPrintEngine *createNativePrintEngine(QPrinter::PrinterMode printerMode, const QString &deviceId = QString()) Q_DECL_OVERRIDE; QPaintEngine *createPaintEngine(QPrintEngine *printEngine, QPrinter::PrinterMode) Q_DECL_OVERRIDE; QPrintDevice createPrintDevice(const QString &id) Q_DECL_OVERRIDE; |