diff --git a/src/plugins/qmljsinspector/qmljsinspector.cpp b/src/plugins/qmljsinspector/qmljsinspector.cpp index 7d00423d97c55398d59ebe801de7add5b623200d..997be7ee553529125ef523ce758bb6b6d4dde38c 100644 --- a/src/plugins/qmljsinspector/qmljsinspector.cpp +++ b/src/plugins/qmljsinspector/qmljsinspector.cpp @@ -186,7 +186,7 @@ Debugger::QmlEngine *InspectorUi::debuggerEngine() const void InspectorUi::showDebuggerTooltip(const QPoint &mousePos, TextEditor::ITextEditor *editor, int cursorPos) { Q_UNUSED(mousePos); - if (editor->id() == QmlJSEditor::Constants::C_QMLJSEDITOR_ID) { + if (m_clientProxy && editor->id() == QmlJSEditor::Constants::C_QMLJSEDITOR_ID) { QmlJSEditor::Internal::QmlJSTextEditor *qmlEditor = static_cast<QmlJSEditor::Internal::QmlJSTextEditor*>(editor->widget()); QTextCursor tc(qmlEditor->document()); @@ -201,10 +201,16 @@ void InspectorUi::showDebuggerTooltip(const QPoint &mousePos, TextEditor::ITextE QmlJS::AST::Node *qmlNode = qmlEditor->semanticInfo().nodeUnderCursor(cursorPos); if (!qmlNode) return; - QmlJS::AST::Node *node = qmlEditor->semanticInfo().declaringMemberNoProperties(cursorPos); - if (!node) - return; - QDeclarativeDebugObjectReference ref = m_clientProxy->objectReferenceForLocation(node->uiObjectMemberCast()->firstSourceLocation().startLine, node->uiObjectMemberCast()->firstSourceLocation().startColumn); + + QDeclarativeDebugObjectReference ref; + if (QmlJS::AST::Node *node + = qmlEditor->semanticInfo().declaringMemberNoProperties(cursorPos)) { + if (QmlJS::AST::UiObjectMember *objMember = node->uiObjectMemberCast()) { + ref = m_clientProxy->objectReferenceForLocation( + objMember->firstSourceLocation().startLine, + objMember->firstSourceLocation().startColumn); + } + } if (ref.debugId() == -1) return;