diff options
author | Roberto Raggi <roberto.raggi@nokia.com> | 2010-09-06 16:46:23 +0200 |
---|---|---|
committer | Roberto Raggi <roberto.raggi@nokia.com> | 2010-09-06 16:53:46 +0200 |
commit | 86799309aaa491076e68d257640903d6e0c719e5 (patch) | |
tree | de7512d3e8a4d5e9a3917b20c6ce257d58c39deb /src/plugins/cpptools/searchsymbols.cpp | |
parent | 6863b02e034a096e6d0441ecf1f54558953c358f (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.cpp | 10 |
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)); |