summaryrefslogtreecommitdiff
path: root/src/plugins
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins')
-rw-r--r--src/plugins/cpptools/searchsymbols.cpp15
1 files changed, 12 insertions, 3 deletions
diff --git a/src/plugins/cpptools/searchsymbols.cpp b/src/plugins/cpptools/searchsymbols.cpp
index 8c9ed918a0..9fe3a6104e 100644
--- a/src/plugins/cpptools/searchsymbols.cpp
+++ b/src/plugins/cpptools/searchsymbols.cpp
@@ -138,8 +138,15 @@ bool SearchSymbols::visit(Namespace *symbol)
bool SearchSymbols::visit(Declaration *symbol)
{
- if (!(symbolsToSearchFor & SymbolSearcher::Declarations))
- return false;
+ if (!(symbolsToSearchFor & SymbolSearcher::Declarations)) {
+ // if we're searching for functions, still allow function declarations to show up.
+ if (symbolsToSearchFor & SymbolSearcher::Functions) {
+ if (!symbol->type()->asFunctionType())
+ return false;
+ } else {
+ return false;
+ }
+ }
QString name = symbolName(symbol);
QString scopedName = scopedSymbolName(name);
@@ -147,7 +154,9 @@ bool SearchSymbols::visit(Declaration *symbol)
separateScope ? symbol->unqualifiedName() : 0);
appendItem(separateScope ? type : scopedName,
separateScope ? _scope : type,
- ModelItemInfo::Declaration, symbol);
+ symbol->type()->asFunctionType() ? ModelItemInfo::Method
+ : ModelItemInfo::Declaration,
+ symbol);
return false;
}