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

View File

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

View File

@@ -94,7 +94,7 @@ CppEditorOutline::CppEditorOutline(TextEditor::TextEditorWidget *editorWidget)
, m_editorWidget(editorWidget) , m_editorWidget(editorWidget)
, m_combo(new Utils::TreeViewComboBox) , 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 = new OverviewProxyModel(*m_model, this);
m_proxyModel->setSourceModel(m_model.get()); m_proxyModel->setSourceModel(m_model.get());

View File

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

View File

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

View File

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

View File

@@ -27,6 +27,7 @@
#include "cppmodelmanagersupportinternal.h" #include "cppmodelmanagersupportinternal.h"
#include "cppfollowsymbolundercursor.h" #include "cppfollowsymbolundercursor.h"
#include "cpphoverhandler.h" #include "cpphoverhandler.h"
#include "cppoverviewmodel.h"
#include "cpprefactoringengine.h" #include "cpprefactoringengine.h"
#include "builtineditordocumentprocessor.h" #include "builtineditordocumentprocessor.h"
@@ -89,3 +90,8 @@ RefactoringEngineInterface &ModelManagerSupportInternal::refactoringEngineInterf
{ {
return *m_refactoringEngine; 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; TextEditor::TextDocument *baseTextDocument) final;
FollowSymbolInterface &followSymbolInterface() final; FollowSymbolInterface &followSymbolInterface() final;
RefactoringEngineInterface &refactoringEngineInterface() final; RefactoringEngineInterface &refactoringEngineInterface() final;
std::unique_ptr<AbstractOverviewModel> createOverviewModel() final;
private: private:
QScopedPointer<CppCompletionAssistProvider> m_completionAssistProvider; QScopedPointer<CppCompletionAssistProvider> m_completionAssistProvider;