summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorFriedemann Kleint <Friedemann.Kleint@qt.io>2018-07-25 13:38:01 +0200
committerFriedemann Kleint <Friedemann.Kleint@qt.io>2018-07-25 13:03:15 +0000
commitab770ff7952b0c2236021ecb6591492819b3bf46 (patch)
tree1830717a436bdfcbd2afa0eaf75ba8878364f381 /src
parent923dda6dd28cacbbe92e2649f336b68043133523 (diff)
QUiLoader: Refactor QAbstractFormBuilder::applyTabStops()
Collect all widgets before applying the order and bail out if one cannot be found. The algorithm cannot do any meaningful if one is missing. Change the loop applying the order to a one-liner. Change-Id: I52a2d7e8252d346f6d697889e796c76f114a56f2 Reviewed-by: Jarek Kobus <jaroslaw.kobus@qt.io>
Diffstat (limited to 'src')
-rw-r--r--src/designer/src/lib/uilib/abstractformbuilder.cpp34
1 files changed, 13 insertions, 21 deletions
diff --git a/src/designer/src/lib/uilib/abstractformbuilder.cpp b/src/designer/src/lib/uilib/abstractformbuilder.cpp
index a64c1d951..166d1c31d 100644
--- a/src/designer/src/lib/uilib/abstractformbuilder.cpp
+++ b/src/designer/src/lib/uilib/abstractformbuilder.cpp
@@ -1698,29 +1698,21 @@ void QAbstractFormBuilder::applyTabStops(QWidget *widget, DomTabStops *tabStops)
if (!tabStops)
return;
- QWidget *lastWidget = 0;
-
- const QStringList l = tabStops->elementTabStop();
- for (int i=0; i<l.size(); ++i) {
- const QString name = l.at(i);
-
- QWidget *child = widget->findChild<QWidget*>(name);
- if (!child) {
- uiLibWarning(QCoreApplication::translate("QAbstractFormBuilder", "While applying tab stops: The widget '%1' could not be found.").arg(name));
- continue;
- }
-
- if (i == 0) {
- lastWidget = widget->findChild<QWidget*>(name);
- continue;
- } else if (!child || !lastWidget) {
- continue;
+ const QStringList &names = tabStops->elementTabStop();
+ QWidgetList widgets;
+ widgets.reserve(names.size());
+ for (const QString &name : names) {
+ if (QWidget *child = widget->findChild<QWidget*>(name)) {
+ widgets.append(child);
+ } else {
+ uiLibWarning(QCoreApplication::translate("QAbstractFormBuilder",
+ "While applying tab stops: The widget '%1' could not be found.")
+ .arg(name));
}
-
- QWidget::setTabOrder(lastWidget, child);
-
- lastWidget = widget->findChild<QWidget*>(name);
}
+
+ for (int i = 1, count = widgets.size(); i < count; ++i)
+ QWidget::setTabOrder(widgets.at(i - 1), widgets.at(i));
}
/*!