aboutsummaryrefslogtreecommitdiffstats
path: root/src/quicktemplates2/qquickcombobox.cpp
diff options
context:
space:
mode:
authorJ-P Nurmi <jpnurmi@qt.io>2016-08-09 00:13:30 +0200
committerJ-P Nurmi <jpnurmi@qt.io>2016-08-09 06:58:58 +0000
commitb172b30368bafc839b92f767324496a509267fc7 (patch)
treec8c225227b8844bfa6c5cf1860844353b5ec7167 /src/quicktemplates2/qquickcombobox.cpp
parent1b1df43976444d11519467d84891ee3ffe6fbaec (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.cpp6
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()) {