Clang: Introduce OverviewModel for clang

Change-Id: I1473e3f679f4345a04c55f1ee80cfe35e21a4347
Reviewed-by: Marco Bubke <marco.bubke@qt.io>
Reviewed-by: hjk <hjk@qt.io>
This commit is contained in:
Ivan Donchevskii
2018-02-06 08:19:42 +01:00
parent 8ffae6a08c
commit 5e872c0fcd
6 changed files with 330 additions and 15 deletions

View File

@@ -186,23 +186,28 @@ QWidget *CppEditorOutline::widget() const
return m_combo;
}
void CppEditorOutline::updateNow()
QSharedPointer<CPlusPlus::Document> getDocument(const QString &filePath)
{
CppTools::CppModelManager *cmmi = CppTools::CppModelManager::instance();
const CPlusPlus::Snapshot snapshot = cmmi->snapshot();
return snapshot.document(filePath);
}
void CppEditorOutline::updateNow()
{
const QString filePath = m_editorWidget->textDocument()->filePath().toString();
CPlusPlus::Document::Ptr document = snapshot.document(filePath);
if (!document)
m_document = getDocument(filePath);
if (!m_document)
return;
m_document = document;
if (m_document->editorRevision()
!= static_cast<unsigned>(m_editorWidget->document()->revision())) {
m_updateTimer->start();
return;
}
m_model->rebuild(m_document);
if (!m_model->rebuild(filePath))
m_model->rebuild(m_document);
m_combo->view()->expandAll();
updateIndexNow();