diff options
author | J-P Nurmi <jpnurmi@qt.io> | 2016-08-09 00:13:30 +0200 |
---|---|---|
committer | J-P Nurmi <jpnurmi@qt.io> | 2016-08-09 06:58:58 +0000 |
commit | b172b30368bafc839b92f767324496a509267fc7 (patch) | |
tree | c8c225227b8844bfa6c5cf1860844353b5ec7167 /src/quicktemplates2/qquickcombobox.cpp | |
parent | 1b1df43976444d11519467d84891ee3ffe6fbaec (diff) |
ComboBox: ensure an update of the current text on data change
Task-number: QTBUG-55118
Change-Id: I4edcd660a35d8b8719fc4c09719332d088859ffc
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
Diffstat (limited to 'src/quicktemplates2/qquickcombobox.cpp')
-rw-r--r-- | src/quicktemplates2/qquickcombobox.cpp | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/src/quicktemplates2/qquickcombobox.cpp b/src/quicktemplates2/qquickcombobox.cpp index cce61509..00fdd421 100644 --- a/src/quicktemplates2/qquickcombobox.cpp +++ b/src/quicktemplates2/qquickcombobox.cpp @@ -40,6 +40,7 @@ #include "qquickpopup_p_p.h" #include <QtCore/qregexp.h> +#include <QtCore/qabstractitemmodel.h> #include <QtGui/qpa/qplatformtheme.h> #include <QtQml/qjsvalue.h> #include <QtQml/qqmlcontext.h> @@ -410,6 +411,11 @@ void QQuickComboBox::setModel(const QVariant& m) if (d->model == model) return; + if (QAbstractItemModel* aim = qvariant_cast<QAbstractItemModel *>(d->model)) + QObjectPrivate::disconnect(aim, &QAbstractItemModel::dataChanged, d, &QQuickComboBoxPrivate::updateCurrentText); + if (QAbstractItemModel* aim = qvariant_cast<QAbstractItemModel *>(model)) + QObjectPrivate::connect(aim, &QAbstractItemModel::dataChanged, d, &QQuickComboBoxPrivate::updateCurrentText); + d->model = model; d->createDelegateModel(); if (isComponentComplete()) { |