[utilities/kate] /: Add #ifdefs to allow compilation with KTextEditor < 6.15.0
Thomas Friedrichsmeier
null at kde.org
Tue Jun 10 13:42:34 BST 2025
Git commit 6f0bb797389546f5897b3991f0312ea796819ab5 by Thomas Friedrichsmeier.
Committed on 10/06/2025 at 12:37.
Pushed by tfry into branch 'master'.
Add #ifdefs to allow compilation with KTextEditor < 6.15.0
M +6 -0 addons/snippets/editsnippet.cpp
M +7 -0 addons/snippets/snippet.cpp
M +2 -1 doc/kate/plugins.docbook
https://invent.kde.org/utilities/kate/-/commit/6f0bb797389546f5897b3991f0312ea796819ab5
diff --git a/addons/snippets/editsnippet.cpp b/addons/snippets/editsnippet.cpp
index a8e9731811..ab3b642a0c 100644
--- a/addons/snippets/editsnippet.cpp
+++ b/addons/snippets/editsnippet.cpp
@@ -87,6 +87,10 @@ EditSnippet::EditSnippet(SnippetRepository *repository, Snippet *snippet, QWidge
m_ui->snippetLabel->setOpenExternalLinks(true);
m_ui->modeComboBox->addItem(i18n("Text template"), QVariant(Snippet::TextTemplate));
m_ui->modeComboBox->addItem(i18n("Script"), QVariant(Snippet::Script));
+#if KTEXTEDITOR_VERSION < QT_VERSION_CHECK(6, 15, 0)
+ m_ui->modeComboBox->hide();
+ m_ui->modeComboBoxLabel->hide();
+#endif
m_scriptsView = createView(m_ui->scriptTab);
m_scriptsView->document()->setMode(QStringLiteral("JavaScript"));
@@ -124,7 +128,9 @@ EditSnippet::EditSnippet(SnippetRepository *repository, Snippet *snippet, QWidge
m_snippetView->document()->setText(m_snippet->snippet());
m_ui->snippetNameEdit->setText(m_snippet->text());
+#if KTEXTEDITOR_VERSION >= QT_VERSION_CHECK(6, 15, 0)
m_ui->modeComboBox->setCurrentIndex(m_ui->modeComboBox->findData(QVariant(snippet->snippetType())));
+#endif
m_ui->snippetShortcut->setKeySequence(m_snippet->action()->shortcut());
// unset modified flags
diff --git a/addons/snippets/snippet.cpp b/addons/snippets/snippet.cpp
index 422f502c96..fb5c547f46 100644
--- a/addons/snippets/snippet.cpp
+++ b/addons/snippets/snippet.cpp
@@ -12,6 +12,7 @@
#include "katesnippetglobal.h"
#include "ktexteditor/document.h"
#include "ktexteditor/mainwindow.h"
+#include "ktexteditor_version.h"
#include <KLocalizedString>
@@ -97,10 +98,16 @@ void Snippet::apply(KTextEditor::View *view, const QString &repoScript) const
if (snippetType() == TextTemplate) {
view->insertTemplate(view->cursorPosition(), snippet(), repoScript);
} else {
+#if KTEXTEDITOR_VERSION >= QT_VERSION_CHECK(6, 15, 0)
QVariant res;
view->evaluateScript(repoScript + u'\n' + snippet(), &res);
// for convenience, insert result (or error message) at cursor position
view->document()->insertText(view->cursorPosition(), res.toString());
+#else
+ // this should not usually be hit, but let's show an error message
+ view->document()->insertText(view->cursorPosition(),
+ i18n("Kate needs to be compiled against KTExtEditor version 6.15.0 or higher, to use this type of snippet."));
+#endif
}
}
diff --git a/doc/kate/plugins.docbook b/doc/kate/plugins.docbook
index 9173a41da3..17b1654ddf 100644
--- a/doc/kate/plugins.docbook
+++ b/doc/kate/plugins.docbook
@@ -3471,7 +3471,8 @@ than one file type pressing the &Shift; while adding types.</para></listitem>
<listitem><para>Snippets may either be defined as text templates or scripts. Both types allow to use &javascript; functions
(see below for details), and can thus be used to similar effect. However, as a rule of thumb, text templates will be more
suiteable if you mostly want to <emphasis>insert</emphasis> text, while scripts are often an easier solution if you want to
-<emphasis>modify</emphasis> text).</para></listitem>
+<emphasis>modify</emphasis> text).</para>
+<note><para>Kate needs to be compiled against KTExtEditor version 6.15.0 or higher, for this feature to be available. For earlier versions, only text template snippets can be used.</para></note></listitem>
</varlistentry>
<varlistentry>
More information about the kde-doc-english
mailing list