forked from qt-creator/qt-creator
Use QFlags for indicating symbols to search for
This commit is contained in:
@@ -40,13 +40,13 @@ using namespace CPlusPlus;
|
|||||||
using namespace CppTools::Internal;
|
using namespace CppTools::Internal;
|
||||||
|
|
||||||
SearchSymbols::SearchSymbols():
|
SearchSymbols::SearchSymbols():
|
||||||
symbolsToSearchFor(ClassesMethodsFunctionsAndEnums)
|
symbolsToSearchFor(Classes | Functions | Enums)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
void SearchSymbols::setSymbolsToSearchFor(SymbolType type)
|
void SearchSymbols::setSymbolsToSearchFor(SymbolTypes types)
|
||||||
{
|
{
|
||||||
symbolsToSearchFor = type;
|
symbolsToSearchFor = types;
|
||||||
}
|
}
|
||||||
|
|
||||||
QList<ModelItemInfo> SearchSymbols::operator()(Document::Ptr doc, const QString &scope)
|
QList<ModelItemInfo> SearchSymbols::operator()(Document::Ptr doc, const QString &scope)
|
||||||
@@ -69,7 +69,7 @@ QString SearchSymbols::switchScope(const QString &scope)
|
|||||||
|
|
||||||
bool SearchSymbols::visit(Enum *symbol)
|
bool SearchSymbols::visit(Enum *symbol)
|
||||||
{
|
{
|
||||||
if (symbolsToSearchFor != ClassesMethodsFunctionsAndEnums)
|
if (!(symbolsToSearchFor & Enums))
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
QString name = symbolName(symbol);
|
QString name = symbolName(symbol);
|
||||||
@@ -89,7 +89,7 @@ bool SearchSymbols::visit(Enum *symbol)
|
|||||||
|
|
||||||
bool SearchSymbols::visit(Function *symbol)
|
bool SearchSymbols::visit(Function *symbol)
|
||||||
{
|
{
|
||||||
if (symbolsToSearchFor != ClassesMethodsFunctionsAndEnums)
|
if (!(symbolsToSearchFor & Functions))
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
QString name = symbolName(symbol);
|
QString name = symbolName(symbol);
|
||||||
@@ -131,6 +131,9 @@ bool SearchSymbols::visit(Declaration *symbol)
|
|||||||
|
|
||||||
bool SearchSymbols::visit(Class *symbol)
|
bool SearchSymbols::visit(Class *symbol)
|
||||||
{
|
{
|
||||||
|
if (!(symbolsToSearchFor & Classes))
|
||||||
|
return false;
|
||||||
|
|
||||||
QString name = symbolName(symbol);
|
QString name = symbolName(symbol);
|
||||||
QString previousScope = switchScope(name);
|
QString previousScope = switchScope(name);
|
||||||
QIcon icon = icons.iconForSymbol(symbol);
|
QIcon icon = icons.iconForSymbol(symbol);
|
||||||
|
|||||||
@@ -80,15 +80,16 @@ class SearchSymbols: public std::unary_function<CPlusPlus::Document::Ptr, QList<
|
|||||||
protected CPlusPlus::SymbolVisitor
|
protected CPlusPlus::SymbolVisitor
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
// TODO: Probably should use QFlags
|
|
||||||
enum SymbolType {
|
enum SymbolType {
|
||||||
Classes,
|
Classes = 0x1,
|
||||||
ClassesMethodsFunctionsAndEnums
|
Functions = 0x2,
|
||||||
|
Enums = 0x4
|
||||||
};
|
};
|
||||||
|
Q_DECLARE_FLAGS(SymbolTypes, SymbolType)
|
||||||
|
|
||||||
SearchSymbols();
|
SearchSymbols();
|
||||||
|
|
||||||
void setSymbolsToSearchFor(SymbolType type);
|
void setSymbolsToSearchFor(SymbolTypes types);
|
||||||
|
|
||||||
QList<ModelItemInfo> operator()(CPlusPlus::Document::Ptr doc)
|
QList<ModelItemInfo> operator()(CPlusPlus::Document::Ptr doc)
|
||||||
{ return operator()(doc, QString()); }
|
{ return operator()(doc, QString()); }
|
||||||
@@ -117,9 +118,11 @@ private:
|
|||||||
CPlusPlus::Overview overview;
|
CPlusPlus::Overview overview;
|
||||||
CPlusPlus::Icons icons;
|
CPlusPlus::Icons icons;
|
||||||
QList<ModelItemInfo> items;
|
QList<ModelItemInfo> items;
|
||||||
SymbolType symbolsToSearchFor;
|
SymbolTypes symbolsToSearchFor;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
Q_DECLARE_OPERATORS_FOR_FLAGS(SearchSymbols::SymbolTypes)
|
||||||
|
|
||||||
} // namespace Internal
|
} // namespace Internal
|
||||||
} // namespace CppTools
|
} // namespace CppTools
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user