summaryrefslogtreecommitdiff
path: root/src/plugins
diff options
context:
space:
mode:
authorhjk <hjk121@nokiamail.com>2014-08-18 17:49:04 +0200
committerhjk <hjk121@nokiamail.com>2014-08-19 09:19:33 +0200
commitd2ec7d80d92952262b164068b52f63e39e259f7c (patch)
treee94901bd52bc8ee96f7c8685633dab25d0bb6d59 /src/plugins
parent2c5231b46881009625350cd5fe7383f12a323fa7 (diff)
downloadqt-creator-d2ec7d80d92952262b164068b52f63e39e259f7c.tar.gz
TextEditor: Merge the two sets of *EditorWidget constructors
Change-Id: I45d87d0be722ac36d64af222f03f8cb76242c9df Reviewed-by: Christian Stenger <christian.stenger@digia.com>
Diffstat (limited to 'src/plugins')
-rw-r--r--src/plugins/android/androidmanifesteditorwidget.cpp3
-rw-r--r--src/plugins/android/javaeditor.cpp12
-rw-r--r--src/plugins/android/javaeditor.h6
-rw-r--r--src/plugins/android/javaeditorfactory.cpp1
-rw-r--r--src/plugins/cmakeprojectmanager/cmakeeditor.cpp18
-rw-r--r--src/plugins/cmakeprojectmanager/cmakeeditor.h7
-rw-r--r--src/plugins/cmakeprojectmanager/cmakeeditorfactory.cpp7
-rw-r--r--src/plugins/cppeditor/cppeditor.cpp19
-rw-r--r--src/plugins/cppeditor/cppeditor.h6
-rw-r--r--src/plugins/cppeditor/cppeditorplugin.cpp2
-rw-r--r--src/plugins/cpptools/cpppointerdeclarationformatter_test.cpp5
-rw-r--r--src/plugins/designer/designerxmleditorwidget.cpp10
-rw-r--r--src/plugins/designer/designerxmleditorwidget.h3
-rw-r--r--src/plugins/designer/formeditorw.cpp4
-rw-r--r--src/plugins/designer/formeditorw.h2
-rw-r--r--src/plugins/diffeditor/diffeditor.cpp3
-rw-r--r--src/plugins/diffeditor/selectabletexteditorwidget.cpp3
-rw-r--r--src/plugins/genericprojectmanager/genericprojectfileseditor.cpp14
-rw-r--r--src/plugins/genericprojectmanager/genericprojectfileseditor.h15
-rw-r--r--src/plugins/glsleditor/glsleditor.cpp17
-rw-r--r--src/plugins/glsleditor/glsleditor.h5
-rw-r--r--src/plugins/glsleditor/glsleditorfactory.cpp4
-rw-r--r--src/plugins/pythoneditor/pythoneditor.cpp2
-rw-r--r--src/plugins/pythoneditor/pythoneditorfactory.cpp4
-rw-r--r--src/plugins/pythoneditor/pythoneditorwidget.cpp17
-rw-r--r--src/plugins/pythoneditor/pythoneditorwidget.h7
-rw-r--r--src/plugins/qmakeprojectmanager/profileeditor.cpp11
-rw-r--r--src/plugins/qmakeprojectmanager/profileeditor.h6
-rw-r--r--src/plugins/qmakeprojectmanager/profileeditorfactory.cpp1
-rw-r--r--src/plugins/qmljseditor/qmljseditor.cpp20
-rw-r--r--src/plugins/qmljseditor/qmljseditor.h5
-rw-r--r--src/plugins/qmljseditor/qmljseditorfactory.cpp3
-rw-r--r--src/plugins/qnx/bardescriptoreditorwidget.cpp6
-rw-r--r--src/plugins/texteditor/basetextdocument.h3
-rw-r--r--src/plugins/texteditor/basetexteditor.cpp18
-rw-r--r--src/plugins/texteditor/basetexteditor.h6
-rw-r--r--src/plugins/texteditor/plaintexteditorfactory.cpp5
-rw-r--r--src/plugins/texteditor/snippets/snippeteditor.cpp6
-rw-r--r--src/plugins/vcsbase/vcsbaseeditor.cpp10
39 files changed, 110 insertions, 186 deletions
diff --git a/src/plugins/android/androidmanifesteditorwidget.cpp b/src/plugins/android/androidmanifesteditorwidget.cpp
index 9eaa74b637..e1da129b47 100644
--- a/src/plugins/android/androidmanifesteditorwidget.cpp
+++ b/src/plugins/android/androidmanifesteditorwidget.cpp
@@ -1423,9 +1423,10 @@ int PermissionsModel::rowCount(const QModelIndex &parent) const
AndroidManifestTextEditorWidget::AndroidManifestTextEditorWidget(AndroidManifestEditorWidget *parent)
- : TextEditor::BaseTextEditorWidget(new AndroidManifestDocument(parent), parent),
+ : TextEditor::BaseTextEditorWidget(parent),
m_parent(parent)
{
+ setTextDocument(TextEditor::BaseTextDocumentPtr(new AndroidManifestDocument(parent)));
setupAsPlainEditor();
textDocument()->setMimeType(QLatin1String(Constants::ANDROID_MANIFEST_MIME_TYPE));
}
diff --git a/src/plugins/android/javaeditor.cpp b/src/plugins/android/javaeditor.cpp
index f9d22aec97..2e4a72eb39 100644
--- a/src/plugins/android/javaeditor.cpp
+++ b/src/plugins/android/javaeditor.cpp
@@ -62,8 +62,8 @@ JavaEditor::JavaEditor(JavaEditorWidget *editor)
Core::IEditor *JavaEditor::duplicate()
{
- JavaEditorWidget *ret = new JavaEditorWidget(
- qobject_cast<JavaEditorWidget*>(editorWidget()));
+ JavaEditorWidget *ret = new JavaEditorWidget;
+ ret->setTextDocument(editorWidget()->textDocumentPtr());
TextEditor::TextEditorSettings::initializeEditor(ret);
return ret->editor();
}
@@ -72,13 +72,7 @@ Core::IEditor *JavaEditor::duplicate()
// JavaEditorWidget
//
-JavaEditorWidget::JavaEditorWidget(QWidget *parent)
- : BaseTextEditorWidget(new JavaDocument(), parent)
-{
-}
-
-JavaEditorWidget::JavaEditorWidget(JavaEditorWidget *other)
- : BaseTextEditorWidget(other)
+JavaEditorWidget::JavaEditorWidget()
{
}
diff --git a/src/plugins/android/javaeditor.h b/src/plugins/android/javaeditor.h
index 8e8fc6a5d1..fd5e216e9d 100644
--- a/src/plugins/android/javaeditor.h
+++ b/src/plugins/android/javaeditor.h
@@ -56,14 +56,10 @@ class JavaEditorWidget : public TextEditor::BaseTextEditorWidget
Q_OBJECT
public:
- JavaEditorWidget(QWidget *parent = 0);
- JavaEditorWidget(JavaEditorWidget *other);
+ JavaEditorWidget();
protected:
TextEditor::BaseTextEditor *createEditor();
-
-private:
- JavaEditorWidget(BaseTextEditorWidget *); // avoid stupidity
};
class JavaDocument : public TextEditor::BaseTextDocument
diff --git a/src/plugins/android/javaeditorfactory.cpp b/src/plugins/android/javaeditorfactory.cpp
index be9bee9dcc..3a634467f2 100644
--- a/src/plugins/android/javaeditorfactory.cpp
+++ b/src/plugins/android/javaeditorfactory.cpp
@@ -49,6 +49,7 @@ JavaEditorFactory::JavaEditorFactory()
Core::IEditor *JavaEditorFactory::createEditor()
{
JavaEditorWidget *editor = new JavaEditorWidget;
+ editor->setTextDocument(TextEditor::BaseTextDocumentPtr(new JavaDocument));
TextEditor::TextEditorSettings::initializeEditor(editor);
return editor->editor();
}
diff --git a/src/plugins/cmakeprojectmanager/cmakeeditor.cpp b/src/plugins/cmakeprojectmanager/cmakeeditor.cpp
index b46772758c..52e5de75ec 100644
--- a/src/plugins/cmakeprojectmanager/cmakeeditor.cpp
+++ b/src/plugins/cmakeprojectmanager/cmakeeditor.cpp
@@ -70,8 +70,8 @@ CMakeEditor::CMakeEditor(CMakeEditorWidget *editor)
Core::IEditor *CMakeEditor::duplicate()
{
- CMakeEditorWidget *ret = new CMakeEditorWidget(
- qobject_cast<CMakeEditorWidget *>(editorWidget()));
+ CMakeEditorWidget *ret = new CMakeEditorWidget;
+ ret->setTextDocument(editorWidget()->textDocumentPtr());
TextEditor::TextEditorSettings::initializeEditor(ret);
return ret->editor();
}
@@ -150,19 +150,7 @@ QString CMakeEditor::contextHelpId() const
// CMakeEditor
//
-CMakeEditorWidget::CMakeEditorWidget(QWidget *parent)
- : BaseTextEditorWidget(new CMakeDocument(), parent)
-{
- ctor();
-}
-
-CMakeEditorWidget::CMakeEditorWidget(CMakeEditorWidget *other)
- : BaseTextEditorWidget(other)
-{
- ctor();
-}
-
-void CMakeEditorWidget::ctor()
+CMakeEditorWidget::CMakeEditorWidget()
{
setCodeFoldingSupported(true);
}
diff --git a/src/plugins/cmakeprojectmanager/cmakeeditor.h b/src/plugins/cmakeprojectmanager/cmakeeditor.h
index 3f213de84f..fee92e1971 100644
--- a/src/plugins/cmakeprojectmanager/cmakeeditor.h
+++ b/src/plugins/cmakeprojectmanager/cmakeeditor.h
@@ -66,8 +66,7 @@ class CMakeEditorWidget : public TextEditor::BaseTextEditorWidget
Q_OBJECT
public:
- CMakeEditorWidget(QWidget *parent = 0);
- CMakeEditorWidget(CMakeEditorWidget *other);
+ CMakeEditorWidget();
bool save(const QString &fileName = QString());
@@ -76,10 +75,6 @@ public:
protected:
TextEditor::BaseTextEditor *createEditor();
void contextMenuEvent(QContextMenuEvent *e);
-
-private:
- CMakeEditorWidget(TextEditor::BaseTextEditorWidget *); // avoid stupidity
- void ctor();
};
class CMakeDocument : public TextEditor::BaseTextDocument
diff --git a/src/plugins/cmakeprojectmanager/cmakeeditorfactory.cpp b/src/plugins/cmakeprojectmanager/cmakeeditorfactory.cpp
index 74fc4699f2..d6a6f96570 100644
--- a/src/plugins/cmakeprojectmanager/cmakeeditorfactory.cpp
+++ b/src/plugins/cmakeprojectmanager/cmakeeditorfactory.cpp
@@ -72,7 +72,8 @@ CMakeEditorFactory::CMakeEditorFactory(CMakeManager *manager)
Core::IEditor *CMakeEditorFactory::createEditor()
{
- CMakeEditorWidget *rc = new CMakeEditorWidget();
- TextEditor::TextEditorSettings::initializeEditor(rc);
- return rc->editor();
+ CMakeEditorWidget *widget = new CMakeEditorWidget;
+ widget->setTextDocument(TextEditor::BaseTextDocumentPtr(new CMakeDocument));
+ TextEditor::TextEditorSettings::initializeEditor(widget);
+ return widget->editor();
}
diff --git a/src/plugins/cppeditor/cppeditor.cpp b/src/plugins/cppeditor/cppeditor.cpp
index 6a7e830e61..1d42d9bae3 100644
--- a/src/plugins/cppeditor/cppeditor.cpp
+++ b/src/plugins/cppeditor/cppeditor.cpp
@@ -175,20 +175,10 @@ CppEditorWidgetPrivate::CppEditorWidgetPrivate(CppEditorWidget *q)
{
}
-CppEditorWidget::CppEditorWidget(QWidget *parent)
- : TextEditor::BaseTextEditorWidget(new CPPEditorDocument(), parent)
-{
- ctor();
-}
-
-CppEditorWidget::CppEditorWidget(CppEditorWidget *other)
- : TextEditor::BaseTextEditorWidget(other)
-{
- ctor();
-}
-
-void CppEditorWidget::ctor()
+CppEditorWidget::CppEditorWidget(TextEditor::BaseTextDocumentPtr doc)
+ : TextEditor::BaseTextEditorWidget(0)
{
+ setTextDocument(doc);
d.reset(new CppEditorWidgetPrivate(this));
qRegisterMetaType<SemanticInfo>("CppTools::SemanticInfo");
@@ -781,8 +771,7 @@ void CppEditorWidget::keyPressEvent(QKeyEvent *e)
Core::IEditor *CPPEditor::duplicate()
{
- CppEditorWidget *newEditor = new CppEditorWidget(
- qobject_cast<CppEditorWidget *>(editorWidget()));
+ CppEditorWidget *newEditor = new CppEditorWidget(editorWidget()->textDocumentPtr());
CppEditorPlugin::instance()->initializeEditor(newEditor);
return newEditor->editor();
}
diff --git a/src/plugins/cppeditor/cppeditor.h b/src/plugins/cppeditor/cppeditor.h
index d938762916..91de8e456f 100644
--- a/src/plugins/cppeditor/cppeditor.h
+++ b/src/plugins/cppeditor/cppeditor.h
@@ -77,8 +77,7 @@ public:
static QString identifierUnderCursor(QTextCursor *macroCursor);
public:
- CppEditorWidget(QWidget *parent = 0);
- CppEditorWidget(CppEditorWidget *other);
+ CppEditorWidget(TextEditor::BaseTextDocumentPtr doc);
~CppEditorWidget();
CPPEditorDocument *cppEditorDocument() const;
@@ -154,9 +153,6 @@ private slots:
private:
static bool openCppEditorAt(const Link &, bool inNextSplit = false);
- CppEditorWidget(TextEditor::BaseTextEditorWidget *); // avoid stupidity
- void ctor();
-
unsigned editorRevision() const;
bool isOutdated() const;
diff --git a/src/plugins/cppeditor/cppeditorplugin.cpp b/src/plugins/cppeditor/cppeditorplugin.cpp
index e174d67893..e060fe402d 100644
--- a/src/plugins/cppeditor/cppeditorplugin.cpp
+++ b/src/plugins/cppeditor/cppeditorplugin.cpp
@@ -97,7 +97,7 @@ CppEditorFactory::CppEditorFactory(CppEditorPlugin *owner) :
IEditor *CppEditorFactory::createEditor()
{
- CppEditorWidget *editor = new CppEditorWidget();
+ CppEditorWidget *editor = new CppEditorWidget(BaseTextDocumentPtr(new CPPEditorDocument));
m_owner->initializeEditor(editor);
return editor->editor();
}
diff --git a/src/plugins/cpptools/cpppointerdeclarationformatter_test.cpp b/src/plugins/cpptools/cpppointerdeclarationformatter_test.cpp
index b0781dac35..8877b1c41f 100644
--- a/src/plugins/cpptools/cpppointerdeclarationformatter_test.cpp
+++ b/src/plugins/cpptools/cpppointerdeclarationformatter_test.cpp
@@ -102,9 +102,10 @@ public:
QVERIFY(ast);
// Open file
- auto textDocument = new TextEditor::BaseTextDocument;
+ TextEditor::BaseTextDocumentPtr textDocument(new TextEditor::BaseTextDocument);
textDocument->setId(Core::Constants::K_DEFAULT_TEXT_EDITOR_ID);
- TextEditor::BaseTextEditorWidget editorWidget(textDocument, 0);
+ TextEditor::BaseTextEditorWidget editorWidget(0);
+ editorWidget.setTextDocument(textDocument);
editorWidget.setupAsPlainEditor();
QString error;
editorWidget.open(&error, document->fileName(), document->fileName());
diff --git a/src/plugins/designer/designerxmleditorwidget.cpp b/src/plugins/designer/designerxmleditorwidget.cpp
index f209a98ceb..a3357ead0c 100644
--- a/src/plugins/designer/designerxmleditorwidget.cpp
+++ b/src/plugins/designer/designerxmleditorwidget.cpp
@@ -37,14 +37,14 @@
namespace Designer {
namespace Internal {
-DesignerXmlEditorWidget::DesignerXmlEditorWidget(QDesignerFormWindowInterface *form,
- QWidget *parent) :
- TextEditor::BaseTextEditorWidget(new FormWindowFile(form), parent),
- m_designerEditor(new FormWindowEditor(this))
+DesignerXmlEditorWidget::DesignerXmlEditorWidget(QDesignerFormWindowInterface *form)
{
+ TextEditor::BaseTextDocumentPtr doc(new FormWindowFile(form));
+ setTextDocument(doc);
+ m_designerEditor = new FormWindowEditor(this);
setupAsPlainEditor();
setReadOnly(true);
- configureMimeType(textDocument()->mimeType());
+ configureMimeType(doc->mimeType());
}
TextEditor::BaseTextEditor *DesignerXmlEditorWidget::createEditor()
diff --git a/src/plugins/designer/designerxmleditorwidget.h b/src/plugins/designer/designerxmleditorwidget.h
index 43855f25e2..975510b807 100644
--- a/src/plugins/designer/designerxmleditorwidget.h
+++ b/src/plugins/designer/designerxmleditorwidget.h
@@ -57,8 +57,7 @@ class DesignerXmlEditorWidget : public TextEditor::BaseTextEditorWidget
{
Q_OBJECT
public:
- explicit DesignerXmlEditorWidget(QDesignerFormWindowInterface *form,
- QWidget *parent = 0);
+ explicit DesignerXmlEditorWidget(QDesignerFormWindowInterface *form);
FormWindowEditor *designerEditor() const;
Internal::FormWindowFile *formWindowFile() const;
diff --git a/src/plugins/designer/formeditorw.cpp b/src/plugins/designer/formeditorw.cpp
index 193f7159fb..d4b680d5e0 100644
--- a/src/plugins/designer/formeditorw.cpp
+++ b/src/plugins/designer/formeditorw.cpp
@@ -663,7 +663,7 @@ Command *FormEditorW::addToolAction(QAction *a, const Context &context, Id id,
return command;
}
-EditorData FormEditorW::createEditor(QWidget *parent)
+EditorData FormEditorW::createEditor()
{
if (Designer::Constants::Internal::debug)
qDebug() << "FormEditorW::createEditor";
@@ -683,7 +683,7 @@ EditorData FormEditorW::createEditor(QWidget *parent)
qdesigner_internal::FormWindowBase::setupDefaultAction(form);
#endif
data.widgetHost = new SharedTools::WidgetHost( /* parent */ 0, form);
- DesignerXmlEditorWidget *xmlEditor = new DesignerXmlEditorWidget(form, parent);
+ DesignerXmlEditorWidget *xmlEditor = new DesignerXmlEditorWidget(form);
TextEditor::TextEditorSettings::initializeEditor(xmlEditor);
data.formWindowEditor = xmlEditor->designerEditor();
connect(data.formWindowEditor->document(), SIGNAL(filePathChanged(QString,QString)),
diff --git a/src/plugins/designer/formeditorw.h b/src/plugins/designer/formeditorw.h
index 94bc2b1cb9..3f03c932fa 100644
--- a/src/plugins/designer/formeditorw.h
+++ b/src/plugins/designer/formeditorw.h
@@ -111,7 +111,7 @@ public:
// Deletes an existing instance if there is one.
static void deleteInstance();
- EditorData createEditor(QWidget *parent = 0);
+ EditorData createEditor();
inline QDesignerFormEditorInterface *designerEditor() const { return m_formeditor; }
inline QWidget * const*designerSubWindows() const { return m_designerSubWindows; }
diff --git a/src/plugins/diffeditor/diffeditor.cpp b/src/plugins/diffeditor/diffeditor.cpp
index ddd064a663..3b98173c94 100644
--- a/src/plugins/diffeditor/diffeditor.cpp
+++ b/src/plugins/diffeditor/diffeditor.cpp
@@ -101,8 +101,9 @@ private:
};
DescriptionEditorWidget::DescriptionEditorWidget(QWidget *parent)
- : BaseTextEditorWidget(new BaseTextDocument, parent)
+ : BaseTextEditorWidget(parent)
{
+ setTextDocument(BaseTextDocumentPtr(new BaseTextDocument));
DisplaySettings settings = displaySettings();
settings.m_textWrapping = false;
settings.m_displayLineNumbers = false;
diff --git a/src/plugins/diffeditor/selectabletexteditorwidget.cpp b/src/plugins/diffeditor/selectabletexteditorwidget.cpp
index cc906cd154..53e03b3c1f 100644
--- a/src/plugins/diffeditor/selectabletexteditorwidget.cpp
+++ b/src/plugins/diffeditor/selectabletexteditorwidget.cpp
@@ -36,8 +36,9 @@
namespace DiffEditor {
SelectableTextEditorWidget::SelectableTextEditorWidget(QWidget *parent)
- : BaseTextEditorWidget(new TextEditor::BaseTextDocument, parent)
+ : BaseTextEditorWidget(parent)
{
+ setTextDocument(TextEditor::BaseTextDocumentPtr(new TextEditor::BaseTextDocument));
setFrameStyle(QFrame::NoFrame);
}
diff --git a/src/plugins/genericprojectmanager/genericprojectfileseditor.cpp b/src/plugins/genericprojectmanager/genericprojectfileseditor.cpp
index 143e2fa927..1f2b4ba6cb 100644
--- a/src/plugins/genericprojectmanager/genericprojectfileseditor.cpp
+++ b/src/plugins/genericprojectmanager/genericprojectfileseditor.cpp
@@ -64,7 +64,8 @@ ProjectFilesFactory::ProjectFilesFactory(Manager *manager)
Core::IEditor *ProjectFilesFactory::createEditor()
{
- auto widget = new ProjectFilesEditorWidget(new BaseTextDocument, 0);
+ auto widget = new ProjectFilesEditorWidget;
+ widget->setTextDocument(BaseTextDocumentPtr(new BaseTextDocument));
TextEditorSettings::initializeEditor(widget);
return widget->editor();
}
@@ -85,7 +86,8 @@ ProjectFilesEditor::ProjectFilesEditor(ProjectFilesEditorWidget *editor)
Core::IEditor *ProjectFilesEditor::duplicate()
{
- auto widget = new ProjectFilesEditorWidget(editorWidget());
+ auto widget = new ProjectFilesEditorWidget;
+ widget->setTextDocument(editorWidget()->textDocumentPtr());
TextEditorSettings::initializeEditor(widget);
return widget->editor();
}
@@ -96,13 +98,7 @@ Core::IEditor *ProjectFilesEditor::duplicate()
//
////////////////////////////////////////////////////////////////////////////////////////
-ProjectFilesEditorWidget::ProjectFilesEditorWidget(BaseTextDocument *doc, QWidget *parent)
- : BaseTextEditorWidget(doc, parent)
-{
-}
-
-ProjectFilesEditorWidget::ProjectFilesEditorWidget(BaseTextEditorWidget *other)
- : BaseTextEditorWidget(other)
+ProjectFilesEditorWidget::ProjectFilesEditorWidget()
{
}
diff --git a/src/plugins/genericprojectmanager/genericprojectfileseditor.h b/src/plugins/genericprojectmanager/genericprojectfileseditor.h
index 755161abe0..803e3bf9a7 100644
--- a/src/plugins/genericprojectmanager/genericprojectfileseditor.h
+++ b/src/plugins/genericprojectmanager/genericprojectfileseditor.h
@@ -39,8 +39,6 @@ namespace GenericProjectManager {
namespace Internal {
class Manager;
-class ProjectFilesEditor;
-class ProjectFilesEditorWidget;
class ProjectFilesFactory: public Core::IEditorFactory
{
@@ -52,25 +50,24 @@ public:
Core::IEditor *createEditor();
};
-class ProjectFilesEditor : public TextEditor::BaseTextEditor
+class ProjectFilesEditorWidget : public TextEditor::BaseTextEditorWidget
{
Q_OBJECT
public:
- ProjectFilesEditor(ProjectFilesEditorWidget *editorWidget);
+ ProjectFilesEditorWidget();
- Core::IEditor *duplicate();
+ TextEditor::BaseTextEditor *createEditor();
};
-class ProjectFilesEditorWidget : public TextEditor::BaseTextEditorWidget
+class ProjectFilesEditor : public TextEditor::BaseTextEditor
{
Q_OBJECT
public:
- ProjectFilesEditorWidget(TextEditor::BaseTextDocument *doc, QWidget *parent);
- ProjectFilesEditorWidget(BaseTextEditorWidget *other);
+ ProjectFilesEditor(ProjectFilesEditorWidget *editorWidget);
- TextEditor::BaseTextEditor *createEditor();
+ Core::IEditor *duplicate();
};
} // namespace Internal
diff --git a/src/plugins/glsleditor/glsleditor.cpp b/src/plugins/glsleditor/glsleditor.cpp
index 844adcfb02..15398b928b 100644
--- a/src/plugins/glsleditor/glsleditor.cpp
+++ b/src/plugins/glsleditor/glsleditor.cpp
@@ -140,20 +140,10 @@ void Document::addRange(const QTextCursor &cursor, GLSL::Scope *scope)
_cursors.append(c);
}
-GlslEditorWidget::GlslEditorWidget(TextEditor::BaseTextDocument *doc, QWidget *parent)
- : TextEditor::BaseTextEditorWidget(doc, parent)
+GlslEditorWidget::GlslEditorWidget(const TextEditor::BaseTextDocumentPtr &doc)
{
- ctor();
-}
+ setTextDocument(doc);
-GlslEditorWidget::GlslEditorWidget(GlslEditorWidget *other)
- : TextEditor::BaseTextEditorWidget(other)
-{
- ctor();
-}
-
-void GlslEditorWidget::ctor()
-{
m_outlineCombo = 0;
setParenthesesMatchingEnabled(true);
setMarksVisible(true);
@@ -215,8 +205,7 @@ bool GlslEditorWidget::isOutdated() const
Core::IEditor *GlslEditor::duplicate()
{
- GlslEditorWidget *newEditor = new GlslEditorWidget(
- qobject_cast<GlslEditorWidget *>(editorWidget()));
+ GlslEditorWidget *newEditor = new GlslEditorWidget(editorWidget()->textDocumentPtr());
TextEditor::TextEditorSettings::initializeEditor(newEditor);
return newEditor->editor();
}
diff --git a/src/plugins/glsleditor/glsleditor.h b/src/plugins/glsleditor/glsleditor.h
index 380a7be537..4e54005350 100644
--- a/src/plugins/glsleditor/glsleditor.h
+++ b/src/plugins/glsleditor/glsleditor.h
@@ -86,8 +86,7 @@ class GlslEditorWidget : public TextEditor::BaseTextEditorWidget
Q_OBJECT
public:
- GlslEditorWidget(TextEditor::BaseTextDocument *doc, QWidget *parent);
- GlslEditorWidget(GlslEditorWidget *other);
+ GlslEditorWidget(const TextEditor::BaseTextDocumentPtr &doc);
int editorRevision() const;
bool isOutdated() const;
@@ -107,8 +106,6 @@ protected:
TextEditor::BaseTextEditor *createEditor();
private:
- GlslEditorWidget(TextEditor::BaseTextEditorWidget *); // avoid stupidity
- void ctor();
void setSelectedElements();
QString wordUnderCursor() const;
diff --git a/src/plugins/glsleditor/glsleditorfactory.cpp b/src/plugins/glsleditor/glsleditorfactory.cpp
index 5393d1834e..a492c6758b 100644
--- a/src/plugins/glsleditor/glsleditorfactory.cpp
+++ b/src/plugins/glsleditor/glsleditorfactory.cpp
@@ -66,10 +66,10 @@ GLSLEditorFactory::GLSLEditorFactory(QObject *parent)
Core::IEditor *GLSLEditorFactory::createEditor()
{
- auto doc = new TextEditor::BaseTextDocument;
+ TextEditor::BaseTextDocumentPtr doc(new TextEditor::BaseTextDocument);
doc->setId(C_GLSLEDITOR_ID);
doc->setIndenter(new GLSLIndenter);
- GlslEditorWidget *rc = new GlslEditorWidget(doc, 0);
+ GlslEditorWidget *rc = new GlslEditorWidget(doc);
TextEditor::TextEditorSettings::initializeEditor(rc);
return rc->editor();
}
diff --git a/src/plugins/pythoneditor/pythoneditor.cpp b/src/plugins/pythoneditor/pythoneditor.cpp
index 196091d480..f7a85c828b 100644
--- a/src/plugins/pythoneditor/pythoneditor.cpp
+++ b/src/plugins/pythoneditor/pythoneditor.cpp
@@ -58,7 +58,7 @@ PythonEditor::PythonEditor(PythonEditorWidget *editorWidget)
Core::IEditor *PythonEditor::duplicate()
{
- PythonEditorWidget *widget = new PythonEditorWidget(qobject_cast<PythonEditorWidget *>(editorWidget()));
+ PythonEditorWidget *widget = new PythonEditorWidget(editorWidget()->textDocumentPtr());
TextEditor::TextEditorSettings::initializeEditor(widget);
return widget->editor();
}
diff --git a/src/plugins/pythoneditor/pythoneditorfactory.cpp b/src/plugins/pythoneditor/pythoneditorfactory.cpp
index 8a3c19e232..25089e6fb0 100644
--- a/src/plugins/pythoneditor/pythoneditorfactory.cpp
+++ b/src/plugins/pythoneditor/pythoneditorfactory.cpp
@@ -60,10 +60,10 @@ EditorFactory::EditorFactory(QObject *parent)
Core::IEditor *EditorFactory::createEditor()
{
- auto doc = new BaseTextDocument;
+ BaseTextDocumentPtr doc(new BaseTextDocument);
doc->setId(Constants::C_PYTHONEDITOR_ID);
doc->setIndenter(new PythonIndenter);
- PythonEditorWidget *widget = new PythonEditorWidget(doc, 0);
+ PythonEditorWidget *widget = new PythonEditorWidget(doc);
TextEditor::TextEditorSettings::initializeEditor(widget);
return widget->editor();
diff --git a/src/plugins/pythoneditor/pythoneditorwidget.cpp b/src/plugins/pythoneditor/pythoneditorwidget.cpp
index 08e1f35258..4a8d1edf59 100644
--- a/src/plugins/pythoneditor/pythoneditorwidget.cpp
+++ b/src/plugins/pythoneditor/pythoneditorwidget.cpp
@@ -47,25 +47,14 @@
namespace PythonEditor {
namespace Internal {
-PythonEditorWidget::PythonEditorWidget(TextEditor::BaseTextDocument *doc, QWidget *parent)
- : TextEditor::BaseTextEditorWidget(doc, parent)
-{
- ctor();
-}
-
-PythonEditorWidget::PythonEditorWidget(PythonEditorWidget *other)
- : TextEditor::BaseTextEditorWidget(other)
-{
- ctor();
-}
-
-void PythonEditorWidget::ctor()
+PythonEditorWidget::PythonEditorWidget(TextEditor::BaseTextDocumentPtr doc)
{
+ setTextDocument(doc);
setParenthesesMatchingEnabled(true);
setMarksVisible(true);
setCodeFoldingSupported(true);
- new PythonHighlighter(textDocument());
+ new PythonHighlighter(doc.data());
}
TextEditor::BaseTextEditor *PythonEditorWidget::createEditor()
diff --git a/src/plugins/pythoneditor/pythoneditorwidget.h b/src/plugins/pythoneditor/pythoneditorwidget.h
index c182e195ad..e121d68f90 100644
--- a/src/plugins/pythoneditor/pythoneditorwidget.h
+++ b/src/plugins/pythoneditor/pythoneditorwidget.h
@@ -40,15 +40,10 @@ class PythonEditorWidget : public TextEditor::BaseTextEditorWidget
Q_OBJECT
public:
- PythonEditorWidget(TextEditor::BaseTextDocument *doc, QWidget *parent);
- PythonEditorWidget(PythonEditorWidget *other);
+ PythonEditorWidget(TextEditor::BaseTextDocumentPtr doc);
protected:
TextEditor::BaseTextEditor *createEditor();
-
-private:
- PythonEditorWidget(TextEditor::BaseTextEditorWidget *); // avoid stupidity
- void ctor();
};
} // namespace Internal
diff --git a/src/plugins/qmakeprojectmanager/profileeditor.cpp b/src/plugins/qmakeprojectmanager/profileeditor.cpp
index 31b2e4b477..68822ac301 100644
--- a/src/plugins/qmakeprojectmanager/profileeditor.cpp
+++ b/src/plugins/qmakeprojectmanager/profileeditor.cpp
@@ -64,8 +64,8 @@ ProFileEditor::ProFileEditor(ProFileEditorWidget *editor)
Core::IEditor *ProFileEditor::duplicate()
{
- ProFileEditorWidget *ret = new ProFileEditorWidget(
- qobject_cast<ProFileEditorWidget*>(editorWidget()));
+ ProFileEditorWidget *ret = new ProFileEditorWidget;
+ ret->setTextDocument(editorWidget()->textDocumentPtr());
TextEditor::TextEditorSettings::initializeEditor(ret);
return ret->editor();
}
@@ -74,12 +74,7 @@ Core::IEditor *ProFileEditor::duplicate()
// ProFileEditorWidget
//
-ProFileEditorWidget::ProFileEditorWidget(QWidget *parent)
- : BaseTextEditorWidget(new ProFileDocument(), parent)
-{}
-
-ProFileEditorWidget::ProFileEditorWidget(ProFileEditorWidget *other)
- : BaseTextEditorWidget(other)
+ProFileEditorWidget::ProFileEditorWidget()
{}
static bool isValidFileNameChar(const QChar &c)
diff --git a/src/plugins/qmakeprojectmanager/profileeditor.h b/src/plugins/qmakeprojectmanager/profileeditor.h
index d586cc49b4..caa92e2f26 100644
--- a/src/plugins/qmakeprojectmanager/profileeditor.h
+++ b/src/plugins/qmakeprojectmanager/profileeditor.h
@@ -55,17 +55,13 @@ class ProFileEditorWidget : public TextEditor::BaseTextEditorWidget
Q_OBJECT
public:
- ProFileEditorWidget(QWidget *parent = 0);
- ProFileEditorWidget(ProFileEditorWidget *other);
+ ProFileEditorWidget();
protected:
virtual Link findLinkAt(const QTextCursor &, bool resolveTarget = true,
bool inNextSplit = false);
TextEditor::BaseTextEditor *createEditor();
void contextMenuEvent(QContextMenuEvent *);
-
-private:
- ProFileEditorWidget(BaseTextEditorWidget *); // avoid stupidity
};
class ProFileDocument : public TextEditor::BaseTextDocument
diff --git a/src/plugins/qmakeprojectmanager/profileeditorfactory.cpp b/src/plugins/qmakeprojectmanager/profileeditorfactory.cpp
index 223d067957..8dee30c499 100644
--- a/src/plugins/qmakeprojectmanager/profileeditorfactory.cpp
+++ b/src/plugins/qmakeprojectmanager/profileeditorfactory.cpp
@@ -66,6 +66,7 @@ ProFileEditorFactory::ProFileEditorFactory(QmakeManager *manager) :
Core::IEditor *ProFileEditorFactory::createEditor()
{
ProFileEditorWidget *editor = new ProFileEditorWidget;
+ editor->setTextDocument(TextEditor::BaseTextDocumentPtr(new ProFileDocument));
TextEditor::TextEditorSettings::initializeEditor(editor);
return editor->editor();
}
diff --git a/src/plugins/qmljseditor/qmljseditor.cpp b/src/plugins/qmljseditor/qmljseditor.cpp
index f10a5f280f..6ce3e637ce 100644
--- a/src/plugins/qmljseditor/qmljseditor.cpp
+++ b/src/plugins/qmljseditor/qmljseditor.cpp
@@ -97,21 +97,12 @@ using namespace QmlJSTools;
namespace QmlJSEditor {
namespace Internal {
-QmlJSTextEditorWidget::QmlJSTextEditorWidget(QWidget *parent) :
- TextEditor::BaseTextEditorWidget(new QmlJSEditorDocument, parent)
+QmlJSTextEditorWidget::QmlJSTextEditorWidget(TextEditor::BaseTextDocumentPtr doc)
+ : TextEditor::BaseTextEditorWidget(0)
{
- ctor();
-}
+ setTextDocument(doc);
-QmlJSTextEditorWidget::QmlJSTextEditorWidget(QmlJSTextEditorWidget *other)
- : TextEditor::BaseTextEditorWidget(other)
-{
- ctor();
-}
-
-void QmlJSTextEditorWidget::ctor()
-{
- m_qmlJsEditorDocument = static_cast<QmlJSEditorDocument *>(textDocument());
+ m_qmlJsEditorDocument = static_cast<QmlJSEditorDocument *>(doc.data());
m_outlineCombo = 0;
m_contextPane = 0;
m_findReferences = new FindReferences(this);
@@ -177,8 +168,7 @@ QModelIndex QmlJSTextEditorWidget::outlineModelIndex()
IEditor *QmlJSEditor::duplicate()
{
- QmlJSTextEditorWidget *newEditor = new QmlJSTextEditorWidget(
- qobject_cast<QmlJSTextEditorWidget *>(editorWidget()));
+ QmlJSTextEditorWidget *newEditor = new QmlJSTextEditorWidget(editorWidget()->textDocumentPtr());
TextEditor::TextEditorSettings::initializeEditor(newEditor);
return newEditor->editor();
}
diff --git a/src/plugins/qmljseditor/qmljseditor.h b/src/plugins/qmljseditor/qmljseditor.h
index 9dc4e206d6..f67c5e4f5f 100644
--- a/src/plugins/qmljseditor/qmljseditor.h
+++ b/src/plugins/qmljseditor/qmljseditor.h
@@ -74,8 +74,7 @@ class QmlJSTextEditorWidget : public TextEditor::BaseTextEditorWidget
Q_OBJECT
public:
- QmlJSTextEditorWidget(QWidget *parent = 0);
- QmlJSTextEditorWidget(QmlJSTextEditorWidget *other);
+ QmlJSTextEditorWidget(TextEditor::BaseTextDocumentPtr doc);
~QmlJSTextEditorWidget();
QmlJSEditorDocument *qmlJsEditorDocument() const;
@@ -124,8 +123,6 @@ protected:
QString foldReplacementText(const QTextBlock &block) const;
private:
- QmlJSTextEditorWidget(TextEditor::BaseTextEditorWidget *); // avoid stupidity
- void ctor();
bool isClosingBrace(const QList<QmlJS::Token> &tokens) const;
void setSelectedElements();
diff --git a/src/plugins/qmljseditor/qmljseditorfactory.cpp b/src/plugins/qmljseditor/qmljseditorfactory.cpp
index f0bbfb9757..6b76c10c7f 100644
--- a/src/plugins/qmljseditor/qmljseditorfactory.cpp
+++ b/src/plugins/qmljseditor/qmljseditorfactory.cpp
@@ -28,6 +28,7 @@
****************************************************************************/
#include "qmljseditorfactory.h"
+#include "qmljseditordocument.h"
#include "qmljseditoreditable.h"
#include "qmljseditor.h"
#include "qmljseditorconstants.h"
@@ -64,7 +65,7 @@ QmlJSEditorFactory::QmlJSEditorFactory(QObject *parent)
Core::IEditor *QmlJSEditorFactory::createEditor()
{
- QmlJSTextEditorWidget *rc = new QmlJSTextEditorWidget();
+ QmlJSTextEditorWidget *rc = new QmlJSTextEditorWidget(TextEditor::BaseTextDocumentPtr(new QmlJSEditorDocument));
TextEditor::TextEditorSettings::initializeEditor(rc);
return rc->editor();
}
diff --git a/src/plugins/qnx/bardescriptoreditorwidget.cpp b/src/plugins/qnx/bardescriptoreditorwidget.cpp
index 20c7eb6a9d..efda173dc4 100644
--- a/src/plugins/qnx/bardescriptoreditorwidget.cpp
+++ b/src/plugins/qnx/bardescriptoreditorwidget.cpp
@@ -54,6 +54,7 @@
#include <texteditor/normalindenter.h>
#include <utils/qtcassert.h>
+using namespace TextEditor;
using namespace Qnx;
using namespace Qnx::Internal;
@@ -168,11 +169,12 @@ void BarDescriptorEditorWidget::initAssetsPage()
void BarDescriptorEditorWidget::initSourcePage()
{
- auto doc = new TextEditor::BaseTextDocument;
+ BaseTextDocumentPtr doc(new BaseTextDocument);
doc->setId(Core::Constants::K_DEFAULT_TEXT_EDITOR_ID); // FIXME: This looks odd.
doc->setIndenter(new TextEditor::NormalIndenter);
- m_xmlSourceWidget = new TextEditor::BaseTextEditorWidget(doc, this);
+ m_xmlSourceWidget = new TextEditor::BaseTextEditorWidget(this);
+ m_xmlSourceWidget->setTextDocument(doc);
m_xmlSourceWidget->setupAsPlainEditor();
addWidget(m_xmlSourceWidget);
diff --git a/src/plugins/texteditor/basetextdocument.h b/src/plugins/texteditor/basetextdocument.h
index 437c843270..71c1d428b0 100644
--- a/src/plugins/texteditor/basetextdocument.h
+++ b/src/plugins/texteditor/basetextdocument.h
@@ -38,6 +38,7 @@
#include <QList>
#include <QMap>
+#include <QSharedPointer>
QT_BEGIN_NAMESPACE
class QTextCursor;
@@ -147,6 +148,8 @@ private:
BaseTextDocumentPrivate *d;
};
+typedef QSharedPointer<BaseTextDocument> BaseTextDocumentPtr;
+
} // namespace TextEditor
#endif // BASETEXTDOCUMENT_H
diff --git a/src/plugins/texteditor/basetexteditor.cpp b/src/plugins/texteditor/basetexteditor.cpp
index 73b1857209..60ff90a47e 100644
--- a/src/plugins/texteditor/basetexteditor.cpp
+++ b/src/plugins/texteditor/basetexteditor.cpp
@@ -566,17 +566,15 @@ QString BaseTextEditorWidget::convertToPlainText(const QString &txt)
static const char kTextBlockMimeType[] = "application/vnd.qtcreator.blocktext";
-BaseTextEditorWidget::BaseTextEditorWidget(BaseTextDocument *doc, QWidget *parent)
+BaseTextEditorWidget::BaseTextEditorWidget(QWidget *parent)
: QPlainTextEdit(parent)
{
d = new BaseTextEditorWidgetPrivate(this);
- d->ctor(QSharedPointer<BaseTextDocument>(doc));
}
-BaseTextEditorWidget::BaseTextEditorWidget(BaseTextEditorWidget *other)
+void BaseTextEditorWidget::setTextDocument(const QSharedPointer<BaseTextDocument> &doc)
{
- d = new BaseTextEditorWidgetPrivate(this);
- d->ctor(other->d->m_document);
+ d->ctor(doc);
}
void BaseTextEditorWidgetPrivate::ctor(const QSharedPointer<BaseTextDocument> &doc)
@@ -1000,6 +998,11 @@ BaseTextDocument *BaseTextEditorWidget::textDocument() const
return d->m_document.data();
}
+BaseTextDocumentPtr BaseTextEditorWidget::textDocumentPtr() const
+{
+ return d->m_document;
+}
+
void BaseTextEditorWidgetPrivate::editorContentsChange(int position, int charsRemoved, int charsAdded)
{
if (m_animator)
@@ -2806,7 +2809,7 @@ AutoCompleter *BaseTextEditor::autoCompleter() const
void BaseTextEditorWidgetPrivate::setupDocumentSignals()
{
QTextDocument *doc = m_document->document();
- q->setDocument(doc);
+ q->QPlainTextEdit::setDocument(doc);
q->setCursorWidth(2); // Applies to the document layout
BaseTextDocumentLayout *documentLayout = qobject_cast<BaseTextDocumentLayout*>(doc->documentLayout());
@@ -7096,7 +7099,8 @@ void BaseTextEditorWidget::setupAsPlainEditor()
IEditor *BaseTextEditor::duplicate()
{
- auto newWidget = new BaseTextEditorWidget(editorWidget());
+ auto newWidget = new BaseTextEditorWidget(0);
+ newWidget->setTextDocument(editorWidget()->textDocumentPtr());
newWidget->setupAsPlainEditor();
TextEditorSettings::initializeEditor(newWidget);
auto editor = newWidget->editor();
diff --git a/src/plugins/texteditor/basetexteditor.h b/src/plugins/texteditor/basetexteditor.h
index 10108e2b8e..bfb118fc6f 100644
--- a/src/plugins/texteditor/basetexteditor.h
+++ b/src/plugins/texteditor/basetexteditor.h
@@ -212,11 +212,13 @@ class TEXTEDITOR_EXPORT BaseTextEditorWidget : public QPlainTextEdit
Q_PROPERTY(int verticalBlockSelectionLastColumn READ verticalBlockSelectionLastColumn)
public:
- BaseTextEditorWidget(BaseTextDocument *doc, QWidget *parent);
- BaseTextEditorWidget(BaseTextEditorWidget *other);
+ BaseTextEditorWidget(QWidget *parent = 0);
~BaseTextEditorWidget();
+ void setTextDocument(const BaseTextDocumentPtr &doc);
+
BaseTextDocument *textDocument() const;
+ BaseTextDocumentPtr textDocumentPtr() const;
// IEditor
virtual bool open(QString *errorString, const QString &fileName, const QString &realFileName);
diff --git a/src/plugins/texteditor/plaintexteditorfactory.cpp b/src/plugins/texteditor/plaintexteditorfactory.cpp
index 6266e75db8..f14dce2685 100644
--- a/src/plugins/texteditor/plaintexteditorfactory.cpp
+++ b/src/plugins/texteditor/plaintexteditorfactory.cpp
@@ -61,10 +61,11 @@ PlainTextEditorFactory::PlainTextEditorFactory(QObject *parent)
Core::IEditor *PlainTextEditorFactory::createEditor()
{
- auto doc = new BaseTextDocument;
+ BaseTextDocumentPtr doc(new BaseTextDocument);
doc->setId(Core::Constants::K_DEFAULT_TEXT_EDITOR_ID);
doc->setIndenter(new NormalIndenter);
- auto widget = new BaseTextEditorWidget(doc, 0);
+ auto widget = new BaseTextEditorWidget(0);
+ widget->setTextDocument(doc);
widget->setupAsPlainEditor();
TextEditorSettings::initializeEditor(widget);
connect(widget, SIGNAL(configured(Core::IEditor*)),
diff --git a/src/plugins/texteditor/snippets/snippeteditor.cpp b/src/plugins/texteditor/snippets/snippeteditor.cpp
index 08ff2a88f2..d59be8a5b4 100644
--- a/src/plugins/texteditor/snippets/snippeteditor.cpp
+++ b/src/plugins/texteditor/snippets/snippeteditor.cpp
@@ -50,9 +50,11 @@ SnippetEditor::SnippetEditor(SnippetEditorWidget *editor)
}
SnippetEditorWidget::SnippetEditorWidget(QWidget *parent)
- : BaseTextEditorWidget(new BaseTextDocument, parent)
+ : BaseTextEditorWidget(parent)
{
- textDocument()->setId(Constants::SNIPPET_EDITOR_ID);
+ BaseTextDocumentPtr doc(new BaseTextDocument);
+ doc->setId(Constants::SNIPPET_EDITOR_ID);
+ setTextDocument(doc);
setFrameStyle(QFrame::StyledPanel | QFrame::Sunken);
setHighlightCurrentLine(false);
setLineNumbersVisible(false);
diff --git a/src/plugins/vcsbase/vcsbaseeditor.cpp b/src/plugins/vcsbase/vcsbaseeditor.cpp
index 54d5a87a13..4cce8c946c 100644
--- a/src/plugins/vcsbase/vcsbaseeditor.cpp
+++ b/src/plugins/vcsbase/vcsbaseeditor.cpp
@@ -90,6 +90,8 @@
\sa VcsBase::VcsBaseEditorWidget
*/
+using namespace TextEditor;
+
namespace VcsBase {
/*!
@@ -649,12 +651,14 @@ QComboBox *VcsBaseEditorWidgetPrivate::entriesComboBox()
*/
VcsBaseEditorWidget::VcsBaseEditorWidget(const VcsBaseEditorParameters *type, QWidget *parent)
- : BaseTextEditorWidget(new TextEditor::BaseTextDocument, parent),
+ : BaseTextEditorWidget(parent),
d(new Internal::VcsBaseEditorWidgetPrivate(this, type))
{
+ BaseTextDocumentPtr doc(new BaseTextDocument);
+ doc->setId(type->id);
+ doc->setMimeType(QLatin1String(d->m_parameters->mimeType));
+ setTextDocument(doc);
viewport()->setMouseTracking(true);
- textDocument()->setId(type->id);
- textDocument()->setMimeType(QLatin1String(d->m_parameters->mimeType));
}
void VcsBaseEditorWidget::setDiffFilePattern(const QRegExp &pattern)