summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/controls/Private/qquicktreemodeladaptor.cpp3
-rw-r--r--src/controls/TreeView.qml14
2 files changed, 15 insertions, 2 deletions
diff --git a/src/controls/Private/qquicktreemodeladaptor.cpp b/src/controls/Private/qquicktreemodeladaptor.cpp
index 6bfa737d3..c9e317129 100644
--- a/src/controls/Private/qquicktreemodeladaptor.cpp
+++ b/src/controls/Private/qquicktreemodeladaptor.cpp
@@ -354,6 +354,7 @@ void QQuickTreeModelAdaptor::expand(const QModelIndex &idx)
ASSERT_CONSISTENCY();
if (!m_model)
return;
+ Q_ASSERT(!idx.isValid() || idx.model() == m_model);
if (!idx.isValid() || !m_model->hasChildren(idx))
return;
if (m_expandedItems.contains(idx))
@@ -374,6 +375,7 @@ void QQuickTreeModelAdaptor::collapse(const QModelIndex &idx)
ASSERT_CONSISTENCY();
if (!m_model)
return;
+ Q_ASSERT(!idx.isValid() || idx.model() == m_model);
if (!idx.isValid() || !m_model->hasChildren(idx))
return;
if (!m_expandedItems.contains(idx))
@@ -394,6 +396,7 @@ bool QQuickTreeModelAdaptor::isExpanded(const QModelIndex &index) const
ASSERT_CONSISTENCY();
if (!m_model)
return false;
+ Q_ASSERT(!index.isValid() || index.model() == m_model);
return !index.isValid() || m_expandedItems.contains(index);
}
diff --git a/src/controls/TreeView.qml b/src/controls/TreeView.qml
index 08f0da4d4..84c30edd3 100644
--- a/src/controls/TreeView.qml
+++ b/src/controls/TreeView.qml
@@ -56,15 +56,25 @@ BasicTableView {
signal collapsed(var index)
function isExpanded(index) {
+ if (index.valid && index.model !== model) {
+ console.warn("TreeView.isExpanded: model and index mismatch")
+ return false
+ }
return modelAdaptor.isExpanded(index)
}
function collapse(index) {
- modelAdaptor.collapse(index)
+ if (index.valid && index.model !== model)
+ console.warn("TreeView.collapse: model and index mismatch")
+ else
+ modelAdaptor.collapse(index)
}
function expand(index) {
- modelAdaptor.expand(index)
+ if (index.valid && index.model !== model)
+ console.warn("TreeView.expand: model and index mismatch")
+ else
+ modelAdaptor.expand(index)
}
function indexAt(x, y) {