diff --git a/src/plugins/projectexplorer/ProjectExplorer.pluginspec b/src/plugins/projectexplorer/ProjectExplorer.pluginspec
index eb8ea81324e17570a4aa7160cd113b02aa6e4a62..a9390c57afa277c72e3531edc5622b3d7694cbc7 100644
--- a/src/plugins/projectexplorer/ProjectExplorer.pluginspec
+++ b/src/plugins/projectexplorer/ProjectExplorer.pluginspec
@@ -21,6 +21,7 @@ will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.</license>
     <dependencyList>
         <dependency name="Core" version="1.1.80"/>
         <dependency name="Find" version="1.1.80"/>
+        <dependency name="Help" version="1.1.80"/>
         <dependency name="QuickOpen" version="1.1.80"/>
         <dependency name="TextEditor" version="1.1.80"/>
     </dependencyList>
diff --git a/src/plugins/projectexplorer/projectexplorer.pro b/src/plugins/projectexplorer/projectexplorer.pro
index 5df19ebb03460b9cab1215c498690f49443fba8f..d6b1c8c8b439940fb78d04847f3d2c936b685b03 100644
--- a/src/plugins/projectexplorer/projectexplorer.pro
+++ b/src/plugins/projectexplorer/projectexplorer.pro
@@ -58,7 +58,8 @@ HEADERS += projectexplorer.h \
     buildparserfactory.h\
     gccparser.h\
     msvcparser.h\
-    filewatcher.h
+    filewatcher.h\
+    qtversionmanager.h
 SOURCES += projectexplorer.cpp \
     projectwindow.cpp \
     buildmanager.cpp \
@@ -105,7 +106,8 @@ SOURCES += projectexplorer.cpp \
     buildparserfactory.cpp \
     gccparser.cpp\
     msvcparser.cpp\
-    filewatcher.cpp
+    filewatcher.cpp\
+    qtversionmanager.cpp
 FORMS += dependenciespanel.ui \
     buildsettingspropertiespage.ui \
     processstep.ui \
@@ -114,7 +116,9 @@ FORMS += dependenciespanel.ui \
     sessiondialog.ui \
     projectwizardpage.ui \
     buildstepspage.ui \
-    removefiledialog.ui
+    removefiledialog.ui\
+    qtversionmanager.ui\
+    showbuildlog.ui
 win32 { 
     SOURCES += applicationlauncher_win.cpp \
         winguiprocess.cpp
diff --git a/src/plugins/projectexplorer/projectexplorer_dependencies.pri b/src/plugins/projectexplorer/projectexplorer_dependencies.pri
index 674c8bbb362f8727a5284f915e046a8db44f538a..b4bb9a43826078f5d43490899325ccd82847c166 100644
--- a/src/plugins/projectexplorer/projectexplorer_dependencies.pri
+++ b/src/plugins/projectexplorer/projectexplorer_dependencies.pri
@@ -3,3 +3,4 @@ include(../../plugins/quickopen/quickopen.pri)
 include(../../plugins/find/find.pri)
 include(../../plugins/coreplugin/coreplugin.pri)
 include(../../plugins/texteditor/texteditor.pri)
+include(../../plugins/help/help.pri)
diff --git a/src/plugins/projectexplorer/projectexplorerconstants.h b/src/plugins/projectexplorer/projectexplorerconstants.h
index 77ea8d8292e022b113e0a7955d05c0b5b7749acc..0a749cc7bd5c83104beeb512c9bb1aa87f53dc28 100644
--- a/src/plugins/projectexplorer/projectexplorerconstants.h
+++ b/src/plugins/projectexplorer/projectexplorerconstants.h
@@ -177,7 +177,10 @@ const char * const RESOURCE_MIMETYPE = "application/vnd.nokia.xml.qt.resource";
 const char * const BUILD_PARSER_MSVC    = "BuildParser.MSVC";
 const char * const BUILD_PARSER_GCC     = "BuildParser.Gcc";
 
-
+//Qt4 settings pages
+const char * const QT_CATEGORY            = "Qt4";
+const char * const QTVERSION_PAGE         = "Qt Versions";
+const char * const BUILD_ENVIRONMENT_PAGE = "Build Environments";
 } // namespace Constants
 } // namespace ProjectExplorer
 
diff --git a/src/plugins/qt4projectmanager/qtversionmanager.cpp b/src/plugins/projectexplorer/qtversionmanager.cpp
similarity index 86%
rename from src/plugins/qt4projectmanager/qtversionmanager.cpp
rename to src/plugins/projectexplorer/qtversionmanager.cpp
index 4b3a2b344ad3414f25c2b1d59711a7db6eb4d8f4..0e8c7bc7edfd1c953ec099aea47182ab83e03360 100644
--- a/src/plugins/qt4projectmanager/qtversionmanager.cpp
+++ b/src/plugins/projectexplorer/qtversionmanager.cpp
@@ -29,8 +29,9 @@
 
 #include "qtversionmanager.h"
 
-#include "qt4projectmanagerconstants.h"
+#include "projectexplorerconstants.h"
 #include "ui_showbuildlog.h"
+#include "ui_qtversionmanager.h"
 
 #include <coreplugin/icore.h>
 #include <coreplugin/coreconstants.h>
@@ -56,9 +57,8 @@
 #include <QtGui/QHBoxLayout>
 #include <QtGui/QLabel>
 
-using namespace Qt4ProjectManager::Internal;
-
-using ProjectExplorer::Environment;
+using namespace ProjectExplorer;
+using namespace ProjectExplorer::Internal;
 
 static const char *QtVersionsSectionName = "QtVersions";
 static const char *defaultQtVersionKey = "DefaultQtVersion";
@@ -391,18 +391,19 @@ QtDirWidget::QtDirWidget(QWidget *parent, QList<QtVersion *> versions, int defau
     }
 
 
-    m_ui.setupUi(this);
-    m_ui.qtPath->setExpectedKind(Core::Utils::PathChooser::Directory);
-    m_ui.qtPath->setPromptDialogTitle(tr("Select QTDIR"));
-    m_ui.mingwPath->setExpectedKind(Core::Utils::PathChooser::Directory);
-    m_ui.qtPath->setPromptDialogTitle(tr("Select the Qt Directory"));
+    m_ui = new Internal::Ui::QtVersionManager();
+    m_ui->setupUi(this);
+    m_ui->qtPath->setExpectedKind(Core::Utils::PathChooser::Directory);
+    m_ui->qtPath->setPromptDialogTitle(tr("Select QTDIR"));
+    m_ui->mingwPath->setExpectedKind(Core::Utils::PathChooser::Directory);
+    m_ui->qtPath->setPromptDialogTitle(tr("Select the Qt Directory"));
 
-    m_ui.addButton->setIcon(QIcon(Core::Constants::ICON_PLUS));
-    m_ui.delButton->setIcon(QIcon(Core::Constants::ICON_MINUS));
+    m_ui->addButton->setIcon(QIcon(Core::Constants::ICON_PLUS));
+    m_ui->delButton->setIcon(QIcon(Core::Constants::ICON_MINUS));
 
     for (int i = 0; i < m_versions.count(); ++i) {
         const QtVersion * const version = m_versions.at(i);
-        QTreeWidgetItem *item = new QTreeWidgetItem(m_ui.qtdirList);
+        QTreeWidgetItem *item = new QTreeWidgetItem(m_ui->qtdirList);
         item->setText(0, version->name());
         item->setText(1, QDir::toNativeSeparators(version->path()));
         item->setData(0, Qt::UserRole, version->uniqueId());
@@ -416,41 +417,41 @@ QtDirWidget::QtDirWidget(QWidget *parent, QList<QtVersion *> versions, int defau
             item->setData(2, Qt::DecorationRole, QIcon());
         }
 
-        m_ui.defaultCombo->addItem(version->name());
+        m_ui->defaultCombo->addItem(version->name());
         if (i == m_defaultVersion)
-            m_ui.defaultCombo->setCurrentIndex(i);
+            m_ui->defaultCombo->setCurrentIndex(i);
     }
 
-    connect(m_ui.nameEdit, SIGNAL(textEdited(const QString &)),
+    connect(m_ui->nameEdit, SIGNAL(textEdited(const QString &)),
             this, SLOT(updateCurrentQtName()));
 
 
-    connect(m_ui.qtPath, SIGNAL(changed()),
+    connect(m_ui->qtPath, SIGNAL(changed()),
             this, SLOT(updateCurrentQtPath()));
-    connect(m_ui.mingwPath, SIGNAL(changed()),
+    connect(m_ui->mingwPath, SIGNAL(changed()),
             this, SLOT(updateCurrentMingwDirectory()));
 
-    connect(m_ui.addButton, SIGNAL(clicked()),
+    connect(m_ui->addButton, SIGNAL(clicked()),
             this, SLOT(addQtDir()));
-    connect(m_ui.delButton, SIGNAL(clicked()),
+    connect(m_ui->delButton, SIGNAL(clicked()),
             this, SLOT(removeQtDir()));
 
-    connect(m_ui.qtPath, SIGNAL(browsingFinished()),
+    connect(m_ui->qtPath, SIGNAL(browsingFinished()),
             this, SLOT(onQtBrowsed()));
-    connect(m_ui.mingwPath, SIGNAL(browsingFinished()),
+    connect(m_ui->mingwPath, SIGNAL(browsingFinished()),
             this, SLOT(onMingwBrowsed()));
 
-    connect(m_ui.qtdirList, SIGNAL(currentItemChanged(QTreeWidgetItem *, QTreeWidgetItem *)),
+    connect(m_ui->qtdirList, SIGNAL(currentItemChanged(QTreeWidgetItem *, QTreeWidgetItem *)),
             this, SLOT(versionChanged(QTreeWidgetItem *, QTreeWidgetItem *)));
-    connect(m_ui.defaultCombo, SIGNAL(currentIndexChanged(int)),
+    connect(m_ui->defaultCombo, SIGNAL(currentIndexChanged(int)),
             this, SLOT(defaultChanged(int)));
 
-    connect(m_ui.msvcComboBox, SIGNAL(currentIndexChanged(int)),
+    connect(m_ui->msvcComboBox, SIGNAL(currentIndexChanged(int)),
             this, SLOT(msvcVersionChanged()));
 
-    connect(m_ui.rebuildButton, SIGNAL(clicked()),
+    connect(m_ui->rebuildButton, SIGNAL(clicked()),
             this, SLOT(buildDebuggingHelper()));
-    connect(m_ui.showLogButton, SIGNAL(clicked()),
+    connect(m_ui->showLogButton, SIGNAL(clicked()),
             this, SLOT(showDebuggingBuildLog()));
 
     showEnvironmentPage(0);
@@ -460,43 +461,44 @@ QtDirWidget::QtDirWidget(QWidget *parent, QList<QtVersion *> versions, int defau
 void QtDirWidget::buildDebuggingHelper()
 {
     // Find the qt version for this button..
-    QTreeWidgetItem *currentItem = m_ui.qtdirList->currentItem();
+    QTreeWidgetItem *currentItem = m_ui->qtdirList->currentItem();
     if (!currentItem)
         return;
 
-    int currentItemIndex = m_ui.qtdirList->indexOfTopLevelItem(currentItem);
+    int currentItemIndex = m_ui->qtdirList->indexOfTopLevelItem(currentItem);
     QtVersion *version = m_versions[currentItemIndex];
 
     QString result = m_versions.at(currentItemIndex)->buildDebuggingHelperLibrary();
     currentItem->setData(2, Qt::UserRole, result);
 
     if (version->hasDebuggingHelper()) {
-        m_ui.debuggingHelperStateLabel->setPixmap(QPixmap(":/extensionsystem/images/ok.png"));
+        m_ui->debuggingHelperStateLabel->setPixmap(QPixmap(":/extensionsystem/images/ok.png"));
         currentItem->setData(2, Qt::DecorationRole, QIcon(":/extensionsystem/images/ok.png"));
     } else {        
-        m_ui.debuggingHelperStateLabel->setPixmap(QPixmap(":/extensionsystem/images/error.png"));
+        m_ui->debuggingHelperStateLabel->setPixmap(QPixmap(":/extensionsystem/images/error.png"));
         currentItem->setData(2, Qt::DecorationRole, QIcon(":/extensionsystem/images/error.png"));
     }
-    m_ui.showLogButton->setEnabled(true);
+    m_ui->showLogButton->setEnabled(true);
 }
 
 void QtDirWidget::showDebuggingBuildLog()
 {
-    QTreeWidgetItem *currentItem = m_ui.qtdirList->currentItem();
+    QTreeWidgetItem *currentItem = m_ui->qtdirList->currentItem();
     if (!currentItem)
         return;
 
-    int currentItemIndex = m_ui.qtdirList->indexOfTopLevelItem(currentItem);
+    int currentItemIndex = m_ui->qtdirList->indexOfTopLevelItem(currentItem);
     QDialog dlg;
     Ui_ShowBuildLog ui;
     ui.setupUi(&dlg);
-    ui.log->setPlainText(m_ui.qtdirList->topLevelItem(currentItemIndex)->data(2, Qt::UserRole).toString());
+    ui.log->setPlainText(m_ui->qtdirList->topLevelItem(currentItemIndex)->data(2, Qt::UserRole).toString());
     dlg.exec();
 }
 
 QtDirWidget::~QtDirWidget()
 {
     qDeleteAll(m_versions);
+    delete m_ui;
 }
 
 void QtDirWidget::addQtDir()
@@ -504,31 +506,31 @@ void QtDirWidget::addQtDir()
     QtVersion *newVersion = new QtVersion(m_specifyNameString, m_specifyPathString);
     m_versions.append(newVersion);
 
-    QTreeWidgetItem *item = new QTreeWidgetItem(m_ui.qtdirList);
+    QTreeWidgetItem *item = new QTreeWidgetItem(m_ui->qtdirList);
     item->setText(0, newVersion->name());
     item->setText(1, QDir::toNativeSeparators(newVersion->path()));
     item->setData(0, Qt::UserRole, newVersion->uniqueId());
     item->setData(2, Qt::DecorationRole, QIcon());
 
-    m_ui.qtdirList->setCurrentItem(item);
+    m_ui->qtdirList->setCurrentItem(item);
 
-    m_ui.nameEdit->setText(newVersion->name());
-    m_ui.qtPath->setPath(newVersion->path());
-    m_ui.defaultCombo->addItem(newVersion->name());
-    m_ui.nameEdit->setFocus();
-    m_ui.nameEdit->selectAll();
+    m_ui->nameEdit->setText(newVersion->name());
+    m_ui->qtPath->setPath(newVersion->path());
+    m_ui->defaultCombo->addItem(newVersion->name());
+    m_ui->nameEdit->setFocus();
+    m_ui->nameEdit->selectAll();
 }
 
 void QtDirWidget::removeQtDir()
 {
-    QTreeWidgetItem *item = m_ui.qtdirList->currentItem();
-    int index = m_ui.qtdirList->indexOfTopLevelItem(item);
+    QTreeWidgetItem *item = m_ui->qtdirList->currentItem();
+    int index = m_ui->qtdirList->indexOfTopLevelItem(item);
     if (index < 0)
         return;
 
-    for (int i = 0; i < m_ui.defaultCombo->count(); ++i) {
-        if (m_ui.defaultCombo->itemText(i) == item->text(0)) {
-            m_ui.defaultCombo->removeItem(i);
+    for (int i = 0; i < m_ui->defaultCombo->count(); ++i) {
+        if (m_ui->defaultCombo->itemText(i) == item->text(0)) {
+            m_ui->defaultCombo->removeItem(i);
             break;
         }
     }
@@ -541,83 +543,83 @@ void QtDirWidget::removeQtDir()
 
 void QtDirWidget::updateState()
 {
-    bool enabled = (m_ui.qtdirList->currentItem() != 0);
+    bool enabled = (m_ui->qtdirList->currentItem() != 0);
     bool isSystemVersion = (enabled 
-        && m_versions.at(m_ui.qtdirList->indexOfTopLevelItem(m_ui.qtdirList->currentItem()))->isSystemVersion());
-    m_ui.delButton->setEnabled(enabled && !isSystemVersion);
-    m_ui.nameEdit->setEnabled(enabled && !isSystemVersion);
-    m_ui.qtPath->setEnabled(enabled && !isSystemVersion);
-    m_ui.mingwPath->setEnabled(enabled);
+        && m_versions.at(m_ui->qtdirList->indexOfTopLevelItem(m_ui->qtdirList->currentItem()))->isSystemVersion());
+    m_ui->delButton->setEnabled(enabled && !isSystemVersion);
+    m_ui->nameEdit->setEnabled(enabled && !isSystemVersion);
+    m_ui->qtPath->setEnabled(enabled && !isSystemVersion);
+    m_ui->mingwPath->setEnabled(enabled);
 
-    bool hasLog = enabled && !m_ui.qtdirList->currentItem()->data(2, Qt::UserRole).toString().isEmpty();
-    m_ui.showLogButton->setEnabled(hasLog);
+    bool hasLog = enabled && !m_ui->qtdirList->currentItem()->data(2, Qt::UserRole).toString().isEmpty();
+    m_ui->showLogButton->setEnabled(hasLog);
 
     QtVersion *version = 0;
     if (enabled)
-        version = m_versions.at(m_ui.qtdirList->indexOfTopLevelItem(m_ui.qtdirList->currentItem()));
+        version = m_versions.at(m_ui->qtdirList->indexOfTopLevelItem(m_ui->qtdirList->currentItem()));
     if (version) {
-        m_ui.rebuildButton->setEnabled(version->isValid());
+        m_ui->rebuildButton->setEnabled(version->isValid());
         if (version->hasDebuggingHelper())
-            m_ui.debuggingHelperStateLabel->setPixmap(QPixmap(":/extensionsystem/images/ok.png"));
+            m_ui->debuggingHelperStateLabel->setPixmap(QPixmap(":/extensionsystem/images/ok.png"));
         else
-            m_ui.debuggingHelperStateLabel->setPixmap(QPixmap(":/extensionsystem/images/error.png"));
+            m_ui->debuggingHelperStateLabel->setPixmap(QPixmap(":/extensionsystem/images/error.png"));
     } else {
-        m_ui.rebuildButton->setEnabled(false);
-        m_ui.debuggingHelperStateLabel->setPixmap(QPixmap());
+        m_ui->rebuildButton->setEnabled(false);
+        m_ui->debuggingHelperStateLabel->setPixmap(QPixmap());
     }
 }
 void QtDirWidget::makeMingwVisible(bool visible)
 {
-    m_ui.mingwLabel->setVisible(visible);
-    m_ui.mingwPath->setVisible(visible);
+    m_ui->mingwLabel->setVisible(visible);
+    m_ui->mingwPath->setVisible(visible);
 }
 
 void QtDirWidget::showEnvironmentPage(QTreeWidgetItem *item)
 {
-    m_ui.msvcComboBox->setVisible(false);
+    m_ui->msvcComboBox->setVisible(false);
     if (item) {
-        int index = m_ui.qtdirList->indexOfTopLevelItem(item);
-        m_ui.errorLabel->setText("");
+        int index = m_ui->qtdirList->indexOfTopLevelItem(item);
+        m_ui->errorLabel->setText("");
         ProjectExplorer::ToolChain::ToolChainType t = m_versions.at(index)->toolchainType();
         if (t == ProjectExplorer::ToolChain::MinGW) {
-            m_ui.msvcComboBox->setVisible(false);
+            m_ui->msvcComboBox->setVisible(false);
             makeMingwVisible(true);
-            m_ui.mingwPath->setPath(m_versions.at(index)->mingwDirectory());
+            m_ui->mingwPath->setPath(m_versions.at(index)->mingwDirectory());
         } else if (t == ProjectExplorer::ToolChain::MSVC || t == ProjectExplorer::ToolChain::WINCE){
-            m_ui.msvcComboBox->setVisible(false);
+            m_ui->msvcComboBox->setVisible(false);
             makeMingwVisible(false);
             QStringList msvcEnvironments = ProjectExplorer::ToolChain::availableMSVCVersions();
             if (msvcEnvironments.count() == 0) {
             } else if (msvcEnvironments.count() == 1) {
             } else {
-                 m_ui.msvcComboBox->setVisible(true);
-                 bool block = m_ui.msvcComboBox->blockSignals(true);
-                 m_ui.msvcComboBox->clear();
+                 m_ui->msvcComboBox->setVisible(true);
+                 bool block = m_ui->msvcComboBox->blockSignals(true);
+                 m_ui->msvcComboBox->clear();
                  foreach(const QString &msvcenv, msvcEnvironments) {
-                     m_ui.msvcComboBox->addItem(msvcenv);
+                     m_ui->msvcComboBox->addItem(msvcenv);
                      if (msvcenv == m_versions.at(index)->msvcVersion()) {
-                         m_ui.msvcComboBox->setCurrentIndex(m_ui.msvcComboBox->count() - 1);
+                         m_ui->msvcComboBox->setCurrentIndex(m_ui->msvcComboBox->count() - 1);
                      }
                  }
-                 m_ui.msvcComboBox->blockSignals(block);
+                 m_ui->msvcComboBox->blockSignals(block);
             }
         } else if (t == ProjectExplorer::ToolChain::INVALID) {
-            m_ui.msvcComboBox->setVisible(false);
+            m_ui->msvcComboBox->setVisible(false);
             makeMingwVisible(false);
             if (!m_versions.at(index)->isInstalled())
-                m_ui.errorLabel->setText(tr("The Qt Version %1 is not installed. Run make install")
+                m_ui->errorLabel->setText(tr("The Qt Version %1 is not installed. Run make install")
                                            .arg(QDir::toNativeSeparators(m_versions.at(index)->path())));
             else
-                m_ui.errorLabel->setText(tr("%1 is not a valid qt directory").arg(QDir::toNativeSeparators(m_versions.at(index)->path())));
+                m_ui->errorLabel->setText(tr("%1 is not a valid qt directory").arg(QDir::toNativeSeparators(m_versions.at(index)->path())));
         } else { //ProjectExplorer::ToolChain::GCC
-            m_ui.msvcComboBox->setVisible(false);
+            m_ui->msvcComboBox->setVisible(false);
             makeMingwVisible(false);
-            m_ui.errorLabel->setText(tr("Found Qt version %1, using mkspec %2")
+            m_ui->errorLabel->setText(tr("Found Qt version %1, using mkspec %2")
                                      .arg(m_versions.at(index)->qtVersionString(),
                                           m_versions.at(index)->mkspec()));
         }
     } else {
-        m_ui.msvcComboBox->setVisible(false);
+        m_ui->msvcComboBox->setVisible(false);
         makeMingwVisible(false);
     }
 }
@@ -625,14 +627,14 @@ void QtDirWidget::showEnvironmentPage(QTreeWidgetItem *item)
 void QtDirWidget::versionChanged(QTreeWidgetItem *item, QTreeWidgetItem *old)
 {
     if (old) {
-        fixQtVersionName(m_ui.qtdirList->indexOfTopLevelItem(old));
+        fixQtVersionName(m_ui->qtdirList->indexOfTopLevelItem(old));
     }
     if (item) {
-        m_ui.nameEdit->setText(item->text(0));
-        m_ui.qtPath->setPath(item->text(1));
+        m_ui->nameEdit->setText(item->text(0));
+        m_ui->qtPath->setPath(item->text(1));
     } else {
-        m_ui.nameEdit->clear();
-        m_ui.qtPath->setPath(""); // clear()
+        m_ui->nameEdit->clear();
+        m_ui->qtPath->setPath(""); // clear()
     }
     showEnvironmentPage(item);
     updateState();
@@ -640,15 +642,15 @@ void QtDirWidget::versionChanged(QTreeWidgetItem *item, QTreeWidgetItem *old)
 
 void QtDirWidget::onQtBrowsed()
 {
-    const QString dir = m_ui.qtPath->path();
+    const QString dir = m_ui->qtPath->path();
     if (dir.isEmpty())
         return;
 
     updateCurrentQtPath();
-    if (m_ui.nameEdit->text().isEmpty() || m_ui.nameEdit->text() == m_specifyNameString) {
+    if (m_ui->nameEdit->text().isEmpty() || m_ui->nameEdit->text() == m_specifyNameString) {
         QStringList dirSegments = dir.split(QDir::separator(), QString::SkipEmptyParts);
         if (!dirSegments.isEmpty())
-            m_ui.nameEdit->setText(dirSegments.last());
+            m_ui->nameEdit->setText(dirSegments.last());
         updateCurrentQtName();
     }
     updateState();
@@ -656,7 +658,7 @@ void QtDirWidget::onQtBrowsed()
 
 void QtDirWidget::onMingwBrowsed()
 {
-    const QString dir = m_ui.mingwPath->path();
+    const QString dir = m_ui->mingwPath->path();
     if (dir.isEmpty())
         return;
 
@@ -666,8 +668,8 @@ void QtDirWidget::onMingwBrowsed()
 
 void QtDirWidget::defaultChanged(int)
 {
-    for (int i=0; i<m_ui.defaultCombo->count(); ++i) {
-        if (m_versions.at(i)->name() == m_ui.defaultCombo->currentText()) {
+    for (int i=0; i<m_ui->defaultCombo->count(); ++i) {
+        if (m_versions.at(i)->name() == m_ui->defaultCombo->currentText()) {
             m_defaultVersion = i;
             return;
         }
@@ -678,20 +680,20 @@ void QtDirWidget::defaultChanged(int)
 
 void QtDirWidget::updateCurrentQtName()
 {
-    QTreeWidgetItem *currentItem = m_ui.qtdirList->currentItem();
+    QTreeWidgetItem *currentItem = m_ui->qtdirList->currentItem();
     Q_ASSERT(currentItem);
-    int currentItemIndex = m_ui.qtdirList->indexOfTopLevelItem(currentItem);
-    m_versions[currentItemIndex]->setName(m_ui.nameEdit->text());
+    int currentItemIndex = m_ui->qtdirList->indexOfTopLevelItem(currentItem);
+    m_versions[currentItemIndex]->setName(m_ui->nameEdit->text());
     currentItem->setText(0, m_versions[currentItemIndex]->name());
 
-    m_ui.defaultCombo->setItemText(currentItemIndex, m_versions[currentItemIndex]->name());
+    m_ui->defaultCombo->setItemText(currentItemIndex, m_versions[currentItemIndex]->name());
 }
 
 
 void QtDirWidget::finish()
 {
-    if (QTreeWidgetItem *item = m_ui.qtdirList->currentItem())
-        fixQtVersionName(m_ui.qtdirList->indexOfTopLevelItem(item));
+    if (QTreeWidgetItem *item = m_ui->qtdirList->currentItem())
+        fixQtVersionName(m_ui->qtdirList->indexOfTopLevelItem(item));
 }
 
 /* Checks that the qt version name is unique
@@ -715,8 +717,8 @@ void QtDirWidget::fixQtVersionName(int index)
                 }
                 // set new name
                 m_versions[index]->setName(name);
-                m_ui.qtdirList->topLevelItem(index)->setText(0, name);
-                m_ui.defaultCombo->setItemText(index, name);
+                m_ui->qtdirList->topLevelItem(index)->setText(0, name);
+                m_ui->defaultCombo->setItemText(index, name);
 
                 // Now check again...
                 fixQtVersionName(index);
@@ -727,12 +729,12 @@ void QtDirWidget::fixQtVersionName(int index)
 
 void QtDirWidget::updateCurrentQtPath()
 {
-    QTreeWidgetItem *currentItem = m_ui.qtdirList->currentItem();
+    QTreeWidgetItem *currentItem = m_ui->qtdirList->currentItem();
     Q_ASSERT(currentItem);
-    int currentItemIndex = m_ui.qtdirList->indexOfTopLevelItem(currentItem);
-    if (m_versions[currentItemIndex]->path() == m_ui.qtPath->path())
+    int currentItemIndex = m_ui->qtdirList->indexOfTopLevelItem(currentItem);
+    if (m_versions[currentItemIndex]->path() == m_ui->qtPath->path())
         return;
-    m_versions[currentItemIndex]->setPath(m_ui.qtPath->path());
+    m_versions[currentItemIndex]->setPath(m_ui->qtPath->path());
     currentItem->setText(1, QDir::toNativeSeparators(m_versions[currentItemIndex]->path()));
 
     showEnvironmentPage(currentItem);
@@ -742,32 +744,32 @@ void QtDirWidget::updateCurrentQtPath()
         bool hasHelper = m_versions[currentItemIndex]->hasDebuggingHelper();
         if (hasHelper) {
             currentItem->setData(2, Qt::DecorationRole, QIcon(":/extensionsystem/images/ok.png"));
-            m_ui.debuggingHelperStateLabel->setPixmap(QPixmap(":/extensionsystem/images/ok.png"));
+            m_ui->debuggingHelperStateLabel->setPixmap(QPixmap(":/extensionsystem/images/ok.png"));
         } else {
             currentItem->setData(2, Qt::DecorationRole, QIcon(":/extensionsystem/images/error.png"));
-            m_ui.debuggingHelperStateLabel->setPixmap(QPixmap(":/extensionsystem/images/error.png"));
+            m_ui->debuggingHelperStateLabel->setPixmap(QPixmap(":/extensionsystem/images/error.png"));
         }
-        m_ui.showLogButton->setEnabled(hasLog);
+        m_ui->showLogButton->setEnabled(hasLog);
     } else {
         currentItem->setData(2, Qt::DecorationRole, QIcon());
-        m_ui.debuggingHelperStateLabel->setPixmap(QPixmap());
+        m_ui->debuggingHelperStateLabel->setPixmap(QPixmap());
     }
 }
 
 void QtDirWidget::updateCurrentMingwDirectory()
 {
-    QTreeWidgetItem *currentItem = m_ui.qtdirList->currentItem();
+    QTreeWidgetItem *currentItem = m_ui->qtdirList->currentItem();
     Q_ASSERT(currentItem);
-    int currentItemIndex = m_ui.qtdirList->indexOfTopLevelItem(currentItem);
-    m_versions[currentItemIndex]->setMingwDirectory(m_ui.mingwPath->path());
+    int currentItemIndex = m_ui->qtdirList->indexOfTopLevelItem(currentItem);
+    m_versions[currentItemIndex]->setMingwDirectory(m_ui->mingwPath->path());
 }
 
 void QtDirWidget::msvcVersionChanged()
 {
-    const QString &msvcVersion = m_ui.msvcComboBox->currentText();
-    QTreeWidgetItem *currentItem = m_ui.qtdirList->currentItem();
+    const QString &msvcVersion = m_ui->msvcComboBox->currentText();
+    QTreeWidgetItem *currentItem = m_ui->qtdirList->currentItem();
     Q_ASSERT(currentItem);
-    int currentItemIndex = m_ui.qtdirList->indexOfTopLevelItem(currentItem);
+    int currentItemIndex = m_ui->qtdirList->indexOfTopLevelItem(currentItem);
     m_versions[currentItemIndex]->setMsvcVersion(msvcVersion);
 }
 
diff --git a/src/plugins/qt4projectmanager/qtversionmanager.h b/src/plugins/projectexplorer/qtversionmanager.h
similarity index 95%
rename from src/plugins/qt4projectmanager/qtversionmanager.h
rename to src/plugins/projectexplorer/qtversionmanager.h
index 867f24875ed62f27b8fec0d1fcb617f271262e30..f69e61bc75a1d5cc0ac3bf63a4faf63449fb08b1 100644
--- a/src/plugins/qt4projectmanager/qtversionmanager.h
+++ b/src/plugins/projectexplorer/qtversionmanager.h
@@ -30,22 +30,26 @@
 #ifndef QTVERSIONMANAGER_H
 #define QTVERSIONMANAGER_H
 
-#include "ui_qtversionmanager.h"
+#include "projectexplorer.h"
+#include "toolchain.h"
 
 #include <coreplugin/dialogs/ioptionspage.h>
-#include <projectexplorer/projectexplorer.h>
-#include <projectexplorer/toolchain.h>
 
 #include <QtCore/QPointer>
 #include <QtGui/QWidget>
 #include <QtGui/QPushButton>
 
-namespace Qt4ProjectManager {
+namespace ProjectExplorer {
+
 namespace Internal {
+namespace Ui {
+class QtVersionManager;
+}
+}
 
 class QtDirWidget;
 
-class QtVersion
+class PROJECTEXPLORER_EXPORT QtVersion
 {
     friend class QtDirWidget; //for changing name and path
     friend class QtVersionManager;
@@ -141,7 +145,7 @@ private:
     void showEnvironmentPage(QTreeWidgetItem * item);
     void fixQtVersionName(int index);
     int indexForWidget(QWidget *debuggingHelperWidget) const;
-    Ui::QtVersionManager m_ui;
+    Internal::Ui::QtVersionManager *m_ui;
     QList<QtVersion *> m_versions;
     int m_defaultVersion;
     QString m_specifyNameString;
@@ -164,7 +168,7 @@ private slots:
     void showDebuggingBuildLog();
 };
 
-class QtVersionManager : public Core::IOptionsPage
+class PROJECTEXPLORER_EXPORT QtVersionManager : public Core::IOptionsPage
 {
     Q_OBJECT
 
@@ -222,8 +226,6 @@ private:
     QMap<int, int> m_uniqueIdToIndex;
     int m_idcount;
 };
-
-} // namespace Internal
-} // namespace Qt4ProjectManager
+} // namespace ProjectExplorer
 
 #endif // QTVERSIONMANAGER_H
diff --git a/src/plugins/qt4projectmanager/qtversionmanager.ui b/src/plugins/projectexplorer/qtversionmanager.ui
similarity index 97%
rename from src/plugins/qt4projectmanager/qtversionmanager.ui
rename to src/plugins/projectexplorer/qtversionmanager.ui
index 2dd168325cef1211a516d5954cad18087bc2e83a..dd8b252299d6982e08b942448db1c459776c0887 100644
--- a/src/plugins/qt4projectmanager/qtversionmanager.ui
+++ b/src/plugins/projectexplorer/qtversionmanager.ui
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <ui version="4.0">
- <class>Qt4ProjectManager::Internal::QtVersionManager</class>
- <widget class="QWidget" name="Qt4ProjectManager::Internal::QtVersionManager">
+ <class>ProjectExplorer::Internal::QtVersionManager</class>
+ <widget class="QWidget" name="ProjectExplorer::Internal::QtVersionManager">
   <property name="geometry">
    <rect>
     <x>0</x>
diff --git a/src/plugins/qt4projectmanager/showbuildlog.ui b/src/plugins/projectexplorer/showbuildlog.ui
similarity index 100%
rename from src/plugins/qt4projectmanager/showbuildlog.ui
rename to src/plugins/projectexplorer/showbuildlog.ui
diff --git a/src/plugins/qt4projectmanager/makestep.cpp b/src/plugins/qt4projectmanager/makestep.cpp
index 95bdd4febfdb4f7cfa292c23cd45cfa842ce7975..c3d9b5957521fd02c1eb8834ee83f882f86beb85 100644
--- a/src/plugins/qt4projectmanager/makestep.cpp
+++ b/src/plugins/qt4projectmanager/makestep.cpp
@@ -43,6 +43,7 @@
 using ProjectExplorer::IBuildParserFactory;
 using ProjectExplorer::BuildParserInterface;
 using ProjectExplorer::Environment;
+using ProjectExplorer::QtVersion;
 using ExtensionSystem::PluginManager;
 using namespace Qt4ProjectManager;
 using namespace Qt4ProjectManager::Internal;
@@ -64,7 +65,7 @@ MakeStep::~MakeStep()
     m_buildParser = 0;
 }
 
-ProjectExplorer::BuildParserInterface *MakeStep::buildParser(const QtVersion * const version)
+ProjectExplorer::BuildParserInterface *MakeStep::buildParser(const QtVersion *const version)
 {
     QString buildParser;
     ProjectExplorer::ToolChain::ToolChainType type = version->toolchainType();
diff --git a/src/plugins/qt4projectmanager/makestep.h b/src/plugins/qt4projectmanager/makestep.h
index e59711786c31cc779cacda87fa6ff091ecc97f63..91af6a69eca221fa306eaa36f30a9824b751c427 100644
--- a/src/plugins/qt4projectmanager/makestep.h
+++ b/src/plugins/qt4projectmanager/makestep.h
@@ -30,16 +30,17 @@
 #ifndef MAKESTEP_H
 #define MAKESTEP_H
 
-#include "qtversionmanager.h"
 #include "ui_makestep.h"
 
 #include <projectexplorer/abstractprocessstep.h>
 #include <projectexplorer/projectexplorer.h>
+#include <projectexplorer/qtversionmanager.h>
 
 namespace ProjectExplorer {
 class BuildStep;
 class IBuildStepFactory;
 class Project;
+class QtVersion;
 }
 
 namespace Qt4ProjectManager {
@@ -81,7 +82,7 @@ private slots:
     void addDirectory(const QString &dir);
     void removeDirectory(const QString &dir);
 private:
-    ProjectExplorer::BuildParserInterface *buildParser(const Internal::QtVersion * const version);
+    ProjectExplorer::BuildParserInterface *buildParser(const ProjectExplorer::QtVersion *const version);
     Qt4Project *m_project;
     ProjectExplorer::BuildParserInterface *m_buildParser;
     bool m_skipMakeClean;
diff --git a/src/plugins/qt4projectmanager/profilereader.cpp b/src/plugins/qt4projectmanager/profilereader.cpp
index 32b600cd288c78a4f78fa5222e4ea1c28eaeec31..109a3ffd9184b81be60d856b0ca97700b28b22e1 100644
--- a/src/plugins/qt4projectmanager/profilereader.cpp
+++ b/src/plugins/qt4projectmanager/profilereader.cpp
@@ -35,6 +35,8 @@
 using namespace Qt4ProjectManager;
 using namespace Qt4ProjectManager::Internal;
 
+using ProjectExplorer::QtVersion;
+
 ProFileReader::ProFileReader()
 {
 }
diff --git a/src/plugins/qt4projectmanager/profilereader.h b/src/plugins/qt4projectmanager/profilereader.h
index eef60c5d15312a3c7f047d7d5b949c7358646a07..79833c02dff42cf4697e7df89debe35222b11e3a 100644
--- a/src/plugins/qt4projectmanager/profilereader.h
+++ b/src/plugins/qt4projectmanager/profilereader.h
@@ -31,7 +31,7 @@
 #define PROFILEREADER_H
 
 #include "profileevaluator.h"
-#include "qtversionmanager.h"
+#include <projectexplorer/qtversionmanager.h>
 
 #include <QtCore/QObject>
 #include <QtCore/QMap>
@@ -39,7 +39,6 @@
 namespace Qt4ProjectManager {
 namespace Internal {
 
-
 class ProFileReader : public QObject, public ProFileEvaluator
 {
     Q_OBJECT
@@ -48,7 +47,7 @@ public:
     ProFileReader();
     ~ProFileReader();
 
-    void setQtVersion(QtVersion *qtVersion);
+    void setQtVersion(ProjectExplorer::QtVersion *qtVersion);
     bool readProFile(const QString &fileName);
     QList<ProFile*> includeFiles() const;
 
diff --git a/src/plugins/qt4projectmanager/projectloadwizard.cpp b/src/plugins/qt4projectmanager/projectloadwizard.cpp
index acd6c76412467259dec5dc301d83dd4c601c2561..15dcb6f4cf306615a2f94627ace80c6c3c5033c9 100644
--- a/src/plugins/qt4projectmanager/projectloadwizard.cpp
+++ b/src/plugins/qt4projectmanager/projectloadwizard.cpp
@@ -43,10 +43,12 @@
 using namespace Qt4ProjectManager;
 using namespace Qt4ProjectManager::Internal;
 
+using ProjectExplorer::QtVersion;
+
 ProjectLoadWizard::ProjectLoadWizard(Qt4Project *project, QWidget *parent, Qt::WindowFlags flags)
     : QWizard(parent, flags), m_project(project), m_importVersion(0), m_temporaryVersion(false)
 {
-    QtVersionManager * vm = project->qt4ProjectManager()->versionManager();
+    ProjectExplorer::QtVersionManager * vm = project->qt4ProjectManager()->versionManager();
     QString directory = QFileInfo(project->file()->fileName()).absolutePath();
     QString importVersion =  vm->findQtVersionFromMakefile(directory);
 
diff --git a/src/plugins/qt4projectmanager/projectloadwizard.h b/src/plugins/qt4projectmanager/projectloadwizard.h
index b6d886fe1501d89277817a45a01d507e488149ec..add96b6e7a9bab4f6e7a24dd947ff262795e0a32 100644
--- a/src/plugins/qt4projectmanager/projectloadwizard.h
+++ b/src/plugins/qt4projectmanager/projectloadwizard.h
@@ -30,7 +30,7 @@
 #ifndef PROJECTLOADWIZARD_H
 #define PROJECTLOADWIZARD_H
 
-#include "qtversionmanager.h"
+#include <projectexplorer/qtversionmanager.h>
 
 #include <QtGui/QWizard>
 
@@ -57,14 +57,14 @@ public:
     void execDialog();
 
 private:
-    void addBuildConfiguration(QString name, QtVersion *qtversion, QtVersion::QmakeBuildConfig buildConfiguration);
-    void setupImportPage(QtVersion *version, QtVersion::QmakeBuildConfig buildConfig);
+    void addBuildConfiguration(QString name, ProjectExplorer::QtVersion *qtversion, ProjectExplorer::QtVersion::QmakeBuildConfig buildConfiguration);
+    void setupImportPage(ProjectExplorer::QtVersion *version, ProjectExplorer::QtVersion::QmakeBuildConfig buildConfig);
 
     Qt4Project *m_project;
 
     // Only used for imported stuff
-    QtVersion *m_importVersion;
-    QtVersion::QmakeBuildConfig m_importBuildConfig;
+    ProjectExplorer::QtVersion *m_importVersion;
+    ProjectExplorer::QtVersion::QmakeBuildConfig m_importBuildConfig;
     // Those that we might add
     bool m_temporaryVersion;
 
diff --git a/src/plugins/qt4projectmanager/qmakestep.cpp b/src/plugins/qt4projectmanager/qmakestep.cpp
index 514feb9f3716baa1eb9226d40ca6e3f66fd9c2e2..b333016c0eb1571d78c5a811b7af2972f1205176 100644
--- a/src/plugins/qt4projectmanager/qmakestep.cpp
+++ b/src/plugins/qt4projectmanager/qmakestep.cpp
@@ -33,10 +33,10 @@
 #include "qt4projectmanagerconstants.h"
 #include "qt4projectmanager.h"
 #include "makestep.h"
-#include "qtversionmanager.h"
 
 #include <coreplugin/icore.h>
 #include <utils/qtcassert.h>
+#include <projectexplorer/qtversionmanager.h>
 
 #include <QFileDialog>
 #include <QDir>
diff --git a/src/plugins/qt4projectmanager/qt4nodes.cpp b/src/plugins/qt4projectmanager/qt4nodes.cpp
index 66c32661c35cc99ba000f36c578f7818962de15e..ac790dbfa1076e1150fe6b76a7cc9d24e106e5ea 100644
--- a/src/plugins/qt4projectmanager/qt4nodes.cpp
+++ b/src/plugins/qt4projectmanager/qt4nodes.cpp
@@ -64,6 +64,7 @@
 
 using namespace Qt4ProjectManager;
 using namespace Qt4ProjectManager::Internal;
+using ProjectExplorer::QtVersion;
 
 namespace {
     bool debug = false;
diff --git a/src/plugins/qt4projectmanager/qt4project.cpp b/src/plugins/qt4projectmanager/qt4project.cpp
index ee4b5da2693fd605c931467375974a8cc2420019..3b4f43f3226e93f9908b25da458c9f5e287743fb 100644
--- a/src/plugins/qt4projectmanager/qt4project.cpp
+++ b/src/plugins/qt4projectmanager/qt4project.cpp
@@ -36,7 +36,6 @@
 #include "qmakestep.h"
 #include "deployhelper.h"
 #include "qt4runconfiguration.h"
-#include "qtversionmanager.h"
 #include "qt4nodes.h"
 #include "qt4projectconfigwidget.h"
 #include "qt4buildenvironmentwidget.h"
@@ -51,6 +50,7 @@
 #include <projectexplorer/nodesvisitor.h>
 #include <projectexplorer/project.h>
 #include <projectexplorer/customexecutablerunconfiguration.h>
+#include <projectexplorer/qtversionmanager.h>
 
 #include <QtCore/QDebug>
 #include <QtCore/QDir>
diff --git a/src/plugins/qt4projectmanager/qt4project.h b/src/plugins/qt4projectmanager/qt4project.h
index 3351d148134d535149ece1d3ddfca4b782279f8f..c27be2be3fb9875130b633977e7a884ac9ead6f1 100644
--- a/src/plugins/qt4projectmanager/qt4project.h
+++ b/src/plugins/qt4projectmanager/qt4project.h
@@ -30,7 +30,6 @@
 #ifndef QT4PROJECT_H
 #define QT4PROJECT_H
 
-#include "qtversionmanager.h"
 #include "qt4nodes.h"
 #include "qmakestep.h"
 #include "makestep.h"
@@ -39,6 +38,7 @@
 #include <projectexplorer/applicationrunconfiguration.h>
 #include <projectexplorer/projectnodes.h>
 #include <projectexplorer/toolchain.h>
+#include <projectexplorer/qtversionmanager.h>
 
 #include <QtCore/QObject>
 #include <QtCore/QList>
@@ -148,7 +148,7 @@ public:
     //returns the qtVersion, if the project is set to use the default qt version, then
     // that is returned
     // to check wheter the project uses the default qt version use qtVersionId
-    Internal::QtVersion *qtVersion(const QString &buildConfiguration) const;
+    ProjectExplorer::QtVersion *qtVersion(const QString &buildConfiguration) const;
 
     // returns the id of the qt version, if the project is using the default qt version
     // this function returns 0
diff --git a/src/plugins/qt4projectmanager/qt4projectconfigwidget.cpp b/src/plugins/qt4projectmanager/qt4projectconfigwidget.cpp
index ee21747950767a5e3e633a716a33b613f4d741e2..a286f2d76cf74c66c2c899e62c3b62c936af6091 100644
--- a/src/plugins/qt4projectmanager/qt4projectconfigwidget.cpp
+++ b/src/plugins/qt4projectmanager/qt4projectconfigwidget.cpp
@@ -38,9 +38,13 @@
 
 #include <coreplugin/icore.h>
 #include <coreplugin/mainwindow.h>
+#include <projectexplorer/projectexplorerconstants.h>
 
 #include <QtGui/QFileDialog>
 
+using ProjectExplorer::QtVersionManager;
+using ProjectExplorer::QtVersion;
+
 namespace {
 bool debug = false;
 }
@@ -91,7 +95,7 @@ Qt4ProjectConfigWidget::~Qt4ProjectConfigWidget()
 void Qt4ProjectConfigWidget::manageQtVersions()
 {
     Core::ICore *core = Core::ICore::instance();
-    core->showOptionsDialog(Constants::QT_CATEGORY, Constants::QTVERSION_PAGE);
+    core->showOptionsDialog(ProjectExplorer::Constants::QT_CATEGORY, ProjectExplorer::Constants::QTVERSION_PAGE);
 }
 
 
diff --git a/src/plugins/qt4projectmanager/qt4projectmanager.cpp b/src/plugins/qt4projectmanager/qt4projectmanager.cpp
index 0f460242b117c47bbaeb3d8badc68ada1fb2d678..0e8e238ac5a1fee22f519d02f1b01f7a4245fa8f 100644
--- a/src/plugins/qt4projectmanager/qt4projectmanager.cpp
+++ b/src/plugins/qt4projectmanager/qt4projectmanager.cpp
@@ -34,7 +34,6 @@
 #include "qt4nodes.h"
 #include "qt4project.h"
 #include "profilereader.h"
-#include "qtversionmanager.h"
 #include "qmakestep.h"
 
 #include <coreplugin/icore.h>
@@ -47,6 +46,7 @@
 #include <projectexplorer/buildmanager.h>
 #include <projectexplorer/project.h>
 #include <projectexplorer/projectexplorerconstants.h>
+#include <projectexplorer/qtversionmanager.h>
 #include <utils/listutils.h>
 
 #include <QtCore/QCoreApplication>
@@ -68,6 +68,8 @@ using ProjectExplorer::SourceType;
 using ProjectExplorer::FormType;
 using ProjectExplorer::ResourceType;
 using ProjectExplorer::UnknownFileType;
+using ProjectExplorer::QtVersion;
+using ProjectExplorer::QtVersionManager;
 
 // Known file types of a Qt 4 project
 static const char* qt4FileTypes[] = {
diff --git a/src/plugins/qt4projectmanager/qt4projectmanager.h b/src/plugins/qt4projectmanager/qt4projectmanager.h
index d33c5b4b740da3c214fe22eb44d04c1da24c9be3..8099569fc62e7bf91db3a8d4eb73baec12586f9d 100644
--- a/src/plugins/qt4projectmanager/qt4projectmanager.h
+++ b/src/plugins/qt4projectmanager/qt4projectmanager.h
@@ -43,6 +43,7 @@ class PluginManager;
 namespace ProjectExplorer {
 class Project;
 class ProjectExplorerPlugin;
+class QtVersionManager;
 }
 
 namespace Qt4ProjectManager {
@@ -51,7 +52,6 @@ namespace Internal {
 class Qt4Builder;
 class ProFileEditor;
 class Qt4ProjectManagerPlugin;
-class QtVersionManager;
 }
 
 class Qt4Project;
@@ -85,7 +85,7 @@ public:
     void setContextProject(ProjectExplorer::Project *project);
     ProjectExplorer::Project *contextProject() const;
 
-    Internal::QtVersionManager *versionManager() const;
+    ProjectExplorer::QtVersionManager *versionManager() const;
 
     // Return the id string of a file
     static QString fileTypeId(ProjectExplorer::FileType type);
diff --git a/src/plugins/qt4projectmanager/qt4projectmanager.pro b/src/plugins/qt4projectmanager/qt4projectmanager.pro
index 7f5bf334f38426e2875f6456b8ecb95ec5c7e166..dcaa34fc61fd20915981a0528429851ee48b2009 100644
--- a/src/plugins/qt4projectmanager/qt4projectmanager.pro
+++ b/src/plugins/qt4projectmanager/qt4projectmanager.pro
@@ -5,7 +5,6 @@ include(../../qworkbenchplugin.pri)
 include(qt4projectmanager_dependencies.pri)
 HEADERS = qt4projectmanagerplugin.h \
     qt4projectmanager.h \
-    qtversionmanager.h \
     qt4project.h \
     qt4nodes.h \
     profileeditor.h \
@@ -36,7 +35,6 @@ HEADERS = qt4projectmanagerplugin.h \
     projectloadwizard.h
 SOURCES = qt4projectmanagerplugin.cpp \
     qt4projectmanager.cpp \
-    qtversionmanager.cpp \
     qt4project.cpp \
     qt4nodes.cpp \
     profileeditor.cpp \
@@ -63,16 +61,14 @@ SOURCES = qt4projectmanagerplugin.cpp \
     qt4projectconfigwidget.cpp \
     qt4buildenvironmentwidget.cpp \
     projectloadwizard.cpp
-FORMS = qtversionmanager.ui \
-    envvariablespage.ui \
+FORMS = envvariablespage.ui \
     enveditdialog.ui \
     proeditorcontainer.ui \
     makestep.ui \
     qmakestep.ui \
     qt4projectconfigwidget.ui \
     embeddedpropertiespage.ui \
-    qt4buildenvironmentwidget.ui \
-    showbuildlog.ui
+    qt4buildenvironmentwidget.ui 
 RESOURCES = qt4projectmanager.qrc \
     wizards/wizards.qrc
 include(../../shared/proparser/proparser.pri)
diff --git a/src/plugins/qt4projectmanager/qt4projectmanagerconstants.h b/src/plugins/qt4projectmanager/qt4projectmanagerconstants.h
index 14f77bdbbb6e464f34b846e3702063e1d98079a3..5da496dde9ce48367035c3bd21049eb522c697bc 100644
--- a/src/plugins/qt4projectmanager/qt4projectmanagerconstants.h
+++ b/src/plugins/qt4projectmanager/qt4projectmanagerconstants.h
@@ -37,11 +37,6 @@ namespace Constants {
 const char * const C_PROFILEEDITOR  = ".pro File Editor";
 const char * const C_PROFILEEDITOR_PANEL  = ".pro File Editor (embedded)";
 
-//settings pages
-const char * const QT_CATEGORY            = "Qt4";
-const char * const QTVERSION_PAGE         = "Qt Versions";
-const char * const BUILD_ENVIRONMENT_PAGE = "Build Environments";
-
 // kinds
 const char * const PROJECT_KIND      = "Qt4";
 const char * const PROFILE_EDITOR    = ".pro File Editor";
diff --git a/src/plugins/qt4projectmanager/qt4projectmanagerplugin.cpp b/src/plugins/qt4projectmanager/qt4projectmanagerplugin.cpp
index fa43c9133bb226997e59abd62565826bb154a951..f25df616aaae452cfdc2990e024b80a09e85a1e5 100644
--- a/src/plugins/qt4projectmanager/qt4projectmanagerplugin.cpp
+++ b/src/plugins/qt4projectmanager/qt4projectmanagerplugin.cpp
@@ -36,7 +36,6 @@
 #include "profileeditorfactory.h"
 #include "qt4projectmanagerconstants.h"
 #include "qt4project.h"
-#include "qtversionmanager.h"
 #include "embeddedpropertiespage.h"
 #include "qt4runconfiguration.h"
 #include "profilereader.h"
@@ -48,6 +47,7 @@
 #include <projectexplorer/projectexplorer.h>
 #include <projectexplorer/projectexplorerconstants.h>
 #include <projectexplorer/projectnodes.h>
+#include <projectexplorer/qtversionmanager.h>
 #include <coreplugin/uniqueidmanager.h>
 #include <coreplugin/mimedatabase.h>
 #include <coreplugin/actionmanager/actionmanager.h>
@@ -64,6 +64,7 @@
 using namespace Qt4ProjectManager::Internal;
 using namespace Qt4ProjectManager;
 using ProjectExplorer::Project;
+using ProjectExplorer::QtVersionManager;
 
 Qt4ProjectManagerPlugin::~Qt4ProjectManagerPlugin()
 {
diff --git a/src/plugins/qt4projectmanager/qt4projectmanagerplugin.h b/src/plugins/qt4projectmanager/qt4projectmanagerplugin.h
index a274d531fd5deb8c8e19bd87acfa8f04411dabc2..7d049c15c0bfc53f5484cb42cdf3145cc7ee90bc 100644
--- a/src/plugins/qt4projectmanager/qt4projectmanagerplugin.h
+++ b/src/plugins/qt4projectmanager/qt4projectmanagerplugin.h
@@ -33,6 +33,10 @@
 #include <projectexplorer/project.h>
 #include <projectexplorer/projectexplorer.h>
 
+namespace ProjectExplorer {
+    class QtVersionManager;
+}
+
 namespace Qt4ProjectManager {
 
 class Qt4Manager;
@@ -46,7 +50,6 @@ class QMakeStepFactory;
 class MakeStepFactory;
 class GccParserFactory;
 class MsvcParserFactory;
-class QtVersionManager;
 class EmbeddedPropertiesPage;
 
 class Qt4ProjectManagerPlugin : public ExtensionSystem::IPlugin
@@ -59,7 +62,7 @@ public:
     void extensionsInitialized();
 
     int projectContext() const { return m_projectContext; }
-    QtVersionManager *versionManager() const;
+    ProjectExplorer::QtVersionManager *versionManager() const;
 
 
 private slots:
@@ -77,7 +80,7 @@ private:
     ProjectExplorer::ProjectExplorerPlugin *m_projectExplorer;
     ProFileEditorFactory *m_proFileEditorFactory;
     Qt4Manager *m_qt4ProjectManager;
-    QtVersionManager *m_qtVersionManager;
+    ProjectExplorer::QtVersionManager *m_qtVersionManager;
     EmbeddedPropertiesPage *m_embeddedPropertiesPage;
 
     int m_projectContext;
diff --git a/src/plugins/qt4projectmanager/qt4runconfiguration.cpp b/src/plugins/qt4projectmanager/qt4runconfiguration.cpp
index 7cb7578cb79af187d75da0a92f139a2d9e6d568b..3741b8a20fc3f45c408ea0a0d13951cd72949995 100644
--- a/src/plugins/qt4projectmanager/qt4runconfiguration.cpp
+++ b/src/plugins/qt4projectmanager/qt4runconfiguration.cpp
@@ -51,6 +51,7 @@ using namespace Qt4ProjectManager;
 using ProjectExplorer::ApplicationRunConfiguration;
 using ProjectExplorer::PersistentSettingsReader;
 using ProjectExplorer::PersistentSettingsWriter;
+using ProjectExplorer::QtVersion;
 
 Qt4RunConfiguration::Qt4RunConfiguration(Qt4Project *pro, const QString &proFilePath)
     : ApplicationRunConfiguration(pro),