diff --git a/src/plugins/cpptools/searchsymbols.cpp b/src/plugins/cpptools/searchsymbols.cpp index c0d29aae18a..4b1e48abdf7 100644 --- a/src/plugins/cpptools/searchsymbols.cpp +++ b/src/plugins/cpptools/searchsymbols.cpp @@ -40,13 +40,13 @@ using namespace CPlusPlus; using namespace CppTools::Internal; SearchSymbols::SearchSymbols(): - symbolsToSearchFor(ClassesMethodsFunctionsAndEnums) + symbolsToSearchFor(Classes | Functions | Enums) { } -void SearchSymbols::setSymbolsToSearchFor(SymbolType type) +void SearchSymbols::setSymbolsToSearchFor(SymbolTypes types) { - symbolsToSearchFor = type; + symbolsToSearchFor = types; } QList SearchSymbols::operator()(Document::Ptr doc, const QString &scope) @@ -69,7 +69,7 @@ QString SearchSymbols::switchScope(const QString &scope) bool SearchSymbols::visit(Enum *symbol) { - if (symbolsToSearchFor != ClassesMethodsFunctionsAndEnums) + if (!(symbolsToSearchFor & Enums)) return false; QString name = symbolName(symbol); @@ -89,7 +89,7 @@ bool SearchSymbols::visit(Enum *symbol) bool SearchSymbols::visit(Function *symbol) { - if (symbolsToSearchFor != ClassesMethodsFunctionsAndEnums) + if (!(symbolsToSearchFor & Functions)) return false; QString name = symbolName(symbol); @@ -131,6 +131,9 @@ bool SearchSymbols::visit(Declaration *symbol) bool SearchSymbols::visit(Class *symbol) { + if (!(symbolsToSearchFor & Classes)) + return false; + QString name = symbolName(symbol); QString previousScope = switchScope(name); QIcon icon = icons.iconForSymbol(symbol); diff --git a/src/plugins/cpptools/searchsymbols.h b/src/plugins/cpptools/searchsymbols.h index d9b678e026f..948f9d78e84 100644 --- a/src/plugins/cpptools/searchsymbols.h +++ b/src/plugins/cpptools/searchsymbols.h @@ -80,15 +80,16 @@ class SearchSymbols: public std::unary_function operator()(CPlusPlus::Document::Ptr doc) { return operator()(doc, QString()); } @@ -117,9 +118,11 @@ private: CPlusPlus::Overview overview; CPlusPlus::Icons icons; QList items; - SymbolType symbolsToSearchFor; + SymbolTypes symbolsToSearchFor; }; +Q_DECLARE_OPERATORS_FOR_FLAGS(SearchSymbols::SymbolTypes) + } // namespace Internal } // namespace CppTools