From d45460726479931ff7ed75fe0d34da8eea469718 Mon Sep 17 00:00:00 2001 From: Roberto Raggi Date: Wed, 10 Dec 2008 17:21:01 +0100 Subject: Implemented tooltip and lookat for #include directives. --- src/plugins/cpptools/cpphoverhandler.cpp | 10 ++++++++++ 1 file changed, 10 insertions(+) (limited to 'src/plugins/cpptools/cpphoverhandler.cpp') diff --git a/src/plugins/cpptools/cpphoverhandler.cpp b/src/plugins/cpptools/cpphoverhandler.cpp index 338123bc5e..f3831e5394 100644 --- a/src/plugins/cpptools/cpphoverhandler.cpp +++ b/src/plugins/cpptools/cpphoverhandler.cpp @@ -177,6 +177,16 @@ void CppHoverHandler::updateHelpIdAndTooltip(TextEditor::ITextEditor *editor, in } } + if (m_toolTip.isEmpty()) { + unsigned lineno = tc.blockNumber() + 1; + foreach (const Document::Include &incl, doc->includes()) { + if (lineno == incl.line()) { + m_toolTip = incl.fileName(); + break; + } + } + } + if (m_toolTip.isEmpty()) { // Move to the end of a qualified name bool stop = false; -- cgit v1.2.1 From bab60d14b341edc4fd1f81ec12cc460441948c3b Mon Sep 17 00:00:00 2001 From: Roberto Raggi Date: Fri, 12 Dec 2008 10:07:58 +0100 Subject: Introduced CPlusPlus::Snapshot, it contains a snap shot of the indexer's current state. This change removes a number of wrong usages of the CppModelManager::documents()/document(). --- src/plugins/cpptools/cpphoverhandler.cpp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) (limited to 'src/plugins/cpptools/cpphoverhandler.cpp') diff --git a/src/plugins/cpptools/cpphoverhandler.cpp b/src/plugins/cpptools/cpphoverhandler.cpp index f3831e5394..fab0d83b31 100644 --- a/src/plugins/cpptools/cpphoverhandler.cpp +++ b/src/plugins/cpptools/cpphoverhandler.cpp @@ -165,9 +165,11 @@ void CppHoverHandler::updateHelpIdAndTooltip(TextEditor::ITextEditor *editor, in QTextCursor tc(edit->document()); tc.setPosition(pos); + const Snapshot documents = m_manager->snapshot(); + const int lineNumber = tc.block().blockNumber() + 1; const QString fileName = editor->file()->fileName(); - Document::Ptr doc = m_manager->document(fileName); + Document::Ptr doc = documents.value(fileName); if (doc) { foreach (Document::DiagnosticMessage m, doc->diagnosticMessages()) { if (m.line() == lineNumber) { @@ -212,7 +214,7 @@ void CppHoverHandler::updateHelpIdAndTooltip(TextEditor::ITextEditor *editor, in Symbol *lastSymbol = doc->findSymbolAt(line, column); TypeOfExpression typeOfExpression; - typeOfExpression.setDocuments(m_manager->documents()); + typeOfExpression.setSnapshot(documents); QList types = typeOfExpression(expression, doc, lastSymbol); if (!types.isEmpty()) { -- cgit v1.2.1