From 22f03cbde6fe6ea8ff635e6f1f2e8e4fc6d94df3 Mon Sep 17 00:00:00 2001
From: Friedemann Kleint <Friedemann.Kleint@nokia.com>
Date: Tue, 2 Nov 2010 16:14:00 +0100
Subject: [PATCH] ProjectExplor/Debugger: Header cleanup

---
 .../cmakeprojectmanager/cmakeprojectmanager.h |  5 +-
 src/plugins/debugger/breakhandler.cpp         |  5 --
 src/plugins/debugger/breakwindow.h            |  3 +-
 src/plugins/debugger/cdb/cdbmodules.cpp       |  1 +
 src/plugins/debugger/consolewindow.cpp        | 30 +-----------
 src/plugins/debugger/debuggeractions.cpp      |  2 +-
 src/plugins/debugger/debuggeractions.h        |  2 +-
 src/plugins/debugger/debuggeragents.cpp       |  1 -
 src/plugins/debugger/debuggerengine.cpp       |  5 +-
 src/plugins/debugger/debuggerengine.h         |  1 -
 src/plugins/debugger/debuggermainwindow.h     |  1 -
 src/plugins/debugger/debuggerplugin.cpp       | 46 -------------------
 src/plugins/debugger/debuggerrunner.cpp       | 11 -----
 src/plugins/debugger/debuggerrunner.h         |  2 -
 src/plugins/debugger/debuggertooltip.cpp      |  5 +-
 src/plugins/debugger/debuggeruiswitcher.cpp   |  7 ---
 src/plugins/debugger/debuggeruiswitcher.h     |  4 +-
 .../debugger/gdb/abstractgdbadapter.cpp       | 22 ++++++++-
 src/plugins/debugger/gdb/abstractgdbadapter.h | 20 ++++----
 .../debugger/gdb/abstractplaingdbadapter.cpp  |  3 +-
 src/plugins/debugger/gdb/attachgdbadapter.cpp |  1 +
 src/plugins/debugger/gdb/attachgdbadapter.h   |  3 +-
 src/plugins/debugger/gdb/classicgdbengine.cpp |  1 +
 src/plugins/debugger/gdb/coregdbadapter.cpp   |  2 +-
 src/plugins/debugger/gdb/coregdbadapter.h     |  4 +-
 src/plugins/debugger/gdb/gdbengine.h          |  5 +-
 src/plugins/debugger/gdb/gdboptionspage.h     |  1 -
 .../debugger/gdb/localplaingdbadapter.h       |  4 +-
 src/plugins/debugger/gdb/pythongdbengine.cpp  |  2 +-
 .../debugger/gdb/remotegdbserveradapter.cpp   |  2 +-
 .../debugger/gdb/remotegdbserveradapter.h     |  3 +-
 .../debugger/gdb/remoteplaingdbadapter.cpp    |  2 +-
 src/plugins/debugger/gdb/tcftrkgdbadapter.cpp |  2 +-
 src/plugins/debugger/gdb/tcftrkgdbadapter.h   |  2 +-
 src/plugins/debugger/gdb/termgdbadapter.cpp   |  2 +-
 src/plugins/debugger/gdb/termgdbadapter.h     |  5 +-
 src/plugins/debugger/gdb/trkgdbadapter.cpp    |  1 +
 src/plugins/debugger/gdb/trkgdbadapter.h      |  2 +-
 src/plugins/debugger/logwindow.cpp            | 43 ++++++++---------
 src/plugins/debugger/logwindow.h              |  2 +
 src/plugins/debugger/moduleshandler.cpp       |  6 ---
 src/plugins/debugger/moduleswindow.cpp        |  1 -
 src/plugins/debugger/registerwindow.cpp       |  6 ---
 src/plugins/debugger/sessionengine.cpp        |  1 -
 src/plugins/debugger/snapshothandler.cpp      |  7 +--
 src/plugins/debugger/snapshothandler.h        |  2 +-
 src/plugins/debugger/snapshotwindow.cpp       |  4 +-
 src/plugins/debugger/snapshotwindow.h         |  1 -
 src/plugins/debugger/sourcefileshandler.h     |  2 -
 src/plugins/debugger/sourcefileswindow.cpp    |  3 --
 src/plugins/debugger/sourcefileswindow.h      |  3 +-
 src/plugins/debugger/stackhandler.cpp         |  2 -
 src/plugins/debugger/stackhandler.h           |  3 --
 src/plugins/debugger/stackwindow.cpp          |  5 --
 src/plugins/debugger/threadswindow.cpp        |  2 -
 src/plugins/debugger/watchdata.cpp            |  2 -
 src/plugins/debugger/watchdata.h              |  1 -
 src/plugins/debugger/watchhandler.cpp         |  4 --
 src/plugins/debugger/watchhandler.h           |  1 -
 src/plugins/debugger/watchwindow.h            |  1 -
 .../genericprojectmanager.h                   |  1 +
 .../projectexplorer/abstractprocessstep.cpp   |  3 +-
 .../projectexplorer/allprojectsfilter.h       |  1 -
 .../projectexplorer/allprojectsfind.cpp       |  3 +-
 src/plugins/projectexplorer/allprojectsfind.h |  3 --
 .../projectexplorer/buildstepspage.cpp        |  1 +
 src/plugins/projectexplorer/buildstepspage.h  |  6 ++-
 .../projectexplorer/currentprojectfilter.cpp  |  4 --
 .../projectexplorer/currentprojectfilter.h    |  2 -
 .../projectexplorer/currentprojectfind.cpp    |  5 --
 .../projectexplorer/currentprojectfind.h      |  5 --
 .../projectexplorer/editorconfiguration.cpp   |  2 +-
 src/plugins/projectexplorer/iprojectmanager.h |  4 +-
 .../projectexplorer/pluginfilefactory.h       |  1 -
 .../projectexplorer/projectexplorer.cpp       |  1 +
 src/plugins/projectexplorer/projectmodels.cpp |  4 +-
 .../projectexplorer/projecttreewidget.cpp     |  1 +
 .../projectexplorer/projecttreewidget.h       |  4 +-
 .../projectwelcomepagewidget.cpp              |  1 -
 src/plugins/projectexplorer/projectwindow.cpp | 16 +------
 .../showineditortaskhandler.cpp               |  1 -
 .../qmlprojectmanager/qmlprojectmanager.h     |  1 +
 .../qtuicodemodelsupport.cpp                  |  4 --
 .../qt4projectmanager/qtuicodemodelsupport.h  |  5 +-
 84 files changed, 115 insertions(+), 286 deletions(-)

diff --git a/src/plugins/cmakeprojectmanager/cmakeprojectmanager.h b/src/plugins/cmakeprojectmanager/cmakeprojectmanager.h
index f6bae9241d4..9da4e120cc4 100644
--- a/src/plugins/cmakeprojectmanager/cmakeprojectmanager.h
+++ b/src/plugins/cmakeprojectmanager/cmakeprojectmanager.h
@@ -30,10 +30,13 @@
 #ifndef CMAKEPROJECTMANAGER_H
 #define CMAKEPROJECTMANAGER_H
 
-#include <coreplugin/dialogs/ioptionspage.h>
 #include <projectexplorer/iprojectmanager.h>
+#include <coreplugin/dialogs/ioptionspage.h>
+#include <coreplugin/icontext.h>
+
 #include <utils/environment.h>
 #include <utils/pathchooser.h>
+
 #include <QtCore/QFuture>
 #include <QtCore/QStringList>
 #include <QtCore/QDir>
diff --git a/src/plugins/debugger/breakhandler.cpp b/src/plugins/debugger/breakhandler.cpp
index 90ef5b00399..b7095397a65 100644
--- a/src/plugins/debugger/breakhandler.cpp
+++ b/src/plugins/debugger/breakhandler.cpp
@@ -35,17 +35,12 @@
 #include "debuggerplugin.h"
 #include "debuggerstringutils.h"
 #include "threadshandler.h"
-#include "stackhandler.h"
-#include "stackframe.h"
 
-#include <texteditor/basetextmark.h>
 #include <utils/qtcassert.h>
 
 #include <QtCore/QDir>
-#include <QtCore/QByteArray>
 #include <QtCore/QFileInfo>
 
-
 namespace Debugger {
 namespace Internal {
 
diff --git a/src/plugins/debugger/breakwindow.h b/src/plugins/debugger/breakwindow.h
index 84fbd28fc12..04b01a486f7 100644
--- a/src/plugins/debugger/breakwindow.h
+++ b/src/plugins/debugger/breakwindow.h
@@ -30,13 +30,12 @@
 #ifndef DEBUGGER_BREAKWINDOW_H
 #define DEBUGGER_BREAKWINDOW_H
 
-#include "breakpoint.h"
-
 #include <QtGui/QTreeView>
 
 namespace Debugger {
 namespace Internal {
 
+class BreakpointData;
 class BreakWindow : public QTreeView
 {
     Q_OBJECT
diff --git a/src/plugins/debugger/cdb/cdbmodules.cpp b/src/plugins/debugger/cdb/cdbmodules.cpp
index ed5427375a8..c947468001c 100644
--- a/src/plugins/debugger/cdb/cdbmodules.cpp
+++ b/src/plugins/debugger/cdb/cdbmodules.cpp
@@ -34,6 +34,7 @@
 
 #include <QtCore/QFileInfo>
 #include <QtCore/QRegExp>
+#include <QtCore/QVector>
 
 namespace Debugger {
 namespace Internal {
diff --git a/src/plugins/debugger/consolewindow.cpp b/src/plugins/debugger/consolewindow.cpp
index 8a6075c082c..bb904ea58d7 100644
--- a/src/plugins/debugger/consolewindow.cpp
+++ b/src/plugins/debugger/consolewindow.cpp
@@ -28,32 +28,22 @@
 **************************************************************************/
 
 #include "consolewindow.h"
+#include "logwindow.h"
 
 #include "debuggeractions.h"
 #include "debuggerconstants.h"
 
 #include <QtCore/QDebug>
-#include <QtCore/QFile>
-#include <QtCore/QTime>
 
-#include <QtGui/QAction>
 #include <QtGui/QHBoxLayout>
 #include <QtGui/QVBoxLayout>
 #include <QtGui/QKeyEvent>
-#include <QtGui/QLabel>
-#include <QtGui/QLineEdit>
 #include <QtGui/QMenu>
-#include <QtGui/QSpacerItem>
-#include <QtGui/QSplitter>
 #include <QtGui/QSyntaxHighlighter>
-#include <QtGui/QTextBlock>
 #include <QtGui/QPlainTextEdit>
-#include <QtGui/QFileDialog>
-#include <QtGui/QMessageBox>
 
 #include <aggregation/aggregate.h>
 #include <coreplugin/findplaceholder.h>
-#include <coreplugin/minisplitter.h>
 #include <find/basetextfind.h>
 
 #include <utils/savedaction.h>
@@ -268,25 +258,9 @@ private:
 
 void Console::saveContents()
 {
-    while (true) {
-        const QString fileName = QFileDialog::getSaveFileName(this, tr("Log File"));
-        if (fileName.isEmpty())
-            break;
-        QFile file(fileName);
-        if (file.open(QIODevice::WriteOnly|QIODevice::Text|QIODevice::Truncate)) {
-            file.write(toPlainText().toUtf8());
-            file.close();
-            break;
-        } else {
-            QMessageBox::warning(this, tr("Write Failure"),
-                                 tr("Unable to write log contents to '%1': %2").
-                                 arg(fileName, file.errorString()));
-        }
-    }
+    LogWindow::writeLogContents(this, this);
 }
 
-
-
 /////////////////////////////////////////////////////////////////////
 //
 // ConsoleWindow
diff --git a/src/plugins/debugger/debuggeractions.cpp b/src/plugins/debugger/debuggeractions.cpp
index cad9981dccb..13b10956605 100644
--- a/src/plugins/debugger/debuggeractions.cpp
+++ b/src/plugins/debugger/debuggeractions.cpp
@@ -81,7 +81,7 @@ void DebuggerSettings::insertItem(int code, SavedAction *item)
     m_items[code] = item;
 }
 
-void DebuggerSettings::readSettings(QSettings *settings)
+void DebuggerSettings::readSettings(const QSettings *settings)
 {
     foreach (SavedAction *item, m_items)
         item->readSettings(settings);
diff --git a/src/plugins/debugger/debuggeractions.h b/src/plugins/debugger/debuggeractions.h
index 72845ec2db1..091059757ee 100644
--- a/src/plugins/debugger/debuggeractions.h
+++ b/src/plugins/debugger/debuggeractions.h
@@ -68,7 +68,7 @@ public:
     static DebuggerSettings *instance();
 
 public slots:
-    void readSettings(QSettings *settings);
+    void readSettings(const QSettings *settings);
     void writeSettings(QSettings *settings) const;
 
 private:
diff --git a/src/plugins/debugger/debuggeragents.cpp b/src/plugins/debugger/debuggeragents.cpp
index 6271963ac23..2c46a54b78c 100644
--- a/src/plugins/debugger/debuggeragents.cpp
+++ b/src/plugins/debugger/debuggeragents.cpp
@@ -44,7 +44,6 @@
 #include <texteditor/basetexteditor.h>
 #include <texteditor/plaintexteditor.h>
 #include <texteditor/basetextmark.h>
-#include <texteditor/itexteditor.h>
 #include <texteditor/texteditorconstants.h>
 #include <texteditor/basetextdocument.h>
 
diff --git a/src/plugins/debugger/debuggerengine.cpp b/src/plugins/debugger/debuggerengine.cpp
index e8b83f5c25d..9eb161aaa78 100644
--- a/src/plugins/debugger/debuggerengine.cpp
+++ b/src/plugins/debugger/debuggerengine.cpp
@@ -49,11 +49,11 @@
 #include "breakwindow.h"
 
 #include <coreplugin/icore.h>
+#include <coreplugin/ifile.h>
 #include <coreplugin/editormanager/editormanager.h>
 #include <coreplugin/progressmanager/progressmanager.h>
 #include <coreplugin/progressmanager/futureprogress.h>
 
-#include <projectexplorer/debugginghelper.h>
 #include <projectexplorer/toolchaintype.h>
 
 #include <qt4projectmanager/qt4projectmanagerconstants.h>
@@ -65,8 +65,6 @@
 #include <utils/qtcassert.h>
 
 #include <QtCore/QDebug>
-#include <QtCore/QDir>
-#include <QtCore/QFileInfo>
 #include <QtCore/QTimer>
 #include <QtCore/QFutureInterface>
 
@@ -79,7 +77,6 @@
 #include <QtGui/QPushButton>
 #include <QtGui/QTextBlock>
 #include <QtGui/QTextCursor>
-#include <QtGui/QTextDocument>
 #include <QtGui/QTreeWidget>
 #include <QtGui/QMainWindow>
 
diff --git a/src/plugins/debugger/debuggerengine.h b/src/plugins/debugger/debuggerengine.h
index a3fe5e311bd..2e84d591bcc 100644
--- a/src/plugins/debugger/debuggerengine.h
+++ b/src/plugins/debugger/debuggerengine.h
@@ -37,7 +37,6 @@
 #include <coreplugin/ssh/sshconnection.h> 
 
 #include <QtCore/QObject>
-#include <QtCore/QSharedPointer>
 #include <QtCore/QStringList>
 
 QT_BEGIN_NAMESPACE
diff --git a/src/plugins/debugger/debuggermainwindow.h b/src/plugins/debugger/debuggermainwindow.h
index f3132e3da1c..e1e6f09eefd 100644
--- a/src/plugins/debugger/debuggermainwindow.h
+++ b/src/plugins/debugger/debuggermainwindow.h
@@ -31,7 +31,6 @@
 #define DEBUGGERMAINWINDOW_H
 
 #include <utils/fancymainwindow.h>
-#include "debuggerconstants.h"
 
 QT_FORWARD_DECLARE_CLASS(QMenu);
 
diff --git a/src/plugins/debugger/debuggerplugin.cpp b/src/plugins/debugger/debuggerplugin.cpp
index 9ffd6b00d80..2f873dc3934 100644
--- a/src/plugins/debugger/debuggerplugin.cpp
+++ b/src/plugins/debugger/debuggerplugin.cpp
@@ -35,7 +35,6 @@
 #include "debuggerdialogs.h"
 #include "debuggerengine.h"
 #include "debuggermainwindow.h"
-#include "debuggerplugin.h"
 #include "debuggerrunner.h"
 #include "debuggerstringutils.h"
 #include "debuggertooltip.h"
@@ -52,16 +51,9 @@
 #include "threadswindow.h"
 #include "watchwindow.h"
 
-#include "breakhandler.h"
 #include "sessionengine.h"
 #include "snapshothandler.h"
 #include "threadshandler.h"
-#include "watchutils.h"
-
-#ifdef Q_OS_WIN
-#  include "shared/peutils.h"
-#endif
-
 
 #include "ui_commonoptionspage.h"
 #include "ui_dumperoptionpage.h"
@@ -79,15 +71,8 @@
 #include <coreplugin/imode.h>
 #include <coreplugin/icorelistener.h>
 #include <coreplugin/manhattanstyle.h>
-#include <coreplugin/messagemanager.h>
 #include <coreplugin/minisplitter.h>
 #include <coreplugin/modemanager.h>
-#include <coreplugin/navigationwidget.h>
-#include <coreplugin/outputpane.h>
-#include <coreplugin/rightpane.h>
-
-#include <cplusplus/ExpressionUnderCursor.h>
-#include <cplusplus/CppDocument.h>
 
 #include <cppeditor/cppeditorconstants.h>
 #include <cpptools/cppmodelmanagerinterface.h>
@@ -104,52 +89,21 @@
 #include <texteditor/basetexteditor.h>
 #include <texteditor/basetextmark.h>
 #include <texteditor/fontsettings.h>
-#include <texteditor/itexteditor.h>
-#include <texteditor/texteditorconstants.h>
 #include <texteditor/texteditorsettings.h>
 
-//#include <qt4projectmanager/qt4projectmanagerconstants.h>
-
 #include <utils/qtcassert.h>
 #include <utils/savedaction.h>
 #include <utils/styledbar.h>
 
 #include <qml/scriptconsole.h>
 
-#include <QtCore/QCoreApplication>
-#include <QtCore/QDebug>
-#include <QtCore/QDir>
-#include <QtCore/QFileInfo>
-#include <QtCore/QObject>
-#include <QtCore/QPoint>
-#include <QtCore/QSettings>
-#include <QtCore/QTextStream>
-#include <QtCore/QTime>
 #include <QtCore/QTimer>
-#include <QtCore/QVariant>
 #include <QtCore/QtPlugin>
-#include <QtCore/QScopedPointer>
-
-#include <QtGui/QAbstractItemView>
-#include <QtGui/QAction>
-#include <QtGui/QApplication>
 #include <QtGui/QComboBox>
 #include <QtGui/QDockWidget>
-#include <QtGui/QErrorMessage>
 #include <QtGui/QFileDialog>
-#include <QtGui/QHeaderView>
-#include <QtGui/QLabel>
-#include <QtGui/QLineEdit>
-#include <QtGui/QMenu>
 #include <QtGui/QMessageBox>
-#include <QtGui/QPlainTextEdit>
-#include <QtGui/QPushButton>
-#include <QtGui/QStatusBar>
-#include <QtGui/QTextBlock>
-#include <QtGui/QTextCursor>
 #include <QtGui/QToolButton>
-#include <QtGui/QToolTip>
-#include <QtGui/QTreeWidget>
 
 #include <climits>
 
diff --git a/src/plugins/debugger/debuggerrunner.cpp b/src/plugins/debugger/debuggerrunner.cpp
index 8a323639f4f..949e7eab62e 100644
--- a/src/plugins/debugger/debuggerrunner.cpp
+++ b/src/plugins/debugger/debuggerrunner.cpp
@@ -30,7 +30,6 @@
 #include "debuggerrunner.h"
 
 #include "debuggeractions.h"
-#include "debuggerconstants.h"
 #include "debuggerengine.h"
 #include "debuggerplugin.h"
 #include "debuggerstringutils.h"
@@ -48,27 +47,17 @@
 #include <projectexplorer/debugginghelper.h>
 #include <projectexplorer/project.h>
 #include <projectexplorer/toolchain.h>
-#include <projectexplorer/projectexplorer.h>
 #include <projectexplorer/projectexplorerconstants.h>
 #include <projectexplorer/target.h>
 #include <projectexplorer/buildconfiguration.h>
 #include <projectexplorer/applicationrunconfiguration.h> // For LocalApplication*
 
-#include <utils/environment.h>
 #include <utils/synchronousprocess.h>
 #include <utils/qtcassert.h>
 #include <utils/fancymainwindow.h>
 #include <coreplugin/icore.h>
 
-#include <QtCore/QDebug>
 #include <QtCore/QDir>
-#include <QtCore/QFileInfo>
-#include <QtCore/QTimer>
-#include <QtCore/QStringList>
-
-#include <QtGui/QAbstractItemView>
-#include <QtGui/QTextDocument>
-#include <QtGui/QTreeWidget>
 #include <QtGui/QMessageBox>
 
 using namespace ProjectExplorer;
diff --git a/src/plugins/debugger/debuggerrunner.h b/src/plugins/debugger/debuggerrunner.h
index 2ecbcce4ad7..2288161eff7 100644
--- a/src/plugins/debugger/debuggerrunner.h
+++ b/src/plugins/debugger/debuggerrunner.h
@@ -53,8 +53,6 @@ class GdbEngine;
 class AbstractGdbAdapter;
 }
 
-//DEBUGGER_EXPORT QDebug operator<<(QDebug str, const DebuggerStartParameters &);
-
 class DEBUGGER_EXPORT DebuggerRunControlFactory
     : public ProjectExplorer::IRunControlFactory
 {
diff --git a/src/plugins/debugger/debuggertooltip.cpp b/src/plugins/debugger/debuggertooltip.cpp
index 025745c4cd1..d296956a87b 100644
--- a/src/plugins/debugger/debuggertooltip.cpp
+++ b/src/plugins/debugger/debuggertooltip.cpp
@@ -29,20 +29,17 @@
 
 #include "debuggertooltip.h"
 
-#include <QtCore/QPointer>
 #include <QtCore/QtDebug>
+#include <QtCore/QPointer>
 
 #include <QtGui/QApplication>
 #include <QtGui/QDesktopWidget>
 #include <QtGui/QHBoxLayout>
 #include <QtGui/QHeaderView>
 #include <QtGui/QKeyEvent>
-#include <QtGui/QLabel>
 #include <QtGui/QScrollBar>
 #include <QtGui/QTreeView>
 #include <QtGui/QVBoxLayout>
-#include <QtGui/QWidget>
-
 
 namespace Debugger {
 namespace Internal {
diff --git a/src/plugins/debugger/debuggeruiswitcher.cpp b/src/plugins/debugger/debuggeruiswitcher.cpp
index 9c89368dbcb..870dc6e1813 100644
--- a/src/plugins/debugger/debuggeruiswitcher.cpp
+++ b/src/plugins/debugger/debuggeruiswitcher.cpp
@@ -29,13 +29,8 @@
 
 #include "debuggeruiswitcher.h"
 #include "debuggermainwindow.h"
-#include "debuggeractions.h"
-#include "debuggerconstants.h"
-#include "debuggerrunner.h"
 #include "debuggerplugin.h"
-#include "savedaction.h"
 
-#include <utils/savedaction.h>
 #include <utils/styledbar.h>
 #include <utils/qtcassert.h>
 
@@ -48,7 +43,6 @@
 #include <coreplugin/findplaceholder.h>
 #include <coreplugin/icore.h>
 #include <coreplugin/minisplitter.h>
-#include <coreplugin/modemanager.h>
 #include <coreplugin/navigationwidget.h>
 #include <coreplugin/outputpane.h>
 #include <coreplugin/rightpane.h>
@@ -60,7 +54,6 @@
 #include <projectexplorer/target.h>
 #include <projectexplorer/runconfiguration.h>
 
-#include <QtGui/QActionGroup>
 #include <QtGui/QStackedWidget>
 #include <QtGui/QVBoxLayout>
 #include <QtGui/QMenu>
diff --git a/src/plugins/debugger/debuggeruiswitcher.h b/src/plugins/debugger/debuggeruiswitcher.h
index 71b5728af3a..81ee41caa8b 100644
--- a/src/plugins/debugger/debuggeruiswitcher.h
+++ b/src/plugins/debugger/debuggeruiswitcher.h
@@ -40,16 +40,14 @@ class QDockWidget;
 QT_END_NAMESPACE
 
 namespace Core {
-    class ActionContainer;
     class Command;
     class Context;
-    class BaseMode;
     class IMode;
+    class BaseMode;
 }
 
 namespace Utils {
 class FancyMainWindow;
-    class SavedAction;
 }
 
 namespace ProjectExplorer {
diff --git a/src/plugins/debugger/gdb/abstractgdbadapter.cpp b/src/plugins/debugger/gdb/abstractgdbadapter.cpp
index e663126ae36..b0f80d39f85 100644
--- a/src/plugins/debugger/gdb/abstractgdbadapter.cpp
+++ b/src/plugins/debugger/gdb/abstractgdbadapter.cpp
@@ -28,7 +28,7 @@
 **************************************************************************/
 
 #include "abstractgdbadapter.h"
-
+#include "gdbengine.h"
 #include "abstractgdbprocess.h"
 
 #include <utils/qtcassert.h>
@@ -104,5 +104,25 @@ QString AbstractGdbAdapter::msgConnectRemoteServerFailed(const QString &why)
     return tr("Connecting to remote server failed:\n%1").arg(why);
 }
 
+DebuggerState AbstractGdbAdapter::state() const
+{
+    return m_engine->state();
+}
+
+const DebuggerStartParameters &AbstractGdbAdapter::startParameters() const
+{
+    return m_engine->startParameters();
+}
+
+DebuggerStartParameters &AbstractGdbAdapter::startParameters()
+{
+    return m_engine->startParameters();
+}
+
+void AbstractGdbAdapter::showMessage(const QString &msg, int channel, int timeout)
+{
+    m_engine->showMessage(msg, channel, timeout);
+}
+
 } // namespace Internal
 } // namespace Debugger
diff --git a/src/plugins/debugger/gdb/abstractgdbadapter.h b/src/plugins/debugger/gdb/abstractgdbadapter.h
index 4d7dcdc0783..d70e519b5bb 100644
--- a/src/plugins/debugger/gdb/abstractgdbadapter.h
+++ b/src/plugins/debugger/gdb/abstractgdbadapter.h
@@ -30,14 +30,18 @@
 #ifndef DEBUGGER_ABSTRACT_GDB_ADAPTER
 #define DEBUGGER_ABSTRACT_GDB_ADAPTER
 
-#include <QtCore/QObject>
+#include "debuggerconstants.h"
 
-#include "gdbengine.h"
+#include <QtCore/QObject>
 
 namespace Debugger {
+class DebuggerStartParameters;
+
 namespace Internal {
 
 class AbstractGdbProcess;
+class GdbEngine;
+class GdbResponse;
 
 // AbstractGdbAdapter is inherited by PlainGdbAdapter used for local
 // debugging and TrkGdbAdapter used for on-device debugging.
@@ -85,14 +89,10 @@ public:
     virtual void trkReloadThreads() {}
 
 protected:
-    DebuggerState state() const
-        { return m_engine->state(); }
-    const DebuggerStartParameters &startParameters() const
-        { return m_engine->startParameters(); }
-    DebuggerStartParameters &startParameters()
-        { return m_engine->startParameters(); }
-    void showMessage(const QString &msg, int channel = LogDebug, int timeout = 1)
-        { m_engine->showMessage(msg, channel, timeout); }
+    DebuggerState state() const;
+    const DebuggerStartParameters &startParameters() const;
+    DebuggerStartParameters &startParameters();
+    void showMessage(const QString &msg, int channel = LogDebug, int timeout = 1);
 
     GdbEngine * const m_engine;
 };
diff --git a/src/plugins/debugger/gdb/abstractplaingdbadapter.cpp b/src/plugins/debugger/gdb/abstractplaingdbadapter.cpp
index 483b12da85c..241776dc480 100644
--- a/src/plugins/debugger/gdb/abstractplaingdbadapter.cpp
+++ b/src/plugins/debugger/gdb/abstractplaingdbadapter.cpp
@@ -28,7 +28,8 @@
 **************************************************************************/
 
 #include "abstractplaingdbadapter.h"
-
+#include "gdbmi.h"
+#include "gdbengine.h"
 #include "debuggeractions.h"
 #include "debuggerstringutils.h"
 
diff --git a/src/plugins/debugger/gdb/attachgdbadapter.cpp b/src/plugins/debugger/gdb/attachgdbadapter.cpp
index 1de5c646e66..7c6f6d2a599 100644
--- a/src/plugins/debugger/gdb/attachgdbadapter.cpp
+++ b/src/plugins/debugger/gdb/attachgdbadapter.cpp
@@ -28,6 +28,7 @@
 **************************************************************************/
 
 #include "attachgdbadapter.h"
+#include "gdbmi.h"
 
 #include "gdbengine.h"
 #include "procinterrupt.h"
diff --git a/src/plugins/debugger/gdb/attachgdbadapter.h b/src/plugins/debugger/gdb/attachgdbadapter.h
index 0803b87068f..92f00b3c081 100644
--- a/src/plugins/debugger/gdb/attachgdbadapter.h
+++ b/src/plugins/debugger/gdb/attachgdbadapter.h
@@ -31,8 +31,7 @@
 #define DEBUGGER_ATTACHGDBADAPTER_H
 
 #include "abstractgdbadapter.h"
-
-#include "abstractgdbprocess.h"
+#include "localgdbprocess.h"
 
 namespace Debugger {
 namespace Internal {
diff --git a/src/plugins/debugger/gdb/classicgdbengine.cpp b/src/plugins/debugger/gdb/classicgdbengine.cpp
index 090c4cbd953..42905e20755 100644
--- a/src/plugins/debugger/gdb/classicgdbengine.cpp
+++ b/src/plugins/debugger/gdb/classicgdbengine.cpp
@@ -28,6 +28,7 @@
 **************************************************************************/
 
 #include "gdbengine.h"
+#include "gdbmi.h"
 
 #include "abstractgdbadapter.h"
 #include "debuggeractions.h"
diff --git a/src/plugins/debugger/gdb/coregdbadapter.cpp b/src/plugins/debugger/gdb/coregdbadapter.cpp
index 3c49795da1f..552d84cae24 100644
--- a/src/plugins/debugger/gdb/coregdbadapter.cpp
+++ b/src/plugins/debugger/gdb/coregdbadapter.cpp
@@ -28,7 +28,7 @@
 **************************************************************************/
 
 #include "coregdbadapter.h"
-
+#include "gdbmi.h"
 #include "debuggeractions.h"
 #include "gdbengine.h"
 #include "debuggerstringutils.h"
diff --git a/src/plugins/debugger/gdb/coregdbadapter.h b/src/plugins/debugger/gdb/coregdbadapter.h
index fba322159f6..fb201dcae8b 100644
--- a/src/plugins/debugger/gdb/coregdbadapter.h
+++ b/src/plugins/debugger/gdb/coregdbadapter.h
@@ -31,9 +31,7 @@
 #define DEBUGGER_COREGDBADAPTER_H
 
 #include "abstractgdbadapter.h"
-
-#include "abstractgdbprocess.h"
-
+#include "localgdbprocess.h"
 
 namespace Debugger {
 namespace Internal {
diff --git a/src/plugins/debugger/gdb/gdbengine.h b/src/plugins/debugger/gdb/gdbengine.h
index bc9a357af7f..529d9abff0f 100644
--- a/src/plugins/debugger/gdb/gdbengine.h
+++ b/src/plugins/debugger/gdb/gdbengine.h
@@ -32,12 +32,11 @@
 
 #include "debuggerengine.h"
 
-#include "gdbmi.h"
-#include "localgdbprocess.h"
 #include "stackframe.h"
 #include "watchutils.h"
 
 #include <QtCore/QByteArray>
+#include <QtCore/QProcess>
 #include <QtCore/QHash>
 #include <QtCore/QMap>
 #include <QtCore/QMultiMap>
@@ -47,11 +46,9 @@
 #include <QtCore/QTextCodec>
 #include <QtCore/QTime>
 #include <QtCore/QVariant>
-#include <QtCore/QSharedPointer>
 
 QT_BEGIN_NAMESPACE
 class QMainWindow;
-class QMessageBox;
 class QTimer;
 QT_END_NAMESPACE
 
diff --git a/src/plugins/debugger/gdb/gdboptionspage.h b/src/plugins/debugger/gdb/gdboptionspage.h
index ec24089ded0..7cd7ad8b2ec 100644
--- a/src/plugins/debugger/gdb/gdboptionspage.h
+++ b/src/plugins/debugger/gdb/gdboptionspage.h
@@ -35,7 +35,6 @@
 #include <coreplugin/dialogs/ioptionspage.h>
 #include <utils/savedaction.h>
 
-
 namespace Debugger {
 namespace Internal {
 
diff --git a/src/plugins/debugger/gdb/localplaingdbadapter.h b/src/plugins/debugger/gdb/localplaingdbadapter.h
index 5eae3d9e082..ccd8f3600d8 100644
--- a/src/plugins/debugger/gdb/localplaingdbadapter.h
+++ b/src/plugins/debugger/gdb/localplaingdbadapter.h
@@ -31,9 +31,7 @@
 #define DEBUGGER_PLAINGDBADAPTER_H
 
 #include "abstractplaingdbadapter.h"
-
-#include "abstractgdbprocess.h"
-
+#include "localgdbprocess.h"
 #include <outputcollector.h>
 
 namespace Debugger {
diff --git a/src/plugins/debugger/gdb/pythongdbengine.cpp b/src/plugins/debugger/gdb/pythongdbengine.cpp
index b55c5e5d25a..7a3ece86172 100644
--- a/src/plugins/debugger/gdb/pythongdbengine.cpp
+++ b/src/plugins/debugger/gdb/pythongdbengine.cpp
@@ -28,7 +28,7 @@
 **************************************************************************/
 
 #include "gdbengine.h"
-
+#include "gdbmi.h"
 #include "abstractgdbadapter.h"
 #include "debuggeractions.h"
 #include "debuggerstringutils.h"
diff --git a/src/plugins/debugger/gdb/remotegdbserveradapter.cpp b/src/plugins/debugger/gdb/remotegdbserveradapter.cpp
index 28ac5a9314c..dfa9e356e50 100644
--- a/src/plugins/debugger/gdb/remotegdbserveradapter.cpp
+++ b/src/plugins/debugger/gdb/remotegdbserveradapter.cpp
@@ -28,7 +28,7 @@
 **************************************************************************/
 
 #include "remotegdbserveradapter.h"
-
+#include "gdbmi.h"
 #include "debuggerstringutils.h"
 #include "gdbengine.h"
 
diff --git a/src/plugins/debugger/gdb/remotegdbserveradapter.h b/src/plugins/debugger/gdb/remotegdbserveradapter.h
index 39d8db3702f..749d86e5769 100644
--- a/src/plugins/debugger/gdb/remotegdbserveradapter.h
+++ b/src/plugins/debugger/gdb/remotegdbserveradapter.h
@@ -31,8 +31,7 @@
 #define DEBUGGER_REMOTEGDBADAPTER_H
 
 #include "abstractgdbadapter.h"
-
-#include "abstractgdbprocess.h"
+#include "localgdbprocess.h"
 
 namespace Debugger {
 namespace Internal {
diff --git a/src/plugins/debugger/gdb/remoteplaingdbadapter.cpp b/src/plugins/debugger/gdb/remoteplaingdbadapter.cpp
index 159f007c10a..8ad74bdac82 100644
--- a/src/plugins/debugger/gdb/remoteplaingdbadapter.cpp
+++ b/src/plugins/debugger/gdb/remoteplaingdbadapter.cpp
@@ -28,12 +28,12 @@
 **************************************************************************/
 
 #include "remoteplaingdbadapter.h"
+#include "gdbengine.h"
 
 #include <debugger/debuggeractions.h>
 #include <debugger/debuggerstringutils.h>
 #include <utils/qtcassert.h>
 
-
 namespace Debugger {
 namespace Internal {
 
diff --git a/src/plugins/debugger/gdb/tcftrkgdbadapter.cpp b/src/plugins/debugger/gdb/tcftrkgdbadapter.cpp
index 65e328725e0..a6e6899fa4e 100644
--- a/src/plugins/debugger/gdb/tcftrkgdbadapter.cpp
+++ b/src/plugins/debugger/gdb/tcftrkgdbadapter.cpp
@@ -28,9 +28,9 @@
 **************************************************************************/
 
 #include "tcftrkgdbadapter.h"
-
 #include "tcftrkdevice.h"
 #include "trkutils.h"
+#include "gdbmi.h"
 
 #include "registerhandler.h"
 #include "threadshandler.h"
diff --git a/src/plugins/debugger/gdb/tcftrkgdbadapter.h b/src/plugins/debugger/gdb/tcftrkgdbadapter.h
index 71becf8e248..8cbb44eb2b1 100644
--- a/src/plugins/debugger/gdb/tcftrkgdbadapter.h
+++ b/src/plugins/debugger/gdb/tcftrkgdbadapter.h
@@ -31,7 +31,7 @@
 #define DEBUGGER_TCFTRKGDBADAPTER_H
 
 #include "abstractgdbadapter.h"
-
+#include "localgdbprocess.h"
 #include "callback.h"
 #include "trkutils.h"
 #include "symbian.h"
diff --git a/src/plugins/debugger/gdb/termgdbadapter.cpp b/src/plugins/debugger/gdb/termgdbadapter.cpp
index 1f5b0b97af0..f38fae20aa2 100644
--- a/src/plugins/debugger/gdb/termgdbadapter.cpp
+++ b/src/plugins/debugger/gdb/termgdbadapter.cpp
@@ -28,7 +28,7 @@
 **************************************************************************/
 
 #include "termgdbadapter.h"
-
+#include "gdbmi.h"
 #include "gdbengine.h"
 #include "procinterrupt.h"
 #include "debuggerstringutils.h"
diff --git a/src/plugins/debugger/gdb/termgdbadapter.h b/src/plugins/debugger/gdb/termgdbadapter.h
index 9c5a0c5eaa4..18a84b28ce0 100644
--- a/src/plugins/debugger/gdb/termgdbadapter.h
+++ b/src/plugins/debugger/gdb/termgdbadapter.h
@@ -31,10 +31,9 @@
 #define DEBUGGER_TERMGDBADAPTER_H
 
 #include "abstractgdbadapter.h"
+#include "localgdbprocess.h"
 
-#include "abstractgdbprocess.h"
-
-#include <consoleprocess.h>
+#include <utils/consoleprocess.h>
 
 namespace Debugger {
 namespace Internal {
diff --git a/src/plugins/debugger/gdb/trkgdbadapter.cpp b/src/plugins/debugger/gdb/trkgdbadapter.cpp
index 05d1ba6bc40..95e5373f0e2 100644
--- a/src/plugins/debugger/gdb/trkgdbadapter.cpp
+++ b/src/plugins/debugger/gdb/trkgdbadapter.cpp
@@ -29,6 +29,7 @@
 
 #include "trkgdbadapter.h"
 
+#include "gdbmi.h"
 #include "launcher.h"
 #include "symbiandevicemanager.h"
 #include "s60debuggerbluetoothstarter.h"
diff --git a/src/plugins/debugger/gdb/trkgdbadapter.h b/src/plugins/debugger/gdb/trkgdbadapter.h
index 2ea7e1bcfab..93fadcccec9 100644
--- a/src/plugins/debugger/gdb/trkgdbadapter.h
+++ b/src/plugins/debugger/gdb/trkgdbadapter.h
@@ -31,7 +31,7 @@
 #define DEBUGGER_TRKGDBADAPTER_H
 
 #include "abstractgdbadapter.h"
-
+#include "localgdbprocess.h"
 #include "trkutils.h"
 #include "callback.h"
 #include "symbian.h"
diff --git a/src/plugins/debugger/logwindow.cpp b/src/plugins/debugger/logwindow.cpp
index ce5ad9fc74f..d11fad9eb71 100644
--- a/src/plugins/debugger/logwindow.cpp
+++ b/src/plugins/debugger/logwindow.cpp
@@ -36,17 +36,12 @@
 #include <QtCore/QFile>
 #include <QtCore/QTime>
 
-#include <QtGui/QAction>
 #include <QtGui/QHBoxLayout>
 #include <QtGui/QVBoxLayout>
 #include <QtGui/QKeyEvent>
-#include <QtGui/QLabel>
-#include <QtGui/QLineEdit>
 #include <QtGui/QMenu>
 #include <QtGui/QSpacerItem>
-#include <QtGui/QSplitter>
 #include <QtGui/QSyntaxHighlighter>
-#include <QtGui/QTextBlock>
 #include <QtGui/QPlainTextEdit>
 #include <QtGui/QFileDialog>
 #include <QtGui/QMessageBox>
@@ -225,24 +220,9 @@ private:
 
 void DebuggerPane::saveContents()
 {
-    while (true) {
-        const QString fileName = QFileDialog::getSaveFileName(this, tr("Log File"));
-        if (fileName.isEmpty())
-            break;
-        QFile file(fileName);
-        if (file.open(QIODevice::WriteOnly|QIODevice::Text|QIODevice::Truncate)) {
-            file.write(toPlainText().toUtf8());
-            file.close();
-            break;
-        } else {
-            QMessageBox::warning(this, tr("Write Failure"),
-                                 tr("Unable to write log contents to '%1': %2").
-                                 arg(fileName, file.errorString()));
-        }
-    }
+    LogWindow::writeLogContents(this, this);
 }
 
-
 /////////////////////////////////////////////////////////////////////
 //
 // InputPane
@@ -490,6 +470,27 @@ QString LogWindow::logTimeStamp()
     return lastTimeStamp;
 }
 
+bool LogWindow::writeLogContents(const QPlainTextEdit *editor, QWidget *parent)
+{
+    bool success = false;
+    while (!success) {
+        const QString fileName = QFileDialog::getSaveFileName(parent, tr("Log File"));
+        if (fileName.isEmpty())
+            break;
+        QFile file(fileName);
+        if (file.open(QIODevice::WriteOnly|QIODevice::Text|QIODevice::Truncate)) {
+            file.write(editor->toPlainText().toUtf8());
+            file.close();
+            success = true;
+        } else {
+            QMessageBox::warning(parent, tr("Write Failure"),
+                                 tr("Unable to write log contents to '%1': %2").
+                                 arg(fileName, file.errorString()));
+        }
+    }
+    return success;
+}
+
 } // namespace Internal
 } // namespace Debugger
 
diff --git a/src/plugins/debugger/logwindow.h b/src/plugins/debugger/logwindow.h
index f303f653356..d386a92f890 100644
--- a/src/plugins/debugger/logwindow.h
+++ b/src/plugins/debugger/logwindow.h
@@ -55,6 +55,8 @@ public:
 
     static QString logTimeStamp();
 
+    static bool writeLogContents(const QPlainTextEdit *editor, QWidget *parent = 0);
+
 public slots:
     void clearContents();
     void showOutput(int channel, const QString &output);
diff --git a/src/plugins/debugger/moduleshandler.cpp b/src/plugins/debugger/moduleshandler.cpp
index 26c8faf6df2..5069a2679ac 100644
--- a/src/plugins/debugger/moduleshandler.cpp
+++ b/src/plugins/debugger/moduleshandler.cpp
@@ -33,12 +33,6 @@
 #include <utils/qtcassert.h>
 
 #include <QtCore/QDebug>
-#include <QtCore/QDir>
-#include <QtCore/QTextStream>
-
-#include <QtGui/QAction>
-#include <QtGui/QMainWindow>
-#include <QtGui/QStandardItemModel>
 #include <QtGui/QSortFilterProxyModel>
 
 
diff --git a/src/plugins/debugger/moduleswindow.cpp b/src/plugins/debugger/moduleswindow.cpp
index 509af16db11..e73f5d02cbe 100644
--- a/src/plugins/debugger/moduleswindow.cpp
+++ b/src/plugins/debugger/moduleswindow.cpp
@@ -37,7 +37,6 @@
 
 #include <QtCore/QDebug>
 
-#include <QtGui/QAction>
 #include <QtGui/QHeaderView>
 #include <QtGui/QMenu>
 #include <QtGui/QResizeEvent>
diff --git a/src/plugins/debugger/registerwindow.cpp b/src/plugins/debugger/registerwindow.cpp
index 3431157d243..9f85f844fdf 100644
--- a/src/plugins/debugger/registerwindow.cpp
+++ b/src/plugins/debugger/registerwindow.cpp
@@ -38,18 +38,12 @@
 #include <utils/savedaction.h>
 
 #include <QtCore/QDebug>
-#include <QtCore/QDir>
-#include <QtCore/QFileInfo>
-#include <QtCore/QFileInfoList>
 
-#include <QtGui/QAction>
 #include <QtGui/QHeaderView>
 #include <QtGui/QItemDelegate>
-#include <QtGui/QLineEdit>
 #include <QtGui/QMenu>
 #include <QtGui/QPainter>
 #include <QtGui/QResizeEvent>
-#include <QtGui/QToolButton>
 
 namespace Debugger {
 namespace Internal {
diff --git a/src/plugins/debugger/sessionengine.cpp b/src/plugins/debugger/sessionengine.cpp
index 3aa66dc25cd..9ec4632cee3 100644
--- a/src/plugins/debugger/sessionengine.cpp
+++ b/src/plugins/debugger/sessionengine.cpp
@@ -30,7 +30,6 @@
 #include "sessionengine.h"
 #include "breakhandler.h"
 #include "watchhandler.h"
-#include "debuggerconstants.h"
 
 #include <utils/qtcassert.h>
 
diff --git a/src/plugins/debugger/snapshothandler.cpp b/src/plugins/debugger/snapshothandler.cpp
index 774023315dc..e4fa0767ff4 100644
--- a/src/plugins/debugger/snapshothandler.cpp
+++ b/src/plugins/debugger/snapshothandler.cpp
@@ -30,19 +30,16 @@
 #include "snapshothandler.h"
 
 #include "sessionengine.h"
-#include "debuggeractions.h"
 #include "debuggerconstants.h"
 #include "debuggerengine.h"
 #include "debuggerrunner.h"
 #include "debuggerplugin.h"
 
 #include <utils/qtcassert.h>
-#include <utils/savedaction.h>
 
-#include <QtCore/QAbstractTableModel>
 #include <QtCore/QDebug>
-#include <QtCore/QFileInfo>
-#include <QtCore/QDir>
+#include <QtCore/QFile>
+#include <QtGui/QIcon>
 
 namespace Debugger {
 namespace Internal {
diff --git a/src/plugins/debugger/snapshothandler.h b/src/plugins/debugger/snapshothandler.h
index 9967a9c0bf6..41f6d50bfbf 100644
--- a/src/plugins/debugger/snapshothandler.h
+++ b/src/plugins/debugger/snapshothandler.h
@@ -30,7 +30,7 @@
 #ifndef DEBUGGER_SNAPSHOTHANDLER_H
 #define DEBUGGER_SNAPSHOTHANDLER_H
 
-#include <QtCore/QAbstractItemModel>
+#include <QtCore/QAbstractTableModel>
 #include <QtCore/QPointer>
 
 namespace Debugger {
diff --git a/src/plugins/debugger/snapshotwindow.cpp b/src/plugins/debugger/snapshotwindow.cpp
index 46b1a7d92a0..ef0ab00bc04 100644
--- a/src/plugins/debugger/snapshotwindow.cpp
+++ b/src/plugins/debugger/snapshotwindow.cpp
@@ -37,11 +37,9 @@
 
 #include <QtCore/QDebug>
 
-#include <QtGui/QAction>
 #include <QtGui/QHeaderView>
-#include <QtGui/QKeyEvent>
 #include <QtGui/QMenu>
-#include <QtGui/QTreeView>
+#include <QtGui/QKeyEvent>
 
 static QModelIndexList normalizeIndexes(const QModelIndexList &list)
 {
diff --git a/src/plugins/debugger/snapshotwindow.h b/src/plugins/debugger/snapshotwindow.h
index 9cbf17c5725..9135c5bac55 100644
--- a/src/plugins/debugger/snapshotwindow.h
+++ b/src/plugins/debugger/snapshotwindow.h
@@ -33,7 +33,6 @@
 #include <QtGui/QTreeView>
 
 QT_BEGIN_NAMESPACE
-class QComboBox;
 class QModelIndex;
 QT_END_NAMESPACE
 
diff --git a/src/plugins/debugger/sourcefileshandler.h b/src/plugins/debugger/sourcefileshandler.h
index 6be37adebd9..c3831dd57fb 100644
--- a/src/plugins/debugger/sourcefileshandler.h
+++ b/src/plugins/debugger/sourcefileshandler.h
@@ -31,10 +31,8 @@
 #define DEBUGGER_SOURCEFILESHANDLER_H
 
 #include <QtCore/QAbstractItemModel>
-#include <QtCore/QMap>
 #include <QtCore/QStringList>
 
-
 namespace Debugger {
 class DebuggerEngine;
 
diff --git a/src/plugins/debugger/sourcefileswindow.cpp b/src/plugins/debugger/sourcefileswindow.cpp
index d68d12a0453..9b10bc6890d 100644
--- a/src/plugins/debugger/sourcefileswindow.cpp
+++ b/src/plugins/debugger/sourcefileswindow.cpp
@@ -38,12 +38,9 @@
 #include <QtCore/QDebug>
 #include <QtCore/QFileInfo>
 
-#include <QtGui/QAction>
 #include <QtGui/QHeaderView>
 #include <QtGui/QMenu>
 #include <QtGui/QResizeEvent>
-#include <QtGui/QTreeView>
-
 
 //////////////////////////////////////////////////////////////////
 //
diff --git a/src/plugins/debugger/sourcefileswindow.h b/src/plugins/debugger/sourcefileswindow.h
index a2b92dd97f6..1dfeaf1b87d 100644
--- a/src/plugins/debugger/sourcefileswindow.h
+++ b/src/plugins/debugger/sourcefileswindow.h
@@ -30,9 +30,8 @@
 #ifndef DEBUGGER_SOURCEFILEWINDOW_H
 #define DEBUGGER_SOURCEFILEWINDOW_H
 
-#include <QtCore/QMap>
-#include <QtGui/QTreeView>
 
+#include <QtGui/QTreeView>
 
 namespace Debugger {
 namespace Internal {
diff --git a/src/plugins/debugger/stackhandler.cpp b/src/plugins/debugger/stackhandler.cpp
index 6a9779b4de2..e36d75bae33 100644
--- a/src/plugins/debugger/stackhandler.cpp
+++ b/src/plugins/debugger/stackhandler.cpp
@@ -36,11 +36,9 @@
 #include <utils/qtcassert.h>
 #include <utils/savedaction.h>
 
-#include <QtCore/QAbstractTableModel>
 #include <QtCore/QDebug>
 #include <QtCore/QFileInfo>
 
-
 namespace Debugger {
 namespace Internal {
 
diff --git a/src/plugins/debugger/stackhandler.h b/src/plugins/debugger/stackhandler.h
index 3de7d2af743..b5dd8d95dad 100644
--- a/src/plugins/debugger/stackhandler.h
+++ b/src/plugins/debugger/stackhandler.h
@@ -33,9 +33,6 @@
 #include "stackframe.h"
 
 #include <QtCore/QAbstractItemModel>
-#include <QtCore/QObject>
-
-#include <QtGui/QIcon>
 
 namespace Debugger {
 class DebuggerEngine;
diff --git a/src/plugins/debugger/stackwindow.cpp b/src/plugins/debugger/stackwindow.cpp
index 70e8d664c5a..b5870c2bfee 100644
--- a/src/plugins/debugger/stackwindow.cpp
+++ b/src/plugins/debugger/stackwindow.cpp
@@ -38,16 +38,11 @@
 
 #include <QtCore/QDebug>
 
-#include <QtGui/QAction>
 #include <QtGui/QApplication>
 #include <QtGui/QClipboard>
-#include <QtGui/QComboBox>
 #include <QtGui/QHeaderView>
 #include <QtGui/QMenu>
 #include <QtGui/QResizeEvent>
-#include <QtGui/QTreeView>
-#include <QtGui/QVBoxLayout>
-
 
 namespace Debugger {
 namespace Internal {
diff --git a/src/plugins/debugger/threadswindow.cpp b/src/plugins/debugger/threadswindow.cpp
index 8567ae6d831..517bf824324 100644
--- a/src/plugins/debugger/threadswindow.cpp
+++ b/src/plugins/debugger/threadswindow.cpp
@@ -34,12 +34,10 @@
 
 #include <utils/savedaction.h>
 
-#include <QtGui/QAction>
 #include <QtGui/QContextMenuEvent>
 #include <QtGui/QHeaderView>
 #include <QtGui/QMenu>
 
-
 namespace Debugger {
 namespace Internal {
 
diff --git a/src/plugins/debugger/watchdata.cpp b/src/plugins/debugger/watchdata.cpp
index b368c04311d..ecd03e2a2d9 100644
--- a/src/plugins/debugger/watchdata.cpp
+++ b/src/plugins/debugger/watchdata.cpp
@@ -3,8 +3,6 @@
 #include <QtCore/QTextStream>
 #include <QtCore/QDebug>
 
-#include <QtCore/QCoreApplication>
-
 ////////////////////////////////////////////////////////////////////
 //
 // WatchData
diff --git a/src/plugins/debugger/watchdata.h b/src/plugins/debugger/watchdata.h
index e5e2af28bb0..051861953c0 100644
--- a/src/plugins/debugger/watchdata.h
+++ b/src/plugins/debugger/watchdata.h
@@ -32,7 +32,6 @@
 
 #include <QtCore/QMetaType>
 #include <QtCore/QtGlobal>
-#include <QtCore/QObject>
 #include <QtCore/QCoreApplication>
 
 namespace Debugger {
diff --git a/src/plugins/debugger/watchhandler.cpp b/src/plugins/debugger/watchhandler.cpp
index 8bdb23c5086..e6ff28c4c1f 100644
--- a/src/plugins/debugger/watchhandler.cpp
+++ b/src/plugins/debugger/watchhandler.cpp
@@ -49,13 +49,9 @@
 #include <QtCore/QFile>
 #include <QtCore/QProcess>
 #include <QtCore/QTextStream>
-#include <QtCore/QTimer>
 #include <QtCore/QtAlgorithms>
 
-#include <QtGui/QAction>
-#include <QtGui/QApplication>
 #include <QtGui/QLabel>
-#include <QtGui/QToolTip>
 #include <QtGui/QTextEdit>
 
 #include <ctype.h>
diff --git a/src/plugins/debugger/watchhandler.h b/src/plugins/debugger/watchhandler.h
index 71da7f284e1..c4dc70b4af2 100644
--- a/src/plugins/debugger/watchhandler.h
+++ b/src/plugins/debugger/watchhandler.h
@@ -33,7 +33,6 @@
 #include "watchdata.h"
 
 #include <QtCore/QPointer>
-#include <QtCore/QObject>
 #include <QtCore/QHash>
 #include <QtCore/QSet>
 #include <QtCore/QStringList>
diff --git a/src/plugins/debugger/watchwindow.h b/src/plugins/debugger/watchwindow.h
index e3ca3bcf604..4470a6baa3b 100644
--- a/src/plugins/debugger/watchwindow.h
+++ b/src/plugins/debugger/watchwindow.h
@@ -32,7 +32,6 @@
 
 #include <QtGui/QTreeView>
 
-
 namespace Debugger {
 namespace Internal {
 
diff --git a/src/plugins/genericprojectmanager/genericprojectmanager.h b/src/plugins/genericprojectmanager/genericprojectmanager.h
index bb0cf918de4..4e7e213462d 100644
--- a/src/plugins/genericprojectmanager/genericprojectmanager.h
+++ b/src/plugins/genericprojectmanager/genericprojectmanager.h
@@ -31,6 +31,7 @@
 #define GENERICPROJECTMANAGER_H
 
 #include <projectexplorer/iprojectmanager.h>
+#include <coreplugin/icontext.h>
 
 namespace GenericProjectManager {
 namespace Internal {
diff --git a/src/plugins/projectexplorer/abstractprocessstep.cpp b/src/plugins/projectexplorer/abstractprocessstep.cpp
index bff79b10d5f..8ca875ebbd3 100644
--- a/src/plugins/projectexplorer/abstractprocessstep.cpp
+++ b/src/plugins/projectexplorer/abstractprocessstep.cpp
@@ -36,10 +36,9 @@
 
 #include <utils/qtcassert.h>
 
-#include <QtCore/QProcess>
 #include <QtCore/QEventLoop>
 #include <QtCore/QTimer>
-#include <QtGui/QTextDocument>
+#include <QtCore/QDir>
 
 using namespace ProjectExplorer;
 
diff --git a/src/plugins/projectexplorer/allprojectsfilter.h b/src/plugins/projectexplorer/allprojectsfilter.h
index af1fcf6293a..5b05235a9a5 100644
--- a/src/plugins/projectexplorer/allprojectsfilter.h
+++ b/src/plugins/projectexplorer/allprojectsfilter.h
@@ -34,7 +34,6 @@
 
 #include <QtCore/QFutureInterface>
 #include <QtCore/QString>
-#include <QtGui/QWidget>
 
 namespace ProjectExplorer {
 
diff --git a/src/plugins/projectexplorer/allprojectsfind.cpp b/src/plugins/projectexplorer/allprojectsfind.cpp
index 637394313f6..fadf2c77b79 100644
--- a/src/plugins/projectexplorer/allprojectsfind.cpp
+++ b/src/plugins/projectexplorer/allprojectsfind.cpp
@@ -38,10 +38,9 @@
 #include <texteditor/itexteditor.h>
 #include <coreplugin/editormanager/editormanager.h>
 
-#include <QtCore/QDebug>
-#include <QtCore/QFileInfo>
 #include <QtCore/QSettings>
 #include <QtCore/QRegExp>
+
 #include <QtGui/QGridLayout>
 #include <QtGui/QLabel>
 
diff --git a/src/plugins/projectexplorer/allprojectsfind.h b/src/plugins/projectexplorer/allprojectsfind.h
index 96c2dff6eac..ca3d4ce24c5 100644
--- a/src/plugins/projectexplorer/allprojectsfind.h
+++ b/src/plugins/projectexplorer/allprojectsfind.h
@@ -30,13 +30,10 @@
 #ifndef ALLPROJECTSFIND_H
 #define ALLPROJECTSFIND_H
 
-#include <find/ifindfilter.h>
-#include <find/searchresultwindow.h>
 #include <texteditor/basefilefind.h>
 
 #include <QtCore/QPointer>
 
-
 namespace ProjectExplorer {
 
 class ProjectExplorerPlugin;
diff --git a/src/plugins/projectexplorer/buildstepspage.cpp b/src/plugins/projectexplorer/buildstepspage.cpp
index 304d7e1b450..d959e75a3e7 100644
--- a/src/plugins/projectexplorer/buildstepspage.cpp
+++ b/src/plugins/projectexplorer/buildstepspage.cpp
@@ -38,6 +38,7 @@
 #include <coreplugin/icore.h>
 #include <extensionsystem/pluginmanager.h>
 #include <utils/qtcassert.h>
+#include <utils/detailswidget.h>
 
 #include <QtCore/QSignalMapper>
 
diff --git a/src/plugins/projectexplorer/buildstepspage.h b/src/plugins/projectexplorer/buildstepspage.h
index ad8fd915779..3a05e0c65a7 100644
--- a/src/plugins/projectexplorer/buildstepspage.h
+++ b/src/plugins/projectexplorer/buildstepspage.h
@@ -34,8 +34,6 @@
 #include "deployconfiguration.h"
 #include "namedwidget.h"
 
-#include <utils/detailswidget.h>
-
 QT_BEGIN_NAMESPACE
 class QPushButton;
 class QToolButton;
@@ -44,6 +42,10 @@ class QVBoxLayout;
 class QSignalMapper;
 QT_END_NAMESPACE
 
+namespace Utils {
+class DetailsWidget;
+}
+
 namespace ProjectExplorer {
 
 class Target;
diff --git a/src/plugins/projectexplorer/currentprojectfilter.cpp b/src/plugins/projectexplorer/currentprojectfilter.cpp
index 1712fa93714..dabd35dbbc8 100644
--- a/src/plugins/projectexplorer/currentprojectfilter.cpp
+++ b/src/plugins/projectexplorer/currentprojectfilter.cpp
@@ -30,12 +30,8 @@
 #include "currentprojectfilter.h"
 #include "projectexplorer.h"
 #include "project.h"
-#include "session.h"
 
 #include <QtCore/QtDebug>
-#include <QtCore/QThread>
-#include <QtCore/QTimer>
-#include <QtCore/QVariant>
 
 using namespace Core;
 using namespace Locator;
diff --git a/src/plugins/projectexplorer/currentprojectfilter.h b/src/plugins/projectexplorer/currentprojectfilter.h
index 64ed2c22275..25bc56c4223 100644
--- a/src/plugins/projectexplorer/currentprojectfilter.h
+++ b/src/plugins/projectexplorer/currentprojectfilter.h
@@ -32,8 +32,6 @@
 
 #include <locator/basefilefilter.h>
 
-#include <QtCore/QString>
-#include <QtCore/QByteArray>
 #include <QtCore/QFutureInterface>
 
 namespace ProjectExplorer {
diff --git a/src/plugins/projectexplorer/currentprojectfind.cpp b/src/plugins/projectexplorer/currentprojectfind.cpp
index a3c64cb4ca3..105380da5c6 100644
--- a/src/plugins/projectexplorer/currentprojectfind.cpp
+++ b/src/plugins/projectexplorer/currentprojectfind.cpp
@@ -30,16 +30,11 @@
 #include "currentprojectfind.h"
 
 #include "projectexplorer.h"
-#include "project.h"
 
 #include <utils/qtcassert.h>
 
 #include <QtCore/QDebug>
-#include <QtCore/QFileInfo>
 #include <QtCore/QSettings>
-#include <QtCore/QRegExp>
-#include <QtGui/QGridLayout>
-#include <QtGui/QLabel>
 
 using namespace Find;
 using namespace ProjectExplorer;
diff --git a/src/plugins/projectexplorer/currentprojectfind.h b/src/plugins/projectexplorer/currentprojectfind.h
index dc0c5f7d5c3..8cedf7c548d 100644
--- a/src/plugins/projectexplorer/currentprojectfind.h
+++ b/src/plugins/projectexplorer/currentprojectfind.h
@@ -32,11 +32,6 @@
 
 #include "allprojectsfind.h"
 
-#include <find/ifindfilter.h>
-#include <find/searchresultwindow.h>
-
-#include <QtCore/QPointer>
-
 QT_BEGIN_NAMESPACE
 class QWidget;
 QT_END_NAMESPACE
diff --git a/src/plugins/projectexplorer/editorconfiguration.cpp b/src/plugins/projectexplorer/editorconfiguration.cpp
index 06a1cb0a614..7f58b269c25 100644
--- a/src/plugins/projectexplorer/editorconfiguration.cpp
+++ b/src/plugins/projectexplorer/editorconfiguration.cpp
@@ -28,7 +28,7 @@
 **************************************************************************/
 
 #include "editorconfiguration.h"
-#include <coreplugin/icore.h>
+
 #include <QtCore/QTextCodec>
 
 using namespace ProjectExplorer;
diff --git a/src/plugins/projectexplorer/iprojectmanager.h b/src/plugins/projectexplorer/iprojectmanager.h
index 7b217fb2070..3c6b9918882 100644
--- a/src/plugins/projectexplorer/iprojectmanager.h
+++ b/src/plugins/projectexplorer/iprojectmanager.h
@@ -32,9 +32,11 @@
 
 #include "projectexplorer_export.h"
 
-#include <coreplugin/icontext.h>
 #include <QtCore/QObject>
 
+namespace Core {
+class Context;
+}
 namespace ProjectExplorer {
 
 class Project;
diff --git a/src/plugins/projectexplorer/pluginfilefactory.h b/src/plugins/projectexplorer/pluginfilefactory.h
index d48a988b489..174906ef95e 100644
--- a/src/plugins/projectexplorer/pluginfilefactory.h
+++ b/src/plugins/projectexplorer/pluginfilefactory.h
@@ -32,7 +32,6 @@
 
 #include <coreplugin/ifilefactory.h>
 
-#include <QtCore/QObject>
 #include <QtCore/QStringList>
 
 namespace ProjectExplorer {
diff --git a/src/plugins/projectexplorer/projectexplorer.cpp b/src/plugins/projectexplorer/projectexplorer.cpp
index 5b521952198..69976900ebc 100644
--- a/src/plugins/projectexplorer/projectexplorer.cpp
+++ b/src/plugins/projectexplorer/projectexplorer.cpp
@@ -96,6 +96,7 @@
 #include <coreplugin/iversioncontrol.h>
 #include <welcome/welcomemode.h>
 #include <extensionsystem/pluginmanager.h>
+#include <find/searchresultwindow.h>
 #include <utils/consoleprocess.h>
 #include <utils/qtcassert.h>
 #include <utils/parameteraction.h>
diff --git a/src/plugins/projectexplorer/projectmodels.cpp b/src/plugins/projectexplorer/projectmodels.cpp
index f17337c0008..3b35d04422f 100644
--- a/src/plugins/projectexplorer/projectmodels.cpp
+++ b/src/plugins/projectexplorer/projectmodels.cpp
@@ -40,10 +40,8 @@
 #include <QtCore/QDebug>
 #include <QtCore/QFileInfo>
 
-#include <QtGui/QApplication>
+#include <QtGui/QFont>
 #include <QtGui/QIcon>
-#include <QtGui/QMessageBox>
-#include <QtGui/QStyle>
 
 using namespace ProjectExplorer;
 using namespace ProjectExplorer::Internal;
diff --git a/src/plugins/projectexplorer/projecttreewidget.cpp b/src/plugins/projectexplorer/projecttreewidget.cpp
index 6739a064bb5..fc846b477ae 100644
--- a/src/plugins/projectexplorer/projecttreewidget.cpp
+++ b/src/plugins/projectexplorer/projecttreewidget.cpp
@@ -46,6 +46,7 @@
 #include <QtCore/QSettings>
 
 #include <QtGui/QHeaderView>
+#include <QtGui/QTreeView>
 #include <QtGui/QVBoxLayout>
 #include <QtGui/QToolButton>
 #include <QtGui/QFocusEvent>
diff --git a/src/plugins/projectexplorer/projecttreewidget.h b/src/plugins/projectexplorer/projecttreewidget.h
index bf86f227a6d..9b3475a1a18 100644
--- a/src/plugins/projectexplorer/projecttreewidget.h
+++ b/src/plugins/projectexplorer/projecttreewidget.h
@@ -33,7 +33,9 @@
 #include <coreplugin/inavigationwidgetfactory.h>
 
 #include <QtGui/QWidget>
-#include <QtGui/QTreeView>
+#include <QtCore/QModelIndex>
+
+QT_FORWARD_DECLARE_CLASS(QTreeView)
 
 namespace ProjectExplorer {
 
diff --git a/src/plugins/projectexplorer/projectwelcomepagewidget.cpp b/src/plugins/projectexplorer/projectwelcomepagewidget.cpp
index 8530ec3609d..7f6a34d495c 100644
--- a/src/plugins/projectexplorer/projectwelcomepagewidget.cpp
+++ b/src/plugins/projectexplorer/projectwelcomepagewidget.cpp
@@ -44,7 +44,6 @@
 #include <QtCore/QDir>
 #include <QtCore/QPair>
 #include <QtGui/QLabel>
-#include <QtGui/QTreeWidgetItem>
 
 #include <QtCore/QDebug>
 
diff --git a/src/plugins/projectexplorer/projectwindow.cpp b/src/plugins/projectexplorer/projectwindow.cpp
index 7cffc0f2683..48fc47f16b1 100644
--- a/src/plugins/projectexplorer/projectwindow.cpp
+++ b/src/plugins/projectexplorer/projectwindow.cpp
@@ -32,36 +32,24 @@
 #include "doubletabwidget.h"
 
 #include "project.h"
-#include "environment.h"
 #include "projectexplorer.h"
 #include "projectexplorerconstants.h"
-#include "iprojectproperties.h"
 #include "session.h"
-#include "target.h"
 #include "projecttreewidget.h"
-#include "runconfiguration.h"
-#include "buildsettingspropertiespage.h"
-#include "runsettingspropertiespage.h"
+#include "iprojectproperties.h"
 #include "targetsettingspanel.h"
 
-#include <coreplugin/minisplitter.h>
-#include <coreplugin/fileiconprovider.h>
 #include <coreplugin/icore.h>
 #include <coreplugin/ifile.h>
 #include <extensionsystem/pluginmanager.h>
 #include <utils/qtcassert.h>
-#include <utils/styledbar.h>
 #include <utils/stylehelper.h>
 
 #include <QtGui/QApplication>
-#include <QtGui/QBoxLayout>
-#include <QtGui/QComboBox>
-#include <QtGui/QScrollArea>
+#include <QtGui/QGridLayout>
 #include <QtGui/QLabel>
 #include <QtGui/QPainter>
 #include <QtGui/QStackedWidget>
-#include <QtGui/QPaintEvent>
-#include <QtGui/QMenu>
 
 using namespace ProjectExplorer;
 using namespace ProjectExplorer::Internal;
diff --git a/src/plugins/projectexplorer/showineditortaskhandler.cpp b/src/plugins/projectexplorer/showineditortaskhandler.cpp
index fce46a94c50..685d59b7299 100644
--- a/src/plugins/projectexplorer/showineditortaskhandler.cpp
+++ b/src/plugins/projectexplorer/showineditortaskhandler.cpp
@@ -32,7 +32,6 @@
 #include "projectexplorerconstants.h"
 #include "task.h"
 
-#include <coreplugin/editormanager/editormanager.h>
 #include <texteditor/basetexteditor.h>
 
 #include <QtGui/QAction>
diff --git a/src/plugins/qmlprojectmanager/qmlprojectmanager.h b/src/plugins/qmlprojectmanager/qmlprojectmanager.h
index 612bb15ec34..e505f9b42da 100644
--- a/src/plugins/qmlprojectmanager/qmlprojectmanager.h
+++ b/src/plugins/qmlprojectmanager/qmlprojectmanager.h
@@ -31,6 +31,7 @@
 #define QMLPROJECTMANAGER_H
 
 #include <projectexplorer/iprojectmanager.h>
+#include <coreplugin/icontext.h>
 
 namespace QmlProjectManager {
 
diff --git a/src/plugins/qt4projectmanager/qtuicodemodelsupport.cpp b/src/plugins/qt4projectmanager/qtuicodemodelsupport.cpp
index d9640b28c13..0b45dfbcb10 100644
--- a/src/plugins/qt4projectmanager/qtuicodemodelsupport.cpp
+++ b/src/plugins/qt4projectmanager/qtuicodemodelsupport.cpp
@@ -33,13 +33,9 @@
 #include "qt4project.h"
 #include "qt4target.h"
 
-#include <QtCore/QProcess>
-
 using namespace Qt4ProjectManager;
 using namespace Internal;
 
-enum { debug = 0 };
-
 Qt4UiCodeModelSupport::Qt4UiCodeModelSupport(CppTools::CppModelManagerInterface *modelmanager,
                                              Qt4Project *project,
                                              const QString &source,
diff --git a/src/plugins/qt4projectmanager/qtuicodemodelsupport.h b/src/plugins/qt4projectmanager/qtuicodemodelsupport.h
index b938009739d..dacd4207168 100644
--- a/src/plugins/qt4projectmanager/qtuicodemodelsupport.h
+++ b/src/plugins/qt4projectmanager/qtuicodemodelsupport.h
@@ -30,11 +30,8 @@
 #ifndef QTUICODEMODELSUPPORT_H
 #define QTUICODEMODELSUPPORT_H
 
-#include <cpptools/cppmodelmanagerinterface.h>
 #include <cpptools/uicodecompletionsupport.h>
 
-#include <QtCore/QDateTime>
-
 namespace Qt4ProjectManager {
 class Qt4Project;
 namespace Internal {
@@ -46,7 +43,7 @@ public:
                           Qt4Project *project,
                           const QString &sourceFile,
                           const QString &uiHeaderFile);
-    ~Qt4UiCodeModelSupport();
+    virtual ~Qt4UiCodeModelSupport();
 protected:
     virtual QString uicCommand() const;
     virtual QStringList environment() const;
-- 
GitLab