diff options
author | Friedemann Kleint <Friedemann.Kleint@qt.io> | 2018-07-25 13:38:01 +0200 |
---|---|---|
committer | Friedemann Kleint <Friedemann.Kleint@qt.io> | 2018-07-25 13:03:15 +0000 |
commit | ab770ff7952b0c2236021ecb6591492819b3bf46 (patch) | |
tree | 1830717a436bdfcbd2afa0eaf75ba8878364f381 /src | |
parent | 923dda6dd28cacbbe92e2649f336b68043133523 (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.cpp | 34 |
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)); } /*! |