forked from qt-creator/qt-creator
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 <christian.kandeler@qt.io>
This commit is contained in:
@@ -37,32 +37,28 @@ static std::pair<int, QString> lineNumberInfo(const QStyleOptionViewItem &option
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Aligns text by appending spaces
|
// Aligns text by appending spaces
|
||||||
static QPair<QString, QString> align(QString text, const QString& containingFunction) {
|
static QString align(QString text)
|
||||||
|
{
|
||||||
constexpr int minimumTextSize = 80;
|
constexpr int minimumTextSize = 80;
|
||||||
constexpr int textSizeIncrement = 20;
|
constexpr int textSizeIncrement = 20;
|
||||||
|
|
||||||
int textSize = ((text.size() / textSizeIncrement) + 1) * textSizeIncrement;
|
int textSize = ((text.size() / textSizeIncrement) + 1) * textSizeIncrement;
|
||||||
textSize = std::max(minimumTextSize, textSize);
|
textSize = std::max(minimumTextSize, textSize);
|
||||||
text.resize(textSize, ' ');
|
text.resize(textSize, ' ');
|
||||||
return QPair<QString, QString>{std::move(text), containingFunction};
|
return text;
|
||||||
}
|
}
|
||||||
|
|
||||||
static QPair<QString, QString> itemText(const QModelIndex &index)
|
static QPair<QString, QString> itemText(const QModelIndex &index)
|
||||||
{
|
{
|
||||||
QString text = index.data(Qt::DisplayRole).toString();
|
QString text = index.data(Qt::DisplayRole).toString();
|
||||||
// show number of subresults in displayString
|
// show number of subresults in displayString
|
||||||
QString containingFunction;
|
if (index.model()->hasChildren(index))
|
||||||
const auto contFnName = index.data(ItemDataRoles::ContainingFunctionNameRole).toString();
|
text += " (" + QString::number(index.model()->rowCount(index)) + ')';
|
||||||
if (contFnName.length())
|
|
||||||
containingFunction = QLatin1String("[in ") + contFnName + QLatin1String("]");
|
|
||||||
|
|
||||||
if (index.model()->hasChildren(index)) {
|
const auto functionName = index.data(ItemDataRoles::ContainingFunctionNameRole).toString();
|
||||||
QString textAndCount{text + QLatin1String(" (")
|
if (!functionName.isEmpty())
|
||||||
+ QString::number(index.model()->rowCount(index)) + QLatin1Char(')')};
|
return {align(std::move(text)), "[in " + functionName + "]"};
|
||||||
|
return {text, {}};
|
||||||
return align(std::move(textAndCount), containingFunction);
|
|
||||||
}
|
|
||||||
return align(std::move(text), containingFunction);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
LayoutInfo SearchResultTreeItemDelegate::getLayoutInfo(const QStyleOptionViewItem &option,
|
LayoutInfo SearchResultTreeItemDelegate::getLayoutInfo(const QStyleOptionViewItem &option,
|
||||||
|
Reference in New Issue
Block a user