summaryrefslogtreecommitdiffstats
path: root/src/printsupport
diff options
context:
space:
mode:
authorMartin Klapetek <mklapetek@kde.org>2013-10-18 17:31:46 +0200
committerThe Qt Project <gerrit-noreply@qt-project.org>2013-10-18 18:01:54 +0200
commitfcedf4073aaa8bebf7cd5e12fab737166f1b399f (patch)
tree9e9c62a3e71f8ae9521a652500afa3632feef658 /src/printsupport
parent229d92dc1e20cd49ef8235c063df8fa948b3fcda (diff)
Set currently selected printer to QCUPSSupport in PageSetupWidget
Also adds new method to allows setting a printer in QCUPSSupport by printer name. Change-Id: Iff7a88d95eab9de2c96872c45b12e708207bda16 Reviewed-by: John Layt <jlayt@kde.org>
Diffstat (limited to 'src/printsupport')
-rw-r--r--src/printsupport/dialogs/qpagesetupdialog_unix.cpp1
-rw-r--r--src/printsupport/kernel/qcups.cpp11
-rw-r--r--src/printsupport/kernel/qcups_p.h1
3 files changed, 13 insertions, 0 deletions
diff --git a/src/printsupport/dialogs/qpagesetupdialog_unix.cpp b/src/printsupport/dialogs/qpagesetupdialog_unix.cpp
index cdb80f96a8..8809b52751 100644
--- a/src/printsupport/dialogs/qpagesetupdialog_unix.cpp
+++ b/src/printsupport/dialogs/qpagesetupdialog_unix.cpp
@@ -408,6 +408,7 @@ void QPageSetupWidget::selectPrinter()
if (QCUPSSupport::isAvailable()) {
m_cups = true;
QCUPSSupport cups;
+ cups.setCurrentPrinter(m_printer->printerName());
const ppd_option_t* pageSizes = cups.pageSizes();
const int numChoices = pageSizes ? pageSizes->num_choices : 0;
diff --git a/src/printsupport/kernel/qcups.cpp b/src/printsupport/kernel/qcups.cpp
index f14d4b8dd3..e237d44dcd 100644
--- a/src/printsupport/kernel/qcups.cpp
+++ b/src/printsupport/kernel/qcups.cpp
@@ -215,6 +215,17 @@ const ppd_file_t* QCUPSSupport::setCurrentPrinter(int index)
return currPPD;
}
+const ppd_file_t* QCUPSSupport::setCurrentPrinter(const QString &printerName)
+{
+ Q_FOREACH (const QCUPSSupport::Printer &printer, QCUPSSupport::availableUnixPrinters()) {
+ if (printer.name == printerName) {
+ return setCurrentPrinter(printer.cupsPrinterIndex);
+ }
+ }
+
+ return 0;
+}
+
int QCUPSSupport::currentPrinterIndex() const
{
return currPrinterIndex;
diff --git a/src/printsupport/kernel/qcups_p.h b/src/printsupport/kernel/qcups_p.h
index 726bc7eba6..95ca323c22 100644
--- a/src/printsupport/kernel/qcups_p.h
+++ b/src/printsupport/kernel/qcups_p.h
@@ -149,6 +149,7 @@ public:
const cups_dest_t* availablePrinters() const;
int currentPrinterIndex() const;
const ppd_file_t* setCurrentPrinter(int index);
+ const ppd_file_t* setCurrentPrinter(const QString &printerName);
const ppd_file_t* currentPPD() const;
const ppd_option_t* ppdOption(const char *key) const;