File 0001-QUnixPrintWidget-fix-some-poor-uses-of-the-QComboBox-API.patch of Package libqt5-qtbase
From 04e76ec857efea1c28322cd44cb04f15134944fe Mon Sep 17 00:00:00 2001
From: Marc Mutz <marc.mutz@kdab.com>
Date: Tue, 29 Dec 2015 10:04:55 +0100
Subject: [PATCH] QUnixPrintWidget: fix some poor uses of the QComboBox API
- populate the widget with addItems(QStringList) instead of
looping over addItem(QString)
- Use findText() instead of looping over itemText(int).
QComboBox::findText() delegates searching to the model
(via QAbstractItemModel::match()), so is potentially
much faster. I say potentially, because match() isn't
properly reimplemented in most models, yet. But that is
something to fix in the models.
Change-Id: I6e52cf5af810ab7869c0270504a241868a5ca281
Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
---
src/printsupport/dialogs/qprintdialog_unix.cpp | 25 ++++++++++---------------
1 file changed, 10 insertions(+), 15 deletions(-)
diff --git a/src/printsupport/dialogs/qprintdialog_unix.cpp b/src/printsupport/dialogs/qprintdialog_unix.cpp
index 9633032a..c6c84ca 100644
--- a/src/printsupport/dialogs/qprintdialog_unix.cpp
+++ b/src/printsupport/dialogs/qprintdialog_unix.cpp
@@ -661,18 +661,16 @@ QUnixPrintWidgetPrivate::QUnixPrintWidgetPrivate(QUnixPrintWidget *p, QPrinter *
widget.setupUi(parent);
int currentPrinterIndex = 0;
- QStringList printers;
- QString defaultPrinter;
QPlatformPrinterSupport *ps = QPlatformPrinterSupportPlugin::get();
if (ps) {
- printers = ps->availablePrintDeviceIds();
- defaultPrinter = ps->defaultPrintDeviceId();
- }
+ const QStringList printers = ps->availablePrintDeviceIds();
+ const QString defaultPrinter = ps->defaultPrintDeviceId();
+
+ widget.printers->addItems(printers);
- for (int i = 0; i < printers.size(); ++i) {
- widget.printers->addItem(printers.at(i));
- if (printers.at(i) == defaultPrinter)
- currentPrinterIndex = i;
+ const int idx = printers.indexOf(defaultPrinter);
+ if (idx >= 0)
+ currentPrinterIndex = idx;
}
widget.properties->setEnabled(true);
--
2.7.4