diff --git a/src/plugins/designer/designerxmleditor.cpp b/src/plugins/designer/designerxmleditor.cpp
index d9f438b97cc062e0f81335231ec42e42371a1b51..562d87ddc58227020f157920998d530ef6b1ce46 100644
--- a/src/plugins/designer/designerxmleditor.cpp
+++ b/src/plugins/designer/designerxmleditor.cpp
@@ -50,8 +50,6 @@ DesignerXmlEditor::DesignerXmlEditor(QDesignerFormWindowInterface *form,
     m_designerEditor(new FormWindowEditor(this, form))
 {
     setReadOnly(true);
-    connect(Core::EditorManager::instance(), SIGNAL(currentEditorChanged(Core::IEditor*)),
-             SLOT(updateEditorInfoBar(Core::IEditor*)));
 }
 
 TextEditor::BaseTextEditorEditable *DesignerXmlEditor::createEditableInterface()
@@ -61,22 +59,6 @@ TextEditor::BaseTextEditorEditable *DesignerXmlEditor::createEditableInterface()
     return m_designerEditor->textEditable();
 }
 
-void DesignerXmlEditor::updateEditorInfoBar(Core::IEditor *editor)
-{
-    if (editor == m_designerEditor) {
-        Core::EditorManager::instance()->showEditorInfoBar(Constants::INFO_READ_ONLY,
-            tr("This file can only be edited in Design Mode."),
-            tr("Open Designer"), this, SLOT(designerModeClicked()));
-    }
-    if (!editor)
-        Core::EditorManager::instance()->hideEditorInfoBar(Constants::INFO_READ_ONLY);
-}
-
-void DesignerXmlEditor::designerModeClicked()
-{
-    Core::ICore::instance()->modeManager()->activateMode(QLatin1String(Core::Constants::MODE_DESIGN));
-}
-
 FormWindowEditor *DesignerXmlEditor::designerEditor() const
 {
     return m_designerEditor;
diff --git a/src/plugins/designer/designerxmleditor.h b/src/plugins/designer/designerxmleditor.h
index dcedcb808a6665a1979c795a2f13072be917c5e7..e4671a9b4dc9580879c548555289d7966d355d6f 100644
--- a/src/plugins/designer/designerxmleditor.h
+++ b/src/plugins/designer/designerxmleditor.h
@@ -58,10 +58,6 @@ public:
 
     FormWindowEditor *designerEditor() const;
 
-private slots:
-    void designerModeClicked();
-    void updateEditorInfoBar(Core::IEditor *editor);
-
 protected:
     virtual TextEditor::BaseTextEditorEditable *createEditableInterface();
 
diff --git a/src/plugins/designer/formeditorfactory.cpp b/src/plugins/designer/formeditorfactory.cpp
index 042fd5c77bd83ff64597e4b5bcab4acdeea9f6bf..6b39e50fee806ee3d7aebcb3021204939ae12c79 100644
--- a/src/plugins/designer/formeditorfactory.cpp
+++ b/src/plugins/designer/formeditorfactory.cpp
@@ -34,9 +34,11 @@
 #include "designerconstants.h"
 #include "designerxmleditor.h"
 
+#include <coreplugin/coreconstants.h>
 #include <coreplugin/icore.h>
 #include <coreplugin/fileiconprovider.h>
 #include <coreplugin/editormanager/editormanager.h>
+#include <coreplugin/modemanager.h>
 
 #include <QtCore/QFileInfo>
 #include <QtCore/QDebug>
@@ -53,6 +55,8 @@ FormEditorFactory::FormEditorFactory()
     Core::FileIconProvider *iconProvider = Core::FileIconProvider::instance();
     iconProvider->registerIconOverlayForSuffix(QIcon(QLatin1String(":/formeditor/images/qt_ui.png")),
                                                QLatin1String("ui"));
+    connect(Core::EditorManager::instance(), SIGNAL(currentEditorChanged(Core::IEditor*)),
+             SLOT(updateEditorInfoBar(Core::IEditor*)));
 }
 
 QString FormEditorFactory::id() const
@@ -82,6 +86,22 @@ QStringList FormEditorFactory::mimeTypes() const
     return m_mimeTypes;
 }
 
+void FormEditorFactory::updateEditorInfoBar(Core::IEditor *editor)
+{
+    if (qobject_cast<FormWindowEditor *>(editor)) {
+        Core::EditorManager::instance()->showEditorInfoBar(Constants::INFO_READ_ONLY,
+            tr("This file can only be edited in Design Mode."),
+            tr("Open Designer"), this, SLOT(designerModeClicked()));
+    } else {
+        Core::EditorManager::instance()->hideEditorInfoBar(Constants::INFO_READ_ONLY);
+    }
+}
+
+void FormEditorFactory::designerModeClicked()
+{
+    Core::ICore::instance()->modeManager()->activateMode(QLatin1String(Core::Constants::MODE_DESIGN));
+}
+
 } // namespace Internal
 } // namespace Designer
 
diff --git a/src/plugins/designer/formeditorfactory.h b/src/plugins/designer/formeditorfactory.h
index 75c0db8778ceb32c8973e55fcde9763c33749fb8..d43fe4a2fb0011237624429462acf397ec8d3675 100644
--- a/src/plugins/designer/formeditorfactory.h
+++ b/src/plugins/designer/formeditorfactory.h
@@ -56,6 +56,10 @@ public:
     Core::IFile *open(const QString &fileName);
     Core::IEditor *createEditor(QWidget *parent);
 
+private slots:
+    void designerModeClicked();
+    void updateEditorInfoBar(Core::IEditor *editor);
+
 private:
     const QStringList m_mimeTypes;
 };