diff --git a/kate/kateapp.cpp b/kate/kateapp.cpp --- a/kate/kateapp.cpp +++ b/kate/kateapp.cpp @@ -189,6 +189,21 @@ if (info.cursor.isValid()) { setCursor(info.cursor.line(), info.cursor.column()); } + else if (info.url.hasQuery()) { + QUrlQuery q(info.url); + QString lineStr = q.queryItemValue(QStringLiteral("line")); + QString columnStr = q.queryItemValue(QStringLiteral("column")); + + int line = lineStr.toInt(); + if (line > 0) + line--; + + int column = columnStr.toInt(); + if (column > 0) + column--; + + setCursor(line, column); + } } else { KMessageBox::sorry(activeKateMainWindow(), i18n("The file '%1' could not be opened: it is not a normal file, it is a folder.", info.url.toString())); diff --git a/kwrite/main.cpp b/kwrite/main.cpp --- a/kwrite/main.cpp +++ b/kwrite/main.cpp @@ -39,6 +39,7 @@ #include #include #include +#include #include "../urlinfo.h" @@ -267,6 +268,21 @@ if (info.cursor.isValid()) { t->view()->setCursorPosition(info.cursor); } + else if (info.url.hasQuery()) { + QUrlQuery q(info.url); + QString lineStr = q.queryItemValue(QStringLiteral("line")); + QString columnStr = q.queryItemValue(QStringLiteral("column")); + + line = lineStr.toInt(); + if (line > 0) + line--; + + column = columnStr.toInt(); + if (column > 0) + column--; + + t->view()->setCursorPosition(KTextEditor::Cursor(line, column)); + } } else { KMessageBox::sorry(nullptr, i18n("The file '%1' could not be opened: it is not a normal file, it is a folder.", info.url.toString())); }