From a8b248f4ed9acb3ab64f1b26d0dba20aabebbc70 Mon Sep 17 00:00:00 2001
From: Leandro Melo <leandro.melo@nokia.com>
Date: Wed, 29 Jun 2011 17:45:52 +0200
Subject: [PATCH] Editors: Dont configure form's text editor unnecessarily

It's sufficient (and actually better) to configure the plain
text editor at the moment in which the xml is synchronized.

Task-number: QTCREATORBUG-5251
Change-Id: Ib2a3e1828f61770871486b8fbc1618abda1a5a74
Reviewed-on: http://codereview.qt.nokia.com/931
Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
(cherry picked from commit 754b8b3ac70e123bdb57c0dd21082ccc534a4366)
---
 src/plugins/designer/formwindoweditor.cpp  | 12 ++----------
 src/plugins/designer/formwindoweditor.h    |  1 -
 src/plugins/texteditor/plaintexteditor.cpp |  5 +++++
 src/plugins/texteditor/plaintexteditor.h   |  1 +
 4 files changed, 8 insertions(+), 11 deletions(-)

diff --git a/src/plugins/designer/formwindoweditor.cpp b/src/plugins/designer/formwindoweditor.cpp
index 516795f27ff..6057002e2b3 100644
--- a/src/plugins/designer/formwindoweditor.cpp
+++ b/src/plugins/designer/formwindoweditor.cpp
@@ -88,7 +88,6 @@ FormWindowEditor::FormWindowEditor(Internal::DesignerXmlEditor *editor,
     // Force update of open editors model.
     connect(&d->m_file, SIGNAL(saved()), this, SIGNAL(changed()));
     connect(&d->m_file, SIGNAL(changed()), this, SIGNAL(changed()));
-    connect(this, SIGNAL(changed()), this, SLOT(configureXmlEditor()));
 }
 
 FormWindowEditor::~FormWindowEditor()
@@ -196,19 +195,12 @@ void FormWindowEditor::syncXmlEditor()
     syncXmlEditor(contents());
 }
 
-void FormWindowEditor::configureXmlEditor() const
-{
-    TextEditor::PlainTextEditorWidget *widget =
-            qobject_cast<TextEditor::PlainTextEditorWidget *>(d->m_textEditor.widget());
-    if (widget)
-        widget->configure(Core::ICore::instance()->mimeDatabase()->findByFile(
-                d->m_file.fileName()));
-}
-
 void FormWindowEditor::syncXmlEditor(const QString &contents)
 {
     d->m_textEditor.editorWidget()->setPlainText(contents);
     d->m_textEditor.editorWidget()->setReadOnly(true);
+    static_cast<TextEditor::PlainTextEditorWidget *>
+            (d->m_textEditor.editorWidget())->configure(file()->mimeType());
 }
 
 Core::IFile *FormWindowEditor::file()
diff --git a/src/plugins/designer/formwindoweditor.h b/src/plugins/designer/formwindoweditor.h
index 3260917e693..b348a2ffd6b 100644
--- a/src/plugins/designer/formwindoweditor.h
+++ b/src/plugins/designer/formwindoweditor.h
@@ -97,7 +97,6 @@ public:
 
 public slots:
     void syncXmlEditor();
-    void configureXmlEditor() const;
 
 private slots:
     void slotOpen(QString *errorString, const QString &fileName);
diff --git a/src/plugins/texteditor/plaintexteditor.cpp b/src/plugins/texteditor/plaintexteditor.cpp
index ca6008d0e7a..d2925ff0d70 100644
--- a/src/plugins/texteditor/plaintexteditor.cpp
+++ b/src/plugins/texteditor/plaintexteditor.cpp
@@ -154,6 +154,11 @@ void PlainTextEditorWidget::configure()
     configure(mimeType);
 }
 
+void PlainTextEditorWidget::configure(const QString &mimeType)
+{
+    configure(Core::ICore::instance()->mimeDatabase()->findByType(mimeType));
+}
+
 void PlainTextEditorWidget::configure(const Core::MimeType &mimeType)
 {
     Highlighter *highlighter = new Highlighter();
diff --git a/src/plugins/texteditor/plaintexteditor.h b/src/plugins/texteditor/plaintexteditor.h
index 6b003ea080e..2fb3185d87d 100644
--- a/src/plugins/texteditor/plaintexteditor.h
+++ b/src/plugins/texteditor/plaintexteditor.h
@@ -68,6 +68,7 @@ class TEXTEDITOR_EXPORT PlainTextEditorWidget : public BaseTextEditorWidget
 public:
     PlainTextEditorWidget(QWidget *parent);
 
+    void configure(const QString& mimeType);
     void configure(const Core::MimeType &mimeType);
     bool isMissingSyntaxDefinition() const;
     bool ignoreMissingSyntaxDefinition() const;
-- 
GitLab