diff --git a/src/plugins/diffeditor/diffeditor.cpp b/src/plugins/diffeditor/diffeditor.cpp index 357fbdc2d85..1e612752371 100644 --- a/src/plugins/diffeditor/diffeditor.cpp +++ b/src/plugins/diffeditor/diffeditor.cpp @@ -193,9 +193,8 @@ void DescriptionEditorWidget::handleCurrentContents() ///////////////////////////////// DiffEditor ////////////////////////////////// -DiffEditor::DiffEditor() - : IEditor(0) - , m_document(new DiffEditorDocument()) +DiffEditor::DiffEditor(const QSharedPointer &doc) + : m_document(doc) , m_descriptionWidget(0) , m_stackedWidget(0) , m_sideBySideEditor(0) @@ -208,30 +207,6 @@ DiffEditor::DiffEditor() , m_toggleDescriptionAction(0) , m_reloadAction(0) , m_diffEditorSwitcher(0) -{ - ctor(); -} - -DiffEditor::DiffEditor(DiffEditor *other) - : IEditor(0) - , m_document(other->m_document) - , m_descriptionWidget(0) - , m_stackedWidget(0) - , m_sideBySideEditor(0) - , m_unifiedEditor(0) - , m_currentEditor(0) - , m_controller(0) - , m_guiController(0) - , m_toolBar(0) - , m_entriesComboBox(0) - , m_toggleDescriptionAction(0) - , m_reloadAction(0) - , m_diffEditorSwitcher(0) -{ - ctor(); -} - -void DiffEditor::ctor() { setDuplicateSupported(true); @@ -303,7 +278,7 @@ DiffEditor::~DiffEditor() Core::IEditor *DiffEditor::duplicate() { - return new DiffEditor(this); + return new DiffEditor(m_document); } bool DiffEditor::open(QString *errorString, diff --git a/src/plugins/diffeditor/diffeditor.h b/src/plugins/diffeditor/diffeditor.h index 8be9cb1a81e..66a045305a9 100644 --- a/src/plugins/diffeditor/diffeditor.h +++ b/src/plugins/diffeditor/diffeditor.h @@ -55,10 +55,10 @@ class UnifiedDiffEditorWidget; class DIFFEDITOR_EXPORT DiffEditor : public Core::IEditor { Q_OBJECT + public: - DiffEditor(); - DiffEditor(DiffEditor *other); - virtual ~DiffEditor(); + DiffEditor(const QSharedPointer &doc); + ~DiffEditor(); public: DiffEditorController *controller() const; @@ -86,7 +86,6 @@ private slots: void slotDiffEditorSwitched(); private: - void ctor(); void updateEntryToolTip(); void showDiffEditor(QWidget *newEditor); void updateDiffEditorSwitcher(); diff --git a/src/plugins/diffeditor/diffeditorfactory.cpp b/src/plugins/diffeditor/diffeditorfactory.cpp index b0b23b2771b..874d0e72950 100644 --- a/src/plugins/diffeditor/diffeditorfactory.cpp +++ b/src/plugins/diffeditor/diffeditorfactory.cpp @@ -29,6 +29,7 @@ #include "diffeditor.h" #include "diffeditorconstants.h" +#include "diffeditordocument.h" #include "diffeditorfactory.h" #include "sidebysidediffeditorwidget.h" @@ -48,7 +49,7 @@ DiffEditorFactory::DiffEditorFactory(QObject *parent) Core::IEditor *DiffEditorFactory::createEditor() { - return new DiffEditor(); + return new DiffEditor(QSharedPointer(new DiffEditorDocument)); } } // namespace Internal