diff --git a/src/plugins/qmldesigner/components/navigator/navigatortreemodel.cpp b/src/plugins/qmldesigner/components/navigator/navigatortreemodel.cpp index 4d1ff2fa8a4..be69dc49e56 100644 --- a/src/plugins/qmldesigner/components/navigator/navigatortreemodel.cpp +++ b/src/plugins/qmldesigner/components/navigator/navigatortreemodel.cpp @@ -247,6 +247,8 @@ QVariant NavigatorTreeModel::data(const QModelIndex &index, int role) const const ModelNode modelNode = modelNodeForIndex(index); const QmlObjectNode currentQmlObjectNode(modelNode); + QTC_ASSERT(m_view, return QVariant()); + if (!modelNode.isValid()) return QVariant(); if (index.column() == 0) { @@ -279,7 +281,7 @@ QVariant NavigatorTreeModel::data(const QModelIndex &index, int role) const "This is independent of the visibility property in QML."); } else if (index.column() == 2) { //visible if (role == Qt::CheckStateRole) - return isNodeVisible(modelNode) ? Qt::Unchecked : Qt::Checked; + return m_view->isNodeVisible(modelNode) ? Qt::Unchecked : Qt::Checked; else if (role == Qt::ToolTipRole) return tr("Toggles whether this item is exported as an " "alias property of the root item."); @@ -703,14 +705,9 @@ void NavigatorTreeModel::notifyModelNodesMoved(const QList &modelNode layoutChanged(indexes); } -bool NavigatorTreeModel::isNodeVisible(const ModelNode &modelNode) const -{ - return modelNode.auxiliaryData("invisible").toBool(); -} - bool NavigatorTreeModel::isNodeVisible(const QModelIndex &index) const { - return isNodeVisible(modelNodeForIndex(index)); + return m_view->isNodeVisible(modelNodeForIndex(index)); } bool NavigatorTreeModel::hasError(const QModelIndex &index) const diff --git a/src/plugins/qmldesigner/components/navigator/navigatortreemodel.h b/src/plugins/qmldesigner/components/navigator/navigatortreemodel.h index f456204b373..78c998274be 100644 --- a/src/plugins/qmldesigner/components/navigator/navigatortreemodel.h +++ b/src/plugins/qmldesigner/components/navigator/navigatortreemodel.h @@ -89,7 +89,6 @@ public: void notifyModelNodesRemoved(const QList &modelNodes); void notifyModelNodesInserted(const QList &modelNodes); void notifyModelNodesMoved(const QList &modelNodes); - bool isNodeVisible(const ModelNode &modelNode) const; bool isNodeVisible(const QModelIndex &index) const; bool hasError(const QModelIndex &index) const; diff --git a/src/plugins/qmldesigner/components/navigator/navigatorview.cpp b/src/plugins/qmldesigner/components/navigator/navigatorview.cpp index 15c8d01db68..a3c5fe1690a 100644 --- a/src/plugins/qmldesigner/components/navigator/navigatorview.cpp +++ b/src/plugins/qmldesigner/components/navigator/navigatorview.cpp @@ -198,6 +198,11 @@ void NavigatorView::handleChangedExport(const ModelNode &modelNode, bool exporte } } +bool NavigatorView::isNodeVisible(const ModelNode &modelNode) const +{ + return modelNode.auxiliaryData("invisible").toBool(); +} + void NavigatorView::nodeAboutToBeRemoved(const ModelNode & /*removedNode*/) { } diff --git a/src/plugins/qmldesigner/components/navigator/navigatorview.h b/src/plugins/qmldesigner/components/navigator/navigatorview.h index eac5787bcc9..410180ef38a 100644 --- a/src/plugins/qmldesigner/components/navigator/navigatorview.h +++ b/src/plugins/qmldesigner/components/navigator/navigatorview.h @@ -76,6 +76,7 @@ public: void bindingPropertiesChanged(const QList &propertyList, PropertyChangeFlags) override; void handleChangedExport(const ModelNode &modelNode, bool exported); + bool isNodeVisible(const ModelNode &modelNode) const; private: void changeSelection(const QItemSelection &selected, const QItemSelection &deselected);