CppTools: Get OverviewModel from model manager

Move ownership and add the placeholder for future clang based
OverviewModel.

Change-Id: Ia44d2c1d0db59b40239d1f7934bf37a02e4b14e6
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@qt.io>
This commit is contained in:
Ivan Donchevskii
2018-02-02 13:01:07 +01:00
parent 8389aa144a
commit 7698d95576
8 changed files with 30 additions and 1 deletions

View File

@@ -35,6 +35,10 @@
#include "clangcurrentdocumentfilter.h"
#include <coreplugin/editormanager/editormanager.h>
// TODO: replace with clang based overview model
#include <cpptools/cppoverviewmodel.h>
#include <cpptools/cppcodemodelsettings.h>
#include <cpptools/cppfollowsymbolundercursor.h>
#include <cpptools/cppmodelmanager.h>
@@ -144,6 +148,11 @@ CppTools::RefactoringEngineInterface &ModelManagerSupportClang::refactoringEngin
return *m_refactoringEngine;
}
std::unique_ptr<CppTools::AbstractOverviewModel> ModelManagerSupportClang::createOverviewModel()
{
return std::make_unique<CppTools::OverviewModel>();
}
CppTools::BaseEditorDocumentProcessor *ModelManagerSupportClang::createEditorDocumentProcessor(
TextEditor::TextDocument *baseTextDocument)
{

View File

@@ -71,6 +71,7 @@ public:
TextEditor::TextDocument *baseTextDocument) override;
CppTools::FollowSymbolInterface &followSymbolInterface() override;
CppTools::RefactoringEngineInterface &refactoringEngineInterface() override;
std::unique_ptr<CppTools::AbstractOverviewModel> createOverviewModel() override;
BackendCommunicator &communicator();
QString dummyUiHeaderOnDiskDirPath() const;

View File

@@ -94,7 +94,7 @@ CppEditorOutline::CppEditorOutline(TextEditor::TextEditorWidget *editorWidget)
, m_editorWidget(editorWidget)
, m_combo(new Utils::TreeViewComboBox)
{
m_model = std::make_unique<CppTools::OverviewModel>();
m_model = CppModelManager::instance()->createOverviewModel();
m_proxyModel = new OverviewProxyModel(*m_model, this);
m_proxyModel->setSourceModel(m_model.get());

View File

@@ -26,6 +26,7 @@
#include "cppmodelmanager.h"
#include "abstracteditorsupport.h"
#include "abstractoverviewmodel.h"
#include "baseeditordocumentprocessor.h"
#include "builtinindexingsupport.h"
#include "cppclassesfilter.h"
@@ -400,6 +401,11 @@ FollowSymbolInterface &CppModelManager::followSymbolInterface() const
return d->m_activeModelManagerSupport->followSymbolInterface();
}
std::unique_ptr<AbstractOverviewModel> CppModelManager::createOverviewModel() const
{
return d->m_activeModelManagerSupport->createOverviewModel();
}
QString CppModelManager::configurationFileName()
{
return Preprocessor::configurationFileName();

View File

@@ -54,6 +54,7 @@ class TextDocument;
namespace CppTools {
class AbstractEditorSupport;
class AbstractOverviewModel;
class BaseEditorDocumentProcessor;
class CppCompletionAssistProvider;
class CppEditorDocumentHandle;
@@ -183,6 +184,7 @@ public:
TextEditor::TextDocument *baseTextDocument) const;
TextEditor::BaseHoverHandler *createHoverHandler() const;
FollowSymbolInterface &followSymbolInterface() const;
std::unique_ptr<AbstractOverviewModel> createOverviewModel() const;
void setIndexingSupport(CppIndexingSupport *indexingSupport);
CppIndexingSupport *indexingSupport();

View File

@@ -30,6 +30,8 @@
#include <QSharedPointer>
#include <QString>
#include <memory>
namespace TextEditor {
class TextDocument;
class BaseHoverHandler;
@@ -37,6 +39,7 @@ class BaseHoverHandler;
namespace CppTools {
class AbstractOverviewModel;
class BaseEditorDocumentProcessor;
class CppCompletionAssistProvider;
class FollowSymbolInterface;
@@ -56,6 +59,7 @@ public:
TextEditor::TextDocument *baseTextDocument) = 0;
virtual FollowSymbolInterface &followSymbolInterface() = 0;
virtual RefactoringEngineInterface &refactoringEngineInterface() = 0;
virtual std::unique_ptr<AbstractOverviewModel> createOverviewModel() = 0;
};
class CPPTOOLS_EXPORT ModelManagerSupportProvider

View File

@@ -27,6 +27,7 @@
#include "cppmodelmanagersupportinternal.h"
#include "cppfollowsymbolundercursor.h"
#include "cpphoverhandler.h"
#include "cppoverviewmodel.h"
#include "cpprefactoringengine.h"
#include "builtineditordocumentprocessor.h"
@@ -89,3 +90,8 @@ RefactoringEngineInterface &ModelManagerSupportInternal::refactoringEngineInterf
{
return *m_refactoringEngine;
}
std::unique_ptr<AbstractOverviewModel> ModelManagerSupportInternal::createOverviewModel()
{
return std::make_unique<CppTools::OverviewModel>();
}

View File

@@ -46,6 +46,7 @@ public:
TextEditor::TextDocument *baseTextDocument) final;
FollowSymbolInterface &followSymbolInterface() final;
RefactoringEngineInterface &refactoringEngineInterface() final;
std::unique_ptr<AbstractOverviewModel> createOverviewModel() final;
private:
QScopedPointer<CppCompletionAssistProvider> m_completionAssistProvider;