aboutsummaryrefslogtreecommitdiffstats
path: root/src/quicktemplates2/qquickcombobox.cpp
diff options
context:
space:
mode:
authorLiang Qi <liang.qi@qt.io>2019-12-30 11:44:50 +0100
committerLiang Qi <liang.qi@qt.io>2019-12-30 11:44:50 +0100
commitec686af14f817cc51323cfb01186f036905789c3 (patch)
tree29d229c8df8f37db56b9f6f5f3997bcd732689d4 /src/quicktemplates2/qquickcombobox.cpp
parent0425562e14e41b62dc7631c7c02768b8294454d0 (diff)
parent090eab86b05478572485b3086c087a846fbae7fd (diff)
Merge remote-tracking branch 'origin/5.14' into 5.15
Conflicts: .qmake.conf tests/auto/controls/data/tst_combobox.qml Change-Id: I8471cdac4397f77a8e58140d58c6b50d3c437928
Diffstat (limited to 'src/quicktemplates2/qquickcombobox.cpp')
-rw-r--r--src/quicktemplates2/qquickcombobox.cpp12
1 files changed, 9 insertions, 3 deletions
diff --git a/src/quicktemplates2/qquickcombobox.cpp b/src/quicktemplates2/qquickcombobox.cpp
index 79ee6663..5f3f1cfc 100644
--- a/src/quicktemplates2/qquickcombobox.cpp
+++ b/src/quicktemplates2/qquickcombobox.cpp
@@ -448,7 +448,7 @@ void QQuickComboBoxPrivate::updateCurrentText()
if (currentText != text) {
currentText = text;
if (!hasDisplayText)
- q->setAccessibleName(text);
+ q->maybeSetAccessibleName(text);
emit q->currentTextChanged();
}
if (!hasDisplayText && displayText != text) {
@@ -1012,7 +1012,7 @@ void QQuickComboBox::setDisplayText(const QString &text)
return;
d->displayText = text;
- setAccessibleName(text);
+ maybeSetAccessibleName(text);
emit displayTextChanged();
}
@@ -1705,6 +1705,12 @@ bool QQuickComboBox::eventFilter(QObject *object, QEvent *event)
// the user clicked on the popup button to open it, not close it).
d->hidePopup(false);
setPressed(false);
+
+ // The focus left the text field, so if the edit text matches an item in the model,
+ // change our currentIndex to that. This matches widgets' behavior.
+ const int indexForEditText = find(d->extra.value().editText, Qt::MatchFixedString);
+ if (indexForEditText > -1)
+ setCurrentIndex(indexForEditText);
}
break;
#if QT_CONFIG(im)
@@ -1945,7 +1951,7 @@ void QQuickComboBox::accessibilityActiveChanged(bool active)
QQuickControl::accessibilityActiveChanged(active);
if (active) {
- setAccessibleName(d->hasDisplayText ? d->displayText : d->currentText);
+ maybeSetAccessibleName(d->hasDisplayText ? d->displayText : d->currentText);
setAccessibleProperty("editable", isEditable());
}
}