C++: IndexItem cleanup: remove a bit of clutter.

Change-Id: I758980009df4f7ef86fa2b5e3f4d44ccf3fc3fe3
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@digia.com>
This commit is contained in:
Erik Verbruggen
2014-09-01 11:18:21 +02:00
parent b0eab0b799
commit b01a6a4663
4 changed files with 65 additions and 63 deletions

View File

@@ -308,8 +308,7 @@ public:
info->unqualifiedNameAndScope(info->symbolName(), &name, &scope); info->unqualifiedNameAndScope(info->symbolName(), &name, &scope);
text = name + info->symbolType(); text = name + info->symbolType();
} else if (info->type() == IndexItem::Declaration){ } else if (info->type() == IndexItem::Declaration){
text = IndexItem::representDeclaration(info->symbolName(), text = info->representDeclaration();
info->symbolType());
} }
Core::SearchResultItem item; Core::SearchResultItem item;

View File

@@ -95,8 +95,7 @@ QList<Core::LocatorFilterEntry> CppCurrentDocumentFilter::matchesFor(
QString matchString = info->symbolName(); QString matchString = info->symbolName();
if (info->type() == IndexItem::Declaration) if (info->type() == IndexItem::Declaration)
matchString = IndexItem::representDeclaration(info->symbolName(), matchString = info->representDeclaration();
info->symbolType());
else if (info->type() == IndexItem::Function) else if (info->type() == IndexItem::Function)
matchString += info->symbolType(); matchString += info->symbolType();

View File

@@ -33,6 +33,63 @@
using namespace CppTools; using namespace CppTools;
IndexItem::Ptr IndexItem::create(const QString &symbolName, const QString &symbolType,
const QString &symbolScope, IndexItem::ItemType type,
const QString &fileName, int line, int column, const QIcon &icon)
{
Ptr ptr(new IndexItem);
ptr->m_symbolName = symbolName;
ptr->m_symbolType = symbolType;
ptr->m_symbolScope = symbolScope;
ptr->m_type = type;
ptr->m_fileName = fileName;
ptr->m_line = line;
ptr->m_column = column;
ptr->m_icon = icon;
return ptr;
}
IndexItem::Ptr IndexItem::create(const QString &fileName, int sizeHint)
{
Ptr ptr(new IndexItem);
ptr->m_fileName = fileName;
ptr->m_type = Declaration;
ptr->m_line = 0;
ptr->m_column = 0;
ptr->m_children.reserve(sizeHint);
return ptr;
}
bool IndexItem::unqualifiedNameAndScope(const QString &defaultName, QString *name,
QString *scope) const
{
*name = defaultName;
*scope = m_symbolScope;
const QString qualifiedName = scopedSymbolName();
const int colonColonPosition = qualifiedName.lastIndexOf(QLatin1String("::"));
if (colonColonPosition != -1) {
*name = qualifiedName.mid(colonColonPosition + 2);
*scope = qualifiedName.left(colonColonPosition);
return true;
}
return false;
}
QString IndexItem::representDeclaration() const
{
if (m_symbolType.isEmpty())
return QString();
const QString padding = m_symbolType.endsWith(QLatin1Char('*'))
? QString()
: QString(QLatin1Char(' '));
return m_symbolType + padding + m_symbolName;
}
QString IndexItem::shortNativeFilePath() const QString IndexItem::shortNativeFilePath() const
{ {
return Utils::FileUtils::shortNativePath(Utils::FileName::fromString(m_fileName)); return Utils::FileUtils::shortNativePath(Utils::FileName::fromString(m_fileName));

View File

@@ -44,6 +44,8 @@ class CPPTOOLS_EXPORT IndexItem
{ {
Q_DISABLE_COPY(IndexItem) Q_DISABLE_COPY(IndexItem)
IndexItem() {}
public: public:
enum ItemType { enum ItemType {
Enum = 1 << 0, Enum = 1 << 0,
@@ -54,32 +56,6 @@ public:
All = Enum | Class | Function | Declaration All = Enum | Class | Function | Declaration
}; };
private:
IndexItem(const QString &symbolName,
const QString &symbolType,
const QString &symbolScope,
ItemType type,
const QString &fileName,
int line,
int column,
const QIcon &icon)
: m_symbolName(symbolName),
m_symbolType(symbolType),
m_symbolScope(symbolScope),
m_fileName(fileName),
m_icon(icon),
m_type(type),
m_line(line),
m_column(column)
{}
IndexItem(const QString &fileName, int sizeHint)
: m_fileName(fileName)
, m_type(Declaration)
, m_line(0)
, m_column(0)
{ m_children.reserve(sizeHint); }
public: public:
typedef QSharedPointer<IndexItem> Ptr; typedef QSharedPointer<IndexItem> Ptr;
static Ptr create(const QString &symbolName, static Ptr create(const QString &symbolName,
@@ -89,16 +65,8 @@ public:
const QString &fileName, const QString &fileName,
int line, int line,
int column, int column,
const QIcon &icon) const QIcon &icon);
{ static Ptr create(const QString &fileName, int sizeHint);
return Ptr(new IndexItem(
symbolName, symbolType, symbolScope, type, fileName, line, column, icon));
}
static Ptr create(const QString &fileName, int sizeHint)
{
return Ptr(new IndexItem(fileName, sizeHint));
}
QString scopedSymbolName() const QString scopedSymbolName() const
{ {
@@ -107,30 +75,9 @@ public:
: m_symbolScope + QLatin1String("::") + m_symbolName; : m_symbolScope + QLatin1String("::") + m_symbolName;
} }
bool unqualifiedNameAndScope(const QString &defaultName, QString *name, QString *scope) const bool unqualifiedNameAndScope(const QString &defaultName, QString *name, QString *scope) const;
{
*name = defaultName;
*scope = m_symbolScope;
const QString qualifiedName = scopedSymbolName();
const int colonColonPosition = qualifiedName.lastIndexOf(QLatin1String("::"));
if (colonColonPosition != -1) {
*name = qualifiedName.mid(colonColonPosition + 2);
*scope = qualifiedName.left(colonColonPosition);
return true;
}
return false;
}
static QString representDeclaration(const QString &name, const QString &type) QString representDeclaration() const;
{
if (type.isEmpty())
return QString();
const QString padding = type.endsWith(QLatin1Char('*'))
? QString()
: QString(QLatin1Char(' '));
return type + padding + name;
}
QString shortNativeFilePath() const; QString shortNativeFilePath() const;