Clang: Use more generic methods in OverviewModel

Do not return Document or Symbol. Instead use Link
or LineColumn directly as return values.

Change-Id: I1863d7c3b4985ffe2ae5454622227075ebdc2de7
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@qt.io>
This commit is contained in:
Ivan Donchevskii
2018-02-08 13:31:22 +01:00
parent c6d4308ccd
commit 8389aa144a
7 changed files with 86 additions and 78 deletions

View File

@@ -31,28 +31,17 @@
#include <cplusplus/Scope.h>
#include <cplusplus/Symbols.h>
#include <utils/dropsupport.h>
#include <utils/linecolumn.h>
#include <utils/link.h>
using namespace CPlusPlus;
namespace CppTools {
OverviewModel::OverviewModel(QObject *parent)
: AbstractOverviewModel(parent)
{ }
OverviewModel::~OverviewModel()
{ }
bool OverviewModel::hasDocument() const
{
return _cppDocument;
}
Document::Ptr OverviewModel::document() const
{
return _cppDocument;
}
unsigned OverviewModel::globalSymbolCount() const
{
unsigned count = 0;
@@ -250,4 +239,30 @@ void OverviewModel::rebuild(Document::Ptr doc)
endResetModel();
}
bool OverviewModel::isGenerated(const QModelIndex &sourceIndex) const
{
CPlusPlus::Symbol *symbol = symbolFromIndex(sourceIndex);
return symbol && symbol->isGenerated();
}
Utils::Link OverviewModel::linkFromIndex(const QModelIndex &sourceIndex) const
{
CPlusPlus::Symbol *symbol = symbolFromIndex(sourceIndex);
if (!symbol)
return {};
return symbol->toLink();
}
Utils::LineColumn OverviewModel::lineColumnFromIndex(const QModelIndex &sourceIndex) const
{
Utils::LineColumn lineColumn;
CPlusPlus::Symbol *symbol = symbolFromIndex(sourceIndex);
if (!symbol)
return lineColumn;
lineColumn.line = static_cast<int>(symbol->line());
lineColumn.column = static_cast<int>(symbol->column());
return lineColumn;
}
} // namespace CppTools