aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBartlomiej Moskal <bartlomiej.moskal@qt.io>2021-01-21 11:04:55 +0100
committerBartlomiej Moskal <bartlomiej.moskal@qt.io>2021-02-03 11:31:26 +0000
commitd8ac047575781635e70768973a0080b19b735df4 (patch)
treeabe408189a4091b11050b6b10c267f519e4b0498
parent7e819a5777a0632175347688312da9cee0702177 (diff)
Combobox: Fix initial set of inputMethodHints
Fix for setting up initial inputMethodHints to Qt::ImhNoPredictiveText for Combobox. Before this change, Qt::ImhNoPredictiveText was never set for Combobox. As inputMethodHints() by default returns Qt::ImhNoPredictiveText value, setInputMethodHints didn't allow to set this value correctly. Task-number: QTBUG-61021 Change-Id: Ie4ec0d32fff7586bc3a8bd055b752000c0330fad Reviewed-by: Mitch Curtis <mitch.curtis@qt.io> Reviewed-by: Assam Boudjelthia <assam.boudjelthia@qt.io> (cherry picked from commit b87cada5e386e5a16ff04cf50bd88e97c4819099)
-rw-r--r--src/quicktemplates2/qquickcombobox.cpp21
-rw-r--r--tests/auto/controls/data/tst_combobox.qml1
2 files changed, 16 insertions, 6 deletions
diff --git a/src/quicktemplates2/qquickcombobox.cpp b/src/quicktemplates2/qquickcombobox.cpp
index 1d89b016..ec6a6246 100644
--- a/src/quicktemplates2/qquickcombobox.cpp
+++ b/src/quicktemplates2/qquickcombobox.cpp
@@ -265,6 +265,8 @@ public:
void itemImplicitWidthChanged(QQuickItem *item) override;
void itemImplicitHeightChanged(QQuickItem *item) override;
+ void setInputMethodHints(Qt::InputMethodHints hints, bool force = false);
+
static void hideOldPopup(QQuickPopup *popup);
bool flat = false;
@@ -770,6 +772,16 @@ void QQuickComboBoxPrivate::itemImplicitWidthChanged(QQuickItem *item)
emit q->implicitIndicatorWidthChanged();
}
+void QQuickComboBoxPrivate::setInputMethodHints(Qt::InputMethodHints hints, bool force)
+{
+ Q_Q(QQuickComboBox);
+ if (!force && hints == q->inputMethodHints())
+ return;
+
+ extra.value().inputMethodHints = hints;
+ emit q->inputMethodHintsChanged();
+}
+
void QQuickComboBoxPrivate::itemImplicitHeightChanged(QQuickItem *item)
{
Q_Q(QQuickComboBox);
@@ -804,7 +816,8 @@ QQuickComboBox::QQuickComboBox(QQuickItem *parent)
#if QT_CONFIG(cursor)
setCursor(Qt::ArrowCursor);
#endif
- setInputMethodHints(Qt::ImhNoPredictiveText);
+ Q_D(QQuickComboBox);
+ d->setInputMethodHints(Qt::ImhNoPredictiveText, true);
}
QQuickComboBox::~QQuickComboBox()
@@ -1437,11 +1450,7 @@ Qt::InputMethodHints QQuickComboBox::inputMethodHints() const
void QQuickComboBox::setInputMethodHints(Qt::InputMethodHints hints)
{
Q_D(QQuickComboBox);
- if (hints == inputMethodHints())
- return;
-
- d->extra.value().inputMethodHints = hints;
- emit inputMethodHintsChanged();
+ d->setInputMethodHints(hints);
}
/*!
diff --git a/tests/auto/controls/data/tst_combobox.qml b/tests/auto/controls/data/tst_combobox.qml
index 4907b87f..cd4c8466 100644
--- a/tests/auto/controls/data/tst_combobox.qml
+++ b/tests/auto/controls/data/tst_combobox.qml
@@ -157,6 +157,7 @@ TestCase {
verify(control.delegate)
verify(control.indicator)
verify(control.popup)
+ compare(control.inputMethodHints, Qt.ImhNoPredictiveText)
}
function test_array() {