Commit b01a6a46 authored by Erik Verbruggen's avatar Erik Verbruggen

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

Change-Id: I758980009df4f7ef86fa2b5e3f4d44ccf3fc3fe3
Reviewed-by: default avatarNikolai Kosjar <nikolai.kosjar@digia.com>
parent b0eab0b7
......@@ -308,8 +308,7 @@ public:
info->unqualifiedNameAndScope(info->symbolName(), &name, &scope);
text = name + info->symbolType();
} else if (info->type() == IndexItem::Declaration){
text = IndexItem::representDeclaration(info->symbolName(),
info->symbolType());
text = info->representDeclaration();
}
Core::SearchResultItem item;
......
......@@ -95,8 +95,7 @@ QList<Core::LocatorFilterEntry> CppCurrentDocumentFilter::matchesFor(
QString matchString = info->symbolName();
if (info->type() == IndexItem::Declaration)
matchString = IndexItem::representDeclaration(info->symbolName(),
info->symbolType());
matchString = info->representDeclaration();
else if (info->type() == IndexItem::Function)
matchString += info->symbolType();
......
......@@ -33,6 +33,63 @@
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
{
return Utils::FileUtils::shortNativePath(Utils::FileName::fromString(m_fileName));
......
......@@ -44,6 +44,8 @@ class CPPTOOLS_EXPORT IndexItem
{
Q_DISABLE_COPY(IndexItem)
IndexItem() {}
public:
enum ItemType {
Enum = 1 << 0,
......@@ -54,32 +56,6 @@ public:
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:
typedef QSharedPointer<IndexItem> Ptr;
static Ptr create(const QString &symbolName,
......@@ -89,16 +65,8 @@ public:
const QString &fileName,
int line,
int column,
const QIcon &icon)
{
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));
}
const QIcon &icon);
static Ptr create(const QString &fileName, int sizeHint);
QString scopedSymbolName() const
{
......@@ -107,30 +75,9 @@ public:
: m_symbolScope + QLatin1String("::") + m_symbolName;
}
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;
}
bool unqualifiedNameAndScope(const QString &defaultName, QString *name, QString *scope) const;
static QString representDeclaration(const QString &name, const QString &type)
{
if (type.isEmpty())
return QString();
const QString padding = type.endsWith(QLatin1Char('*'))
? QString()
: QString(QLatin1Char(' '));
return type + padding + name;
}
QString representDeclaration() const;
QString shortNativeFilePath() const;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment