From 222b4faba8ab8b0d82b7ab14549bfc46ed8393c7 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Thorbj=C3=B8rn=20Lindeijer?= <thorbjorn.lindeijer@nokia.com>
Date: Thu, 26 Mar 2009 18:04:06 +0100
Subject: [PATCH] Don't try to jump to unresolved included files

It popped up an error saying the file couldn't be found. Better not show
a link at all.
---
 src/libs/cplusplus/CppDocument.h    | 4 ++++
 src/plugins/cppeditor/cppeditor.cpp | 2 +-
 2 files changed, 5 insertions(+), 1 deletion(-)

diff --git a/src/libs/cplusplus/CppDocument.h b/src/libs/cplusplus/CppDocument.h
index 556e1293335..c1e9041988a 100644
--- a/src/libs/cplusplus/CppDocument.h
+++ b/src/libs/cplusplus/CppDocument.h
@@ -34,6 +34,7 @@
 #include "Macro.h"
 
 #include <QByteArray>
+#include <QFileInfo>
 #include <QList>
 #include <QMap>
 #include <QSharedPointer>
@@ -199,6 +200,9 @@ public:
 
         unsigned line() const
         { return _line; }
+
+        bool resolved() const
+        { return QFileInfo(_fileName).isAbsolute(); }
     };
 
     class MacroUse: public Block {
diff --git a/src/plugins/cppeditor/cppeditor.cpp b/src/plugins/cppeditor/cppeditor.cpp
index fea6fd3ed8d..dc043246688 100644
--- a/src/plugins/cppeditor/cppeditor.cpp
+++ b/src/plugins/cppeditor/cppeditor.cpp
@@ -605,7 +605,7 @@ CPPEditor::Link CPPEditor::findLinkAt(const QTextCursor &cursor,
     // Handle include directives
     const unsigned lineno = cursor.blockNumber() + 1;
     foreach (const Document::Include &incl, doc->includes()) {
-        if (incl.line() == lineno) {
+        if (incl.line() == lineno && incl.resolved()) {
             link.fileName = incl.fileName();
             link.pos = cursor.block().position();
             link.length = cursor.block().length();
-- 
GitLab