forked from qt-creator/qt-creator
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:
@@ -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)
|
||||||
|
|||||||
@@ -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;
|
||||||
|
|||||||
@@ -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 //////////////////////////////////
|
||||||
|
|||||||
Reference in New Issue
Block a user