aboutsummaryrefslogtreecommitdiffstats
path: root/src/plugins/cpptools/searchsymbols.cpp
diff options
context:
space:
mode:
authorRoberto Raggi <roberto.raggi@nokia.com>2010-09-06 16:46:23 +0200
committerRoberto Raggi <roberto.raggi@nokia.com>2010-09-06 16:53:46 +0200
commit86799309aaa491076e68d257640903d6e0c719e5 (patch)
treede7512d3e8a4d5e9a3917b20c6ce257d58c39deb /src/plugins/cpptools/searchsymbols.cpp
parent6863b02e034a096e6d0441ecf1f54558953c358f (diff)
Keep the locator database in sync with the current snapshot.
Thanks to this patch we can move the filtering of C++ symbols in a background thread. Done-with: Erik Verbruggen
Diffstat (limited to 'src/plugins/cpptools/searchsymbols.cpp')
-rw-r--r--src/plugins/cpptools/searchsymbols.cpp10
1 files changed, 9 insertions, 1 deletions
diff --git a/src/plugins/cpptools/searchsymbols.cpp b/src/plugins/cpptools/searchsymbols.cpp
index 828f0ce2efb..01aecaa236d 100644
--- a/src/plugins/cpptools/searchsymbols.cpp
+++ b/src/plugins/cpptools/searchsymbols.cpp
@@ -67,6 +67,7 @@ QList<ModelItemInfo> SearchSymbols::operator()(Document::Ptr doc, const QString
accept(doc->globalSymbolAt(i));
}
(void) switchScope(previousScope);
+ strings.clear();
return items;
}
@@ -216,10 +217,17 @@ void SearchSymbols::appendItem(const QString &name,
QStringList fullyQualifiedName;
foreach (const Name *name, LookupContext::fullyQualifiedName(symbol))
fullyQualifiedName.append(overview.prettyName(name));
+
+ QString path = m_paths.value(symbol->fileId(), QString());
+ if (path.isEmpty()) {
+ path = QString::fromUtf8(symbol->fileName(), symbol->fileNameLength());
+ m_paths.insert(symbol->fileId(), path);
+ }
+
const QIcon icon = icons.iconForSymbol(symbol);
items.append(ModelItemInfo(name, info, type,
fullyQualifiedName,
- QString::fromUtf8(symbol->fileName(), symbol->fileNameLength()),
+ path,
symbol->line(),
symbol->column() - 1, // 1-based vs 0-based column
icon));