summaryrefslogtreecommitdiff
path: root/src/plugins/cpptools/cpphoverhandler.cpp
diff options
context:
space:
mode:
authorcon <qtc-committer@nokia.com>2008-12-12 11:09:05 +0100
committercon <qtc-committer@nokia.com>2008-12-12 11:09:05 +0100
commit238b81cc9fc69c9ab8d69d553fcb4acc957cc237 (patch)
tree91815fa95a47e2385501f36415a4188b5451a2a3 /src/plugins/cpptools/cpphoverhandler.cpp
parent2bb0db7d82937ae14729ba034823fadf604e8553 (diff)
parent0145a3dea966df75afbf5c85c824d37795ad645c (diff)
downloadqt-creator-238b81cc9fc69c9ab8d69d553fcb4acc957cc237.tar.gz
Merge commit 'origin/0.9.1-beta'
Diffstat (limited to 'src/plugins/cpptools/cpphoverhandler.cpp')
-rw-r--r--src/plugins/cpptools/cpphoverhandler.cpp16
1 files changed, 14 insertions, 2 deletions
diff --git a/src/plugins/cpptools/cpphoverhandler.cpp b/src/plugins/cpptools/cpphoverhandler.cpp
index 338123bc5e..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) {
@@ -178,6 +180,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;
while (!stop) {
@@ -202,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<TypeOfExpression::Result> types = typeOfExpression(expression, doc, lastSymbol);
if (!types.isEmpty()) {