diff options
| -rw-r--r-- | src/controls/Private/qquicktreemodeladaptor.cpp | 3 | ||||
| -rw-r--r-- | src/controls/TreeView.qml | 14 |
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) { |
