{Cpp,Text}Editor: Fix duplicating CppEditorWidget

Fixes local use highlighting and renaming in new split, among others.

Done-with: hjk <hjk121@nokiamail.com>
Change-Id: Ic604d37d2dc0082fa4a75c2af457f60d6d6cfa66
Reviewed-by: hjk <hjk121@nokiamail.com>
This commit is contained in:
Nikolai Kosjar
2014-08-28 18:37:50 +02:00
parent b5ecaff32c
commit 9e3441df8b
4 changed files with 19 additions and 8 deletions

View File

@@ -227,12 +227,19 @@ void CppEditorWidget::finalizeInitialization()
connect(d->m_preprocessorButton, SIGNAL(clicked()), this, SLOT(showPreProcessorWidget())); connect(d->m_preprocessorButton, SIGNAL(clicked()), this, SLOT(showPreProcessorWidget()));
insertExtraToolBarWidget(TextEditor::BaseTextEditorWidget::Left, d->m_preprocessorButton); insertExtraToolBarWidget(TextEditor::BaseTextEditorWidget::Left, d->m_preprocessorButton);
insertExtraToolBarWidget(TextEditor::BaseTextEditorWidget::Left, d->m_cppEditorOutline->widget()); insertExtraToolBarWidget(TextEditor::BaseTextEditorWidget::Left, d->m_cppEditorOutline->widget());
}
// updateSemanticInfo(semanticInfo()); void CppEditorWidget::finalizeInitializationAfterDuplication(BaseTextEditorWidget *other)
// updateFunctionDeclDefLink(); {
// d->m_cppEditorOutline->update(); QTC_ASSERT(other, return);
// const ExtraSelectionKind selectionKind = CodeWarningsSelection; CppEditorWidget *cppEditorWidget = qobject_cast<CppEditorWidget *>(other);
// setExtraSelections(selectionKind, extraSelections(selectionKind)); QTC_ASSERT(cppEditorWidget, return);
if (cppEditorWidget->isSemanticInfoValidExceptLocalUses())
updateSemanticInfo(cppEditorWidget->semanticInfo());
d->m_cppEditorOutline->update();
const ExtraSelectionKind selectionKind = CodeWarningsSelection;
setExtraSelections(selectionKind, cppEditorWidget->extraSelections(selectionKind));
} }
CppEditorWidget::~CppEditorWidget() CppEditorWidget::~CppEditorWidget()

View File

@@ -73,8 +73,6 @@ public:
CppEditorWidget(); CppEditorWidget();
~CppEditorWidget(); ~CppEditorWidget();
void finalizeInitialization();
CppEditorDocument *cppEditorDocument() const; CppEditorDocument *cppEditorDocument() const;
CppEditorOutline *outline() const; CppEditorOutline *outline() const;
@@ -143,6 +141,9 @@ private slots:
void processKeyNormally(QKeyEvent *e); void processKeyNormally(QKeyEvent *e);
private: private:
void finalizeInitialization() QTC_OVERRIDE;
void finalizeInitializationAfterDuplication(BaseTextEditorWidget *other) QTC_OVERRIDE;
static bool openCppEditorAt(const Link &, bool inNextSplit = false); static bool openCppEditorAt(const Link &, bool inNextSplit = false);
unsigned documentRevision() const; unsigned documentRevision() const;

View File

@@ -7284,7 +7284,9 @@ void BaseTextEditorFactory::setEditorActionHandlers(uint optionalActions)
BaseTextEditor *BaseTextEditorFactory::duplicateTextEditor(BaseTextEditor *other) BaseTextEditor *BaseTextEditorFactory::duplicateTextEditor(BaseTextEditor *other)
{ {
return createEditorHelper(other->editorWidget()->textDocumentPtr()); BaseTextEditor *editor = createEditorHelper(other->editorWidget()->textDocumentPtr());
editor->editorWidget()->finalizeInitializationAfterDuplication(other->editorWidget());
return editor;
} }
IEditor *BaseTextEditorFactory::createEditor() IEditor *BaseTextEditorFactory::createEditor()

View File

@@ -548,6 +548,7 @@ protected:
void showDefaultContextMenu(QContextMenuEvent *e, Core::Id menuContextId); void showDefaultContextMenu(QContextMenuEvent *e, Core::Id menuContextId);
virtual void finalizeInitialization() {} virtual void finalizeInitialization() {}
virtual void finalizeInitializationAfterDuplication(BaseTextEditorWidget *) {}
public: public:
struct Link struct Link