diff --git a/src/search/katesearchbar.cpp b/src/search/katesearchbar.cpp --- a/src/search/katesearchbar.cpp +++ b/src/search/katesearchbar.cpp @@ -875,6 +875,17 @@ } } + // Add ScrollBarMarks + KTextEditor::MarkInterface* iface = qobject_cast(m_view->document()); + if (iface) { + iface->setMarkDescription(KTextEditor::MarkInterface::markType32, i18n("SearchHighLight")); + iface->setMarkPixmap(KTextEditor::MarkInterface::markType32, QIcon().pixmap(0,0)); + foreach (Range r, highlightRanges) { + iface->addMark(r.start().line(), KTextEditor::MarkInterface::markType32); + } + } + + // Add highlights if (replacement == nullptr) foreach (Range r, highlightRanges) { highlightMatch(r); @@ -1519,6 +1530,19 @@ bool KateSearchBar::clearHighlights() { + // Remove ScrollBarMarks + KTextEditor::MarkInterface* iface = qobject_cast(m_view->document()); + if (iface) { + const QHash marks = iface->marks(); + QHashIterator i(marks); + while (i.hasNext()) { + i.next(); + if (i.value()->type & KTextEditor::MarkInterface::markType32) { + iface->removeMark(i.value()->line, KTextEditor::MarkInterface::markType32); + } + } + } + if (m_infoMessage) { delete m_infoMessage; }