From bb3696839698818d7b8fd3ea5fb4d98418c46a4d Mon Sep 17 00:00:00 2001 From: Stephen Kelly Date: Mon, 22 Feb 2016 15:44:57 +0100 Subject: [PATCH] KModelIndexProxyMapper: Simplify logic of connected check --- src/kmodelindexproxymapper.cpp | 23 +++++------------------ 1 file changed, 5 insertions(+), 18 deletions(-) diff --git a/src/kmodelindexproxymapper.cpp b/src/kmodelindexproxymapper.cpp index 3249029..7922e85 100644 --- a/src/kmodelindexproxymapper.cpp +++ b/src/kmodelindexproxymapper.cpp @@ -99,14 +99,6 @@ void KModelIndexProxyMapperPrivate::createProxyChain() { QPointer targetModel = m_rightModel; - if (!targetModel) { - return; - } - - if (m_leftModel == targetModel) { - return; - } - QList > proxyChainDown; QPointer selectionTargetProxyModel = qobject_cast(targetModel); while (selectionTargetProxyModel) { @@ -116,6 +108,7 @@ void KModelIndexProxyMapperPrivate::createProxyChain() if (selectionTargetProxyModel == m_leftModel) { m_proxyChainDown = proxyChainDown; + Q_ASSERT(assertValid()); return; } } @@ -132,6 +125,7 @@ void KModelIndexProxyMapperPrivate::createProxyChain() if (targetIndex != -1) { m_proxyChainDown = proxyChainDown.mid(targetIndex + 1, proxyChainDown.size()); + Q_ASSERT(assertValid()); return; } } @@ -141,16 +135,9 @@ void KModelIndexProxyMapperPrivate::createProxyChain() bool KModelIndexProxyMapperPrivate::assertValid() { - if (m_proxyChainDown.isEmpty()) { - Q_ASSERT(!m_proxyChainUp.isEmpty()); - Q_ASSERT(m_proxyChainUp.last()->sourceModel() == m_rightModel); - } else if (m_proxyChainUp.isEmpty()) { - Q_ASSERT(!m_proxyChainDown.isEmpty()); - Q_ASSERT(m_proxyChainDown.first()->sourceModel() == m_leftModel); - } else { - Q_ASSERT(m_proxyChainDown.first()->sourceModel() == m_proxyChainUp.last()->sourceModel()); - } - return true; + auto konamiRight = m_proxyChainUp.isEmpty() ? m_leftModel : m_proxyChainUp.last()->sourceModel(); + auto konamiLeft = m_proxyChainDown.isEmpty() ? m_rightModel : m_proxyChainDown.first()->sourceModel(); + return konamiLeft && (konamiLeft == konamiRight); } KModelIndexProxyMapper::KModelIndexProxyMapper(const QAbstractItemModel *leftModel, const QAbstractItemModel *rightModel, QObject *parent)