CppEditor: Partially move to new editor setup scheme

This needs more reorganization. For now, use a method to
add cpp editor support directly without relying on a fully
set up editor/widget/document combo.

Change-Id: Id8631c75ccd209f418faef31f8b8a4c71e53d87d
Reviewed-by: Christian Stenger <christian.stenger@digia.com>
This commit is contained in:
hjk
2014-08-21 18:08:58 +02:00
parent bb9edec99a
commit 307129bf8f
3 changed files with 17 additions and 15 deletions

View File

@@ -127,8 +127,6 @@ public:
CppEditorWidgetPrivate(CppEditorWidget *q); CppEditorWidgetPrivate(CppEditorWidget *q);
public: public:
CppEditorWidget *q;
QPointer<CppTools::CppModelManagerInterface> m_modelManager; QPointer<CppTools::CppModelManagerInterface> m_modelManager;
CPPEditorDocument *m_cppEditorDocument; CPPEditorDocument *m_cppEditorDocument;
@@ -160,8 +158,7 @@ public:
}; };
CppEditorWidgetPrivate::CppEditorWidgetPrivate(CppEditorWidget *q) CppEditorWidgetPrivate::CppEditorWidgetPrivate(CppEditorWidget *q)
: q(q) : m_modelManager(CppModelManagerInterface::instance())
, m_modelManager(CppModelManagerInterface::instance())
, m_cppEditorDocument(qobject_cast<CPPEditorDocument *>(q->textDocument())) , m_cppEditorDocument(qobject_cast<CPPEditorDocument *>(q->textDocument()))
, m_cppEditorOutline(new CppEditorOutline(q)) , m_cppEditorOutline(new CppEditorOutline(q))
, m_cppDocumentationCommentHelper(q) , m_cppDocumentationCommentHelper(q)
@@ -175,9 +172,10 @@ CppEditorWidgetPrivate::CppEditorWidgetPrivate(CppEditorWidget *q)
{ {
} }
CppEditorWidget::CppEditorWidget(TextEditor::BaseTextDocumentPtr doc) CppEditorWidget::CppEditorWidget(TextEditor::BaseTextDocumentPtr doc, CPPEditor *editor)
: TextEditor::BaseTextEditorWidget(0)
{ {
editor->setEditorWidget(this);
setTextDocument(doc); setTextDocument(doc);
d.reset(new CppEditorWidgetPrivate(this)); d.reset(new CppEditorWidgetPrivate(this));
setAutoCompleter(new CppAutoCompleter); setAutoCompleter(new CppAutoCompleter);
@@ -190,7 +188,7 @@ CppEditorWidget::CppEditorWidget(TextEditor::BaseTextDocumentPtr doc)
setRevisionsVisible(true); setRevisionsVisible(true);
if (d->m_modelManager) { if (d->m_modelManager) {
CppEditorSupport *editorSupport = d->m_modelManager->cppEditorSupport(editor()); CppEditorSupport *editorSupport = d->m_modelManager->cppEditorSupport(editor);
connect(editorSupport, SIGNAL(documentUpdated()), connect(editorSupport, SIGNAL(documentUpdated()),
this, SLOT(onDocumentUpdated())); this, SLOT(onDocumentUpdated()));
connect(editorSupport, SIGNAL(semanticInfoUpdated(CppTools::SemanticInfo)), connect(editorSupport, SIGNAL(semanticInfoUpdated(CppTools::SemanticInfo)),
@@ -262,7 +260,7 @@ CppEditorOutline *CppEditorWidget::outline() const
TextEditor::BaseTextEditor *CppEditorWidget::createEditor() TextEditor::BaseTextEditor *CppEditorWidget::createEditor()
{ {
return new CPPEditor; QTC_ASSERT("should not happen anymore" && false, return 0);
} }
void CppEditorWidget::paste() void CppEditorWidget::paste()
@@ -743,9 +741,11 @@ void CppEditorWidget::keyPressEvent(QKeyEvent *e)
Core::IEditor *CPPEditor::duplicate() Core::IEditor *CPPEditor::duplicate()
{ {
CppEditorWidget *newEditor = new CppEditorWidget(editorWidget()->textDocumentPtr()); CPPEditor *editor = new CPPEditor;
CppEditorPlugin::instance()->initializeEditor(newEditor); CppEditorWidget *widget = new CppEditorWidget(editorWidget()->textDocumentPtr(), editor);
return newEditor->editor(); CppEditorPlugin::instance()->initializeEditor(widget);
editor->configureCodeAssistant();
return editor;
} }
bool CPPEditor::open(QString *errorString, const QString &fileName, const QString &realFileName) bool CPPEditor::open(QString *errorString, const QString &fileName, const QString &realFileName)

View File

@@ -75,7 +75,7 @@ public:
static Link linkToSymbol(CPlusPlus::Symbol *symbol); static Link linkToSymbol(CPlusPlus::Symbol *symbol);
public: public:
CppEditorWidget(TextEditor::BaseTextDocumentPtr doc); CppEditorWidget(TextEditor::BaseTextDocumentPtr doc, CPPEditor *editor);
~CppEditorWidget(); ~CppEditorWidget();
CPPEditorDocument *cppEditorDocument() const; CPPEditorDocument *cppEditorDocument() const;

View File

@@ -96,9 +96,11 @@ CppEditorFactory::CppEditorFactory(CppEditorPlugin *owner) :
IEditor *CppEditorFactory::createEditor() IEditor *CppEditorFactory::createEditor()
{ {
CppEditorWidget *editor = new CppEditorWidget(BaseTextDocumentPtr(new CPPEditorDocument)); CPPEditor *editor = new CPPEditor;
m_owner->initializeEditor(editor); CppEditorWidget *widget = new CppEditorWidget(BaseTextDocumentPtr(new CPPEditorDocument), editor);
return editor->editor(); m_owner->initializeEditor(widget);
editor->configureCodeAssistant();
return editor;
} }
///////////////////////////////// CppEditorPlugin ////////////////////////////////// ///////////////////////////////// CppEditorPlugin //////////////////////////////////