Core: Streamline SearchResultWindow interface

That is, make SearchResultItem the one data type for adding search
results.
This will allow us to add additional properties to search results
without adding more and more parameters to a bunch of functions.

Change-Id: Ic2740477ae47449cee75caa2525727fe2b460f91
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
This commit is contained in:
Christian Kandeler
2021-02-11 16:22:48 +01:00
parent fa5fdef6e1
commit d3deefc3a4
17 changed files with 136 additions and 157 deletions

View File

@@ -202,7 +202,7 @@ class Filter : public Core::SearchResultFilter
bool matches(const SearchResultItem &item) const override
{
switch (static_cast<CPlusPlus::Usage::Type>(item.userData.toInt())) {
switch (static_cast<CPlusPlus::Usage::Type>(item.userData().toInt())) {
case CPlusPlus::Usage::Type::Read:
return m_showReads;
case CPlusPlus::Usage::Type::Write:
@@ -630,9 +630,13 @@ static void displayResults(SearchResult *search, QFutureWatcher<CPlusPlus::Usage
};
for (int index = first; index != last; ++index) {
const CPlusPlus::Usage result = watcher->future().resultAt(index);
search->addResult(result.path.toString(), result.line, result.lineText,
result.col, result.len, int(result.type),
colorStyleForUsageType(result.type));
SearchResultItem item;
item.setFilePath(result.path);
item.setMainRange(result.line, result.col, result.len);
item.setLineText(result.lineText);
item.setUserData(int(result.type));
item.setStyle(colorStyleForUsageType(result.type));
search->addResult(item);
if (parameters.prettySymbolName.isEmpty())
continue;
@@ -823,8 +827,11 @@ void CppFindReferences::findMacroUses(const CPlusPlus::Macro &macro, const QStri
unsigned column;
const QString line = FindMacroUsesInFile::matchingLine(macro.bytesOffset(), source,
&column);
search->addResult(macro.fileName(), macro.line(), line, column,
macro.nameToQString().length());
SearchResultItem item;
item.setFilePath(Utils::FilePath::fromString(macro.fileName()));
item.setLineText(line);
item.setMainRange(macro.line(), column, macro.nameToQString().length());
search->addResult(item);
}
QFuture<CPlusPlus::Usage> result;