From 8ff969d14995d1b81b1704bf203f142f50c5a9e7 Mon Sep 17 00:00:00 2001 From: David Schulz Date: Mon, 21 Nov 2022 13:33:45 +0100 Subject: [PATCH] Core: optimize search result item text generation Do not append an alignment string if no additional information needs to be aligned. Change-Id: Ia40c1b683fe20af275974d98a74d56b10970e908 Reviewed-by: Christian Kandeler --- .../find/searchresulttreeitemdelegate.cpp | 22 ++++++++----------- 1 file changed, 9 insertions(+), 13 deletions(-) diff --git a/src/plugins/coreplugin/find/searchresulttreeitemdelegate.cpp b/src/plugins/coreplugin/find/searchresulttreeitemdelegate.cpp index 768a485caec..ed9ad6706bb 100644 --- a/src/plugins/coreplugin/find/searchresulttreeitemdelegate.cpp +++ b/src/plugins/coreplugin/find/searchresulttreeitemdelegate.cpp @@ -37,32 +37,28 @@ static std::pair lineNumberInfo(const QStyleOptionViewItem &option } // Aligns text by appending spaces -static QPair align(QString text, const QString& containingFunction) { +static QString align(QString text) +{ constexpr int minimumTextSize = 80; constexpr int textSizeIncrement = 20; int textSize = ((text.size() / textSizeIncrement) + 1) * textSizeIncrement; textSize = std::max(minimumTextSize, textSize); text.resize(textSize, ' '); - return QPair{std::move(text), containingFunction}; + return text; } static QPair itemText(const QModelIndex &index) { QString text = index.data(Qt::DisplayRole).toString(); // show number of subresults in displayString - QString containingFunction; - const auto contFnName = index.data(ItemDataRoles::ContainingFunctionNameRole).toString(); - if (contFnName.length()) - containingFunction = QLatin1String("[in ") + contFnName + QLatin1String("]"); + if (index.model()->hasChildren(index)) + text += " (" + QString::number(index.model()->rowCount(index)) + ')'; - if (index.model()->hasChildren(index)) { - QString textAndCount{text + QLatin1String(" (") - + QString::number(index.model()->rowCount(index)) + QLatin1Char(')')}; - - return align(std::move(textAndCount), containingFunction); - } - return align(std::move(text), containingFunction); + const auto functionName = index.data(ItemDataRoles::ContainingFunctionNameRole).toString(); + if (!functionName.isEmpty()) + return {align(std::move(text)), "[in " + functionName + "]"}; + return {text, {}}; } LayoutInfo SearchResultTreeItemDelegate::getLayoutInfo(const QStyleOptionViewItem &option,