forked from qt-creator/qt-creator
Editor: unify adding search results and selections highlights
... to the editor scrollbar. Change-Id: I18d1946de5b8762b5769565a15a0150fb9ebcd10 Reviewed-by: Jarek Kobus <jaroslaw.kobus@qt.io>
This commit is contained in:
@@ -836,8 +836,13 @@ public:
|
|||||||
int start;
|
int start;
|
||||||
int length;
|
int length;
|
||||||
};
|
};
|
||||||
void addSearchResultsToScrollBar(const QVector<SearchResult> &results);
|
void addSearchResultsToScrollBar(
|
||||||
void addSelectionHighlightToScrollBar(const QVector<SearchResult> &selections);
|
const Id &category,
|
||||||
|
const QList<SearchResult> &results,
|
||||||
|
Theme::Color color,
|
||||||
|
Highlight::Priority prio);
|
||||||
|
void addSearchResultsToScrollBar(const QList<SearchResult> &results);
|
||||||
|
void addSelectionHighlightToScrollBar(const QList<SearchResult> &selections);
|
||||||
void adjustScrollBarRanges();
|
void adjustScrollBarRanges();
|
||||||
|
|
||||||
void setFindScope(const MultiTextCursor &scope);
|
void setFindScope(const MultiTextCursor &scope);
|
||||||
@@ -8211,7 +8216,11 @@ Highlight::Priority textMarkPrioToScrollBarPrio(const TextMark::Priority &prio)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void TextEditorWidgetPrivate::addSearchResultsToScrollBar(const QVector<SearchResult> &results)
|
void TextEditorWidgetPrivate::addSearchResultsToScrollBar(
|
||||||
|
const Id &category,
|
||||||
|
const QList<SearchResult> &results,
|
||||||
|
Theme::Color color,
|
||||||
|
Highlight::Priority prio)
|
||||||
{
|
{
|
||||||
if (!m_highlightScrollBarController)
|
if (!m_highlightScrollBarController)
|
||||||
return;
|
return;
|
||||||
@@ -8223,45 +8232,33 @@ void TextEditorWidgetPrivate::addSearchResultsToScrollBar(const QVector<SearchRe
|
|||||||
const int lastLine = block.layout()->lineForTextPosition(result.start - block.position() + result.length).lineNumber();
|
const int lastLine = block.layout()->lineForTextPosition(result.start - block.position() + result.length).lineNumber();
|
||||||
for (int line = firstLine; line <= lastLine; ++line) {
|
for (int line = firstLine; line <= lastLine; ++line) {
|
||||||
m_highlightScrollBarController->addHighlight(
|
m_highlightScrollBarController->addHighlight(
|
||||||
{Constants::SCROLL_BAR_SEARCH_RESULT, block.firstLineNumber() + line,
|
{category, block.firstLineNumber() + line, color, prio});
|
||||||
Theme::TextEditor_SearchResult_ScrollBarColor, Highlight::HighPriority});
|
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
m_highlightScrollBarController->addHighlight(
|
m_highlightScrollBarController->addHighlight(
|
||||||
{Constants::SCROLL_BAR_SEARCH_RESULT,
|
{category, block.blockNumber(), color, prio});
|
||||||
block.blockNumber(),
|
|
||||||
Theme::TextEditor_SearchResult_ScrollBarColor,
|
|
||||||
Highlight::HighPriority});
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void TextEditorWidgetPrivate::addSelectionHighlightToScrollBar(
|
void TextEditorWidgetPrivate::addSearchResultsToScrollBar(const QList<SearchResult> &results)
|
||||||
const QVector<SearchResult> &selections)
|
|
||||||
{
|
{
|
||||||
if (!m_highlightScrollBarController)
|
addSearchResultsToScrollBar(
|
||||||
return;
|
Constants::SCROLL_BAR_SEARCH_RESULT,
|
||||||
for (const SearchResult &result : selections) {
|
results,
|
||||||
const QTextBlock &block = q->document()->findBlock(result.start);
|
Theme::TextEditor_SearchResult_ScrollBarColor,
|
||||||
if (block.isValid() && block.isVisible()) {
|
Highlight::HighPriority);
|
||||||
if (q->lineWrapMode() == QPlainTextEdit::WidgetWidth) {
|
}
|
||||||
const int firstLine = block.layout()->lineForTextPosition(result.start - block.position()).lineNumber();
|
|
||||||
const int lastLine = block.layout()->lineForTextPosition(result.start - block.position() + result.length).lineNumber();
|
void TextEditorWidgetPrivate::addSelectionHighlightToScrollBar(
|
||||||
for (int line = firstLine; line <= lastLine; ++line) {
|
const QList<SearchResult> &selections)
|
||||||
m_highlightScrollBarController->addHighlight(
|
{
|
||||||
{Constants::SCROLL_BAR_SELECTION, block.firstLineNumber() + line,
|
addSearchResultsToScrollBar(
|
||||||
Theme::TextEditor_Selection_ScrollBarColor, Highlight::NormalPriority});
|
Constants::SCROLL_BAR_SELECTION,
|
||||||
}
|
selections,
|
||||||
} else {
|
Theme::TextEditor_Selection_ScrollBarColor,
|
||||||
m_highlightScrollBarController->addHighlight(
|
Highlight::NormalPriority);
|
||||||
{Constants::SCROLL_BAR_SELECTION,
|
|
||||||
block.blockNumber(),
|
|
||||||
Theme::TextEditor_Selection_ScrollBarColor,
|
|
||||||
Highlight::NormalPriority});
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
Highlight markToHighlight(TextMark *mark, int lineNumber)
|
Highlight markToHighlight(TextMark *mark, int lineNumber)
|
||||||
|
Reference in New Issue
Block a user