diff --git a/src/plugins/plugins.pro b/src/plugins/plugins.pro
index ef284bdce7d60e04532972dda5318f3d85467a5d..061be55ec864723db4e66d7e45b3dd39d54560a9 100644
--- a/src/plugins/plugins.pro
+++ b/src/plugins/plugins.pro
@@ -44,7 +44,6 @@ SUBDIRS   = plugin_coreplugin \
             plugin_qmlprofiler \
             plugin_remotelinux \
             plugin_madde \
-            plugin_qttest \
             plugin_valgrind
 
 isEmpty(IDE_PACKAGE_MODE) {
@@ -196,14 +195,6 @@ plugin_qtestlib.subdir = qtestlib
 plugin_qtestlib.depends = plugin_projectexplorer
 plugin_qtestlib.depends += plugin_coreplugin
 
-plugin_qttest.subdir = qttest
-plugin_qttest.depends = plugin_projectexplorer
-plugin_qttest.depends += plugin_coreplugin
-plugin_qttest.depends += plugin_debugger
-plugin_qttest.depends += plugin_qt4projectmanager
-plugin_qttest.depends += plugin_qtsupport
-plugin_qttest.depends += plugin_remotelinux
-
 plugin_helloworld.subdir = helloworld
 plugin_helloworld.depends = plugin_coreplugin
 
diff --git a/src/plugins/qttest/QtTest.pluginspec.in b/src/plugins/qttest/QtTest.pluginspec.in
deleted file mode 100644
index bea5128c59ef547bf918b2ef88926f2f4e065cad..0000000000000000000000000000000000000000
--- a/src/plugins/qttest/QtTest.pluginspec.in
+++ /dev/null
@@ -1,24 +0,0 @@
-<plugin name=\"QtTest\" version=\"$$QTCREATOR_VERSION\" compatVersion=\"$$QTCREATOR_VERSION\" experimental=\"true\">
-    <vendor>Nokia Corporation</vendor>
-    <copyright>(C) 2011 Nokia Corporation</copyright>
-    <license>
-Commercial Usage
-
-Licensees holding valid Qt Commercial licenses may use this plugin in accordance with the Qt Commercial License Agreement provided with the Software or, alternatively, in accordance with the terms contained in a written agreement between you and Nokia.
-
-GNU Lesser General Public License Usage
-
-Alternatively, this plugin may be used under the terms of the GNU Lesser General Public License version 2.1 as published by the Free Software Foundation.  Please review the following information to ensure the GNU Lesser General Public License version 2.1 requirements will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-    </license>
-    <category>Automated Testing</category>
-    <description>Automated Testing Plugin</description>
-    <url>http://qt.nokia.com</url>
-    <dependencyList>
-        <dependency name=\"ProjectExplorer\" version=\"$$QTCREATOR_VERSION\"/>
-        <dependency name=\"Core\" version=\"$$QTCREATOR_VERSION\"/>
-        <dependency name=\"Debugger\" version=\"$$QTCREATOR_VERSION\"/>
-        <dependency name=\"Qt4ProjectManager\" version=\"$$QTCREATOR_VERSION\"/>
-        <dependency name=\"QtSupport\" version=\"$$QTCREATOR_VERSION\"/>
-        <dependency name=\"RemoteLinux\" version=\"$$QTCREATOR_VERSION\"/>
-    </dependencyList>
-</plugin>
diff --git a/src/plugins/qttest/addmanualtestdlg.cpp b/src/plugins/qttest/addmanualtestdlg.cpp
deleted file mode 100644
index 0088139c2049d41465e05a374a71ae399654b48c..0000000000000000000000000000000000000000
--- a/src/plugins/qttest/addmanualtestdlg.cpp
+++ /dev/null
@@ -1,46 +0,0 @@
-/**************************************************************************
-**
-** This file is part of Qt Creator
-**
-** Copyright (c) 2011 Nokia Corporation and/or its subsidiary(-ies).
-**
-** Contact: Nokia Corporation (info@qt.nokia.com)
-**
-**
-** GNU Lesser General Public License Usage
-**
-** This file may be used under the terms of the GNU Lesser General Public
-** License version 2.1 as published by the Free Software Foundation and
-** appearing in the file LICENSE.LGPL included in the packaging of this file.
-** Please review the following information to ensure the GNU Lesser General
-** Public License version 2.1 requirements will be met:
-** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Nokia gives you certain additional
-** rights. These rights are described in the Nokia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** Other Usage
-**
-** Alternatively, this file may be used in accordance with the terms and
-** conditions contained in a signed written agreement between you and Nokia.
-**
-** If you have questions regarding the use of this file, please contact
-** Nokia at info@qt.nokia.com.
-**
-**************************************************************************/
-
-#include "addmanualtestdlg.h"
-#include "ui_addmanualtestdlg.h"
-
-AddManualTestDlg::AddManualTestDlg(QWidget *parent) :
-    QDialog(parent),
-    ui(new Ui::AddManualTestDlg)
-{
-    ui->setupUi(this);
-}
-
-AddManualTestDlg::~AddManualTestDlg()
-{
-    delete ui;
-}
diff --git a/src/plugins/qttest/addmanualtestdlg.h b/src/plugins/qttest/addmanualtestdlg.h
deleted file mode 100644
index ef6de9a49b813c3157ba90f0c71dcbcd241c6a7b..0000000000000000000000000000000000000000
--- a/src/plugins/qttest/addmanualtestdlg.h
+++ /dev/null
@@ -1,56 +0,0 @@
-/**************************************************************************
-**
-** This file is part of Qt Creator
-**
-** Copyright (c) 2011 Nokia Corporation and/or its subsidiary(-ies).
-**
-** Contact: Nokia Corporation (info@qt.nokia.com)
-**
-**
-** GNU Lesser General Public License Usage
-**
-** This file may be used under the terms of the GNU Lesser General Public
-** License version 2.1 as published by the Free Software Foundation and
-** appearing in the file LICENSE.LGPL included in the packaging of this file.
-** Please review the following information to ensure the GNU Lesser General
-** Public License version 2.1 requirements will be met:
-** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Nokia gives you certain additional
-** rights. These rights are described in the Nokia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** Other Usage
-**
-** Alternatively, this file may be used in accordance with the terms and
-** conditions contained in a signed written agreement between you and Nokia.
-**
-** If you have questions regarding the use of this file, please contact
-** Nokia at info@qt.nokia.com.
-**
-**************************************************************************/
-
-#ifndef ADDMANUALTESTDLG_H
-#define ADDMANUALTESTDLG_H
-
-#include <QDialog>
-
-QT_BEGIN_NAMESPACE
-namespace Ui {
-    class AddManualTestDlg;
-}
-QT_END_NAMESPACE
-
-class AddManualTestDlg : public QDialog
-{
-    Q_OBJECT
-
-public:
-    explicit AddManualTestDlg(QWidget *parent = 0);
-    ~AddManualTestDlg();
-
-private:
-    Ui::AddManualTestDlg *ui;
-};
-
-#endif // ADDMANUALTESTDLG_H
diff --git a/src/plugins/qttest/addmanualtestdlg.ui b/src/plugins/qttest/addmanualtestdlg.ui
deleted file mode 100644
index 04a3f9c379cf7075df45c90844b755b887ec9e4d..0000000000000000000000000000000000000000
--- a/src/plugins/qttest/addmanualtestdlg.ui
+++ /dev/null
@@ -1,148 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<ui version="4.0">
- <class>AddManualTestDlg</class>
- <widget class="QDialog" name="AddManualTestDlg">
-  <property name="geometry">
-   <rect>
-    <x>0</x>
-    <y>0</y>
-    <width>625</width>
-    <height>605</height>
-   </rect>
-  </property>
-  <property name="windowTitle">
-   <string>Add Manual Test</string>
-  </property>
-  <layout class="QVBoxLayout" name="verticalLayout">
-   <item>
-    <layout class="QHBoxLayout" name="horizontalLayout">
-     <item>
-      <widget class="QLabel" name="label">
-       <property name="text">
-        <string>Test function name:</string>
-       </property>
-      </widget>
-     </item>
-     <item>
-      <widget class="QLineEdit" name="lineEdit"/>
-     </item>
-    </layout>
-   </item>
-   <item>
-    <widget class="QLabel" name="label_2">
-     <property name="text">
-      <string>Test goal:</string>
-     </property>
-    </widget>
-   </item>
-   <item>
-    <widget class="QPlainTextEdit" name="plainTextEdit">
-     <property name="sizePolicy">
-      <sizepolicy hsizetype="Expanding" vsizetype="Preferred">
-       <horstretch>0</horstretch>
-       <verstretch>0</verstretch>
-      </sizepolicy>
-     </property>
-     <property name="maximumSize">
-      <size>
-       <width>16777215</width>
-       <height>75</height>
-      </size>
-     </property>
-    </widget>
-   </item>
-   <item>
-    <widget class="QLabel" name="label_3">
-     <property name="text">
-      <string>Prerequisites:</string>
-     </property>
-    </widget>
-   </item>
-   <item>
-    <widget class="QPlainTextEdit" name="plainTextEdit_2">
-     <property name="sizePolicy">
-      <sizepolicy hsizetype="Expanding" vsizetype="Preferred">
-       <horstretch>0</horstretch>
-       <verstretch>0</verstretch>
-      </sizepolicy>
-     </property>
-     <property name="maximumSize">
-      <size>
-       <width>16777215</width>
-       <height>75</height>
-      </size>
-     </property>
-    </widget>
-   </item>
-   <item>
-    <widget class="QLabel" name="label_4">
-     <property name="text">
-      <string>Test steps:</string>
-     </property>
-    </widget>
-   </item>
-   <item>
-    <widget class="QTableWidget" name="tableWidget">
-     <property name="sizePolicy">
-      <sizepolicy hsizetype="Expanding" vsizetype="MinimumExpanding">
-       <horstretch>0</horstretch>
-       <verstretch>0</verstretch>
-      </sizepolicy>
-     </property>
-    </widget>
-   </item>
-   <item>
-    <widget class="QDialogButtonBox" name="buttonBox">
-     <property name="orientation">
-      <enum>Qt::Horizontal</enum>
-     </property>
-     <property name="standardButtons">
-      <set>QDialogButtonBox::Cancel|QDialogButtonBox::Ok</set>
-     </property>
-    </widget>
-   </item>
-  </layout>
- </widget>
- <tabstops>
-  <tabstop>lineEdit</tabstop>
-  <tabstop>plainTextEdit</tabstop>
-  <tabstop>plainTextEdit_2</tabstop>
-  <tabstop>tableWidget</tabstop>
-  <tabstop>buttonBox</tabstop>
- </tabstops>
- <resources/>
- <connections>
-  <connection>
-   <sender>buttonBox</sender>
-   <signal>accepted()</signal>
-   <receiver>AddManualTestDlg</receiver>
-   <slot>accept()</slot>
-   <hints>
-    <hint type="sourcelabel">
-     <x>248</x>
-     <y>254</y>
-    </hint>
-    <hint type="destinationlabel">
-     <x>157</x>
-     <y>274</y>
-    </hint>
-   </hints>
-  </connection>
-  <connection>
-   <sender>buttonBox</sender>
-   <signal>rejected()</signal>
-   <receiver>AddManualTestDlg</receiver>
-   <slot>reject()</slot>
-   <hints>
-    <hint type="sourcelabel">
-     <x>316</x>
-     <y>260</y>
-    </hint>
-    <hint type="destinationlabel">
-     <x>286</x>
-     <y>274</y>
-    </hint>
-   </hints>
-  </connection>
- </connections>
-</ui>
diff --git a/src/plugins/qttest/dialogs.cpp b/src/plugins/qttest/dialogs.cpp
deleted file mode 100644
index 8cda83ded58bc3a0f463ce0c01b389c63d782f4b..0000000000000000000000000000000000000000
--- a/src/plugins/qttest/dialogs.cpp
+++ /dev/null
@@ -1,214 +0,0 @@
-/**************************************************************************
-**
-** This file is part of Qt Creator
-**
-** Copyright (c) 2011 Nokia Corporation and/or its subsidiary(-ies).
-**
-** Contact: Nokia Corporation (info@qt.nokia.com)
-**
-**
-** GNU Lesser General Public License Usage
-**
-** This file may be used under the terms of the GNU Lesser General Public
-** License version 2.1 as published by the Free Software Foundation and
-** appearing in the file LICENSE.LGPL included in the packaging of this file.
-** Please review the following information to ensure the GNU Lesser General
-** Public License version 2.1 requirements will be met:
-** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Nokia gives you certain additional
-** rights. These rights are described in the Nokia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** Other Usage
-**
-** Alternatively, this file may be used in accordance with the terms and
-** conditions contained in a signed written agreement between you and Nokia.
-**
-** If you have questions regarding the use of this file, please contact
-** Nokia at info@qt.nokia.com.
-**
-**************************************************************************/
-
-#include "dialogs.h"
-#include "qsystem.h"
-
-#include <QTimer>
-#include <QAbstractItemView>
-#include <QTableWidgetItem>
-#include <QResizeEvent>
-#include <QScrollBar>
-#include <QPushButton>
-
-SelectDlg::SelectDlg(const QString &title, const QString &helpText,
-    QAbstractItemView::SelectionMode mode, int width, int height,
-    const QStringList &columns, const QByteArray &colWidths, QWidget *parent) : QDialog(parent)
-{
-    m_colWidths = colWidths;
-
-    setupUi(this);
-    setModal(true);
-    setWindowTitle(title);
-    instructLabel->setText(helpText);
-    groupsList->setSelectionMode(mode);
-    resize(width, height);
-
-    groupsList->setEditTriggers(QAbstractItemView::NoEditTriggers);
-    groupsList->setColumnCount(columns.count());
-    groupsList->setHorizontalHeaderLabels(columns);
-    groupsList->setSelectionBehavior(QAbstractItemView::SelectRows);
-    groupsList->setSortingEnabled(true);
-    groupsList->sortByColumn(0, Qt::AscendingOrder);
-    groupsList->setAlternatingRowColors(true);
-    groupsList->verticalHeader()->hide();
-    groupsList->horizontalHeader()->show();
-
-    buttonBox->button(QDialogButtonBox::Ok)->setEnabled(false);
-    groupsList->setWordWrap(true);
-    connect(groupsList, SIGNAL(itemSelectionChanged()),
-        this, SLOT(onItemSelectionChanged()), Qt::DirectConnection);
-    QTimer::singleShot(0, this, SLOT(resizeEvent()));
-}
-
-void SelectDlg::resizeEvent()
-{
-    resizeEvent(0);
-}
-
-void SelectDlg::addSelectableItems(const QStringList &items)
-{
-    foreach (const QString &item, items)
-        addSelectableItem(item);
-}
-
-void SelectDlg::addSelectableItem(const QString &item)
-{
-    groupsList->setSortingEnabled(false);
-    if (groupsList->columnCount() > 1) {
-        int row = groupsList->rowCount();
-        groupsList->insertRow(row);
-        QStringList tmp = item.split(QLatin1Char('|'));
-        if (tmp.count() > groupsList->columnCount()) {
-            for (int i = 0; i < (groupsList->columnCount() - 1); ++i)
-                groupsList->setItem(row, i, new QTableWidgetItem(tmp[i]));
-
-            QString s;
-            for (int i = groupsList->columnCount(); i < tmp.count(); ++i) {
-                if (!s.isEmpty()) s+= QLatin1Char('|');
-                s += tmp[i];
-            }
-            groupsList->setItem(row, (groupsList->columnCount() - 1), new QTableWidgetItem(s));
-        } else if (tmp.count() < groupsList->columnCount()) {
-            for (int i = 0; i < tmp.count(); ++i)
-                groupsList->setItem(row, i, new QTableWidgetItem(tmp[i]));
-            for (int i = tmp.count(); i < groupsList->columnCount(); ++i)
-                groupsList->setItem(row, i, new QTableWidgetItem(QString()));
-        } else {
-            for (int i = 0; i < tmp.count(); ++i)
-                groupsList->setItem(row, i, new QTableWidgetItem(tmp[i]));
-        }
-    } else {
-        // In single column mode we accept no duplicates
-        if (groupsList->findItems(item, Qt::MatchCaseSensitive).count() <= 0) {
-            int row = groupsList->rowCount();
-            groupsList->insertRow(row);
-            groupsList->setItem(row, 0, new QTableWidgetItem(item));
-        }
-    }
-    groupsList->setSortingEnabled(true);
-}
-
-QStringList SelectDlg::selectedItems()
-{
-    QStringList ret;
-    QTableWidgetItem *item;
-    for (int row = 0; row < groupsList->rowCount(); ++row) {
-        item = groupsList->item(row, 0);
-        if (item && item->isSelected()) {
-            QString S = item->text();
-            for (int col = 1; col < groupsList->columnCount(); ++col) {
-                S+= QLatin1Char('|');
-                item = groupsList->item(row, col);
-                if (item)
-                    S += item->text();
-            }
-            ret.append(S);
-        }
-    }
-    return ret;
-}
-
-void SelectDlg::setColumnWidth(int col, int width)
-{
-    groupsList->setColumnWidth(col, width);
-}
-
-void SelectDlg::resizeEvent(QResizeEvent *event)
-{
-    Q_UNUSED(event);
-
-    int fixedSize = 4;
-    const int extraSize = 80;
-    int total = 0;
-
-    if (groupsList->verticalScrollBar()->isVisible())
-        fixedSize += groupsList->verticalScrollBar()->width();
-
-    for (int i = 0; i < groupsList->columnCount(); ++i) {
-        if (i < m_colWidths.count()) {
-            if (static_cast<int>(m_colWidths[i]) > 0) {
-                setColumnWidth(i, m_colWidths[i]);
-                total += m_colWidths[i];
-            }
-        } else if (i == 0) {
-            int extra = groupsList->columnCount() - 1;
-            int colWidth = (groupsList->width() - fixedSize) - (extraSize * extra);
-            setColumnWidth(0, colWidth);
-        } else {
-            setColumnWidth(i, extraSize);
-        }
-    }
-
-    if (m_colWidths.count() > 0) {
-        for (int i = 0; i < groupsList->columnCount(); ++i) {
-            if ((i < m_colWidths.count()) && (static_cast<int>(m_colWidths[i]) == 0)) {
-                int colWidth = (groupsList->width() - fixedSize) - total;
-                setColumnWidth(i, colWidth);
-            }
-        }
-    }
-
-    groupsList->resizeRowsToContents();
-}
-
-void SelectDlg::resizeContents()
-{
-    groupsList->resizeRowsToContents();
-}
-
-void SelectDlg::onItemSelectionChanged()
-{
-    QList<QTableWidgetItem *> items = groupsList->selectedItems();
-    buttonBox->button(QDialogButtonBox::Ok)->setEnabled(items.count() > 0);
-}
-
-//***********************************
-
-NewTestFunctionDlg::NewTestFunctionDlg(const QString &testCase, QWidget *parent) :
-    QDialog(parent)
-{
-    setupUi(this);
-    setModal(true);
-    testcaseLabel->setText(testCase);
-
-    buttonBox->button(QDialogButtonBox::Ok)->setEnabled(false);
-    connect(testFunctionName,SIGNAL(textChanged(QString)),
-        this, SLOT(onChanged()), Qt::DirectConnection);
-
-    resizeEvent(0);
-}
-
-void NewTestFunctionDlg::onChanged()
-{
-    buttonBox->button(QDialogButtonBox::Ok)->setEnabled(!testFunctionName->text().isEmpty());
-}
diff --git a/src/plugins/qttest/dialogs.h b/src/plugins/qttest/dialogs.h
deleted file mode 100644
index 82bb078442a0108bc3d2b5cc08a5513141130bde..0000000000000000000000000000000000000000
--- a/src/plugins/qttest/dialogs.h
+++ /dev/null
@@ -1,74 +0,0 @@
-/**************************************************************************
-**
-** This file is part of Qt Creator
-**
-** Copyright (c) 2011 Nokia Corporation and/or its subsidiary(-ies).
-**
-** Contact: Nokia Corporation (info@qt.nokia.com)
-**
-**
-** GNU Lesser General Public License Usage
-**
-** This file may be used under the terms of the GNU Lesser General Public
-** License version 2.1 as published by the Free Software Foundation and
-** appearing in the file LICENSE.LGPL included in the packaging of this file.
-** Please review the following information to ensure the GNU Lesser General
-** Public License version 2.1 requirements will be met:
-** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Nokia gives you certain additional
-** rights. These rights are described in the Nokia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** Other Usage
-**
-** Alternatively, this file may be used in accordance with the terms and
-** conditions contained in a signed written agreement between you and Nokia.
-**
-** If you have questions regarding the use of this file, please contact
-** Nokia at info@qt.nokia.com.
-**
-**************************************************************************/
-
-#ifndef DIALOGS_H
-#define DIALOGS_H
-
-#include "ui_selectdlg.h"
-#include "ui_newtestfunctiondlg.h"
-
-class SelectDlg : public QDialog, public Ui::SelectDlg
-{
-    Q_OBJECT
-
-public:
-    SelectDlg(const QString &title, const QString &helpText,
-        QAbstractItemView::SelectionMode mode, int width, int height,
-        const QStringList &columns, const QByteArray &colWidths, QWidget *parent = 0);
-    void addSelectableItem(const QString &item);
-    void addSelectableItems(const QStringList &items);
-    QStringList selectedItems();
-    void resizeContents();
-
-private slots:
-    void onItemSelectionChanged();
-    void resizeEvent();
-
-private:
-    void setColumnWidth(int col, int width);
-    void resizeEvent(QResizeEvent *event);
-
-    QByteArray m_colWidths;
-};
-
-class NewTestFunctionDlg : public QDialog, public Ui::NewTestFunctionDlg
-{
-    Q_OBJECT
-
-public:
-    explicit NewTestFunctionDlg(const QString &testCase, QWidget *parent = 0);
-
-private slots:
-    void onChanged();
-};
-
-#endif  // DIALOGS_H
diff --git a/src/plugins/qttest/images/breakcontinue.png b/src/plugins/qttest/images/breakcontinue.png
deleted file mode 100644
index 654f4372b8eace7c572f3829060286d3c6928f1b..0000000000000000000000000000000000000000
Binary files a/src/plugins/qttest/images/breakcontinue.png and /dev/null differ
diff --git a/src/plugins/qttest/images/breakpoint.png b/src/plugins/qttest/images/breakpoint.png
deleted file mode 100644
index d7738088c18314deb9fdf14c5fcec2e040147d24..0000000000000000000000000000000000000000
Binary files a/src/plugins/qttest/images/breakpoint.png and /dev/null differ
diff --git a/src/plugins/qttest/images/breakstep.png b/src/plugins/qttest/images/breakstep.png
deleted file mode 100644
index 4d467f2b2a87d191663acd8d15ba5a91de6a7081..0000000000000000000000000000000000000000
Binary files a/src/plugins/qttest/images/breakstep.png and /dev/null differ
diff --git a/src/plugins/qttest/images/error.png b/src/plugins/qttest/images/error.png
deleted file mode 100644
index 71496e0437829514362dd80ffd12f59308a3b956..0000000000000000000000000000000000000000
Binary files a/src/plugins/qttest/images/error.png and /dev/null differ
diff --git a/src/plugins/qttest/images/next_fail.png b/src/plugins/qttest/images/next_fail.png
deleted file mode 100644
index d3e6d1e5961be5a90a3df33935cc0d6a8ba44cb6..0000000000000000000000000000000000000000
Binary files a/src/plugins/qttest/images/next_fail.png and /dev/null differ
diff --git a/src/plugins/qttest/images/reload.png b/src/plugins/qttest/images/reload.png
deleted file mode 100644
index b5afefb32bc95115c47e8a31b96b96e10c1f6eea..0000000000000000000000000000000000000000
Binary files a/src/plugins/qttest/images/reload.png and /dev/null differ
diff --git a/src/plugins/qttest/images/testlearn.png b/src/plugins/qttest/images/testlearn.png
deleted file mode 100644
index e2027b89f60cb6c0feda0cfdd73ec13deeafbd07..0000000000000000000000000000000000000000
Binary files a/src/plugins/qttest/images/testlearn.png and /dev/null differ
diff --git a/src/plugins/qttest/images/testpause.png b/src/plugins/qttest/images/testpause.png
deleted file mode 100644
index c30cfc1a45cc2258a1badf6744e98f233a8cdfa7..0000000000000000000000000000000000000000
Binary files a/src/plugins/qttest/images/testpause.png and /dev/null differ
diff --git a/src/plugins/qttest/images/testrecord.png b/src/plugins/qttest/images/testrecord.png
deleted file mode 100644
index 060553185b4147da64e00bb2a531696369ec94c0..0000000000000000000000000000000000000000
Binary files a/src/plugins/qttest/images/testrecord.png and /dev/null differ
diff --git a/src/plugins/qttest/images/testrun.png b/src/plugins/qttest/images/testrun.png
deleted file mode 100644
index 2fe3df459ebbaf3514792b8f060576f8f7773b3c..0000000000000000000000000000000000000000
Binary files a/src/plugins/qttest/images/testrun.png and /dev/null differ
diff --git a/src/plugins/qttest/images/teststop.png b/src/plugins/qttest/images/teststop.png
deleted file mode 100644
index 24e01f2efd6ea3c902864fe3af015345961914c4..0000000000000000000000000000000000000000
Binary files a/src/plugins/qttest/images/teststop.png and /dev/null differ
diff --git a/src/plugins/qttest/newtestcasedlg.cpp b/src/plugins/qttest/newtestcasedlg.cpp
deleted file mode 100644
index 96b33de86a6ad0e9dd8927f00ef31a168a24acff..0000000000000000000000000000000000000000
--- a/src/plugins/qttest/newtestcasedlg.cpp
+++ /dev/null
@@ -1,200 +0,0 @@
-/**************************************************************************
-**
-** This file is part of Qt Creator
-**
-** Copyright (c) 2011 Nokia Corporation and/or its subsidiary(-ies).
-**
-** Contact: Nokia Corporation (info@qt.nokia.com)
-**
-**
-** GNU Lesser General Public License Usage
-**
-** This file may be used under the terms of the GNU Lesser General Public
-** License version 2.1 as published by the Free Software Foundation and
-** appearing in the file LICENSE.LGPL included in the packaging of this file.
-** Please review the following information to ensure the GNU Lesser General
-** Public License version 2.1 requirements will be met:
-** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Nokia gives you certain additional
-** rights. These rights are described in the Nokia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** Other Usage
-**
-** Alternatively, this file may be used in accordance with the terms and
-** conditions contained in a signed written agreement between you and Nokia.
-**
-** If you have questions regarding the use of this file, please contact
-** Nokia at info@qt.nokia.com.
-**
-**************************************************************************/
-
-#include "newtestcasedlg.h"
-#include "ui_newtestcasedlg.h"
-#include "testgenerator.h"
-
-#include <QFileDialog>
-#include <QRegExpValidator>
-#include <QRegExp>
-#include <QDebug>
-
-NewTestCaseDlg::NewTestCaseDlg(const QString &path, QWidget *parent) :
-    QDialog(parent),
-    ui(new Ui::NewTestCaseDlg)
-{
-    ui->setupUi(this);
-    m_pathIsEdited = false;
-    ui->location->setText(path + "/tests");
-
-    connect(ui->rbUnit, SIGNAL(clicked(bool)), this, SLOT(onChanged()));
-    connect(ui->rbIntegration, SIGNAL(clicked(bool)), this, SLOT(onChanged()));
-    connect(ui->rbPerformance, SIGNAL(clicked(bool)), this, SLOT(onChanged()));
-    connect(ui->rbSystem, SIGNAL(clicked(bool)), this, SLOT(onChanged()));
-    connect(ui->testName, SIGNAL(textChanged(QString)), this, SLOT(onTextChanged(QString)));
-    connect(ui->componentName, SIGNAL(textChanged(QString)), this, SLOT(onTextChanged(QString)));
-    connect(ui->location, SIGNAL(textChanged(QString)), this, SLOT(onLocationChanged(QString)));
-    connect(ui->locationBtn, SIGNAL(clicked()), this, SLOT(onLocationBtnClicked()));
-    connect(ui->prependComponentName, SIGNAL(stateChanged(int)),
-        this, SLOT(onComponentChkBoxChanged(int)));
-
-    m_originalPalette = palette();
-    ui->rbUnit->setChecked(true);
-
-    // set a validator for test case name
-    QRegExp testCaseRegExp(QLatin1String("([a-z]{3,3})_([a-z]|[A-Z])([a-z]|[A-Z]|\\d|_|-)+"),
-        Qt::CaseSensitive);
-    QRegExpValidator *testCaseValidator = new QRegExpValidator(testCaseRegExp, this);
-    ui->testName->setValidator(testCaseValidator);
-
-    onTextChanged("");
-}
-
-NewTestCaseDlg::~NewTestCaseDlg()
-{
-    delete ui;
-}
-
-void NewTestCaseDlg::onTextChanged(const QString &txt)
-{
-    Q_UNUSED(txt);
-    onChanged();
-
-    ui->buttonBox->button(QDialogButtonBox::Ok)->setEnabled(ui->testName->text().length() > 4);
-}
-
-void NewTestCaseDlg::onLocationChanged(const QString &txt)
-{
-    Q_UNUSED(txt);
-    m_pathIsEdited = true;
-    onChanged();
-}
-
-void NewTestCaseDlg::onChanged()
-{
-    QString txt = ui->testName->text();
-    QString prefix;
-    QString subdir;
-
-    switch (mode()) {
-    case TestGenerator::UnitTest:
-        prefix = "tst_";
-        subdir = "auto";
-        break;
-    case TestGenerator::PerformanceTest:
-        prefix = "prf_";
-        subdir = "benchmarks";
-        break;
-    case TestGenerator::IntegrationTest:
-        prefix = "int_";
-        subdir = "auto";
-        break;
-    case TestGenerator::SystemTest:
-        prefix = "sys_";
-        subdir = "systemtests";
-        break;
-    }
-
-    if (!txt.startsWith(prefix)) {
-        QString rest = txt.mid(4);
-        ui->testName->setText(prefix + rest);
-    }
-
-    if (QFile::exists(ui->location->text())) {
-        ui->location->setPalette(m_originalPalette);
-    } else {
-        // use a highlighted text color if directory does not exist
-        QPalette pal = ui->location->palette();
-        pal.setColor(QPalette::Text, Qt::red); // TODO make use of a theme friendly color
-        ui->location->setPalette(pal);
-    }
-
-    // show the user the files that would be created
-    ui->filesList->clear();
-
-    m_testCaseGenerator.setTestCase(mode(), location(), "", testCaseName(),
-        testedComponent(), testedClassName(), "");
-
-    ui->filesList->addItem(m_testCaseGenerator.generatedProName());
-    ui->filesList->addItem(m_testCaseGenerator.generatedFileName());
-}
-
-QString NewTestCaseDlg::actualPath()
-{
-    return m_testCaseGenerator.testCaseDirectory();
-}
-
-TestGenerator::GenMode NewTestCaseDlg::mode()
-{
-    if (ui->rbUnit->isChecked())
-        return TestGenerator::UnitTest;
-    else if (ui->rbIntegration->isChecked())
-        return TestGenerator::IntegrationTest;
-    else if (ui->rbPerformance->isChecked())
-        return TestGenerator::PerformanceTest;
-    else
-        return TestGenerator::SystemTest;
-}
-
-QString NewTestCaseDlg::testCaseName()
-{
-    return ui->testName->text();
-}
-
-QString NewTestCaseDlg::location()
-{
-    return ui->location->text();
-}
-
-QString NewTestCaseDlg::testedClassName()
-{
-    return ui->testedClass->text();
-}
-
-QString NewTestCaseDlg::testedComponent()
-{
-    return ui->componentName->text();
-}
-
-void NewTestCaseDlg::onLocationBtnClicked()
-{
-    QString absoluteTestPath =
-        QFileDialog::getExistingDirectory(this, tr("Select Absolute Test Case Directory"),
-        ui->location->text());
-    if (!absoluteTestPath.isEmpty()) {
-        ui->location->setText(absoluteTestPath);
-        onChanged();
-    }
-}
-
-void NewTestCaseDlg::onComponentChkBoxChanged(int state)
-{
-   m_testCaseGenerator.enableComponentInTestName(state == Qt::Checked);
-   onChanged();
-}
-
-
-bool NewTestCaseDlg::componentInName()
-{
-    return (ui->prependComponentName->checkState() == Qt::Checked);
-}
diff --git a/src/plugins/qttest/newtestcasedlg.h b/src/plugins/qttest/newtestcasedlg.h
deleted file mode 100644
index 05d4110fe89bc29d2073b542a9e78d7df90b954f..0000000000000000000000000000000000000000
--- a/src/plugins/qttest/newtestcasedlg.h
+++ /dev/null
@@ -1,75 +0,0 @@
-/**************************************************************************
-**
-** This file is part of Qt Creator
-**
-** Copyright (c) 2011 Nokia Corporation and/or its subsidiary(-ies).
-**
-** Contact: Nokia Corporation (info@qt.nokia.com)
-**
-**
-** GNU Lesser General Public License Usage
-**
-** This file may be used under the terms of the GNU Lesser General Public
-** License version 2.1 as published by the Free Software Foundation and
-** appearing in the file LICENSE.LGPL included in the packaging of this file.
-** Please review the following information to ensure the GNU Lesser General
-** Public License version 2.1 requirements will be met:
-** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Nokia gives you certain additional
-** rights. These rights are described in the Nokia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** Other Usage
-**
-** Alternatively, this file may be used in accordance with the terms and
-** conditions contained in a signed written agreement between you and Nokia.
-**
-** If you have questions regarding the use of this file, please contact
-** Nokia at info@qt.nokia.com.
-**
-**************************************************************************/
-
-#ifndef NEWTESTCASEDLG_H
-#define NEWTESTCASEDLG_H
-
-#include "testgenerator.h"
-#include <QDialog>
-
-QT_BEGIN_NAMESPACE
-namespace Ui {
-class NewTestCaseDlg;
-}
-QT_END_NAMESPACE
-
-class NewTestCaseDlg : public QDialog
-{
-    Q_OBJECT
-
-public:
-    explicit NewTestCaseDlg(const QString &path, QWidget *parent = 0);
-    ~NewTestCaseDlg();
-
-    TestGenerator::GenMode mode();
-    QString testCaseName();
-    QString location();
-    QString testedClassName();
-    QString testedComponent();
-    QString actualPath();
-    bool componentInName();
-
-private slots:
-    void onTextChanged(const QString &txt);
-    void onLocationChanged(const QString &txt);
-    void onChanged();
-    void onLocationBtnClicked();
-    void onComponentChkBoxChanged(int state);
-
-private:
-    Ui::NewTestCaseDlg *ui;
-    bool m_pathIsEdited;
-    QPalette m_originalPalette;
-    TestGenerator m_testCaseGenerator;
-};
-
-#endif // NEWTESTCASEDLG_H
diff --git a/src/plugins/qttest/newtestcasedlg.ui b/src/plugins/qttest/newtestcasedlg.ui
deleted file mode 100644
index 11f616b842e758368e38a2a0806482dc8474b946..0000000000000000000000000000000000000000
--- a/src/plugins/qttest/newtestcasedlg.ui
+++ /dev/null
@@ -1,198 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<ui version="4.0">
- <class>NewTestCaseDlg</class>
- <widget class="QDialog" name="NewTestCaseDlg">
-  <property name="geometry">
-   <rect>
-    <x>0</x>
-    <y>0</y>
-    <width>548</width>
-    <height>461</height>
-   </rect>
-  </property>
-  <property name="windowTitle">
-   <string>New Test</string>
-  </property>
-  <layout class="QGridLayout" name="gridLayout">
-   <item row="0" column="0" colspan="3">
-    <widget class="QGroupBox" name="groupBox">
-     <property name="title">
-      <string>Test Type</string>
-     </property>
-     <layout class="QVBoxLayout" name="verticalLayout">
-      <item>
-       <widget class="QRadioButton" name="rbUnit">
-        <property name="text">
-         <string>Unit test</string>
-        </property>
-       </widget>
-      </item>
-      <item>
-       <widget class="QRadioButton" name="rbIntegration">
-        <property name="text">
-         <string>Integration test</string>
-        </property>
-       </widget>
-      </item>
-      <item>
-       <widget class="QRadioButton" name="rbPerformance">
-        <property name="text">
-         <string>Performance test</string>
-        </property>
-       </widget>
-      </item>
-      <item>
-       <widget class="QRadioButton" name="rbSystem">
-        <property name="text">
-         <string>System test</string>
-        </property>
-       </widget>
-      </item>
-     </layout>
-    </widget>
-   </item>
-   <item row="1" column="0">
-    <widget class="QLabel" name="label">
-     <property name="text">
-      <string>Base path:</string>
-     </property>
-    </widget>
-   </item>
-   <item row="1" column="1" colspan="2">
-    <layout class="QHBoxLayout" name="horizontalLayout">
-     <item>
-      <widget class="QLineEdit" name="location"/>
-     </item>
-     <item>
-      <widget class="QPushButton" name="locationBtn">
-       <property name="text">
-        <string>...</string>
-       </property>
-      </widget>
-     </item>
-    </layout>
-   </item>
-   <item row="2" column="0">
-    <widget class="QLabel" name="label_2">
-     <property name="text">
-      <string>Test name:</string>
-     </property>
-    </widget>
-   </item>
-   <item row="2" column="1" colspan="2">
-    <widget class="QLineEdit" name="testName">
-     <property name="toolTip">
-      <string>Example of test name: tst_MyAppTest1</string>
-     </property>
-    </widget>
-   </item>
-   <item row="3" column="0" colspan="3">
-    <widget class="QCheckBox" name="prependComponentName">
-     <property name="text">
-      <string>Use component name in test case path</string>
-     </property>
-     <property name="checked">
-      <bool>true</bool>
-     </property>
-    </widget>
-   </item>
-   <item row="4" column="0" colspan="2">
-    <widget class="QLabel" name="label_3">
-     <property name="text">
-      <string>Tested component:</string>
-     </property>
-    </widget>
-   </item>
-   <item row="4" column="2">
-    <widget class="QLineEdit" name="componentName"/>
-   </item>
-   <item row="5" column="0">
-    <widget class="QLabel" name="label_4">
-     <property name="text">
-      <string>Tested class:</string>
-     </property>
-    </widget>
-   </item>
-   <item row="5" column="2">
-    <widget class="QLineEdit" name="testedClass">
-     <property name="text">
-      <string/>
-     </property>
-    </widget>
-   </item>
-   <item row="6" column="0">
-    <widget class="QLabel" name="label_filename">
-     <property name="text">
-      <string>Test files:</string>
-     </property>
-    </widget>
-   </item>
-   <item row="6" column="1">
-    <widget class="QLabel" name="m_filename">
-     <property name="textInteractionFlags">
-      <set>Qt::TextSelectableByKeyboard|Qt::TextSelectableByMouse</set>
-     </property>
-    </widget>
-   </item>
-   <item row="7" column="0" colspan="3">
-    <widget class="QListWidget" name="filesList"/>
-   </item>
-   <item row="8" column="0" colspan="3">
-    <widget class="QDialogButtonBox" name="buttonBox">
-     <property name="orientation">
-      <enum>Qt::Horizontal</enum>
-     </property>
-     <property name="standardButtons">
-      <set>QDialogButtonBox::Cancel|QDialogButtonBox::Ok</set>
-     </property>
-    </widget>
-   </item>
-  </layout>
- </widget>
- <tabstops>
-  <tabstop>rbUnit</tabstop>
-  <tabstop>rbIntegration</tabstop>
-  <tabstop>rbPerformance</tabstop>
-  <tabstop>rbSystem</tabstop>
-  <tabstop>location</tabstop>
-  <tabstop>testName</tabstop>
-  <tabstop>componentName</tabstop>
-  <tabstop>testedClass</tabstop>
-  <tabstop>buttonBox</tabstop>
- </tabstops>
- <resources/>
- <connections>
-  <connection>
-   <sender>buttonBox</sender>
-   <signal>accepted()</signal>
-   <receiver>NewTestCaseDlg</receiver>
-   <slot>accept()</slot>
-   <hints>
-    <hint type="sourcelabel">
-     <x>248</x>
-     <y>254</y>
-    </hint>
-    <hint type="destinationlabel">
-     <x>157</x>
-     <y>274</y>
-    </hint>
-   </hints>
-  </connection>
-  <connection>
-   <sender>buttonBox</sender>
-   <signal>rejected()</signal>
-   <receiver>NewTestCaseDlg</receiver>
-   <slot>reject()</slot>
-   <hints>
-    <hint type="sourcelabel">
-     <x>316</x>
-     <y>260</y>
-    </hint>
-    <hint type="destinationlabel">
-     <x>286</x>
-     <y>274</y>
-    </hint>
-   </hints>
-  </connection>
- </connections>
-</ui>
diff --git a/src/plugins/qttest/newtestfunctiondlg.ui b/src/plugins/qttest/newtestfunctiondlg.ui
deleted file mode 100644
index 15d8aa7cd698543f200b1efba7991db0e13ece8e..0000000000000000000000000000000000000000
--- a/src/plugins/qttest/newtestfunctiondlg.ui
+++ /dev/null
@@ -1,114 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<ui version="4.0">
- <class>NewTestFunctionDlg</class>
- <widget class="QDialog" name="NewTestFunctionDlg">
-  <property name="geometry">
-   <rect>
-    <x>0</x>
-    <y>0</y>
-    <width>540</width>
-    <height>140</height>
-   </rect>
-  </property>
-  <property name="windowTitle">
-   <string>New Test Function</string>
-  </property>
-  <property name="sizeGripEnabled">
-   <bool>true</bool>
-  </property>
-  <layout class="QVBoxLayout">
-   <item>
-    <widget class="QLabel" name="testcaseLabel">
-     <property name="text">
-      <string>Text case</string>
-     </property>
-    </widget>
-   </item>
-   <item>
-    <spacer>
-     <property name="orientation">
-      <enum>Qt::Vertical</enum>
-     </property>
-     <property name="sizeType">
-      <enum>QSizePolicy::Fixed</enum>
-     </property>
-     <property name="sizeHint" stdset="0">
-      <size>
-       <width>20</width>
-       <height>16</height>
-      </size>
-     </property>
-    </spacer>
-   </item>
-   <item>
-    <layout class="QHBoxLayout">
-     <item>
-      <widget class="QLabel" name="label">
-       <property name="text">
-        <string>Test function name:</string>
-       </property>
-      </widget>
-     </item>
-     <item>
-      <widget class="QLineEdit" name="testFunctionName"/>
-     </item>
-    </layout>
-   </item>
-   <item>
-    <widget class="QCheckBox" name="insertAtCursor">
-     <property name="text">
-      <string>Insert at cursor</string>
-     </property>
-     <property name="checked">
-      <bool>true</bool>
-     </property>
-    </widget>
-   </item>
-   <item>
-    <widget class="QDialogButtonBox" name="buttonBox">
-     <property name="orientation">
-      <enum>Qt::Horizontal</enum>
-     </property>
-     <property name="standardButtons">
-      <set>QDialogButtonBox::Cancel|QDialogButtonBox::Ok</set>
-     </property>
-    </widget>
-   </item>
-  </layout>
- </widget>
- <resources/>
- <connections>
-  <connection>
-   <sender>buttonBox</sender>
-   <signal>accepted()</signal>
-   <receiver>NewTestFunctionDlg</receiver>
-   <slot>accept()</slot>
-   <hints>
-    <hint type="sourcelabel">
-     <x>248</x>
-     <y>254</y>
-    </hint>
-    <hint type="destinationlabel">
-     <x>157</x>
-     <y>274</y>
-    </hint>
-   </hints>
-  </connection>
-  <connection>
-   <sender>buttonBox</sender>
-   <signal>rejected()</signal>
-   <receiver>NewTestFunctionDlg</receiver>
-   <slot>reject()</slot>
-   <hints>
-    <hint type="sourcelabel">
-     <x>316</x>
-     <y>260</y>
-    </hint>
-    <hint type="destinationlabel">
-     <x>286</x>
-     <y>274</y>
-    </hint>
-   </hints>
-  </connection>
- </connections>
-</ui>
diff --git a/src/plugins/qttest/qsystem.cpp b/src/plugins/qttest/qsystem.cpp
deleted file mode 100644
index 266a4e0971fa43e2231b1f9b14f25173c94e6633..0000000000000000000000000000000000000000
--- a/src/plugins/qttest/qsystem.cpp
+++ /dev/null
@@ -1,539 +0,0 @@
-/**************************************************************************
-**
-** This file is part of Qt Creator
-**
-** Copyright (c) 2011 Nokia Corporation and/or its subsidiary(-ies).
-**
-** Contact: Nokia Corporation (info@qt.nokia.com)
-**
-**
-** GNU Lesser General Public License Usage
-**
-** This file may be used under the terms of the GNU Lesser General Public
-** License version 2.1 as published by the Free Software Foundation and
-** appearing in the file LICENSE.LGPL included in the packaging of this file.
-** Please review the following information to ensure the GNU Lesser General
-** Public License version 2.1 requirements will be met:
-** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Nokia gives you certain additional
-** rights. These rights are described in the Nokia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** Other Usage
-**
-** Alternatively, this file may be used in accordance with the terms and
-** conditions contained in a signed written agreement between you and Nokia.
-**
-** If you have questions regarding the use of this file, please contact
-** Nokia at info@qt.nokia.com.
-**
-**************************************************************************/
-
-#include "qsystem.h"
-
-#include <QFile>
-#include <QDir>
-#include <QHostInfo>
-
-#include <stdlib.h>
-
-#if defined Q_OS_UNIX
-# include <sys/utsname.h>
-# include <sys/stat.h>
-# include <utime.h>
-#endif
-// WinCE doesn't have time.h
-#ifndef Q_OS_TEMP
-# include <time.h>
-#endif
-
-#ifdef Q_OS_WIN
-# include <windows.h>
-# include <stdlib.h>
-#endif
-
-#ifdef Q_OS_UNIX
-# if defined(Q_OS_MAC)
-#  include <crt_externs.h>
-#  define environ (*_NSGetEnviron())
-# else
-#  include <unistd.h>
-   extern char **environ;
-# endif
-#endif
-
-//workaround for Qt 4
-#if !defined(QT_THREAD_SUPPORT) && !defined(QT_NO_THREAD)
-#  define QT_THREAD_SUPPORT
-#endif
-
-/*!
-    \class QSystem qsystem.h
-    \mainclass
-    \brief The QSystem class is a wrapper class that provides a platform independent
-    API for some frequently used platform dependent functions.
-*/
-
-/*!
-    Returns the lowercase username as known to the system.
-*/
-QString QSystem::userName()
-{
-    QString userName;
-
-#if defined Q_OS_TEMP
-    userName = QLatin1String("WinCE");
-#elif defined Q_OS_WIN
-    userName = QString::fromLocal8Bit(qgetenv("USERNAME"));
-#elif defined Q_OS_UNIX
-    userName = QString::fromLocal8Bit(qgetenv("USER"));
-    if (userName.isEmpty())
-        userName = QString::fromLocal8Bit(qgetenv("LOGNAME"));
-#elif defined Q_OS_MAC
-    userName = QString::fromLocal8Bit(qgetenv("USER"));
-    if (userName.isEmpty())
-        userName = QString::fromLocal8Bit(qgetenv("LOGNAME"));
-#endif
-
-    return userName.toLower();
-}
-
-/*!
-    Returns the lowercase hostname (computername) as known to the system.
-    Only the first part of a hostname is returned, e.g. foo.troll.no will return foo
-    as the hostname.
-*/
-QString QSystem::hostName()
-{
-    static QString hostName;
-    if (!hostName.isEmpty())
-        return hostName;
-
-    hostName = QHostInfo::localHostName();
-
-    // convert anarki.troll.no to anarki
-    const int pos = hostName.indexOf(QLatin1Char('.'));
-    if (pos > 0)
-        hostName.truncate(pos);
-    return hostName;
-}
-
-/*!
-    Returns the operating system on which the app is running.
-*/
-QString QSystem::OSName()
-{
-#if defined(Q_OS_MAC)
-    return QLatin1String("Mac-OSX");
-#elif defined(Q_OS_MSDOS)
-    return  QLatin1String("MSDOS");
-#elif defined(Q_OS_OS2EMX)
-    return  QLatin1String("OS2EMX");
-#elif defined(Q_OS_OS2)
-    return  QLatin1String("OS2");
-#elif defined(Q_OS_WIN)
-    return  QLatin1String("Windows");
-#elif defined(Q_OS_SOLARIS)
-    return QLatin1String("Solaris");
-#elif defined(Q_OS_SUN) && defined(Q_OS_BSD4)
-    return QLatin1String("Sun");
-#elif defined(Q_OS_HPUX)
-    return QLatin1String("HPUX");
-#elif defined(Q_OS_ULTRIX)
-    return QLatin1String("ULTRIX");
-#elif defined(Q_OS_RELIANT)
-    return QLatin1String("RELIANT");
-#elif defined(Q_OS_LINUX)
-    return QLatin1String("Linux");
-#elif defined(Q_OS_FREEBSD) && defined(Q_OS_BSD4)
-    return QLatin1String("FREEBSD");
-#elif defined(Q_OS_NETBSD) && defined(Q_OS_BSD4)
-    return QLatin1String("NETBSD");
-#elif defined(Q_OS_OPENBSD) && defined(Q_OS_BSD4)
-    return QLatin1String("OPENBSD");
-#elif defined(Q_OS_BSDI) && defined(Q_OS_BSD4)
-    return QLatin1String("BSDI");
-#elif defined(Q_OS_IRIX)
-    return QLatin1String("IRIX");
-#elif defined(Q_OS_OSF)
-    return QLatin1String("OSF");
-#elif defined(Q_OS_AIX)
-    return QLatin1String("AIX");
-#elif defined(Q_OS_LYNX)
-    return QLatin1String("LYNX");
-#elif defined(Q_OS_UNIXWARE)
-    return QLatin1String("UNIXWARE");
-#elif defined(Q_OS_HURD)
-    return QLatin1String("HURD");
-#elif defined(Q_OS_DGUX)
-    return QLatin1String("DGUX");
-#elif defined(Q_OS_QNX6)
-    return QLatin1String("QNX6");
-#elif defined(Q_OS_QNX)
-    return QLatin1String("QNX");
-#elif defined(Q_OS_SCO)
-    return QLatin1String("SCO");
-#elif defined(Q_OS_UNIXWARE7)
-    return QLatin1String("UNIXWARE7");
-#elif defined(Q_OS_DYNIX)
-    return QLatin1String("DYNIX");
-#elif defined(Q_OS_SVR4)
-    return QLatin1String("SVR4");
-#else
-    return QLatin1String("UNKNOWN");
-#endif
-}
-
-QString which_p(const QString &path, const QString &applicationName)
-{
-    QStringList paths;
-#if defined Q_OS_WIN
-    paths = path.split(QLatin1Char(';'));
-#else
-    paths = path.split(QLatin1Char(':'));
-#endif
-    foreach (const QString &p, paths) {
-        QString fname = p + QDir::separator() + applicationName;
-        if (QFile::exists(fname))
-            return fname;
-#if defined Q_OS_WIN
-        if (QFile::exists(fname + QLatin1String(".exe")))
-            return fname + QLatin1String(".exe");
-        if (QFile::exists(fname + QLatin1String(".bat")))
-            return fname + QLatin1String(".bat");
-#endif
-    }
-    return QString();
-}
-
-/*!
-    Traverses through the PATH setting as specified in \a path and returns the full
-    path + appname if found. On Windows the application name may be appended with .exe or .bat
-    (if either exists).
-*/
-QString QSystem::which(const QString &path, const QString &applicationName)
-{
-    QString ret = which_p(path, applicationName);
-    if (ret.contains(QLatin1Char(' ')))
-        return QLatin1Char('"') + ret + QLatin1Char('"');
-    return ret;
-}
-
-/*!
-    Processes a string \a envString. If the envString contains a set (export)
-    command then the information in the envString is used to update \a envList.
-    If the envString does not contain a set command then the string is processed
-    and all references to environment values are replaced with their actual values
-    from \a envList.
-    The function returns true if 'something' is converted.
-
-    Example1:
-    envString == "export PATH=/home/myname/bin:/home/bin"
-    envList == {
-    export PATH=foo
-    export QTDIR=/home/qt
-    export QTESTDIR=/home/qtest
-    }
-    QSystem::processEnvValue(envList, value);
-    envList == {
-    export PATH=/home/myname/bin:/home/bin
-    export QTDIR=/home/qt
-    export QTESTDIR=/home/qtest
-    }
-
-    Example2:
-    envString == "cd $(QTDIR)/bin"
-    envList == {
-    export PATH=foo
-    export QTDIR=/home/qt
-    export QTESTDIR=/home/qtest
-    }
-
-    QSystem::processEnvValue(envList, value);
-    envString == "cd /home/qt/bin"
-
-  \sa getEnvList()
-*/
-bool QSystem::processEnvValue(QStringList *envList, QString &envString)
-{
-    if (envList == 0)
-        return false;
-
-    QString _envString = envString;
-    QString prefix;
-    bool isSetCmd = false;
-
-    if (_envString.startsWith(QLatin1String("export "))) {
-        _envString = _envString.mid(7);
-        prefix = QLatin1String("export ");
-        isSetCmd = true;
-    }
-
-    if (_envString.startsWith(QLatin1String("set "))) {
-        _envString = _envString.mid(4);
-        prefix = QLatin1String("set ");
-        isSetCmd = true;
-    }
-
-    if (isSetCmd) {
-        int pos = _envString.indexOf(QLatin1Char('='));
-        if (pos < 0) {
-            // nothing to do
-            return false;
-        }
-        QString key = _envString.left(pos);
-        QString value = _envString.mid(pos + 1);
-
-        if (processEnvValue(envList, value)) {
-            setEnvKey(envList, key, value);
-
-            envString = /*prefix +*/ key + QLatin1Char('=') + value;
-            return true;
-        } else {
-            return false;
-        }
-
-    } else {
-        int pos = -1;
-        int start = -1;
-        QString key;
-        QString replacementValue;
-        while (hasEnvKey(_envString, key, pos, start)) {
-            // prevent infinite loops! If there is no value we replace the key with an empty string
-            replacementValue = envKey(envList, key);
-            int len = key.length()+1;
-            if (_envString.at(pos) == '%')
-                len++;
-            if (_envString.indexOf(QLatin1Char('(')+ key + QLatin1Char(')')) == (pos + 1))
-                    len += 2;
-            _envString.remove(pos, len);
-            _envString.insert(pos, replacementValue);
-            start = pos + 1;
-        }
-
-        // We really can't be sure we're dealing with a path...
-        envString = _envString;
-
-        return true;
-    }
-}
-
-/*!
-    Searches the given \a envString for the specified \a key after position
-    \a start.
-    If the \a key is found, \a pos returns the position of the key in the string and
-    the function returns true.
-*/
-bool QSystem::hasEnvKey(const QString &envString, QString &key, int &pos, int start)
-{
-    pos = -1;
-    key.clear();
-    int end = -1;
-    bool winKey = false;
-
-    // we actually want to start after the position we specify
-    ++start;
-
-    int pos1, pos2, pos3;
-    pos1 = envString.indexOf(QLatin1Char('$'), start);
-    pos2 = envString.indexOf(QLatin1Char('%'), start);
-    pos3 = envString.indexOf(QLatin1Char('%'), pos2 + 1);
-
-    if (pos1 < 0 && pos2 < 0)
-        return false;
-
-    if (pos1 < 0) {
-        if (pos3 < 0)
-            return false;
-        pos = pos2;
-        winKey = true; // must search for a terminating % char...
-    } else if (pos2 < 0) {
-        pos = pos1;
-    } else {
-        if (pos1 < pos2) {
-            pos = pos1;
-        } else {
-            if ((pos3 < 0) || (pos3 > pos1)) {
-                pos = pos1;
-            } else {
-                pos = pos2;
-                winKey = true; // must search for a terminating % char...
-            }
-        }
-    }
-
-    if (pos >= start) {
-        end = -1;
-        if (winKey) {
-            // if we found a % we only look for a closing one
-            end = envString.indexOf(QLatin1Char('%'), pos+1);
-
-        } else {
-
-            // else look for some other characters that close a KEY
-            const uint maxSrch = 8;
-            int term[maxSrch];
-            term[0] = envString.indexOf(QLatin1Char('/'), pos+1);
-            term[1] = envString.indexOf(QLatin1Char(':'), pos+1);
-            term[2] = envString.indexOf(QLatin1Char('\\'), pos+1);
-            term[3] = envString.indexOf(QLatin1Char(';'), pos+1);
-            term[4] = envString.indexOf(QLatin1Char(' '), pos+1);
-            term[5] = envString.indexOf(QLatin1Char('-'), pos+1);
-            term[6] = envString.indexOf(QLatin1Char('.'), pos+1);
-            term[7] = envString.length();
-
-            // now lets see which char comes first after pos: Thats the one we are looking for.
-            for (uint i = 0; i < maxSrch; ++i) {
-                if (end < 0)
-                    end = term[i];
-                else if ((term[i] >= 0) && (term[i] < end))
-                    end = term[i];
-            }
-        }
-
-        if (end > pos) {
-            QString tmpKey = envString.mid(pos + 1, end - (pos+1));
-
-            // see if we have a string that looks like $(QTDIR) and convert it to QTDIR
-            if (tmpKey.startsWith(QLatin1Char('(')) && tmpKey.endsWith(QLatin1Char(')')))
-                tmpKey = tmpKey.mid(1, tmpKey.length()-2);
-
-            if (!tmpKey.isEmpty()) {
-                key = tmpKey;
-                return true;
-            }
-        }
-    }
-
-    return false;
-}
-
-/*!
-    Removes any occurrence of environment \a key from the environment \a list.
-    The function returns true if the list was valid and no more instances of \a key
-    exist in the list.
-*/
-bool QSystem::unsetEnvKey(QStringList *list, const QString &key)
-{
-    if (list == 0)
-        return false;
-
-    if (list->size() == 0)
-        return true;
-
-    QString envKey = key.toUpper();
-    QStringList::Iterator it;
-    for (int i = list->size() - 1; i > 0; --i) {
-        QString s = list->at(i);
-        int pos = s.indexOf(QLatin1Char('='));
-        if (pos > 0) {
-            QString keyName = (s.left(pos)).toUpper();
-            if (keyName == envKey) {
-                list->removeAt(i);
-            }
-        }
-    }
-    return true;
-}
-
-/*!
-    Replaces or appends an environment \a key with \a value in the environment \a list.
-    The key/value will be appended to the list if it is not found.
-*/
-bool QSystem::setEnvKey(QStringList *list, const QString &key, const QString &value)
-{
-    if (list == 0)
-        return false;
-
-    QString envKey = key.toUpper();
-    QString envValue = value;
-
-    QString replacementValue;
-    int pos;
-    int start = -1;
-    bool found;
-
-    do {
-        found = false;
-        QString tmpKey;
-        if (hasEnvKey(envValue, tmpKey, pos, start)) {
-            replacementValue = QSystem::envKey(list, tmpKey.toUpper());
-            if (!replacementValue.isEmpty()) {
-                int len = tmpKey.length() + 1;
-                if (envValue.at(pos) == QLatin1Char('%'))
-                    ++len;
-                envValue.remove(pos, len);
-                envValue.insert(pos, replacementValue);
-            }
-            found = true;
-            start = pos + 1;
-        }
-    } while ((pos >= 0) && found);
-
-    QStringList::Iterator end = list->end();
-    for (QStringList::Iterator it = list->begin(); it != end; ++it) {
-        QString s = *it;
-        pos = s.indexOf(QLatin1Char('='));
-        if (pos > 0) {
-            QString keyName = (s.left(pos)).toUpper();
-            if (keyName == envKey) {
-                *it = envKey + QLatin1Char('=') + envValue;
-                list->sort();
-                return true;
-            }
-        }
-    }
-
-    list->append(envKey + QLatin1Char('=') + envValue);
-    list->sort();
-    return true;
-}
-
-void QSystem::addEnvPath(QStringList *environment, const QString &key, const QString &addedPath)
-{
-    QString dyldPath = QSystem::envKey(environment, key);
-    if (!dyldPath.contains(addedPath)) {
-#ifdef Q_OS_WIN
-        dyldPath = addedPath + QLatin1Char(';') + dyldPath;
-#else
-        dyldPath = addedPath + QLatin1Char(':') + dyldPath;
-#endif
-        QSystem::setEnvKey(environment, key, dyldPath);
-    }
-}
-
-/*!
-    Searches the environment \a list for a \a key.
-    If the key is found the function retuns true and \a value returns the value found in the
-    list.
-*/
-QString QSystem::envKey(QStringList *list, const QString &key)
-{
-    QString value;
-    if (list == 0)
-       return QString();
-
-    QString srchKey = key.toUpper();
-
-    int pos;
-    QStringList::Iterator end = list->end();
-    for (QStringList::Iterator it = list->begin(); it != end; ++it) {
-        QString s = *it;
-        pos = s.indexOf(QLatin1Char('='));
-        if (pos > 0) {
-            QString keyName = (s.left(pos)).toUpper();
-            if (keyName == srchKey) {
-                value = s.mid(pos+1);
-                if (value.endsWith(QLatin1String(";%") + keyName + QLatin1Char('%'))) {
-                    value = value.left(value.length() - (3 + keyName.length()));
-                } else if (value.endsWith(QLatin1String(":$") + keyName)) {
-                    value = value.left(value.length() - (2 + keyName.length()));
-                }
-                return value;
-            }
-        }
-    }
-
-    return QString();
-}
diff --git a/src/plugins/qttest/qsystem.h b/src/plugins/qttest/qsystem.h
deleted file mode 100644
index ecd4889c81c6afd8c6b9cf48b17be9997e42b834..0000000000000000000000000000000000000000
--- a/src/plugins/qttest/qsystem.h
+++ /dev/null
@@ -1,54 +0,0 @@
-/**************************************************************************
-**
-** This file is part of Qt Creator
-**
-** Copyright (c) 2011 Nokia Corporation and/or its subsidiary(-ies).
-**
-** Contact: Nokia Corporation (info@qt.nokia.com)
-**
-**
-** GNU Lesser General Public License Usage
-**
-** This file may be used under the terms of the GNU Lesser General Public
-** License version 2.1 as published by the Free Software Foundation and
-** appearing in the file LICENSE.LGPL included in the packaging of this file.
-** Please review the following information to ensure the GNU Lesser General
-** Public License version 2.1 requirements will be met:
-** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Nokia gives you certain additional
-** rights. These rights are described in the Nokia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** Other Usage
-**
-** Alternatively, this file may be used in accordance with the terms and
-** conditions contained in a signed written agreement between you and Nokia.
-**
-** If you have questions regarding the use of this file, please contact
-** Nokia at info@qt.nokia.com.
-**
-**************************************************************************/
-
-#ifndef QSYSTEM_H
-#define QSYSTEM_H
-
-#include <QString>
-
-class QSystem
-{
-public:
-    static QString which(const QString &path, const QString &applicationName);
-    static bool hasEnvKey(const QString &envString, QString &key, int &pos, int start = 0);
-    static bool unsetEnvKey(QStringList *list, const QString &key);
-    static bool setEnvKey(QStringList *list, const QString &key, const QString &value);
-    static QString envKey(QStringList *list, const QString &key);
-    static bool processEnvValue(QStringList *list, QString &envString);
-    static void addEnvPath(QStringList *environment, const QString &key, const QString &addedPath);
-
-    static QString userName();
-    static QString hostName();
-    static QString OSName();
-};
-
-#endif
diff --git a/src/plugins/qttest/qttest.pro b/src/plugins/qttest/qttest.pro
deleted file mode 100644
index f89b25b15b18d1ec5cfef793471017f2b9734b4e..0000000000000000000000000000000000000000
--- a/src/plugins/qttest/qttest.pro
+++ /dev/null
@@ -1,62 +0,0 @@
-TARGET = QtTest
-TEMPLATE = lib
-DEFINES += QTCREATOR_QTEST
-DEFINES += QTTEST_PLUGIN_LEAN
-
-include(../../qtcreatorplugin.pri)
-include(../../plugins/projectexplorer/projectexplorer.pri)
-include(../../plugins/texteditor/texteditor.pri)
-include(../../plugins/coreplugin/coreplugin.pri)
-include(../../plugins/debugger/debugger.pri)
-include(../../plugins/qtsupport/qtsupport.pri)
-include(../../plugins/remotelinux/remotelinux.pri)
-include(../../plugins/qt4projectmanager/qt4projectmanager.pri)
-include(../../libs/utils/utils.pri)
-include(../../libs/qmljs/qmljs.pri)
-include(../../libs/cplusplus/cplusplus.pri)
-
-QT += network
-
-FORMS += newtestfunctiondlg.ui \
-    selectdlg.ui \
-    recorddlg.ui \
-    testsettingspropertiespage.ui \
-    newtestcasedlg.ui \
-    addmanualtestdlg.ui
-
-HEADERS += qttestplugin.h \
-    dialogs.h \
-    newtestcasedlg.h \
-    qsystem.h \
-    resultsview.h \
-    testselector.h \
-    testcode.h \
-    testconfigurations.h \
-    testexecuter.h \
-    testgenerator.h \
-    testsettings.h \
-    testsuite.h \
-    testoutputwindow.h \
-    testcontextmenu.h \
-    testsettingspropertiespage.h \
-    addmanualtestdlg.h \
-    testresultuploader.h
-
-SOURCES += qttestplugin.cpp \
-    dialogs.cpp \
-    newtestcasedlg.cpp \
-    qsystem.cpp \
-    resultsview.cpp \
-    testselector.cpp \
-    testcode.cpp \
-    testconfigurations.cpp \
-    testexecuter.cpp \
-    testgenerator.cpp \
-    testsettings.cpp \
-    testoutputwindow.cpp \
-    testcontextmenu.cpp \
-    testsettingspropertiespage.cpp \
-    addmanualtestdlg.cpp \
-    testresultuploader.cpp
-
-RESOURCES += qttest.qrc
diff --git a/src/plugins/qttest/qttest.qrc b/src/plugins/qttest/qttest.qrc
deleted file mode 100644
index 5a00f68b84f1015eac9d62d76a99839b8e5eb3f3..0000000000000000000000000000000000000000
--- a/src/plugins/qttest/qttest.qrc
+++ /dev/null
@@ -1,14 +0,0 @@
-<RCC>
-    <qresource prefix="/">
-        <file alias="testrecord.png">images/testrecord.png</file>
-        <file alias="testrun.png">images/testrun.png</file>
-        <file alias="testlearn.png">images/testlearn.png</file>
-        <file alias="teststop.png">images/teststop.png</file>
-        <file alias="breakpoint.png">images/breakpoint.png</file>
-        <file alias="breakstep.png">images/breakstep.png</file>
-        <file alias="breakcontinue.png">images/breakcontinue.png</file>
-        <file alias="nextfail.png">images/next_fail.png</file>
-        <file alias="reload.png">images/reload.png</file>
-        <file alias="error.png">images/error.png</file>
-    </qresource>
-</RCC>
diff --git a/src/plugins/qttest/qttestplugin.cpp b/src/plugins/qttest/qttestplugin.cpp
deleted file mode 100644
index b7518a7f34acf86318f2af075564376ed1e25d0f..0000000000000000000000000000000000000000
--- a/src/plugins/qttest/qttestplugin.cpp
+++ /dev/null
@@ -1,329 +0,0 @@
-/**************************************************************************
-**
-** This file is part of Qt Creator
-**
-** Copyright (c) 2011 Nokia Corporation and/or its subsidiary(-ies).
-**
-** Contact: Nokia Corporation (info@qt.nokia.com)
-**
-**
-** GNU Lesser General Public License Usage
-**
-** This file may be used under the terms of the GNU Lesser General Public
-** License version 2.1 as published by the Free Software Foundation and
-** appearing in the file LICENSE.LGPL included in the packaging of this file.
-** Please review the following information to ensure the GNU Lesser General
-** Public License version 2.1 requirements will be met:
-** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Nokia gives you certain additional
-** rights. These rights are described in the Nokia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** Other Usage
-**
-** Alternatively, this file may be used in accordance with the terms and
-** conditions contained in a signed written agreement between you and Nokia.
-**
-** If you have questions regarding the use of this file, please contact
-** Nokia at info@qt.nokia.com.
-**
-**************************************************************************/
-
-#include "qttestplugin.h"
-#include "testselector.h"
-#include "dialogs.h"
-#include "qsystem.h"
-#include "testsettingspropertiespage.h"
-#include "resultsview.h"
-#include "testexecuter.h"
-#include "testcontextmenu.h"
-#include "testsuite.h"
-#include "testoutputwindow.h"
-#include "testconfigurations.h"
-
-#include <coreplugin/actionmanager/actionmanager.h>
-#include <coreplugin/actionmanager/actioncontainer.h>
-#include <coreplugin/editormanager/editormanager.h>
-#include <coreplugin/coreconstants.h>
-#include <coreplugin/icore.h>
-#include <coreplugin/modemanager.h>
-#include <coreplugin/id.h>
-#include <coreplugin/mimedatabase.h>
-#include <coreplugin/progressmanager/progressmanager.h>
-
-#include <qmljseditor/qmljseditorconstants.h>
-#include <texteditor/basetexteditor.h>
-#include <cppeditor/cppeditorconstants.h>
-#include <cpptools/cpptoolsconstants.h>
-#include <extensionsystem/pluginmanager.h>
-#include <find/ifindsupport.h>
-#include <utils/linecolumnlabel.h>
-#include <projectexplorer/session.h>
-#include <projectexplorer/project.h>
-#include <projectexplorer/projectexplorer.h>
-#include <debugger/debuggerplugin.h>
-#include <debugger/debuggerrunner.h>
-#include <debugger/debuggerengine.h>
-#include <debugger/debuggerruncontrolfactory.h>
-#include <debugger/debuggerstartparameters.h>
-#ifdef QTTEST_DEBUGGER_SUPPORT
-# include <debugger/qtuitest/qtuitestengine.h>
-#endif
-
-#include <QtCore/QtPlugin>
-#include <QtGui/QMenu>
-#include <QtGui/QMessageBox>
-#include <QMenuBar>
-#include <QDebug>
-#include <QToolButton>
-
-using namespace QtTest::Internal;
-
-enum { debug = 0 };
-
-Core::NavigationView TestNavigationWidgetFactory::createWidget()
-{
-    Core::NavigationView view;
-    TestSelector *ptw = new TestSelector();
-    ptw->rescan();
-    view.widget = ptw;
-
-    QToolButton *filter = new QToolButton;
-    filter->setIcon(QIcon(Core::Constants::ICON_FILTER));
-    filter->setToolTip(tr("Filter tree"));
-    filter->setPopupMode(QToolButton::InstantPopup);
-
-    QMenu *filterMenu = new QMenu(filter);
-    filterMenu->addAction(ptw->m_componentViewMode);
-    filterMenu->addAction(ptw->m_showUnitTests);
-    filterMenu->addAction(ptw->m_showIntegrationTests);
-    filterMenu->addAction(ptw->m_showPerformanceTests);
-    filterMenu->addAction(ptw->m_showSystemTests);
-    filter->setMenu(filterMenu);
-
-    QToolButton *newTest = new QToolButton;
-    newTest->setIcon(QIcon(":/core/images/filenew.png"));
-    newTest->setToolTip(tr("New test"));
-    newTest->setPopupMode(QToolButton::InstantPopup);
-    QObject::connect(newTest, SIGNAL(clicked()), ptw,
-        SLOT(testInsertUnitOrSystemTest()), Qt::DirectConnection);
-
-    view.dockToolBarWidgets << filter << newTest;
-    return view;
-}
-
-QString TestNavigationWidgetFactory::displayName() const
-{
-    return QtTestPlugin::tr("Tests");
-}
-
-//******************************************
-
-QtTestPlugin::QtTestPlugin() :
-    m_messageOutputWindow(0), m_testResultsWindow(0),
-    m_contextMenu(new TestContextMenu(this))
-{
-}
-
-QtTestPlugin::~QtTestPlugin()
-{
-    ExtensionSystem::PluginManager *pm = ExtensionSystem::PluginManager::instance();
-
-    pm->removeObject(m_messageOutputWindow);
-    delete m_messageOutputWindow;
-
-    pm->removeObject(m_testResultsWindow);
-    delete m_testResultsWindow;
-
-    delete TestExecuter::instance();
-    delete m_contextMenu;
-}
-
-bool QtTestPlugin::initialize(const QStringList &arguments, QString *errorMessage)
-{
-    Q_UNUSED(arguments)
-    Q_UNUSED(errorMessage)
-
-    addAutoReleasedObject(new TestNavigationWidgetFactory);
-    addAutoReleasedObject(new TestSettingsPanelFactory);
-    addAutoReleasedObject(new TestConfigurations);
-
-    return true;
-}
-
-void QtTestPlugin::extensionsInitialized()
-{
-    ExtensionSystem::PluginManager *pm = ExtensionSystem::PluginManager::instance();
-    Core::ICore *core = Core::ICore::instance();
-    Core::ActionManager *am = core->actionManager();
-
-    m_messageOutputWindow = new TestOutputWindow();
-    pm->addObject(m_messageOutputWindow);
-
-    m_testResultsWindow = TestResultsWindow::instance();
-    connect(m_testResultsWindow, SIGNAL(stopTest()), this, SLOT(stopTesting()));
-    connect(m_testResultsWindow, SIGNAL(retryFailedTests(QStringList)),
-        this, SLOT(retryTests(QStringList)));
-    connect(TestExecuter::instance(), SIGNAL(testStarted()),
-        m_testResultsWindow, SLOT(onTestStarted()));
-    connect(TestExecuter::instance(), SIGNAL(testStop()),
-        m_testResultsWindow, SLOT(onTestStopped()));
-    connect(TestExecuter::instance(), SIGNAL(testFinished()),
-        m_testResultsWindow, SLOT(onTestFinished()));
-    pm->addObject(m_testResultsWindow);
-    connect(testResultsPane(), SIGNAL(defectSelected(TestCaseRec)),
-        this, SLOT(onDefectSelected(TestCaseRec)));
-
-    // Add context menu to CPP editor
-    Core::ActionContainer *mcontext = am->actionContainer(CppEditor::Constants::M_CONTEXT);
-    m_contextMenu->init(mcontext->menu(), 2, this);
-
-    // Add context menu to JS editor
-    mcontext = am->actionContainer(QmlJSEditor::Constants::M_CONTEXT);
-    m_contextMenu->init(mcontext->menu(), 2, this);
-
-    // Add a Test menu to the menu bar
-    Core::ActionContainer* ac = am->createMenu("QtTestPlugin.TestMenu");
-    ac->menu()->setTitle(tr("&Test"));
-    m_contextMenu->init(ac->menu(), 0, 0);
-
-    // Insert the "Test" menu between "Window" and "Help".
-    QMenu *windowMenu = am->actionContainer(Core::Constants::M_TOOLS)->menu();
-    QMenuBar *menuBar = am->actionContainer(Core::Constants::MENU_BAR)->menuBar();
-    menuBar->insertMenu(windowMenu->menuAction(), ac->menu());
-
-    ProjectExplorer::ProjectExplorerPlugin *explorer =
-        ProjectExplorer::ProjectExplorerPlugin::instance();
-
-    connect(explorer->session(), SIGNAL(startupProjectChanged(ProjectExplorer::Project*)),
-        this, SLOT(onStartupProjectChanged(ProjectExplorer::Project *)));
-
-    connect(core->progressManager(), SIGNAL(allTasksFinished(QString)),
-        this, SLOT(onAllTasksFinished(QString)));
-
-    connect(explorer->session(), SIGNAL(aboutToRemoveProject(ProjectExplorer::Project *)),
-        this, SLOT(onProjectRemoved(ProjectExplorer::Project *)));
-
-    m_contextMenu->init(0, 3, this);
-}
-
-void QtTestPlugin::onDefectSelected(TestCaseRec rec)
-{
-    if (rec.m_code) {
-        int line = (rec.m_line > 0 ? rec.m_line : 0);
-        TextEditor::BaseTextEditorWidget::openEditorAt(rec.m_code->actualFileName(), line);
-    }
-}
-
-void QtTestPlugin::onStartupProjectChanged(ProjectExplorer::Project *project)
-{
-    TestConfigurations::instance().setActiveConfiguration(project);
-}
-
-void QtTestPlugin::onProjectRemoved(ProjectExplorer::Project *project)
-{
-    if (project == startupProject())
-        TestConfigurations::instance().setActiveConfiguration(0);
-}
-
-void QtTestPlugin::onAllTasksFinished(const QString &t)
-{
-    if ((t == CppTools::Constants::TASK_INDEX) && startupProject())
-        TestConfigurations::instance().setActiveConfiguration(startupProject());
-}
-
-void QtTestPlugin::testRun()
-{
-    runSelectedTests(false, false);
-}
-
-void QtTestPlugin::testRunAsManual()
-{
-    runSelectedTests(false, true);
-}
-
-void QtTestPlugin::testDebug()
-{
-    Debugger::DebuggerRunControl *runControl = 0;
-    Debugger::DebuggerStartParameters params;
-    params.startMode = Debugger::NoStartMode; // we'll start the test runner here
-    params.executable = QLatin1String(".qtt");
-    runControl = Debugger::DebuggerPlugin::createDebugger(params);
-    if (debug)
-        qDebug() << "Debugger run control" << runControl;
-    runControl->start();
-
-#ifdef QTTEST_DEBUGGER_SUPPORT
-    Debugger::Internal::QtUiTestEngine *engine =
-        qobject_cast<Debugger::Internal::QtUiTestEngine*>(runControl->engine());
-    TestExecuter::instance()->setDebugEngine(engine);
-#endif
-
-    runSelectedTests(false, false);
-
-#ifdef QTTEST_DEBUGGER_SUPPORT
-    TestExecuter::instance()->setDebugEngine(0);
-    runControl->debuggingFinished();
-#endif
-}
-
-void QtTestPlugin::testRunSingle()
-{
-    runSelectedTests(true, false);
-}
-
-void QtTestPlugin::runSelectedTests(bool singleTest, bool forceManual)
-{
-    m_forceManual = forceManual;
-    TestExecuter::instance()->runTests(singleTest, forceManual);
-}
-
-void QtTestPlugin::stopTesting()
-{
-    TestExecuter::instance()->manualStop();
-}
-
-void QtTestPlugin::retryTests(const QStringList &tests)
-{
-    QStringList currentSelection(TestConfigurations::instance().selectedTests());
-    QStringList newSelection;
-
-    foreach (const QString &test, currentSelection) {
-        QString testName = test.mid(test.lastIndexOf(QLatin1Char('/')) + 1);
-        if (tests.contains(testName))
-            newSelection.append(test);
-    }
-    TestExecuter::instance()->setSelectedTests(newSelection);
-    TestExecuter::instance()->runSelectedTests(m_forceManual);
-}
-
-void QtTestPlugin::insertTestFunction()
-{
-    TestCode *currentTest = m_testCollection.currentEditedTest();
-    if (currentTest) {
-        QString prompt = QLatin1String("<b>") + currentTest->testTypeString()
-            +  QLatin1String(" Test: </b>") + currentTest->testCase();
-        QPointer<NewTestFunctionDlg> dlg = new NewTestFunctionDlg(prompt);
-        if (dlg->exec() == QDialog::Accepted) {
-            QString testFunc = dlg->testFunctionName->text();
-            // check for duplicate
-            if (TestFunctionInfo *functionInfo = currentTest->findFunction(testFunc)) {
-                QMessageBox::critical(0, tr("Error"),
-                    tr("Test function \"%1\" already exists.").arg(testFunc));
-                currentTest->gotoLine(functionInfo->testStartLine());
-                return;
-            }
-            currentTest->addTestFunction(testFunc, QString(), dlg->insertAtCursor->isChecked());
-        }
-        delete dlg;
-    }
-}
-
-ProjectExplorer::Project *QtTestPlugin::startupProject()
-{
-    return ProjectExplorer::ProjectExplorerPlugin::instance()->session()->startupProject();
-}
-
-
-Q_EXPORT_PLUGIN(QtTestPlugin)
diff --git a/src/plugins/qttest/qttestplugin.h b/src/plugins/qttest/qttestplugin.h
deleted file mode 100644
index e6ab36b3b68bb0cd7879711ea4aa0154c116f4e6..0000000000000000000000000000000000000000
--- a/src/plugins/qttest/qttestplugin.h
+++ /dev/null
@@ -1,101 +0,0 @@
-/**************************************************************************
-**
-** This file is part of Qt Creator
-**
-** Copyright (c) 2011 Nokia Corporation and/or its subsidiary(-ies).
-**
-** Contact: Nokia Corporation (info@qt.nokia.com)
-**
-**
-** GNU Lesser General Public License Usage
-**
-** This file may be used under the terms of the GNU Lesser General Public
-** License version 2.1 as published by the Free Software Foundation and
-** appearing in the file LICENSE.LGPL included in the packaging of this file.
-** Please review the following information to ensure the GNU Lesser General
-** Public License version 2.1 requirements will be met:
-** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Nokia gives you certain additional
-** rights. These rights are described in the Nokia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** Other Usage
-**
-** Alternatively, this file may be used in accordance with the terms and
-** conditions contained in a signed written agreement between you and Nokia.
-**
-** If you have questions regarding the use of this file, please contact
-** Nokia at info@qt.nokia.com.
-**
-**************************************************************************/
-
-#ifndef QTTESTPLUGIN_H
-#define QTTESTPLUGIN_H
-
-#include "testsuite.h"
-
-#include <projectexplorer/project.h>
-#include <coreplugin/inavigationwidgetfactory.h>
-#include <extensionsystem/iplugin.h>
-
-class TestContextMenu;
-class TestResultsWindow;
-class TestOutputWindow;
-
-namespace QtTest {
-namespace Internal {
-
-class TestNavigationWidgetFactory : public Core::INavigationWidgetFactory
-{
-public:
-    TestNavigationWidgetFactory() {}
-    ~TestNavigationWidgetFactory() {}
-    Core::NavigationView createWidget();
-    QString displayName() const;
-    QString id() const { return "QtTestNavigationWidget"; }
-    int priority() const { return 750; }
-};
-
-class QtTestPlugin : public ExtensionSystem::IPlugin
-{
-    Q_OBJECT
-
-public:
-    QtTestPlugin();
-    ~QtTestPlugin();
-
-    bool initialize(const QStringList &arguments, QString *errorMessage);
-
-    void extensionsInitialized();
-
-public slots:
-    void onDefectSelected(TestCaseRec rec);
-    void onStartupProjectChanged(ProjectExplorer::Project *project);
-    void onProjectRemoved(ProjectExplorer::Project *project);
-    void onAllTasksFinished(const QString &);
-
-    void testRun();
-    void testRunAsManual();
-    void testDebug();
-    void testRunSingle();
-    void stopTesting();
-    void retryTests(const QStringList &tests);
-    void insertTestFunction();
-
-protected:
-    void runSelectedTests(bool singleTest, bool forceManual);
-    ProjectExplorer::Project *startupProject();
-
-private:
-    TestOutputWindow *m_messageOutputWindow;
-    TestResultsWindow *m_testResultsWindow;
-    TestCollection m_testCollection;
-    TestContextMenu *m_contextMenu;
-    bool m_forceManual;
-};
-
-} // namespace Internal
-} // namespace QtTest
-
-#endif //QTTESTPLUGIN_H
diff --git a/src/plugins/qttest/recorddlg.ui b/src/plugins/qttest/recorddlg.ui
deleted file mode 100644
index 000d1c87bcf7f4e2fe91d7508f509b601df6456e..0000000000000000000000000000000000000000
--- a/src/plugins/qttest/recorddlg.ui
+++ /dev/null
@@ -1,108 +0,0 @@
-<ui version="4.0" >
- <class>RecordDialog</class>
- <widget class="QDialog" name="RecordDialog" >
-  <property name="geometry" >
-   <rect>
-    <x>0</x>
-    <y>0</y>
-    <width>562</width>
-    <height>314</height>
-   </rect>
-  </property>
-  <property name="windowTitle" >
-   <string>System Test</string>
-  </property>
-  <layout class="QVBoxLayout" >
-   <item>
-    <widget class="QLabel" name="steps_label" >
-     <property name="text" >
-      <string>Manual steps to record</string>
-     </property>
-    </widget>
-   </item>
-   <item>
-    <widget class="QTextEdit" name="steps_view" >
-     <property name="readOnly" >
-      <bool>true</bool>
-     </property>
-    </widget>
-   </item>
-   <item>
-    <widget class="QLabel" name="label" >
-     <property name="text" >
-      <string>Events are now being recorded and scripting code will be added to the field below. When you have finished recording events, copy the text from the field and click 'Stop'.</string>
-     </property>
-     <property name="wordWrap" >
-      <bool>true</bool>
-     </property>
-    </widget>
-   </item>
-   <item>
-    <widget class="QTextEdit" name="codeEdit" >
-     <property name="font" >
-      <font>
-       <family>Courier New</family>
-       <pointsize>10</pointsize>
-      </font>
-     </property>
-     <property name="readOnly" >
-      <bool>true</bool>
-     </property>
-     <property name="acceptRichText" >
-      <bool>false</bool>
-     </property>
-    </widget>
-   </item>
-   <item>
-    <layout class="QHBoxLayout" >
-     <item>
-      <widget class="QPushButton" name="abort_button" >
-       <property name="text" >
-        <string>Abort</string>
-       </property>
-      </widget>
-     </item>
-     <item>
-      <spacer>
-       <property name="orientation" >
-        <enum>Qt::Horizontal</enum>
-       </property>
-       <property name="sizeHint" >
-        <size>
-         <width>371</width>
-         <height>26</height>
-        </size>
-       </property>
-      </spacer>
-     </item>
-     <item>
-      <widget class="QPushButton" name="stopButton" >
-       <property name="text" >
-        <string>Stop</string>
-       </property>
-      </widget>
-     </item>
-    </layout>
-   </item>
-  </layout>
- </widget>
- <resources/>
- <connections>
-  <connection>
-   <sender>stopButton</sender>
-   <signal>clicked()</signal>
-   <receiver>RecordDialog</receiver>
-   <slot>accept()</slot>
-   <hints>
-    <hint type="sourcelabel" >
-     <x>504</x>
-     <y>291</y>
-    </hint>
-    <hint type="destinationlabel" >
-     <x>419</x>
-     <y>295</y>
-    </hint>
-   </hints>
-  </connection>
- </connections>
-</ui>
diff --git a/src/plugins/qttest/resultsview.cpp b/src/plugins/qttest/resultsview.cpp
deleted file mode 100644
index d6f31d211167e4dd7fc19854fe1b36876f2dd2c4..0000000000000000000000000000000000000000
--- a/src/plugins/qttest/resultsview.cpp
+++ /dev/null
@@ -1,699 +0,0 @@
-/**************************************************************************
-**
-** This file is part of Qt Creator
-**
-** Copyright (c) 2011 Nokia Corporation and/or its subsidiary(-ies).
-**
-** Contact: Nokia Corporation (info@qt.nokia.com)
-**
-**
-** GNU Lesser General Public License Usage
-**
-** This file may be used under the terms of the GNU Lesser General Public
-** License version 2.1 as published by the Free Software Foundation and
-** appearing in the file LICENSE.LGPL included in the packaging of this file.
-** Please review the following information to ensure the GNU Lesser General
-** Public License version 2.1 requirements will be met:
-** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Nokia gives you certain additional
-** rights. These rights are described in the Nokia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** Other Usage
-**
-** Alternatively, this file may be used in accordance with the terms and
-** conditions contained in a signed written agreement between you and Nokia.
-**
-** If you have questions regarding the use of this file, please contact
-** Nokia at info@qt.nokia.com.
-**
-**************************************************************************/
-
-#include "resultsview.h"
-
-#include <projectexplorer/projectexplorerconstants.h>
-#include <coreplugin/coreconstants.h>
-#include <coreplugin/icontext.h>
-#include <coreplugin/icore.h>
-#include <coreplugin/actionmanager/actionmanager.h>
-#include <coreplugin/actionmanager/command.h>
-#include <coreplugin/id.h>
-
-#include <QHeaderView>
-#include <QResizeEvent>
-#include <QTimer>
-#include <QFileInfo>
-#include <QDesktopServices>
-#include <QUrl>
-#include <QToolButton>
-#include <QAction>
-#include <QMenu>
-#include <QClipboard>
-#include <QApplication>
-#include <QDebug>
-
-enum
-{
-    ResultSize = 100,
-    ResultPosition = 0,
-    DetailsPosition = 1,
-    ReasonPosition  = 2,
-    ScreenPosition = 3
-};
-
-// Role for data which holds the identifier for use with m_pendingScreenshots
-static const int ScreenshotIdRole = Qt::UserRole + 10;
-// Role for the link to the .png file of a failure screenshot
-static const int ScreenshotLinkRole = Qt::UserRole + 100;
-
-
-/*
-    Constructs a screenshot ID for the test failure at the given \a file and
-    \a line.
-*/
-static QString screenshotId(const QString &file, int line)
-{
-    return QString::fromLatin1("%1 %2").arg(QFileInfo(file).canonicalFilePath()).arg(line);
-}
-
-ResultsView::ResultsView(QWidget *parent) :
-    QTableWidget(parent),
-    m_lastRow(-1),
-    m_ignoreEvent(false),
-    m_userLock(false),
-    m_passBrush(QColor("lightgreen")),
-    m_failBrush(QColor("orangered")),
-    m_unexpectedBrush(QColor("orange"))
-{
-    setColumnCount(3);
-    setGridStyle(Qt::NoPen);
-
-    m_showPassing = m_testSettings.showPassedResults();
-    m_showDebug = m_testSettings.showDebugResults();
-    m_showSkipped = m_testSettings.showSkippedResults();
-
-    setHorizontalHeaderLabels(QStringList() << tr("Result")
-        << tr("Test Details") << tr("Description"));
-    resize(width());
-
-    setSelectionMode(QAbstractItemView::SingleSelection);
-    setSelectionBehavior(QAbstractItemView::SelectRows);
-    setSortingEnabled(false);
-    setAlternatingRowColors(true);
-    setEditTriggers(QAbstractItemView::NoEditTriggers);
-    verticalHeader()->hide();
-    horizontalHeader()->show();
-
-    connect(this, SIGNAL(currentCellChanged(int,int,int,int)),
-        this, SLOT(onChanged()), Qt::DirectConnection);
-    connect(this, SIGNAL(itemClicked(QTableWidgetItem*)),
-        this, SLOT(onItemClicked(QTableWidgetItem*)), Qt::DirectConnection);
-
-    setWordWrap(true);
-}
-
-ResultsView::~ResultsView()
-{
-}
-
-void ResultsView::resize(int width)
-{
-    resizeColumnToContents(ResultPosition);
-    if (columnWidth(ResultPosition) < ResultSize)
-        setColumnWidth(ResultPosition, ResultSize);
-    resizeColumnToContents(DetailsPosition);
-    if (columnWidth(DetailsPosition) < ResultSize)
-        setColumnWidth(DetailsPosition, ResultSize);
-    setColumnWidth(DetailsPosition, columnWidth(DetailsPosition) + 20);
-    setColumnWidth(ReasonPosition, width - columnWidth(ResultPosition) - columnWidth(DetailsPosition));
-}
-
-void ResultsView::resizeEvent(QResizeEvent *event)
-{
-    resize(event->size().width());
-}
-
-void ResultsView::clear()
-{
-    setUpdatesEnabled(false);
-    disconnect(this, SIGNAL(currentCellChanged(int,int,int,int)), this, SLOT(onChanged()));
-    clearContents();
-    setRowCount(0);
-    connect(this, SIGNAL(currentCellChanged(int,int,int,int)),
-        this, SLOT(onChanged()), Qt::DirectConnection);
-    setUpdatesEnabled(true);
-
-    m_ignoreEvent = false;
-    m_userLock = false;
-    m_failedTests.clear();
-}
-
-/*
-    Called when the test runner tells us it has taken a screenshot due to
-    failure.
-
-    Note that, since we determine test failures by parsing output, this could happen
-    before or after we see the actual test failure.
-*/
-void ResultsView::addScreenshot(const QString &screenshot, const QString &testfunction,
-    const QString& file, int line)
-{
-    Q_UNUSED(testfunction);
-
-    QString id = screenshotId(file, line);
-    // We may have received the screenshot before the test result it matches.
-    m_pendingScreenshots[id] = screenshot;
-    updateScreenshots();
-}
-
-/*
-    Iterates through the test results and generates links to screenshots
-    for any that have a screenshot available.
-*/
-void ResultsView::updateScreenshots()
-{
-    for (int row = 0; row < rowCount(); ++row) {
-        QTableWidgetItem *result = item(row, ResultPosition);
-        if (!result)
-            continue;
-        // If there is a screenshot for this result, put a link to it in the table.
-        QString id = result->data(ScreenshotIdRole).toString();
-        if (!m_pendingScreenshots.contains(id))
-            continue;
-
-        QString screenshot = m_pendingScreenshots.take(id);
-        QTableWidgetItem* shot = new QTableWidgetItem(QIcon(QPixmap(QLatin1String(":/testrun.png"))), QString());
-        shot->setData(ScreenshotLinkRole, screenshot);
-        shot->setTextAlignment(Qt::AlignHCenter | Qt::AlignVCenter);
-        setItem(row, ScreenPosition, shot);
-    }
-}
-
-/*
-    Opens any screenshot linked to from \a item.
-    Called when \a item is clicked.
-*/
-void ResultsView::onItemClicked(QTableWidgetItem* item)
-{
-    QString shot = item->data(ScreenshotLinkRole).toString();
-    if (shot.isEmpty())
-        return;
-    // Open the screenshot using the preferred image viewer.
-    QDesktopServices::openUrl(QUrl::fromLocalFile(shot));
-}
-
-void ResultsView::append(const QString &res, const QString &test, const QString &reason, const QString &dataTag, const QString &file, const QString &line)
-{
-    int row = rowCount();
-    insertRow(row);
-
-    QTableWidgetItem* result = new QTableWidgetItem(res);
-    result->setTextAlignment(Qt::AlignCenter);
-    if (res.startsWith(QLatin1String("PASS"))) {
-        result->setBackground(m_passBrush);
-        setRowHidden(row, !m_showPassing);
-    } else if (res.startsWith(QLatin1String("FAIL"))) {
-        result->setBackground(m_failBrush);
-    } else if (res.startsWith(QLatin1String("QDEBUG"))) {
-        setRowHidden(row, !m_showDebug);
-    } else if (res.startsWith(QLatin1String("SKIP"))) {
-        setRowHidden(row, !m_showSkipped);
-    } else if (res.startsWith(QLatin1String("XFAIL")) || res.startsWith(QLatin1String("XPASS"))) {
-        result->setBackground(m_unexpectedBrush);
-    }
-
-    if ((res.contains(QLatin1String("FAIL")) || res.startsWith(QLatin1String("XPASS"))) && !m_failedTests.contains(test))
-        m_failedTests.append(test);
-
-    // Construct a result id for use in mapping test failures to screenshots.
-    QString resultId = screenshotId(file, line.toInt());
-    result->setData(ScreenshotIdRole, resultId);
-
-    QTableWidgetItem *testDetails = new QTableWidgetItem(formatTestDetails(test, dataTag));
-    testDetails->setToolTip(formatLocation(file, line));
-    setItem(row, ResultPosition, result);
-    setItem(row, DetailsPosition, testDetails);
-    setItem(row, ReasonPosition, new QTableWidgetItem(reason));
-    resize(width());
-    resizeRowToContents(row);
-
-    if (currentRow() == -1)
-        scrollToItem(item(row, ReasonPosition));
-
-    m_resultsWindow->navigateStateChanged();
-    updateScreenshots();
-}
-
-QString ResultsView::xmlDequote(const QString &input)
-{
-    QString result = input;
-    return result.replace(QLatin1String("&gt;"), QLatin1String(">"))
-        .replace(QLatin1String("&lt;"), QLatin1String("<"))
-        .replace(QLatin1String("&apos;"), QLatin1String("'"))
-        .replace(QLatin1String("&quot;"), QLatin1String("\""))
-        .replace(QLatin1String("&amp;"), QLatin1String("&"))
-        .replace(QLatin1String("&#x002D;"), QLatin1String("-"));
-}
-
-QString ResultsView::htmlQuote(const QString &input)
-{
-    QString result=input;
-    return result.replace(QLatin1String("&"), QLatin1String("&amp;"))
-        .replace(QLatin1String(">"), QLatin1String("&gt;"))
-        .replace(QLatin1String("<"), QLatin1String("&lt;"))
-        .replace(QLatin1String("\""), QLatin1String("&quot;"))
-        .replace(QLatin1String("\n"), QLatin1String("<br />\n"));
-}
-
-QString ResultsView::formatTestDetails(const QString &test, const QString &dataTag)
-{
-    QString ret = test;
-    if (!dataTag.isEmpty() && dataTag != QLatin1String("...")) {
-        ret += QLatin1String(" (");
-        ret += dataTag;
-        ret += QLatin1Char(')');
-    }
-    return ret;
-}
-
-QString ResultsView::formatLocation(const QString &file, const QString &line)
-{
-    QString description;
-    QString _file = file;
-    if (_file.startsWith(QLatin1Char('[')))
-        _file = _file.mid(1);
-    if (!_file.isEmpty() || !line.isEmpty()) {
-        description += xmlDequote(file);
-        if (line !=  QLatin1String("-1")) {
-            description += QLatin1Char(':');
-            description += line;
-        }
-    }
-
-    return description;
-}
-
-QString ResultsView::result(int row)
-{
-    if (row >= rowCount())
-        return QString();
-
-    return item(row, ResultPosition)->text().simplified();
-}
-
-QString ResultsView::reason(int row)
-{
-    if (row >= rowCount())
-        return QString();
-
-    QString txt = item(row, ReasonPosition)->text();
-    const int pos = txt.indexOf(QLatin1Char('\n'));
-    if (pos > 0)
-        txt.truncate(pos);
-    return txt.simplified();
-}
-
-QString ResultsView::location(int row)
-{
-    if (row >= rowCount())
-        return QString();
-
-    return item(row, DetailsPosition)->toolTip();
-}
-
-QString ResultsView::file(int row)
-{
-    QString txt = location(row);
-    if (!txt.isEmpty()) {
-        const int pos = txt.indexOf(QLatin1Char(':'));
-        if (pos >= 0)
-            txt.truncate(pos);
-        return txt.simplified();
-    }
-    return QString();
-}
-
-QString ResultsView::line(int row)
-{
-    QString txt = location(row);
-    if (!txt.isEmpty()) {
-        const int pos = txt.indexOf(QLatin1Char(':'));
-        if (pos >= 0) {
-            txt = txt.mid(pos + 1);
-        } else {
-            txt.clear();
-        }
-        return txt.simplified();
-    }
-    return QString();
-}
-
-int ResultsView::intLine(int row)
-{
-    if (row >= rowCount())
-        return false;
-
-    return line(row).toInt();
-}
-
-void ResultsView::setResult(const QString &result, const QString &test, const QString &reason, const QString &dataTag, const QString &file, int line)
-{
-    QString lineStr(QString::number(line));
-    append(result, test, reason, dataTag, file, lineStr);
-}
-
-void ResultsView::onChanged()
-{
-    if (!m_ignoreEvent) {
-        if (currentColumn() == 0)
-            m_userLock = false;
-        else
-            m_userLock = true;
-    }
-
-    int row = currentRow();
-    m_lastRow = row;
-
-    if (m_ignoreEvent || row >= rowCount())
-        return;
-
-    m_resultsWindow->navigateStateChanged();
-    QTimer::singleShot(0, this, SLOT(emitCurSelection()));
-}
-
-void ResultsView::emitCurSelection()
-{
-    emitSelection(m_lastRow);
-}
-
-void ResultsView::emitSelection(int row)
-{
-    if (row < 0)
-        return;
-
-    TestCaseRec rec;
-    rec.m_testFunction = "";
-    rec.m_line = intLine(row);
-    TestCode *tmp = m_testCollection.findCode(file(row), "", "");
-    rec.m_code = tmp;
-
-    emit defectSelected(rec);
-}
-
-void ResultsView::setResultsWindow(TestResultsWindow *window)
-{
-    m_resultsWindow = window;
-}
-
-TestResultsWindow* ResultsView::resultsWindow() const
-{
-    return m_resultsWindow;
-}
-
-void ResultsView::showPassing(bool show)
-{
-    m_showPassing = show;
-    updateHidden(QLatin1String("PASS"), show);
-    m_testSettings.setShowPassedResults(show);
-}
-
-void ResultsView::showDebugMessages(bool show)
-{
-    m_showDebug = show;
-    updateHidden(QLatin1String("QDEBUG"), show);
-    m_testSettings.setShowDebugResults(show);
-}
-
-void ResultsView::showSkipped(bool show)
-{
-    m_showSkipped = show;
-    updateHidden(QLatin1String("SKIP"), show);
-    m_testSettings.setShowSkippedResults(show);
-}
-
-void ResultsView::updateHidden(const QString &result, bool show)
-{
-    for (int row = 0; row < rowCount(); ++row) {
-        QTableWidgetItem *resultItem = item(row, ResultPosition);
-        if (resultItem && resultItem->text().startsWith(result))
-            setRowHidden(row, !show);
-    }
-    resize(width());
-    m_resultsWindow->navigateStateChanged();
-}
-
-// **********************************************************
-
-ResultsView *testResultsPane()
-{
-    return TestResultsWindow::instance()->resultsView();
-}
-
-TestResultsWindow *_testResultsInstance = 0;
-
-TestResultsWindow *TestResultsWindow::instance()
-{
-    if (!_testResultsInstance) {
-        _testResultsInstance = new TestResultsWindow();
-    }
-    return _testResultsInstance;
-}
-
-TestResultsWindow::TestResultsWindow() :
-    m_stopAction(new QAction(QIcon(QLatin1String(ProjectExplorer::Constants::ICON_STOP)),
-        tr("Stop Testing"), this)),
-    m_retryAction(new QAction(QIcon(QLatin1String(":/reload.png")),
-        tr("Retry Failed Tests"), this)),
-    m_copyAction(new QAction(QIcon(QLatin1String(Core::Constants::ICON_COPY)),
-        tr("Copy Results"), this)),
-    m_stopButton(new QToolButton),
-    m_retryButton(new QToolButton),
-    m_copyButton(new QToolButton),
-    m_filterButton(new QToolButton)
-{
-    m_resultsView = new ResultsView;
-    m_resultsView->setResultsWindow(this);
-    m_resultsView->setFrameStyle(QFrame::NoFrame);
-
-    connect(&m_testSettings, SIGNAL(changed()), this, SLOT(onSettingsChanged()));
-
-    m_stopAction->setToolTip(tr("Stop Testing"));
-    m_stopAction->setEnabled(false);
-
-    m_retryAction->setToolTip(tr("Retry Failed Tests"));
-    m_retryAction->setEnabled(false);
-
-    m_copyAction->setToolTip(tr("Copy Results"));
-    m_copyAction->setEnabled(false);
-
-    m_filterButton->setIcon(QIcon(Core::Constants::ICON_FILTER));
-    m_filterButton->setToolTip(tr("Filter Results"));
-    m_filterButton->setPopupMode(QToolButton::InstantPopup);
-
-    m_showPassingAction = new QAction(tr("Show Passing Tests"), this);
-    m_showPassingAction->setCheckable(true);
-    m_showPassingAction->setChecked(m_testSettings.showPassedResults());
-
-    connect(m_showPassingAction, SIGNAL(toggled(bool)), m_resultsView, SLOT(showPassing(bool)));
-
-    m_showDebugAction = new QAction(tr("Show Debug Messages"), this);
-    m_showDebugAction->setCheckable(true);
-    m_showDebugAction->setChecked(m_testSettings.showDebugResults());
-    connect(m_showDebugAction, SIGNAL(toggled(bool)), m_resultsView, SLOT(showDebugMessages(bool)));
-
-    m_showSkipAction = new QAction(tr("Show Skipped Tests"), this);
-    m_showSkipAction->setCheckable(true);
-    m_showSkipAction->setChecked(m_testSettings.showSkippedResults());
-    connect(m_showSkipAction, SIGNAL(toggled(bool)), m_resultsView, SLOT(showSkipped(bool)));
-
-    QMenu *filterMenu = new QMenu(m_filterButton);
-    filterMenu->addAction(m_showPassingAction);
-    filterMenu->addAction(m_showDebugAction);
-    filterMenu->addAction(m_showSkipAction);
-    m_filterButton->setMenu(filterMenu);
-
-    Core::ActionManager *am = Core::ICore::instance()->actionManager();
-    Core::Context globalcontext(Core::Constants::C_GLOBAL);
-    Core::Command *stopCmd = am->registerAction(m_stopAction,
-        Core::Id("Qt4Test.StopTest"), globalcontext);
-    Core::Command *retryCmd = am->registerAction(m_retryAction,
-        Core::Id("Qt4Test.RetryFailed"), globalcontext);
-    Core::Command *copyCmd = am->registerAction(m_copyAction,
-        Core::Id("Qt4Test.CopyResults"), globalcontext);
-
-    m_stopButton->setDefaultAction(stopCmd->action());
-    m_stopButton->setAutoRaise(true);
-    m_retryButton->setDefaultAction(retryCmd->action());
-    m_retryButton->setAutoRaise(true);
-    m_copyButton->setDefaultAction(copyCmd->action());
-    m_copyButton->setAutoRaise(true);
-
-    connect(m_stopAction, SIGNAL(triggered()), this, SIGNAL(stopTest()));
-    connect(m_retryAction, SIGNAL(triggered()), this, SLOT(retryFailed()));
-    connect(m_copyAction, SIGNAL(triggered()), this, SLOT(copyResults()));
-}
-
-TestResultsWindow::~TestResultsWindow()
-{
-    delete m_resultsView;
-    _testResultsInstance = 0;
-}
-
-bool TestResultsWindow::hasFocus() const
-{
-    return m_resultsView->hasFocus();
-}
-
-bool TestResultsWindow::canFocus() const
-{
-    return true;
-}
-
-void TestResultsWindow::setFocus()
-{
-    m_resultsView->setFocus();
-}
-
-void TestResultsWindow::clearContents()
-{
-    m_resultsView->clear();
-    m_retryAction->setEnabled(false);
-    m_copyAction->setEnabled(false);
-    navigateStateChanged();
-}
-
-QWidget *TestResultsWindow::outputWidget(QWidget *parent)
-{
-    m_resultsView->setParent(parent);
-    return m_resultsView;
-}
-
-QString TestResultsWindow::name() const
-{
-    return tr("Test Results");
-}
-
-void TestResultsWindow::visibilityChanged(bool /*b*/)
-{
-}
-
-int TestResultsWindow::priorityInStatusBar() const
-{
-    return 50;
-}
-
-bool TestResultsWindow::canNext() const
-{
-    for (int i = m_resultsView->currentRow() + 1; i < m_resultsView->rowCount(); ++i) {
-        if (!m_resultsView->isRowHidden(i))
-            return true;
-    }
-    return false;
-}
-
-bool TestResultsWindow::canPrevious() const
-{
-    for (int i = m_resultsView->currentRow() - 1; i >= 0; --i) {
-        if (!m_resultsView->isRowHidden(i))
-            return true;
-    }
-    return false;
-}
-
-void TestResultsWindow::goToNext()
-{
-    for (int i = m_resultsView->currentRow() + 1; i < m_resultsView->rowCount(); ++i) {
-        if (!m_resultsView->isRowHidden(i)) {
-            m_resultsView->setCurrentCell(i, 0);
-            return;
-        }
-    }
-}
-
-void TestResultsWindow::goToPrev()
-{
-    for (int i = m_resultsView->currentRow() - 1; i >= 0; --i) {
-      if (!m_resultsView->isRowHidden(i)) {
-            m_resultsView->setCurrentCell(i, 0);
-            return;
-        }
-    }
-}
-
-bool TestResultsWindow::canNavigate() const
-{
-    return true;
-}
-
-QList<QWidget*> TestResultsWindow::toolBarWidgets() const
-{
-    return QList<QWidget*>() << m_filterButton << m_stopButton << m_retryButton << m_copyButton;
-}
-
-void TestResultsWindow::addResult(const QString &result, const QString &test, const QString &reason,
-    const QString &dataTag, const QString &file, int line)
-{
-    m_resultsView->setResult(result, test, reason, dataTag, file, line);
-}
-
-void TestResultsWindow::onTestStarted()
-{
-    m_stopAction->setEnabled(true);
-    m_retryAction->setEnabled(false);
-    m_copyAction->setEnabled(false);
-}
-
-void TestResultsWindow::onTestStopped()
-{
-    m_stopAction->setEnabled(false);
-    m_retryAction->setEnabled(false);
-    m_copyAction->setEnabled(false);
-}
-
-void TestResultsWindow::onTestFinished()
-{
-    m_stopAction->setEnabled(false);
-    m_retryAction->setEnabled(!m_resultsView->failedTests().isEmpty());
-    m_copyAction->setEnabled(true);
-}
-
-void TestResultsWindow::retryFailed()
-{
-    emit retryFailedTests(m_resultsView->failedTests());
-}
-
-void TestResultsWindow::copyResults()
-{
-    m_resultsView->copyResults();
-}
-
-void ResultsView::copyResults()
-{
-    QMimeData *md = new QMimeData();
-    QString html = QLatin1String("<html><table>");
-    QString text;
-    for (int row = 0; row < rowCount(); ++row) {
-        QString result = item(row, ResultPosition)->text().trimmed();
-        QString detail = item(row, DetailsPosition)->text();
-        QString location = item(row, DetailsPosition)->toolTip();
-        QString reason = item(row, ReasonPosition)->text();
-        html += QString::fromLatin1("<tr><td>%1</td><td>%2</td><td>%3</td><td>%4</td></tr>")
-            .arg(result).arg(detail).arg(location).arg(htmlQuote(reason));
-        text += QString::fromLatin1("%1\n%2\n%3\n%4\n").arg(result).arg(detail).arg(location).arg(reason);
-    }
-    html += QLatin1String("</table></html>");
-    md->setHtml(html);
-    md->setText(text);
-    QApplication::clipboard()->setMimeData(md);
-}
-
-void TestResultsWindow::onSettingsChanged()
-{
-    if (m_showPassingAction->isChecked() != m_testSettings.showPassedResults())
-        m_showPassingAction->setChecked(m_testSettings.showPassedResults());
-    if (m_showDebugAction->isChecked() != m_testSettings.showDebugResults())
-        m_showDebugAction->setChecked(m_testSettings.showDebugResults());
-    if (m_showSkipAction->isChecked() != m_testSettings.showSkippedResults())
-        m_showSkipAction->setChecked(m_testSettings.showSkippedResults());
-}
diff --git a/src/plugins/qttest/resultsview.h b/src/plugins/qttest/resultsview.h
deleted file mode 100644
index e8e1d0e343c36d3bdb055f8df97c410286f4e9f3..0000000000000000000000000000000000000000
--- a/src/plugins/qttest/resultsview.h
+++ /dev/null
@@ -1,188 +0,0 @@
-/**************************************************************************
-**
-** This file is part of Qt Creator
-**
-** Copyright (c) 2011 Nokia Corporation and/or its subsidiary(-ies).
-**
-** Contact: Nokia Corporation (info@qt.nokia.com)
-**
-**
-** GNU Lesser General Public License Usage
-**
-** This file may be used under the terms of the GNU Lesser General Public
-** License version 2.1 as published by the Free Software Foundation and
-** appearing in the file LICENSE.LGPL included in the packaging of this file.
-** Please review the following information to ensure the GNU Lesser General
-** Public License version 2.1 requirements will be met:
-** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Nokia gives you certain additional
-** rights. These rights are described in the Nokia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** Other Usage
-**
-** Alternatively, this file may be used in accordance with the terms and
-** conditions contained in a signed written agreement between you and Nokia.
-**
-** If you have questions regarding the use of this file, please contact
-** Nokia at info@qt.nokia.com.
-**
-**************************************************************************/
-
-#ifndef RESULTSVIEW_H
-#define RESULTSVIEW_H
-
-#include "testsuite.h"
-#include "testsettings.h"
-
-#include <coreplugin/ioutputpane.h>
-
-#include <QTableWidget>
-
-class ResultsView;
-class TestResultsWindow;
-QT_BEGIN_NAMESPACE
-class QToolButton;
-QT_END_NAMESPACE
-
-ResultsView *testResultsPane();
-
-class ResultsView : public QTableWidget
-{
-    Q_OBJECT
-
-public:
-    explicit ResultsView(QWidget *parent = 0);
-    virtual ~ResultsView();
-
-    QString result(int row);
-    QString reason(int row);
-    QString dataTag(int row);
-    QString file(int row);
-    QString line(int row);
-    int intLine(int row);
-
-    void reselect();
-
-    virtual void clear();
-    void setResult(const QString &result, const QString &test, const QString &reason,
-        const QString &dataTag, const QString &file, int line);
-
-    void setResultsWindow(TestResultsWindow * = 0);
-    TestResultsWindow *resultsWindow() const;
-    QStringList failedTests() const { return m_failedTests; }
-    void copyResults();
-
-public slots:
-    void addScreenshot(const QString &screenshot,
-        const QString &testfunction, const QString &file, int line);
-
-signals:
-    void defectSelected(TestCaseRec rec);
-
-private slots:
-    void onChanged();
-    void emitCurSelection();
-    void onItemClicked(QTableWidgetItem *);
-    void showPassing(bool);
-    void showDebugMessages(bool);
-    void showSkipped(bool);
-
-private:
-    QString formatTestDetails(const QString &test, const QString &dataTag);
-    QString formatLocation(const QString &file, const QString &line);
-    void append(const QString &res, const QString &test, const QString &reason,
-        const QString &dataTag, const QString &file, const QString &line);
-
-    void resize(int width);
-    void resizeEvent(QResizeEvent *event);
-    void emitSelection(int row);
-
-    QString location(int row);
-    void updateScreenshots();
-    static QString xmlDequote(const QString &input);
-    static QString htmlQuote(const QString &input);
-    void updateHidden(const QString &result, bool show);
-
-    int m_lastRow;
-    int m_usedRows;
-    bool m_ignoreEvent;
-    bool m_userLock;
-    QMap<QString,QString> m_pendingScreenshots;
-    TestCollection m_testCollection;
-    TestResultsWindow *m_resultsWindow;
-    bool m_showPassing;
-    bool m_showDebug;
-    bool m_showSkipped;
-    QStringList m_failedTests;
-    TestSettings m_testSettings;
-    const QBrush m_passBrush;
-    const QBrush m_failBrush;
-    const QBrush m_unexpectedBrush;
-};
-
-class TestResultsWindow : public Core::IOutputPane
-{
-    Q_OBJECT
-
-public:
-    TestResultsWindow();
-    ~TestResultsWindow();
-
-    static TestResultsWindow *instance();
-
-    virtual QString displayName() const { return tr("Test Results"); }
-
-    QWidget *outputWidget(QWidget *parent);
-    QList<QWidget *> toolBarWidgets() const;
-
-    QString name() const;
-    int priorityInStatusBar() const;
-    void clearContents();
-    void visibilityChanged(bool visible);
-
-    bool canFocus() const;
-    bool hasFocus() const;
-    void setFocus();
-
-    virtual bool canNext() const;
-    virtual bool canPrevious() const;
-    virtual void goToNext();
-    virtual void goToPrev();
-    bool canNavigate() const;
-    ResultsView *resultsView() { return m_resultsView; }
-
-    void addResult(const QString &result, const QString &test, const QString &reason,
-        const QString &dataTag, const QString &file, int line);
-
-signals:
-    void stopTest();
-    void retryFailedTests(const QStringList &);
-
-public slots:
-    void onTestStarted();
-    void onTestStopped();
-    void onTestFinished();
-    void retryFailed();
-    void copyResults();
-    void onSettingsChanged();
-
-private:
-    TestSettings m_testSettings;
-    ResultsView *m_resultsView;
-    QAction *m_stopAction;
-    QAction *m_retryAction;
-    QAction *m_copyAction;
-
-    QAction *m_showPassingAction;
-    QAction *m_showDebugAction;
-    QAction *m_showSkipAction;
-
-    QToolButton *m_stopButton;
-    QToolButton *m_retryButton;
-    QToolButton *m_copyButton;
-    QToolButton *m_filterButton;
-};
-
-#endif
diff --git a/src/plugins/qttest/selectdlg.ui b/src/plugins/qttest/selectdlg.ui
deleted file mode 100644
index 820468a542ae81168c124d175391be81e6c59746..0000000000000000000000000000000000000000
--- a/src/plugins/qttest/selectdlg.ui
+++ /dev/null
@@ -1,86 +0,0 @@
-<ui version="4.0" >
- <class>SelectDlg</class>
- <widget class="QDialog" name="SelectDlg" >
-  <property name="geometry" >
-   <rect>
-    <x>0</x>
-    <y>0</y>
-    <width>368</width>
-    <height>302</height>
-   </rect>
-  </property>
-  <property name="windowTitle" >
-   <string>Dialog</string>
-  </property>
-  <layout class="QVBoxLayout" >
-   <item>
-    <widget class="QLabel" name="instructLabel" >
-     <property name="text" >
-      <string>Select something</string>
-     </property>
-     <property name="alignment" >
-      <set>Qt::AlignCenter</set>
-     </property>
-     <property name="wordWrap" >
-      <bool>true</bool>
-     </property>
-    </widget>
-   </item>
-   <item>
-    <widget class="QTableWidget" name="groupsList" >
-     <property name="verticalScrollBarPolicy" >
-      <enum>Qt::ScrollBarAlwaysOn</enum>
-     </property>
-     <property name="alternatingRowColors" >
-      <bool>true</bool>
-     </property>
-    </widget>
-   </item>
-   <item>
-    <widget class="QDialogButtonBox" name="buttonBox" >
-     <property name="orientation" >
-      <enum>Qt::Horizontal</enum>
-     </property>
-     <property name="standardButtons" >
-      <set>QDialogButtonBox::Cancel|QDialogButtonBox::NoButton|QDialogButtonBox::Ok</set>
-     </property>
-    </widget>
-   </item>
-  </layout>
- </widget>
- <resources/>
- <connections>
-  <connection>
-   <sender>buttonBox</sender>
-   <signal>accepted()</signal>
-   <receiver>SelectDlg</receiver>
-   <slot>accept()</slot>
-   <hints>
-    <hint type="sourcelabel" >
-     <x>248</x>
-     <y>254</y>
-    </hint>
-    <hint type="destinationlabel" >
-     <x>157</x>
-     <y>274</y>
-    </hint>
-   </hints>
-  </connection>
-  <connection>
-   <sender>buttonBox</sender>
-   <signal>rejected()</signal>
-   <receiver>SelectDlg</receiver>
-   <slot>reject()</slot>
-   <hints>
-    <hint type="sourcelabel" >
-     <x>316</x>
-     <y>260</y>
-    </hint>
-    <hint type="destinationlabel" >
-     <x>286</x>
-     <y>274</y>
-    </hint>
-   </hints>
-  </connection>
- </connections>
-</ui>
diff --git a/src/plugins/qttest/testcode.cpp b/src/plugins/qttest/testcode.cpp
deleted file mode 100644
index 4e592fe528fac2f463cf0711988ff0c98c44cf28..0000000000000000000000000000000000000000
--- a/src/plugins/qttest/testcode.cpp
+++ /dev/null
@@ -1,1424 +0,0 @@
-/**************************************************************************
-**
-** This file is part of Qt Creator
-**
-** Copyright (c) 2011 Nokia Corporation and/or its subsidiary(-ies).
-**
-** Contact: Nokia Corporation (info@qt.nokia.com)
-**
-**
-** GNU Lesser General Public License Usage
-**
-** This file may be used under the terms of the GNU Lesser General Public
-** License version 2.1 as published by the Free Software Foundation and
-** appearing in the file LICENSE.LGPL included in the packaging of this file.
-** Please review the following information to ensure the GNU Lesser General
-** Public License version 2.1 requirements will be met:
-** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Nokia gives you certain additional
-** rights. These rights are described in the Nokia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** Other Usage
-**
-** Alternatively, this file may be used in accordance with the terms and
-** conditions contained in a signed written agreement between you and Nokia.
-**
-** If you have questions regarding the use of this file, please contact
-** Nokia at info@qt.nokia.com.
-**
-**************************************************************************/
-
-#include "testcode.h"
-
-#ifndef QTTEST_PLUGIN_LEAN
-# include "qsystemtest.h"
-#endif
-
-#include <coreplugin/ifile.h>
-#include <coreplugin/icore.h>
-#include <coreplugin/filemanager.h>
-#include <coreplugin/editormanager/editormanager.h>
-
-#include <extensionsystem/pluginmanager.h>
-#include <texteditor/basetexteditor.h>
-
-#include <coreplugin/icontext.h>
-
-#include <qmljs/qmljsmodelmanagerinterface.h>
-
-#include <qmljs/parser/qmljsastvisitor_p.h>
-#include <qmljs/parser/qmljsast_p.h>
-
-
-#include <AST.h>
-#include <ASTVisitor.h>
-#include <Literals.h>
-#include <cplusplus/LookupContext.h>
-#include <Symbols.h>
-#include <SymbolVisitor.h>
-
-#include <TranslationUnit.h>
-#include <cplusplus/CppDocument.h>
-#include <cplusplus/ModelManagerInterface.h>
-
-#include <QFile>
-#include <QStringList>
-#include <QDir>
-#include <QTextStream>
-#include <QIODevice>
-#include <QRegExp>
-#include <QDebug>
-
-class SystemTestCodeSync : protected QmlJS::AST::Visitor
-{
-public:
-    SystemTestCodeSync(TestCode *testCode) :
-        m_foundTestCase(false),
-        m_testCode(testCode)
-    {
-    }
-
-    void operator()(QmlJS::Document::Ptr doc)
-    {
-        if (doc && doc->ast())
-            doc->ast()->accept(this);
-    }
-
-private:
-    bool visit(QmlJS::AST::IdentifierExpression *identifier)
-    {
-        const QStringRef &name = identifier->name;
-        m_foundTestCase = (name == QLatin1String("testcase"));
-        if (!m_foundTestCase && (name == QLatin1String("prompt") || name == QLatin1String("manualTest")))
-            m_testCode->setManualTest(identifier->identifierToken.offset);
-        return true;
-    }
-
-    bool visit(QmlJS::AST::ObjectLiteral *objectLiteral)
-    {
-        if (m_foundTestCase) {
-            QmlJS::AST::PropertyNameAndValueList *properties = objectLiteral->properties;
-            visitProperties(properties);
-            m_foundTestCase = false;
-            return true;
-        } else {
-            return false;
-        }
-    }
-
-    void visitProperties(QmlJS::AST::PropertyNameAndValueList *properties)
-    {
-        if (!properties)
-            return;
-
-        m_testCode->clearTestFunctions();
-        while (properties) {
-            if (properties->name->kind == QmlJS::AST::Node::Kind_IdentifierPropertyName) {
-                QmlJS::AST::IdentifierPropertyName *name =
-                    static_cast<QmlJS::AST::IdentifierPropertyName*>(properties->name);
-                const QString &nameString = name->id.toString();
-                if (properties->value->kind == QmlJS::AST::Node::Kind_FunctionExpression) {
-                    int startLine = name->propertyNameToken.startLine;
-                    int start = name->propertyNameToken.offset;
-                    int end =
-                        static_cast<QmlJS::AST::FunctionExpression*>(properties->value)->rbraceToken.offset;
-                    m_testCode->processFunction(nameString, startLine, start, end);
-                }
-            }
-            properties = properties->next;
-        }
-    }
-    bool m_foundTestCase;
-    TestCode *m_testCode;
-};
-
-class UnitTestCodeSync : protected CPlusPlus::SymbolVisitor
-{
-    TestCode *m_testCode;
-    CPlusPlus::Document::Ptr m_doc;
-    CPlusPlus::Snapshot m_snapshot;
-    QSet<QByteArray> m_virtualMethods;
-    QString m_path;
-
-public:
-    UnitTestCodeSync(TestCode *tc, CPlusPlus::Document::Ptr doc, const CPlusPlus::Snapshot &snapshot) :
-        m_testCode(tc),
-        m_doc(doc),
-        m_snapshot(snapshot),
-        m_path(QFileInfo(doc->fileName()).absolutePath())
-    {
-        QSet<CPlusPlus::Namespace *> processed;
-        process(doc, &processed);
-    }
-
-    const QSet<QByteArray> &testFunctions() const
-    {
-        return m_virtualMethods;
-    }
-
-protected:
-    void process(CPlusPlus::Document::Ptr doc, QSet<CPlusPlus::Namespace *> *processed)
-    {
-        if (!doc) {
-            return;
-        } else if (!processed->contains(doc->globalNamespace())) {
-            processed->insert(doc->globalNamespace());
-
-             foreach (const CPlusPlus::Document::Include &i, doc->includes()) {
-                 if (QFileInfo(i.fileName()).absolutePath() == m_path)
-                     process(m_snapshot.document(i.fileName()), processed);
-             }
-
-            accept(doc->globalNamespace());
-        }
-    }
-
-    virtual bool visit(CPlusPlus::Function *symbol)
-    {
-        if (symbol->name()) {
-            const CPlusPlus::QualifiedNameId *qn = symbol->name()->asQualifiedNameId();
-            if (qn && qn->base() && qn->base()->identifier() && qn->name() && qn->name()->identifier()) {
-                QString name = QString::fromLatin1("%1::%2").arg(qn->base()->identifier()->chars())
-                    .arg(qn->name()->identifier()->chars());
-                if (m_knownTestFunctions.contains(name))
-                    m_testCode->processFunction(QString(symbol->name()->identifier()->chars()),
-                        symbol->line(), symbol->startOffset(), symbol->endOffset());
-            }
-        }
-        return true;
-    }
-
-    virtual bool visit(CPlusPlus::Class *symbol)
-    {
-        if (symbol->name() && symbol->name()->identifier()) {
-            QString className = QString(symbol->name()->identifier()->chars());
-            if (className != m_testCode->m_testCase) {
-                if (!m_testCode->m_testCase.isEmpty())
-                    return true;
-            }
-            for (CPlusPlus::Scope::iterator it = symbol->firstMember(); it != symbol->lastMember(); ++it) {
-                CPlusPlus::Symbol *member = *it;
-                CPlusPlus::Function *fun = member->type()->asFunctionType();
-                if (fun && fun->isSlot() && member && member->name() && member->name()->identifier()) {
-                    m_knownTestFunctions.append(className + QLatin1String("::")
-                        + QString(member->name()->identifier()->chars()));
-                    m_testCode->processFunction(QString(member->name()->identifier()->chars()),
-                        fun->line(), fun->startOffset(), fun->endOffset());
-                }
-            }
-        }
-        return true;
-    }
-
-    QStringList m_knownTestFunctions;
-};
-
-TestFunctionInfo::TestFunctionInfo() : QObject()
-{
-    reset();
-}
-
-TestFunctionInfo::~TestFunctionInfo()
-{
-}
-
-TestFunctionInfo::TestFunctionInfo(TestFunctionInfo &other) : QObject()
-{
-    m_functionName = other.m_functionName;
-    m_isManualTest = other.m_isManualTest;
-    m_testStart = other.m_testStart;
-    m_testStartLine = other.m_testStartLine;
-    m_testEnd = other.m_testEnd;
-    m_declStart = other.m_declStart;
-    m_declStartLine = other.m_declStartLine;
-    m_declEnd = other.m_declEnd;
-    m_testGroups = other.m_testGroups;
-}
-
-void TestFunctionInfo::reset()
-{
-    m_functionName.clear();
-    m_isManualTest = false;
-    m_testStart = m_testStartLine = m_testEnd = -1;
-    m_declStart = m_declStartLine = m_declEnd = -1;
-    m_testGroups.clear();
-}
-
-TestFunctionInfo& TestFunctionInfo::operator=(const TestFunctionInfo &other)
-{
-    m_functionName = other.m_functionName;
-    m_isManualTest = other.m_isManualTest;
-    m_testStart = other.m_testStart;
-    m_testStartLine = other.m_testStartLine;
-    m_testEnd = other.m_testEnd;
-    m_declStart = other.m_declStart;
-    m_declStartLine = other.m_declStartLine;
-    m_declEnd = other.m_declEnd;
-    m_testGroups = other.m_testGroups;
-    return *this;
-}
-
-bool TestFunctionInfo::validFunctionName(const QString &funcName)
-{
-    return (!funcName.isEmpty()
-        && funcName != QLatin1String("init")
-        && funcName != QLatin1String("initTestCase")
-        && funcName != QLatin1String("cleanup")
-        && funcName != QLatin1String("cleanupTestCase")
-        && !funcName.endsWith(QLatin1String("_data")));
-}
-
-TestCode::TestCode(const QString &basePath, const QString &externalPath, const QString &fileName) :
-    m_basePath(basePath),
-    m_externalPath(externalPath),
-    m_fileName(QDir::toNativeSeparators(fileName)),
-    m_testType(TypeUnknownTest),
-    m_hasChanged(false),
-    m_codeEditor(0),
-    m_fileInfo(new QFileInfo(m_fileName)),
-    m_initialized(false),
-    m_errored(false)
-{
-    QString baseName = baseFileName();
-    if (baseName.endsWith(QLatin1String(".qtt")))
-        m_testType = TypeSystemTest;
-    else if (baseName.startsWith(QLatin1String("prf_")))
-        m_testType = TypePerformanceTest;
-    else if (baseName.startsWith(QLatin1String("int_")))
-        m_testType = TypeIntegrationTest;
-    else if (baseName.endsWith(QLatin1String(".cpp")))
-        m_testType = TypeUnitTest;
-
-    connect(&m_parseTimer, SIGNAL(timeout()), this, SLOT(parseDocument()), Qt::DirectConnection);
-}
-
-TestCode::~TestCode()
-{
-    delete m_fileInfo;
-}
-
-bool TestCode::parseComments(const QString &contents)
-{
-    static QRegExp componentRegEx(QLatin1String("//TESTED_COMPONENT=(.*)"));
-    static QRegExp fileRegEx(QLatin1String("//TESTED_FILE=(.*)"));
-    static QRegExp classRegEx(QLatin1String("//TESTED_CLASS=(.*)"));
-    static QRegExp groupsRegEx(QLatin1String("\\\\groups\\s+(.*)"));
-
-    m_testedComponent.clear();
-    m_testedFile.clear();
-    m_testedClass.clear();
-    int offset = 0;
-
-    QStringList fileContents = contents.split(QLatin1Char('\n'));
-    foreach (const QString &line, fileContents) {
-        if (m_testedComponent.isEmpty() && line.contains(componentRegEx)) {
-            m_testedComponent = componentRegEx.cap(1);
-        } else if (m_testedFile.isEmpty() && line.contains(fileRegEx)) {
-            m_testedFile = fileRegEx.cap(1);
-        } else if (m_testedClass.isEmpty() && line.contains(classRegEx)) {
-            m_testedClass = classRegEx.cap(1);
-        } else if (line.contains(groupsRegEx)) {
-            TestFunctionInfo *tfi = findFunction(offset, true);
-            if (tfi)
-                tfi->setTestGroups(groupsRegEx.cap(1));
-        }
-        offset += line.length() + 1;
-    }
-
-    return true;
-}
-
-Core::IEditor *TestCode::editor()
-{
-    return m_codeEditor;
-}
-
-bool TestCode::openTestInEditor(const QString &testFunction)
-{
-    bool ok = true;
-    Core::ICore *core = Core::ICore::instance();
-    Core::EditorManager *em = core->editorManager();
-    Core::IEditor *edit = em->openEditor(actualFileName());
-
-    if (m_codeEditor && m_codeEditor != edit) {
-        m_codeEditor = 0;
-    }
-
-    if (!m_codeEditor) {
-        if (!edit)
-            return false;
-
-        m_codeEditor = qobject_cast<TextEditor::BaseTextEditor*>(edit);
-        if (m_codeEditor) {
-            if (m_fileName.endsWith(QLatin1String(".qtt"))) {
-                connect(edit, SIGNAL(contextHelpIdRequested(TextEditor::ITextEditor*,int)),
-                    this, SLOT(onContextHelpIdRequested(TextEditor::ITextEditor*,int)));
-                m_codeEditor->setContextHelpId(QLatin1String("QtUiTest Manual"));
-            }
-        }
-
-        m_hasChanged = false;
-    }
-
-    if (!testFunction.isEmpty()) {
-        TestFunctionInfo *functionInfo = findFunction(testFunction);
-        if (functionInfo) {
-            if (m_testType == TypeSystemTest)
-                m_codeEditor->setCursorPosition(functionInfo->testStart());
-            else
-                gotoLine(functionInfo->testStartLine());
-        }
-    }
-
-    if (m_errored) {
-        // Only System Tests can be errored right now...
-        QmlJS::DiagnosticMessage msg = m_qmlJSDoc->diagnosticMessages().first();
-        m_codeEditor->setCursorPosition(msg.loc.offset);
-    }
-
-    return ok;
-}
-
-/*!
-    Returns TRUE if the specified \a funcName is a function of the class.
-    funcName must be a normalized name, e.g. "myFunc(type var)"
-*/
-
-bool TestCode::testFunctionExists(QString funcName)
-{
-    for (int i = 0; i < m_testFunctions.count(); ++i) {
-        TestFunctionInfo *inf = m_testFunctions.at(i);
-        if (inf && inf->functionName() == funcName)
-            return true;
-    }
-    return false;
-}
-
-/*!
-    Returns the name of the Component that is tested.
-*/
-
-QString TestCode::testedComponent() const
-{
-    if (m_testedComponent.isEmpty())
-        return QLatin1String("other");
-    return m_testedComponent;
-}
-
-/*!
-    Returns the (header) filename that contains the declaration of the class_under_test.
-*/
-QString TestCode::testedFile() const
-{
-    return m_testedFile;
-}
-
-/*!
-    Returns the Class name of the class_under_test.
-*/
-QString TestCode::testedClass() const
-{
-    return m_testedClass;
-}
-
-/*!
-    Returns the testcase name as found in the opened header file or the headerfile that
-    is associated with the opened cpp file.
-*/
-QString TestCode::testCase() const
-{
-    return m_testCase;
-}
-
-void TestCode::clearTestFunctions()
-{
-    m_testFunctions.clear();
-}
-
-/*!
-    Returns the number of testfunctions found in the testcase.
-*/
-uint TestCode::testFunctionCount()
-{
-    return m_testFunctions.count();
-}
-
-/*!
-    Returns a pointer to the TestFunctionInfo instance that is associated to the
-    testfunction specified by \a index or null if the function doesn't exist. If the testfunction
-    is a manual test \a manualTest will return true;
-*/
-TestFunctionInfo* TestCode::testFunction(int index)
-{
-    if (index >= 0 && index < m_testFunctions.count())
-        return m_testFunctions.at(index);
-    return 0;
-}
-
-/*!
-    Returns \a info for the test function that starts on or after \a offset.
-    If \a next is specified it will return the Next function.
-*/
-TestFunctionInfo *TestCode::findFunction(int offset, bool next)
-{
-    if (offset < 0)
-        return 0;
-    TestFunctionInfo *found = 0;
-
-    for (int i = 0; i < m_testFunctions.count(); ++i) {
-        TestFunctionInfo *inf = m_testFunctions.at(i);
-        if (inf) {
-            if (next) {
-                if ((inf->testEnd() > offset) && (inf->testStart() > offset)) {
-                    if (!found || (found->testStart() > inf->testStart()))
-                        found = inf;
-                }
-            } else {
-                if (inf->testEnd() >= offset && inf->testStart() <= offset && inf->testStart() > 0)
-                    return inf;
-            }
-        }
-    }
-    return found;
-}
-
-/*!
-    Returns info for the test function named \a funcName.
-*/
-TestFunctionInfo *TestCode::findFunction(const QString &funcName)
-{
-    for (int i = 0; i < m_testFunctions.count(); ++i) {
-        TestFunctionInfo *inf = m_testFunctions.at(i);
-        if (inf && inf->functionName() == funcName)
-            return inf;
-    }
-    return 0;
-}
-
-/*!
-    Returns the test type.
-*/
-TestCode::TestType TestCode::testType() const
-{
-    return m_testType;
-}
-
-QString TestCode::testTypeString() const
-{
-    QString ret;
-    switch (m_testType) {
-    case TypeUnitTest:
-        ret = QLatin1String("Unit");
-        break;
-    case TypeIntegrationTest:
-        ret = QLatin1String("Integration");
-        break;
-    case TypePerformanceTest:
-        ret = QLatin1String("Performance");
-        break;
-    case TypeSystemTest:
-        ret = QLatin1String("System");
-        break;
-    default:
-        ret = QLatin1String("Unknown");
-        break;
-    }
-    return ret;
-}
-
-void TestCode::setDocument(QmlJS::Document::Ptr doc)
-{
-    if (m_qmlJSDoc)
-        m_qmlJSDoc.clear();
-
-    m_qmlJSDoc = doc;
-    if (m_qmlJSDoc) {
-        m_parseTimer.stop();
-        m_parseTimer.setSingleShot(true);
-        m_parseTimer.start(1000);
-    }
-}
-
-void TestCode::setDocument(CPlusPlus::Document::Ptr doc)
-{
-    if (m_cppDoc)
-        m_cppDoc.clear();
-
-    m_cppDoc = doc;
-    if (m_cppDoc) {
-        m_parseTimer.stop();
-        m_parseTimer.setSingleShot(true);
-        m_parseTimer.start(1000);
-    }
-}
-
-bool tfLt(const TestFunctionInfo *a, const TestFunctionInfo *b)
-{
-    return a->testStart() < b->testStart();
-}
-
-void TestCode::parseDocument()
-{
-    QString contents;
-    if (m_codeEditor) {
-        contents = m_codeEditor->contents();
-    } else {
-        if (m_testType == TypeSystemTest) {
-            contents = m_qmlJSDoc->source();
-        } else {
-            QFile F(m_fileName);
-            if (F.open(QIODevice::ReadOnly)) {
-                QTextStream S(&F);
-                contents = S.readAll();
-                F.close();
-            } else {
-                return;
-            }
-        }
-    }
-
-    m_testCase.clear();
-
-    if (m_testType == TypeSystemTest) {
-        static QRegExp fileNameReg(QLatin1String(".*/(.*)/.*\\.qtt$"));
-        if (fileNameReg.indexIn(QDir::fromNativeSeparators(m_qmlJSDoc->fileName())) >= 0)
-            m_testCase = fileNameReg.cap(1);
-        SystemTestCodeSync sync(this);
-        sync(m_qmlJSDoc);
-        m_errored = false;
-        if (m_testFunctions.isEmpty() && !m_qmlJSDoc->diagnosticMessages().isEmpty())
-            m_errored = true;
-    } else {
-        // Determine the testcase class name
-        foreach (const CPlusPlus::Document::MacroUse &macro, m_cppDoc->macroUses()) {
-            QString macroName(macro.macro().name());
-            if (macro.isFunctionLike() && ((macroName == QLatin1String("QTEST_MAIN"))
-                || (macroName == QLatin1String("QTEST_APPLESS_MAIN")) || (macroName == QLatin1String("QTEST_NOOP_MAIN")))) {
-                int pos = macro.arguments()[0].position();
-                int length = macro.arguments()[0].length();
-                m_testCase = contents.mid(pos, length);
-                break;
-            }
-        }
-
-        clearTestFunctions();
-        const CPlusPlus::Snapshot snapshot =
-            CPlusPlus::CppModelManagerInterface::instance()->snapshot();
-        UnitTestCodeSync sync(this, m_cppDoc, snapshot);
-    }
-
-    parseComments(contents);
-    qStableSort(m_testFunctions.begin(), m_testFunctions.end(), tfLt);
-
-    m_initialized = true;
-
-    // TODO: only emit if something significant has changed
-    emit testChanged(this);
-}
-
-TestFunctionInfo *TestCode::currentTestFunction()
-{
-    if (m_codeEditor) {
-        int currentPos = m_codeEditor->position();
-        for (int i = 0; i < m_testFunctions.count(); ++i) {
-            TestFunctionInfo *inf = m_testFunctions.at(i);
-            if (inf && (inf->testStart() <= currentPos) && (inf->testEnd() >= currentPos))
-                return inf;
-        }
-    }
-    return 0;
-}
-
-QString TestCode::projectFileName()
-{
-    // Figure out what the pro file is.
-    QString srcPath = QDir::convertSeparators(m_fileInfo->absolutePath());
-    QDir D(srcPath);
-    QStringList files = D.entryList(QStringList(QLatin1String("*.pro")));
-    if (files.count() > 1) {
-        qDebug() << "CFAIL", "I am confused: Multiple .pro files (" + files.join(QString(QLatin1Char(',')))
-            + ") found in '" + srcPath + "'.";
-        return QString();
-    }
-
-    if (files.count() == 0)
-        return QString();
-
-    return QString(srcPath + QDir::separator() + files[0]);
-}
-
-QString TestCode::execFileName()
-{
-    QString proFile = projectFileName();
-    if (proFile.isEmpty())
-        return QString();
-
-    QFile F(proFile);
-    if (F.open(QFile::ReadOnly)) {
-        QTextStream S(&F);
-        while (!S.atEnd()) {
-            QString line = S.readLine();
-            if (line.contains(QLatin1String("TARGET"))) {
-                line = line.mid(line.indexOf(QLatin1Char('=')) + 1);
-                line = line.simplified();
-                if (line.contains(QLatin1String("$$TARGET"))) {
-                    QFileInfo inf(proFile);
-                    line.replace(QLatin1String("$$TARGET"),inf.baseName());
-                }
-                return line;
-            }
-        }
-    }
-    // behave same as qmake, if no TARGET set then fallback to a
-    //  name based on the .pro file name.
-    if (m_testType == TypeUnitTest){
-       QFileInfo fInfo(proFile);
-       return fInfo.baseName();
-    }
-
-    return QString();
-}
-
-
-// ***************************************************************************
-
-TestCollectionPrivate::TestCollectionPrivate() :
-    m_currentEditedTest(0),
-    m_qmlJSModelManager(0),
-    m_cppModelManager(0)
-{
-    QTimer::singleShot(0, this, SLOT(initModelManager()));
-}
-
-TestCollectionPrivate::~TestCollectionPrivate()
-{
-    removeAll();
-}
-
-void TestCollectionPrivate::initModelManager()
-{
-    m_qmlJSModelManager =
-        ExtensionSystem::PluginManager::instance()->getObject<QmlJS::ModelManagerInterface>();
-    if (m_qmlJSModelManager) {
-        connect(m_qmlJSModelManager, SIGNAL(documentUpdated(QmlJS::Document::Ptr)),
-            this, SLOT(onDocumentUpdated(QmlJS::Document::Ptr)));
-    }
-
-    m_cppModelManager = CPlusPlus::CppModelManagerInterface::instance();
-    if (m_cppModelManager) {
-        connect(m_cppModelManager, SIGNAL(documentUpdated(CPlusPlus::Document::Ptr)),
-            this, SLOT(onDocumentUpdated(CPlusPlus::Document::Ptr)));
-    }
-}
-
-void TestCollectionPrivate::onDocumentUpdated(QmlJS::Document::Ptr doc)
-{
-    TestCode *code;
-
-    if (!m_qttDocumentMap.contains(doc->fileName())) {
-        return;
-    }
-
-    if (!(code = m_qttDocumentMap[doc->fileName()])) {
-        // TODO: New file, need to confirm it's a .qtt first
-        code = findCode(doc->fileName(), m_currentScanRoot, m_currentExtraBase);
-    }
-
-    if (code)
-        code->setDocument(doc);
-}
-
-void TestCollectionPrivate::onDocumentUpdated(CPlusPlus::Document::Ptr doc)
-{
-    const CPlusPlus::Snapshot snapshot = m_cppModelManager->snapshot();
-    TestCode *code;
-
-    if (!m_cppDocumentMap.contains(doc->fileName())) {
-        // Don't care about this document unless it's a new test...
-        // TODO: Ensure that new tests get scanned...
-        return;
-    }
-
-    if (!(code = m_cppDocumentMap[doc->fileName()])) {
-        if (isUnitTestCase(doc, snapshot)) {
-            code = findCode(doc->fileName(), m_currentScanRoot, m_currentExtraBase);
-        }
-    }
-
-    if (code)
-        code->setDocument(doc);
-}
-
-bool TestCollectionPrivate::isUnitTestCase(const CPlusPlus::Document::Ptr &doc,
-    const CPlusPlus::Snapshot &snapshot)
-{
-    QStringList visited;
-    return isUnitTestCase(doc, snapshot, visited);
-}
-
-bool TestCollectionPrivate::isUnitTestCase(const CPlusPlus::Document::Ptr &doc,
-    const CPlusPlus::Snapshot &snapshot, QStringList &visited)
-{
-    // If a source file #includes QtTest/QTest, assume it is a testcase
-    foreach (const CPlusPlus::Document::Include &i, doc->includes()) {
-        if (i.fileName().contains(QLatin1String("QtTest")) || i.fileName().contains(QLatin1String("QTest")))
-            return true;
-
-        if (visited.contains(i.fileName()))
-            continue;
-
-        visited << i.fileName();
-
-        if (QFileInfo(i.fileName()).absolutePath() == QFileInfo(doc->fileName()).absolutePath()) {
-            CPlusPlus::Document::Ptr incDoc = snapshot.document(i.fileName());
-            if (incDoc && isUnitTestCase(incDoc, snapshot, visited))
-                return true;
-        }
-    }
-    return false;
-}
-
-void TestCollectionPrivate::removeAll()
-{
-    while (m_codeList.count() > 0)
-        delete m_codeList.takeFirst();
-
-    m_qttDocumentMap.clear();
-    m_cppDocumentMap.clear();
-}
-
-void TestCollectionPrivate::removeCode(const QString &fileName)
-{
-    TestCode *tmp;
-    for (int i = 0; i < m_codeList.count(); ++i) {
-        tmp = m_codeList.at(i);
-        if (tmp && tmp->actualFileName() == fileName) {
-            emit testRemoved(tmp);
-            delete m_codeList.takeAt(i);
-            return;
-        }
-    }
-}
-
-void TestCollectionPrivate::removePath(const QString &srcPath)
-{
-    if (srcPath.isEmpty() || m_codeList.count() <= 0)
-        return;
-
-    TestCode *tmp;
-    for (int i = m_codeList.count() - 1; i >= 0; --i) {
-        tmp = m_codeList.at(i);
-        if (tmp && tmp->actualFileName().startsWith(srcPath)) {
-            emit testRemoved(tmp);
-            delete m_codeList.takeAt(i);
-        }
-    }
-}
-
-void TestCollectionPrivate::addPath(const QString &srcPath)
-{
-    m_currentScanRoot = srcPath;
-    m_currentExtraBase.clear();
-    scanTests(srcPath);
-    emit changed();
-}
-
-void TestCollectionPrivate::addExtraPath(const QString &srcPath)
-{
-    m_currentExtraBase = srcPath;
-    scanTests(srcPath);
-    emit changed();
-}
-
-void TestCollectionPrivate::scanTests(const QString &suitePath)
-{
-    if (suitePath.isEmpty())
-        return;
-
-    QDir D(suitePath);
-    if (!D.exists())
-        return;
-
-    m_unitTestScanList.clear();
-    m_systemTestScanList.clear();
-
-    scanPotentialFiles(suitePath);
-
-    if (!m_systemTestScanList.isEmpty())
-        m_qmlJSModelManager->updateSourceFiles(m_systemTestScanList, true);
-    if (!m_unitTestScanList.isEmpty())
-        m_cppModelManager->updateSourceFiles(m_unitTestScanList);
-}
-
-void TestCollectionPrivate::scanPotentialFiles(const QString &suitePath)
-{
-    if (suitePath.isEmpty())
-        return;
-
-    QDir D(suitePath);
-    if (!D.exists())
-        return;
-
-    QFileInfoList qttTestFiles = D.entryInfoList(QStringList(QLatin1String("*.qtt")), QDir::Files);
-    foreach (const QFileInfo &qttTestFile, qttTestFiles) {
-        m_systemTestScanList.append(qttTestFile.absoluteFilePath());
-        m_qttDocumentMap[qttTestFile.absoluteFilePath()] = 0;
-    }
-
-    QFileInfoList cppTestFiles = D.entryInfoList(QStringList(QLatin1String("*.cpp")), QDir::Files);
-    const CPlusPlus::Snapshot snapshot = m_cppModelManager->snapshot();
-    foreach (const QFileInfo &cppTestFile, cppTestFiles) {
-        m_cppDocumentMap[cppTestFile.absoluteFilePath()] = 0;
-        if (snapshot.contains(cppTestFile.absoluteFilePath())) {
-            CPlusPlus::Document::Ptr doc = snapshot.find(cppTestFile.absoluteFilePath()).value();
-            onDocumentUpdated(doc);
-        } else {
-            m_unitTestScanList.append(cppTestFile.absoluteFilePath());
-        }
-    }
-
-    QStringList potentialSubdirs =
-        D.entryList(QStringList(QString(QLatin1Char('*'))), QDir::Dirs|QDir::NoDotAndDotDot);
-    foreach (const QString &dname, potentialSubdirs) {
-        // stop scanning subdirs if we've ended up in a testdata subdir
-        if (dname != QLatin1String("testdata"))
-            scanPotentialFiles(suitePath + QDir::separator() + dname);
-    }
-}
-
-TestCode *TestCollectionPrivate::currentEditedTest()
-{
-    return m_currentEditedTest;
-}
-
-void TestCollectionPrivate::setCurrentEditedTest(TestCode *code)
-{
-    m_currentEditedTest = code;
-}
-
-TestCode *TestCollectionPrivate::findCode(const QString &fileName, const QString &basePath,
-    const QString &extraPath)
-{
-    TestCode *tmp;
-    for (int i = 0; i < m_codeList.count(); ++i) {
-        tmp = m_codeList.at(i);
-        if (tmp && tmp->actualFileName() == fileName)
-            return tmp;
-    }
-
-    if (!basePath.isEmpty()) {
-        QFileInfo inf(fileName);
-        if (inf.exists() && inf.isFile()) {
-            tmp = new TestCode(basePath, extraPath, fileName);
-
-            if (m_cppDocumentMap[fileName])
-                delete m_cppDocumentMap[fileName];
-
-            if (fileName.endsWith(QLatin1String(".qtt"))) {
-                m_qttDocumentMap[fileName] = tmp;
-                m_qmlJSModelManager->updateSourceFiles(QStringList(fileName), true);
-            } else {
-                m_cppDocumentMap[fileName] = tmp;
-                if (!m_cppModelManager->snapshot().contains(fileName))
-                    m_cppModelManager->updateSourceFiles(QStringList(fileName));
-            }
-            if (tmp) {
-                m_codeList.append(tmp);
-                connect(tmp, SIGNAL(testChanged(TestCode*)), this, SIGNAL(testChanged(TestCode*)));
-                connect(tmp, SIGNAL(testRemoved(TestCode*)), this, SIGNAL(testRemoved(TestCode*)));
-
-                emit testChanged(tmp);
-                return tmp;
-            }
-        }
-    }
-
-    return 0;
-}
-
-TestCode *TestCollectionPrivate::findCodeByVisibleName(const QString &fileName, bool componentMode)
-{
-    TestCode *tmp;
-    for (int i = 0; i < m_codeList.count(); ++i) {
-        tmp = m_codeList.at(i);
-        if (tmp && tmp->visualFileName(componentMode) == fileName)
-            return tmp;
-    }
-    return 0;
-}
-
-TestCode *TestCollectionPrivate::findCodeByTestCaseName(const QString &testCaseName)
-{
-    TestCode *tmp;
-    for (int i = 0; i < m_codeList.count(); ++i) {
-        tmp = m_codeList.at(i);
-        if (tmp && tmp->testCase() == testCaseName)
-            return tmp;
-    }
-    return 0;
-}
-
-TestCode* TestCollectionPrivate::testCode(int index)
-{
-    if (index < m_codeList.count())
-        return m_codeList.at(index);
-    return 0;
-}
-
-int TestCollectionPrivate::count()
-{
-    return m_codeList.count();
-}
-
-QStringList TestCollectionPrivate::testFiles()
-{
-    QStringList ret;
-    TestCode *tmp;
-    for (int i = 0; i < m_codeList.count(); ++i) {
-        tmp = m_codeList.at(i);
-        if (tmp)
-            ret.append(tmp->actualFileName());
-    }
-    return ret;
-}
-
-QStringList TestCollectionPrivate::manualTests(const QString &startPath, bool componentMode)
-{
-    QStringList ret;
-    TestCode *tmp;
-    for (int i = 0; i < m_codeList.count(); ++i) {
-        tmp = m_codeList.at(i);
-        if (tmp && (startPath.isEmpty() || tmp->visualFileName(componentMode).startsWith(startPath))) {
-            for (uint j = 0; j < tmp->testFunctionCount(); ++j) {
-                TestFunctionInfo *inf = tmp->testFunction(j);
-                if (inf && inf->isManualTest()) {
-                    ret.append(tmp->testCase());
-                    ret.append(QLatin1String("::"));
-                    ret.append(inf->functionName());
-                }
-            }
-        }
-    }
-    return ret;
-}
-
-// ***************************************************************************
-
-TestCollectionPrivate *TestCollection::d = 0;
-int TestCollection::m_refCount = 0;
-
-TestCollection::TestCollection()
-{
-    if (m_refCount++ == 0) {
-        d = new TestCollectionPrivate();
-    }
-    connect(d, SIGNAL(changed()), this, SIGNAL(changed()));
-    connect(d, SIGNAL(testChanged(TestCode*)), this, SIGNAL(testChanged(TestCode*)));
-    connect(d, SIGNAL(testRemoved(TestCode*)), this, SIGNAL(testRemoved(TestCode*)));
-}
-
-TestCollection::~TestCollection()
-{
-    disconnect(d, SIGNAL(changed()), this, SIGNAL(changed()));
-    disconnect(d, SIGNAL(testChanged(TestCode*)), this, SIGNAL(testChanged(TestCode*)));
-    disconnect(d, SIGNAL(testRemoved(TestCode*)), this, SIGNAL(testRemoved(TestCode*)));
-
-    if (--m_refCount == 0) {
-        delete d;
-        d = 0;
-    }
-}
-
-TestCode *TestCollection::findCode(const QString &fileName, const QString &basePath,
-    const QString &extraPath)
-{
-    Q_ASSERT(d);
-    return d->findCode(fileName, basePath, extraPath);
-}
-
-TestCode *TestCollection::findCodeByVisibleName(const QString &fileName, bool componentMode)
-{
-    Q_ASSERT(d);
-    return d->findCodeByVisibleName(fileName, componentMode);
-}
-
-TestCode *TestCollection::findCodeByTestCaseName(const QString &testCaseName)
-{
-    Q_ASSERT(d);
-    return d->findCodeByTestCaseName(testCaseName);
-}
-
-TestCode* TestCollection::testCode(int index)
-{
-    Q_ASSERT(d);
-    return d->testCode(index);
-}
-
-int TestCollection::count()
-{
-    Q_ASSERT(d);
-    return d->count();
-}
-
-void TestCollection::addPath(const QString &srcPath)
-{
-    Q_ASSERT(d);
-    d->addPath(srcPath);
-}
-
-void TestCollection::addExtraPath(const QString &srcPath)
-{
-    Q_ASSERT(d);
-    d->addExtraPath(srcPath);
-}
-
-void TestCollection::removePath(const QString &srcPath)
-{
-    Q_ASSERT(d);
-    d->removePath(srcPath);
-}
-
-void TestCollection::removeAll()
-{
-    Q_ASSERT(d);
-    d->removeAll();
-}
-
-QStringList TestCollection::testFiles()
-{
-    Q_ASSERT(d);
-    return d->testFiles();
-}
-
-QStringList TestCollection::manualTests(const QString &startPath, bool componentMode)
-{
-    Q_ASSERT(d);
-    return d->manualTests(startPath, componentMode);
-}
-
-TestCode *TestCollection::currentEditedTest()
-{
-    Q_ASSERT(d);
-    return d->currentEditedTest();
-}
-
-void TestCollection::setCurrentEditedTest(TestCode *code)
-{
-    Q_ASSERT(d);
-    d->setCurrentEditedTest(code);
-}
-
-// ****************************************************************************
-
-TestFunctionInfo *TestCode::processFunction(const QString &name, int startLine, int start, int end)
-{
-    TestFunctionInfo *tfi = 0;
-    if (validFunctionName(name)) {
-        tfi = findFunction(name);
-
-        if (!tfi) {
-            tfi = new TestFunctionInfo();
-            m_testFunctions.append(tfi);
-            tfi->setDeclarationStartLine(startLine);
-            tfi->setDeclarationStart(start);
-            tfi->setDeclarationEnd(end);
-        }
-
-        tfi->setTestStartLine(startLine);
-        tfi->setTestStart(start);
-        tfi->setTestEnd(end);
-        tfi->setFunctionName(name);
-    }
-    return tfi;
-}
-
-void TestCode::setManualTest(int offset)
-{
-    if (TestFunctionInfo *functionInfo = findFunction(offset, false)) {
-        functionInfo->setManualTest(true);
-    }
-}
-
-bool TestCode::validFunctionName(const QString &funcName)
-{
-    if (funcName.isEmpty() || funcName == QLatin1String("initTestCase") || funcName == QLatin1String("init")
-        || funcName == QLatin1String("cleanupTestCase") || funcName == QLatin1String("cleanup") || funcName.endsWith(QLatin1String("_data"))) {
-        return false;
-    }
-    return true;
-}
-
-bool TestCode::gotoLine(int lineNumber)
-{
-    if (lineNumber >= 0 && m_codeEditor) {
-        m_codeEditor->gotoLine(lineNumber);
-        return true;
-    }
-    return false;
-}
-
-/*!
-    Adds a new testfunction \a newFuncName to the class.
-*/
-void TestCode::addTestFunction(const QString &newFuncName, const QString &newFuncHeader,
-    bool insertAtCursorPosition)
-{
-    Q_UNUSED(newFuncHeader);
-
-    if (!m_codeEditor) return;
-
-    if (m_testType == TypeSystemTest) {
-        int entryPoint = 0;
-        if (!insertAtCursorPosition) {
-            // Insert after last test function
-            if (!m_testFunctions.isEmpty())
-                entryPoint = m_testFunctions.last()->testEnd() + 1;
-        } else {
-            if (m_testFunctions.isEmpty()) {
-                entryPoint = m_codeEditor->position();
-            } else {
-                // Insert after test function at cursor (or at end if not in function)
-                entryPoint = m_testFunctions.last()->testEnd() + 1;
-                int pos = m_codeEditor->position();
-                foreach (TestFunctionInfo *func, m_testFunctions) {
-                    if ((func->testStart() <= pos && func->testEnd() >= pos) ||
-                        func == m_testFunctions.last()) {
-                        entryPoint = func->testEnd()+1;
-                        break;
-                    }
-                }
-            }
-        }
-
-        QString insertString =
-            QString::fromLatin1("\n\n    %1_data:\n    {\n    },\n\n    %1: function()\n    {\n    }")
-            .arg(newFuncName);
-
-        m_codeEditor->setCursorPosition(entryPoint);
-        int lineLength = m_codeEditor->position(TextEditor::ITextEditor::EndOfLine)
-            - m_codeEditor->position();
-        QString lineBefore = m_codeEditor->textAt(m_codeEditor->position(), lineLength).simplified();
-        m_codeEditor->setCursorPosition(m_codeEditor->position(TextEditor::ITextEditor::EndOfLine));
-
-        if (!lineBefore.endsWith(QLatin1Char(',')) && !m_testFunctions.isEmpty())
-            insertString.prepend(QLatin1Char(','));
-        else
-            insertString.append(QLatin1Char(','));
-
-        m_codeEditor->insert(insertString);
-    } else {
-        unsigned entryLine;
-        unsigned declLine;
-        if (!insertAtCursorPosition) {
-            // Insert after last test function
-            if (!m_testFunctions.isEmpty())
-                m_cppDoc->translationUnit()->getPosition(m_testFunctions.last()->testEnd(), &entryLine);
-            m_cppDoc->translationUnit()->getPosition(m_testFunctions.last()->declarationEnd(),
-                &declLine);
-        } else {
-            if (m_testFunctions.isEmpty()) {
-                entryLine = m_codeEditor->currentLine();
-                declLine = entryLine; // FIXME where?
-            } else {
-                // Insert after test function at cursor (or at end if not in function)
-                m_cppDoc->translationUnit()->getPosition(m_testFunctions.last()->testEnd(),
-                    &entryLine);
-                m_cppDoc->translationUnit()->getPosition(m_testFunctions.last()->declarationEnd(),
-                    &declLine);
-                unsigned posLine = m_codeEditor->currentLine();
-                unsigned funcEndLine;
-                foreach (TestFunctionInfo *func, m_testFunctions) {
-                    if (func->testStartLine() <= m_codeEditor->currentLine()) {
-                        m_cppDoc->translationUnit()->getPosition(func->testEnd(), &funcEndLine);
-                        if ((funcEndLine >= posLine) || func == m_testFunctions.last()) {
-                            entryLine = funcEndLine;
-                            m_cppDoc->translationUnit()->getPosition(func->declarationEnd(),
-                                &declLine);
-                            break;
-                        }
-                    }
-                }
-            }
-        }
-        ++entryLine;
-        ++declLine;
-
-        QString insertString =
-            QString("\nvoid %1::%2_data()\n{\n}\n\nvoid %1::%2()\n{\n}\n").arg(m_testCase)
-            .arg(newFuncName);
-        m_codeEditor->gotoLine(entryLine);
-        m_codeEditor->insert(insertString);
-
-        //FIXME: What happens if test function is added in class declaration?
-
-        m_codeEditor->gotoLine(declLine);
-        m_codeEditor->setCursorPosition(m_codeEditor->position(TextEditor::ITextEditor::StartOfLine));
-        insertString = QString::fromLatin1("    void %1_data();\n    void %1();\n").arg(newFuncName);
-        m_codeEditor->insert(insertString);
-        m_codeEditor->gotoLine(entryLine + 2);
-    }
-}
-
-void TestCode::save(bool force)
-{
-    Q_UNUSED(force);
-    if (m_codeEditor && m_codeEditor->file()) {
-        Core::FileManager *fm = Core::ICore::instance()->fileManager();
-        QList<Core::IFile *> files;
-        files << m_codeEditor->file();
-        fm->saveModifiedFilesSilently(files);
-    }
-}
-
-QString TestCode::visualBasePath()
-{
-    return m_basePath;
-}
-
-QString TestCode::actualBasePath()
-{
-    if (!m_externalPath.isEmpty())
-        return m_externalPath;
-    return m_basePath;
-}
-
-QString TestCode::fullVisualSuitePath(bool componentViewMode) const
-{
-    if (m_fileName.isEmpty())
-        return QString();
-
-    if (componentViewMode)
-        return QDir::convertSeparators(m_basePath + QDir::separator() + testedComponent());
-
-    if (!m_fileName.endsWith(QLatin1String(".cpp")) && !m_fileName.endsWith(QLatin1String(".qtt")))
-        return m_fileName;
-
-    QString fn = m_fileName;
-    if (!m_externalPath.isEmpty() && fn.startsWith(m_externalPath)) {
-        fn.remove(m_externalPath);
-        fn = m_basePath + QDir::separator() + QLatin1String("tests") + QDir::separator() + QLatin1String("external") + fn;
-    }
-
-    QFileInfo inf(fn);
-    fn = inf.absolutePath(); // try to remove file name
-
-    // remove directory if it's the same as the filename
-    if (fn.endsWith(QDir::separator() + inf.baseName()))
-        fn = fn.left(fn.length() - (inf.baseName().length() + 1));
-
-    // remove '/tests" if that's on the end
-    QString eolstr = QString(QDir::separator()) + QLatin1String("tests");
-    if (fn.endsWith(eolstr)) {
-        int pos = fn.lastIndexOf(eolstr);
-        if (pos) fn = fn.left(pos);
-    }
-    return QDir::convertSeparators(fn);
-}
-
-/*!
-    Returns the full filename as it is shown in the Test Selector.
-*/
-
-QString TestCode::visualFileName(bool componentViewMode) const
-{
-    return fullVisualSuitePath(componentViewMode) + QDir::separator() + baseFileName();
-}
-
-/*
-  Returns the file name without a path, eg: tst_foobar.cpp
-*/
-QString TestCode::baseFileName() const
-{
-    return m_fileInfo->fileName();
-}
-
-/*!
-    Returns the currently opened filename.
-*/
-QString TestCode::actualFileName() const
-{
-    return m_fileName;
-}
-
-QString TestCode::targetFileName(const QString &buildPath) const
-{
-    QString fn = m_fileName;
-    if (!m_externalPath.isEmpty() && fn.startsWith(m_externalPath)) {
-        fn.remove(m_externalPath);
-        fn = m_basePath + QDir::separator() + QLatin1String("tests") + QDir::separator()
-            + QLatin1String("external") + QDir::separator() + fn;
-    }
-    fn.remove(m_basePath);
-
-    return QDir::convertSeparators(buildPath + fn);
-}
-
-void TestCode::onContextHelpIdRequested(TextEditor::ITextEditor *editor, int position)
-{
-#ifdef QTTEST_PLUGIN_LEAN
-    Q_UNUSED(editor);
-    Q_UNUSED(position);
-#else
-    int charsBefore = 32;
-    if (position < charsBefore)
-        charsBefore = position;
-
-    QString text = editor->textAt(position - charsBefore, 64);
-    int start = 0;
-    int end = text.length();
-
-    for (int i = charsBefore; i; --i) {
-        if (!text[i].isLetter()) {
-            start = i + 1;
-            break;
-        }
-    }
-    for (int i = charsBefore; i < end; ++i) {
-        if (!text[i].isLetter()) {
-            end = i;
-            break;
-        }
-    }
-
-    static QStringList qstSlots;
-    if (qstSlots.isEmpty()) {
-        for (int i = 0; i < QSystemTest::staticMetaObject.methodCount(); ++i) {
-            QString slot(QSystemTest::staticMetaObject.method(i).signature());
-            if (!qstSlots.contains(slot))
-                qstSlots << slot.left(slot.indexOf('('));
-        }
-        qstSlots << QLatin1String("compare") << QLatin1String("verify") << QLatin1String("waitFor")
-            << QLatin1String("expect") << QLatin1String("fail") << QLatin1String("tabBar") << QLatin1String("menuBar");
-    }
-
-    if (start < end) {
-        QString function = text.mid(start, end - start);
-        if (qstSlots.contains(function)) {
-            m_codeEditor->setContextHelpId(QString::fromLatin1("QSystemTest::%1").arg(function));
-            return;
-        }
-    }
-#endif
-
-    m_codeEditor->setContextHelpId(QLatin1String("QtUiTest Manual"));
-}
-
-bool TestCode::hasUnsavedChanges() const
-{
-    if (m_codeEditor && m_codeEditor->file()) {
-        return m_codeEditor->file()->isModified();
-    }
-    return false;
-}
-
-bool TestCode::isInitialized() const
-{
-    return m_initialized;
-}
-
-bool TestCode::isErrored() const
-{
-    return m_errored;
-}
diff --git a/src/plugins/qttest/testcode.h b/src/plugins/qttest/testcode.h
deleted file mode 100644
index 417a3b9543f71ce1372b17264562ffe937cfca8d..0000000000000000000000000000000000000000
--- a/src/plugins/qttest/testcode.h
+++ /dev/null
@@ -1,311 +0,0 @@
-/**************************************************************************
-**
-** This file is part of Qt Creator
-**
-** Copyright (c) 2011 Nokia Corporation and/or its subsidiary(-ies).
-**
-** Contact: Nokia Corporation (info@qt.nokia.com)
-**
-**
-** GNU Lesser General Public License Usage
-**
-** This file may be used under the terms of the GNU Lesser General Public
-** License version 2.1 as published by the Free Software Foundation and
-** appearing in the file LICENSE.LGPL included in the packaging of this file.
-** Please review the following information to ensure the GNU Lesser General
-** Public License version 2.1 requirements will be met:
-** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Nokia gives you certain additional
-** rights. These rights are described in the Nokia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** Other Usage
-**
-** Alternatively, this file may be used in accordance with the terms and
-** conditions contained in a signed written agreement between you and Nokia.
-**
-** If you have questions regarding the use of this file, please contact
-** Nokia at info@qt.nokia.com.
-**
-**************************************************************************/
-
-#ifndef TESTCODE_H
-#define TESTCODE_H
-
-#include <qmljs/qmljsdocument.h>
-#include <cplusplus/CppDocument.h>
-
-#include <QDateTime>
-#include <QPointer>
-#include <QTimer>
-
-class TestCollectionPrivate;
-
-namespace Core {
-    class IEditor;
-}
-
-namespace TextEditor {
-class ITextEditor;
-class BaseTextEditor;
-}
-
-namespace QmlJS {
-class ModelManagerInterface;
-}
-
-namespace CPlusPlus {
-    class CppModelManagerInterface;
-}
-
-class SystemTestCodeSync;
-
-class TestFunctionInfo : public QObject
-{
-    Q_OBJECT
-public:
-    TestFunctionInfo();
-    TestFunctionInfo(TestFunctionInfo &other);
-    virtual ~TestFunctionInfo();
-    void reset();
-
-    static bool validFunctionName(const QString &funcName);
-    bool needsRevision();
-
-    TestFunctionInfo& operator=(const TestFunctionInfo &other);
-
-    void setFunctionName(const QString &nm) { m_functionName = nm; }
-    QString functionName() const { return m_functionName; }
-
-    void setManualTest(bool isManual) { m_isManualTest = isManual; }
-    bool isManualTest() const { return m_isManualTest; }
-
-    void setTestStart(int s) { m_testStart = s; }
-    int testStart() const { return m_testStart; }
-
-    void setTestStartLine(int s) { m_testStartLine = s; }
-    int testStartLine() const { return m_testStartLine; }
-
-    void setTestEnd(int e) { m_testEnd = e; }
-    int testEnd() const { return m_testEnd; }
-
-    void setDeclarationStart(int s) { m_declStart = s; }
-    int declarationStart() const { return m_declStart; }
-
-    void setDeclarationStartLine(int s) { m_declStartLine = s; }
-    int declarationStartLine() const { return m_declStartLine; }
-
-    void setDeclarationEnd(int e) { m_declEnd = e; }
-    int declarationEnd() const { return m_declEnd; }
-
-    void setTestGroups(const QString &grps) { m_testGroups = grps; }
-    QString testGroups() const { return m_testGroups; }
-
-    void processDocBlock(const QStringList &docBlock);
-
-private:
-    QString m_functionName;
-    bool m_isManualTest;
-    int m_testStart;
-    int m_testStartLine;
-    int m_testEnd;
-    int m_declStart;
-    int m_declStartLine;
-    int m_declEnd;
-    QString m_testGroups;
-};
-
-class TestCode : public QObject
-{
-    Q_OBJECT
-public:
-    enum TestType {
-        TypeUnknownTest     = 0x1,
-        TypeUnitTest        = 0x2,
-        TypeIntegrationTest = 0x4,
-        TypePerformanceTest = 0x8,
-        TypeSystemTest      = 0x10
-    };
-    Q_DECLARE_FLAGS(TestTypes, TestType)
-
-    TestCode(const QString &basePath, const QString &extraPath, const QString &fileName);
-    virtual ~TestCode();
-
-    uint testFunctionCount();
-    void clearTestFunctions();
-    TestFunctionInfo *currentTestFunction();
-    TestFunctionInfo *testFunction(int index);
-    TestFunctionInfo *findFunction(int line, bool next);
-    TestFunctionInfo *findFunction(const QString &funcName);
-    bool testFunctionExists(QString funcName);
-    bool requirementIsTested(const QString &reqID);
-
-    QString visualBasePath();
-    QString actualBasePath();
-    QString externalBasePath();
-    QString fullVisualSuitePath(bool componentViewMode) const;
-
-    QString baseFileName() const; // just the file name part
-    QString targetFileName(const QString &buildPath) const;
-    QString actualFileName() const;
-    QString visualFileName(bool componentViewMode) const;
-
-    QString projectFileName();
-    QString execFileName();
-
-    QString testedComponent() const;
-    QString testedClass() const;
-    QString testedFile() const;
-    QString testCase() const;
-    TestType testType() const;
-    QString testTypeString() const;
-
-    void save(bool force = false);
-    bool openTestInEditor(const QString &testFunction);
-    Core::IEditor *editor();
-
-    bool gotoLine(int lineNumber);
-    void addTestFunction(const QString &newFuncName, const QString &newFuncHeader,
-        bool insertAtCursorPosition);
-    bool hasUnsavedChanges() const;
-    bool isInitialized() const;
-    bool isErrored() const;
-    void setDocument(QmlJS::Document::Ptr doc);
-    void setDocument(CPlusPlus::Document::Ptr doc);
-
-signals:
-    void testChanged(TestCode *testCode);
-    void testRemoved(TestCode *testCode);
-    void changed();
-
-public slots:
-    void onContextHelpIdRequested(TextEditor::ITextEditor *editor, int position);
-    void parseDocument();
-
-private:
-    friend class SystemTestCodeSync;
-    friend class UnitTestCodeSync;
-
-    bool parseComments(const QString&);
-    TestFunctionInfo *processFunction(const QString&, int, int, int);
-    void setManualTest(int);
-    static bool validFunctionName(const QString &funcName);
-
-    QString m_testedComponent;
-    QString m_testedFile;
-    QString m_testedClass;
-    QString m_testCase;
-    QString m_basePath;
-    QString m_externalPath;
-    QString m_fileName;
-
-    TestType m_testType;
-    QList<TestFunctionInfo*> m_testFunctions;
-    bool m_hasChanged;
-    QPointer<TextEditor::BaseTextEditor> m_codeEditor;
-    QTimer m_editTimer;
-    QDateTime m_lastModified;
-    QFileInfo *m_fileInfo;
-    QmlJS::Document::Ptr m_qmlJSDoc;
-    CPlusPlus::Document::Ptr m_cppDoc;
-    QTimer m_parseTimer;
-    bool m_initialized;
-    bool m_errored;
-};
-
-class TestCollection : public QObject
-{
-    Q_OBJECT
-public:
-    TestCollection();
-    virtual ~TestCollection();
-
-    TestCode *currentEditedTest();
-    void setCurrentEditedTest(TestCode *code);
-
-    TestCode *findCode(const QString &fileName, const QString &basePath, const QString &extraPath);
-    TestCode *findCodeByVisibleName(const QString &fileName, bool componentMode);
-    TestCode *findCodeByTestCaseName(const QString &testCaseName);
-
-    TestCode *testCode(int index);
-    int count();
-    void removeAll();
-
-    void addPath(const QString &srcPath);
-    void addExtraPath(const QString &srcPath);
-    void removePath(const QString &srcPath);
-
-    QStringList testFiles();
-    QStringList manualTests(const QString &startPath, bool componentMode);
-
-signals:
-    void testChanged(TestCode *testCode);
-    void testRemoved(TestCode *testCode);
-    void changed();
-
-private:
-    static TestCollectionPrivate *d;
-    static int m_refCount;
-};
-
-
-class TestCollectionPrivate : public QObject
-{
-    Q_OBJECT
-public:
-    TestCollectionPrivate();
-    virtual ~TestCollectionPrivate();
-
-    TestCode *currentEditedTest();
-    void setCurrentEditedTest(TestCode *code);
-
-    TestCode *findCode(const QString &fileName, const QString &basePath, const QString &extraPath);
-    TestCode *findCodeByVisibleName(const QString &fileName, bool componentMode);
-    TestCode *findCodeByTestCaseName(const QString &testCaseName);
-
-    void removeCode(const QString &fileName);
-    TestCode *testCode(int index);
-    int count();
-
-    QStringList testFiles();
-    QStringList manualTests(const QString &startPath, bool componentMode);
-
-public slots:
-    void addPath(const QString &srcPath);
-    void addExtraPath(const QString &srcPath);
-    void removePath(const QString &srcPath);
-    void removeAll();
-    void initModelManager();
-    void onDocumentUpdated(QmlJS::Document::Ptr doc);
-    void onDocumentUpdated(CPlusPlus::Document::Ptr doc);
-
-private:
-    void scanTests(const QString &suitePath);
-    void scanPotentialFiles(const QString &suitePath);
-    bool isUnitTestCase(const CPlusPlus::Document::Ptr &doc, const CPlusPlus::Snapshot &snapshot);
-    bool isUnitTestCase(const CPlusPlus::Document::Ptr &doc,
-        const CPlusPlus::Snapshot &snapshot, QStringList &visited);
-
-signals:
-    void testChanged(TestCode *testCode);
-    void testRemoved(TestCode *testCode);
-    void changed();
-
-private:
-    QString m_currentScanRoot;
-    QString m_currentExtraBase;
-    QList<TestCode*> m_codeList;
-    QPointer<TestCode> m_currentEditedTest;
-
-    QmlJS::ModelManagerInterface *m_qmlJSModelManager;
-    CPlusPlus::CppModelManagerInterface *m_cppModelManager;
-
-    QMap<QString, TestCode*> m_qttDocumentMap;
-    QMap<QString, TestCode*> m_cppDocumentMap;
-
-    QList<QString> m_unitTestScanList;
-    QList<QString> m_systemTestScanList;
-};
-
-#endif  // TESTCODE_H
diff --git a/src/plugins/qttest/testconfigurations.cpp b/src/plugins/qttest/testconfigurations.cpp
deleted file mode 100644
index 0fa1105ac970bfc11e8d033b96a822be365d9c97..0000000000000000000000000000000000000000
--- a/src/plugins/qttest/testconfigurations.cpp
+++ /dev/null
@@ -1,1146 +0,0 @@
-/**************************************************************************
-**
-** This file is part of Qt Creator
-**
-** Copyright (c) 2011 Nokia Corporation and/or its subsidiary(-ies).
-**
-** Contact: Nokia Corporation (info@qt.nokia.com)
-**
-**
-** GNU Lesser General Public License Usage
-**
-** This file may be used under the terms of the GNU Lesser General Public
-** License version 2.1 as published by the Free Software Foundation and
-** appearing in the file LICENSE.LGPL included in the packaging of this file.
-** Please review the following information to ensure the GNU Lesser General
-** Public License version 2.1 requirements will be met:
-** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Nokia gives you certain additional
-** rights. These rights are described in the Nokia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** Other Usage
-**
-** Alternatively, this file may be used in accordance with the terms and
-** conditions contained in a signed written agreement between you and Nokia.
-**
-** If you have questions regarding the use of this file, please contact
-** Nokia at info@qt.nokia.com.
-**
-**************************************************************************/
-
-#include "testconfigurations.h"
-#include "qsystem.h"
-#include "testsettings.h"
-#include "testcode.h"
-#include "testcontextmenu.h"
-
-#include <coreplugin/imode.h>
-#include <coreplugin/icore.h>
-#include <coreplugin/modemanager.h>
-#include <projectexplorer/buildconfiguration.h>
-#include <projectexplorer/runconfiguration.h>
-#include <projectexplorer/customexecutablerunconfiguration.h>
-#include <projectexplorer/target.h>
-#include <remotelinux/linuxdeviceconfigurations.h>
-#include <remotelinux/remotelinuxrunconfiguration.h>
-#include <qt4projectmanager/qt-desktop/qt4runconfiguration.h>
-#include <qt4projectmanager/qt4buildconfiguration.h>
-
-#include <QFile>
-#include <QTextStream>
-#include <QDir>
-#include <QProcess>
-#include <QMessageBox>
-#include <QRegExp>
-#include <QStringList>
-#include <QDebug>
-
-using namespace Qt4ProjectManager;
-using namespace Qt4ProjectManager::Internal;
-
-//*************************************************
-
-TestConfigurations *TestConfigurations::m_instance = 0;
-
-class TestConfigurationsPrivate : public QObject
-{
-    Q_OBJECT
-public:
-    TestConfigurationsPrivate();
-    ~TestConfigurationsPrivate();
-
-    QList<TestConfig*> m_configList;
-
-    void clear();
-    bool load();
-    bool save();
-    void rescan();
-
-    TestConfig *activeConfiguration();
-    void setActiveConfiguration(ProjectExplorer::Project *project);
-
-    TestConfig *config(const QString &cfgName);
-    TestConfig *findConfig(const QString &srcPath);
-
-    QStringList selectedTests();
-    void setSelectedTests(const QStringList &list);
-
-    void setCurrentTest(const QString &testCase, const QString &testFunction);
-    QString currentTestCase();
-    QString currentTestFunction();
-
-    void delayConfigUpdates(bool delay);
-    bool updatesDelayed() { return m_delayConfigUpdates; }
-
-public slots:
-    void onActiveConfigurationChanged();
-    void onTestSelectionChanged(const QStringList&, QObject*);
-
-protected:
-    bool load(const QString &fileName);
-    bool save(const QString &fileName);
-
-signals:
-    void activeConfigurationChanged();
-    void testSelectionChanged(const QStringList&, QObject*);
-
-private:
-    TestCollection m_testCollection;
-    bool m_delayConfigUpdates;
-};
-
-#include "testconfigurations.moc"
-
-TestConfigurationsPrivate::TestConfigurationsPrivate()
-{
-    load();
-    m_delayConfigUpdates = false;
-}
-
-TestConfigurationsPrivate::~TestConfigurationsPrivate()
-{
-    save();
-    clear();
-}
-
-void TestConfigurationsPrivate::clear()
-{
-    while (!m_configList.isEmpty())
-        delete m_configList.takeFirst();
-}
-
-bool TestConfigurationsPrivate::load()
-{
-    return load(QDir::homePath() + QDir::separator() + QLatin1String(".qttest")
-        + QDir::separator() + QLatin1String("saved_configurations"));
-}
-
-bool TestConfigurationsPrivate::load(const QString &fileName)
-{
-    clear();
-    int version = 0;
-
-    QFile f(fileName);
-    if (f.open(QIODevice::ReadOnly)) {
-        QTextStream S(&f);
-        QString tmpName = S.readLine();
-        if (tmpName.startsWith(QLatin1String("VERSION="))) {
-            bool ok;
-            tmpName = tmpName.mid(8).simplified();
-            version = tmpName.toUInt(&ok);
-            if (!ok) {
-                qWarning("Could not read version in configurations file");
-                return false;
-            }
-        } else {
-            qWarning("Could not read configurations file");
-            return false;
-        }
-
-        TestConfig *tmp;
-        int count = -1;
-        while (!S.atEnd()) {
-            ++count;
-            tmp = new TestConfig;
-            if (tmp->load(version, &S))
-                m_configList.append(tmp);
-            else
-                delete tmp;
-        }
-        return true;
-    }
-    return false;
-}
-
-
-bool TestConfigurationsPrivate::save()
-{
-    QDir().mkpath(QDir::homePath() + QDir::separator() + QLatin1String(".qttest"));
-    return save(QDir::homePath() + QDir::separator() + QLatin1String(".qttest")
-        + QDir::separator() + QLatin1String("saved_configurations"));
-}
-
-bool TestConfigurationsPrivate::save(const QString &fileName)
-{
-    uint curVersion = 9;
-    QFile f(fileName);
-    if (f.open(QIODevice::WriteOnly)) {
-        QTextStream S(&f);
-        S << QString::fromLatin1("VERSION=%1").arg(curVersion) << '\n';
-        TestConfig *tmp;
-        for (int i = 0; i < m_configList.count(); ++i) {
-            tmp = m_configList.at(i);
-            if (tmp)
-                tmp->save(&S);
-        }
-        return true;
-    }
-    return false;
-}
-
-TestConfig *TestConfigurationsPrivate::activeConfiguration()
-{
-    TestConfig *cfg = 0;
-    for (int i = 0; i < m_configList.count(); ++i) {
-        cfg = m_configList[i];
-        if (cfg && cfg->isActive())
-            return cfg;
-    }
-    return 0;
-}
-
-void TestConfigurationsPrivate::setActiveConfiguration(ProjectExplorer::Project *project)
-{
-    TestCollection tc;
-    tc.removeAll();
-
-    TestConfig *cfg = 0;
-    for (int i = 0; i < m_configList.count(); ++i) {
-        cfg = m_configList[i];
-        if (cfg && cfg->isActive())
-            cfg->deactivate();
-    }
-
-    // search for configuration, and create if it doesn't exist yet.
-    if (project) {
-        TestConfig *tmp = config(project->displayName());
-        if (tmp)
-            tmp->activate(project);
-    }
-
-    TestContextMenu menu(0);
-    menu.updateActions(activeConfiguration() != 0, false, false);
-
-    emit activeConfigurationChanged();
-}
-
-TestConfig *TestConfigurationsPrivate::config(const QString &cfgName)
-{
-    TestConfig *cfg = 0;
-    for (int i = 0; i < m_configList.count(); ++i) {
-        cfg = m_configList[i];
-        if (cfg && cfg->configName() == cfgName)
-            return cfg;
-    }
-
-    cfg = new TestConfig();
-    cfg->setConfigName(cfgName);
-    cfg->setRunParams(QString());
-    cfg->setRunScript(QString());
-    cfg->setPostProcessScript(QString());
-    m_configList.append(cfg);
-
-    return cfg;
-}
-
-TestConfig *TestConfigurationsPrivate::findConfig(const QString &srcPath)
-{
-    for (int i = 0; i < m_configList.count(); ++i) {
-        TestConfig *tmp = m_configList.at(i);
-        if (tmp) {
-            QString tmpPath = tmp->srcPath();
-            if (!tmpPath.isEmpty() && srcPath.startsWith(tmpPath))
-                return tmp;
-        }
-    }
-
-    for (int i = 0; i < m_configList.count(); ++i) {
-        TestConfig *tmp = m_configList.at(i);
-        if (tmp) {
-            QStringList tmpPaths = tmp->extraTests();
-            foreach (const QString &tmpPath, tmpPaths) {
-                if (!tmpPath.isEmpty() && srcPath.startsWith(tmpPath))
-                    return tmp;
-            }
-        }
-    }
-
-    return 0;
-}
-
-QStringList TestConfigurationsPrivate::selectedTests()
-{
-    QStringList ret;
-    for (int i = 0; i < m_configList.count(); ++i) {
-        TestConfig *tmp = m_configList.at(i);
-        if (tmp && tmp->isActive())
-            ret += tmp->selectedTests();
-    }
-    return ret;
-}
-
-void TestConfigurationsPrivate::setSelectedTests(const QStringList &list)
-{
-    // split up the list into lists *per* test configuration
-    // then save each smaller list into it's specific configuration
-    for (int i = 0; i < m_configList.count(); ++i) {
-        TestConfig *tmp = m_configList.at(i);
-        if (tmp && tmp->isActive()) {
-            QStringList srcPaths = QStringList(tmp->srcPath());
-            if (tmp->extraTests().count() > 0)
-                srcPaths.append(tmp->extraTests());
-
-            QStringList tmpList;
-            foreach (const QString &selection, list) {
-                QString tcname = selection.left(selection.indexOf(QLatin1String("::")));
-                TestCode *tc = m_testCollection.findCodeByTestCaseName(tcname);
-                if (tc) {
-                    foreach (const QString &srcPath, srcPaths) {
-                        if (tc->actualFileName().startsWith(srcPath)) {
-                            tmpList += selection;
-                            break;
-                        }
-                    }
-                }
-            }
-            tmp->setSelectedTests(tmpList);
-        }
-    }
-
-    // FIXME This needs to be done more intelligently
-    save();
-}
-
-void TestConfigurationsPrivate::setCurrentTest(const QString &testCase, const QString &testFunction)
-{
-    TestConfig *tmp = activeConfiguration();
-    if (tmp)
-        tmp->setCurrentTest(testCase, testFunction);
-}
-
-QString TestConfigurationsPrivate::currentTestCase()
-{
-    TestConfig *tmp = activeConfiguration();
-    if (tmp)
-        return tmp->currentTestCase();
-    return QString();
-}
-
-QString TestConfigurationsPrivate::currentTestFunction()
-{
-    for (int i = 0; i < m_configList.count(); ++i) {
-        TestConfig *tmp = m_configList.at(i);
-        if (tmp && tmp->isActive())
-            return tmp->currentTestFunc();
-    }
-    return QString();
-}
-
-void TestConfigurationsPrivate::rescan()
-{
-    m_testCollection.removeAll();
-
-    for (int i = 0; i < m_configList.count(); ++i) {
-        TestConfig *tmp = m_configList.at(i);
-        if (tmp && tmp->isActive())
-            tmp->onProjectSettingsChanged();
-    }
-}
-
-void TestConfigurationsPrivate::delayConfigUpdates(bool delay)
-{
-    m_delayConfigUpdates = delay;
-}
-
-void TestConfigurationsPrivate::onActiveConfigurationChanged()
-{
-    emit activeConfigurationChanged();
-}
-
-void TestConfigurationsPrivate::onTestSelectionChanged(const QStringList& selection, QObject *originator)
-{
-    setSelectedTests(selection);
-    emit testSelectionChanged(selection, originator);
-}
-
-// ************************************************
-
-TestConfig::TestConfig()
-{
-    m_activeProject = 0;
-    m_currentLoadedSrcDir.clear();
-    m_currentLoadedExtraDirs.clear();
-    clear();
-    connect(&m_configChangedTimer, SIGNAL(timeout()), this, SLOT(onProjectSettingsChanged()));
-}
-
-TestConfig::~TestConfig()
-{
-}
-
-void TestConfig::clear()
-{
-    m_runParams.clear();
-    m_runScript.clear();
-    m_postprocessScript.clear();
-    m_lastTestcase.clear();
-    m_lastTestfunc.clear();
-    m_uploadChange.clear();
-    m_uploadBranch.clear();
-    m_uploadBranchSpecialization.clear();
-    m_uploadPlatform.clear();
-    m_qmakeMkspec.clear();
-    m_qmakeMkspecSpecialization.clear();
-
-    m_lastSelectedTests = QStringList();
-    m_changeDetected = false;
-    m_branchDetected = false;
-    m_autodetectPlatformConfiguration = true;
-    m_platformDetected = false;
-    m_uploadMethod = QLatin1String("SCP");
-    m_buildEnvironment.clear();
-    m_uploadMode = UploadAuto;
-    m_makeCommand.clear();
-    m_qmakeCommand.clear();
-    m_extraTests.clear();
-}
-
-QString TestConfig::runScript()
-{
-    QString ret = m_runScript;
-    QSystem::processEnvValue(buildEnvironment(), ret);
-    return ret;
-}
-
-QString TestConfig::copyrightHeader()
-{
-    QString ret = srcPath() + QDir::separator() + QLatin1String("dist") + QDir::separator()
-        + QLatin1String("header-dual-license.txt");
-    QFileInfo inf(ret);
-    if (inf.exists())
-        return ret;
-    return QString();
-}
-
-void TestConfig::setQMAKESPEC(const QString &newValue)
-{
-    m_qmakeMkspec = newValue;
-}
-
-QString TestConfig::QMAKESPEC()
-{
-    if (m_autodetectPlatformConfiguration && m_activeProject){
-        // seek to determine the mkspec from the current Qt target
-        Qt4BuildConfiguration *qtBuildConfig =
-            static_cast<Qt4BuildConfiguration *>(m_activeProject->activeTarget()->activeBuildConfiguration());
-
-        if (qtBuildConfig)
-            return qtBuildConfig->qtVersion()->mkspec();
-        else
-            return QSystem::envKey(buildEnvironment(), QLatin1String("QMAKESPEC"));
-    }
-
-    return m_qmakeMkspec;
-}
-
-QString TestConfig::QMAKESPECSpecialization() const
-{
-    return m_qmakeMkspecSpecialization;
-}
-
-void TestConfig::setQMAKESPECSpecialization(const QString &newValue)
-{
-    m_qmakeMkspecSpecialization = newValue;
-}
-
-QString TestConfig::PATH()
-{
-    return QSystem::envKey(buildEnvironment(), QLatin1String("PATH"));
-}
-
-QString TestConfig::QTDIR()
-{
-    return QSystem::envKey(buildEnvironment(), QLatin1String("QTDIR"));
-}
-
-QString TestConfig::runParams()
-{
-    QString ret = m_runParams;
-    QSystem::processEnvValue(buildEnvironment(), ret);
-    return ret;
-}
-
-QString TestConfig::postProcessScript()
-{
-    QString ret = m_postprocessScript;
-    QSystem::processEnvValue(buildEnvironment(), ret);
-    return ret;
-}
-
-QString TestConfig::makeCommand()
-{
-    if (m_makeCommand.isEmpty()) {
-        if (QMAKESPEC().contains(QLatin1String("msvc")))
-            m_makeCommand = QLatin1String("nmake");
-        else if (QMAKESPEC().contains(QLatin1String("mingw")))
-            m_makeCommand = QLatin1String("mingw32-make");
-        else
-            m_makeCommand = QLatin1String("make");
-        m_makeCommand = QSystem::which(PATH(), m_makeCommand);
-    }
-    return m_makeCommand;
-}
-
-QString TestConfig::qmakeCommand(bool /*desktopQMakeRequested*/)
-{
-
-    if (m_activeProject){
-        // seek to determine the qmake command from the current Qt target
-        Qt4BuildConfiguration *qtBuildConfig =
-            static_cast<Qt4BuildConfiguration *>(m_activeProject->activeTarget()->activeBuildConfiguration());
-        return qtBuildConfig->qtVersion()->qmakeCommand();
-    }
-
-    qWarning() << "Unable to detect qmake command, falling back to \"qmake\"";
-    return QLatin1String("qmake");
-}
-
-void TestConfig::setUploadMode(UploadMode mode)
-{
-    m_uploadMode = mode;
-}
-
-TestConfig::UploadMode TestConfig::uploadMode()
-{
-    return m_uploadMode;
-}
-
-bool TestConfig::uploadResults()
-{
-    if (m_uploadMode == TestConfig::UploadAuto)
-        return true;
-    if (m_uploadMode == TestConfig::UploadNoThanks)
-        return false;
-    if (QMessageBox::question(0, tr("Upload Test Results"),
-        tr("You can positively influence the quality of %1"
-           " by contributing test results.\n\nWould you like to upload your Test Results").arg(configName()),
-        QMessageBox::Yes, QMessageBox::No) == QMessageBox::Yes)
-        return true;
-    return false;
-}
-
-bool TestConfig::isRemoteTarget(QString &deviceName, QString &testDeviceType,
-    Utils::SshConnectionParameters &sshParameters)
-{
-    if (m_activeProject && m_activeProject->activeTarget()) {
-        ProjectExplorer::RunConfiguration *r = m_activeProject->activeTarget()->activeRunConfiguration();
-        if (r) {
-            if (r->id() == QLatin1String("RemoteLinuxRunConfiguration")) {
-                RemoteLinux::RemoteLinuxRunConfiguration *mr = static_cast<RemoteLinux::RemoteLinuxRunConfiguration *>(r);
-                if (mr) {
-                    QSharedPointer<const RemoteLinux::LinuxDeviceConfiguration> mc = mr->deviceConfig();
-                    if (mc){
-                        deviceName = mc->name();
-                        sshParameters = mc->sshParameters();
-                        testDeviceType = QLatin1String("RemoteLinux");//Qt4Test::TestController::Maemo;
-                        return true;
-                    }else{
-                        qWarning() << "Invalid remote" << deviceName;
-                    }
-                }
-            } else if (r->id() == QLatin1String("Qt4ProjectManager.Qt4RunConfiguration")
-                || r->id() == QLatin1String("ProjectExplorer.CustomExecutableRunConfiguration")) {
-                deviceName = QLatin1String("Desktop");
-                sshParameters.host = QLatin1String("127.0.0.1");
-                sshParameters.port = 5656;
-                sshParameters.userName.clear();
-                sshParameters.password.clear();
-                sshParameters.privateKeyFile.clear();
-                testDeviceType = QLatin1String("Desktop");//Qt4Test::TestController::Desktop;
-                return false;
-            }
-        }
-    }
-    deviceName = QLatin1String("Unknown");
-    sshParameters.host = QLatin1String("0.0.0.0");
-    sshParameters.port = 0;
-    sshParameters.userName.clear();
-    sshParameters.password.clear();
-    sshParameters.privateKeyFile.clear();
-    testDeviceType = QLatin1String("Desktop"); //Qt4Test::TestController::Desktop;
-
-    return false;
-}
-
-void TestConfig::loadLine(QTextStream *s, const QString &id, QString &value)
-{
-    Q_UNUSED(id);
-
-    QString tmp = s->readLine();
-    int pos = tmp.indexOf(QLatin1Char('='));
-    value = tmp.mid(pos + 1);
-}
-
-void TestConfig::loadLine(QTextStream *s, const QString &id, int &value)
-{
-    Q_UNUSED(id);
-
-    QString tmp = s->readLine();
-    int pos = tmp.indexOf(QLatin1Char('='));
-    value = tmp.mid(pos + 1).toInt();
-}
-
-bool TestConfig::load(uint version, QTextStream *s)
-{
-    Q_UNUSED(version);
-
-    if (s == 0)
-        return false;
-
-    QString tmp = s->readLine();
-    if (tmp == QLatin1String("CONFIG-START")) {
-        loadLine(s, QString(), m_configName);
-        loadLine(s, QString(), m_runParams);
-        loadLine(s, QString(), m_postprocessScript);
-        loadLine(s, QString(), m_runScript);
-        loadLine(s, QString(), m_lastTestcase);
-        loadLine(s, QString(), m_lastTestfunc);
-        QString tmp;
-        loadLine(s, QString(), tmp);
-        m_lastSelectedTests = tmp.split(QLatin1Char(','), QString::SkipEmptyParts);
-        if (version > 1) {
-            loadLine(s, QString(), m_uploadChange);
-            loadLine(s, QString(), m_uploadBranch);
-            loadLine(s, QString(), m_uploadPlatform);
-            if (version < 8)
-                tmp = s->readLine();
-        }
-        if (version > 2) {
-            if (version < 8) tmp = s->readLine();
-            tmp = s->readLine();
-            m_autodetectPlatformConfiguration = (tmp == QLatin1String("AUTO-PLATFORM=1"));
-            loadLine(s, QString(), m_uploadMethod);
-        }
-        if (version > 3) {
-            loadLine(s, QString(), tmp);
-            m_extraTests = tmp.split(QLatin1Char(':'), QString::SkipEmptyParts);
-        }
-        if (version > 4) {
-            int tmp;
-            loadLine(s, QString(), tmp);
-            m_uploadMode = static_cast<UploadMode>(tmp);
-        }
-        if (version > 5 && version < 7) {
-            QString dummy;
-            loadLine(s, QString(), dummy);
-            loadLine(s, QString(), dummy);
-            loadLine(s, QString(), dummy);
-        }
-        if (version >= 9) {
-            loadLine(s, QString(), m_qmakeMkspec);
-            loadLine(s, QString(), m_uploadBranchSpecialization);
-            loadLine(s, QString(), m_qmakeMkspecSpecialization);
-        }
-        //Add member here
-
-        QString checkSum;
-        loadLine(s, QString(), checkSum);
-        return checkSum == QLatin1String("CONFIG-END");
-    }
-    return false;
-}
-
-void TestConfig::saveLine(QTextStream *s, const QString &id, const QString &value)
-{
-    *s << id << '=' << value << '\n';
-}
-
-bool TestConfig::save(QTextStream *s)
-{
-    if (s == 0)
-        return false;
-
-    QString checkSum = QLatin1String("CONFIG-START");
-    *s << checkSum << QLatin1Char('\n');
-    saveLine(s, QLatin1String("NAME"), m_configName);
-    saveLine(s, QLatin1String("RUN_PARAMS"), m_runParams);
-    saveLine(s, QLatin1String("POSTPROCESS_SCRIPT"), m_postprocessScript);
-    saveLine(s, QLatin1String("RUN_SCRIPT"), m_runScript);
-    saveLine(s, QLatin1String("LAST_TESTCASE"), m_lastTestcase);
-    saveLine(s, QLatin1String("LAST_TESTFUNC"), m_lastTestfunc);
-    saveLine(s, QLatin1String("LAST_SELECTED_TESTS"), m_lastSelectedTests.join(QString(QLatin1Char(','))));
-    saveLine(s, QLatin1String("CHANGE"), m_uploadChange);
-    saveLine(s, QLatin1String("BRANCH"), m_uploadBranch);
-    saveLine(s, QLatin1String("PLATFORM"), m_uploadPlatform);
-    saveLine(s, QLatin1String("AUTO-PLATFORM"), QString::fromLatin1("%1").arg(m_autodetectPlatformConfiguration));
-    saveLine(s, QLatin1String("UPLOAD_METHOD"), m_uploadMethod);
-    saveLine(s, QLatin1String("EXTRA_TESTS"), m_extraTests.join(QString(QLatin1Char(':'))));
-    saveLine(s, QLatin1String("UPLOAD_MODE"), QString::number(static_cast<int>(m_uploadMode)));
-    saveLine(s, QLatin1String("QMAKESPEC"), m_qmakeMkspec);
-    saveLine(s, QLatin1String("BRANCH_SPECIALIZATION"), m_uploadBranchSpecialization);
-    saveLine(s, QLatin1String("QMAKESPEC_SPECIALIZATION"), m_qmakeMkspecSpecialization);
-    //Add member here
-
-    checkSum = QLatin1String("CONFIG-END");
-    *s << checkSum << '\n';
-    return true;
-}
-
-void TestConfig::setCurrentTest(const QString &testcase, const QString &testfunc)
-{
-    m_lastTestcase = testcase;
-    m_lastTestfunc = testfunc;
-}
-
-void TestConfig::setSelectedTests(const QStringList &list)
-{
-    m_lastSelectedTests = list;
-}
-
-QString TestConfig::currentTestCase()
-{
-    return m_lastTestcase;
-}
-
-QString TestConfig::currentTestFunc()
-{
-    return m_lastTestfunc;
-}
-
-QStringList TestConfig::selectedTests()
-{
-    return m_lastSelectedTests;
-}
-
-QString TestConfig::configName()
-{
-    return m_configName;
-}
-
-QString TestConfig::uploadChange()
-{
-    if (m_autodetectPlatformConfiguration && !m_changeDetected) {
-        QProcess proc;
-        proc.setEnvironment(*buildEnvironment());
-        proc.setWorkingDirectory(srcPath());
-
-        proc.start(QLatin1String("git"), QStringList() << QLatin1String("log") << QLatin1String("-1") << QLatin1String("--pretty=oneline"));
-        bool ok = proc.waitForStarted();
-        if (ok)
-            ok = proc.waitForFinished();
-
-        if (ok) {
-            QString output = proc.readAllStandardOutput();
-            if (!output.isEmpty()) {
-                QStringList tmp = output.split(QLatin1Char(' '));
-                if (tmp.count() >= 2) {
-                    m_uploadChange = tmp[0];
-                    m_changeDetected = true;
-                }
-            }
-        }
-    }
-    return m_uploadChange;
-}
-
-void TestConfig::setUploadChange(const QString &newValue)
-{
-    m_uploadChange = newValue;
-}
-
-QString TestConfig::uploadBranch()
-{
-    if (m_autodetectPlatformConfiguration && !m_branchDetected) {
-        QProcess proc;
-        proc.setEnvironment(*buildEnvironment());
-        proc.setWorkingDirectory(srcPath());
-
-        proc.start(QLatin1String("git"), QStringList(QLatin1String("branch")));
-        bool ok = proc.waitForStarted();
-        if (ok)
-            ok = proc.waitForFinished();
-
-        if (ok) {
-            QString output = proc.readAllStandardOutput();
-            if (!output.isEmpty()) {
-                QStringList tmp = output.split(QLatin1Char('\n'));
-                foreach (const QString &line, tmp) {
-                    if (line.startsWith(QLatin1Char('*'))) {
-                        m_uploadBranch = line.mid(2);
-                        m_branchDetected = true;
-                    }
-                }
-            }
-        }
-
-        if (m_branchDetected){
-            // prepend <Product>- to the branch name
-            // this only supports remotes using git@... and git://
-            proc.start(QLatin1String("git"), QStringList() << QLatin1String("remote") << QLatin1String("-v"));
-            ok = proc.waitForStarted();
-            if (ok)
-                ok = proc.waitForFinished();
-
-            if (ok) {
-                QString output = proc.readAllStandardOutput();
-                if (!output.isEmpty()) {
-                    QRegExp gitRemoteRegEx(QLatin1String("(\\w+\\s+\\w+@[^:]+):(\\w+)/\\(.*)"));
-                    QRegExp gitReadonlyRemoteRegEx(QLatin1String("(\\w+\\s+\\w+://.+)/(\\w+)/(.*)"));
-                    QStringList tmp = output.split(QLatin1Char('\n'));
-                    foreach (const QString &line, tmp) {
-                        if (gitRemoteRegEx.exactMatch(line)) {
-                            m_uploadBranch = gitRemoteRegEx.capturedTexts()[2]
-                                + QLatin1Char('-') + m_uploadBranch;
-                            break;
-                        }
-                        if (gitReadonlyRemoteRegEx.exactMatch(line)) {
-                            m_uploadBranch = gitReadonlyRemoteRegEx.capturedTexts()[2]
-                                + QLatin1Char('-') + m_uploadBranch;
-                            break;
-                        }
-                    }
-                }
-            }
-        }
-
-    }
-    return m_uploadBranch;
-}
-
-void TestConfig::setUploadBranch(const QString &newValue)
-{
-    m_uploadBranch = newValue;
-}
-
-QString TestConfig::uploadBranchSpecialization() const
-{
-    return m_uploadBranchSpecialization;
-}
-
-void TestConfig::setUploadBranchSpecialization(const QString &newValue)
-{
-    m_uploadBranchSpecialization = newValue;
-}
-
-
-QString TestConfig::uploadPlatform()
-{
-    if (m_autodetectPlatformConfiguration && !m_platformDetected) {
-        m_uploadPlatform = QSystem::OSName();
-        m_platformDetected = true;
-    }
-    return m_uploadPlatform;
-}
-
-void TestConfig::setUploadPlatform(const QString &newValue)
-{
-    m_uploadPlatform = newValue;
-}
-
-bool TestConfig::autoDetectPlatformConfiguration() const
-{
-    return m_autodetectPlatformConfiguration;
-}
-
-void TestConfig::setAutoDetectPlatformConfiguration(bool doAutoDetect)
-{
-    // only reset TestConfig values when auto detect is re-enabled
-    if ((doAutoDetect != m_autodetectPlatformConfiguration) && doAutoDetect) {
-        m_platformDetected = false;
-        m_uploadPlatform.clear();
-        m_changeDetected = false;
-        m_uploadChange.clear();
-        m_branchDetected = false;
-        m_uploadBranch.clear();
-        m_qmakeMkspec.clear();
-    }
-    m_autodetectPlatformConfiguration = doAutoDetect;
-}
-
-bool TestConfig::uploadUsingScp()
-{
-    return m_uploadMethod == QLatin1String("SCP");
-}
-
-bool TestConfig::uploadUsingEMail()
-{
-    return m_uploadMethod != QLatin1String("SCP");
-}
-
-void TestConfig::setUploadMethod(bool useScp)
-{
-    if (useScp)
-        m_uploadMethod = QLatin1String("SCP");
-    else
-        m_uploadMethod = QLatin1String("EMAIL");
-}
-
-void TestConfig::deactivate()
-{
-    if (m_activeProject) {
-        ProjectExplorer::BuildConfiguration *b =
-            m_activeProject->activeTarget()->activeBuildConfiguration();
-        disconnect(b, SIGNAL(buildDirectoryChanged()),
-            this, SLOT(onBuildDirectoryChanged()));
-        disconnect(m_activeProject, SIGNAL(environmentChanged()),
-            this, SLOT(onEnvironmentChanged()));
-    }
-    m_activeProject = 0;
-    m_currentLoadedSrcDir.clear();
-    m_currentLoadedExtraDirs.clear();
-    m_buildEnvironment.clear();
-}
-
-void TestConfig::activate(ProjectExplorer::Project *project)
-{
-    if (!project)
-        return;
-    m_activeProject = project;
-
-    ProjectExplorer::BuildConfiguration *b = project->activeTarget()->activeBuildConfiguration();
-    connect(b, SIGNAL(buildDirectoryChanged()), this, SLOT(onBuildDirectoryChanged()));
-    connect(m_activeProject, SIGNAL(environmentChanged()), this, SLOT(onEnvironmentChanged()));
-    connect(m_activeProject, SIGNAL(activeTargetChanged(ProjectExplorer::Target*)),
-        this, SLOT(onActiveTargetChanged()));
-    onProjectSettingsChanged();
-}
-
-void TestConfig::onBuildDirectoryChanged()
-{
-    onProjectSettingsChanged();
-}
-
-void TestConfig::onEnvironmentChanged()
-{
-    m_buildEnvironment.clear();
-}
-
-void TestConfig::onActiveTargetChanged()
-{
-    m_buildEnvironment.clear();
-}
-
-void TestConfig::onProjectSettingsChanged()
-{
-    if (!m_activeProject)
-        return;
-
-    Core::ModeManager *mgr = Core::ModeManager::instance();
-    if ((mgr && (mgr->currentMode()->id() != QLatin1String("Edit"))) || TestConfigurations::instance().updatesDelayed()) {
-        // Try again later.
-        emitConfigChanged();
-        return;
-    }
-
-    TestCollection testCollection;
-    bool rescanTests = (testCollection.count() == 0);
-    if (m_currentLoadedSrcDir != srcPath() || rescanTests) {
-        testCollection.removePath(m_currentLoadedSrcDir);
-        testCollection.addPath(srcPath());
-        m_currentLoadedSrcDir = srcPath();
-    }
-
-    if (m_currentLoadedExtraDirs != extraTests() || rescanTests) {
-        foreach (const QString &dir, m_currentLoadedExtraDirs)
-            testCollection.removePath(dir);
-        foreach (const QString &dir, extraTests()) {
-            if (!dir.isEmpty()) {
-                testCollection.addExtraPath(dir);
-            }
-        }
-        m_currentLoadedExtraDirs = extraTests();
-    }
-
-    onEnvironmentChanged();
-}
-
-QStringList *TestConfig::buildEnvironment()
-{
-    if (m_activeProject && m_activeProject->activeTarget()) {
-        ProjectExplorer::BuildConfiguration *b =
-            m_activeProject->activeTarget()->activeBuildConfiguration();
-        if (b)
-            m_buildEnvironment = b->environment().toStringList();
-    }
-    return &m_buildEnvironment;
-}
-
-QStringList *TestConfig::runEnvironment()
-{
-    if (m_activeProject && m_activeProject->activeTarget()) {
-        ProjectExplorer::RunConfiguration *rc =
-            m_activeProject->activeTarget()->activeRunConfiguration();
-        if (rc) {
-            if (rc->id() == QLatin1String("Qt4ProjectManager.Qt4RunConfiguration")) {
-                m_runEnvironment =
-                    static_cast<Qt4ProjectManager::Internal::Qt4RunConfiguration*>(rc)->environment().toStringList();
-            } else if (rc->id() == QLatin1String("ProjectExplorer.CustomExecutableRunConfiguration")) {
-                m_runEnvironment =
-                    static_cast<ProjectExplorer::CustomExecutableRunConfiguration*>(rc)->environment().toStringList();
-            } else if (rc->id() == QLatin1String("RemoteLinuxRunConfiguration")) {
-                m_runEnvironment =
-                    static_cast<RemoteLinux::RemoteLinuxRunConfiguration *>(rc)->environment().toStringList();
-            }
-        }
-    }
-    return &m_runEnvironment;
-}
-
-QString TestConfig::buildPath()
-{
-    if (!m_activeProject)
-        return QString();
-    ProjectExplorer::BuildConfiguration *b =
-        m_activeProject->activeTarget()->activeBuildConfiguration();
-    if (!b)
-        return QString();
-    return QDir::convertSeparators(b->buildDirectory());
-}
-
-QString TestConfig::srcPath()
-{
-    if (!m_activeProject)
-        return QString();
-    return QDir::convertSeparators(m_activeProject->projectDirectory());
-}
-
-QStringList TestConfig::extraTests() const
-{
-    return m_extraTests;
-}
-
-void TestConfig::setExtraTests(const QStringList &list)
-{
-    m_extraTests = list;
-    emitConfigChanged();
-}
-
-void TestConfig::emitConfigChanged()
-{
-    // Wait a little with emitting 'configChanged' until we have stopped typing
-    m_configChangedTimer.stop();
-    m_configChangedTimer.setSingleShot(true);
-    m_configChangedTimer.start(500);
-}
-
-// --------------------------------------------------------------------
-
-TestConfigurations::TestConfigurations()
-{
-    Q_ASSERT(!m_instance);
-
-    m_instance = this;
-
-    d = new TestConfigurationsPrivate;
-    connect(d, SIGNAL(activeConfigurationChanged()), this, SIGNAL(activeConfigurationChanged()));
-    connect(d, SIGNAL(testSelectionChanged(QStringList, QObject*)),
-        this, SIGNAL(testSelectionChanged(QStringList, QObject*)));
-}
-
-TestConfigurations::~TestConfigurations()
-{
-    m_instance = 0;
-    delete d;
-}
-
-TestConfigurations &TestConfigurations::instance()
-{
-    Q_ASSERT(m_instance);
-    return *m_instance;
-}
-
-TestConfig *TestConfigurations::activeConfiguration()
-{
-    Q_ASSERT(d);
-    return d->activeConfiguration();
-}
-
-void TestConfigurations::setActiveConfiguration(ProjectExplorer::Project *project)
-{
-    Q_ASSERT(d);
-    return d->setActiveConfiguration(project);
-}
-
-TestConfig *TestConfigurations::config(const QString &cfgName)
-{
-    Q_ASSERT(d);
-    return d->config(cfgName);
-}
-
-TestConfig *TestConfigurations::findConfig(const QString &srcPath)
-{
-    Q_ASSERT(d);
-    return d->findConfig(srcPath);
-}
-
-QStringList TestConfigurations::selectedTests()
-{
-    Q_ASSERT(d);
-    return d->selectedTests();
-}
-
-void TestConfigurations::setSelectedTests(const QStringList &list)
-{
-    Q_ASSERT(d);
-    d->setSelectedTests(list);
-}
-
-void TestConfigurations::setCurrentTest(const QString &testCase, const QString &testFunction)
-{
-    Q_ASSERT(d);
-    d->setCurrentTest(testCase,testFunction);
-}
-
-QString TestConfigurations::currentTestCase()
-{
-    Q_ASSERT(d);
-    return d->currentTestCase();
-}
-
-QString TestConfigurations::currentTestFunction()
-{
-    Q_ASSERT(d);
-    return d->currentTestFunction();
-}
-
-void TestConfigurations::rescan()
-{
-    Q_ASSERT(d);
-    d->rescan();
-}
-
-void TestConfigurations::delayConfigUpdates(bool delay)
-{
-    Q_ASSERT(d);
-    d->delayConfigUpdates(delay);
-}
-
-bool TestConfigurations::updatesDelayed()
-{
-    Q_ASSERT(d);
-    return d->updatesDelayed();
-}
-
-void TestConfigurations::onActiveConfigurationChanged()
-{
-    Q_ASSERT(d);
-    d->onActiveConfigurationChanged();
-}
-
-void TestConfigurations::onTestSelectionChanged(const QStringList &selection)
-{
-    Q_ASSERT(d);
-    d->onTestSelectionChanged(selection, sender());
-}
diff --git a/src/plugins/qttest/testconfigurations.h b/src/plugins/qttest/testconfigurations.h
deleted file mode 100644
index ace54700e77931a491a5ce490f242088919a1225..0000000000000000000000000000000000000000
--- a/src/plugins/qttest/testconfigurations.h
+++ /dev/null
@@ -1,218 +0,0 @@
-/**************************************************************************
-**
-** This file is part of Qt Creator
-**
-** Copyright (c) 2011 Nokia Corporation and/or its subsidiary(-ies).
-**
-** Contact: Nokia Corporation (info@qt.nokia.com)
-**
-**
-** GNU Lesser General Public License Usage
-**
-** This file may be used under the terms of the GNU Lesser General Public
-** License version 2.1 as published by the Free Software Foundation and
-** appearing in the file LICENSE.LGPL included in the packaging of this file.
-** Please review the following information to ensure the GNU Lesser General
-** Public License version 2.1 requirements will be met:
-** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Nokia gives you certain additional
-** rights. These rights are described in the Nokia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** Other Usage
-**
-** Alternatively, this file may be used in accordance with the terms and
-** conditions contained in a signed written agreement between you and Nokia.
-**
-** If you have questions regarding the use of this file, please contact
-** Nokia at info@qt.nokia.com.
-**
-**************************************************************************/
-
-#ifndef TESTCONFIGURATIONS_H
-#define TESTCONFIGURATIONS_H
-
-#include <projectexplorer/project.h>
-#include <utils/ssh/sshconnection.h>
-
-#include <QPointer>
-#include <QTimer>
-
-QT_BEGIN_NAMESPACE
-class QTextStream;
-QT_END_NAMESPACE
-
-class TestConfigurationsPrivate;
-
-class TestConfig : public QObject
-{
-    Q_OBJECT
-public:
-    TestConfig();
-    virtual ~TestConfig();
-
-    bool load(uint version, QTextStream *s);
-    bool save(QTextStream *s);
-    void clear();
-
-    bool isActive() { return m_activeProject != 0; }
-    QPointer<ProjectExplorer::Project> activeProject() { return m_activeProject; }
-
-    QString configName();
-    QString runParams();
-    QString srcPath();
-    QString buildPath();
-    QString currentTestCase();
-    QString currentTestFunc();
-    QStringList selectedTests();
-    QString copyrightHeader();
-    QString runScript();
-    QString postProcessScript();
-
-    QString makeCommand();
-    QString qmakeCommand(bool desktopQMakeRequested);
-
-    QStringList *buildEnvironment();
-    QStringList *runEnvironment();
-
-    QString uploadChange();
-    void setUploadChange(const QString &newValue);
-
-    QString uploadBranch();
-    void setUploadBranch(const QString &newValue);
-
-    QString uploadBranchSpecialization() const;
-    void setUploadBranchSpecialization(const QString &newValue);
-
-    QString uploadPlatform();
-    void setUploadPlatform(const QString &newValue);
-
-    bool autoDetectPlatformConfiguration() const;
-    void setAutoDetectPlatformConfiguration(bool doAutoDetect);
-
-    QString QMAKESPEC();
-    void setQMAKESPEC(const QString &newValue);
-
-    QString QMAKESPECSpecialization() const;
-    void setQMAKESPECSpecialization(const QString &newValue);
-
-    QString PATH();
-    QString QTDIR();
-
-    bool uploadUsingScp();
-    bool uploadUsingEMail();
-    void setUploadMethod(bool useScp);
-
-    enum UploadMode { UploadAuto, UploadAskMe, UploadNoThanks };
-
-    void setUploadMode(UploadMode mode);
-    UploadMode uploadMode();
-    bool uploadResults();
-
-    bool isRemoteTarget(QString &deviceName, QString &testDeviceType, Utils::SshConnectionParameters &sshParameters);
-
-    QStringList extraTests() const;
-    void setExtraTests(const QStringList &list);
-
-    void setCurrentTest(const QString &testcase, const QString &testFunc);
-    void setSelectedTests(const QStringList &list);
-    void setConfigName(const QString &name) { m_configName = name; }
-    void setRunParams(const QString &params) { m_runParams = params; }
-    void setRunScript(const QString &script) { m_runScript = script; }
-    void setPostProcessScript(const QString &script) { m_postprocessScript = script; }
-
-    void activate(ProjectExplorer::Project *project);
-    void deactivate();
-
-protected:
-    void emitConfigChanged();
-
-private slots:
-    void onProjectSettingsChanged();
-    void onBuildDirectoryChanged();
-    void onEnvironmentChanged();
-    void onActiveTargetChanged();
-
-private:
-    QTimer m_configChangedTimer;
-    QStringList m_buildEnvironment;
-    QStringList m_runEnvironment;
-    QString m_configName;
-    QString m_runParams;
-    QString m_runScript;
-    QString m_postprocessScript;
-    QString m_lastTestcase;
-    QString m_lastTestfunc;
-    QStringList m_lastSelectedTests;
-    QString m_uploadChange;
-    QString m_uploadBranch;
-    QString m_uploadPlatform;
-    QString m_uploadBranchSpecialization;
-    QString m_qmakeMkspec;
-    QString m_qmakeMkspecSpecialization;
-    QStringList m_extraTests;
-    QPointer<ProjectExplorer::Project> m_activeProject;
-    bool m_autodetectPlatformConfiguration;
-    QString m_uploadMethod;
-    QStringList m_extraTestPaths;
-    UploadMode m_uploadMode;
-
-    QString m_currentLoadedSrcDir;
-    QStringList m_currentLoadedExtraDirs;
-    bool m_changeDetected;
-    bool m_branchDetected;
-    bool m_platformDetected;
-    QString m_makeCommand;
-    QString m_qmakeCommand;
-
-private:
-    friend class TestConfigurationsPrivate;
-
-    void loadLine(QTextStream *s, const QString &id, QString &value);
-    void loadLine(QTextStream *s, const QString &id, int &value);
-    void saveLine(QTextStream *s, const QString &id, const QString &value);
-};
-
-class TestConfigurations : public QObject
-{
-    Q_OBJECT
-public:
-    TestConfigurations();
-    ~TestConfigurations();
-
-    static TestConfigurations &instance();
-
-    TestConfig *activeConfiguration();
-    void setActiveConfiguration(ProjectExplorer::Project *project);
-
-    TestConfig *config(const QString &configName);
-    TestConfig *findConfig(const QString &srcPath);
-
-    void rescan();
-
-    QStringList selectedTests();
-    void setSelectedTests(const QStringList &list);
-
-    void setCurrentTest(const QString &testCase, const QString &testFunction);
-    QString currentTestCase();
-    QString currentTestFunction();
-
-    void delayConfigUpdates(bool delay);
-    bool updatesDelayed();
-
-public slots:
-    void onActiveConfigurationChanged();
-    void onTestSelectionChanged(const QStringList&);
-
-signals:
-    void activeConfigurationChanged();
-    void testSelectionChanged(const QStringList&, QObject*);
-
-private:
-    static TestConfigurations *m_instance;
-
-    TestConfigurationsPrivate *d;
-};
-
-#endif
diff --git a/src/plugins/qttest/testcontextmenu.cpp b/src/plugins/qttest/testcontextmenu.cpp
deleted file mode 100644
index f82359ae2ef8f02e2a507c653d17121b21ae5902..0000000000000000000000000000000000000000
--- a/src/plugins/qttest/testcontextmenu.cpp
+++ /dev/null
@@ -1,363 +0,0 @@
-/**************************************************************************
-**
-** This file is part of Qt Creator
-**
-** Copyright (c) 2011 Nokia Corporation and/or its subsidiary(-ies).
-**
-** Contact: Nokia Corporation (info@qt.nokia.com)
-**
-**
-** GNU Lesser General Public License Usage
-**
-** This file may be used under the terms of the GNU Lesser General Public
-** License version 2.1 as published by the Free Software Foundation and
-** appearing in the file LICENSE.LGPL included in the packaging of this file.
-** Please review the following information to ensure the GNU Lesser General
-** Public License version 2.1 requirements will be met:
-** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Nokia gives you certain additional
-** rights. These rights are described in the Nokia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** Other Usage
-**
-** Alternatively, this file may be used in accordance with the terms and
-** conditions contained in a signed written agreement between you and Nokia.
-**
-** If you have questions regarding the use of this file, please contact
-** Nokia at info@qt.nokia.com.
-**
-**************************************************************************/
-
-#include "testcontextmenu.h"
-#include "testcode.h"
-#include "testsettings.h"
-#include "qsystem.h"
-#include "testsuite.h"
-#include "testexecuter.h"
-#include "testoutputwindow.h"
-
-#include <coreplugin/icore.h>
-#include <coreplugin/inavigationwidgetfactory.h>
-#include <extensionsystem/iplugin.h>
-#include <coreplugin/editormanager/ieditor.h>
-#include <coreplugin/editormanager/editormanager.h>
-
-#include <QDir>
-
-TestContextMenuPrivate *TestContextMenu::m_instance = 0;
-int TestContextMenu::m_refCount = 0;
-
-TestContextMenu::TestContextMenu(QObject *widget)
-{
-    if (m_refCount++ == 0)
-        m_instance = new TestContextMenuPrivate(widget);
-
-    connect(m_instance->m_testToggleCurrentSelectAction, SIGNAL(triggered()),
-        this, SIGNAL(toggleSelection()));
-    connect(m_instance->m_testSelectAllTestsAction, SIGNAL(triggered()),
-         this, SIGNAL(selectAllTests()));
-    connect(m_instance->m_testDeselectAllTestsAction, SIGNAL(triggered()),
-         this, SIGNAL(deselectAllTests()));
-    connect(m_instance->m_testSelectAllManualTestsAction, SIGNAL(triggered()),
-         this, SIGNAL(selectAllManualTests()));
-}
-
-TestContextMenu::~TestContextMenu()
-{
-    if (--m_refCount == 0) {
-        delete m_instance;
-    }
-}
-
-void TestContextMenu::init(QMenu *testMenu, int mode, QObject *widget)
-{
-    if (m_instance)
-        m_instance->init(testMenu, mode, widget);
-}
-
-void TestContextMenu::languageChange()
-{
-    if (m_instance)
-        m_instance->languageChange();
-}
-
-void TestContextMenu::updateActions( bool testVisible, bool testBusy, bool testStopped)
-{
-    if (m_instance)
-        m_instance->updateActions(testVisible, testBusy, testStopped);
-}
-
-void TestContextMenu::updateToggleAction(const QString &testName)
-{
-    if (m_instance)
-        m_instance->updateToggleAction(testName);
-}
-
-void TestContextMenu::updateSingleTestAction(const QString &testName)
-{
-    if (m_instance)
-        m_instance->updateSingleTestAction(testName);
-}
-
-TestContextMenuPrivate::TestContextMenuPrivate(QObject *widget)
-{
-    m_testInsertUnitOrSystemTestAction = new QAction(widget);
-    m_testInsertUnitOrSystemTestAction->setEnabled(false);
-
-    m_editorInsertTestFunctionAction = new QAction(widget);
-    m_editorInsertTestFunctionAction->setEnabled(false);
-
-    m_testRunAction = new QAction(widget);
-    m_testRunAction->setIcon(QIcon(QPixmap(QLatin1String(":/testrun.png"))));
-    m_testRunAsManualAction = new QAction(widget);
-    m_testRunAsManualAction->setIcon(QIcon(QPixmap(QLatin1String(":/testrun.png"))));
-    m_testDebugAction = new QAction(widget);
-    m_testDebugAction->setIcon(QIcon(QPixmap(QLatin1String(":/testlearn.png"))));
-    m_editorRunSingleTestAction = new QAction(widget);
-    m_editorRunSingleTestAction->setIcon(QIcon(QPixmap(QLatin1String(":/testrun.png"))));
-    m_editorRunSingleTestAction->setVisible(false);
-
-    m_testStopTestingAction = new QAction(widget);
-    m_testStopTestingAction->setIcon(QIcon(QPixmap(QLatin1String(":/teststop.png"))));
-    m_editorStopTestingAction = new QAction(widget);
-    m_editorStopTestingAction->setIcon(QIcon(QPixmap(QLatin1String(":/teststop.png"))));
-
-    m_testLearnAction = new QAction(widget);
-    m_testLearnAction->setCheckable(true);
-    m_testLearnAction->setChecked(m_testSettings.learnMode() == 1);
-    QObject::connect(m_testLearnAction, SIGNAL(toggled(bool)), this, SLOT(onLearnChanged()));
-    m_testLearnAllAction = new QAction(widget);
-    m_testLearnAllAction->setCheckable(true);
-    m_testLearnAllAction->setChecked(m_testSettings.learnMode() == 2);
-    QObject::connect(m_testLearnAllAction, SIGNAL(toggled(bool)), this, SLOT(onLearnAllChanged()));
-
-    m_testLocalSettingsAction = new QAction(widget);
-    m_testToggleCurrentSelectAction = new QAction(widget);
-    m_testSelectAllTestsAction = new QAction(widget);
-    m_testSelectAllManualTestsAction = new QAction(widget);
-    m_testDeselectAllTestsAction = new QAction(widget);
-    m_testGroupsAction = new QAction(widget);
-    m_testRescanAction = new QAction(widget);
-    m_testOpenIncludeFileAction = new QAction(widget);
-
-    languageChange();
-
-    Core::ICore *core = Core::ICore::instance();
-    Core::EditorManager* em = core->editorManager();
-    QObject::connect(em, SIGNAL(currentEditorChanged(Core::IEditor*)),
-         this, SLOT(editorChanged(Core::IEditor*)), Qt::DirectConnection);
-}
-
-TestContextMenuPrivate::~TestContextMenuPrivate()
-{
-}
-
-void TestContextMenuPrivate::init(QMenu *testMenu, int mode, QObject *widget)
-{
-    if (mode == 0) {
-        // menu bar at the top
-        testMenu->addAction(m_testInsertUnitOrSystemTestAction);
-        testMenu->addAction(m_editorInsertTestFunctionAction);
-        testMenu->addSeparator();
-        testMenu->addAction(m_testRunAction);
-        testMenu->addAction(m_testRunAsManualAction);
-        testMenu->addAction(m_testDebugAction);
-        testMenu->addAction(m_testStopTestingAction);
-        testMenu->addSeparator();
-        testMenu->addAction(m_testRescanAction);
-        testMenu->addAction(m_testLearnAction);
-        testMenu->addAction(m_testLearnAllAction);
-    } else if (mode == 1) {
-        // context menu in test selection navigator
-        testMenu->addAction(m_testToggleCurrentSelectAction);
-        testMenu->addAction(m_testSelectAllTestsAction);
-        testMenu->addAction(m_testSelectAllManualTestsAction);
-        testMenu->addAction(m_testGroupsAction);
-        testMenu->addAction(m_testDeselectAllTestsAction);
-        testMenu->addSeparator();
-        testMenu->addAction(m_testInsertUnitOrSystemTestAction);
-        testMenu->addSeparator();
-        testMenu->addAction(m_testRunAction);
-        testMenu->addAction(m_testRunAsManualAction);
-        testMenu->addAction(m_testDebugAction);
-        testMenu->addAction(m_testStopTestingAction);
-        testMenu->addSeparator();
-        testMenu->addAction(m_testRescanAction);
-        if (widget) {
-            QObject::connect(m_testGroupsAction, SIGNAL(triggered(bool)),
-                widget, SLOT(selectGroup()), Qt::DirectConnection);
-            QObject::connect(m_testInsertUnitOrSystemTestAction, SIGNAL(triggered(bool)),
-                widget, SLOT(testInsertUnitOrSystemTest()), Qt::DirectConnection);
-            QObject::connect(m_testRescanAction, SIGNAL(triggered(bool)),
-                widget, SLOT(rescan()), Qt::DirectConnection);
-        }
-    } else if (mode == 2) {
-        // context menu in CPP or JS editor
-        testMenu->addSeparator();
-        testMenu->addAction(m_editorInsertTestFunctionAction);
-        testMenu->addSeparator();
-        testMenu->addAction(m_editorRunSingleTestAction);
-        testMenu->addAction(m_editorStopTestingAction);
-        testMenu->addSeparator();
-    } else if (mode == 3) {
-        // Acttons handled by QtTestPlugin
-        QObject::connect(m_testRunAction, SIGNAL(triggered(bool)),
-            widget, SLOT(testRun()), Qt::DirectConnection);
-        QObject::connect(m_testRunAsManualAction, SIGNAL(triggered(bool)),
-            widget, SLOT(testRunAsManual()), Qt::DirectConnection);
-        QObject::connect(m_testDebugAction, SIGNAL(triggered(bool)),
-            widget, SLOT(testDebug()), Qt::DirectConnection);
-        QObject::connect(m_testStopTestingAction, SIGNAL(triggered(bool)),
-            widget, SLOT(stopTesting()), Qt::DirectConnection);
-        QObject::connect(m_editorRunSingleTestAction, SIGNAL(triggered(bool)),
-            widget, SLOT(testRunSingle()), Qt::DirectConnection);
-        QObject::connect(m_editorStopTestingAction, SIGNAL(triggered(bool)),
-            widget, SLOT(stopTesting()), Qt::DirectConnection);
-        QObject::connect(m_editorInsertTestFunctionAction, SIGNAL(triggered(bool)),
-            widget, SLOT(insertTestFunction()), Qt::DirectConnection);
-    }
-}
-
-void TestContextMenuPrivate::onOpenIncludeFile()
-{
-    emit openIncludeFile(m_includeFile);
-}
-
-void TestContextMenuPrivate::updateToggleAction(const QString &testName)
-{
-    m_testToggleCurrentSelectAction->setVisible(!testName.isEmpty());
-    m_testToggleCurrentSelectAction->setText(testName);
-}
-
-void TestContextMenuPrivate::updateSingleTestAction(const QString &testName)
-{
-    m_editorRunSingleTestAction->setVisible(!testName.isEmpty());
-    m_editorRunSingleTestAction->setText(tr("Run: '%1'").arg(testName));
-}
-
-void TestContextMenuPrivate::updateActions(bool testVisible, bool testBusy, bool testStopped)
-{
-    m_testInsertUnitOrSystemTestAction->setEnabled(testVisible);
-    m_editorInsertTestFunctionAction->setEnabled(testVisible);
-    m_testRunAction->setEnabled(!testBusy);
-    m_testRunAsManualAction->setEnabled(!testBusy);
-    m_testDebugAction->setEnabled(!testBusy);
-    m_editorRunSingleTestAction->setEnabled(!testBusy);
-    m_testStopTestingAction->setEnabled(testBusy && !testStopped);
-    m_editorStopTestingAction->setEnabled(testBusy && !testStopped);
-}
-
-void TestContextMenuPrivate::enableIncludeFile(const QString &fileName)
-{
-    m_includeFile = fileName;
-    m_testOpenIncludeFileAction->setText(tr("Open: '%1'").arg(fileName));
-    m_testOpenIncludeFileAction->setVisible(!fileName.isEmpty());
-}
-
-void TestContextMenuPrivate::languageChange()
-{
-    m_testInsertUnitOrSystemTestAction->setText(tr("New Test..."));
-    m_testInsertUnitOrSystemTestAction->setStatusTip(
-        tr("Add a new unit/integration/performance/system test to the currently selected application, library or plugin."));
-
-    m_editorInsertTestFunctionAction->setText(tr("&New Test Function..."));
-    m_editorInsertTestFunctionAction->setStatusTip(
-        tr("Add a new test function to the currently selected test."));
-
-    m_testRunAction->setText(tr("&Run All Selected Tests"));
-    m_testRunAction->setStatusTip(
-        tr("Run all currently selected tests. For manual tests a dialog will pop up with a documented set of manual test steps."));
-    m_testRunAsManualAction->setText(tr("&Run All Selected Tests as Manual"));
-    m_testRunAsManualAction->setStatusTip(
-        tr("Run all currently checked tests as manual tests, i.e. automated tests will be converted into a documented set of manual steps and then shown in a dialog."));
-    m_testDebugAction->setText(tr("&Debug All Selected Tests"));
-    m_testDebugAction->setStatusTip(tr("Debug all currently selected tests."));
-    m_editorRunSingleTestAction->setText(tr("&Run"));
-    m_editorRunSingleTestAction->setStatusTip(tr("Run currently edited test."));
-
-    m_testStopTestingAction->setText(tr("Stop Testing"));
-    m_testStopTestingAction->setStatusTip(tr("Stop the execution of the current test."));
-    m_editorStopTestingAction->setText(tr("Stop Testing"));
-    m_editorStopTestingAction->setStatusTip(tr("Stop the execution of the current test."));
-
-    m_testLearnAction->setText(tr("Learn New"));
-    m_testLearnAction->setStatusTip(tr("Learn test data (snapshots and so on) for new tests."));
-
-    m_testLearnAllAction->setText(tr("Learn All"));
-    m_testLearnAllAction->setStatusTip(
-        tr("Learn test data (snapshots and so on) for new tests and re-learn data for existing tests."));
-
-    m_testGroupsAction->setText(tr("Select by Groups"));
-    m_testGroupsAction->setStatusTip(tr("Select tests based on a group."));
-
-    m_testRescanAction->setText(tr("Rescan All Tests"));
-    m_testRescanAction->setStatusTip(tr("Rescan all tests."));
-
-    m_testToggleCurrentSelectAction->setText(tr("Toggle Selection"));
-    m_testToggleCurrentSelectAction->setStatusTip(tr("Toggle selection of currently selected test(s)."));
-
-    m_testSelectAllTestsAction->setText(tr("Select All Tests"));
-    m_testSelectAllTestsAction->setStatusTip(tr("Select all available tests for testing."));
-
-    m_testSelectAllManualTestsAction->setText(tr("Select All Manual Tests"));
-    m_testSelectAllManualTestsAction->setStatusTip(tr("Select all manual tests for testing."));
-
-    m_testDeselectAllTestsAction->setText(tr("Deselect All Tests"));
-    m_testDeselectAllTestsAction->setStatusTip(tr("Exclude all tests from testing."));
-
-    m_testOpenIncludeFileAction->setText(tr("Open:"));
-    m_testOpenIncludeFileAction->setStatusTip(tr("Open the specified include file."));
-}
-
-void TestContextMenuPrivate::editorChanged(Core::IEditor *iface)
-{
-    bool isTestcase = false;
-
-    if (iface) {
-        QString fname = iface->displayName();
-        isTestcase = ((fname.endsWith(QLatin1String(".qtt")) || fname.endsWith(QLatin1String(".cpp")))
-            && (fname.startsWith(QLatin1String("tst_")) || fname.startsWith(QLatin1String("sys_"))
-            || fname.startsWith(QLatin1String("int_")) || fname.startsWith(QLatin1String("prf_"))));
-    }
-
-    if (isTestcase) {
-        TestCollection tc;
-        TestCode *code =
-            tc.findCode(QDir::toNativeSeparators(iface->file()->fileName()), QString(), QString());
-        isTestcase = (code != 0);
-        // Only show "run single test" in context menu if the testcase file is
-        // visible (i.e. has focus) in the editor
-        m_editorRunSingleTestAction->setVisible(isTestcase
-            && m_editorRunSingleTestAction->text().contains(code->testCase()));
-    } else {
-        m_editorRunSingleTestAction->setVisible(false);
-    }
-
-    m_editorInsertTestFunctionAction->setVisible(isTestcase);
-    m_editorStopTestingAction->setVisible(isTestcase);
-}
-
-
-void TestContextMenuPrivate::onLearnChanged()
-{
-    if (m_testLearnAction->isChecked()) {
-        if (m_testLearnAllAction->isChecked())
-            m_testLearnAllAction->setChecked(false);
-        m_testSettings.setLearnMode(1);
-    } else {
-        m_testSettings.setLearnMode(0);
-    }
-}
-
-void TestContextMenuPrivate::onLearnAllChanged()
-{
-    if (m_testLearnAllAction->isChecked()) {
-        if (m_testLearnAction->isChecked())
-            m_testLearnAction->setChecked(false);
-        m_testSettings.setLearnMode(2);
-    } else {
-        m_testSettings.setLearnMode(0);
-    }
-}
diff --git a/src/plugins/qttest/testcontextmenu.h b/src/plugins/qttest/testcontextmenu.h
deleted file mode 100644
index 834e1cbe428045dc0c313256852d46e24c36086b..0000000000000000000000000000000000000000
--- a/src/plugins/qttest/testcontextmenu.h
+++ /dev/null
@@ -1,122 +0,0 @@
-/**************************************************************************
-**
-** This file is part of Qt Creator
-**
-** Copyright (c) 2011 Nokia Corporation and/or its subsidiary(-ies).
-**
-** Contact: Nokia Corporation (info@qt.nokia.com)
-**
-**
-** GNU Lesser General Public License Usage
-**
-** This file may be used under the terms of the GNU Lesser General Public
-** License version 2.1 as published by the Free Software Foundation and
-** appearing in the file LICENSE.LGPL included in the packaging of this file.
-** Please review the following information to ensure the GNU Lesser General
-** Public License version 2.1 requirements will be met:
-** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Nokia gives you certain additional
-** rights. These rights are described in the Nokia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** Other Usage
-**
-** Alternatively, this file may be used in accordance with the terms and
-** conditions contained in a signed written agreement between you and Nokia.
-**
-** If you have questions regarding the use of this file, please contact
-** Nokia at info@qt.nokia.com.
-**
-**************************************************************************/
-
-#ifndef TESTCONTEXTMENU_H
-#define TESTCONTEXTMENU_H
-
-#include "testsettings.h"
-
-namespace Core {
-class IEditor;
-}
-
-QT_BEGIN_NAMESPACE
-class QAction;
-class QMenu;
-QT_END_NAMESPACE
-
-class TestContextMenuPrivate;
-
-class TestContextMenu : public QObject
-{
-    Q_OBJECT
-public:
-    TestContextMenu(QObject *widget);
-    ~TestContextMenu();
-    void init(QMenu *testMenu, int mode, QObject *widget);
-    void languageChange();
-    void updateActions(bool testVisible, bool testBusy, bool testStopped);
-    void updateToggleAction(const QString &testName);
-    void updateSingleTestAction(const QString &testName);
-
-signals:
-    void selectAllTests();
-    void deselectAllTests();
-    void selectAllManualTests();
-    void toggleSelection();
-
-private:
-    static TestContextMenuPrivate *m_instance;
-    static int m_refCount;
-};
-
-class TestContextMenuPrivate : public QObject
-{
-    Q_OBJECT
-public:
-    TestContextMenuPrivate(QObject *widget);
-    ~TestContextMenuPrivate();
-
-    void init(QMenu *testMenu, int mode, QObject *widget);
-    void languageChange();
-    void updateActions(bool testVisible, bool testBusy, bool testStopped);
-    void updateToggleAction(const QString &testName);
-    void updateSingleTestAction(const QString &testName);
-    void enableIncludeFile(const QString &fileName);
-
-    QAction *m_testInsertUnitOrSystemTestAction;
-    QAction *m_testRunAction;
-    QAction *m_testRunAsManualAction;
-    QAction *m_testDebugAction;
-    QAction *m_testStopTestingAction;
-
-    QAction *m_testLearnAction;
-    QAction *m_testLearnAllAction;
-
-    QAction *m_testLocalSettingsAction;
-    QAction *m_testToggleCurrentSelectAction;
-    QAction *m_testSelectAllTestsAction;
-    QAction *m_testSelectAllManualTestsAction;
-    QAction *m_testDeselectAllTestsAction;
-    QAction *m_testGroupsAction;
-    QAction *m_testRescanAction;
-    QAction *m_testOpenIncludeFileAction;
-
-    QAction *m_editorInsertTestFunctionAction;
-    QAction *m_editorRunSingleTestAction;
-    QAction *m_editorStopTestingAction;
-
-signals:
-    void openIncludeFile(const QString &filename);
-
-private slots:
-    void onOpenIncludeFile();
-    void editorChanged(Core::IEditor *iface);
-    void onLearnChanged();
-    void onLearnAllChanged();
-
-private:
-    QString m_includeFile;
-    TestSettings m_testSettings;
-};
-
-#endif // TESTCONTEXTMENU_H
diff --git a/src/plugins/qttest/testexecuter.cpp b/src/plugins/qttest/testexecuter.cpp
deleted file mode 100644
index 9003d980bd28086b8870ff1766b35e1d42c23752..0000000000000000000000000000000000000000
--- a/src/plugins/qttest/testexecuter.cpp
+++ /dev/null
@@ -1,1361 +0,0 @@
-/**************************************************************************
-**
-** This file is part of Qt Creator
-**
-** Copyright (c) 2011 Nokia Corporation and/or its subsidiary(-ies).
-**
-** Contact: Nokia Corporation (info@qt.nokia.com)
-**
-**
-** GNU Lesser General Public License Usage
-**
-** This file may be used under the terms of the GNU Lesser General Public
-** License version 2.1 as published by the Free Software Foundation and
-** appearing in the file LICENSE.LGPL included in the packaging of this file.
-** Please review the following information to ensure the GNU Lesser General
-** Public License version 2.1 requirements will be met:
-** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Nokia gives you certain additional
-** rights. These rights are described in the Nokia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** Other Usage
-**
-** Alternatively, this file may be used in accordance with the terms and
-** conditions contained in a signed written agreement between you and Nokia.
-**
-** If you have questions regarding the use of this file, please contact
-** Nokia at info@qt.nokia.com.
-**
-**************************************************************************/
-
-#include "testexecuter.h"
-#include "testgenerator.h"
-#include "qsystem.h"
-#include "testsuite.h"
-#include "testoutputwindow.h"
-#include "resultsview.h"
-#include "testconfigurations.h"
-#include "ui_recorddlg.h"
-
-#include <coreplugin/icore.h>
-#include <coreplugin/progressmanager/progressmanager.h>
-#include <coreplugin/progressmanager/futureprogress.h>
-#include <texteditor/basetexteditor.h>
-#include <qt4projectmanager/qt4buildconfiguration.h>
-#include <qtsupport/qtversionmanager.h>
-#include <projectexplorer/target.h>
-
-#include <utils/stylehelper.h>
-
-#include <stdlib.h>
-#ifndef Q_OS_WIN
-# include <unistd.h>
-#endif
-#include <sys/types.h>
-#include <signal.h>
-
-#include <QDir>
-#include <QTimer>
-#include <QProcess>
-#include <QMessageBox>
-#include <QRegExp>
-
-TestExecuter *TestExecuter::m_instance = 0;
-
-TestExecuter *TestExecuter::instance()
-{
-    if (!m_instance)
-        m_instance = new TestExecuter();
-    return m_instance;
-}
-
-TestExecuter::TestExecuter() :
-    m_recordedEventsEdit(0),
-    m_lastFinishedTest(QString())
-{
-#ifdef QTTEST_DEBUGGER_SUPPORT
-    m_debugEngine = 0;
-#endif
-    m_selectedTests.clear();
-
-    m_curTestCode = 0;
-    m_testCfg = 0;
-    m_testBusy = false;
-    m_runRequired = false;
-    m_stopTesting = false;
-    m_manualStop = false;
-    m_killTestRequested = false;
-    m_testOutputFile = QString::fromLatin1("$HOME%1.qttest%1last_test_output").arg(QDir::separator());
-    m_pendingFailure = false;
-    m_inBuildMode = false;
-    m_recordingEvents = false;
-    m_abortRecording = false;
-    m_progressBar = 0;
-    m_testResultsStream = 0;
-    m_peekedResult.clear();
-
-    m_executer.setReadChannelMode(QProcess::MergedChannels);
-    m_executer.setReadChannel(QProcess::StandardOutput);
-    QObject::connect(&m_executer, SIGNAL(readyReadStandardOutput()),
-        this, SLOT(parseOutput()), Qt::DirectConnection);
-
-    QObject::connect(&m_executer, SIGNAL(finished(int,QProcess::ExitStatus)),
-        this, SLOT(onExecuterFinished()), Qt::DirectConnection);
-
-#ifndef QTTEST_PLUGIN_LEAN
-    QObject::connect(QTestIDE::instance(), SIGNAL(syntaxError(QString,QString,int)),
-        this, SLOT(syntaxError(QString,QString,int)));
-    QObject::connect(&qscriptSystemTest, SIGNAL(testResult(QVariantMap)),
-        this, SLOT(onTestResult(QVariantMap)));
-#endif
-}
-
-TestExecuter::~TestExecuter()
-{
-    m_instance = 0;
-}
-
-void TestExecuter::manualStop()
-{
-    if (m_manualStop)
-        return;
-    emit testStop();
-
-    m_manualStop = true;
-#ifndef QTTEST_PLUGIN_LEAN
-    if (m_curTestCode && m_curTestCode->testType() == TestCode::TypeSystemTest)
-        QTestIDE::instance()->abortTest();
-#endif
-
-    stopTesting();
-
-    if (m_progressBar)
-        m_progressBar->reportCanceled();
-    if (m_progressLabel)
-        m_progressLabel->setText(tr("Stopping..."));
-}
-
-void TestExecuter::stopTesting()
-{
-    m_killTestRequested = false;
-    m_stopTesting = true;
-    m_executer.terminate();
-    if (!m_executer.waitForFinished(5000))
-        m_executer.kill();
-}
-
-QWidget *TestExecuter::createProgressWidget()
-{
-    m_progressLabel = new QLabel;
-    m_progressLabel->setAlignment(Qt::AlignCenter);
-    // ### TODO this setup should be done by style
-    QFont f = m_progressLabel->font();
-    f.setBold(true);
-    f.setPointSizeF(Utils::StyleHelper::sidebarFontSize());
-    m_progressLabel->setFont(f);
-    m_progressLabel->setPalette(Utils::StyleHelper::sidebarFontPalette(m_progressLabel->palette()));
-    return m_progressLabel;
-}
-
-void TestExecuter::runTests(bool singleTest, bool forceManual)
-{
-    if (m_testBusy)
-        return;
-
-    m_selectedTests.clear();
-    if (singleTest) {
-        QString tmp = TestConfigurations::instance().currentTestCase();
-        if (!tmp.isEmpty() && !TestConfigurations::instance().currentTestFunction().isEmpty())
-            tmp += "::" + TestConfigurations::instance().currentTestFunction();
-        if (!tmp.isEmpty())
-            m_selectedTests = QStringList(tmp);
-    } else {
-        m_selectedTests = TestConfigurations::instance().selectedTests();
-    }
-    if (m_selectedTests.count() == 0) {
-        testOutputPane()->append(tr("No test selected"));
-        endTest();
-        return;
-    }
-    runSelectedTests(forceManual);
-}
-
-void TestExecuter::runSelectedTests(bool forceManual)
-{
-    if (m_testBusy)
-        return;
-    m_testBusy = true;
-    emit testStarted();
-
-    m_manualStop = false;
-
-    testOutputPane()->clear();
-
-    int maxProgress = 0;
-    m_lastFinishedTest.clear();
-    QString lastTc;
-    bool lastIsSystemTest = false;
-    // pretend we executed these tests - so the progress bar keeps counting nicely.
-    foreach (const QString &item, m_selectedTests) {
-        QString tmp = item.left(item.indexOf("::"));
-        if (lastTc != tmp) {
-            lastTc = tmp;
-            ++maxProgress;
-
-            TestCode *tmp = m_testCollection.findCodeByTestCaseName(lastTc);
-            if (tmp && tmp->testType() == TestCode::TypeSystemTest)
-                lastIsSystemTest = true;
-        } else if (lastIsSystemTest) {
-            ++maxProgress;
-        }
-    }
-
-    m_testCfg = TestConfigurations::instance().activeConfiguration();
-    if (!m_testCfg) {
-        testOutputPane()->append(tr("No test configuration defined. This is unusual."));
-        endTest();
-        return;
-    }
-
-    m_pendingInsertions.clear();
-    TestResultsWindow::instance()->clearContents();
-    testOutputPane()->append(tr("*********** Start testing  *************"));
-
-    TestResultsWindow::instance()->popup();
-
-    m_curTestCode = 0;
-    QString changeNo;
-    QString lastConfigName;
-    QString lastPlatform;
-    QString lastBranch;
-    m_testCfg = 0;
-    m_testFailedUnexpectedly = false;
-
-    bool uploadResults = false;
-
-    if (m_progressBar == 0)
-        m_progressBar = new QFutureInterface<void>;
-    QFutureWatcher<void> fw;
-    fw.setFuture(m_progressBar->future());
-    Core::FutureProgress *progress =
-        Core::ICore::instance()->progressManager()->addTask(m_progressBar->future(),
-        tr("Testing"), "QtTest::TestExecuter::Testing", Core::ProgressManager::KeepOnFinish);
-    progress->setWidget(createProgressWidget());
-    connect(progress, SIGNAL(clicked()), TestResultsWindow::instance(), SLOT(popup()));
-    connect(&fw, SIGNAL(canceled()), this, SLOT(manualStop()));
-
-    m_progress = 0;
-    m_progressBar->setProgressRange(0, maxProgress);
-    m_progressBar->reportStarted();
-    m_progressBar->setProgressValueAndText(0, tr("Just started"));
-
-    m_progressFailCount = 0;
-    m_progressPassCount = 0;
-
-    while (!m_manualStop && getNextTest()) {
-        m_progressBar->setProgressValue(m_progress++);
-        if (!testStopped())
-            m_progressLabel->setText(tr("%1 failed\n%2 passed")
-                .arg(m_progressFailCount).arg(m_progressPassCount));
-
-        // Is this a valid test?
-        if (!m_curTestCode) {
-            addTestResult("CFAIL", QString(), "Path '" + m_curTestCode->actualFileName()
-                + "' does not contain a valid testcase");
-            continue;
-        }
-
-        m_testCfg = TestConfigurations::instance().findConfig(m_curTestCode->actualBasePath());
-        if (!m_testCfg) {
-            testOutputPane()->append(tr("Test configuration for '%1' not found. Skipping test.").arg(m_curTestCode->actualFileName()));
-            continue;
-        }
-
-        if (m_testCfg->configName() != lastConfigName) {
-            if (uploadResults && !lastConfigName.isEmpty())
-                m_testResultUploader.uploadResultsToDatabase(saveResults(changeNo, lastPlatform, lastBranch),
-                    m_testCfg);
-
-            uploadResults = m_testCfg->uploadResults();
-            if (!uploadResults)
-                testOutputPane()->append(tr("Test results will not be uploaded into the results database."));
-            QSystem::unsetEnvKey(m_testCfg->buildEnvironment(), "QTEST_COLORED");
-            QSystem::addEnvPath(m_testCfg->buildEnvironment(), "PATH",
-                m_testCfg->buildPath() + QDir::separator() + "bin");
-
-            if (uploadResults) {
-                QRegExp validBranchRegEx(QLatin1String("^(.+)-(.+)"));
-                QRegExp validBranchSpecializationRegEx(QLatin1String(".*"));
-                if (m_testCfg->uploadBranch().isEmpty() || !validBranchRegEx.exactMatch(m_testCfg->uploadBranch())) {
-                    testOutputPane()->append(tr("-- ATTENTION: Uploading of test results failed. No branch specified or branch "
-                        "name \"%1\" is not in form: \n\t<Product>-<Version>\n. Check \"Branch\" value in Test Settings.")
-                        .arg(m_testCfg->uploadBranch()));
-                    uploadResults = false;
-                } else {
-                    if (!m_testCfg->uploadBranchSpecialization().isEmpty() && !validBranchSpecializationRegEx.exactMatch(m_testCfg->uploadBranchSpecialization())) {
-                        testOutputPane()->append(tr("-- ATTENTION: Uploading of test results failed. "
-                            "Optional Branch specialization value \"%1\" is not in form: \n\t<Specialization>\n. "
-                            "Check \"Branch\" \"Specialization\" value in Test Settings.")
-                            .arg(m_testCfg->uploadBranchSpecialization()));
-                        uploadResults = false;
-                    } else {
-                        lastBranch = m_testCfg->uploadBranch();
-                        if (!m_testCfg->uploadBranchSpecialization().isEmpty())
-                            lastBranch += QLatin1String("-") + m_testCfg->uploadBranchSpecialization();
-                        testOutputPane()->append(tr("Tested branch: %1").arg(lastBranch));
-                    }
-                }
-
-                lastPlatform = m_testCfg->QMAKESPEC();
-                if (lastPlatform.isEmpty()) {
-                    testOutputPane()->append(tr("-- ATTENTION: Uploading of test results failed. "
-                        "No QMAKESPEC specified. Set QMAKESPEC in project's build environment "
-                        "or set a custom \"QMakespec\" value in Test Settings."));
-                    uploadResults = false;
-                } else {
-                    QRegExp validQmakespecSpecializationRegEx(QLatin1String(".*"));
-                    QString lastPlatformSpecialization = m_testCfg->QMAKESPECSpecialization();
-                    if (!lastPlatformSpecialization.isEmpty() && !validQmakespecSpecializationRegEx.exactMatch(lastPlatformSpecialization)) {
-                        testOutputPane()->append(tr("-- ATTENTION: Uploading of test results failed. "
-                            "QMAKESPEC \"Specialization\" \"%1\" not in form: \n\t <Specialization>\n. "
-                            "Set the QMAKESPEC specialization value in Test Settings or clear its current value.")
-                            .arg(lastPlatformSpecialization));
-                        uploadResults = false;
-                    } else {
-                        if (!lastPlatformSpecialization.isEmpty())
-                            lastPlatform += QLatin1String("_") + lastPlatformSpecialization;
-                        testOutputPane()->append(tr("Tested platform: %1").arg(lastPlatform));
-                    }
-                }
-
-                changeNo = m_testCfg->uploadChange();
-                if (changeNo.isEmpty()) {
-                    testOutputPane()->append(tr("-- ATTENTION: Uploading of test results failed. "
-                        "No changeNumber specified. Set a custom \"Change\" value in Test Settings."));
-                    uploadResults = false;
-                } else {
-                    testOutputPane()->append(tr("Testing change: %1").arg(changeNo));
-                }
-                testOutputPane()->append(tr("Tester: %1").arg(QSystem::userName()));
-                testOutputPane()->append(tr("Host machine: %1").arg(sanitizedForFilename(QSystem::hostName())));
-            }
-        }
-
-        lastConfigName = m_testCfg->configName();
-
-        testOutputPane()->append(QString());
-        bool ok = buildTestCase();
-        if (ok && !m_manualStop)
-            ok = runTestCase(forceManual);
-        if (ok && !m_manualStop)
-            ok = postProcess();
-    }
-    m_progressBar->setProgressValue(m_progress);
-
-    if (testStopped()) {
-        testOutputPane()->append(tr("-- Testing halted by user"));
-    } else {
-        m_progressLabel->setText(tr("%1 failed\n%2 passed")
-            .arg(m_progressFailCount).arg(m_progressPassCount));
-
-        if (uploadResults) {
-            // save the xml results and upload files to version control and xml results to database
-            m_testResultUploader.uploadResultsToDatabase(saveResults(changeNo, lastPlatform, lastBranch), m_testCfg);
-        }
-    }
-
-    testOutputPane()->append(QString());
-    testOutputPane()->append(tr("******** All testing finished **********"));
-
-    TestResultsWindow::instance()->popup();
-
-    if (m_progressFailCount > 0)
-        m_progressBar->reportCanceled();
-    m_progressBar->reportFinished();
-
-    applyPendingInsertions();
-
-    delete m_progressBar;
-    m_progressBar = 0;
-    endTest();
-}
-
-void TestExecuter::endTest()
-{
-    m_testBusy = false;
-    if (m_progressLabel && m_manualStop)
-        m_progressLabel->setText(tr("Cancelled"));
-
-    emit testFinished();
-}
-
-bool TestExecuter::buildTestCase()
-{
-    m_syntaxError.clear();
-
-    if (!m_testCfg) {
-        testOutputPane()->append(tr("No test configuration defined: building test case aborted"));
-        return false;
-    }
-
-    QString realTc = m_curTestCode->targetFileName(m_testCfg->buildPath());
-
-    // Make sure build directory exists
-    QFileInfo tgtInf(realTc);
-    QString tgtPath = QDir::convertSeparators(tgtInf.absolutePath());
-    QDir().mkpath(tgtPath);
-
-    testOutputPane()->append(tr("********** Build %1 **********").arg(tgtInf.baseName()));
-
-    QString proFile = m_curTestCode->projectFileName();
-    if (proFile.isEmpty()) {
-        addTestResult("CFAIL", QString(), "No .pro file found.");
-        return false;
-    }
-    m_inBuildMode = true;
-    bool isSystemTest = (m_curTestCode->testType() == TestCode::TypeSystemTest);
-    bool ok = exec(m_testCfg->qmakeCommand(isSystemTest), QStringList() << proFile, tgtPath);
-
-    if (ok && m_curTestCode->testType() != TestCode::TypeSystemTest) {
-        if (m_testCfg->makeCommand().isEmpty()) {
-            const QString path = QSystem::envKey(m_testCfg->buildEnvironment(), "PATH");
-            testOutputPane()->append(tr("-- No 'make' or 'nmake' instance found in PATH (%1).").arg(path));
-            return false;
-        }
-
-        ok = exec(m_testCfg->makeCommand(), QStringList(), tgtPath);
-    }
-    m_inBuildMode = false;
-
-    return ok;
-}
-
-bool TestExecuter::postProcess()
-{
-    if (!m_testCfg) {
-        testOutputPane()->append(tr("No test configuration defined: post processing results aborted"));
-        return false;
-    }
-
-    QString cmd = m_testCfg->postProcessScript();
-    if (cmd.isEmpty())
-        return true;
-
-    QSystem::setEnvKey(m_testCfg->buildEnvironment(), "TEST_OUTPUT_FILE", m_testOutputFile);
-    QSystem::processEnvValue(m_testCfg->buildEnvironment(), cmd);
-
-    if (exec(cmd,QStringList()))
-        return true;
-
-    addTestResult("FAIL", QString(),
-                  QString::fromLatin1("Could not run postprocess script on Test Case '%1'").arg(m_curTestCode->actualFileName()));
-    return false;
-}
-
-bool xmlLineStartsWith(QString &line, const QString &expression, QString &variable)
-{
-    if (line.startsWith(expression)) {
-        variable = line.mid(expression.length());
-        variable = variable.left(variable.indexOf(QLatin1Char('"')));
-        variable = variable.left(variable.indexOf("</"));
-        return !variable.isEmpty();
-    }
-    return false;
-}
-
-bool xmlLineCData(QString &line, const QString &expression, QString &variable)
-{
-    if (line.startsWith(expression)) {
-        int pos = line.indexOf("<![CDATA[");
-        if (pos > 0) {
-            variable = line.mid(pos+9);
-            variable = variable.left(variable.indexOf("]]>"));
-            return !variable.isEmpty();
-        }
-    }
-    return false;
-}
-
-void xmlLineVariable(QString &line, const QString &expression, QString &variable)
-{
-    int pos = line.indexOf(expression);
-    if (pos > 0) {
-        variable = line.mid(pos+expression.length()+1);
-        variable = variable.left(variable.indexOf(QLatin1Char('"')));
-    }
-}
-
-bool TestExecuter::canReadLine()
-{
-    if (m_testResultsStream) {
-        if (!m_peekedResult.isEmpty())
-            return true;
-        return !m_testResultsStream->atEnd();
-    } else {
-        return m_executer.canReadLine();
-    }
-}
-
-QString TestExecuter::readLine()
-{
-    if (m_testResultsStream) {
-        if (!m_peekedResult.isEmpty()) {
-            QString tmp = m_peekedResult;
-            m_peekedResult.clear();
-            return tmp;
-        }
-        return m_testResultsStream->readLine();
-    } else {
-        return m_executer.readLine();
-    }
-}
-
-QStringList TestExecuter::peek()
-{
-    if (m_testResultsStream) {
-        QStringList tmp;
-        if (!m_peekedResult.isEmpty()) {
-            tmp.append(m_peekedResult);
-            m_peekedResult.clear();
-        }
-        while (!m_testResultsStream->atEnd()) {
-            QString line = m_testResultsStream->readLine();
-            if (line.startsWith(QLatin1Char(' '))) {
-                tmp.append(line);
-            } else {
-                m_peekedResult = line;
-                return tmp;
-            }
-        }
-        m_peekedResult.clear();
-        return tmp;
-    } else {
-        QByteArray data = m_executer.peek(1024);
-        QStringList tmp;
-        QStringList lines = QString(data).split(QLatin1Char('\n'));
-        for (int i = 0; i < lines.size(); ++i) {
-            if (lines[i].startsWith(QLatin1Char(' ')))
-                tmp.append(lines[i]);
-            else
-                return tmp;
-        }
-        return tmp;
-    }
-}
-
-void TestExecuter::parseOutput()
-{
-    if (!m_testCfg) {
-        testOutputPane()->append(tr("No test configuration defined: parsing output aborted"));
-        return;
-    }
-
-    // if we get more output _after_ we have started the kill timer, we cancel the operation
-    // and leave it to the user to terminate a hanging test.
-    m_killTestRequested = false;
-
-    m_executeTimer.start();
-    while (canReadLine()) {
-        QString line = readLine();
-        line = line.trimmed();
-          if (m_inBuildMode) {
-            // Parse build output
-            if (line.contains(" error: ")) {
-                QString file = line.section(QLatin1Char(':'), 0, 0);
-
-                int lineNum = line.section(QLatin1Char(':'), 1, 1).toInt();
-
-                // The error string will continue across multiple lines so need to peek
-                QString errorStr = line.section(QLatin1Char(':'), 3);
-                errorStr.remove(QLatin1Char('\n'));
-                QStringList lines = peek();
-                for (int i = 0; i < lines.size(); ++i)
-                    errorStr.append(QLatin1Char(' ') + lines[i].trimmed());
-
-                addTestResult("CFAIL", QString(), errorStr, file, lineNum);
-            } else {
-                if (!m_testSettings.showVerbose()) {
-                    QStringList tmp = line.split(QLatin1Char(' '));
-                    if (tmp.count() > 0) {
-                        QString cmd = tmp[0];
-                        if (cmd.contains("moc")) {
-                            line = "moc " + tmp[tmp.count()-3].split(QDir::separator()).last();
-                        } else if (cmd.contains("g++") || cmd.contains("gcc")) {
-                            if (tmp[1] == "-c") {
-                                line = cmd + " -c "
-                                    + tmp[tmp.count()-1].split(QDir::separator()).last();
-                            } else if (tmp.contains("-o")) {
-                                int pos = tmp.indexOf("-o");
-                                if (pos > 0 && (pos < tmp.count()-2)) {
-                                    line = cmd + QLatin1Char(' ') + tmp[pos+1].split(QDir::separator()).last();
-                                }
-                            }
-                        }
-                    }
-                }
-            }
-        } else {
-            if (m_xmlMode) {
-                if (line.startsWith(QLatin1String("<?xml version"))) {
-                    m_xmlTestfunction.clear();
-                    m_xmlTestcase.clear();
-                    m_xmlDatatag.clear();
-                    m_xmlFile.clear();
-                    m_xmlLine = "-1";
-                    m_xmlResult.clear();
-                    m_xmlDescription.clear();
-                    m_xmlQtVersion.clear();
-                    m_xmlQtestVersion.clear();
-                    m_xmlLog.clear();
-                    continue;
-                }
-
-                if (!line.isEmpty()) {
-                    m_xmlLog.append(line);
-                    if (line == "</Message>" || line == "</Incident>") {
-                        if (!m_xmlResult.isEmpty()) {
-                            line = m_xmlResult.toUpper();
-
-                            if (line == "FAIL")
-                                line += QLatin1Char('!');
-
-                            while (line.length() < 7)
-                                line += QLatin1Char(' ');
-
-                            QString testDescriptor = m_xmlTestcase + "::"
-                                + m_xmlTestfunction + QLatin1Char('(')+m_xmlDatatag+QLatin1Char(')');
-                            line += ": " + testDescriptor + m_xmlDescription;
-
-                            if (!m_xmlFile.isEmpty())
-                                line += "\nLoc: [" + m_xmlFile + QLatin1Char('(') + m_xmlLine + ")]";
-
-                            if (m_curTestCode->testType() != TestCode::TypeSystemTest) {
-                                if (m_xmlResult.contains("fail") || m_xmlResult.contains("pass")) {
-                                    addTestResult(m_xmlResult.toUpper(), QString(),
-                                        testDescriptor + m_xmlDescription,
-                                        m_xmlFile, m_xmlLine.toInt(), m_xmlDatatag);
-                                }
-                            }
-                        }
-                        m_xmlResult.clear();
-                        m_xmlDescription.clear();
-
-                    } else if (xmlLineCData(line, "<Description>", m_xmlDescription)) {
-                        if (!m_xmlDescription.isEmpty())
-                            m_xmlDescription = QLatin1Char('\n') + m_xmlDescription;
-                        continue;
-
-                    } else if (xmlLineCData(line, "<DataTag>", m_xmlDatatag)) {
-                        continue;
-
-                    } else if (xmlLineStartsWith(line, "<Message type=\"", m_xmlResult)) {
-                        xmlLineVariable(line, "file=", m_xmlFile);
-
-                        if (m_xmlFile.startsWith(m_testCfg->buildPath()))
-                            m_xmlFile = m_xmlFile.replace(m_testCfg->buildPath(), m_testCfg->srcPath());
-
-                        xmlLineVariable(line, "line=", m_xmlLine);
-                        continue;
-
-                    } else if (xmlLineStartsWith(line, "<Incident type=\"", m_xmlResult)) {
-                        xmlLineVariable(line, "file=", m_xmlFile);
-
-                        if (m_xmlFile.startsWith(m_testCfg->buildPath()))
-                            m_xmlFile = m_xmlFile.replace(m_testCfg->buildPath(),m_testCfg->srcPath());
-
-                        xmlLineVariable(line,"line=",m_xmlLine);
-
-                        if (line.endsWith(QLatin1String("/>"))) {
-                            line = m_xmlResult.toUpper();
-                            while (line.length() < 7)
-                                line += QLatin1Char(' ');
-                            QString testDescriptor = m_xmlTestcase + "::"
-                                + m_xmlTestfunction + QLatin1Char('(')+m_xmlDatatag+QLatin1Char(')');
-                            line += ": " + testDescriptor + m_xmlDescription;
-
-                            if (!m_xmlFile.isEmpty())
-                                line += "\nLoc: [" + m_xmlFile + QLatin1Char('(') + m_xmlLine + ")]";
-
-                            if (m_curTestCode->testType() != TestCode::TypeSystemTest) {
-                                if (m_xmlResult.contains("fail") || m_xmlResult.contains("pass")) {
-                                    addTestResult(m_xmlResult.toUpper(), QString(), testDescriptor
-                                        + m_xmlDescription, m_xmlFile, m_xmlLine.toInt(), m_xmlDatatag);
-                                }
-                            }
-                        }
-
-                    } else if (line == "</TestFunction>") {
-                        m_xmlTestfunction.clear();
-                        m_xmlDatatag.clear();
-                        continue;
-
-                    } else if (line == "</TestCase>") {
-                        line = "********* Finished testing of " + m_xmlTestcase + " *********";
-                        m_xmlTestcase.clear();
-                        // In case the testcase hangs at the end, we need a mechanism
-                        // to terminate the process. So set a timer that will kill the
-                        // executer if we haven't heard anything for 1.5 seconds.
-                        m_killTestRequested = true;
-                        QTimer::singleShot(1500, this, SLOT(onKillTestRequested()));
-
-                    } else if (line.startsWith(QLatin1String("</Environment>"))) {
-                        line = "Config: Using QTest library " + m_xmlQtestVersion
-                            + ", Qt " + m_xmlQtVersion;
-
-                    } else if (xmlLineStartsWith(line, "<TestCase name=\"", m_xmlTestcase)) {
-                        line = "********* Start testing of " + m_xmlTestcase + " *********";
-
-                    } else if (line.startsWith(QLatin1String("<Environment>"))) {
-                        continue;
-
-                    } else if (xmlLineStartsWith(line, "<TestFunction name=\"", m_xmlTestfunction)
-                        || xmlLineStartsWith(line,"<QtVersion>",m_xmlQtVersion)
-                        || xmlLineStartsWith(line,"<QTestVersion>",m_xmlQtestVersion)) {
-                        continue;
-
-                    } else if (line.startsWith(QLatin1String("<anonymous>()@"))) {
-                        m_xmlFile = line.mid(line.indexOf(QLatin1Char('@'))+1);
-                        m_xmlLine = m_xmlFile.mid(m_xmlFile.indexOf(QLatin1Char(':'))+1);
-                        m_xmlFile = m_xmlFile.left(m_xmlFile.indexOf(QLatin1Char(':')));
-                        if (!m_syntaxError.isEmpty()) {
-                            addTestResult("CFAIL", QString(), m_syntaxError, m_xmlFile, m_xmlLine.toInt());
-                            m_syntaxError.clear();
-                        }
-                    }
-                }
-            }
-
-            // Filter out noise
-            static QStringList filter = QStringList()
-                << "unhandled event watchForKeyRelease"
-                << "QIODevice::putChar"
-                << "QFile::seek: IODevice is not open"
-                << "QSqlQuery::exec"
-                << "QSqlQuery::prepare"
-                << "QLayout: Attempting"
-                << "QTimeLine::start: already running"
-                << "QAbstractSocket::waitForBytesWritten) is not allowed in UnconnectedState"
-                << "QmemoryFile: No size not specified";
-
-            int i = 0;
-            while (i < filter.count()) {
-                if (line.contains(filter[i])) {
-                    line.clear();
-                    break;
-                }
-                ++i;
-            }
-        }
-        if (!line.isEmpty())
-            testOutputPane()->append(line);
-    }
-}
-
-void TestExecuter::onKillTestRequested()
-{
-    if (m_killTestRequested)
-        stopTesting();
-}
-
-bool TestExecuter::exec(const QString &cmd, const QStringList &arguments, const QString &workDir, int timeout)
-{
-    if (!m_testCfg) {
-        testOutputPane()->append(tr("No test configuration defined: exec aborted"));
-        return false;
-    }
-
-    // Kill the process if it's still running
-    if (m_executer.state() != QProcess::NotRunning) {
-        m_executer.kill();
-        m_executer.waitForFinished();
-    }
-    Q_ASSERT(m_executer.state() == QProcess::NotRunning);
-
-    if ((!workDir.isEmpty()) && (m_executer.workingDirectory() != workDir)) {
-        if (m_inBuildMode)
-            testOutputPane()->append("cd " + workDir);
-        m_executer.setWorkingDirectory(workDir);
-    }
-    m_executer.setEnvironment(*m_testCfg->buildEnvironment());
-
-    if (m_inBuildMode)
-        testOutputPane()->append(cmd + QLatin1Char(' ') + arguments.join(QString(QLatin1Char(' '))));
-
-    m_executerFinished = false;
-    if (arguments.count() > 0) {
-        QString realCmd;
-        if (!QDir::toNativeSeparators(cmd).contains(QDir::separator()))
-            realCmd = QSystem::which(m_testCfg->PATH(), cmd);
-        else if (QFile::exists(cmd))
-            realCmd = cmd;
-
-        if (realCmd.isEmpty()) {
-            const QString path = QSystem::envKey(m_testCfg->buildEnvironment(), "PATH");
-            testOutputPane()->append(tr("-- No '%1' instance found in PATH (%2) + ).").arg(cmd, path));
-            return false;
-        }
-        m_executer.start(realCmd, arguments);
-    } else {
-        m_executer.start(cmd);
-    }
-
-    QTime time;
-    time.start();
-    bool ok = m_executer.waitForStarted(30000);
-    m_executeTimer.start();
-    if (ok) {
-        while (!m_executerFinished && (m_executeTimer.elapsed() < timeout))
-            qApp->processEvents();
-    }
-
-    if (ok && m_executeTimer.elapsed() < timeout) {
-        return m_executer.exitCode() == 0;
-    } else {
-        testOutputPane()->append(QString(tr("-- %1 failed: %2, time elapsed: %3"))
-            .arg(cmd, m_executer.errorString()).arg(time.elapsed()));
-        return false;
-    }
-}
-
-void TestExecuter::onExecuterFinished()
-{
-    m_executerFinished = true;
-}
-
-bool TestExecuter::runTestCase(bool forceManual)
-{
-    if (!m_testCfg) {
-        testOutputPane()->append(tr("No test configuration defined: running test case aborted"));
-        return false;
-    }
-
-    QString cmd;
-    QStringList args;
-    QStringList env = *m_testCfg->runEnvironment();
-    m_xmlMode = true;
-    uint timeout = 30000;
-
-    if (m_curTestCode->testType() == TestCode::TypeSystemTest) {
-        QString m_testPlatform;
-        if (m_testCfg->uploadPlatform().toLower().contains(QLatin1String("windows")))
-            m_testPlatform = QLatin1String("win");
-        else if (m_testCfg->uploadPlatform().toLower().contains(QLatin1String("mac")))
-            m_testPlatform = QLatin1String("mac");
-        else if (m_testCfg->uploadPlatform().toLower().contains(QLatin1String("linux")))
-            m_testPlatform = QLatin1String("linux");
-        else
-            m_testPlatform = QLatin1String("symbian");
-
-        QSystem::setEnvKey(&env, QLatin1String("TESTPLATFORM"), m_testPlatform);
-        args << QLatin1String("-env") << (QLatin1String("TESTPLATFORM=") + m_testPlatform);
-
-        if (forceManual)
-            args << QLatin1String("-force-manual");
-
-        QString deviceName;
-        QString deviceType;
-        Utils::SshConnectionParameters sshParam(Utils::SshConnectionParameters::DefaultProxy);
-        m_testCfg->isRemoteTarget(deviceName, deviceType, sshParam);
-
-        QVariantMap connectionParam;
-        connectionParam[QLatin1String("host")] = sshParam.host;
-        connectionParam[QLatin1String("username")] = sshParam.userName;
-        connectionParam[QLatin1String("sshPort")] = sshParam.port;
-        connectionParam[QLatin1String("sshTimeout")] = sshParam.timeout;
-
-        if (sshParam.authenticationType == Utils::SshConnectionParameters::AuthenticationByPassword) {
-            connectionParam[QLatin1String("password")] = sshParam.password;
-        } else {
-            connectionParam[QLatin1String("privateKeyFile")] = sshParam.privateKeyFile;
-        }
-
-#ifndef QTTEST_PLUGIN_LEAN
-        m_qscriptSystemTest.setConnectionParameters(deviceType, sshParam);
-#else
-        args << QLatin1String("-authost") << sshParam.host;
-        args << QLatin1String("-username") << sshParam.userName;
-        if (sshParam.authenticationType == Utils::SshConnectionParameters::AuthenticationByPassword) {
-            args << QLatin1String("-pwd") << sshParam.password;
-        } else {
-            args << QLatin1String("-private-key") << sshParam.privateKeyFile;
-        }
-#endif
-
-        timeout = 600000; // 10 minutes to run a manual test should be sufficient?
-        cmd = QLatin1String("qtuitestrunner");
-    } else {
-        QFileInfo tmp(m_curTestCode->actualFileName());
-        QString testRelPath = QDir::convertSeparators(tmp.absolutePath());
-        testRelPath = testRelPath.remove(m_testCfg->srcPath()); // remove filename and srcPath part
-        QString exePath;
-        QString exeFile = m_curTestCode->execFileName();
-        if (exeFile.isEmpty()) {
-            testOutputPane()->append(tr("Unknown executable name for Test Case '%1'").arg(m_curTestCode->testCase()));
-            addTestResult(QLatin1String("FAIL"), QString(),
-                QString("Unknown executable name for Test Case '" + m_curTestCode->testCase() + QLatin1Char('\'')));
-            return false;
-        }
-
-        QString exePath1 = m_testCfg->buildPath();
-        exePath1 += testRelPath;
-
-#ifdef Q_OS_MAC
-        exePath1 += QLatin1Char('/') + tmp.baseName() + QLatin1String(".app/Contents/MacOS");
-#endif
-        exePath = QSystem::which(exePath1, exeFile);
-
-        QString exePath2, exePath3, exePath4;
-        if (exePath.isEmpty()) {
-            exePath3 = m_testCfg->buildPath();
-            exePath3 += QDir::separator() + QLatin1String("bin");
-            exePath = QSystem::which(exePath3, exeFile);
-
-            if (exePath.isEmpty()) {
-                exePath4 = m_testCfg->buildPath();
-                exePath4 += QString::fromLatin1("%1build%1tests%1bin").arg(QDir::separator());
-                exePath = QSystem::which(exePath4, exeFile);
-
-                if (exePath.isEmpty()) {
-                    exePath2 = QString::fromLatin1("%1%2debug").arg(exePath1).arg(QDir::separator());
-                    exePath = QSystem::which(exePath2, exeFile);
-                }
-            }
-        }
-
-        if (exePath.isEmpty()) {
-            testOutputPane()->append(tr("Test Case '%1' not found").arg(exeFile));
-            addTestResult(QLatin1String("FAIL"), QString(),
-                QLatin1String("Test Case '") + exeFile + QLatin1String("' not found in:\n - '")  + exePath1
-                + QLatin1String("' or \n - '")  + exePath2 + QLatin1String("' or \n - '")  + exePath3
-                + QLatin1String("' or \n - '")  + exePath4 + QLatin1String("'."));
-            return false;
-        }
-
-        cmd = exePath;
-    }
-
-    args << QLatin1String("-xml");
-
-    if (m_testSettings.learnMode() == 1)
-        args << QLatin1String("-learn");
-    else if (m_testSettings.learnMode() == 2)
-        args << QLatin1String("-learn-all");
-
-
-    // Grab a list of all the functions we want to execute
-    bool hasTests = false;
-    foreach (const QString &item, m_selectedTests) {
-        if (item.startsWith(m_curTestCode->testCase() + QLatin1String("::"))) {
-            QString func = item.mid(item.indexOf(QLatin1String("::"))+2);
-            if ((func != QLatin1String("init")) && (func != QLatin1String("initTestCase")) && (func != QLatin1String("cleanup"))
-                && (func != QLatin1String("cleanupTestCase")) && !func.endsWith(QLatin1String("_data"))) {
-                args << func;
-                hasTests = true;
-            }
-        }
-    }
-
-    // If the user only selected init/cleanup functions skip to the next test
-    if (!hasTests)
-        return false;
-
-    // If we have a postprocessing step, pipe output to a file
-    if (!m_testCfg->postProcessScript().isEmpty())
-        cmd.append(QLatin1String(" | tee ") + m_testOutputFile);
-
-#ifndef Q_OS_WIN
-    QString libPath = QSystem::envKey(m_testCfg->buildEnvironment(), QLatin1String("QTDIR"));
-    if (!libPath.isEmpty()) {
-        libPath = libPath + QDir::separator() + QLatin1String("lib");
-# ifdef Q_OS_MAC
-        QSystem::addEnvPath(m_testCfg->buildEnvironment(), QLatin1String("DYLD_LIBRARY_PATH"), libPath);
-# else
-        QSystem::addEnvPath(m_testCfg->buildEnvironment(), QLatin1String("LD_LIBRARY_PATH"), libPath);
-# endif
-    }
-#endif
-
-    bool cancel = false;
-    if (m_curTestCode->testType() == TestCode::TypeSystemTest) {
-        if (m_curTestCode->hasUnsavedChanges()) {
-            QMessageBox msgBox;
-            msgBox.setText(tr("Unsaved Changes"));
-            msgBox.setInformativeText(tr("File '%1' has unsaved changes.\nThe file must be saved before proceeding.")
-                .arg(m_curTestCode->baseFileName()));
-            if (QMessageBox::warning(0, tr("Unsaved Changes"),
-                tr("File \"%1\" has unsaved changes.\n"
-                "The file must be saved before proceeding.").arg(m_curTestCode->baseFileName()),
-                QMessageBox::Save | QMessageBox::Cancel, QMessageBox::Save) == QMessageBox::Save) {
-                m_curTestCode->save();
-            } else {
-                cancel = true;
-            }
-        }
-        if (!cancel) {
-            QString testOutput;
-            testOutputPane()->append(tr("********* Start testing of %1 *********")
-                .arg(m_curTestCode->baseFileName()));
-
-            args.prepend(m_curTestCode->actualFileName());
-            testOutputPane()->append(QString::fromLatin1("%1 %2").arg(cmd).arg(args.join(QString(QLatin1Char(' ')))));
-            if (exec(cmd, args, m_testCfg->buildPath(), timeout))
-                return true;
-            testOutputPane()->append(tr("********* Finished testing of %1 *********")
-                .arg(m_curTestCode->baseFileName()));
-
-#ifndef QTTEST_PLUGIN_LEAN
-            m_qscriptSystemTest.runTest(m_curTestCode->actualFileName(), args, env, &testOutput);
-            if (qscript_system_test.isAborted()) {
-                testOutputPane()->append(tr("********* Aborted testing of %1 *********")
-                    .arg(m_curTestCode->baseFileName()));
-                if (!m_manualStop)
-                    manualStop();
-            } else {
-                testOutputPane()->append(tr("********* Finished testing of %1 *********")
-                    .arg(m_curTestCode->baseFileName()));
-            }
-#endif
-
-            m_xmlLog = testOutput.split(QLatin1Char('\n'));
-            m_xmlLog.removeAll(QString("<?xml version=\"1.0\" encoding=\"ISO-8859-1\"?>"));
-        } else {
-            addTestResult("FAIL", m_curTestCode->testCase(),
-                QString::fromLatin1("Execution cancelled for Test Case '%1'").arg(m_curTestCode->testCase()));
-            return false;
-        }
-    } else {
-        // Start the cmd line process
-        if (exec(cmd, args, m_testCfg->buildPath(), timeout))
-            return true;
-    }
-
-    // special case. If test cases fail, the test application (Unit test) will return with exit code 1,
-    // but this doesn't mean the execution failed, so we still return positive (true).
-    if (m_executer.exitCode() >= 0)
-        return true;
-
-    addTestResult(QLatin1String("FAIL"), m_curTestCode->testCase(),
-        QString::fromLatin1("Execution failed for Test Case '%1' with exit code '%2': %3")
-        .arg(m_curTestCode->testCase() + QLatin1Char('\''))
-        .arg(m_executer.exitCode())
-        .arg(m_executer.errorString()));
-    return false;
-}
-
-bool TestExecuter::testFailedUnexpectedly()
-{
-    return m_testFailedUnexpectedly;
-}
-
-void TestExecuter::addTestResult(const QString &result, const QString &test, const QString &reason,
-    const QString &file, int line, const QString &dataTag)
-{
-    if (result.contains(QLatin1String("FAIL"))) {
-        if (!result.contains(QLatin1String("XFAIL")))
-            m_testFailedUnexpectedly = true;
-        ++m_progressFailCount;
-    } else if (result.contains(QLatin1String("PASS"))) {
-        if (reason.contains(QLatin1String("::initTestCase()")) || reason.contains(QLatin1String("::cleanupTestCase()")))
-            return;
-        ++m_progressPassCount;
-    }
-
-    QString fn = file;
-    if (file.isEmpty())
-        fn = m_curTestCode->actualFileName();
-
-    // In some cases, the testcase filename might be a symbolic link from the
-    // build directory to the depot. In this case, follow the link.
-    {
-        QFileInfo info(fn);
-        if (info.exists())
-            fn = info.canonicalFilePath();
-    }
-    TestResultsWindow::instance()->addResult(result, test, reason, dataTag, fn, line);
-}
-
-bool TestExecuter::getNextTest()
-{
-    QString curTestName;
-    if (m_curTestCode)
-        curTestName = m_curTestCode->testCase();
-
-    if (m_selectedTests.count() > 0) {
-        if (curTestName.isEmpty()) {
-            curTestName = m_selectedTests[0].left(m_selectedTests[0].indexOf(QLatin1String("::")));
-            if (!curTestName.isEmpty()) {
-                m_curTestCode = m_testCollection.findCodeByTestCaseName(curTestName);
-                return (m_curTestCode != 0);
-            }
-        }
-
-        bool tcFound = false;
-        QString tcName = curTestName + QLatin1String("::");
-        foreach (const QString &item, m_selectedTests) {
-            if (!tcFound) {
-                if (item.startsWith(tcName))
-                    tcFound = true;
-            } else {
-                if (!item.startsWith(tcName)) {
-                    curTestName = item.left(item.indexOf(QLatin1String("::")));
-                    if (!curTestName.isEmpty()) {
-                        m_curTestCode = m_testCollection.findCodeByTestCaseName(curTestName);
-                        return m_curTestCode != 0;
-                    }
-                }
-            }
-        }
-    }
-    return false;
-}
-
-bool TestExecuter::testBusy() const
-{
-    return m_testBusy;
-}
-
-QString TestExecuter::saveResults(const QString &changeNo, const QString &platform, const QString &branch)
-{
-    QString fname = QDir::homePath() + QDir::separator() + QLatin1String(".qttest")
-        + QDir::separator() + QLatin1String("pending_test_results");
-    QDir().mkpath(fname);
-
-    fname += QDir::separator();
-    fname += QLatin1String("creator_upload_USER_");
-    fname += sanitizedForFilename(QSystem::userName());
-    fname += QLatin1String("_HOST_");
-    fname += sanitizedForFilename(QSystem::hostName());
-    fname += QLatin1String("_ON_");
-    fname += sanitizedForFilename(QDateTime::currentDateTime().toString());
-    fname += QLatin1String(".xml");
-
-    QFile xmlFile(fname);
-    xmlFile.remove();
-
-    if (m_xmlLog.count() > 0) {
-        if (xmlFile.open(QIODevice::WriteOnly | QIODevice::Append)) {
-            QTextStream xml_stream(&xmlFile);
-            xml_stream << testrHeader(changeNo, platform, branch);
-            xml_stream << '\n';
-            xml_stream << QString("\n<!-- file 1 of 1: filename -->\n");
-            xml_stream << m_xmlLog.join(QString(QLatin1Char('\n')));
-            xml_stream << '\n';
-            xml_stream << testrFooter();
-            xmlFile.close();
-            return fname;
-        }
-    }
-    return QString();
-}
-
-QString TestExecuter::sanitizedForFilename(const QString &in) const
-{
-    QString out = in;
-    static const QRegExp replaceRx(QLatin1String("[^a-zA-Z0-9\\-_\\.]"));
-    out.replace(replaceRx, QString(QLatin1Char('_')));
-    return out;
-}
-
-QByteArray TestExecuter::testrHeader(const QString &changeNo,
-    const QString &platform, const QString &branch) const
-{
-    QByteArray ret;
-    ret += "<?xml version=\"1.0\" encoding=\"ISO-8859-1\"?>\n";
-    ret += "<Testrun>\n";
-    ret += "<Environment>\n";
-    ret += "  <HostName>fake_host</HostName>\n";
-    ret += "  <MakeSpec>" + platform.toLatin1() + "</MakeSpec>\n";
-    ret += "  <ChangeNumber>" + changeNo.toLatin1() + "</ChangeNumber>\n";
-    ret += "  <Branch>" + branch.toLatin1() + "</Branch>\n";
-    ret += "</Environment>\n";
-
-    QDateTime dt = QDateTime::currentDateTime();
-    ret += "<Timestamp date=\"" + dt.date().toString("yyyy-MM-dd").toLatin1()
-        + "\" time=\"" + dt.time().toString("hh:mm:ss").toLatin1() + "\"/>\n";
-
-    return ret;
-}
-
-QByteArray TestExecuter::testrFooter() const
-{
-    return QByteArray("</Testrun>\n");
-}
-
-#ifdef QTTEST_DEBUGGER_SUPPORT
-void TestExecuter::setDebugEngine(Debugger::Internal::QtUiTestEngine* engine)
-{
-    if (m_debugEngine) {
-        QObject::disconnect(this, SIGNAL(testFinished()),
-            m_debugEngine, SLOT(handleTestRunnerFinished()));
-        QObject::disconnect(engine, SIGNAL(stopTesting()), this, SLOT(manualStop()));
-    }
-    m_debugEngine = engine;
-    if (!m_debugEngine)
-        return;
-
-    QObject::connect(this, SIGNAL(testFinished()),
-        engine, SLOT(handleTestRunnerFinished()), Qt::DirectConnection);
-    QObject::connect(engine, SIGNAL(stopTesting()),
-        this, SLOT(manualStop()), Qt::DirectConnection);
-}
-
-Debugger::Internal::QtUiTestEngine* TestExecuter::debugEngine() const
-{
-    return m_debugEngine;
-}
-#endif
-
-void TestExecuter::syntaxError(const QString &msg, const QString &file, int line)
-{
-    TestCode *tmp = m_testCollection.findCode(file, QString(), QString());
-    if (tmp) {
-        tmp->openTestInEditor(QString());
-        tmp->gotoLine(line);
-    }
-    QFileInfo fi(file);
-    const QString message = tr("Syntax error in %1, near line %2.\n%3").arg(fi.fileName()).arg(line).arg(msg);
-    QMessageBox::critical(0, tr("System Test Failure"), message);
-}
-
-void TestExecuter::onTestResult(const QVariantMap &result)
-{
-    bool ok = false;
-    int line = result["LINE"].toInt(&ok);
-    if (!ok)
-        line = -1;
-
-    QString test = result["TEST"].toString();
-    QString reason = result["REASON"].toString();
-    QString file = result["FILE"].toString();
-
-    if (line == -1) {
-        QString funcName = test.mid(test.indexOf("::")+2);
-        TestFunctionInfo *funcInfo = m_curTestCode->findFunction(funcName);
-        if (funcInfo) {
-            file = m_curTestCode->actualFileName();
-            line = funcInfo->testStartLine()+1;
-        }
-    }
-
-    addTestResult(result["RESULT"].toString(), test, reason, file, line, result["DATATAG"].toString());
-
-    if (!testStopped())
-        m_progressLabel->setText(tr("%1 failed\n%2 passed")
-            .arg(m_progressFailCount).arg(m_progressPassCount));
-
-    if (test != m_lastFinishedTest)
-        m_progressBar->setProgressValue(m_progress++);
-
-    m_lastFinishedTest = test;
-}
-
-void TestExecuter::eventRecordingStarted(const QString &file, int line, const QString &manualSteps)
-{
-    TestCode *tmp = m_testCollection.findCode(file, QString(), QString());
-    if (tmp) {
-        tmp->openTestInEditor(QString());
-        tmp->gotoLine(line);
-    }
-    QPointer<QDialog> recordWindow = new QDialog;
-    Ui::RecordDialog ui;
-    ui.setupUi(recordWindow);
-
-    if (!manualSteps.isEmpty()) {
-        ui.steps_view->setPlainText(manualSteps);
-    } else {
-        ui.steps_view->hide();
-        ui.steps_label->hide();
-    }
-
-    ui.label->setText("<h2>Events are now being recorded</h2>Select 'Stop' when finished, "
-        "or 'Abort' to abandon recording.");
-    m_recordedEventsEdit = ui.codeEdit;
-
-    connect(ui.abort_button, SIGNAL(clicked()), recordWindow, SLOT(close()));
-    connect(ui.abort_button, SIGNAL(clicked()), this, SLOT(abortRecording()));
-    m_abortRecording = false;
-
-    m_recordingEvents = true;
-    recordWindow->exec();
-    delete recordWindow;
-    m_recordingEvents = false;
-    if (m_abortRecording)
-        return;
-
-    m_pendingInsertions[qMakePair(file, line)] = m_recordedEventsEdit->toPlainText();
-}
-
-void TestExecuter::applyPendingInsertions()
-{
-    QList< QPair<QString, int> > keys = m_pendingInsertions.keys();
-    qSort(keys.begin(), keys.end());
-
-    for (int i = keys.size()-1; i >= 0; --i) {
-        QPair<QString, int> location = keys[i];
-        QString recordedCode = m_pendingInsertions[location];
-
-        TestCode *tmp = m_testCollection.findCode(location.first, QString(), QString());
-        if (!tmp)
-            continue;
-
-        tmp->openTestInEditor(QString());
-        tmp->gotoLine(location.second);
-
-        TextEditor::BaseTextEditor *editable = qobject_cast<TextEditor::BaseTextEditor *>(tmp->editor());
-        if (editable) {
-            QString insertCode = "//BEGIN Recorded Events";
-            int column = editable->currentColumn();
-            QStringList recordedLines = recordedCode.split(QLatin1Char('\n'));
-            QString indent(QString(' ').repeated(column-1));
-            indent.prepend(QLatin1Char('\n'));
-            foreach (const QString &line, recordedLines) {
-                insertCode.append(indent);
-                insertCode.append(line);
-            }
-            insertCode.append("//END Recorded Events");
-
-            int lineLength = editable->position(TextEditor::ITextEditor::EndOfLine)
-                - editable->position();
-            editable->replace(lineLength, insertCode);
-        }
-    }
-}
-
-void TestExecuter::recordedCode(const QString &code)
-{
-    if (m_recordedEventsEdit) {
-        m_recordedEventsEdit->setPlainText(code);
-        m_recordedEventsEdit->moveCursor(QTextCursor::End);
-        m_recordedEventsEdit->ensureCursorVisible();
-    }
-}
-
-bool TestExecuter::mustStopEventRecording() const
-{
-    return !m_recordingEvents;
-}
-
-void TestExecuter::abortRecording()
-{
-    m_abortRecording = true;
-}
-
-bool TestExecuter::eventRecordingAborted() const
-{
-    return m_abortRecording;
-}
-
-void TestExecuter::setSelectedTests(const QStringList &tests)
-{
-    m_selectedTests = tests;
-}
-
-QString TestExecuter::currentRunningTest() const
-{
-    QString ret;
-    if (m_curTestCode)
-        ret = m_curTestCode->actualFileName();
-    return ret;
-}
diff --git a/src/plugins/qttest/testexecuter.h b/src/plugins/qttest/testexecuter.h
deleted file mode 100644
index 552b863ee312a3aa9aff4101cec9945eaf6a74b9..0000000000000000000000000000000000000000
--- a/src/plugins/qttest/testexecuter.h
+++ /dev/null
@@ -1,194 +0,0 @@
-/**************************************************************************
-**
-** This file is part of Qt Creator
-**
-** Copyright (c) 2011 Nokia Corporation and/or its subsidiary(-ies).
-**
-** Contact: Nokia Corporation (info@qt.nokia.com)
-**
-**
-** GNU Lesser General Public License Usage
-**
-** This file may be used under the terms of the GNU Lesser General Public
-** License version 2.1 as published by the Free Software Foundation and
-** appearing in the file LICENSE.LGPL included in the packaging of this file.
-** Please review the following information to ensure the GNU Lesser General
-** Public License version 2.1 requirements will be met:
-** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Nokia gives you certain additional
-** rights. These rights are described in the Nokia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** Other Usage
-**
-** Alternatively, this file may be used in accordance with the terms and
-** conditions contained in a signed written agreement between you and Nokia.
-**
-** If you have questions regarding the use of this file, please contact
-** Nokia at info@qt.nokia.com.
-**
-**************************************************************************/
-
-#ifndef TESTEXECUTER_H
-#define TESTEXECUTER_H
-
-#include "testsettings.h"
-#include "testcode.h"
-#include "testresultuploader.h"
-
-#ifndef QTTEST_PLUGIN_LEAN
-# include "qscriptsystemtest.h"
-#endif
-
-#ifdef QTTEST_DEBUGGER_SUPPORT
-# include <debugger/qtuitest/qtuitestengine.h>
-#endif
-
-#include <QtCore/QFutureWatcher>
-#include <QProcess>
-#include <QVariantMap>
-
-#define NO_X_SERVER_AVAILABLE "No X-server available for testing"
-#define COMPILE_ERROR "Compile error"
-#define COMPILE_SUCCESS "Compile successful"
-#define COMPILE_NOT_AVAIL "Binary not available for testing"
-#define COMPILE_UP_TO_DATE "Not recompiled, binary is up-to-date"
-#define SELF_TEST "self-test"
-
-QT_BEGIN_NAMESPACE
-class QTextEdit;
-class QLabel;
-QT_END_NAMESPACE
-
-class TestExecuter : public QObject
-{
-    Q_OBJECT
-private:
-    static TestExecuter *m_instance;
-
-public:
-    TestExecuter();
-    virtual ~TestExecuter();
-
-    static TestExecuter *instance();
-
-    bool testBusy() const;
-    bool testFailedUnexpectedly();
-    bool testStopped() const { return m_manualStop; }
-
-#ifdef QTTEST_DEBUGGER_SUPPORT
-    void setDebugEngine(Debugger::Internal::QtUiTestEngine *);
-    Debugger::Internal::QtUiTestEngine *debugEngine() const;
-#endif
-
-    void eventRecordingStarted(const QString &file, int line, const QString &steps);
-    void recordedCode(const QString &code);
-    bool mustStopEventRecording() const;
-    bool eventRecordingAborted() const;
-    void setSelectedTests(const QStringList &);
-    QString currentRunningTest() const;
-
-public slots:
-    void runTests(bool singleTest, bool forceManual);
-    void runSelectedTests(bool forceManual);
-    void stopTesting();
-    void manualStop();
-    void syntaxError(const QString &, const QString &, int);
-    void onTestResult(const QVariantMap &);
-
-signals:
-    void testStarted();
-    void testStop();
-    void testFinished();
-
-private slots:
-    bool buildTestCase();
-    bool runTestCase(bool forceManual);
-    bool postProcess();
-    void parseOutput();
-    void onKillTestRequested();
-    void onExecuterFinished();
-    void abortRecording();
-
-private:
-    // FIXME. These functions are 'borrowed' from storetestresults which isn't the smartest thing to do
-    QString sanitizedForFilename(const QString &in) const;
-    QString saveResults(const QString &changeNo, const QString &platform, const QString &branch);
-    QByteArray testrHeader(const QString &changeNo, const QString &platform, const QString &branch) const;
-    QByteArray testrFooter() const;
-
-    void endTest();
-    bool getNextTest();
-    QWidget *createProgressWidget();
-
-    bool exec(const QString &cmd, const QStringList &arguments, const QString &workDir = "", int timeout = 30000);
-
-    void addTestResult(const QString &result, const QString &test, const QString &reason,
-        const QString &file = QString(), int line = -1, const QString &dataTag = QString());
-
-    void applyPendingInsertions();
-
-    TestResultUploader m_testResultUploader;
-    TestCollection m_testCollection;
-    TestSettings m_testSettings;
-    TestConfig *m_testCfg;
-    QProcess m_executer;
-    bool m_executerFinished;
-    QTime m_executeTimer;
-
-    bool m_testFailedUnexpectedly;
-    QStringList m_selectedTests;
-    QStringList m_failureLines;
-    TestCode *m_curTestCode;
-    QString m_testOutputFile;
-    QString m_syntaxError;
-
-#ifndef QTTEST_PLUGIN_LEAN
-    QScriptSystemTest m_qscriptSystemTest;
-#endif
-
-    bool m_testBusy;
-    bool m_stopTesting;
-    bool m_manualStop;
-    bool m_runRequired;
-    bool m_pendingFailure;
-    bool m_killTestRequested;
-    bool m_inBuildMode;
-    QStringList m_xmlLog;
-    bool m_xmlMode;
-    QString m_xmlTestcase;
-    QString m_xmlTestfunction;
-    QString m_xmlDatatag;
-    QString m_xmlFile;
-    QString m_xmlLine;
-    QString m_xmlResult;
-    QString m_xmlDescription;
-    QString m_xmlQtVersion;
-    QString m_xmlQtestVersion;
-
-    // functionality to parse (system test) xml results recorded in a file
-    QTextStream *m_testResultsStream;
-    bool canReadLine();
-    QString readLine();
-    QStringList peek();
-    QString m_peekedResult;
-
-    // Progress reporting to the progress manager
-    QFutureInterface<void> *m_progressBar;
-    QPointer<QLabel> m_progressLabel;
-    int m_progress;
-    int m_progressFailCount;
-    int m_progressPassCount;
-
-#ifdef QTTEST_DEBUGGER_SUPPORT
-    Debugger::Internal::QtUiTestEngine *m_debugEngine;
-#endif
-    QPointer<QTextEdit> m_recordedEventsEdit;
-    bool m_recordingEvents;
-    bool m_abortRecording;
-    QMap<QPair<QString, int>, QString> m_pendingInsertions;
-    QString m_lastFinishedTest;
-};
-
-#endif
diff --git a/src/plugins/qttest/testgenerator.cpp b/src/plugins/qttest/testgenerator.cpp
deleted file mode 100644
index b09e5eedc2fb7646623cd6fbf772dd1ffb19cfdf..0000000000000000000000000000000000000000
--- a/src/plugins/qttest/testgenerator.cpp
+++ /dev/null
@@ -1,339 +0,0 @@
-/**************************************************************************
-**
-** This file is part of Qt Creator
-**
-** Copyright (c) 2011 Nokia Corporation and/or its subsidiary(-ies).
-**
-** Contact: Nokia Corporation (info@qt.nokia.com)
-**
-**
-** GNU Lesser General Public License Usage
-**
-** This file may be used under the terms of the GNU Lesser General Public
-** License version 2.1 as published by the Free Software Foundation and
-** appearing in the file LICENSE.LGPL included in the packaging of this file.
-** Please review the following information to ensure the GNU Lesser General
-** Public License version 2.1 requirements will be met:
-** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Nokia gives you certain additional
-** rights. These rights are described in the Nokia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** Other Usage
-**
-** Alternatively, this file may be used in accordance with the terms and
-** conditions contained in a signed written agreement between you and Nokia.
-**
-** If you have questions regarding the use of this file, please contact
-** Nokia at info@qt.nokia.com.
-**
-**************************************************************************/
-
-#include "testgenerator.h"
-#include "testconfigurations.h"
-#include "qsystem.h"
-
-#include <QFile>
-#include <QTextStream>
-#include <QDir>
-#include <QMessageBox>
-#include <QDebug>
-
-#include <stdlib.h>
-
-TestGenerator::TestGenerator()
-{
-    m_initialized = false;
-    m_enableComponentNamedTest = true;
-}
-
-/*!
-    Generates a .pro file for the testCase specified in the constructor and saves
-    it to the path specified in the constructor.
-*/
-bool TestGenerator::generateProFile()
-{
-    if (!m_initialized)
-        return false;
-
-    QFile F(m_generatedProname);
-    if (F.open(QIODevice::WriteOnly)) {
-        QTextStream src(&F);
-
-        if (m_genMode != SystemTest) {
-            src << "load(testcase)\n";
-            src << "TARGET = " << m_testCase.toLower() << '\n';
-            src << "QT += testlib\n";
-            src << "SOURCES = " << m_testCase.toLower() << ".cpp\n";
-        } else if (m_genMode == SystemTest) {
-            src << "TEMPLATE = subdirs\n";
-            src << "CONFIG += systemtest\n";
-            src << "SOURCES = " << m_testCase.toLower() << ".qtt\n";
-        }
-        F.close();
-        return true;
-    }
-
-    return false;
-}
-
-/*!
-    Generates .pro files for the parent directories of the testCase.
-*/
-bool TestGenerator::generateParentDirectoryProFiles()
-{
-    if (!m_initialized)
-        return false;
-
-    QDir::cleanPath(m_rootDir);
-
-    return true;
-}
-
-bool TestGenerator::generateTestCode()
-{
-    if (!m_initialized)
-        return false;
-
-    if (QDir().exists(m_generatedFilename)) {
-        int ret = QMessageBox::warning(0, "Error", "File already exists.\nDo you wish to overwrite it?",
-            QMessageBox::Yes|QMessageBox::No);
-        if (ret == QMessageBox::No) {
-            return false;
-        } else {
-            if (!QFile().remove(m_generatedFilename)) {
-                QMessageBox::warning(0, "Error", "Could not remove file", QMessageBox::Ok);
-                return false;
-            }
-        }
-    }
-
-    // create a source file that contains class definition, main implementation and class implementation
-    QFile sourceFile(m_generatedFilename);
-    if (!sourceFile.open(QIODevice::WriteOnly)) {
-        QMessageBox::warning(0, "Error", "Error creating source file", QMessageBox::Ok);
-        return false;
-    }
-    QTextStream sourceFileStream(&sourceFile);
-    if (m_genMode == UnitTest || m_genMode == PerformanceTest || m_genMode == IntegrationTest)
-        initSrc(&sourceFileStream);
-    else
-        initScript(&sourceFileStream);
-    sourceFile.close();
-
-    return true;
-}
-
-void TestGenerator::initSrc(QTextStream *s)
-{
-    if (!m_initialized)
-        return;
-
-    TestConfig *cfg = TestConfigurations::instance().findConfig(m_generatedFilename);
-    if (!cfg)
-        return;
-
-    // First we write the license stuff to the header file
-    QFile crfile(cfg->copyrightHeader());
-    if (crfile.open(QIODevice::ReadOnly)) {
-        QTextStream crfileStream(&crfile);
-        *s << crfileStream.readAll();
-    }
-
-    *s << '\n';
-    *s << "//TESTED_COMPONENT=" << m_testedComponent << '\n';
-    *s << "//TESTED_CLASS=" << m_testedClass << '\n';
-    *s << "//TESTED_FILE=" << m_includeFile << '\n';
-    *s << '\n';
-    *s << "#include <QtTest/QtTest>\n";
-
-    if (!m_includeFile.isEmpty())
-        *s << "#include \"" << m_includeFile << "\"\n";
-
-    *s << '\n';
-    *s << "/*!\n";
-    *s << "    \\internal\n";
-    *s << '\n';
-    *s << "    \\class " << m_testCase << '\n';
-    *s << "    \\brief <put brief description here>\n";
-    *s << '\n';
-    *s << "    <put extended description here>\n";
-    *s << '\n';
-
-    if (m_testedClass.isEmpty())
-        *s << "    \\sa " << "<tested class name>\n";
-    else
-        *s << "    \\sa " << m_testedClass << '\n';
-
-    *s << "*/\n";
-    *s << "class " << m_testCase << " : public QObject\n";
-    *s << "{\n";
-    *s << "    Q_OBJECT\n";
-    *s << '\n';
-    *s << "public:\n";
-    *s << "    " << m_testCase << "();\n";
-    *s << "    virtual ~" << m_testCase << "();\n";
-    *s << '\n';
-    *s << "private slots:\n";
-    *s << "    virtual void initTestCase();\n";
-    *s << "    virtual void init();\n";
-    *s << "    virtual void cleanup();\n";
-    *s << "    virtual void cleanupTestCase();\n";
-    *s << "};\n";
-    *s << '\n';
-
-    *s << "QTEST_MAIN(" << m_testCase << ")\n";
-    *s << "#include " << '"' << m_testCase.toLower() << ".moc" << '"' << '\n';
-    *s << '\n';
-    *s << '\n';
-
-    *s << m_testCase << "::" << m_testCase << "()\n";
-    *s << "{\n";
-    *s << "}\n";
-    *s << '\n';
-
-    *s << m_testCase << "::~" << m_testCase << "()\n";
-    *s << "{\n";
-    *s << "}\n";
-    *s << '\n';
-
-    *s << "void " << m_testCase << "::initTestCase()\n";
-    *s << "{\n";
-    *s << "}\n";
-    *s << '\n';
-    *s << "void " << m_testCase << "::init()\n";
-    *s << "{\n";
-    *s << "}\n";
-    *s << '\n';
-    *s << "void " << m_testCase << "::cleanup()\n";
-    *s << "{\n";
-    *s << "}\n";
-    *s << '\n';
-    *s << "void " << m_testCase << "::cleanupTestCase()\n";
-    *s << "{\n";
-    *s << "}\n";
-    *s << '\n';
-    *s << '\n';
-}
-
-void TestGenerator::initScript(QTextStream *s)
-{
-    if (!m_initialized)
-        return;
-
-    TestConfig *cfg = TestConfigurations::instance().findConfig(m_generatedFilename);
-    if (!cfg)
-        return;
-
-    QFile crfile(cfg->copyrightHeader());
-    if (crfile.open(QIODevice::ReadOnly)) {
-        QTextStream crfileStream(&crfile);
-        *s << crfileStream.readAll();
-    }
-
-    *s << '\n';
-    *s << "//TESTED_COMPONENT=" << m_testedComponent << '\n';
-    *s << '\n';
-    *s << "testcase = {\n";
-    *s << "    initTestCase: function()\n";
-    *s << "    {\n";
-    *s << "    },\n";
-    *s << '\n';
-    *s << "    init: function()\n";
-    *s << "    {\n";
-    *s << "    },\n";
-    *s << '\n';
-    *s << "    cleanup: function()\n";
-    *s << "    {\n";
-    *s << "    },\n";
-    *s << '\n';
-    *s << "    cleanupTestCase: function()\n";
-    *s << "    {\n";
-    *s << "    },\n";
-    *s << '\n';
-    *s << '\n';
-    *s << "}  // end of testcase\n";
-    *s << '\n';
-}
-
-void TestGenerator::setTestCase(GenMode mode, const QString &rootDir, const QString &testDir,
-    const QString &testCase, const QString &testedComponent, const QString &testedClassName,
-    const QString &testedClassFile)
-{
-    Q_UNUSED(testedClassFile);
-    QString testCaseNameSuffix;
-    m_generatedFilename.clear();
-
-    m_genMode = mode;
-    m_testedClass = testedClassName;
-    m_testedComponent = testedComponent;
-    m_includeFile.clear();
-
-    m_testCase = testCase;
-    m_rootDir = rootDir;
-    if (testDir.isEmpty()) {
-        // common case , auto detect test dir value
-        m_testDir = "auto";
-        if (mode == TestGenerator::SystemTest)
-            m_testDir = "systemtests";
-        else if (mode == TestGenerator::PerformanceTest)
-            m_testDir = "benchmarks";
-    } else {
-        m_testDir = testDir;
-    }
-
-    // use component name in test case directory path?
-    if (m_enableComponentNamedTest)
-        testCaseNameSuffix = testedComponent + QDir::separator();
-
-    m_tcDir = m_rootDir + QDir::separator() + m_testDir + QDir::separator()
-        + testCaseNameSuffix + m_testCase.toLower();
-
-    QString fname(m_tcDir + QDir::separator() + m_testCase.toLower());
-    if (m_genMode == UnitTest || m_genMode == IntegrationTest || m_genMode == PerformanceTest)
-        fname += ".cpp";
-    else
-        fname += ".qtt";
-    m_generatedFilename = fname;
-
-    m_generatedProname = m_tcDir + QDir::separator() + m_testCase.toLower() + ".pro";
-
-    m_initialized = true;
-}
-
-bool TestGenerator::generateTest()
-{
-    if (!m_initialized)
-        return false;
-
-    QDir().mkpath(m_tcDir);
-
-    if (!QFile::exists(m_tcDir)){
-       QMessageBox::warning(0, "Unable to create test directory",
-            QString("Unable to create test directory %1").arg(m_tcDir));
-       return false;
-    }
-
-    return (generateParentDirectoryProFiles() && generateProFile() && generateTestCode());
-}
-
-QString TestGenerator::generatedFileName()
-{
-    return m_generatedFilename;
-}
-
-QString TestGenerator::generatedProName()
-{
-    return m_generatedProname;
-}
-
-void TestGenerator::enableComponentInTestName(bool value)
-{
-    m_enableComponentNamedTest = value;
-}
-
-QString TestGenerator::testCaseDirectory()
-{
-    return m_tcDir;
-}
diff --git a/src/plugins/qttest/testgenerator.h b/src/plugins/qttest/testgenerator.h
deleted file mode 100644
index c18427b68b5abdc0eff55e9315bc26f4f7e4908b..0000000000000000000000000000000000000000
--- a/src/plugins/qttest/testgenerator.h
+++ /dev/null
@@ -1,77 +0,0 @@
-/**************************************************************************
-**
-** This file is part of Qt Creator
-**
-** Copyright (c) 2011 Nokia Corporation and/or its subsidiary(-ies).
-**
-** Contact: Nokia Corporation (info@qt.nokia.com)
-**
-**
-** GNU Lesser General Public License Usage
-**
-** This file may be used under the terms of the GNU Lesser General Public
-** License version 2.1 as published by the Free Software Foundation and
-** appearing in the file LICENSE.LGPL included in the packaging of this file.
-** Please review the following information to ensure the GNU Lesser General
-** Public License version 2.1 requirements will be met:
-** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Nokia gives you certain additional
-** rights. These rights are described in the Nokia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** Other Usage
-**
-** Alternatively, this file may be used in accordance with the terms and
-** conditions contained in a signed written agreement between you and Nokia.
-**
-** If you have questions regarding the use of this file, please contact
-** Nokia at info@qt.nokia.com.
-**
-**************************************************************************/
-
-#ifndef TESTGENERATOR_H
-#define TESTGENERATOR_H
-
-#include <QString>
-
-QT_FORWARD_DECLARE_CLASS(QTextStream)
-
-class TestGenerator
-{
-public:
-    TestGenerator();
-
-    enum GenMode { UnitTest, SystemTest, IntegrationTest, PerformanceTest };
-    void setTestCase(GenMode mode, const QString &rootDir, const QString &testDir, const QString &testCase,
-        const QString &testedComponent, const QString &testedClassName, const QString &testedClassFile);
-    bool generateTest();
-    bool generateParentDirectoryProFiles();
-    void enableComponentInTestName(bool value);
-
-    QString generatedFileName();
-    QString generatedProName();
-    QString testCaseDirectory();
-
-protected:
-    void initSrc(QTextStream *s);
-    void initScript(QTextStream *s);
-    bool generateProFile();
-    bool generateTestCode();
-
-private:
-    QString m_generatedFilename;
-    QString m_generatedProname;
-    QString m_testDir;
-    QString m_rootDir;
-    QString m_tcDir;
-    QString m_testedClass;
-    QString m_testedComponent;
-    QString m_includeFile;
-    QString m_testCase;
-    GenMode m_genMode;
-    bool m_initialized;
-    bool m_enableComponentNamedTest;
-};
-
-#endif
diff --git a/src/plugins/qttest/testoutputwindow.cpp b/src/plugins/qttest/testoutputwindow.cpp
deleted file mode 100644
index 05d9c6125eeab5b358b4ba2a0bb21ddc02e6c9ae..0000000000000000000000000000000000000000
--- a/src/plugins/qttest/testoutputwindow.cpp
+++ /dev/null
@@ -1,124 +0,0 @@
-/**************************************************************************
-**
-** This file is part of Qt Creator
-**
-** Copyright (c) 2011 Nokia Corporation and/or its subsidiary(-ies).
-**
-** Contact: Nokia Corporation (info@qt.nokia.com)
-**
-**
-** GNU Lesser General Public License Usage
-**
-** This file may be used under the terms of the GNU Lesser General Public
-** License version 2.1 as published by the Free Software Foundation and
-** appearing in the file LICENSE.LGPL included in the packaging of this file.
-** Please review the following information to ensure the GNU Lesser General
-** Public License version 2.1 requirements will be met:
-** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Nokia gives you certain additional
-** rights. These rights are described in the Nokia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** Other Usage
-**
-** Alternatively, this file may be used in accordance with the terms and
-** conditions contained in a signed written agreement between you and Nokia.
-**
-** If you have questions regarding the use of this file, please contact
-** Nokia at info@qt.nokia.com.
-**
-**************************************************************************/
-
-#include "testoutputwindow.h"
-
-#include <QtGui/QTextEdit>
-#include <QDebug>
-
-TestOutputWindow *m_instance = 0;
-
-QTextEdit *testOutputPane()
-{
-    if (m_instance)
-        return m_instance->m_widget;
-    return 0;
-}
-
-TestOutputWindow::TestOutputWindow() : m_widget(new QTextEdit)
-{
-    m_widget->setReadOnly(true);
-    m_widget->setFrameStyle(QFrame::NoFrame);
-    m_instance = this;
-}
-
-TestOutputWindow::~TestOutputWindow()
-{
-    delete m_widget;
-    m_instance = 0;
-}
-
-bool TestOutputWindow::hasFocus() const
-{
-    return m_widget->hasFocus();
-}
-
-bool TestOutputWindow::canFocus() const
-{
-    return true;
-}
-
-void TestOutputWindow::setFocus()
-{
-    m_widget->setFocus();
-}
-
-void TestOutputWindow::clearContents()
-{
-    m_widget->clear();
-}
-
-QWidget *TestOutputWindow::outputWidget(QWidget *parent)
-{
-    m_widget->setParent(parent);
-    return m_widget;
-}
-
-QString TestOutputWindow::name() const
-{
-    return tr("Test Output");
-}
-
-void TestOutputWindow::visibilityChanged(bool /*b*/)
-{
-}
-
-int TestOutputWindow::priorityInStatusBar() const
-{
-    return 50;
-}
-
-bool TestOutputWindow::canNext() const
-{
-    return false;
-}
-
-bool TestOutputWindow::canPrevious() const
-{
-    return false;
-}
-
-void TestOutputWindow::goToNext()
-{
-
-}
-
-void TestOutputWindow::goToPrev()
-{
-
-}
-
-bool TestOutputWindow::canNavigate() const
-{
-    return false;
-}
-
diff --git a/src/plugins/qttest/testoutputwindow.h b/src/plugins/qttest/testoutputwindow.h
deleted file mode 100644
index d93801bcccb733bfbb8d2d4a9b01736419adefcb..0000000000000000000000000000000000000000
--- a/src/plugins/qttest/testoutputwindow.h
+++ /dev/null
@@ -1,73 +0,0 @@
-/**************************************************************************
-**
-** This file is part of Qt Creator
-**
-** Copyright (c) 2011 Nokia Corporation and/or its subsidiary(-ies).
-**
-** Contact: Nokia Corporation (info@qt.nokia.com)
-**
-**
-** GNU Lesser General Public License Usage
-**
-** This file may be used under the terms of the GNU Lesser General Public
-** License version 2.1 as published by the Free Software Foundation and
-** appearing in the file LICENSE.LGPL included in the packaging of this file.
-** Please review the following information to ensure the GNU Lesser General
-** Public License version 2.1 requirements will be met:
-** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Nokia gives you certain additional
-** rights. These rights are described in the Nokia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** Other Usage
-**
-** Alternatively, this file may be used in accordance with the terms and
-** conditions contained in a signed written agreement between you and Nokia.
-**
-** If you have questions regarding the use of this file, please contact
-** Nokia at info@qt.nokia.com.
-**
-**************************************************************************/
-
-#ifndef TESTOUTPUTWINDOW_H
-#define TESTOUTPUTWINDOW_H
-
-#include <coreplugin/ioutputpane.h>
-
-QT_FORWARD_DECLARE_CLASS(QTextEdit)
-
-QTextEdit *testOutputPane();
-
-class TestOutputWindow : public Core::IOutputPane
-{
-    Q_OBJECT
-
-public:
-    TestOutputWindow();
-    ~TestOutputWindow();
-
-    virtual QString displayName() const { return "Test Output"; }
-
-    QWidget *outputWidget(QWidget *parent);
-    QList<QWidget *> toolBarWidgets() const { return QList<QWidget *>(); }
-
-    QString name() const;
-    int priorityInStatusBar() const;
-    void clearContents();
-    void visibilityChanged(bool visible);
-
-    bool canFocus() const;
-    bool hasFocus() const;
-    void setFocus();
-
-    virtual bool canNext() const;
-    virtual bool canPrevious() const;
-    virtual void goToNext();
-    virtual void goToPrev();
-    bool canNavigate() const;
-
-    QTextEdit *m_widget;
-};
-
-#endif // TESTOUTPUTWINDOW_H
diff --git a/src/plugins/qttest/testresultuploader.cpp b/src/plugins/qttest/testresultuploader.cpp
deleted file mode 100644
index 4c29f2dd3f9f4246db7369c8a0552f158efa544c..0000000000000000000000000000000000000000
--- a/src/plugins/qttest/testresultuploader.cpp
+++ /dev/null
@@ -1,197 +0,0 @@
-/**************************************************************************
-**
-** This file is part of Qt Creator
-**
-** Copyright (c) 2011 Nokia Corporation and/or its subsidiary(-ies).
-**
-** Contact: Nokia Corporation (info@qt.nokia.com)
-**
-**
-** GNU Lesser General Public License Usage
-**
-** This file may be used under the terms of the GNU Lesser General Public
-** License version 2.1 as published by the Free Software Foundation and
-** appearing in the file LICENSE.LGPL included in the packaging of this file.
-** Please review the following information to ensure the GNU Lesser General
-** Public License version 2.1 requirements will be met:
-** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Nokia gives you certain additional
-** rights. These rights are described in the Nokia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** Other Usage
-**
-** Alternatively, this file may be used in accordance with the terms and
-** conditions contained in a signed written agreement between you and Nokia.
-**
-** If you have questions regarding the use of this file, please contact
-** Nokia at info@qt.nokia.com.
-**
-**************************************************************************/
-
-#include "testresultuploader.h"
-#include "testoutputwindow.h"
-#include "qsystem.h"
-#include "testconfigurations.h"
-
-#include <QFileInfo>
-#include <QTextEdit>
-
-TestResultUploader::TestResultUploader(QObject *parent) :
-    QObject(parent)
-{
-    m_executer.setReadChannelMode(QProcess::MergedChannels);
-    m_executer.setReadChannel(QProcess::StandardOutput);
-
-    connect(&m_executer, SIGNAL(finished(int,QProcess::ExitStatus)),
-        this, SLOT(execFinished(int,QProcess::ExitStatus)));
-    connect(&m_executer, SIGNAL(readyReadStandardOutput()),
-        this, SLOT(readStdOut()));
-
-    m_uploadState = UploadIdle;
-}
-
-TestResultUploader::~TestResultUploader()
-{
-    disconnect(&m_executer, SIGNAL(finished(int,QProcess::ExitStatus)),
-        this, SLOT(execFinished(int,QProcess::ExitStatus)));
-    disconnect(&m_executer, SIGNAL(readyReadStandardOutput()),
-        this, SLOT(readStdOut()));
-}
-
-void TestResultUploader::uploadResultsToDatabase(const QString &fname, TestConfig *cfg)
-{
-    if (m_uploadState != UploadIdle)
-        return;
-
-    m_testCfg = cfg;
-    m_srcFname = fname;
-
-    if (!fname.isEmpty()) {
-        m_logFile.setFileName(QDir::homePath() + QDir::separator() + QLatin1String(".qttest")
-            + QDir::separator() + QLatin1String("test_result_upload.log"));
-        m_logFile.open(QFile::WriteOnly);
-
-        if (m_testSettings.uploadServer().isEmpty()) {
-            testOutputPane()->append(tr("-- ATTENTION: Uploading of test results to the database aborted. "
-                "Please specify an upload server in the Upload Test Results Settings dialog."));
-            return;
-        }
-
-        m_uploadServerName = m_testSettings.uploadServer();
-
-        int pos = m_uploadServerName.indexOf(QLatin1Char(':'));
-        if (pos)
-            m_uploadServerName = m_uploadServerName.left(pos);
-
-        QFileInfo inf(fname);
-        if (!inf.exists())
-            return;
-        m_tgtFname = inf.fileName();
-
-        QString cmd1 = QSystem::which(m_testCfg->PATH(), QLatin1String("scp"));
-        QStringList args1;
-        args1 << fname << QString::fromLatin1("%1:/tmp/%2").arg(m_uploadServerName, m_tgtFname);
-        if (exec(cmd1, QStringList() << QLatin1String("-q") << QLatin1String("-v") << QLatin1String("-C") << args1, QString(), 60000))
-            m_uploadState = UploadScp;
-    }
-}
-
-bool TestResultUploader::exec(const QString &cmd, const QStringList &arguments, const QString &workDir, int timeout)
-{
-    Q_UNUSED(timeout);
-    if (!m_testCfg)
-        return false;
-
-    // Kill the process if it's still running
-    if (m_executer.state() != QProcess::NotRunning) {
-        m_executer.kill();
-        m_executer.waitForFinished();
-    }
-
-    Q_ASSERT(m_executer.state() == QProcess::NotRunning);
-
-    if ((!workDir.isEmpty()) && (m_executer.workingDirectory() != workDir))
-        m_executer.setWorkingDirectory(workDir);
-
-    m_executer.setEnvironment(*m_testCfg->buildEnvironment());
-
-    if (arguments.count() > 0) {
-        QString realCmd;
-        if (!cmd.contains(QDir::separator()))
-            realCmd = QSystem::which(m_testCfg->PATH(), cmd);
-        else if (QFile::exists(cmd))
-            realCmd = cmd;
-
-        if (realCmd.isEmpty()) {
-            const QString path = QSystem::envKey(m_testCfg->buildEnvironment(), "PATH");
-            testOutputPane()->append(tr("-- No '%1' instance found in PATH (%2).").arg(cmd, path));
-            return false;
-        }
-        m_executer.start(realCmd,arguments);
-
-    } else {
-        m_executer.start(cmd);
-    }
-
-    if (m_logFile.isOpen()) {
-        m_logFile.write("exec: ");
-        m_logFile.write(cmd.toLatin1());
-        m_logFile.write(arguments.join(QString(QLatin1Char(' '))).toLatin1());
-        m_logFile.write("\n");
-    }
-    return m_executer.waitForStarted(30000);
-}
-
-void TestResultUploader::execFinished(int exitValue, QProcess::ExitStatus)
-{
-    if (exitValue != 0) {
-        m_uploadState = UploadIdle;
-        if (m_logFile.isOpen()) {
-            m_logFile.write("Upload FAILED!");
-            m_logFile.close();
-
-            QString errFname = QDir::homePath() + QDir::separator() + QLatin1String(".qttest")
-                + QDir::separator() + QLatin1String("last_test_result_upload_failure.log");
-            QFile::remove(errFname);
-            m_logFile.rename(m_logFile.fileName(), errFname);
-            QFile errorFile(errFname);
-            QString lastErrorMessage;
-            if (errorFile.open(QIODevice::ReadOnly)){
-                lastErrorMessage = tr("Upload FAILED: %1").arg(QString::fromLocal8Bit(errorFile.readAll()));
-                errorFile.close();
-            } else {
-                lastErrorMessage = tr("Upload FAILED, look at the log file %1").arg(errFname);
-            }
-            testOutputPane()->append(lastErrorMessage);
-        }
-
-        return;
-    }
-
-    if (m_uploadState == UploadScp) {
-        m_uploadState = UploadMv;
-
-        QString cmd2 = QSystem::which(m_testCfg->PATH(), "ssh");
-        QStringList args2;
-        args2 << m_uploadServerName
-            << QLatin1String("mv")
-            << QLatin1String("-f")
-            << QLatin1String("/tmp/") + m_tgtFname
-            << QLatin1String("results/") + m_tgtFname;
-        exec(cmd2, QStringList() << QLatin1String("-q") << QLatin1String("-v") << args2);
-    } else if (m_uploadState == UploadMv) {
-        m_uploadState = UploadIdle;
-        testOutputPane()->append(tr("\nTest results have been uploaded into the results database.\nThank you for supporting %1").arg(m_testCfg->configName()));
-        QFile::remove(m_srcFname);
-        m_logFile.close();
-        m_logFile.remove();
-    }
-}
-
-void TestResultUploader::readStdOut()
-{
-    if (m_logFile.isOpen())
-        m_logFile.write(m_executer.readAllStandardOutput());
-}
diff --git a/src/plugins/qttest/testresultuploader.h b/src/plugins/qttest/testresultuploader.h
deleted file mode 100644
index c04865351f3790d70be1310faa9f4e5e68eac939..0000000000000000000000000000000000000000
--- a/src/plugins/qttest/testresultuploader.h
+++ /dev/null
@@ -1,75 +0,0 @@
-/**************************************************************************
-**
-** This file is part of Qt Creator
-**
-** Copyright (c) 2011 Nokia Corporation and/or its subsidiary(-ies).
-**
-** Contact: Nokia Corporation (info@qt.nokia.com)
-**
-**
-** GNU Lesser General Public License Usage
-**
-** This file may be used under the terms of the GNU Lesser General Public
-** License version 2.1 as published by the Free Software Foundation and
-** appearing in the file LICENSE.LGPL included in the packaging of this file.
-** Please review the following information to ensure the GNU Lesser General
-** Public License version 2.1 requirements will be met:
-** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Nokia gives you certain additional
-** rights. These rights are described in the Nokia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** Other Usage
-**
-** Alternatively, this file may be used in accordance with the terms and
-** conditions contained in a signed written agreement between you and Nokia.
-**
-** If you have questions regarding the use of this file, please contact
-** Nokia at info@qt.nokia.com.
-**
-**************************************************************************/
-
-#ifndef TESTRESULTUPLOADER_H
-#define TESTRESULTUPLOADER_H
-
-#include "testsettings.h"
-
-#include <QObject>
-#include <QProcess>
-#include <QFile>
-
-class TestConfig;
-
-class TestResultUploader : public QObject
-{
-    Q_OBJECT
-
-public:
-    explicit TestResultUploader(QObject *parent = 0);
-    virtual ~TestResultUploader();
-
-    void uploadResultsToDatabase(const QString &fname, TestConfig *cfg);
-
-public slots:
-    void execFinished(int exitValue, QProcess::ExitStatus);
-    void readStdOut();
-
-private:
-    bool exec(const QString &cmd, const QStringList &arguments,
-        const QString &workDir = "", int timeout = 30000);
-
-    TestSettings m_testSettings;
-    TestConfig *m_testCfg;
-    QProcess m_executer;
-
-    QString m_uploadServerName;
-    QString m_srcFname;
-    QString m_tgtFname;
-
-    QFile m_logFile;
-    enum UploadState { UploadIdle, UploadScp, UploadMv };
-    UploadState m_uploadState;
-};
-
-#endif // TESTRESULTUPLOADER_H
diff --git a/src/plugins/qttest/testselector.cpp b/src/plugins/qttest/testselector.cpp
deleted file mode 100644
index efa2fc2df9338316cd4908b9d4d179b44e40bb1f..0000000000000000000000000000000000000000
--- a/src/plugins/qttest/testselector.cpp
+++ /dev/null
@@ -1,1413 +0,0 @@
-/**************************************************************************
-**
-** This file is part of Qt Creator
-**
-** Copyright (c) 2011 Nokia Corporation and/or its subsidiary(-ies).
-**
-** Contact: Nokia Corporation (info@qt.nokia.com)
-**
-**
-** GNU Lesser General Public License Usage
-**
-** This file may be used under the terms of the GNU Lesser General Public
-** License version 2.1 as published by the Free Software Foundation and
-** appearing in the file LICENSE.LGPL included in the packaging of this file.
-** Please review the following information to ensure the GNU Lesser General
-** Public License version 2.1 requirements will be met:
-** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Nokia gives you certain additional
-** rights. These rights are described in the Nokia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** Other Usage
-**
-** Alternatively, this file may be used in accordance with the terms and
-** conditions contained in a signed written agreement between you and Nokia.
-**
-** If you have questions regarding the use of this file, please contact
-** Nokia at info@qt.nokia.com.
-**
-**************************************************************************/
-
-#include "testselector.h"
-#include "testcode.h"
-#include "testsettings.h"
-#include "qsystem.h"
-#include "newtestcasedlg.h"
-#include "testgenerator.h"
-#include "dialogs.h"
-#include "testconfigurations.h"
-#include "testexecuter.h"
-#include "testcontextmenu.h"
-
-#include <projectexplorer/session.h>
-#include <projectexplorer/project.h>
-#include <coreplugin/editormanager/editormanager.h>
-#include <coreplugin/actionmanager/actionmanager.h>
-#include <coreplugin/actionmanager/actioncontainer.h>
-#include <coreplugin/imode.h>
-#include <coreplugin/icore.h>
-#include <coreplugin/modemanager.h>
-#include <extensionsystem/pluginmanager.h>
-#include <coreplugin/coreconstants.h>
-#include <coreplugin/actionmanager/command.h>
-#include <coreplugin/id.h>
-
-#include <QDir>
-#include <QPixmap>
-#include <QStringList>
-#include <QMouseEvent>
-#include <QMenu>
-#include <QDebug>
-
-#define NEXT_SIBLING(B, A) {\
-    if (A->parent()) {\
-        A = (B*)A->parent()->child(A ## Ind++);\
-    } else {\
-        A = (B*)topLevelItem(A ## Ind++);\
-    }\
-}
-
-class TestSuiteItem : public TestViewItem
-{
-public:
-    TestSuiteItem(const QString &basePath, QTreeWidget *parent);
-    TestSuiteItem(const QString &basePath, TestSuiteItem *parent);
-    virtual ~TestSuiteItem();
-    virtual QString key(int column, bool ascending) const;
-    virtual TestSuiteItem *addSuite(const QString &suiteName);
-    virtual TestSuiteItem *findSuite(const QString &suiteName);
-    virtual TestCaseItem *addCase(TestCode *code);
-    virtual TestCaseItem *findCase(const QString &tcFileName);
-};
-
-class TestCaseItem : public TestViewItem
-{
-public:
-    TestCaseItem(TestCode *code, TestSuiteItem *parent);
-    virtual ~TestCaseItem();
-    virtual QString key(int column, bool ascending) const;
-    virtual TestFunctionItem *addFunction(const QString &funcName, bool manualTest, int startLine);
-    virtual bool findFunction(const QString &funcName, TestFunctionItem *&item);
-    virtual bool findFunction(const QString &funcName, TestViewItem *&item) { return TestViewItem::findChild(funcName, item); };
-    virtual int functionCount() { return childCount(); };
-
-    QPointer<TestCode> m_code;
-};
-
-class TestFunctionItem : public TestViewItem
-{
-public:
-    TestFunctionItem(TestCaseItem *parent, const QString &label1, bool manualTest, int startLine);
-    virtual QString key(int column, bool ascending) const;
-    bool m_manualTest;
-    int m_startLine;
-};
-
-TestViewItem::TestViewItem(TestViewItem *parent, const QString &name, bool testSuite, int type) :
-    QTreeWidgetItem(parent, QStringList() << name, type),
-    m_errored(false),
-    m_savedState(Qt::Unchecked)
-{
-    m_name = name;
-    m_isTestSuite = testSuite;
-    resetAssignment();
-    if (parent && parent->isAssigned())
-        updateChildState(false);
-    setFlags(Qt::ItemIsUserCheckable | Qt::ItemIsEnabled | Qt::ItemIsSelectable);
-    setCheckState(0, Qt::Unchecked);
-}
-
-TestViewItem::TestViewItem(QTreeWidget *parent, const QString &name, bool testSuite, int type) :
-    QTreeWidgetItem(parent, QStringList() << name, type),
-    m_errored(false),
-    m_savedState(Qt::Unchecked)
-{
-    m_name = name;
-    m_isTestSuite = testSuite;
-    resetAssignment();
-    setFlags(Qt::ItemIsUserCheckable | Qt::ItemIsEnabled | Qt::ItemIsSelectable);
-    setCheckState(0, Qt::Unchecked);
-}
-
-TestViewItem::~TestViewItem()
-{
-}
-
-TestSuiteItem::~TestSuiteItem()
-{
-}
-
-TestCaseItem::~TestCaseItem()
-{
-}
-
-QString TestViewItem::baseSuiteName()
-{
-    if (parentTestViewItem())
-        return parentTestViewItem()->baseSuiteName();
-    return m_name;
-}
-
-QString TestViewItem::suiteName()
-{
-    QString ret;
-    if (parentTestViewItem())
-        ret = parentTestViewItem()->suiteName();
-    if (m_isTestSuite) {
-        if (!ret.isEmpty()) ret += QLatin1Char('/');
-        ret += m_name;
-    }
-    return QDir::convertSeparators(ret);
-}
-
-QString TestViewItem::fullName()
-{
-    QString ret = suiteName();
-    if (!m_isTestSuite) {
-        ret += QLatin1Char('/')+ m_name;
-    }
-    return QDir::convertSeparators(ret);
-}
-
-void TestViewItem::toggle()
-{
-    if ((checkState(0) == Qt::Unchecked) || (checkState(0) == Qt::PartiallyChecked))
-        assign();
-    else
-        unassign();
-    m_savedState = checkState(0);
-}
-
-void TestViewItem::resetAssignment()
-{
-    m_assigned = false;
-    m_childAssigned = 0;
-    m_parentAssigned = 0;
-    updatePixmap();
-}
-
-void TestViewItem::assign()
-{
-    if ((checkState(0) == Qt::Unchecked) || (checkState(0) == Qt::PartiallyChecked)) {
-        updateChildState(false);
-        if (parentTestViewItem())
-            parentTestViewItem()->updateParentState();
-    }
-}
-
-void TestViewItem::unassign()
-{
-    // PartiallyChecked is filtered outside
-    if (checkState(0) == Qt::Checked) {
-        updateChildState(true);
-        if (parentTestViewItem())
-            parentTestViewItem()->updateParentState();
-    }
-}
-
-/*!
-    Update state of items of item's parent, this method will check recursively untill topLevelItem,
-    so that the state show children check states.
-*/
-void TestViewItem::updateParentState()
-{
-    int seletedCnt = 0;
-    int partialCnt = 0;
-    int childCnt = childCount();
-    for (int i = 0; i < childCnt; ++i) {
-        if (child(i)->checkState(0) == Qt::PartiallyChecked)
-            ++partialCnt;
-
-        if (child(i)->checkState(0) == Qt::Checked)
-            ++seletedCnt;
-    }
-    Qt::CheckState state;
-
-    if (seletedCnt == childCnt)
-        state = Qt::Checked;
-    else if ((partialCnt == 0) && (seletedCnt == 0))
-        state = Qt::Unchecked;
-    else
-        state = Qt::PartiallyChecked;
-
-    // Set savedState first to prevent updating (in onItemChanged())
-    setSavedState(state);
-    setCheckState(0, state);
-
-    if (parentTestViewItem())
-        parentTestViewItem()->updateParentState();
-}
-
-
-/*!
-    Set check state to all children of item to \code state \endcode recursively.
-    \param checked, whether states of children are about to be checked or unchecked.
-*/
-void TestViewItem::updateChildState(bool checked)
-{
-    int childIndex = 0;
-    TestViewItem *childItem = 0;
-    while ((childItem = static_cast<TestViewItem *>(child(childIndex++)))){
-        Qt::CheckState state = checked ? Qt::Checked : Qt::Unchecked;
-        // Set savedState first to prevent updating (in onItemChanged())
-        childItem->setSavedState(state);
-        childItem->setCheckState(0, state);
-        childItem->updateChildState(checked);
-    }
-}
-
-bool TestViewItem::findChild(const QString &className, TestViewItem *&item)
-{
-    int itemInd = 0;
-    item = static_cast<TestViewItem *>(child(itemInd++));
-
-    while (item != 0) {
-        if (item->text(0) == className)
-            return true;
-        item = static_cast<TestViewItem *>(child(itemInd++));
-    }
-
-    return false;
-}
-
-// returns NULL if this item is not a TestViewItem
-TestViewItem *TestSelector::recastItem(QTreeWidgetItem *item)
-{
-    TestViewItem *result = 0;
-    if (item && (item->type() == TestViewItem::TestItemType
-        || item->type() == TestViewItem::TestSuiteItemType
-        || item->type() == TestViewItem::TestCaseItemType
-        || item->type() == TestViewItem::TestFunctionItemType)) {
-        result = static_cast<TestViewItem *>(item);
-    }
-    return result;
-}
-
-void TestViewItem::updatePixmap()
-{
-    if (m_errored)
-        return;
-
-    if (checkState(0) == Qt::Checked)
-        m_assigned = true;
-    else if ((checkState(0) == Qt::Unchecked) || (checkState(0) == Qt::PartiallyChecked))
-        m_assigned = false;
-}
-
-void TestViewItem::removeAllChildren()
-{
-    takeChildren();
-}
-
-bool TestViewItem::isTestSuite()
-{
-    return m_isTestSuite;
-}
-
-TestSuiteItem *TestViewItem::parentSuite()
-{
-    if (parentTestViewItem() != 0 && parentTestViewItem()->isTestSuite())
-        return static_cast<TestSuiteItem *>(parentTestViewItem());
-    return 0;
-}
-
-TestSuiteItem::TestSuiteItem(const QString &name, QTreeWidget *parent) :
-    TestViewItem(parent, name, true, TestViewItem::TestSuiteItemType)
-{
-}
-
-TestSuiteItem::TestSuiteItem(const QString &name, TestSuiteItem *parent) :
-    TestViewItem(parent, name, true, TestViewItem::TestSuiteItemType)
-{
-}
-
-QString TestSuiteItem::key(int column, bool /*ascending*/) const
-{
-    return text(column);
-}
-
-bool splitSuiteName(const QString &fullName, QString &first, QString &rest)
-{
-    QStringList L = fullName.split(QDir::separator());
-    if (L.count() == 0)
-        return false;
-
-    first = L[0];
-    rest.clear();
-    if (L.count() > 1) {
-        for (int i = 1; i < L.count(); ++i) {
-            if (!rest.isEmpty())
-                rest += QDir::separator();
-            rest += L[i];
-        }
-    }
-    return true;
-}
-
-TestSuiteItem *TestSuiteItem::addSuite(const QString &suiteName)
-{
-    QString sn, next;
-    splitSuiteName(suiteName, sn, next);
-    TestSuiteItem *suite = findSuite(sn);
-
-    if (!suite) {
-        suite = new TestSuiteItem(sn, this);
-        suite->setCheckState(0, Qt::Unchecked);
-        addChild(suite);
-    }
-
-    if (next.isEmpty())
-        return suite;
-    return suite->addSuite(next);
-}
-
-TestSuiteItem *TestSuiteItem::findSuite(const QString &suiteName)
-{
-    QString sn, next;
-    splitSuiteName(suiteName, sn, next);
-
-    int itemInd = 0;
-    TestViewItem *item = static_cast<TestViewItem *>(child(itemInd++));
-
-    while (item != 0) {
-        if (sn == item->name()) {
-            if (item->isTestSuite()) {
-                if (next.isEmpty()) {
-                    return static_cast<TestSuiteItem *>(item);
-                } else {
-                    TestSuiteItem *tmp = static_cast<TestSuiteItem *>(item);
-                    return static_cast<TestSuiteItem *>(tmp->findSuite(next));
-                }
-            } else {
-                return item->parentSuite();
-            }
-        }
-        item = static_cast<TestViewItem *>(child(itemInd++));
-    }
-    return 0;
-}
-
-TestCaseItem *TestSuiteItem::addCase(TestCode *code)
-{
-    TestSettings testSettings;
-    QString fname = code->visualFileName(testSettings.componentViewMode());
-
-    TestCaseItem *item = findCase(fname);
-    if (!item) {
-        item = new TestCaseItem(code, this);
-        addChild(item);
-        sortChildren(0, Qt::AscendingOrder);
-    }
-
-    return item;
-}
-
-TestCaseItem *TestSuiteItem::findCase(const QString &tcFileName)
-{
-    int itemInd = 0;
-    TestViewItem *item = static_cast<TestViewItem *>(child(itemInd++));
-    while (item != 0) {
-        if (item->fullName() == tcFileName)
-            return static_cast<TestCaseItem *>(item);
-
-        item = static_cast<TestViewItem*>(child(itemInd++));
-    }
-    return 0;
-}
-
-TestCaseItem::TestCaseItem(TestCode *code, TestSuiteItem *parent) :
-    TestViewItem(parent, code->baseFileName(), false, TestViewItem::TestCaseItemType)
-{
-    m_code = code;
-    if (code && code->isErrored()) {
-        m_errored = true;
-        setForeground(0, QBrush(QColor(192,192,192)));
-        setIcon(0, QIcon(QLatin1String(":/error.png")));
-        setToolTip(0, "This file contains syntax errors");
-    }
-}
-
-QString TestCaseItem::key(int column, bool /*ascending*/) const
-{
-    return text(column);
-}
-
-TestFunctionItem *TestCaseItem::addFunction(const QString &funcName, bool manualTest, int startLine)
-{
-    if (m_errored) {
-        m_errored = false;
-        setForeground(0, QBrush(QColor(0,0,0)));
-        setToolTip(0, QString());
-        updatePixmap();
-    }
-
-    TestFunctionItem *item;
-    if (!findFunction(funcName, item)) {
-        item = new TestFunctionItem(this, funcName, manualTest, startLine);
-    } else {
-        item->setData(1, 0, startLine);
-        if (manualTest)
-            item->setForeground(0, QBrush(QColor(255,0,0)));
-        else
-            item->setForeground(0, QBrush(QColor(0,0,0)));
-    }
-    return item;
-}
-
-bool TestCaseItem::findFunction(const QString &className, TestFunctionItem *&item)
-{
-    TestViewItem *tmp;
-    if (TestViewItem::findChild(className, tmp)) {
-        item = static_cast<TestFunctionItem *>(tmp);
-        return true;
-    }
-    return false;
-}
-
-TestFunctionItem::TestFunctionItem(TestCaseItem *parent, const QString &label1, bool manualTest, int startLine) :
-    TestViewItem(parent, label1, false, TestViewItem::TestFunctionItemType)
-{
-    m_manualTest = manualTest;
-    m_startLine = startLine;
-    setData(1, 0, startLine);
-    // show function name in RED if it's a manual test
-    if (manualTest)
-        setForeground(0, QBrush(QColor(255,0,0)));
-}
-
-QString TestFunctionItem::key(int column, bool /*ascending*/) const
-{
-    QString txt = text(column);
-    return txt;
-}
-
-int TestSelector::m_refCount = 0;
-
-TestSelector::TestSelector(QWidget *parent) :
-    QTreeWidget(parent)
-{
-    TestSettings testSettings;
-    m_hiddenTestTypes = static_cast<TestCode::TestTypes>(testSettings.hiddenTestTypes());
-
-    m_curItem = 0;
-
-    connect(TestExecuter::instance(), SIGNAL(testStarted()),
-        this, SLOT(updateActions()), Qt::DirectConnection);
-    connect(TestExecuter::instance(), SIGNAL(testFinished()),
-        this, SLOT(updateActions()), Qt::DirectConnection);
-
-    setColumnCount(1);
-    setSortingEnabled(false);
-    setRootIsDecorated(true);
-    setSelectionMode(QAbstractItemView::SingleSelection);
-
-    m_curTest.m_testFunction.clear();;
-    m_curTest.m_line = -1;
-    m_curTest.m_code = 0;
-
-    connect(this, SIGNAL(itemChanged(QTreeWidgetItem*,int)),
-        this, SLOT(onItemChanged(QTreeWidgetItem*,int)));
-    connect(this, SIGNAL(itemDoubleClicked(QTreeWidgetItem*,int)),
-        this, SLOT(onItemDoubleClicked(QTreeWidgetItem*,int)), Qt::DirectConnection);
-    connect(&m_testCollection, SIGNAL(testChanged(TestCode*)),
-        this, SLOT(onChanged(TestCode*)));
-    connect(&m_testCollection, SIGNAL(testRemoved(TestCode*)),
-        this, SLOT(onRemoved(TestCode*)));
-    connect(&m_testCollection, SIGNAL(changed()), this, SLOT(init()));
-    connect(&TestConfigurations::instance(), SIGNAL(activeConfigurationChanged()),
-        this, SLOT(onActiveConfigurationChanged()));
-    connect(this, SIGNAL(activeConfigurationChanged()),
-        &TestConfigurations::instance(), SLOT(onActiveConfigurationChanged()));
-    connect(this, SIGNAL(testSelectionChanged(QStringList)),
-        &TestConfigurations::instance(), SLOT(onTestSelectionChanged(QStringList)));
-    connect(&TestConfigurations::instance(), SIGNAL(testSelectionChanged(QStringList, QObject*)),
-        this, SLOT(onTestSelectionChanged(QStringList, QObject*)));
-
-    setFocusPolicy(Qt::StrongFocus);
-    header()->hide();
-
-    // create context menu (to be used in various places)
-    m_testContextMenu = new TestContextMenu(this);
-    connect(m_testContextMenu, SIGNAL(selectAllTests()),
-        this, SLOT(assignAll()), Qt::DirectConnection);
-    connect(m_testContextMenu, SIGNAL(selectAllManualTests()),
-        this, SLOT(assignAllManual()), Qt::DirectConnection);
-    connect(m_testContextMenu, SIGNAL(deselectAllTests()),
-        this, SLOT(unassignAll()), Qt::DirectConnection);
-    connect(m_testContextMenu, SIGNAL(toggleSelection()),
-        this, SLOT(toggleSelection()), Qt::DirectConnection);
-
-    // add context menu to test selector widget
-    m_testMenu = new QMenu;
-    m_testContextMenu->init(m_testMenu, 1, this);
-
-    m_componentViewMode = new QAction(tr("Component View"), this);
-    m_componentViewMode->setCheckable(true);
-    m_componentViewMode->setChecked(testSettings.componentViewMode());
-    connect(m_componentViewMode, SIGNAL(toggled(bool)), this, SLOT(setComponentViewMode(bool)));
-
-    m_showUnitTests = new QAction(tr("Show Unit Tests"), this);
-    m_showUnitTests->setCheckable(true);
-    m_showUnitTests->setChecked(!(m_hiddenTestTypes & TestCode::TypeUnitTest));
-    connect(m_showUnitTests, SIGNAL(toggled(bool)), this, SLOT(showUnitTests(bool)));
-
-    m_showIntegrationTests = new QAction(tr("Show Integration Tests"), this);
-    m_showIntegrationTests->setCheckable(true);
-    m_showIntegrationTests->setChecked(!(m_hiddenTestTypes & TestCode::TypeIntegrationTest));
-    connect(m_showIntegrationTests, SIGNAL(toggled(bool)), this, SLOT(showIntegrationTests(bool)));
-
-    m_showPerformanceTests = new QAction(tr("Show Performance Tests"), this);
-    m_showPerformanceTests->setCheckable(true);
-    m_showPerformanceTests->setChecked(!(m_hiddenTestTypes & TestCode::TypePerformanceTest));
-    connect(m_showPerformanceTests, SIGNAL(toggled(bool)), this, SLOT(showPerformanceTests(bool)));
-
-    m_showSystemTests = new QAction(tr("Show System Tests"), this);
-    m_showSystemTests->setCheckable(true);
-    m_showSystemTests->setChecked(!(m_hiddenTestTypes & TestCode::TypeSystemTest));
-    connect(m_showSystemTests, SIGNAL(toggled(bool)), this, SLOT(showSystemTests(bool)));
-
-    ++m_refCount;
-    Core::ICore *core = Core::ICore::instance();
-    Core::ActionManager *am = core->actionManager();
-    QMenu *m = am->actionContainer(Core::Id("QtTestPlugin.TestMenu"))->menu();
-    m->setEnabled(true);
-}
-
-void TestSelector::clear()
-{
-    QTreeWidget::clear();
-
-    while (topLevelItemCount() > 0)
-        delete takeTopLevelItem(0);
-}
-
-void TestSelector::onActiveConfigurationChanged()
-{
-    clear();
-    init();
-}
-
-void TestSelector::onTestSelectionChanged(const QStringList &selection, QObject *originator)
-{
-    if (originator != this) {
-        QTreeWidgetItemIterator it(this);
-        TestViewItem *child;
-        while (*it) {
-            child = recastItem(*it);
-            if (child)
-                child->setCheckState(0, Qt::Unchecked);
-            ++it;
-        }
-        setSelectedTests(false, selection);
-    }
-}
-
-void TestSelector::setComponentViewMode(bool filter)
-{
-    m_testSettings.setComponentViewMode(filter);
-    emit activeConfigurationChanged();
-}
-
-void TestSelector::showUnitTests(bool show)
-{
-    if (show)
-        m_hiddenTestTypes &= ~TestCode::TypeUnitTest;
-    else
-        m_hiddenTestTypes |= TestCode::TypeUnitTest;
-
-    m_testSettings.setHiddenTestTypes(m_hiddenTestTypes);
-    emit activeConfigurationChanged();
-}
-
-void TestSelector::showIntegrationTests(bool show)
-{
-    if (show)
-        m_hiddenTestTypes &= ~TestCode::TypeIntegrationTest;
-    else
-        m_hiddenTestTypes |= TestCode::TypeIntegrationTest;
-
-    m_testSettings.setHiddenTestTypes(m_hiddenTestTypes);
-    emit activeConfigurationChanged();
-}
-
-void TestSelector::showPerformanceTests(bool show)
-{
-    if (show)
-        m_hiddenTestTypes &= ~TestCode::TypePerformanceTest;
-    else
-        m_hiddenTestTypes |= TestCode::TypePerformanceTest;
-
-    m_testSettings.setHiddenTestTypes(m_hiddenTestTypes);
-    emit activeConfigurationChanged();
-}
-
-void TestSelector::showSystemTests(bool show)
-{
-    if (show)
-        m_hiddenTestTypes &= ~TestCode::TypeSystemTest;
-    else
-        m_hiddenTestTypes |= TestCode::TypeSystemTest;
-
-    m_testSettings.setHiddenTestTypes(m_hiddenTestTypes);
-    emit activeConfigurationChanged();
-}
-
-void TestSelector::init()
-{
-    Core::ModeManager *mgr = Core::ModeManager::instance();
-    if (mgr && mgr->currentMode()->id() == "Edit") {
-        TestConfigurations *tc = &TestConfigurations::instance();
-        if (tc->activeConfiguration()) {
-            for (int i = 0; i < m_testCollection.count(); ++i)
-                addTest(m_testCollection.testCode(i));
-        }
-        // apply settings we had last time
-        select(tc->currentTestCase(), tc->currentTestFunction());
-        setSelectedTests(false, tc->selectedTests());
-    } else {
-        // Try again later.
-        m_initTimer.setSingleShot(true);
-        m_initTimer.start(1000);
-    }
-}
-
-TestSelector::~TestSelector()
-{
-    if (--m_refCount == 0) {
-        Core::ICore *core = Core::ICore::instance();
-        if (core) {
-            Core::ActionManager *am = core->actionManager();
-            if (am) {
-                QMenu *m = am->actionContainer(Core::Id("QtTestPlugin.TestMenu"))->menu();
-                m->setEnabled(false);
-            }
-        }
-    }
-
-    delete m_testContextMenu;
-}
-
-void TestSelector::setContextMenu(TestContextMenu *contextMenu)
-{
-    m_testContextMenu = contextMenu;
-}
-
-void TestSelector::resize (int w, int h)
-{
-    QTreeWidget::resize(w,h);
-    setColumnWidth(0, w-4);
-}
-
-void TestSelector::setGeometry (int x, int y, int w, int h)
-{
-    QTreeWidget::setGeometry(x,y,w,h);
-    setColumnWidth(0, w-4);
-}
-
-void TestSelector::onItemChanged(QTreeWidgetItem *item, int column)
-{
-    Q_UNUSED(column)
-    if (TestViewItem *testItem = static_cast<TestViewItem *>(item)) {
-        if (testItem->savedState() != item->checkState(column)) {
-            testItem->toggle();
-            emit testSelectionChanged(selectedTests());
-        }
-    }
-}
-
-void TestSelector::onItemDoubleClicked(QTreeWidgetItem *item, int column)
-{
-    Q_UNUSED(column)
-    m_curItem = recastItem(item);
-
-    bool selected = false;
-    bool multiSelection = false;
-    m_testCollection.setCurrentEditedTest(0);
-    m_curTest.m_code = 0;
-
-    m_curTest.m_basePath.clear();
-    checkSuite(0, selected, multiSelection);
-    if (!selected || multiSelection) {
-        // no function and no class selected
-        m_curTest.m_code = 0;
-        m_curTest.m_testFunction.clear();
-        m_curTest.m_line = -1;
-        m_testContextMenu->updateSingleTestAction(QString());
-    }
-
-    if (m_curTest.m_code) {
-        QString cmd = m_curTest.m_code->testCase();
-        if (!m_curTest.m_testFunction.isEmpty())
-            cmd += "::"+ m_curTest.m_testFunction;
-        m_testContextMenu->updateSingleTestAction(cmd);
-    }
-
-    updateActions();
-
-    if (m_curTest.m_code) {
-        if (m_curTest.m_code->openTestInEditor(m_curTest.m_testFunction)) {
-            m_testCollection.setCurrentEditedTest(m_curTest.m_code);
-            TestConfigurations::instance().setCurrentTest(m_curTest.m_code->testCase(),
-                m_curTest.m_testFunction);
-        }
-    }
-    // todo fix this: walkaroud to prevent folding/unfolding test cases.
-    if (m_curItem->type() == TestViewItem::TestCaseItemType)
-        m_curItem->setExpanded(!m_curItem->isExpanded());
-}
-
-void TestSelector::updateActions()
-{
-    m_testContextMenu->updateActions(
-        TestConfigurations::instance().activeConfiguration() != 0,
-        TestExecuter::instance()->testBusy(),
-        TestExecuter::instance()->testStopped());
-}
-
-void TestSelector::selectGroup()
-{
-    QPointer<SelectDlg> dlg = new SelectDlg("Select a group",
-        "Please select the groups that you'd want to test",
-        QAbstractItemView::MultiSelection,
-        300, 400, QStringList() << "Groups", QByteArray(), this);
-
-    QStringList groupsList;
-    for (int i = 0; i < m_testCollection.count(); ++i) {
-        TestCode *tc = m_testCollection.testCode(i);
-        if (tc) {
-            for (uint j = 0; j < tc->testFunctionCount(); ++j) {
-                TestFunctionInfo *inf = tc->testFunction(j);
-                if (inf && (inf->testStartLine() >= 0)) {
-                    if (!inf->testGroups().isEmpty()) {
-                        dlg->addSelectableItems(inf->testGroups()
-                            .split(QLatin1Char(','), QString::SkipEmptyParts));
-                        groupsList.append(tc->testCase() + "::" + inf->functionName()
-                            + QLatin1Char('@') + inf->testGroups().split(QLatin1Char(','),
-                            QString::SkipEmptyParts).join(QString(QLatin1Char('@'))));
-                    }
-                }
-            }
-        }
-    }
-
-    if (dlg->exec()) {
-        QStringList selectedGroups = dlg->selectedItems();
-        unassignAll();
-        int current = 0;
-        while (current < groupsList.count()) {
-            bool containsAGroup = false;
-            for (int i = 0; i < selectedGroups.count(); ++i) {
-                if (groupsList[current].contains(QString(QLatin1Char('@') + selectedGroups[i]))) {
-                    containsAGroup = true;
-                    break;
-                }
-            }
-            if (!containsAGroup) {
-                groupsList.removeAt(current);
-            } else {
-                groupsList[current] = groupsList[current].left(groupsList[current].indexOf(QLatin1Char('@')));
-                ++current;
-            }
-        }
-        setSelectedTests(true, groupsList);
-    }
-    delete dlg;
-}
-
-QString TestSelector::curTestSuite(bool fullPath)
-{
-    if ((m_curTest.m_code == 0) || m_curTest.m_code->actualFileName().isEmpty())
-        return QString();
-    if (fullPath)
-        return m_curTest.m_code->fullVisualSuitePath(m_testSettings.componentViewMode());
-    return m_curTest.m_code->visualBasePath();
-}
-
-void TestSelector::checkSuite(TestSuiteItem *base, bool &selected, bool &multiSelection)
-{
-    TestViewItem *tmpViewItem;
-    int tmpViewItemInd = 1;
-    if (base == 0)
-        tmpViewItem = static_cast<TestViewItem *>(topLevelItem(0));
-    else
-        tmpViewItem = static_cast<TestViewItem *>(base->child(0));
-
-    while (tmpViewItem != 0) {
-
-        // Find out if the suite is selected
-        if (tmpViewItem->isTestSuite()) {
-
-            TestSuiteItem *T = static_cast<TestSuiteItem *>(tmpViewItem);
-
-            if (T->isSelected()) {
-                if (selected)
-                    multiSelection = true;
-                selected = true;
-                if (!multiSelection) {
-                    m_curTest.m_testFunction.clear();
-                    m_curTest.m_line = -1;
-                    if (!m_curTest.m_code
-                        || (m_curTest.m_code->visualFileName(m_testSettings.componentViewMode()) != T->fullName())) {
-
-                        m_curTest.m_code = m_testCollection.findCodeByVisibleName(T->fullName(),
-                            m_testSettings.componentViewMode());
-                    }
-                    m_curTest.m_basePath = T->baseSuiteName();
-                }
-            }
-
-            checkSuite(T, selected, multiSelection);
-        } else {
-
-            TestCaseItem *testCase = static_cast<TestCaseItem *>(tmpViewItem);
-            // Find out if the classItem is selected
-            if (testCase->isSelected()) {
-                if (selected)
-                    multiSelection = true;
-                selected = true;
-                if (!multiSelection) {
-                    m_curTest.m_testFunction.clear();
-                    m_curTest.m_line = -1;
-                    if (!m_curTest.m_code
-                        || (m_curTest.m_code->visualFileName(m_testSettings.componentViewMode()) != testCase->fullName())) {
-
-                        m_curTest.m_code = m_testCollection.findCodeByVisibleName(testCase->fullName(),
-                            m_testSettings.componentViewMode());
-                    }
-                    if (m_curTest.m_code)
-                        m_curTest.m_basePath = m_curTest.m_code->actualBasePath();
-                }
-            }
-
-            // Find out if there's a testfunction selected
-            int testFunctionInd = 0;
-            TestFunctionItem *testFunction = static_cast<TestFunctionItem *>(testCase->child(testFunctionInd++));
-            while (testFunction != 0) {
-                if (testFunction->isSelected()) {
-                    if (selected)
-                        multiSelection = true;
-                    selected = true;
-                    if (!multiSelection) {
-                        m_curTest.m_testFunction = testFunction->name();
-                        m_curTest.m_line = -1;
-                        if (!m_curTest.m_code
-                            || (m_curTest.m_code->visualFileName(m_testSettings.componentViewMode()) != testCase->fullName())) {
-
-                            m_curTest.m_code = m_testCollection.findCodeByVisibleName(testCase->fullName(),
-                                m_testSettings.componentViewMode());
-                        }
-                    }
-                }
-                NEXT_SIBLING(TestFunctionItem, testFunction);
-            }
-        }
-        NEXT_SIBLING(TestViewItem, tmpViewItem);
-    }
-}
-
-QStringList TestSelector::selectedTests()
-{
-    QStringList list;
-    getSelectedTests(0, list, false);
-    return list;
-}
-
-void TestSelector::getSelectedTests(TestSuiteItem *base, QStringList &list, bool forceAdd)
-{
-    TestViewItem *tmpViewItem;
-    int tmpViewItemInd = 1;
-    if (base == 0)
-        tmpViewItem = static_cast<TestViewItem *>(topLevelItem(0));
-    else
-        tmpViewItem = static_cast<TestViewItem *>(base->child(0));
-
-    while (tmpViewItem != 0) {
-        if (tmpViewItem->isTestSuite()) {
-
-            TestSuiteItem *T = static_cast<TestSuiteItem *>(tmpViewItem);
-            getSelectedTests(T, list, forceAdd || T->isAssigned());
-
-        } else {
-            int testFunctionInd = 1;
-            TestCaseItem *testCase = static_cast<TestCaseItem *>(tmpViewItem);
-            if (forceAdd || testCase->checkState(0) == Qt::Checked) {
-                TestFunctionItem *testFunction = static_cast<TestFunctionItem *>(testCase->child(0));
-                while (testFunction != 0) {
-                    if (testCase->m_code) {
-                        list.append(testCase->m_code->testCase()
-                            + "::" + testFunction->name());
-                    }
-                    NEXT_SIBLING(TestFunctionItem, testFunction);
-                }
-            }
-        }
-        NEXT_SIBLING(TestViewItem, tmpViewItem);
-    }
-}
-
-void TestSelector::setSelectedTests(bool save, const QStringList &list)
-{
-    foreach (const QString &sel, list) {
-        QString tcName = sel.left(sel.indexOf("::"));
-        QString function = sel.mid(sel.indexOf("::")+2);
-        // todo saving selected tests is based on file,
-        // need to be changed to be based on function
-        TestCode *tmp = m_testCollection.findCodeByTestCaseName(tcName);
-        if (tmp) {
-            QString fname = tmp->visualFileName(m_testSettings.componentViewMode());
-
-            int testFunctionInd = 1;
-            TestCaseItem *testCase = findCase(fname);
-            if (testCase) {
-                TestFunctionItem *testFunction = static_cast<TestFunctionItem *>(testCase->child(0));
-                bool found = false;
-                while (testFunction != 0) {
-                    if (testFunction->name() == function) {
-                        testFunction->setCheckState(0, Qt::Checked);
-                        found = true;
-                        break;
-                    }
-                    NEXT_SIBLING(TestFunctionItem, testFunction);
-                }
-                if (found)
-                    break;
-            }
-        }
-    }
-
-    if (save)
-        emit testSelectionChanged(list);
-}
-
-void TestSelector::keyPressEvent(QKeyEvent *e)
-{
-    if (e->key() == Qt::Key_Space) {
-        m_curItem = recastItem(currentItem());
-        toggleSelection();
-        e->accept();
-    } else {
-        QTreeWidget::keyPressEvent(e);
-    }
-}
-
-void TestSelector::keyReleaseEvent(QKeyEvent *e)
-{
-    if (e->key() == Qt::Key_Space)
-        e->accept();
-    else
-        QTreeWidget::keyReleaseEvent(e);
-}
-
-void TestSelector::mousePressEvent(QMouseEvent *e)
-{
-    m_curItem = 0;
-    if (itemAt(e->pos()))
-        m_curItem = recastItem(itemAt(e->pos()));
-
-    if (e->button() == Qt::RightButton
-#ifdef Q_OS_MAC
-        || (e->button() == Qt::LeftButton
-        && (e->modifiers() == Qt::AltModifier || e->modifiers() == Qt::MetaModifier))
-#endif
-    ) {
-        if (e->modifiers() == Qt::AltModifier) {
-            toggleSelection();
-        } else if (e->button() == Qt::RightButton
-            || (e->button() == Qt::LeftButton && e->modifiers() == Qt::MetaModifier)) {
-            if (m_testContextMenu) {
-                updateActions();
-                QString cmd;
-                if (m_curItem) {
-                    if (m_curItem->checkState(0) == Qt::Checked)
-                        cmd = tr("Unselect '%1'").arg(m_curItem->name());
-                    else
-                        cmd = tr("Select '%1'").arg(m_curItem->name());
-                }
-                m_testContextMenu->updateToggleAction(cmd);
-
-                e->accept();
-                QPoint p = mapToGlobal(e->pos());
-                p.setX(p.x()+3);
-                m_testMenu->exec(p);
-            }
-        }
-    } else {
-        QTreeWidget::mousePressEvent(e);
-    }
-}
-
-void TestSelector::mouseReleaseEvent(QMouseEvent *e)
-{
-    if (e->button() == Qt::RightButton
-#ifdef Q_OS_MAC
-        || (e->button() == Qt::LeftButton
-        && (e->modifiers() == Qt::AltModifier || e->modifiers() == Qt::MetaModifier))
-#endif
-    ) {
-        e->accept();
-    } else {
-        QTreeWidget::mouseReleaseEvent(e);
-    }
-}
-
-void TestSelector::toggleSelection()
-{
-    if (m_curItem->checkState(0) != Qt::Checked)
-        m_curItem->setCheckState(0, Qt::Checked);
-    else
-        m_curItem->setCheckState(0, Qt::Unchecked);
-
-    emit testSelectionChanged(selectedTests());
-}
-
-void TestSelector::rescan()
-{
-    clear();
-    TestConfigurations::instance().rescan();
-}
-
-void TestSelector::onChanged(TestCode *testCode)
-{
-    if (testCode)
-        addTest(testCode);
-}
-
-void TestSelector::onRemoved(TestCode *testCode)
-{
-    if (testCode)
-        removeCase(testCode, true, true);
-}
-
-void TestSelector::select(TestCaseRec rec)
-{
-    QString fname;
-    if (rec.m_code)
-        fname = rec.m_code->visualFileName(m_testSettings.componentViewMode());
-    select(fname, rec.m_testFunction);
-}
-
-void TestSelector::select(const QString &testCaseName, const QString &funcName)
-{
-    TestCode *tc = m_testCollection.findCodeByTestCaseName(testCaseName);
-    select(tc, funcName);
-}
-
-void TestSelector::select(TestCode *tc, const QString &funcName)
-{
-    QList<QTreeWidgetItem *> items = selectedItems();
-    for (int i = 0; i < items.size(); ++i)
-        if (items.at(i)->isSelected())
-            items.at(i)->setSelected(false);
-
-    if (tc) {
-        QString tcFileName = tc->visualFileName(m_testSettings.componentViewMode());
-        TestCaseItem *testCase = findCase(tcFileName);
-        if (testCase) {
-            if (!funcName.isEmpty()) {
-                TestFunctionItem *testFunction;
-                if (testCase->findFunction(funcName, testFunction)) {
-                    expandItem(testFunction);
-                    scrollToItem(testFunction);
-                    testFunction->setSelected(true);
-                }
-            } else {
-                expandItem(testCase);
-                scrollToItem(testCase);
-                testCase->setSelected(true);
-            }
-        } else {
-            TestSuiteItem *testSuite = findSuite(tcFileName);
-            if (testSuite) {
-                expandItem(testSuite);
-                scrollToItem(testSuite);
-                testSuite->setSelected(true);
-            }
-        }
-    }
-}
-
-TestSuiteItem *TestSelector::addSuite(TestCode *code)
-{
-    if (!code)
-        return 0;
-
-    QString bs = code->visualBasePath();
-    TestSuiteItem *base = findSuite(bs);
-    if (!base) {
-        // no base suite exists yet, so create it
-        base = new TestSuiteItem(bs, this);
-    }
-    QString rest = code->fullVisualSuitePath(m_testSettings.componentViewMode()).mid(bs.length()+1);
-    if (rest.isEmpty())
-        return base;
-    if (base) {
-        TestSuiteItem *addedSuite = base->addSuite(rest);
-        addedSuite->sortChildren(0, Qt::AscendingOrder);
-        return addedSuite;
-    }
-    return 0;
-}
-
-bool TestSelector::removeSuite(const QString &suiteName, bool force)
-{
-    return removeSuite2(static_cast<TestSuiteItem *>(topLevelItem(0)), suiteName, force);
-}
-
-bool TestSelector::removeSuite2(TestSuiteItem *base, const QString &suiteName, bool force)
-{
-    if (base == 0)
-        return false;
-
-    QStringList L = suiteName.split(QDir::separator());
-
-    int tmpItemInd = 0;
-    if (base) {
-        if (base->parent())
-            tmpItemInd = base->parent()->indexOfChild(base)+1;
-        else
-            tmpItemInd = indexOfTopLevelItem(base)+1;
-    }
-
-    if (L.count() > 1) {
-        TestSuiteItem *tmpItem = base;
-        while (tmpItem != 0) {
-            if (tmpItem->text(0) == L[0]) {
-                QString next;
-                for (int i = 1; i < L.count(); ++i) {
-                    next += L[i];
-                    next += QDir::separator();
-                }
-                // remove the last '/'
-                next = next.left(next.length()-1);
-
-                // I should actually remove the suite as well if it doesn't contain any more children...
-                // but I ignore that fact for the moment.
-                return removeSuite2(static_cast<TestSuiteItem *>(tmpItem->child(0)), next, force);
-            }
-
-            NEXT_SIBLING(TestSuiteItem, tmpItem);
-        }
-    } else {
-        TestSuiteItem* tmpItem = base;
-        while (tmpItem != 0) {
-            if (tmpItem->text(0) == suiteName) {
-                if (caseCount(suiteName) > 0) {
-                    if (force)
-                        tmpItem->removeAllChildren();
-                    else
-                        return false;
-                }
-
-                delete tmpItem;
-                return true;
-            } else {
-                NEXT_SIBLING(TestSuiteItem, tmpItem);
-            }
-        }
-    }
-
-    return false;
-}
-
-TestSuiteItem *TestSelector::findSuite(const QString &suiteName)
-{
-    int tsInd = 0;
-    TestSuiteItem *item = static_cast<TestSuiteItem *>(topLevelItem(0));
-    while (item != 0) {
-        if (suiteName == item->suiteName()) {
-            return item;
-        }
-        if (suiteName.startsWith(item->suiteName())) {
-            QString rest = suiteName;
-            rest.remove(item->suiteName() + QDir::separator());
-            return item->findSuite(rest);
-        }
-        item = static_cast<TestSuiteItem *>(topLevelItem(tsInd++));
-    }
-    return 0;
-}
-
-TestCaseItem *TestSelector::findCase(const QString &tcFileName)
-{
-    TestSuiteItem *testSuite = findSuite(tcFileName);
-    if (testSuite) {
-        TestCaseItem *tmp = testSuite->findCase(tcFileName);
-        return tmp;
-    }
-    return 0;
-}
-
-TestCaseItem *TestSelector::addCase(TestCode *code)
-{
-    TestSuiteItem *testSuite = addSuite(code);
-    if (testSuite) {
-        TestCaseItem *testCase = testSuite->addCase(code);
-        if (testCase != 0)
-            return testCase;
-    }
-    return 0;
-}
-
-bool TestSelector::removeCase(TestCode *code, bool clean, bool force)
-{
-    TestSuiteItem *suite = findSuite(code->fullVisualSuitePath(m_testSettings.componentViewMode()));
-    if (!suite)
-        return false;
-
-    TestCaseItem *Case = suite->findCase(code->visualFileName(m_testSettings.componentViewMode()));
-    if (!Case)
-        return false;
-
-    if (Case->functionCount() > 0) {
-        if (force)
-            Case->removeAllChildren();
-        else
-            return false;
-    }
-
-    suite->takeChild(suite->indexOfChild(Case));
-    if (clean)
-        removeSuite(code->fullVisualSuitePath(m_testSettings.componentViewMode()), false);
-    return true;
-}
-
-uint TestSelector::caseCount(const QString &suiteName)
-{
-    TestSuiteItem *suite = findSuite(suiteName);
-    if (!suite)
-        return 0;
-
-    return suite->childCount();
-}
-
-void TestSelector::removeFunction(TestCaseItem *testCase, const QString &funcName)
-{
-    if (!testCase)
-        return;
-    TestFunctionItem *testFunction;
-    if (testCase->findFunction(funcName, testFunction))
-        testCase->takeChild(testCase->indexOfChild(testFunction));
-}
-
-void TestSelector::assignAllManual()
-{
-    QString startPath;
-    if (m_curItem)
-        startPath = m_curItem->suiteName();
-
-    TestCollection tc;
-    setSelectedTests(true, tc.manualTests(startPath, m_testSettings.componentViewMode()));
-}
-
-void TestSelector::assignAll()
-{
-    QTreeWidgetItemIterator it(this);
-    TestViewItem *child;
-    while (*it) {
-        if ((*it)->childCount() == 0) {
-            child = recastItem(*it);
-            if (child)
-                child->setCheckState(0, Qt::Checked);
-        }
-        ++it;
-    }
-    emit testSelectionChanged(selectedTests());
-}
-
-void TestSelector::unassignAll()
-{
-    QTreeWidgetItemIterator it(this);
-    TestViewItem *child;
-    while (*it) {
-        child = recastItem(*it);
-        if (child)
-            child->setCheckState(0, Qt::Unchecked);
-        ++it;
-    }
-    emit testSelectionChanged(QStringList());
-}
-
-void TestSelector::addTest(TestCode *code)
-{
-    bool newCase = false;
-    if (!code->isInitialized())
-        return;
-
-    if (m_hiddenTestTypes & code->testType())
-        return;
-
-    if (!findSuite(code->visualBasePath()))
-        new TestSuiteItem(code->visualBasePath(), this);
-
-    TestCaseItem *testCase = findCase(code->visualFileName(m_testSettings.componentViewMode()));
-    if (!testCase) {
-        testCase = addCase(code);
-        newCase = true;
-    }
-
-    // Check if there are test functions that are not yet in the tree
-    setUpdatesEnabled(false);
-    for (uint i = 0; i < code->testFunctionCount(); ++i) {
-        TestFunctionInfo *testInfo = code->testFunction(i);
-        bool manualTest = testInfo->isManualTest();
-        int startLine = testInfo->testStartLine();
-        QString S = testInfo->functionName();
-        if ((S != "init") && (S != "cleanup") && (S != "initTestCase")
-            && (S != "cleanupTestCase") && !S.endsWith("_data")) {
-            testCase->addFunction(S, manualTest, startLine);
-        }
-    }
-
-    if (!newCase) {
-        // Remove test functions that no longer exist
-        TestFunctionItem *testFunction;
-        for (int tfInd = testCase->childCount()-1; tfInd >= 0; --tfInd) {
-            testFunction = static_cast<TestFunctionItem *>(testCase->child(tfInd));
-            if (testFunction) {
-                QString funcName = testFunction->text(0);
-                if (!code->testFunctionExists(funcName))
-                    removeFunction(testCase, funcName);
-            }
-        }
-    }
-
-    testCase->sortChildren(1, Qt::AscendingOrder);
-    setUpdatesEnabled(true);
-}
-
-//**************** Actions from Context menu *******************
-void TestSelector::testInsertUnitOrSystemTest()
-{
-    QString basePath = m_curTest.m_basePath;
-    if (basePath.isEmpty()) {
-        TestConfig *cfg = TestConfigurations::instance().activeConfiguration();
-        if (cfg)
-            basePath = cfg->srcPath();
-    }
-    QPointer<NewTestCaseDlg> dlg = new NewTestCaseDlg(basePath, this);
-    if (dlg->exec() == QDialog::Accepted) {
-        TestGenerator gen;
-        QString classFile;
-
-        gen.enableComponentInTestName(dlg->componentInName());
-        gen.setTestCase(dlg->mode(),
-            dlg->location(),
-            QString(), // use automatic "subdir" selection
-            dlg->testCaseName(),
-            dlg->testedComponent(),
-            dlg->testedClassName(),
-            classFile);
-
-        if (gen.generateTest()) {
-            TestCode *tc = m_testCollection.findCode(gen.generatedFileName(),
-                basePath, QString());
-            if (tc) {
-                // and select so that this is the file we are showing
-                select(tc, QString());
-            }
-        }
-    }
-    delete dlg;
-}
diff --git a/src/plugins/qttest/testselector.h b/src/plugins/qttest/testselector.h
deleted file mode 100644
index 725dd5dd1ac30ef4680f401a2c111c981bfd9e6f..0000000000000000000000000000000000000000
--- a/src/plugins/qttest/testselector.h
+++ /dev/null
@@ -1,217 +0,0 @@
-/**************************************************************************
-**
-** This file is part of Qt Creator
-**
-** Copyright (c) 2011 Nokia Corporation and/or its subsidiary(-ies).
-**
-** Contact: Nokia Corporation (info@qt.nokia.com)
-**
-**
-** GNU Lesser General Public License Usage
-**
-** This file may be used under the terms of the GNU Lesser General Public
-** License version 2.1 as published by the Free Software Foundation and
-** appearing in the file LICENSE.LGPL included in the packaging of this file.
-** Please review the following information to ensure the GNU Lesser General
-** Public License version 2.1 requirements will be met:
-** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Nokia gives you certain additional
-** rights. These rights are described in the Nokia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** Other Usage
-**
-** Alternatively, this file may be used in accordance with the terms and
-** conditions contained in a signed written agreement between you and Nokia.
-**
-** If you have questions regarding the use of this file, please contact
-** Nokia at info@qt.nokia.com.
-**
-**************************************************************************/
-
-#ifndef TESTSELECTOR_H
-#define TESTSELECTOR_H
-
-#include "testsuite.h"
-#include "testsettings.h"
-
-#include <QString>
-#include <QTreeWidget>
-
-QT_BEGIN_NAMESPACE
-class QMenu;
-class QAction;
-QT_END_NAMESPACE
-
-class TestSuiteItem;
-class TestCaseItem;
-class TestFunctionItem;
-class TestContextMenu;
-class TestCode;
-
-class TestViewItem : public QTreeWidgetItem
-{
-public:
-    TestViewItem(TestViewItem *parent, const QString &name,
-        bool testSuite, int type = TestViewItem::TestItemType);
-    TestViewItem(QTreeWidget *parent, const QString &name,
-        bool testSuite, int type=TestViewItem::TestItemType);
-    virtual ~TestViewItem();
-
-    QString name() { return m_name; }
-
-    bool isAssigned() { return m_assigned; }
-    bool childAssigned() { return m_childAssigned > 0; }
-
-    void resetAssignment();
-    void assign();
-    void unassign();
-    void updateParentState();
-    void updateChildState(bool local);
-
-    void setSavedState(Qt::CheckState state) { m_savedState = state; }
-
-    Qt::CheckState savedState() const { return m_savedState; }
-
-    virtual bool findChild(const QString &className, TestViewItem *&item);
-
-    void removeAllChildren();
-
-    void toggle();
-
-    bool isTestSuite();
-    TestSuiteItem *parentSuite();
-
-    QString baseSuiteName();
-    QString suiteName();
-    QString fullName();
-
-    enum TestItemTypes {
-        TestItemType = QTreeWidgetItem::UserType + 1,
-        TestSuiteItemType,
-        TestCaseItemType,
-        TestFunctionItemType
-    };
-
-    TestViewItem *parentTestViewItem() { return static_cast<TestViewItem *>(parent()); }
-
-protected:
-    void updatePixmap();
-
-    QString m_name;
-    bool m_errored;
-
-private:
-    uint m_childAssigned;
-    uint m_parentAssigned;
-    bool m_assigned;
-    Qt::CheckState m_savedState;
-    bool m_isTestSuite;
-};
-
-class TestSelector : public QTreeWidget
-{
-    Q_OBJECT
-
-public:
-    explicit TestSelector(QWidget *parent = 0);
-    virtual ~TestSelector();
-
-    void setContextMenu(TestContextMenu *contextMenu);
-
-    void setSelectedTests(bool save, const QStringList &list);
-    QStringList selectedTests();
-
-protected:
-    virtual void resize(int w, int h);
-
-    TestViewItem *recastItem(QTreeWidgetItem *item);
-
-    QString curTestSuite(bool fullPath = false);
-    TestCode *curTestCode() { return m_curTest.m_code; }
-
-    TestSuiteItem *addSuite(TestCode *code);
-    TestSuiteItem *findSuite(const QString &suitePath);
-    bool removeSuite(const QString &suitePath, bool force = false);
-
-    TestCaseItem *findCase(const QString &tcFileName);
-    TestCaseItem *addCase(TestCode *code);
-    bool removeCase(TestCode *code, bool clean = false, bool force = false);
-    uint caseCount(const QString &suiteName);
-
-    void removeFunction(TestCaseItem *Case, const QString &funcName);
-
-    virtual void clear();
-
-public slots:
-    void init();
-
-    // Action handlers...
-    virtual void testInsertUnitOrSystemTest();
-    virtual void selectGroup();
-
-    void updateActions();
-    void rescan();
-
-    void select(const QString &tcFileName, const QString &testFunc);
-    void select(TestCode *tc, const QString &testFunc);
-    void select(TestCaseRec rec);
-
-    void assignAll();
-    void assignAllManual();
-    void unassignAll();
-    void toggleSelection();
-
-    void onChanged(TestCode *testCode);
-    void onRemoved(TestCode *testCode);
-    void onItemChanged(QTreeWidgetItem *item, int column);
-    void onItemDoubleClicked(QTreeWidgetItem *, int);
-    void onActiveConfigurationChanged();
-    void onTestSelectionChanged(const QStringList &, QObject *);
-
-    virtual void setGeometry (int x, int y, int w, int h);
-    void setComponentViewMode(bool filter);
-    void showUnitTests(bool);
-    void showIntegrationTests(bool);
-    void showPerformanceTests(bool);
-    void showSystemTests(bool);
-
-signals:
-    void activeConfigurationChanged();
-    void testSelectionChanged(const QStringList &);
-
-protected:
-    virtual void keyPressEvent(QKeyEvent *e);
-    virtual void keyReleaseEvent(QKeyEvent *e);
-    virtual void mousePressEvent(QMouseEvent *e);
-    virtual void mouseReleaseEvent(QMouseEvent *e);
-
-public:
-    QAction *m_componentViewMode;
-    QAction *m_showUnitTests;
-    QAction *m_showIntegrationTests;
-    QAction *m_showPerformanceTests;
-    QAction *m_showSystemTests;
-
-private:
-    bool removeSuite2(TestSuiteItem *base, const QString &suiteName, bool force);
-    void checkSuite(TestSuiteItem *testSuite, bool &selected, bool &multiSelection);
-
-    void getSelectedTests(TestSuiteItem *base, QStringList &list, bool isAssigned);
-
-    void resetGroupsMenu();
-    void addTest(TestCode *code);
-
-    TestCaseRec m_curTest;
-    TestContextMenu *m_testContextMenu;
-    TestCollection m_testCollection;
-    TestSettings m_testSettings;
-    QMenu *m_testMenu;
-    static int m_refCount;
-    TestViewItem *m_curItem;
-    QTimer m_initTimer;
-    TestCode::TestTypes m_hiddenTestTypes;
-};
-
-#endif
diff --git a/src/plugins/qttest/testsettings.cpp b/src/plugins/qttest/testsettings.cpp
deleted file mode 100644
index 927fbc6d46b1c8088e35563b7401c345b206bd4f..0000000000000000000000000000000000000000
--- a/src/plugins/qttest/testsettings.cpp
+++ /dev/null
@@ -1,450 +0,0 @@
-/**************************************************************************
-**
-** This file is part of Qt Creator
-**
-** Copyright (c) 2011 Nokia Corporation and/or its subsidiary(-ies).
-**
-** Contact: Nokia Corporation (info@qt.nokia.com)
-**
-**
-** GNU Lesser General Public License Usage
-**
-** This file may be used under the terms of the GNU Lesser General Public
-** License version 2.1 as published by the Free Software Foundation and
-** appearing in the file LICENSE.LGPL included in the packaging of this file.
-** Please review the following information to ensure the GNU Lesser General
-** Public License version 2.1 requirements will be met:
-** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Nokia gives you certain additional
-** rights. These rights are described in the Nokia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** Other Usage
-**
-** Alternatively, this file may be used in accordance with the terms and
-** conditions contained in a signed written agreement between you and Nokia.
-**
-** If you have questions regarding the use of this file, please contact
-** Nokia at info@qt.nokia.com.
-**
-**************************************************************************/
-
-#include "testsettings.h"
-
-#include <QDir>
-#include <QString>
-#include <QStringList>
-
-#include <QFile>
-#include <QTextStream>
-#include <QDateTime>
-
-class TestIniFile
-{
-public:
-    TestIniFile(const QString &fileName);
-    virtual ~TestIniFile();
-
-    bool read(const QString &key, QString &ret);
-    bool read(const QString &key, int &ret);
-    bool read(const QString &key, uint &ret);
-    bool read(const QString &key, QDateTime &ret);
-
-    bool write(const QString &comment, const QString &key, const QString &value);
-    bool write(const QString &comment, const QString &key, int value);
-    bool write(const QString &comment, const QString &key, uint value);
-    bool write(const QString &comment, const QString &key, QDateTime value);
-
-private:
-    bool initSaving(const QString &comment);
-    bool find(const QString &key, QString &line);
-
-    QStringList m_settings;
-    QString m_fileName;
-
-    QFile *m_outFile;
-    QTextStream *m_outStream;
-};
-
-#include <iostream>
-using namespace std;
-
-TestIniFile::TestIniFile(const QString &fileName)
-{
-    m_outFile = 0;
-    m_outStream = 0;
-
-    m_fileName = fileName;
-
-    QFile F(m_fileName);
-    if (F.open(QIODevice::ReadOnly)) {
-        QTextStream ds(&F);
-        QString S;
-        while (!ds.atEnd()) {
-            S = ds.readLine().trimmed();
-            if (!S.isEmpty() && !S.startsWith(QLatin1Char('#')))
-                m_settings.append(S);
-        }
-    }
-}
-
-TestIniFile::~TestIniFile()
-{
-    if (m_outFile != 0) {
-        delete m_outStream;
-        delete m_outFile;
-    }
-}
-
-bool TestIniFile::find(const QString &key, QString &line)
-{
-    foreach (const QString &S, m_settings) {
-        if (S.startsWith(key)) {
-            int pos = S.indexOf(QLatin1Char('='));
-            if (pos > 0) {
-                line = S.mid(pos+1).trimmed();
-                return true;
-            }
-        }
-    }
-    return false;
-}
-
-bool TestIniFile::read(const QString &key, QString &ret)
-{
-    QString line;
-    if (find(key, line)) {
-        ret = line;
-        return true;
-    }
-
-    return false;
-}
-
-bool TestIniFile::read(const QString &key, int &ret)
-{
-    QString line;
-    if (find(key, line)) {
-        bool ok;
-        ret = line.toInt(&ok);
-        return ok;
-    }
-
-    return false;
-}
-
-bool TestIniFile::read(const QString &key, uint &ret)
-{
-    QString line;
-    if (find(key, line)) {
-        bool ok;
-        ret = line.toUInt(&ok);
-        return ok;
-    }
-
-    return false;
-}
-
-bool TestIniFile::read(const QString &key, QDateTime &ret)
-{
-    QString line;
-    if (find(key, line)) {
-        if (line.isEmpty())
-            ret = QDateTime();
-        else
-            ret = QDateTime::fromString(line, Qt::ISODate);
-        return ret.isValid();
-    }
-
-    return false;
-}
-
-bool TestIniFile::initSaving(const QString &comment)
-{
-    if (m_outFile == 0) {
-        m_outFile = new QFile(m_fileName);
-        if (m_outFile->open(QIODevice::WriteOnly)) {
-            m_outStream = new QTextStream(m_outFile);
-            *m_outStream << "#Lines with a # on the first position are remarks.\n";
-            *m_outStream << "#data on all other lines must be entered according to the hints.\n";
-            *m_outStream << "\n";
-        } else {
-            delete m_outFile;
-            m_outFile = 0;
-            return false;
-        }
-    }
-
-    foreach (const QString &S, comment.split(QLatin1Char('\n'))) {
-        if (!S.startsWith(QLatin1Char('#')))
-            *m_outStream << "# ";
-        *m_outStream << S << "\n";
-    }
-
-    return true;
-}
-
-bool TestIniFile::write(const QString &comment, const QString &key, const QString &value)
-{
-    if (!initSaving(comment))
-        return false;
-    *m_outStream << key << '=';
-    if (!value.isEmpty())
-        *m_outStream << value;
-    *m_outStream << "\n\n";
-    return true;
-}
-
-bool TestIniFile::write(const QString &comment, const QString &key, int value)
-{
-    if (!initSaving(comment))
-        return false;
-    *m_outStream << key << '=' << QString::number(value) << "\n\n";
-    return true;
-}
-
-bool TestIniFile::write(const QString &comment, const QString &key, uint value)
-{
-    if (!initSaving(comment))
-        return false;
-    *m_outStream << key << '=' << QString::number(value) << "\n\n";
-    return true;
-}
-
-bool TestIniFile::write(const QString &comment, const QString &key, QDateTime value)
-{
-    if (!initSaving(comment))
-        return false;
-    *m_outStream << key << '=';
-    if (value.isValid())
-        *m_outStream << value.toString(Qt::ISODate);
-    *m_outStream << "\n\n";
-    return true;
-}
-
-int TestSettings::m_refCount = 0;
-TestSettingsPrivate *TestSettings::d = 0;
-
-TestSettingsPrivate::TestSettingsPrivate()
-{
-    // Clear out the settings first incase there is no ini file or it's missing values
-    m_showPassedResults = true;
-    m_showDebugResults = true;
-    m_showSkippedResults = true;
-    m_showVerbose = 0;
-    m_hiddenTestTypes = 0;
-    load();
-}
-
-TestSettingsPrivate::~TestSettingsPrivate()
-{
-    save();
-}
-
-void TestSettingsPrivate::emitChanged()
-{
-    emit changed();
-}
-
-void TestSettingsPrivate::load()
-{
-    TestIniFile ini(QDir ::homePath() + QDir::separator() + ".qttest"
-        + QDir::separator() + "saved_settings");
-
-    int showPassedResults;
-    int showDebugResults;
-    int showSkippedResults;
-    ini.read("showPassedResults", showPassedResults);
-    ini.read("showDebugResults", showDebugResults);
-    ini.read("showSkippedResults", showSkippedResults);
-    ini.read("showVerbose", m_showVerbose);
-    ini.read("autosaveOn", m_autosaveOn);
-    ini.read("componentViewMode", m_componentViewMode);
-    ini.read("uploadServer", m_uploadServer);
-    ini.read("systemTestRunner", m_systemTestRunner);
-    ini.read("learnMode", m_learnMode);
-    ini.read("hiddenTestTypes", m_hiddenTestTypes);
-
-    m_showPassedResults = showPassedResults;
-    m_showDebugResults = showDebugResults;
-    m_showSkippedResults = showSkippedResults;
-}
-
-void TestSettingsPrivate::save()
-{
-    QDir().mkpath(QDir::homePath() + QDir::separator() + ".qttest");
-    TestIniFile ini(QDir::homePath() + QDir::separator() + ".qttest" + QDir::separator() + "saved_settings");
-
-    ini.write("Set to 1 if passed must be shown", "showPassedResults", m_showPassedResults);
-    ini.write("Set to 1 if debug must be shown", "showDebugResults", m_showDebugResults);
-    ini.write("Set to 1 if skipped must be shown", "showSkippedResults", m_showSkippedResults);
-    ini.write("Set to 1 for verbose logging", "showVerbose", m_showVerbose);
-    ini.write("Autosaving enabled/disabled", "autosaveOn", m_autosaveOn);
-    ini.write("Show tests in selection tree sorted by component", "componentViewMode", m_componentViewMode);
-    ini.write("The server to which test results will be uploaded", "uploadServer", m_uploadServer);
-    ini.write("The fully qualified path to the system test executer", "systemTestRunner", m_systemTestRunner);
-    ini.write("The current learn mode", "learnMode", m_learnMode);
-    ini.write("Test types hidden in selection tree", "hiddenTestTypes", m_hiddenTestTypes);
-}
-
-TestSettings::TestSettings()
-{
-    if (m_refCount++ == 0) {
-        d = new TestSettingsPrivate();
-        Q_ASSERT(d);
-        d->load();
-    }
-    connect(d, SIGNAL(changed()), this, SIGNAL(changed()));
-}
-
-TestSettings::~TestSettings()
-{
-    if (--m_refCount == 0) {
-        delete d;
-        d = 0;
-    }
-}
-
-void TestSettings::save()
-{
-    Q_ASSERT(d);
-    d->save();
-}
-
-bool TestSettings::showPassedResults()
-{
-    Q_ASSERT(d);
-    return d->m_showPassedResults;
-}
-
-bool TestSettings::showDebugResults()
-{
-    Q_ASSERT(d);
-    return d->m_showDebugResults;
-}
-
-bool TestSettings::showSkippedResults()
-{
-    Q_ASSERT(d);
-    return d->m_showSkippedResults;
-}
-
-void TestSettings::setShowPassedResults(bool doShow)
-{
-    Q_ASSERT(d);
-    if (d->m_showPassedResults != doShow) {
-        d->m_showPassedResults = doShow;
-        d->emitChanged();
-    }
-}
-
-void TestSettings::setShowDebugResults(bool doShow)
-{
-    Q_ASSERT(d);
-    if (d->m_showDebugResults != doShow) {
-        d->m_showDebugResults = doShow;
-        d->emitChanged();
-    }
-}
-
-void TestSettings::setShowSkippedResults(bool doShow)
-{
-    Q_ASSERT(d);
-    if (d->m_showSkippedResults != doShow) {
-        d->m_showSkippedResults = doShow;
-        d->emitChanged();
-    }
-}
-
-bool TestSettings::showVerbose()
-{
-    Q_ASSERT(d);
-    return (d->m_showVerbose != 0);
-}
-
-void TestSettings::setShowVerbose(bool doVerbose)
-{
-    Q_ASSERT(d);
-    d->m_showVerbose = 0;
-    if (doVerbose)
-        d->m_showVerbose = 1;
-}
-
-bool TestSettings::autosaveOn()
-{
-    Q_ASSERT(d);
-    return (d->m_autosaveOn != 0);
-}
-
-void TestSettings::setAutosaveOn(bool on)
-{
-    Q_ASSERT(d);
-    if (on)
-        d->m_autosaveOn = 1;
-    else
-        d->m_autosaveOn = 0;
-}
-
-bool TestSettings::componentViewMode()
-{
-    Q_ASSERT(d);
-    return (d->m_componentViewMode != 0);
-}
-
-void TestSettings::setComponentViewMode(bool on)
-{
-    Q_ASSERT(d);
-    if (on)
-        d->m_componentViewMode = 1;
-    else
-        d->m_componentViewMode = 0;
-}
-
-int TestSettings::hiddenTestTypes()
-{
-    Q_ASSERT(d);
-    return d->m_hiddenTestTypes;
-}
-
-void TestSettings::setHiddenTestTypes(int types)
-{
-    Q_ASSERT(d);
-    d->m_hiddenTestTypes = types;
-}
-
-QString TestSettings::uploadServer() const
-{
-    Q_ASSERT(d);
-    return d->m_uploadServer;
-}
-
-void TestSettings::setUploadServer(const QString &newValue)
-{
-    Q_ASSERT(d);
-    d->m_uploadServer = newValue;
-}
-
-QString TestSettings::systemTestRunner() const
-{
-    Q_ASSERT(d);
-    return d->m_systemTestRunner;
-}
-
-void TestSettings::setSystemTestRunner(const QString &newValue)
-{
-    Q_ASSERT(d);
-    d->m_systemTestRunner = newValue;
-}
-
-int TestSettings::learnMode()
-{
-    Q_ASSERT(d);
-    return d->m_learnMode;
-}
-
-void TestSettings::setLearnMode(int newMode)
-{
-    Q_ASSERT(d);
-    d->m_learnMode = newMode;
-}
diff --git a/src/plugins/qttest/testsettings.h b/src/plugins/qttest/testsettings.h
deleted file mode 100644
index b01b1fc3fe9de77cad49a11f2825e7ab95c925f6..0000000000000000000000000000000000000000
--- a/src/plugins/qttest/testsettings.h
+++ /dev/null
@@ -1,112 +0,0 @@
-/**************************************************************************
-**
-** This file is part of Qt Creator
-**
-** Copyright (c) 2011 Nokia Corporation and/or its subsidiary(-ies).
-**
-** Contact: Nokia Corporation (info@qt.nokia.com)
-**
-**
-** GNU Lesser General Public License Usage
-**
-** This file may be used under the terms of the GNU Lesser General Public
-** License version 2.1 as published by the Free Software Foundation and
-** appearing in the file LICENSE.LGPL included in the packaging of this file.
-** Please review the following information to ensure the GNU Lesser General
-** Public License version 2.1 requirements will be met:
-** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Nokia gives you certain additional
-** rights. These rights are described in the Nokia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** Other Usage
-**
-** Alternatively, this file may be used in accordance with the terms and
-** conditions contained in a signed written agreement between you and Nokia.
-**
-** If you have questions regarding the use of this file, please contact
-** Nokia at info@qt.nokia.com.
-**
-**************************************************************************/
-
-#ifndef TESTSETTINGS_H
-#define TESTSETTINGS_H
-
-#include <QObject>
-
-// class TestSettingsPrivate;
-class TestSettingsPrivate : public QObject
-{
-    Q_OBJECT
-
-public:
-    TestSettingsPrivate();
-    ~TestSettingsPrivate();
-
-    void load();
-    void save();
-    void emitChanged();
-
-    bool m_showPassedResults;
-    bool m_showDebugResults;
-    bool m_showSkippedResults;
-    int m_showVerbose;
-    QString m_uploadServer;
-    QString m_systemTestRunner;
-    int m_learnMode;
-    int m_autosaveOn;
-    int m_componentViewMode;
-    int m_hiddenTestTypes;
-
-signals:
-    void changed();
-};
-
-class TestSettings : public QObject
-{
-    Q_OBJECT
-
-public:
-    TestSettings();
-    virtual ~TestSettings();
-
-    void save();
-
-    bool showPassedResults();
-    bool showDebugResults();
-    bool showSkippedResults();
-    void setShowPassedResults(bool doShow);
-    void setShowDebugResults(bool doShow);
-    void setShowSkippedResults(bool doShow);
-
-    bool showVerbose();
-    void setShowVerbose(bool doVerbose);
-
-    bool autosaveOn();
-    void setAutosaveOn(bool on);
-
-    QString systemTestRunner() const;
-    void setSystemTestRunner(const QString &newValue);
-
-    QString uploadServer() const;
-    void setUploadServer(const QString &newValue);
-
-    bool componentViewMode();
-    void setComponentViewMode(bool on);
-    int hiddenTestTypes();
-    void setHiddenTestTypes(int);
-
-    int learnMode(); // 0 = none, 1 = new, 2 = all;
-
-    void setLearnMode(int newMode);
-
-signals:
-    void changed();
-
-private:
-    static TestSettingsPrivate *d;
-    static int m_refCount;
-};
-
-#endif
diff --git a/src/plugins/qttest/testsettingspropertiespage.cpp b/src/plugins/qttest/testsettingspropertiespage.cpp
deleted file mode 100644
index 33188f00f74c58dd40f27a9c86fd51b274404e4e..0000000000000000000000000000000000000000
--- a/src/plugins/qttest/testsettingspropertiespage.cpp
+++ /dev/null
@@ -1,317 +0,0 @@
-/**************************************************************************
-**
-** This file is part of Qt Creator
-**
-** Copyright (c) 2011 Nokia Corporation and/or its subsidiary(-ies).
-**
-** Contact: Nokia Corporation (info@qt.nokia.com)
-**
-**
-** GNU Lesser General Public License Usage
-**
-** This file may be used under the terms of the GNU Lesser General Public
-** License version 2.1 as published by the Free Software Foundation and
-** appearing in the file LICENSE.LGPL included in the packaging of this file.
-** Please review the following information to ensure the GNU Lesser General
-** Public License version 2.1 requirements will be met:
-** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Nokia gives you certain additional
-** rights. These rights are described in the Nokia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** Other Usage
-**
-** Alternatively, this file may be used in accordance with the terms and
-** conditions contained in a signed written agreement between you and Nokia.
-**
-** If you have questions regarding the use of this file, please contact
-** Nokia at info@qt.nokia.com.
-**
-**************************************************************************/
-
-#include "testsettingspropertiespage.h"
-#include "testconfigurations.h"
-
-#include <projectexplorer/project.h>
-
-#include <QFileDialog>
-#include <QDebug>
-
-using namespace QtTest;
-using namespace QtTest::Internal;
-
-QString TestSettingsPanelFactory::id() const
-{
-    return QLatin1String(TESTSETTINGS_PANEL_ID);
-}
-
-QString TestSettingsPanelFactory::displayName() const
-{
-    return QCoreApplication::translate("TestSettingsPanelFactory", "Test Settings");
-}
-
-bool TestSettingsPanelFactory::supports(ProjectExplorer::Project *project)
-{
-    Q_UNUSED(project);
-    return true;
-}
-
-ProjectExplorer::PropertiesPanel *TestSettingsPanelFactory::createPanel(ProjectExplorer::Project *project)
-{
-    ProjectExplorer::PropertiesPanel *panel = new ProjectExplorer::PropertiesPanel;
-    panel->setWidget(new TestSettingsWidget(project));
-    panel->setIcon(QIcon(":/projectexplorer/images/EditorSettings.png"));
-    panel->setDisplayName(QCoreApplication::translate("TestSettingsPanel", "Test Settings"));
-    return panel;
-}
-
-TestSettingsWidget::TestSettingsWidget(ProjectExplorer::Project *project) :
-    QWidget(),
-    m_project(project)
-{
-    m_ui.setupUi(this);
-
-    TestConfigurations::instance().delayConfigUpdates(true);
-
-    m_uploadMode.addButton(m_ui.upload_auto, 0);
-    m_uploadMode.addButton(m_ui.upload_ask_me, 1);
-    m_uploadMode.addButton(m_ui.upload_no_thanks, 2);
-    m_uploadMethod.addButton(m_ui.upload_scp, 0);
-    m_uploadMethod.addButton(m_ui.upload_email, 1);
-
-    m_testConfig = TestConfigurations::instance().config(project->displayName());
-
-    if (m_testConfig) {
-        m_ui.auto_detect_platform_configuration->setChecked(m_testConfig->autoDetectPlatformConfiguration());
-        m_ui.upload_change->setText(m_testConfig->uploadChange());
-        m_ui.upload_branch->setText(m_testConfig->uploadBranch());
-        m_ui.upload_branch_Specialization->setText(m_testConfig->uploadBranchSpecialization());
-        m_ui.host_platform->setText(m_testConfig->uploadPlatform());
-        m_ui.qmakespec->setText(m_testConfig->QMAKESPEC());
-        m_ui.qmakespecSpecialization->setText(m_testConfig->QMAKESPECSpecialization());
-
-        m_ui.upload_scp->setChecked(m_testConfig->uploadUsingScp());
-        m_ui.upload_email->setChecked(m_testConfig->uploadUsingEMail());
-        setExtraDirectories(m_testConfig->extraTests());
-
-
-        switch (m_testConfig->uploadMode()) {
-        case TestConfig::UploadAuto:
-            m_ui.upload_auto->setChecked(true);
-            break;
-        case TestConfig::UploadAskMe:
-            m_ui.upload_ask_me->setChecked(true);
-            break;
-        case TestConfig::UploadNoThanks:
-            m_ui.upload_no_thanks->setChecked(true);
-            break;
-        }
-    }
-    m_ui.upload_server->setText(m_testSettings.uploadServer());
-    m_ui.show_passed_results->setChecked(m_testSettings.showPassedResults());
-    m_ui.show_debug_results->setChecked(m_testSettings.showDebugResults());
-    m_ui.show_skipped_results->setChecked(m_testSettings.showSkippedResults());
-    m_ui.show_verbose_make_results->setChecked(m_testSettings.showVerbose());
-
-    onChanged();
-
-    connect(m_ui.upload_change, SIGNAL(textEdited(QString)),
-        this, SLOT(onChanged()), Qt::DirectConnection);
-
-    connect(m_ui.upload_branch, SIGNAL(textEdited(QString)),
-        this, SLOT(onChanged()), Qt::DirectConnection);
-    connect(m_ui.upload_branch_Specialization, SIGNAL(textEdited(QString)),
-        this, SLOT(onChanged()), Qt::DirectConnection);
-
-    connect(m_ui.auto_detect_platform_configuration, SIGNAL(toggled(bool)),
-        this, SLOT(onChanged()), Qt::DirectConnection);
-
-    connect(m_ui.qmakespec, SIGNAL(textEdited(QString)),
-        this, SLOT(onChanged()), Qt::DirectConnection);
-    connect(m_ui.qmakespecSpecialization, SIGNAL(textEdited(QString)),
-        this, SLOT(onChanged()), Qt::DirectConnection);
-
-    connect(m_ui.upload_server, SIGNAL(textEdited(QString)),
-        this, SLOT(onChanged()), Qt::DirectConnection);
-    connect(m_ui.host_platform, SIGNAL(textEdited(QString)),
-        this, SLOT(onChanged()), Qt::DirectConnection);
-    connect(m_ui.show_passed_results, SIGNAL(toggled(bool)),
-        this, SLOT(onChanged()), Qt::DirectConnection);
-    connect(m_ui.show_debug_results, SIGNAL(toggled(bool)),
-        this, SLOT(onChanged()), Qt::DirectConnection);
-    connect(m_ui.show_skipped_results, SIGNAL(toggled(bool)),
-        this, SLOT(onChanged()), Qt::DirectConnection);
-
-    connect(m_ui.show_verbose_make_results, SIGNAL(toggled(bool)),
-        this, SLOT(onChanged()), Qt::DirectConnection);
-
-    connect(&m_uploadMode, SIGNAL(buttonClicked(int)),
-        this, SLOT(onChanged()), Qt::DirectConnection);
-    connect(&m_uploadMethod, SIGNAL(buttonClicked(int)),
-        this, SLOT(onChanged()), Qt::DirectConnection);
-
-    connect(m_ui.add_directory_btn, SIGNAL(pressed()),
-        this, SLOT(onAddDirectoryBtnClicked()), Qt::DirectConnection);
-    connect(m_ui.clear_directory_btn, SIGNAL(pressed()),
-        this, SLOT(onClearDirectoryBtnClicked()), Qt::DirectConnection);
-
-    connect(&m_testSettings, SIGNAL(changed()),
-        this, SLOT(onSettingsChanged()), Qt::DirectConnection);
-
-    setFocusPolicy(Qt::StrongFocus);
-}
-
-TestSettingsWidget::~TestSettingsWidget()
-{
-    m_testSettings.save();
-
-    TestConfigurations::instance().delayConfigUpdates(false);
-}
-
-
-// Update settings before focus moves away from widget
-void TestSettingsWidget::leaveEvent(QEvent *event)
-{
-    m_testSettings.save();
-
-    TestConfigurations::instance().delayConfigUpdates(false);
-    QWidget::leaveEvent(event);
-}
-
-
-void TestSettingsWidget::enterEvent(QEvent *event)
-{
-    TestConfigurations::instance().delayConfigUpdates(true);
-    QWidget::enterEvent(event);
-}
-
-
-void TestSettingsWidget::onChanged()
-{
-    if (m_testConfig) {
-        bool auto_detect = m_ui.auto_detect_platform_configuration->isChecked();
-        bool auto_detect_enabled = (auto_detect && !m_testConfig->autoDetectPlatformConfiguration());
-
-        m_testConfig->setAutoDetectPlatformConfiguration(auto_detect);
-        m_testConfig->setUploadMethod(m_ui.upload_scp->isChecked());
-        m_testConfig->setExtraTests(extraDirectories());
-
-        m_ui.upload_change->setEnabled(!auto_detect);
-        m_ui.upload_branch->setEnabled(!auto_detect);
-        m_ui.host_platform->setEnabled(!auto_detect);
-        m_ui.qmakespec->setEnabled(!auto_detect);
-        m_ui.platform_label->setEnabled(!auto_detect);
-        m_ui.change_label->setEnabled(!auto_detect);
-        m_ui.branch_label->setEnabled(!auto_detect);
-        m_ui.qmakespec_label->setEnabled(!auto_detect);
-
-        if (auto_detect) {
-            m_ui.upload_change->setText(m_testConfig->uploadChange());
-            m_ui.upload_branch->setText(m_testConfig->uploadBranch());
-            m_ui.host_platform->setText(m_testConfig->uploadPlatform());
-            QString device_name;
-            Utils::SshConnectionParameters dummy(Utils::SshConnectionParameters::DefaultProxy);
-            QString device_type;
-
-            // do not override current choice using remote target name unless
-            // auto detect was just enabled by user.
-            if (auto_detect_enabled) {
-                m_ui.qmakespec->setText(m_testConfig->QMAKESPEC());
-                // refresh qmakespec value from autodetected value
-                m_testConfig->setQMAKESPEC(m_ui.qmakespec->text().trimmed());
-                if (m_testConfig->isRemoteTarget(device_name, device_type, dummy)){
-                    // update branch and qmakespec specialization
-                    m_ui.qmakespecSpecialization->setText(device_name);
-                    m_testConfig->setQMAKESPECSpecialization(m_ui.qmakespecSpecialization->text().trimmed());
-                    m_ui.upload_branch_Specialization->setText(device_name);
-                    m_testConfig->setUploadBranchSpecialization(m_ui.upload_branch_Specialization->text().trimmed());
-                }
-            }
-        } else {
-            m_testConfig->setUploadChange(m_ui.upload_change->text().trimmed());
-            m_testConfig->setUploadBranch(m_ui.upload_branch->text().trimmed());
-            m_testConfig->setUploadPlatform(m_ui.host_platform->text().trimmed());
-            m_testConfig->setQMAKESPEC(m_ui.qmakespec->text().trimmed());
-            m_testConfig->setQMAKESPECSpecialization(m_ui.qmakespecSpecialization->text().trimmed());
-            m_testConfig->setUploadBranchSpecialization(m_ui.upload_branch_Specialization->text().trimmed());
-        }
-
-        m_testConfig->setUploadMode((TestConfig::UploadMode)m_uploadMode.checkedId());
-
-    }
-
-    // the effective branch and qmakespec is computed in TestExecuter::runSelectedTests()
-    // use same logic here to support the display of the actual branch and qmakespec
-    // to be used when uploading test results
-    if (!m_ui.upload_branch_Specialization->text().trimmed().isEmpty())
-        m_ui.effectiveBranchName->setText(m_ui.upload_branch->text().trimmed()
-            + QLatin1Char('-') + m_ui.upload_branch_Specialization->text().trimmed());
-    else
-        m_ui.effectiveBranchName->setText(m_ui.upload_branch->text().trimmed());
-
-    if (!m_ui.qmakespecSpecialization->text().trimmed().isEmpty())
-        m_ui.effectiveQMakespec->setText(m_ui.qmakespec->text().trimmed()
-            + QLatin1Char('_') + m_ui.qmakespecSpecialization->text().trimmed());
-    else
-        m_ui.effectiveQMakespec->setText(m_ui.qmakespec->text().trimmed());
-
-    m_testSettings.setUploadServer(m_ui.upload_server->text());
-    m_testSettings.setShowPassedResults(m_ui.show_passed_results->isChecked());
-    m_testSettings.setShowDebugResults(m_ui.show_debug_results->isChecked());
-    m_testSettings.setShowSkippedResults(m_ui.show_skipped_results->isChecked());
-    m_testSettings.setShowVerbose(m_ui.show_verbose_make_results->isChecked());
-}
-
-void TestSettingsWidget::onUploadScpChanged()
-{
-    m_ui.upload_email->setChecked(!m_ui.upload_scp->isChecked());
-    onChanged();
-}
-
-void TestSettingsWidget::onUploadEMailChanged()
-{
-    m_ui.upload_scp->setChecked(!m_ui.upload_email->isChecked());
-    onChanged();
-}
-
-void TestSettingsWidget::onAddDirectoryBtnClicked()
-{
-    QString newDirectory = QFileDialog::getExistingDirectory(this, "Choose Extra Test Directory");
-    if (!newDirectory.isEmpty())
-        m_ui.extra_tests->addItem(newDirectory);
-    onChanged();
-}
-
-void TestSettingsWidget::onClearDirectoryBtnClicked()
-{
-    m_ui.extra_tests->clear();
-    onChanged();
-}
-
-void TestSettingsWidget::onSettingsChanged()
-{
-    if (m_ui.show_passed_results->isChecked() != m_testSettings.showPassedResults())
-        m_ui.show_passed_results->setChecked(m_testSettings.showPassedResults());
-    if (m_ui.show_debug_results->isChecked() != m_testSettings.showDebugResults())
-        m_ui.show_debug_results->setChecked(m_testSettings.showDebugResults());
-    if (m_ui.show_skipped_results->isChecked() != m_testSettings.showSkippedResults())
-        m_ui.show_skipped_results->setChecked(m_testSettings.showSkippedResults());
-}
-
-QStringList TestSettingsWidget::extraDirectories() const
-{
-    QStringList result;
-    for (int index = 0; index < m_ui.extra_tests->count(); ++index)
-        result.append(m_ui.extra_tests->item(index)->text());
-
-    return result;
-}
-
-void TestSettingsWidget::setExtraDirectories(const QStringList list)
-{
-    m_ui.extra_tests->clear();
-
-    foreach (const QString &s, list)
-        m_ui.extra_tests->addItem(s);
-}
diff --git a/src/plugins/qttest/testsettingspropertiespage.h b/src/plugins/qttest/testsettingspropertiespage.h
deleted file mode 100644
index a00c23b32cac795f31eb342cbfb003b089036652..0000000000000000000000000000000000000000
--- a/src/plugins/qttest/testsettingspropertiespage.h
+++ /dev/null
@@ -1,89 +0,0 @@
-/**************************************************************************
-**
-** This file is part of Qt Creator
-**
-** Copyright (c) 2011 Nokia Corporation and/or its subsidiary(-ies).
-**
-** Contact: Nokia Corporation (info@qt.nokia.com)
-**
-**
-** GNU Lesser General Public License Usage
-**
-** This file may be used under the terms of the GNU Lesser General Public
-** License version 2.1 as published by the Free Software Foundation and
-** appearing in the file LICENSE.LGPL included in the packaging of this file.
-** Please review the following information to ensure the GNU Lesser General
-** Public License version 2.1 requirements will be met:
-** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Nokia gives you certain additional
-** rights. These rights are described in the Nokia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** Other Usage
-**
-** Alternatively, this file may be used in accordance with the terms and
-** conditions contained in a signed written agreement between you and Nokia.
-**
-** If you have questions regarding the use of this file, please contact
-** Nokia at info@qt.nokia.com.
-**
-**************************************************************************/
-
-#ifndef TESTSETTINGSPROPERTIESPAGE_H
-#define TESTSETTINGSPROPERTIESPAGE_H
-
-#include "testsettings.h"
-#include "ui_testsettingspropertiespage.h"
-
-#include <projectexplorer/iprojectproperties.h>
-
-class TestConfig;
-
-namespace QtTest {
-namespace Internal {
-
-const char TESTSETTINGS_PANEL_ID[] = "QtTest.TestSettingsPanel";
-
-class TestSettingsPanelFactory : public ProjectExplorer::IProjectPanelFactory
-{
-public:
-    QString id() const;
-    QString displayName() const;
-    ProjectExplorer::PropertiesPanel *createPanel(ProjectExplorer::Project *project);
-    bool supports(ProjectExplorer::Project *project);
-};
-
-class TestSettingsWidget : public QWidget
-{
-    Q_OBJECT
-public:
-    TestSettingsWidget(ProjectExplorer::Project *project);
-    virtual ~TestSettingsWidget();
-    void enterEvent(QEvent *event);
-    void leaveEvent(QEvent *event);
-
-public slots:
-    void onChanged();
-    void onUploadScpChanged();
-    void onUploadEMailChanged();
-    void onAddDirectoryBtnClicked();
-    void onClearDirectoryBtnClicked();
-    void onSettingsChanged();
-
-private:
-    QStringList extraDirectories() const;
-    void setExtraDirectories(const QStringList list);
-
-    TestSettings m_testSettings;
-    Ui::TestSettingsPropertiesPage m_ui;
-    ProjectExplorer::Project *m_project;
-    TestConfig *m_testConfig;
-    QButtonGroup m_uploadMode;
-    QButtonGroup m_uploadMethod;
-};
-
-} // namespace Internal
-} // namespace QtTest
-
-#endif // TESTSETTINGSPROPERTIESPAGE_H
diff --git a/src/plugins/qttest/testsettingspropertiespage.ui b/src/plugins/qttest/testsettingspropertiespage.ui
deleted file mode 100644
index aee09aecd92e34df7b87f20648e98f1d2cff1bfc..0000000000000000000000000000000000000000
--- a/src/plugins/qttest/testsettingspropertiespage.ui
+++ /dev/null
@@ -1,485 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<ui version="4.0">
- <class>QtTest::Internal::TestSettingsPropertiesPage</class>
- <widget class="QWidget" name="QtTest::Internal::TestSettingsPropertiesPage">
-  <property name="geometry">
-   <rect>
-    <x>0</x>
-    <y>0</y>
-    <width>590</width>
-    <height>704</height>
-   </rect>
-  </property>
-  <property name="focusPolicy">
-   <enum>Qt::StrongFocus</enum>
-  </property>
-  <layout class="QVBoxLayout" name="verticalLayout_2">
-   <item>
-    <widget class="QLabel" name="label_10">
-     <property name="text">
-      <string>General</string>
-     </property>
-    </widget>
-   </item>
-   <item>
-    <widget class="QGroupBox" name="groupBox_2">
-     <property name="title">
-      <string/>
-     </property>
-     <layout class="QGridLayout" name="gridLayout">
-      <item row="0" column="0">
-       <widget class="QCheckBox" name="show_passed_results">
-        <property name="text">
-         <string>Show passing test results</string>
-        </property>
-       </widget>
-      </item>
-      <item row="1" column="0">
-       <widget class="QCheckBox" name="show_debug_results">
-        <property name="text">
-         <string>Show debug messages in test tesults</string>
-        </property>
-       </widget>
-      </item>
-      <item row="2" column="0">
-       <widget class="QCheckBox" name="show_skipped_results">
-        <property name="text">
-         <string>Show skipped test results</string>
-        </property>
-       </widget>
-      </item>
-      <item row="3" column="0">
-       <widget class="QCheckBox" name="show_verbose_make_results">
-        <property name="text">
-         <string>Show verbose make results</string>
-        </property>
-       </widget>
-      </item>
-     </layout>
-    </widget>
-   </item>
-   <item>
-    <widget class="QLabel" name="label_9">
-     <property name="text">
-      <string>Extra tests</string>
-     </property>
-    </widget>
-   </item>
-   <item>
-    <widget class="QGroupBox" name="groupBox_6">
-     <property name="sizePolicy">
-      <sizepolicy hsizetype="Preferred" vsizetype="Maximum">
-       <horstretch>0</horstretch>
-       <verstretch>0</verstretch>
-      </sizepolicy>
-     </property>
-     <property name="title">
-      <string/>
-     </property>
-     <layout class="QVBoxLayout" name="verticalLayout">
-      <item>
-       <widget class="QLabel" name="label_3">
-        <property name="text">
-         <string>Directories that contain extra tests that are relevant for this project:</string>
-        </property>
-        <property name="wordWrap">
-         <bool>true</bool>
-        </property>
-       </widget>
-      </item>
-      <item>
-       <layout class="QHBoxLayout" name="horizontalLayout_4">
-        <item>
-         <spacer name="horizontalSpacer_5">
-          <property name="orientation">
-           <enum>Qt::Horizontal</enum>
-          </property>
-          <property name="sizeHint" stdset="0">
-           <size>
-            <width>40</width>
-            <height>20</height>
-           </size>
-          </property>
-         </spacer>
-        </item>
-        <item>
-         <widget class="QPushButton" name="add_directory_btn">
-          <property name="text">
-           <string>Add</string>
-          </property>
-         </widget>
-        </item>
-        <item>
-         <spacer name="horizontalSpacer_7">
-          <property name="orientation">
-           <enum>Qt::Horizontal</enum>
-          </property>
-          <property name="sizeType">
-           <enum>QSizePolicy::Maximum</enum>
-          </property>
-          <property name="sizeHint" stdset="0">
-           <size>
-            <width>13</width>
-            <height>20</height>
-           </size>
-          </property>
-         </spacer>
-        </item>
-        <item>
-         <widget class="QPushButton" name="clear_directory_btn">
-          <property name="text">
-           <string>Clear</string>
-          </property>
-         </widget>
-        </item>
-        <item>
-         <spacer name="horizontalSpacer_6">
-          <property name="orientation">
-           <enum>Qt::Horizontal</enum>
-          </property>
-          <property name="sizeHint" stdset="0">
-           <size>
-            <width>40</width>
-            <height>20</height>
-           </size>
-          </property>
-         </spacer>
-        </item>
-       </layout>
-      </item>
-      <item>
-       <widget class="QListWidget" name="extra_tests">
-        <property name="maximumSize">
-         <size>
-          <width>16777215</width>
-          <height>200</height>
-         </size>
-        </property>
-       </widget>
-      </item>
-     </layout>
-    </widget>
-   </item>
-   <item>
-    <widget class="QLabel" name="label_6">
-     <property name="text">
-      <string>Platform configuration</string>
-     </property>
-    </widget>
-   </item>
-   <item>
-    <widget class="QGroupBox" name="groupBox_4">
-     <property name="title">
-      <string/>
-     </property>
-     <layout class="QGridLayout" name="gridLayout_2">
-      <item row="0" column="0" colspan="2">
-       <widget class="QCheckBox" name="auto_detect_platform_configuration">
-        <property name="text">
-         <string>Auto detect platform configuration</string>
-        </property>
-        <property name="checked">
-         <bool>true</bool>
-        </property>
-       </widget>
-      </item>
-      <item row="1" column="0">
-       <widget class="QLabel" name="change_label">
-        <property name="text">
-         <string>Change</string>
-        </property>
-       </widget>
-      </item>
-      <item row="1" column="1">
-       <widget class="QLineEdit" name="upload_change">
-        <property name="enabled">
-         <bool>false</bool>
-        </property>
-        <property name="toolTip">
-         <string>The SHA1 of the code under test</string>
-        </property>
-       </widget>
-      </item>
-      <item row="2" column="0">
-       <widget class="QLabel" name="branch_label">
-        <property name="text">
-         <string>Branch</string>
-        </property>
-       </widget>
-      </item>
-      <item row="2" column="1">
-       <widget class="QLabel" name="effectiveBranchName">
-        <property name="text">
-         <string/>
-        </property>
-       </widget>
-      </item>
-      <item row="3" column="1">
-       <layout class="QHBoxLayout" name="horizontalLayout">
-        <item>
-         <widget class="QLineEdit" name="upload_branch">
-          <property name="toolTip">
-           <string>The branch related to test, eg: &lt;Product&gt;-&lt;Version&gt;</string>
-          </property>
-         </widget>
-        </item>
-        <item>
-         <spacer name="horizontalSpacer_3">
-          <property name="orientation">
-           <enum>Qt::Horizontal</enum>
-          </property>
-          <property name="sizeType">
-           <enum>QSizePolicy::Maximum</enum>
-          </property>
-          <property name="sizeHint" stdset="0">
-           <size>
-            <width>40</width>
-            <height>20</height>
-           </size>
-          </property>
-         </spacer>
-        </item>
-        <item>
-         <widget class="QLabel" name="upload_branch_Specialization_label">
-          <property name="text">
-           <string>Specialization</string>
-          </property>
-         </widget>
-        </item>
-        <item>
-         <widget class="QLineEdit" name="upload_branch_Specialization">
-          <property name="toolTip">
-           <string>The value to be automatically appended to branch, e.g  &lt;DeviceName&gt;</string>
-          </property>
-         </widget>
-        </item>
-       </layout>
-      </item>
-      <item row="4" column="0">
-       <widget class="QLabel" name="platform_label">
-        <property name="text">
-         <string>Host platform</string>
-        </property>
-       </widget>
-      </item>
-      <item row="4" column="1">
-       <widget class="QLineEdit" name="host_platform">
-        <property name="toolTip">
-         <string>The host platform running QtCreator, e.g: Linux</string>
-        </property>
-       </widget>
-      </item>
-      <item row="5" column="0">
-       <widget class="QLabel" name="label_7">
-        <property name="text">
-         <string>Qmakespec</string>
-        </property>
-       </widget>
-      </item>
-      <item row="5" column="1">
-       <widget class="QLabel" name="effectiveQMakespec">
-        <property name="text">
-         <string/>
-        </property>
-       </widget>
-      </item>
-      <item row="6" column="0">
-       <widget class="QLabel" name="qmakespec_label">
-        <property name="text">
-         <string/>
-        </property>
-       </widget>
-      </item>
-      <item row="6" column="1">
-       <layout class="QHBoxLayout" name="horizontalLayout_2">
-        <item>
-         <widget class="QLineEdit" name="qmakespec">
-          <property name="toolTip">
-           <string>The reference for the platform under test, e.g: &lt;MkSpec&gt;</string>
-          </property>
-         </widget>
-        </item>
-        <item>
-         <spacer name="horizontalSpacer_4">
-          <property name="orientation">
-           <enum>Qt::Horizontal</enum>
-          </property>
-          <property name="sizeType">
-           <enum>QSizePolicy::Maximum</enum>
-          </property>
-          <property name="sizeHint" stdset="0">
-           <size>
-            <width>40</width>
-            <height>20</height>
-           </size>
-          </property>
-         </spacer>
-        </item>
-        <item>
-         <widget class="QLabel" name="qmakespecSpecialization_label">
-          <property name="text">
-           <string>Specialization</string>
-          </property>
-         </widget>
-        </item>
-        <item>
-         <widget class="QLineEdit" name="qmakespecSpecialization">
-          <property name="toolTip">
-           <string>The value to be automatically appended to Qmakespec, e.g &lt;DeviceName&gt;</string>
-          </property>
-         </widget>
-        </item>
-       </layout>
-      </item>
-     </layout>
-    </widget>
-   </item>
-   <item>
-    <widget class="QLabel" name="label_5">
-     <property name="text">
-      <string>Test result upload method</string>
-     </property>
-    </widget>
-   </item>
-   <item>
-    <widget class="QGroupBox" name="groupBox_3">
-     <property name="title">
-      <string/>
-     </property>
-     <layout class="QGridLayout" name="gridLayout_5">
-      <item row="0" column="0" colspan="2">
-       <widget class="QLabel" name="label_4">
-        <property name="text">
-         <string>Result uploading:</string>
-        </property>
-       </widget>
-      </item>
-      <item row="0" column="2" colspan="2">
-       <widget class="QRadioButton" name="upload_auto">
-        <property name="text">
-         <string>Automatic (recommended)</string>
-        </property>
-        <property name="checked">
-         <bool>true</bool>
-        </property>
-       </widget>
-      </item>
-      <item row="0" column="4">
-       <widget class="QRadioButton" name="upload_ask_me">
-        <property name="text">
-         <string>Ask me</string>
-        </property>
-       </widget>
-      </item>
-      <item row="0" column="5">
-       <widget class="QRadioButton" name="upload_no_thanks">
-        <property name="text">
-         <string>No thanks</string>
-        </property>
-       </widget>
-      </item>
-      <item row="0" column="6">
-       <spacer name="horizontalSpacer_2">
-        <property name="orientation">
-         <enum>Qt::Horizontal</enum>
-        </property>
-        <property name="sizeHint" stdset="0">
-         <size>
-          <width>84</width>
-          <height>17</height>
-         </size>
-        </property>
-       </spacer>
-      </item>
-      <item row="1" column="0">
-       <widget class="QLabel" name="label">
-        <property name="text">
-         <string>Method:</string>
-        </property>
-       </widget>
-      </item>
-      <item row="1" column="1">
-       <widget class="QRadioButton" name="upload_scp">
-        <property name="text">
-         <string>Scp</string>
-        </property>
-       </widget>
-      </item>
-      <item row="1" column="2">
-       <widget class="QRadioButton" name="upload_email">
-        <property name="text">
-         <string>E-mail</string>
-        </property>
-       </widget>
-      </item>
-      <item row="1" column="3" colspan="4">
-       <spacer name="horizontalSpacer">
-        <property name="orientation">
-         <enum>Qt::Horizontal</enum>
-        </property>
-        <property name="sizeHint" stdset="0">
-         <size>
-          <width>404</width>
-          <height>20</height>
-         </size>
-        </property>
-       </spacer>
-      </item>
-      <item row="2" column="0" colspan="7">
-       <layout class="QHBoxLayout" name="horizontalLayout_3">
-        <item>
-         <widget class="QLabel" name="server_label">
-          <property name="text">
-           <string>Upload server</string>
-          </property>
-         </widget>
-        </item>
-        <item>
-         <widget class="QLineEdit" name="upload_server">
-          <property name="sizePolicy">
-           <sizepolicy hsizetype="Expanding" vsizetype="Fixed">
-            <horstretch>0</horstretch>
-            <verstretch>0</verstretch>
-           </sizepolicy>
-          </property>
-          <property name="toolTip">
-           <string>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
-&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
-p, li { white-space: pre-wrap; }
-&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:'Sans Serif'; font-size:9pt; font-weight:400; font-style:normal;&quot;&gt;
-&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;For the &lt;span style=&quot; font-weight:600;&quot;&gt;scp&lt;/span&gt; upload method the upload server location must be in the form:&lt;span style=&quot; font-weight:600;&quot;&gt; &lt;/span&gt;&lt;span style=&quot; font-style:italic;&quot;&gt;&amp;lt;user&amp;gt;@&amp;lt;ServerHost&amp;gt;&lt;/span&gt;&lt;span style=&quot; font-weight:600; font-style:italic;&quot;&gt;:/home/qt/results &lt;/span&gt;and a passphraseless SSH public key uploaded to the server.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
-          </property>
-         </widget>
-        </item>
-       </layout>
-      </item>
-     </layout>
-    </widget>
-   </item>
-  </layout>
- </widget>
- <tabstops>
-  <tabstop>show_passed_results</tabstop>
-  <tabstop>show_debug_results</tabstop>
-  <tabstop>show_skipped_results</tabstop>
-  <tabstop>show_verbose_make_results</tabstop>
-  <tabstop>add_directory_btn</tabstop>
-  <tabstop>clear_directory_btn</tabstop>
-  <tabstop>auto_detect_platform_configuration</tabstop>
-  <tabstop>upload_change</tabstop>
-  <tabstop>upload_branch</tabstop>
-  <tabstop>upload_branch_Specialization</tabstop>
-  <tabstop>host_platform</tabstop>
-  <tabstop>qmakespec</tabstop>
-  <tabstop>qmakespecSpecialization</tabstop>
-  <tabstop>upload_auto</tabstop>
-  <tabstop>upload_ask_me</tabstop>
-  <tabstop>upload_no_thanks</tabstop>
-  <tabstop>upload_scp</tabstop>
-  <tabstop>upload_email</tabstop>
-  <tabstop>upload_server</tabstop>
-  <tabstop>extra_tests</tabstop>
- </tabstops>
- <resources/>
- <connections/>
-</ui>
diff --git a/src/plugins/qttest/testsuite.h b/src/plugins/qttest/testsuite.h
deleted file mode 100644
index 276d52f959ce24d57be4094d44178110c52c9095..0000000000000000000000000000000000000000
--- a/src/plugins/qttest/testsuite.h
+++ /dev/null
@@ -1,50 +0,0 @@
-/**************************************************************************
-**
-** This file is part of Qt Creator
-**
-** Copyright (c) 2011 Nokia Corporation and/or its subsidiary(-ies).
-**
-** Contact: Nokia Corporation (info@qt.nokia.com)
-**
-**
-** GNU Lesser General Public License Usage
-**
-** This file may be used under the terms of the GNU Lesser General Public
-** License version 2.1 as published by the Free Software Foundation and
-** appearing in the file LICENSE.LGPL included in the packaging of this file.
-** Please review the following information to ensure the GNU Lesser General
-** Public License version 2.1 requirements will be met:
-** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Nokia gives you certain additional
-** rights. These rights are described in the Nokia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** Other Usage
-**
-** Alternatively, this file may be used in accordance with the terms and
-** conditions contained in a signed written agreement between you and Nokia.
-**
-** If you have questions regarding the use of this file, please contact
-** Nokia at info@qt.nokia.com.
-**
-**************************************************************************/
-
-#ifndef TESTSUITE_H
-#define TESTSUITE_H
-
-#include "testcode.h"
-
-#include <QString>
-#include <QPointer>
-
-class TestCaseRec
-{
-public:
-    QPointer<TestCode> m_code;
-    QString m_testFunction;
-    QString m_basePath;
-    int m_line;
-};
-
-#endif