summaryrefslogtreecommitdiff
path: root/src/plugins/cmakeprojectmanager/cmakeeditor.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins/cmakeprojectmanager/cmakeeditor.cpp')
-rw-r--r--src/plugins/cmakeprojectmanager/cmakeeditor.cpp19
1 files changed, 12 insertions, 7 deletions
diff --git a/src/plugins/cmakeprojectmanager/cmakeeditor.cpp b/src/plugins/cmakeprojectmanager/cmakeeditor.cpp
index a197345419..a1b529e3e9 100644
--- a/src/plugins/cmakeprojectmanager/cmakeeditor.cpp
+++ b/src/plugins/cmakeprojectmanager/cmakeeditor.cpp
@@ -117,7 +117,10 @@ public:
private:
bool save(const QString &fileName = QString());
- Utils::Link findLinkAt(const QTextCursor &cursor, bool resolveTarget = true, bool inNextSplit = false) override;
+ void findLinkAt(const QTextCursor &cursor,
+ Utils::ProcessLinkCallback &&processLinkCallback,
+ bool resolveTarget = true,
+ bool inNextSplit = false) override;
void contextMenuEvent(QContextMenuEvent *e) override;
};
@@ -136,8 +139,10 @@ static bool isValidFileNameChar(const QChar &c)
|| c == QLatin1Char('\\');
}
-Utils::Link CMakeEditorWidget::findLinkAt(const QTextCursor &cursor,
- bool/* resolveTarget*/, bool /*inNextSplit*/)
+void CMakeEditorWidget::findLinkAt(const QTextCursor &cursor,
+ Utils::ProcessLinkCallback &&processLinkCallback,
+ bool/* resolveTarget*/,
+ bool /*inNextSplit*/)
{
Utils::Link link;
@@ -149,7 +154,7 @@ Utils::Link CMakeEditorWidget::findLinkAt(const QTextCursor &cursor,
// check if the current position is commented out
const int hashPos = block.indexOf(QLatin1Char('#'));
if (hashPos >= 0 && hashPos < positionInBlock)
- return link;
+ return processLinkCallback(link);
// find the beginning of a filename
QString buffer;
@@ -177,7 +182,7 @@ Utils::Link CMakeEditorWidget::findLinkAt(const QTextCursor &cursor,
}
if (buffer.isEmpty())
- return link;
+ return processLinkCallback(link);
// TODO: Resolve variables
@@ -191,13 +196,13 @@ Utils::Link CMakeEditorWidget::findLinkAt(const QTextCursor &cursor,
if (QFileInfo::exists(subProject))
fileName = subProject;
else
- return link;
+ return processLinkCallback(link);
}
link.targetFileName = fileName;
link.linkTextStart = cursor.position() - positionInBlock + beginPos + 1;
link.linkTextEnd = cursor.position() - positionInBlock + endPos;
}
- return link;
+ processLinkCallback(link);
}
static TextDocument *createCMakeDocument()