diff --git a/.gitignore b/.gitignore
index 4fbf6838b3ce5843695b383e8bd76e4c81227597..d7e54f9836cecff6b24a549e324757f5be51437d 100644
--- a/.gitignore
+++ b/.gitignore
@@ -69,6 +69,7 @@ lib/*
 lib64/*
 release
 doc/html/*
+doc/html-dev/*
 doc/api/html/*
 doc/pluginhowto/html/*
 .rcc
@@ -86,7 +87,7 @@ bin/qml2puppet
 bin/qml2puppet.exe
 bin/qtpromaker
 bin/qtpromaker.exe
-share/doc/qtcreator/qtcreator.qch
+share/doc/qtcreator/*.qch
 src/tools/gen-cpp-ast/generate-ast
 src/tools/mkvisitor/cplusplus0
 src/tools/qml/qmldump/qmldump
diff --git a/dist/changes-2.3.0 b/dist/changes-2.3.0
new file mode 100644
index 0000000000000000000000000000000000000000..2757e3ce971dc094bb0dc797dd16f0ed75c8bf6f
--- /dev/null
+++ b/dist/changes-2.3.0
@@ -0,0 +1,81 @@
+Qt Creator version 2.3 contains bug fixes and new features.
+
+The most important changes are listed in this document. For a complete
+list of changes, see the Git log for the Qt Creator sources that
+you can check out from the public Git repository. For example:
+
+git clone git://gitorious.org/qt-creator/qt-creator.git
+git log --cherry-pick --pretty=oneline v2.2.1...origin/2.3
+
+General
+   * Welcome page redesign allows searching through examples with descriptions
+   * Restore previous size when unmaximizing output panes
+   * Added support for building with the Clang compiler
+
+Editing
+   * Fixed lock up when regular expression search matched empty line
+   * Completions are now computed in a separate thread (non-blocking editor)
+
+Managing Projects
+
+Debugging
+   * Color memory display highlighting the variables in stack layout
+   * Correct source location for breakpoints in CDB using code model
+     (QTCREATORBUG-2317)
+
+Debugging QML/JS
+
+C++ Support
+   * Made C++ coding style configurable (QTCREATORBUG-2670, QTCREATORBUG-4310,
+     QTCREATORBUG-2763, QTCREATORBUG-3623, QTCREATORBUG-567)
+   * Various indentation fixes (QTCREATORBUG-4993)
+
+QML/JS Support
+   * Updated QML type descriptions for the current state of Qt 5
+   * Made tab settings configurable separately and per-project
+   * Added 'Find usages' functionality for QML types
+   * Added type resolution for alias properties (QTCREATORBUG-2306)
+   * Added tooltips to imports
+   * Added documentation on using QML modules with plugins
+   * Added support for properties and methods with a revision, allowing
+     the QtQuick 1.0 and 1.1 imports to behave as intended
+   * Added 'Reset code model' action to the Tools->QML/JS menu (QTCREATORBUG-4813)
+   * Use qmlplugindump from Qt 4.8 or newer instead of building own qmldump
+   * Improved error message for missing prototypes (QTCREATORBUG-4952)
+   * Fixed completion of slots (QTCREATORBUG-3614, QTCREATORBUG-3459)
+   * Fixed completion inside grouped property bindings (QTCREATORBUG-3541)
+   * Fixed scanning and indentation of regular expression literals (QTCREATORBUG-4566)
+   * Fixed indentation of object literals
+
+Help
+
+Platform Specific
+
+Mac
+   * "Open Terminal Here" opens Terminal.app instead of xterm
+
+Linux (GNOME and KDE)
+
+Windows
+
+Symbian Target
+
+Remote Linux Support
+   * Created new plugin "RemoteLinux" comprising support for Maemo/MeeGo and
+     generic remote Linux hosts
+   * Generic remote Linux support entails:
+        * The ability to create a deploy configuration and associated steps the
+          same way as for Maemo
+        * A device configuration wizard for a "Generic Linux" device type
+        * The possibility to add device types and associated wizards and actions
+          for the device configuration dialog via third-party plugins
+
+Qt Designer
+
+Version control plugins
+   * Git: Manage remote repositories
+   * Git: Improved branch dialog
+   * Bazaar: lots of small improvements
+
+Additional credits go to:
+   Hugues Delorme for his work on the Bazaar plugin as well as version control base.
diff --git a/src/plugins/valgrind/valgrind_global.h b/dist/copyright_template.txt
similarity index 78%
rename from src/plugins/valgrind/valgrind_global.h
rename to dist/copyright_template.txt
index 27ce52a837f00d975b632df52d2720a74958fd86..7f313c225fbfb1cfb4f7e24f5759f4c9b31555b4 100644
--- a/src/plugins/valgrind/valgrind_global.h
+++ b/dist/copyright_template.txt
@@ -4,8 +4,6 @@
 **
 ** Copyright (c) 2011 Nokia Corporation and/or its subsidiary(-ies).
 **
-** Author: Nicolas Arnaud-Cormos, KDAB (nicolas.arnaud-cormos@kdab.com)
-**
 ** Contact: Nokia Corporation (info@qt.nokia.com)
 **
 **
@@ -32,15 +30,3 @@
 **
 **************************************************************************/
 
-#ifndef VALGRINDTOOLBASE_GLOBAL_H
-#define VALGRINDTOOLBASE_GLOBAL_H
-
-#include <QtCore/qglobal.h>
-
-#if defined(VALGRINDTOOLBASE_LIBRARY)
-#  define VALGRINDTOOLBASE_EXPORT Q_DECL_EXPORT
-#else
-#  define VALGRINDTOOLBASE_EXPORT Q_DECL_IMPORT
-#endif
-
-#endif // VALGRINDTOOLBASE_GLOBAL_H
diff --git a/doc/api/coding-style.qdoc b/doc/api/coding-style.qdoc
index 82e07312d07ceeda122dee0cfed734237525cff2..40a2bdec3afa5555f2249f8a72906add9effb14f 100644
--- a/doc/api/coding-style.qdoc
+++ b/doc/api/coding-style.qdoc
@@ -15,7 +15,7 @@
 ** file.
 **
 ** If you have questions regarding the use of this file, please contact
-** Nokia at qt-info@nokia.com.
+** Nokia at info@qt.nokia.com.
 **
 ****************************************************************************/
 
diff --git a/doc/api/external-tool-spec.qdoc b/doc/api/external-tool-spec.qdoc
index 8e6362a9a992c3c5d8114d03d60637106916794d..8706a6c916ab08c6b536815d58f95a55dad9502e 100644
--- a/doc/api/external-tool-spec.qdoc
+++ b/doc/api/external-tool-spec.qdoc
@@ -15,7 +15,7 @@
 ** file.
 **
 ** If you have questions regarding the use of this file, please contact
-** Nokia at qt-info@nokia.com.
+** Nokia at info@qt.nokia.com.
 **
 ****************************************************************************/
 
diff --git a/doc/api/qtcreator-dev-wizards.qdoc b/doc/api/qtcreator-dev-wizards.qdoc
index 30bbf22751705e29486b37904b06c216c0fb1c9d..fdf122cc7e3776e3fa7dffca8b0a3f5497aa1926 100644
--- a/doc/api/qtcreator-dev-wizards.qdoc
+++ b/doc/api/qtcreator-dev-wizards.qdoc
@@ -15,7 +15,7 @@
 ** file.
 **
 ** If you have questions regarding the use of this file, please contact
-** Nokia at qt-info@nokia.com.
+** Nokia at info@qt.nokia.com.
 **
 ****************************************************************************/
 
diff --git a/doc/api/qtcreator-dev.qdoc b/doc/api/qtcreator-dev.qdoc
index 864dfd9104484a1d8796a6d4f5cc479637428818..38379ab01b18df932a7209cc16715f48500bb927 100644
--- a/doc/api/qtcreator-dev.qdoc
+++ b/doc/api/qtcreator-dev.qdoc
@@ -15,7 +15,7 @@
 ** file.
 **
 ** If you have questions regarding the use of this file, please contact
-** Nokia at qt-info@nokia.com.
+** Nokia at info@qt.nokia.com.
 **
 ****************************************************************************/
 
diff --git a/doc/api/qtcreator-ui-text.qdoc b/doc/api/qtcreator-ui-text.qdoc
index 0d6d3497be2ee00bff02bf4f042c14db40d22f89..65074d03172493849e3fd9fa9410d40237ef6b8d 100644
--- a/doc/api/qtcreator-ui-text.qdoc
+++ b/doc/api/qtcreator-ui-text.qdoc
@@ -15,7 +15,7 @@
 ** file.
 **
 ** If you have questions regarding the use of this file, please contact
-** Nokia at qt-info@nokia.com.
+** Nokia at info@qt.nokia.com.
 **
 ****************************************************************************/
 
@@ -154,10 +154,6 @@
 
     \section1 UI Text Capitalization
 
-    The capitalization of the Qt Creator UI text follows the
-    \l{http://developer.kde.org/documentation/standards/kde/style/basics/labels.html#items}
-    {KDE Style Guide}.
-
     Two styles are used, book title and sentence style:
 
     \list
@@ -168,6 +164,11 @@
 
     \endlist
 
+    When using book style capitalization, capitalize all words, except
+    prepositions that are shorter than five letters (for example, 'with' but
+    'Without'), conjunctions (for example, and, or, but), and articles (a, an,
+    the).
+
     Use book style capitalization for:
 
     \list
@@ -182,6 +183,9 @@
 
     \endlist
 
+    When using sentence style capitalization, capitalize only the first letter,
+    except proper names.
+
     Use sentence style capitalization for:
 
     \list
diff --git a/doc/examples/doc_src_plugins.qdoc b/doc/examples/doc_src_plugins.qdoc
index 3559130940db5dd7e0faaa59bd49a6925701ecf2..ef4a938b95bac2c8794da48bbff45c1b483d4b7e 100644
--- a/doc/examples/doc_src_plugins.qdoc
+++ b/doc/examples/doc_src_plugins.qdoc
@@ -15,7 +15,7 @@
 ** file.
 **
 ** If you have questions regarding the use of this file, please contact
-** Nokia at qt-info@nokia.com.
+** Nokia at info@qt.nokia.com.
 **
 ****************************************************************************/
 
diff --git a/doc/images/qmldesigner-import-project.png b/doc/images/qmldesigner-import-project.png
index 680cb6dc0313558a4f4d384c9c9b83a8564c71ac..1b0ac3d1676d1922cf091261b2fe46686358a284 100644
Binary files a/doc/images/qmldesigner-import-project.png and b/doc/images/qmldesigner-import-project.png differ
diff --git a/doc/images/qmldesigner-new-app-project-mobile-options.png b/doc/images/qmldesigner-new-app-project-mobile-options.png
index 248d7bc555ae389664bb3b6f3a2e7e0780e9f555..5fde958ee648dbc342196fc195b6d7a4c82a19c4 100644
Binary files a/doc/images/qmldesigner-new-app-project-mobile-options.png and b/doc/images/qmldesigner-new-app-project-mobile-options.png differ
diff --git a/doc/images/qmldesigner-new-project-location.png b/doc/images/qmldesigner-new-project-location.png
index 4ad188d32ed3cad1f6f9ae3b99224b67164affde..b58aedeb881702af2a10667d4a1094c997880d76 100644
Binary files a/doc/images/qmldesigner-new-project-location.png and b/doc/images/qmldesigner-new-project-location.png differ
diff --git a/doc/images/qmldesigner-new-project-qml-sources.png b/doc/images/qmldesigner-new-project-qml-sources.png
index a4bb8939106c67fb214692d85ca9c1121e8079f9..635e4d864829e25811d1d5d0d406cdcc33713727 100644
Binary files a/doc/images/qmldesigner-new-project-qml-sources.png and b/doc/images/qmldesigner-new-project-qml-sources.png differ
diff --git a/doc/images/qmldesigner-new-project-qt-versions.png b/doc/images/qmldesigner-new-project-qt-versions.png
index 5c07bf50b4a572ce3f171b10e859b7bc07eee8c5..95f47324caaa23c20e2fdfcc382d0462f16ecad8 100644
Binary files a/doc/images/qmldesigner-new-project-qt-versions.png and b/doc/images/qmldesigner-new-project-qt-versions.png differ
diff --git a/doc/images/qmldesigner-new-project-summary.png b/doc/images/qmldesigner-new-project-summary.png
index 61848f55594e582c2898ea6bdbf86622eb8c21fc..b86a5999b52741bdadbd01e522bbc941587cd57b 100644
Binary files a/doc/images/qmldesigner-new-project-summary.png and b/doc/images/qmldesigner-new-project-summary.png differ
diff --git a/doc/images/qmldesigner-new-project-symbian-options.png b/doc/images/qmldesigner-new-project-symbian-options.png
index 65cb83dcfbf7ceac54251700e7e7203e1f17b870..4037aaeebc7139038c47c53f0e2360664f882209 100644
Binary files a/doc/images/qmldesigner-new-project-symbian-options.png and b/doc/images/qmldesigner-new-project-symbian-options.png differ
diff --git a/doc/images/qmldesigner-new-project.png b/doc/images/qmldesigner-new-project.png
index 2a5d4c77a0febd7fb68ad896939c50d43c1b34a6..685fb1d65aa76612147938b6143e8cdcb81db7ef 100644
Binary files a/doc/images/qmldesigner-new-project.png and b/doc/images/qmldesigner-new-project.png differ
diff --git a/doc/images/qtcreator-breakdown.png b/doc/images/qtcreator-breakdown.png
index f08024885a4113b00621456e7928bbd49c837429..0a118ae09c11ada3d3ae9bc58fcffeac0be91e54 100644
Binary files a/doc/images/qtcreator-breakdown.png and b/doc/images/qtcreator-breakdown.png differ
diff --git a/doc/images/qtcreator-gs-build-example-open.png b/doc/images/qtcreator-gs-build-example-open.png
index cdd61dc17c4d1d91c20769ab3a4ea7170b72163d..ef4844086cbc1687125f9facf5158be25bfe257c 100644
Binary files a/doc/images/qtcreator-gs-build-example-open.png and b/doc/images/qtcreator-gs-build-example-open.png differ
diff --git a/doc/images/qtcreator-new-qt-quick-project-wizard.png b/doc/images/qtcreator-new-qt-quick-project-wizard.png
index db3b6aa394db73b05750e6e563b2e888cd56b140..e9bcec963540814a2fb4199c86747c07d29dcf9d 100644
Binary files a/doc/images/qtcreator-new-qt-quick-project-wizard.png and b/doc/images/qtcreator-new-qt-quick-project-wizard.png differ
diff --git a/doc/images/qtcreator-symbian-run-settings.png b/doc/images/qtcreator-symbian-run-settings.png
index 50fc30fd348b8632fd94d55d4a6df7c21d17eb39..52d1d8e756accadb200f3d05d3aa978f520ff8a7 100644
Binary files a/doc/images/qtcreator-symbian-run-settings.png and b/doc/images/qtcreator-symbian-run-settings.png differ
diff --git a/doc/images/qtcreator-toolchains.png b/doc/images/qtcreator-toolchains.png
index e8d192979bbb3836039692719c10c48a4241856b..510ae0676711f64bbca59729ebcd71b316ac5db1 100644
Binary files a/doc/images/qtcreator-toolchains.png and b/doc/images/qtcreator-toolchains.png differ
diff --git a/doc/images/qtcreator-welcome-session.png b/doc/images/qtcreator-welcome-session.png
index b4d87839f689d1898160b39339934610c5e6ccb9..a95a976e46ed48ee90e15e586cdc5d836ad7106b 100644
Binary files a/doc/images/qtcreator-welcome-session.png and b/doc/images/qtcreator-welcome-session.png differ
diff --git a/doc/maemodev.qdoc b/doc/maemodev.qdoc
index e6c92d2e2e71f12e6d98a51c3cb996241fc3f725..c7ef5739fad3d1b0e997789f203505c085a50d0c 100644
--- a/doc/maemodev.qdoc
+++ b/doc/maemodev.qdoc
@@ -15,7 +15,7 @@
 ** file.
 **
 ** If you have questions regarding the use of this file, please contact
-** Nokia at qt-info@nokia.com.
+** Nokia at info@qt.nokia.com.
 **
 ****************************************************************************/
 
diff --git a/doc/qtcreator-faq.qdoc b/doc/qtcreator-faq.qdoc
index d212cde60b4dcd4e90bc4def383ae3c33ebe249c..75226113704df0847e9652957822c714c2539fb1 100644
--- a/doc/qtcreator-faq.qdoc
+++ b/doc/qtcreator-faq.qdoc
@@ -15,7 +15,7 @@
 ** file.
 **
 ** If you have questions regarding the use of this file, please contact
-** Nokia at qt-info@nokia.com.
+** Nokia at info@qt.nokia.com.
 **
 ****************************************************************************/
 
diff --git a/doc/qtcreator.qdoc b/doc/qtcreator.qdoc
index 340ad5010dcdadff2946929522972d4de5f33705..056f4586092b4693d0401553f139935cac38253c 100644
--- a/doc/qtcreator.qdoc
+++ b/doc/qtcreator.qdoc
@@ -613,9 +613,9 @@
 
     \list
 
-        \o Open tutorials and example projects
+        \o Read news from the Qt labs
 
-        \o View tips and hints on using Qt Creator
+        \o Open tutorials and example projects
 
         \o Create and open projects
 
@@ -623,10 +623,6 @@
 
         \o Open recent sessions and projects
 
-        \o Read news from the Qt labs
-
-        \o Ask for support
-
     \endlist
 
     You can use the mode selector to change to another Qt Creator mode.
@@ -3066,7 +3062,7 @@
             without delimiter characters and the initial character of each element is
             capitalized. For example, rewrites \c an_example_symbol
             as \c anExampleSymbol and \c AN_EXAMPLE_SYMBOL as \c AnExampleSymbol
-            \i Indentifier
+            \i Identifier
         \row
             \i Complete Switch Statement
             \i Adds all possible cases to a switch statement of the type \c enum
@@ -3178,14 +3174,14 @@
 
     To develop applications for Symbian devices, you use
     qmake and the local Symbian compiler (on Windows) or qmake and a compilation
-    service at Forum Nokia (on Linux and Mac OS) to build the applications for
+    service at Nokia Developer (on Linux and Mac OS) to build the applications for
     the Symbian devices target. The interface to the compilation service, Remote
     Compiler, is installed as a part of the \QSDK. For more information, see
     \l{Building with Remote Compiler}.
 
-    When you install the \QSDK, the build and run settings for the Maemo, MeeGo
-    Harmattan, and
-    Symbian targets are set up automatically. However, you need to install and
+    You can install Maemo, MeeGo Harmattan, and Symbian targets as parts of
+    the \QSDK. The build and run settings for the selected targets are set up
+    automatically. However, you need to install and
     configure some additional software on the devices to be able to connect to
     them from the development PC.
 
@@ -3232,8 +3228,10 @@
 
         \o Qt Quick Project
 
-        Use QML to define the user interface and,
-        optionally, C++ or JavaScript to define the application logic
+        Use QML elements or Qt Quick Components to define the user interface and,
+        optionally, C++ or JavaScript to define the application logic.
+
+
 
         \o Qt Widget Project
 
@@ -4037,31 +4035,37 @@
 
     \list
 
-        \o  GNU Compiler Collection (GCC) is a cross compiler for Linux and
+        \o  GNU Compiler Collection (GCC) is a compiler for Linux and
             Mac OS X.
 
         \o  MinGW (Minimalist GNU for Windows) is a native software port of GCC
             and GNU Binutils for use in the development of native Microsoft
-            Windows applications on Windows or as cross compiler. MinGW is
+            Windows applications on Windows. MinGW is
             distributed together with Qt Creator and Qt SDK for Windows.
 
+        \o  Linux ICC (Intel C++ Compiler) is a group of C and C++ compilers
+            for Linux.
+
+        \o  Clang is a C, C++, Objective C, and Objective C++ front-end for the
+            LLVM compiler for Windows, Linux, Mac OS X, and Symbian.
+
         \o  GCCE (GNU Compiler Collection for Embedded) is an ARM-based
-            compiler used in Symbian OS 9 and distributed together with the
-            Symbian OS 9 SDKs.
+            compiler used in Symbian OS 9 and distributed together with \QSDK.
 
-        \o  RVCT is an ARM-bases compiler for building applications for Symbian
+        \o  RVCT is an ARM-based compiler for building applications for Symbian
             devices (requires a license).
 
         \o  WINSCW is a compiler for building applications that can be run or
             debugged on the Symbian Emulator. It is distributed together with
-            Symbian SDKs.
+            Symbian SDKs (but not with the \QSDK).
 
     \endlist
 
-    To build an application using MinGW or GCCE, specify the paths to the
+    To build an application using GCC, MinGW, GCCE, or Clang, specify the paths
+    to the
     directories where the compiler and debugger are located and select the
     application binary interface (ABI) version from the list of available
-    versions.
+    versions. You can also create a custom ABI definition.
 
     Qt Creator allows you to select a tool chain that matches the Qt version
     in the \gui Projects mode \gui {Build Settins}.
@@ -4073,6 +4077,8 @@
         \o  Select \gui {Tools > Options... Tool Chains > Add} and select a
             compiler in the list.
 
+            \image qtcreator-toolchains.png
+
             To clone the selected tool chain, select \gui {Clone}.
 
         \o  In the \gui Name column, double-click the name to change it.
@@ -4081,8 +4087,6 @@
             where the compiler is located. For WINSCW, enter the path to the
             Carbide C++ installation directory here.
 
-            \image qtcreator-toolchains.png
-
             The other settings to specify depend on the tool chain.
 
         \o  For RVCT, select the ARM version to use in the \gui {ARM version}
@@ -4373,7 +4377,7 @@
     The tool chain for building applications locally on the development PC for
     the \gui {Symbian Device} target is only supported on Windows.
     If you develop on Linux or Mac OS, you must use the Remote Compiler
-    interface to a compilation service at Forum Nokia. For more information,
+    interface to a compilation service at Nokia Developer. For more information,
     see \l{Building with Remote Compiler}.
 
     \section2 Troubleshooting Build Issues
@@ -4516,7 +4520,7 @@
         The tool tip of the target selector shows more details about the actual
         device that will be used when you run your application.
 
-        \o Start the debugging agent (CODA or App TRK) application on your device.
+        \o Start the CODA debugging agent on the device.
 
         \note If you use CODA over an USB connection, it starts up
         automatically when you connect the device to the development PC.
@@ -4539,7 +4543,7 @@
         \o The Nokia USB drivers that come with \e{PC Suite} or \e{Ovi Suite}
         have been installed on the development PC.
         \o The device is connected through USB cable in \e{PC Suite} mode.
-        \o The debugging agent (App TRK or CODA) is running on the device with
+        \o The CODA debugging agent is running on the device with
            the status \e connected.
 
            \note If you use the CODA debugging agent over WLAN, you must enter
@@ -4587,15 +4591,15 @@
     \title Building with Remote Compiler
 
     The \gui {Remote Compiler} target is an interface to a compilation service at
-    Forum Nokia. It provides a simple, standardized environment for building Qt
+    Nokia Developer. It provides a simple, standardized environment for building Qt
     applications and creating installation packages for Symbian, Maemo, and
     MeeGo Harmattan devices
     when you do not have the necessary tool chains and SDKs installed or they are
     not supported on the development PC. You can choose from a set of supported
     devices, such as S60 3rd Edition or S60 5th Edition devices.
 
-    You need a Forum Nokia user account to use the Remote Compiler. You can
-    create an account for free at \l{http://www.forum.nokia.com/}{Forum Nokia}.
+    You need a Nokia Developer user account to use the Remote Compiler. You can
+    create an account for free at \l{http://www.developer.nokia.com/}{Nokia Developer}.
 
     \note Remote Compiler is an experimental component that is installed as
     part of \QSDK.
@@ -4609,7 +4613,7 @@
         Remote Compiler} to install Remote Compiler.
 
         \o In Qt Creator, choose \gui {Tools > Options > Projects > Remote Compiler}
-        to log on to Forum Nokia.
+        to log on to Nokia Developer.
 
         \image remotecompiler-fn-logon.png "Remote Compiler options"
 
@@ -5194,7 +5198,7 @@
     (Express Signing). Participants can submit an unsigned SIS file to Ovi
     Publishing for signing. For more information about how
     to participate, see
-    \l {http://wiki.forum.nokia.com/index.php/Guide_to_Publishing_Qt_Applications_to_the_Ovi_Store}{Guide to Publishing Qt Applications to the Ovi Store}.
+    \l {http://www.developer.nokia.com/Community/Wiki/Guide_to_Publishing_Qt_Applications_to_the_Ovi_Store}{Guide to Publishing Qt Applications to the Ovi Store}.
 
     There are also options that do not require you to get a Publisher ID. For
     more detail about how the Symbian Signed process works, see
@@ -5285,7 +5289,7 @@
 
     You can either install the Nokia Smart Installer for Symbian as part of
     the \QSDK, or download and install it from the
-    \l{http://wiki.forum.nokia.com/index.php/Nokia_Smart_Installer_for_Symbian}{Nokia Smart Installer for Symbian}
+    \l{http://www.developer.nokia.com/Community/Wiki/Nokia_Smart_Installer_for_Symbian}{Nokia Smart Installer for Symbian}
     wiki.
 
     To package Nokia Smart Installer with the application, select the \gui {Create Smart Installer
@@ -5311,7 +5315,7 @@
 
     \list 1
 
-        \o Make sure that the source directory is clean. For example, if you use git,
+        \o Make sure that the source directory is clean. For example, if you use Git,
         enter the following command:
 
         \c {git clean -dfx}
@@ -5367,7 +5371,7 @@
 
     \list 1
 
-        \o Make sure that the source directory is clean. For example, if you use git,
+        \o Make sure that the source directory is clean. For example, if you use Git,
         enter the following command:
 
         \c {git clean -dfx}
@@ -5499,7 +5503,7 @@
 
     The process and requirements to publish Qt applications to Ovi Store are
     described in the
-    \l {http://wiki.forum.nokia.com/index.php/Guide_to_Publishing_Qt_Applications_to_the_Ovi_Store}{Guide to Publishing Qt Applications to the Ovi Store} wiki.
+    \l {http://www.developer.nokia.com/Community/Wiki/Guide_to_Publishing_Qt_Applications_to_the_Ovi_Store}{Guide to Publishing Qt Applications to the Ovi Store} wiki.
 
     This section describes how to
     generate installation packages that
@@ -5565,7 +5569,7 @@
     device if you use UIDs from the trusted range (0x2xxxxxxx) in a self-signed
     application: \gui {Unable to install a trusted application from a trusted
     supplier.} For more
-    information, see \l{http://wiki.forum.nokia.com/index.php/UID}{UID}.
+    information, see \l{http://www.developer.nokia.com/Community/Wiki/UID}{UID}.
 
     If you try to use more capabilites than the certificate permits, the
     following error message is displayed on the device: \gui {Requested
@@ -5642,7 +5646,7 @@
 
     The applications that you publish on Ovi Store, must meet the testing criteria
     listed in
-    \l{http://www.forum.nokia.com/info/sw.nokia.com/id/9cd1eb18-821b-4228-a0a3-36b049c5d608/Maemo_5_Application_OVI_Store_Entry_Requirements.pdf.html}
+    \l{http://www.developer.nokia.com/info/sw.nokia.com/id/9cd1eb18-821b-4228-a0a3-36b049c5d608/Maemo_5_Application_OVI_Store_Entry_Requirements.pdf.html}
     {Maemo 5 Applications: Ovi Store Entry Requirements}.
 
     Make sure that your application passes the following most commonly
@@ -6074,7 +6078,7 @@
         debugging agent on the device. For more information,
         see \l{Connecting Symbian Devices}.
 
-        \o Start the debugging agent, App TRK or CODA, on the device.
+        \o Start the CODA debugging agent on the device.
 
         \o Click the \gui {Target Selector} and select \gui {Symbian Device}.
 
@@ -9365,6 +9369,20 @@
 
         \o Click \gui{Next}.
 
+        The \gui {Application Type} dialog opens.
+
+        \image qmldesigner-new-project-qml-sources.png "Application Type dialog"
+
+        \o Select the Qt Quick Component Set to use in your application. The
+        built-in elements allow you to write cross-platform applications with
+        custom look and feel. The components for Symbian and MeeGo Harmattan
+        allow you to create applications with a native look and feel for the
+        selected mobile platform.
+
+        You can also import an existing QML file in this dialog.
+
+        \o Click \gui{Next}.
+
         The \gui {Target Setup} dialog opens.
 
         \image qmldesigner-new-project-qt-versions.png "Target Setup dialog"
@@ -9412,13 +9430,6 @@
         \o In the \gui {Application icon} field, select the application
          icon to use on Maemo or Harmattan targets, or use the default icon.
 
-        The \gui {QML Sources} dialog opens.
-
-        \image qmldesigner-new-project-qml-sources.png "QML Sources" dialog
-
-        \o In the \gui {QML Main File} group, select \gui {Generate a .qml file},
-        and then click \gui{Next}.
-
         The \gui {Project Management} dialog opens.
 
         \image qmldesigner-new-project-summary.png "Project Management" dialog
@@ -9452,19 +9463,20 @@
 
         \o Name the project and set its path, and then click \gui Next.
 
+        \o In the \gui {Application Type} dialog, select the \gui {Use an
+        existing .qml file}
+        option and specify the main .qml file of the project you want to import.
+
+        \image qmldesigner-import-project.png "Application Type dialog"
+
+        \o Click \gui Next.
+
         \o Select the Qt versions to use as build targets for your project, and click
         \gui{Next}.
 
         \o Specify options for deploying the application to mobile device targets, and
         click \gui{Next}.
 
-        \o In the \gui {QML Sources} dialog, select the \gui {Import an existing .qml file}
-        option and specify the main .qml file of the project you want to import.
-
-        \image qmldesigner-import-project.png "QML Sources" dialog
-
-        \o Click \gui Next.
-
         \o Review the project settings, and click \gui{Finish} to create the project.
 
     \endlist
@@ -9515,10 +9527,17 @@
 
     \endlist
 
-    You can experiment with a set of Qt Quick components that are designed to
-    appear native to the Symbian devices target platform. For more information,
-    see
-    \l{http://labs.qt.nokia.com/2011/04/08/qt-quick-components-for-symbian-technology-preview/}{Qt Quick components for Symbian Technology Preview}.
+    QML elements allow you to write cross-platform applications with custom look
+    and feel. You can also use ready-made Qt Quick Components for Symbian and
+    MeeGo Harmattan that allow you to create applications with a native look and
+    feel for the selected mobile platform. You can install the components as
+    part of \QSDK.
+
+    When you use the Qt Creator project wizard to create Qt Quick applications,
+    you can select which component set to use in your application.
+
+    Even if you use the Qt Quick Components, you can still write cross-platform
+    applications, by using different sets of QML files for each platform.
 
     You can dowload a set of commonly used UI-components for generic use in
     Qt Quick projects from
@@ -9798,8 +9817,13 @@
     The QML files in the project folder are displayed in \gui {QML Components} in the
     \gui Library pane.
 
+    You can also use ready-made Qt Quick Components for Symbian and
+    MeeGo Harmattan that allow you to create screens with a native look and
+    feel for the selected mobile platform. You can install the components as
+    part of \QSDK.
+
     You can dowload QML templates that specify different types of screens from
-    \l{https://projects.forum.nokia.com/QMLTemplates}{QML Templates} for use in
+    \l{https://projects.developer.nokia.com/QMLTemplates}{QML Templates} for use in
     your Qt Quick projects. You can open and edit the templates in \QD.
 
     \section1 Adding Components to Screens
@@ -10649,8 +10673,7 @@
        \endlist
 
        For more information about user experience techniques for mobile devices, see the
-       \l{http://library.forum.nokia.com/topic/Design_and_User_Experience_Library/GUID-A8DF3EB8-E97C-4DA0-95F6-F464ECC995BC_cover.html}{Design and User Experience Library}
-       on Forum Nokia.
+       \l{http://www.developer.nokia.com/Resources/Library/Design_and_UX} on Nokia Developer.
 
  */
 
@@ -12289,7 +12312,7 @@
 
         \row
             \o  Develop Qt applications for Nokia mobile devices
-            \o  \l{http://www.forum.nokia.com/Develop/Qt/}{Forum Nokia - Qt}
+            \o  \l{http://www.developer.nokia.com/Develop/Qt/}{Nokia Developer - Qt}
 
         \row
             \o  Participate in Qt development
diff --git a/doc/symbiandev.qdoc b/doc/symbiandev.qdoc
index b200b5cad9855ea9d778ca0409dccd093227d445..dbe2a956d1a4593b2cfcb1e2e7bb740c8df355c9 100644
--- a/doc/symbiandev.qdoc
+++ b/doc/symbiandev.qdoc
@@ -15,7 +15,7 @@
 ** file.
 **
 ** If you have questions regarding the use of this file, please contact
-** Nokia at qt-info@nokia.com.
+** Nokia at info@qt.nokia.com.
 **
 ****************************************************************************/
 
@@ -51,8 +51,8 @@
     the standard methods for installing applications.
 
     To debug applications on Symbian devices by using the Qt Creator \gui Debug
-    mode, you must install an on-device debugging agent on the device. You have
-    a choice between App TRK and CODA debugging agents. For more information,
+    mode, you must install the CODA on-device debugging agent on the device.
+    For more information,
     see
     \if defined(qcmanual)
     \l{Using On-device Debugging Agents}.
@@ -65,7 +65,7 @@
     The tool chain for building applications locally on the development PC for
     the \gui {Symbian Device} target is only supported on Windows.
     If you develop on Linux or Mac OS, you must use the Remote Compiler
-    interface to a compilation service at Forum Nokia.
+    interface to a compilation service at Nokia Developer.
 
     For more information about developing applications for the Symbian
     platform, select \gui {Help > Index} and look for \gui {Platform Notes},
@@ -78,10 +78,10 @@
     following:
     \list
         \o The Nokia USB drivers that come with \e{PC Suite} or \e{Ovi Suite}
-        \o An on-device debugging agent, \e {App TRK} or \e CODA, installed on
+        \o The \e CODA on-device debugging agent installed on
            the device
-         \o \e Qt installed on the device
-         \o \e {Qt Mobility APIs} installed on the device, if you use them in
+         \o \e {Qt libraries} installed on the device
+         \o \e {Qt Mobility libraries} installed on the device, if you use them in
          applications
         \o \e {QtWebKit} installed on the device, if you use web functionality
          in applications
@@ -104,7 +104,8 @@
 
     Separate installation packages are provided for Symbian^3 and Symbian^1
     devices. To check the Symbian platform version of your device, see
-    \l{http://www.forum.nokia.com/devices}{Device Details}.
+    \l{http://www.developer.nokia.com/Devices/Device_specifications/}
+    {Device Specifications}.
 
     \note You can also copy the .sis files from
     \c {<QtSDK_install_path>\Symbian\sis} to the device using USB storage
@@ -126,11 +127,6 @@
         and follow the instructions on the screen to install Qt
         mobility libraries to the device.
 
-        \o Choose \gui {Start > Qt SDK > Symbian^3 Qt 4.7.3 > Install TRK
-        (Debug Agent) for Symbian^3 on Device} and follow the
-        instructions on the screen to install
-        the App TRK debugging agent to the device.
-
         \o Choose \gui {Start > Qt SDK > Symbian^3 Qt 4.7.3 > Install QtWebKit
         for for Qt 4.7.3 on Symbian^3 Device} and follow the
         instructions on the screen to install QtWebKit to the device.
@@ -155,11 +151,6 @@
         for Symbian^1 on Device} and follow the instructions on the screen to install Qt
         mobility libraries to the device.
 
-        \o Choose \gui {Start > Qt SDK > Symbian^1 Qt 4.7.3 > Install TRK
-        (Debug Agent)} for the type of the connected device and follow the
-        instructions on the screen to install
-        the App TRK debugging agent to the device.
-
         \o Choose \gui {Start > Qt SDK > Symbian^1 Qt 4.7.3 > Install QtWebKit
         for for Qt 4.7.3 on Symbian^1 Device} and follow the
         instructions on the screen to install QtWebKit to the device.
@@ -173,43 +164,26 @@
     \if defined(qcmanual)
     \section1 Using On-device Debugging Agents
 
-    CODA is a new on-device debugging agent that will eventually replace App TRK.
-    You can choose which debugging agent to use in the \gui {Run Settings} for
-    the project.
-
-    CODA offers the following benefits:
+    Support for the App TRK on-device debugging agent has been removed from
+    Qt Creator 2.3. Only CODA is supported. It offers the following benefits:
 
     \list
 
-        \o  Extended error information
+        \o  Extensive error information
 
         \o  Debugging over WLAN
 
-        \o  Extended information about the device
+        \o  Extensive information about the device
 
     \endlist
 
-    CODA differs from App TRK in the following ways:
-
-    \list
-
-        \o  CODA does not support debugging over a Bluetooth connection.
-
-        \o  CODA supports only Symbian^1 and Symbian^3 devices. It does not
-            support S60 3rd Edition devices.
-
-    \endlist
+    \note CODA does not support debugging over a Bluetooth connection.
 
     \section2 Installing Debugging Agents
 
     You can download CODA from the
     \l{http://tools.ext.nokia.com/coda/}{CODA download server}.
 
-    The \QSDK installation program creates a shortcut for installing
-    App TRK on Symbian devices, but you can also download and install it
-    separately from the
-    \l{http://tools.ext.nokia.com/trk/}{App TRK download server}.
-
     \section1 Adding Symbian Platform SDKs
 
     \QSDK contains all the tools you need for developing Qt applications for
@@ -258,9 +232,7 @@
         The tool tip of the target selector shows more details about the actual
         device that will be used when you run your application.
 
-        \o Start the debugging application, App TRK or CODA, on the device and
-        deny the
-        Bluetooth connection.
+        \o Start the CODA debugging agent on the device.
 
         \o Select \gui Options to select USB as connection type.
 
diff --git a/qtcreator.pro b/qtcreator.pro
index d6ee82b50b8e429527dea538ce3f16453ad93421..ec47b1d3d03dbca77fbe19247261b3b3296d284c 100644
--- a/qtcreator.pro
+++ b/qtcreator.pro
@@ -11,3 +11,16 @@ TEMPLATE  = subdirs
 CONFIG   += ordered
 
 SUBDIRS = src share
+
+OTHER_FILES += dist/copyright_template.txt \
+    dist/changes-1.1.0 \
+    dist/changes-1.1.1 \
+    dist/changes-1.2.0 \
+    dist/changes-1.2.1 \
+    dist/changes-1.3.0 \
+    dist/changes-1.3.1 \
+    dist/changes-2.0.0 \
+    dist/changes-2.0.1 \
+    dist/changes-2.1.0 \
+    dist/changes-2.2.0 \
+    dist/changes-2.3.0
diff --git a/share/qtcreator/dumper/bridge.py b/share/qtcreator/dumper/bridge.py
index cf8382b4cd3ae6d941f938eee209e61ac218b196..f8e159ee67378c6a6619978da8173844d19a806a 100644
--- a/share/qtcreator/dumper/bridge.py
+++ b/share/qtcreator/dumper/bridge.py
@@ -11,20 +11,56 @@ if True:
     import gdb
 
     def registerCommand(name, func):
-        warn("REGISTER %s" % name)
 
         class Command(gdb.Command):
             def __init__(self):
                 super(Command, self).__init__(name, gdb.COMMAND_OBSCURE)
-                warn("INIT %s" % name)
-
             def invoke(self, args, from_tty):
-                print func(args)
-                warn("INVOKE %s" % name)
+                output = func(args)
+                try:
+                    print(output)
+                except:
+                    out = ""
+                    for c in output:
+                        cc = ord(c)
+                        if cc > 127:
+                            out += "\\\\%d" % cc
+                        elif cc < 0:
+                            out += "\\\\%d" % (cc + 256)
+                        else:
+                            out += c
+                    print(out)
+
+
 
         Command()
 
+
+    def isGoodGdb():
+        #return gdb.VERSION.startswith("6.8.50.2009") \
+        #   and gdb.VERSION != "6.8.50.20090630-cvs"
+        return 'parse_and_eval' in __builtin__.dir(gdb)
+
+
+    def parseAndEvaluate(exp):
+        if isGoodGdb():
+            return gdb.parse_and_eval(exp)
+        # Work around non-existing gdb.parse_and_eval as in released 7.0
+        gdb.execute("set logging redirect on")
+        gdb.execute("set logging on")
+        try:
+            gdb.execute("print %s" % exp)
+        except:
+            gdb.execute("set logging off")
+            gdb.execute("set logging redirect off")
+            return None
+        gdb.execute("set logging off")
+        gdb.execute("set logging redirect off")
+        return gdb.history(0)
+
+
     def listOfLocals(varList):
+        frame = gdb.selected_frame()
         try:
             frame = gdb.selected_frame()
             #warn("FRAME %s: " % frame)
@@ -40,7 +76,7 @@ if True:
 
         items = []
         #warn("HAS BLOCK: %s" % hasBlock)
-        if hasBlock:
+        if hasBlock and isGoodGdb():
             #warn("IS GOOD: %s " % varList)
             try:
                 block = frame.block()
@@ -160,6 +196,43 @@ if True:
                 items.append(item)
 
         return items
+
+
+    def catchCliOutput(command):
+        try:
+            return gdb.execute(command, to_string=True).split("\n")
+        except:
+            pass
+        filename, file = createTempFile()
+        gdb.execute("set logging off")
+        gdb.execute("set logging redirect off")
+        gdb.execute("set logging file %s" % filename)
+        gdb.execute("set logging redirect on")
+        gdb.execute("set logging on")
+        msg = ""
+        try:
+            gdb.execute(command)
+        except RuntimeError, error:
+            # For the first phase of core file loading this yield
+            # "No symbol table is loaded.  Use the \"file\" command."
+            msg = str(error)
+        except:
+            msg = "Unknown error"
+        gdb.execute("set logging off")
+        gdb.execute("set logging redirect off")
+        if len(msg):
+            # Having that might confuse result handlers in the gdbengine.
+            #warn("CLI ERROR: %s " % msg)
+            return "CLI ERROR: %s " % msg
+        temp = open(filename, "r")
+        lines = []
+        for line in temp:
+            lines.append(line)
+        temp.close()
+        removeTempFile(filename, file)
+        return lines
+
+
         
 
 #except:
diff --git a/share/qtcreator/dumper/dumper.h b/share/qtcreator/dumper/dumper.h
index 644c9b920121279b4495ea469d94f0338298e72f..3a0bda0d852f7de10fd1971015032145fa4a1527 100644
--- a/share/qtcreator/dumper/dumper.h
+++ b/share/qtcreator/dumper/dumper.h
@@ -26,7 +26,7 @@
 ** 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 qt-info@nokia.com.
+** Nokia at info@qt.nokia.com.
 **
 **************************************************************************/
 
diff --git a/share/qtcreator/dumper/dumper_p.h b/share/qtcreator/dumper/dumper_p.h
index 35b24edbff4757288fe9c520101a720b28b1b283..b1b1ad53caf46e80a4c96630bfcf41f165450097 100644
--- a/share/qtcreator/dumper/dumper_p.h
+++ b/share/qtcreator/dumper/dumper_p.h
@@ -26,7 +26,7 @@
 ** 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 qt-info@nokia.com.
+** Nokia at info@qt.nokia.com.
 **
 **************************************************************************/
 
diff --git a/share/qtcreator/dumper/test/main.cpp b/share/qtcreator/dumper/test/main.cpp
index 00eb317c2ca188f94af542fd6a68c3f3c4d1a7a9..fc1b3e8a20c493529edafcd3587e8d8394821aea 100644
--- a/share/qtcreator/dumper/test/main.cpp
+++ b/share/qtcreator/dumper/test/main.cpp
@@ -26,7 +26,7 @@
 ** 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 qt-info@nokia.com.
+** Nokia at info@qt.nokia.com.
 **
 **************************************************************************/
 
diff --git a/share/qtcreator/examplebrowser/qmlexamples.xml b/share/qtcreator/examplebrowser/qmlexamples.xml
deleted file mode 100644
index af01655fb6208732541ee01bb02535974d229810..0000000000000000000000000000000000000000
--- a/share/qtcreator/examplebrowser/qmlexamples.xml
+++ /dev/null
@@ -1,89 +0,0 @@
-<?xml version="1.0" encoding="iso-8859-1"?>
-<categories name="Qt Examples and Demos">
-  <category dirname="declarative/toys" name="Toys">
-    <example filename="dynamicscene" name="Dynamic Scene" executable="false" qml="true" />
-    <example filename="tic-tac-toe" name="Tic Tac Toe" executable="false" qml="true" />
-    <example filename="clocks" name="Clocks" executable="false" qml="true" />
-    <example filename="corkboards" name="Corkboards" executable="false" qml="true" />
-    <example filename="tvtennis" name="TV Tennis" executable="false" qml="true" />
-  </category>
-  <category dirname="declarative/ui-components" name="QML UI Components">
-    <example filename="dialcontrol" name="Dial" executable="false" qml="true" />
-    <example filename="flipable" name="Flipable" executable="false" qml="true" />
-    <example filename="progressbar" name="Progress Bar" executable="false" qml="true" />
-    <example filename="scrollbar" name="Scroll Bar" executable="false" qml="true" />
-    <example filename="searchbox" name="Search Box" executable="false" qml="true" />
-    <example filename="slideswitch" name="Slide Switch" executable="false" qml="true" />
-    <example filename="spinner" name="Spinner" executable="false" qml="true" />
-    <example filename="tabwidget" name="Tab Widget" executable="false" qml="true" />
-  </category>
-  <category dirname="declarative/text" name="Text">
-    <example filename="fonts" name="Fonts" executable="false" qml="true" />
-    <example filename="fonts/banner" name="Available Fonts" executable="false" qml="true" />
-    <example filename="fonts/availableFonts" name="Available Fonts" executable="false" qml="true" />
-    <example filename="fonts/hello" name="Hello" executable="false" qml="true" />
-    <example filename="fonts/fonts" name="Fonts" executable="false" qml="true" />
-    <example filename="textselection" name="Text selection" executable="false" qml="true" />
-  </category>
-  <category dirname="declarative/modelviews/webview" name="WebView">
-    <example filename="googlemaps" name="Google Maps" executable="false" qml="true" />
-    <example filename="autosize" name="Autosize" executable="false" qml="true" />
-    <example filename="inlinehtml" name="Inline HTML" executable="false" qml="true" />
-  </category>
-  <category dirname="declarative/modelviews" name="Models and Views">
-    <example filename="package" name="Package" executable="false" qml="true" />
-    <example filename="gridview" name="GridView" executable="false" qml="true" />
-    <example filename="visualitemmodel" name="VisualItemModel" executable="false" qml="true" />
-    <example filename="webview" name="WebView" executable="false" qml="true" />
-    <example filename="pathview" name="PathView" executable="false" qml="true" />
-    <example filename="webview-examples" name="WebView" executable="false" qml="true" />
-    <example filename="pathview-example" name="PathView" executable="false" qml="true" />
-    <example filename="parallax" name="Parallax Sliding" executable="false" qml="true" />
-    <example filename="listview" name="ListView" executable="false" qml="true" />
-    <example filename="listview/sections" name="Sections in ListView" executable="false" qml="true" />
-    <example filename="listview/expandingdelegates" name="Expanding delegates in ListView" executable="false" qml="true" />
-    <example filename="listview/highlight" name="Highlight in ListView" executable="false" qml="true" />
-    <example filename="listview/highlightranges" name="Highlight ranges in ListView" executable="false" qml="true" />
-    <example filename="listview/dynamiclist" name="Dynamic list with ListView" executable="false" qml="true" />
-    <example filename="objectlistmodel" name="Object List Model" executable="false" qml="true" />
-  </category>
-  <category dirname="declarative/threading" name="Threading">
-    <example filename="threadedlistmodel" name="Threaded ListModel" executable="false" qml="true" />
-    <example filename="workerscript" name="WorkerScript" executable="false" qml="true" />
-  </category>
-  <category dirname="declarative/animation" name="Animation">
-    <example filename="basics/color-animation" name="Color animation" executable="false" qml="true" />
-    <example filename="basics/propery-animation" name="Property animation" executable="false" qml="true" />
-    <example filename="basics" name="Basics" executable="false" qml="true" />
-    <example filename="behaviors" name="Behaviors" executable="false" qml="true" />
-    <example filename="easing" name="Easing Curves" executable="false" qml="true" />
-    <example filename="states" name="States" executable="false" qml="true" />
-  </category>
-  <category dirname="declarative/imageelements" name="Image elements">
-    <example filename="image" name="Image" executable="false" qml="true" />
-    <example filename="borderimage" name="Border Image" executable="false" qml="true" />
-    <example filename="shadows" name="Shadows" executable="false" qml="true" />
-  </category>
-  <category dirname="declarative/touchinteraction" name="Touch interaction">
-    <example filename="gestures" name="Gestures" executable="false" qml="true" />
-    <example filename="mousearea" name="MouseArea" executable="false" qml="true" />
-    <example filename="gestures/experimental-gestures" name="Gestures" executable="false" qml="true" />
-    <example filename="mousearea/mousearea-example" name="MouseArea" executable="false" qml="true" />
-  </category>
-  <category dirname="declarative/demos" name="Demos">
-    <example filename="calculator" name="Calculator" executable="false" qml="true" />
-    <example filename="flickr" name="Flickr" executable="false" qml="true" />
-    <example filename="photoviewer" name="Photo viewer" executable="false" qml="true" />
-    <example filename="rssnews" name="RSS news" executable="false" qml="true" />
-    <example filename="samegame" name="Same Game" executable="false" qml="true" />
-    <example filename="twitter" name="Twitter" executable="false" qml="true" />
-    <example filename="webbrowser" name="Web browser" executable="false" qml="true" />
-  </category>
-  <category dirname="declarative" name="Miscellaneous">
-    <example filename="positioners" name="Positioners" executable="false" qml="true" />
-    <example filename="screenorientation" name="Screen Orientation" executable="false" qml="true" />
-    <example filename="xml/xmlhttprequest" name="XmlHttpRequest" executable="false" qml="true" />
-    <example filename="sqllocalstorage" name="SQL Local Storage" executable="false" qml="true" />
-    <example filename="keyinteraction/focus" name="Focus" executable="false" qml="true" />
-  </category>
-</categories>
diff --git a/share/qtcreator/glsl/glsl_120.frag b/share/qtcreator/glsl/glsl_120.frag
index 93fa2678f6e6534c160a34216c1666b28e6fd616..6cbf1e715605a1449e6669053b6a00593f3721c7 100644
--- a/share/qtcreator/glsl/glsl_120.frag
+++ b/share/qtcreator/glsl/glsl_120.frag
@@ -26,7 +26,7 @@
 ** 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 qt-info@nokia.com.
+** Nokia at info@qt.nokia.com.
 **
 **************************************************************************/
 
diff --git a/share/qtcreator/glsl/glsl_120.vert b/share/qtcreator/glsl/glsl_120.vert
index af1af6c8c4a7b5260c0d7875d7cc77bd7c2006a8..ba307db9132b3ea409ac87b781f3ee3ba44554a3 100644
--- a/share/qtcreator/glsl/glsl_120.vert
+++ b/share/qtcreator/glsl/glsl_120.vert
@@ -26,7 +26,7 @@
 ** 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 qt-info@nokia.com.
+** Nokia at info@qt.nokia.com.
 **
 **************************************************************************/
 
diff --git a/share/qtcreator/glsl/glsl_120_common.glsl b/share/qtcreator/glsl/glsl_120_common.glsl
index 297d1048884a2523abb3f85a1972cc76801918f2..387afcc25c3b44556ae3405c84668409347cd27e 100644
--- a/share/qtcreator/glsl/glsl_120_common.glsl
+++ b/share/qtcreator/glsl/glsl_120_common.glsl
@@ -26,7 +26,7 @@
 ** 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 qt-info@nokia.com.
+** Nokia at info@qt.nokia.com.
 **
 **************************************************************************/
 
diff --git a/share/qtcreator/glsl/glsl_es_100.frag b/share/qtcreator/glsl/glsl_es_100.frag
index e499ff7245a2a969c1ff7272740ad2d43c47c04f..55393153ba08556cf62189f060ce7441d931d150 100644
--- a/share/qtcreator/glsl/glsl_es_100.frag
+++ b/share/qtcreator/glsl/glsl_es_100.frag
@@ -26,7 +26,7 @@
 ** 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 qt-info@nokia.com.
+** Nokia at info@qt.nokia.com.
 **
 **************************************************************************/
 
diff --git a/share/qtcreator/glsl/glsl_es_100.vert b/share/qtcreator/glsl/glsl_es_100.vert
index ff2d532538811541394a5b55bc5eca425ebd6655..094e78df1dc83a8a3bab9337ef81919713259bfe 100644
--- a/share/qtcreator/glsl/glsl_es_100.vert
+++ b/share/qtcreator/glsl/glsl_es_100.vert
@@ -26,7 +26,7 @@
 ** 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 qt-info@nokia.com.
+** Nokia at info@qt.nokia.com.
 **
 **************************************************************************/
 
diff --git a/share/qtcreator/glsl/glsl_es_100_common.glsl b/share/qtcreator/glsl/glsl_es_100_common.glsl
index 1dd90c07edc1ca7aaafb2f7b9003762aadf10330..0551a38d6b6567c6fa05a156ad7d0b2a3f35fed5 100644
--- a/share/qtcreator/glsl/glsl_es_100_common.glsl
+++ b/share/qtcreator/glsl/glsl_es_100_common.glsl
@@ -26,7 +26,7 @@
 ** 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 qt-info@nokia.com.
+** Nokia at info@qt.nokia.com.
 **
 **************************************************************************/
 
diff --git a/share/qtcreator/patches/README b/share/qtcreator/patches/README
index 319a0c83059416c21506e901ec675179d6922321..06997ecd6bc56c3b21ff8109346231d10b2094bb 100644
--- a/share/qtcreator/patches/README
+++ b/share/qtcreator/patches/README
@@ -1,6 +1,10 @@
 As baseline, d85391173658dc6dcbf1acc5edbe331b1296f572 (Mon Jun 20 17:53:28)
 should be used.
 
+For Mac:
+
+    + gdb-increased-dcache-line-size.patch
+
 For Linux:
 
     + gdb-increased-dcache-line-size.patch
diff --git a/share/qtcreator/qml/qmldump/main.cpp b/share/qtcreator/qml/qmldump/main.cpp
index ef3f728c262fe9285185c76a48733d1bb8261c4f..a018e6e07e7213663fb6a436e1b7184d902e91eb 100644
--- a/share/qtcreator/qml/qmldump/main.cpp
+++ b/share/qtcreator/qml/qmldump/main.cpp
@@ -26,7 +26,7 @@
 ** 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 qt-info@nokia.com.
+** Nokia at info@qt.nokia.com.
 **
 **************************************************************************/
 
diff --git a/share/qtcreator/qml/qmldump/qmlstreamwriter.cpp b/share/qtcreator/qml/qmldump/qmlstreamwriter.cpp
index a7105f65bcb3aac1ad6a7e05a615f6660328ff31..2e2726b6f0b181e0717897a5fa6b0b933c3d194a 100644
--- a/share/qtcreator/qml/qmldump/qmlstreamwriter.cpp
+++ b/share/qtcreator/qml/qmldump/qmlstreamwriter.cpp
@@ -26,7 +26,7 @@
 ** 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 qt-info@nokia.com.
+** Nokia at info@qt.nokia.com.
 **
 **************************************************************************/
 
diff --git a/share/qtcreator/qml/qmldump/qmlstreamwriter.h b/share/qtcreator/qml/qmldump/qmlstreamwriter.h
index 1a447d7de605c9f1678287f03c6a8441b9361944..95c409d9a8d57aa42fb494700c450dbfac1c7578 100644
--- a/share/qtcreator/qml/qmldump/qmlstreamwriter.h
+++ b/share/qtcreator/qml/qmldump/qmlstreamwriter.h
@@ -26,7 +26,7 @@
 ** 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 qt-info@nokia.com.
+** Nokia at info@qt.nokia.com.
 **
 **************************************************************************/
 
diff --git a/share/qtcreator/qml/qmljsdebugger/editor/abstractliveedittool.cpp b/share/qtcreator/qml/qmljsdebugger/editor/abstractliveedittool.cpp
index 58afa5a9e25edf474fa9efc1aaf0eda428cade89..b6d6819c7e4b36bfd45d048ab5dc0ea8a6e18662 100644
--- a/share/qtcreator/qml/qmljsdebugger/editor/abstractliveedittool.cpp
+++ b/share/qtcreator/qml/qmljsdebugger/editor/abstractliveedittool.cpp
@@ -26,7 +26,7 @@
 ** 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 qt-info@nokia.com.
+** Nokia at info@qt.nokia.com.
 **
 **************************************************************************/
 
diff --git a/share/qtcreator/qml/qmljsdebugger/editor/abstractliveedittool.h b/share/qtcreator/qml/qmljsdebugger/editor/abstractliveedittool.h
index 8fbfc9af4742e07e29b885bd7a6c382557f3ed72..95a76c94cdf82abed76b5c283efa5b139d432c85 100644
--- a/share/qtcreator/qml/qmljsdebugger/editor/abstractliveedittool.h
+++ b/share/qtcreator/qml/qmljsdebugger/editor/abstractliveedittool.h
@@ -26,7 +26,7 @@
 ** 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 qt-info@nokia.com.
+** Nokia at info@qt.nokia.com.
 **
 **************************************************************************/
 
diff --git a/share/qtcreator/qml/qmljsdebugger/editor/boundingrecthighlighter.cpp b/share/qtcreator/qml/qmljsdebugger/editor/boundingrecthighlighter.cpp
index 9580d0d13187e894fa3d7d0b21f67a3011149268..013d28bbec5ef115797acf42670c4b092f191ee7 100644
--- a/share/qtcreator/qml/qmljsdebugger/editor/boundingrecthighlighter.cpp
+++ b/share/qtcreator/qml/qmljsdebugger/editor/boundingrecthighlighter.cpp
@@ -26,7 +26,7 @@
 ** 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 qt-info@nokia.com.
+** Nokia at info@qt.nokia.com.
 **
 **************************************************************************/
 
diff --git a/share/qtcreator/qml/qmljsdebugger/editor/boundingrecthighlighter.h b/share/qtcreator/qml/qmljsdebugger/editor/boundingrecthighlighter.h
index 3bb8ef7fd82cffb627ac1169b5dd6c85d9068abf..991c9fa913c1f50e1fb0e7b19ac1bdec0df79116 100644
--- a/share/qtcreator/qml/qmljsdebugger/editor/boundingrecthighlighter.h
+++ b/share/qtcreator/qml/qmljsdebugger/editor/boundingrecthighlighter.h
@@ -26,7 +26,7 @@
 ** 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 qt-info@nokia.com.
+** Nokia at info@qt.nokia.com.
 **
 **************************************************************************/
 
diff --git a/share/qtcreator/qml/qmljsdebugger/editor/colorpickertool.cpp b/share/qtcreator/qml/qmljsdebugger/editor/colorpickertool.cpp
index 2ccc2a79d83f080e3c2202f7b7e3f477c58b5d4d..1612991d3630e936ab49a250a465093af79afcbf 100644
--- a/share/qtcreator/qml/qmljsdebugger/editor/colorpickertool.cpp
+++ b/share/qtcreator/qml/qmljsdebugger/editor/colorpickertool.cpp
@@ -26,7 +26,7 @@
 ** 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 qt-info@nokia.com.
+** Nokia at info@qt.nokia.com.
 **
 **************************************************************************/
 
diff --git a/share/qtcreator/qml/qmljsdebugger/editor/colorpickertool.h b/share/qtcreator/qml/qmljsdebugger/editor/colorpickertool.h
index d176dde093b2ec39f3772ad7e7e5295defc2944c..5898ab0f79f0a4523b008e7863f9c95a3d5d405f 100644
--- a/share/qtcreator/qml/qmljsdebugger/editor/colorpickertool.h
+++ b/share/qtcreator/qml/qmljsdebugger/editor/colorpickertool.h
@@ -26,7 +26,7 @@
 ** 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 qt-info@nokia.com.
+** Nokia at info@qt.nokia.com.
 **
 **************************************************************************/
 
diff --git a/share/qtcreator/qml/qmljsdebugger/editor/livelayeritem.cpp b/share/qtcreator/qml/qmljsdebugger/editor/livelayeritem.cpp
index 5a8b8e1020906ded56c768b97e98f6c963c392c7..093d9f0a9b722f6ec7c9dea2808cbabc31be1ec3 100644
--- a/share/qtcreator/qml/qmljsdebugger/editor/livelayeritem.cpp
+++ b/share/qtcreator/qml/qmljsdebugger/editor/livelayeritem.cpp
@@ -26,7 +26,7 @@
 ** 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 qt-info@nokia.com.
+** Nokia at info@qt.nokia.com.
 **
 **************************************************************************/
 
diff --git a/share/qtcreator/qml/qmljsdebugger/editor/livelayeritem.h b/share/qtcreator/qml/qmljsdebugger/editor/livelayeritem.h
index d5fe730a4c8b0f96032e620adc4efe86e9e22a9c..15a476e08e6fa71977fd5b9c2a3368d970f94e3b 100644
--- a/share/qtcreator/qml/qmljsdebugger/editor/livelayeritem.h
+++ b/share/qtcreator/qml/qmljsdebugger/editor/livelayeritem.h
@@ -26,7 +26,7 @@
 ** 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 qt-info@nokia.com.
+** Nokia at info@qt.nokia.com.
 **
 **************************************************************************/
 
diff --git a/share/qtcreator/qml/qmljsdebugger/editor/liverubberbandselectionmanipulator.cpp b/share/qtcreator/qml/qmljsdebugger/editor/liverubberbandselectionmanipulator.cpp
index b7a8ade5d3881971ada2efedabd609de051a30c2..3ac067e147531737709cae234e7208b1abbcc9d4 100644
--- a/share/qtcreator/qml/qmljsdebugger/editor/liverubberbandselectionmanipulator.cpp
+++ b/share/qtcreator/qml/qmljsdebugger/editor/liverubberbandselectionmanipulator.cpp
@@ -26,7 +26,7 @@
 ** 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 qt-info@nokia.com.
+** Nokia at info@qt.nokia.com.
 **
 **************************************************************************/
 
diff --git a/share/qtcreator/qml/qmljsdebugger/editor/liverubberbandselectionmanipulator.h b/share/qtcreator/qml/qmljsdebugger/editor/liverubberbandselectionmanipulator.h
index 052284a4096d5d94b0344bcfc4144401fcce3973..321d47e060b3fa8997962bcc49171b6d80669eff 100644
--- a/share/qtcreator/qml/qmljsdebugger/editor/liverubberbandselectionmanipulator.h
+++ b/share/qtcreator/qml/qmljsdebugger/editor/liverubberbandselectionmanipulator.h
@@ -26,7 +26,7 @@
 ** 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 qt-info@nokia.com.
+** Nokia at info@qt.nokia.com.
 **
 **************************************************************************/
 
diff --git a/share/qtcreator/qml/qmljsdebugger/editor/liveselectionindicator.cpp b/share/qtcreator/qml/qmljsdebugger/editor/liveselectionindicator.cpp
index fb11850745582526b9d33dbd98d4e44fcaf8c48c..7654d43bea3e4ecdfce391003bafc5dc9a22265f 100644
--- a/share/qtcreator/qml/qmljsdebugger/editor/liveselectionindicator.cpp
+++ b/share/qtcreator/qml/qmljsdebugger/editor/liveselectionindicator.cpp
@@ -26,7 +26,7 @@
 ** 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 qt-info@nokia.com.
+** Nokia at info@qt.nokia.com.
 **
 **************************************************************************/
 
diff --git a/share/qtcreator/qml/qmljsdebugger/editor/liveselectionindicator.h b/share/qtcreator/qml/qmljsdebugger/editor/liveselectionindicator.h
index 78df3cff4b561be9e38a2daf15ac9bb01d76ba5e..2f75df3a4fd4a3adf133921f6d6f1e9eb7900264 100644
--- a/share/qtcreator/qml/qmljsdebugger/editor/liveselectionindicator.h
+++ b/share/qtcreator/qml/qmljsdebugger/editor/liveselectionindicator.h
@@ -26,7 +26,7 @@
 ** 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 qt-info@nokia.com.
+** Nokia at info@qt.nokia.com.
 **
 **************************************************************************/
 
diff --git a/share/qtcreator/qml/qmljsdebugger/editor/liveselectionrectangle.cpp b/share/qtcreator/qml/qmljsdebugger/editor/liveselectionrectangle.cpp
index 98605e627ba0a091c416237b394465152778b405..194aa61d9a5a76bdaac0ab43182d55a9bd758b63 100644
--- a/share/qtcreator/qml/qmljsdebugger/editor/liveselectionrectangle.cpp
+++ b/share/qtcreator/qml/qmljsdebugger/editor/liveselectionrectangle.cpp
@@ -26,7 +26,7 @@
 ** 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 qt-info@nokia.com.
+** Nokia at info@qt.nokia.com.
 **
 **************************************************************************/
 
diff --git a/share/qtcreator/qml/qmljsdebugger/editor/liveselectionrectangle.h b/share/qtcreator/qml/qmljsdebugger/editor/liveselectionrectangle.h
index 1b179e62ce9ee8007a3cd6ed90ede29f2337114c..8b33ab202014752a91c370592e021d76db82f82d 100644
--- a/share/qtcreator/qml/qmljsdebugger/editor/liveselectionrectangle.h
+++ b/share/qtcreator/qml/qmljsdebugger/editor/liveselectionrectangle.h
@@ -26,7 +26,7 @@
 ** 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 qt-info@nokia.com.
+** Nokia at info@qt.nokia.com.
 **
 **************************************************************************/
 
diff --git a/share/qtcreator/qml/qmljsdebugger/editor/liveselectiontool.cpp b/share/qtcreator/qml/qmljsdebugger/editor/liveselectiontool.cpp
index f9b89021329589583508f6b86f4d63ad48befb36..042b4c3bbe85257868fc69b693803ec619d9753b 100644
--- a/share/qtcreator/qml/qmljsdebugger/editor/liveselectiontool.cpp
+++ b/share/qtcreator/qml/qmljsdebugger/editor/liveselectiontool.cpp
@@ -26,7 +26,7 @@
 ** 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 qt-info@nokia.com.
+** Nokia at info@qt.nokia.com.
 **
 **************************************************************************/
 
diff --git a/share/qtcreator/qml/qmljsdebugger/editor/liveselectiontool.h b/share/qtcreator/qml/qmljsdebugger/editor/liveselectiontool.h
index 4f843e44778b6e5681a0639d586369a3bd6257c7..0b44225125cb5617337f2137a25bb3bb1387c948 100644
--- a/share/qtcreator/qml/qmljsdebugger/editor/liveselectiontool.h
+++ b/share/qtcreator/qml/qmljsdebugger/editor/liveselectiontool.h
@@ -26,7 +26,7 @@
 ** 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 qt-info@nokia.com.
+** Nokia at info@qt.nokia.com.
 **
 **************************************************************************/
 
diff --git a/share/qtcreator/qml/qmljsdebugger/editor/livesingleselectionmanipulator.cpp b/share/qtcreator/qml/qmljsdebugger/editor/livesingleselectionmanipulator.cpp
index bdf8abcb27eb2d5a0429e13c106469d29cedf3a8..dc3c832449700aa93444548ceaef9eedcedbf2ea 100644
--- a/share/qtcreator/qml/qmljsdebugger/editor/livesingleselectionmanipulator.cpp
+++ b/share/qtcreator/qml/qmljsdebugger/editor/livesingleselectionmanipulator.cpp
@@ -26,7 +26,7 @@
 ** 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 qt-info@nokia.com.
+** Nokia at info@qt.nokia.com.
 **
 **************************************************************************/
 
diff --git a/share/qtcreator/qml/qmljsdebugger/editor/livesingleselectionmanipulator.h b/share/qtcreator/qml/qmljsdebugger/editor/livesingleselectionmanipulator.h
index 2850e624edb54eac50228afa04ebef453d199d33..fa4ef942439e32e12434a5a15027f95028bda5df 100644
--- a/share/qtcreator/qml/qmljsdebugger/editor/livesingleselectionmanipulator.h
+++ b/share/qtcreator/qml/qmljsdebugger/editor/livesingleselectionmanipulator.h
@@ -26,7 +26,7 @@
 ** 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 qt-info@nokia.com.
+** Nokia at info@qt.nokia.com.
 **
 **************************************************************************/
 
diff --git a/share/qtcreator/qml/qmljsdebugger/editor/qmltoolbar.cpp b/share/qtcreator/qml/qmljsdebugger/editor/qmltoolbar.cpp
index 02ec9d1b06ee0fb090dd0a3d86569f700faa756d..3b448b1a0b51901bdeadf040c48108ed8e56cea7 100644
--- a/share/qtcreator/qml/qmljsdebugger/editor/qmltoolbar.cpp
+++ b/share/qtcreator/qml/qmljsdebugger/editor/qmltoolbar.cpp
@@ -26,7 +26,7 @@
 ** 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 qt-info@nokia.com.
+** Nokia at info@qt.nokia.com.
 **
 **************************************************************************/
 
diff --git a/share/qtcreator/qml/qmljsdebugger/editor/qmltoolbar.h b/share/qtcreator/qml/qmljsdebugger/editor/qmltoolbar.h
index b1bf62f9e9d02dfc132ab57a15b384ad33a4cfc8..01ea8c4c4335bc8529f2ef806d927c156bbd759c 100644
--- a/share/qtcreator/qml/qmljsdebugger/editor/qmltoolbar.h
+++ b/share/qtcreator/qml/qmljsdebugger/editor/qmltoolbar.h
@@ -26,7 +26,7 @@
 ** 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 qt-info@nokia.com.
+** Nokia at info@qt.nokia.com.
 **
 **************************************************************************/
 
diff --git a/share/qtcreator/qml/qmljsdebugger/editor/subcomponentmasklayeritem.cpp b/share/qtcreator/qml/qmljsdebugger/editor/subcomponentmasklayeritem.cpp
index 33674c0efed89680cd0346e536ee0b0089e41f6d..73fca72661a482b9181b89d523b58c5448cee39e 100644
--- a/share/qtcreator/qml/qmljsdebugger/editor/subcomponentmasklayeritem.cpp
+++ b/share/qtcreator/qml/qmljsdebugger/editor/subcomponentmasklayeritem.cpp
@@ -26,7 +26,7 @@
 ** 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 qt-info@nokia.com.
+** Nokia at info@qt.nokia.com.
 **
 **************************************************************************/
 
diff --git a/share/qtcreator/qml/qmljsdebugger/editor/subcomponentmasklayeritem.h b/share/qtcreator/qml/qmljsdebugger/editor/subcomponentmasklayeritem.h
index 02c56a3b193f1937b922df8a50c16e89a08ccd1f..c9b0d95a9fd203f160585d720656f46b65533098 100644
--- a/share/qtcreator/qml/qmljsdebugger/editor/subcomponentmasklayeritem.h
+++ b/share/qtcreator/qml/qmljsdebugger/editor/subcomponentmasklayeritem.h
@@ -26,7 +26,7 @@
 ** 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 qt-info@nokia.com.
+** Nokia at info@qt.nokia.com.
 **
 **************************************************************************/
 
diff --git a/share/qtcreator/qml/qmljsdebugger/editor/toolbarcolorbox.cpp b/share/qtcreator/qml/qmljsdebugger/editor/toolbarcolorbox.cpp
index 76c7df739124b1832e4cc616a41dcb2590c8f58f..a6a6c1bc3a40a7b17d84b0dcefb72e7c09c02d46 100644
--- a/share/qtcreator/qml/qmljsdebugger/editor/toolbarcolorbox.cpp
+++ b/share/qtcreator/qml/qmljsdebugger/editor/toolbarcolorbox.cpp
@@ -26,7 +26,7 @@
 ** 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 qt-info@nokia.com.
+** Nokia at info@qt.nokia.com.
 **
 **************************************************************************/
 
diff --git a/share/qtcreator/qml/qmljsdebugger/editor/toolbarcolorbox.h b/share/qtcreator/qml/qmljsdebugger/editor/toolbarcolorbox.h
index 26029bb46f2525e20c2fd7df4496eb9179a168fa..0db223a7c2d59e43f77f98f13f8c2ee8164faf1c 100644
--- a/share/qtcreator/qml/qmljsdebugger/editor/toolbarcolorbox.h
+++ b/share/qtcreator/qml/qmljsdebugger/editor/toolbarcolorbox.h
@@ -26,7 +26,7 @@
 ** 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 qt-info@nokia.com.
+** Nokia at info@qt.nokia.com.
 **
 **************************************************************************/
 
diff --git a/share/qtcreator/qml/qmljsdebugger/editor/zoomtool.cpp b/share/qtcreator/qml/qmljsdebugger/editor/zoomtool.cpp
index a2683092b028dc806160b09aadcc8205607b14b7..c15cd6189dade68c74645cfd8ca63ec523d582c9 100644
--- a/share/qtcreator/qml/qmljsdebugger/editor/zoomtool.cpp
+++ b/share/qtcreator/qml/qmljsdebugger/editor/zoomtool.cpp
@@ -26,7 +26,7 @@
 ** 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 qt-info@nokia.com.
+** Nokia at info@qt.nokia.com.
 **
 **************************************************************************/
 
diff --git a/share/qtcreator/qml/qmljsdebugger/editor/zoomtool.h b/share/qtcreator/qml/qmljsdebugger/editor/zoomtool.h
index 7eb35bdaef0ae327a61274f21366e20459652b87..8d25d86c7b29576165c53b156256a4a13f7c69a2 100644
--- a/share/qtcreator/qml/qmljsdebugger/editor/zoomtool.h
+++ b/share/qtcreator/qml/qmljsdebugger/editor/zoomtool.h
@@ -26,7 +26,7 @@
 ** 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 qt-info@nokia.com.
+** Nokia at info@qt.nokia.com.
 **
 **************************************************************************/
 
diff --git a/share/qtcreator/qml/qmljsdebugger/include/jsdebuggeragent.h b/share/qtcreator/qml/qmljsdebugger/include/jsdebuggeragent.h
index ba7b3a92a26044634f447eceb24d860411c0d050..af2a4806c230957a53a0d8101271c65ac656c192 100644
--- a/share/qtcreator/qml/qmljsdebugger/include/jsdebuggeragent.h
+++ b/share/qtcreator/qml/qmljsdebugger/include/jsdebuggeragent.h
@@ -25,7 +25,7 @@
 ** 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 qt-info@nokia.com.
+** Nokia at info@qt.nokia.com.
 **
 **************************************************************************/
 
diff --git a/share/qtcreator/qml/qmljsdebugger/include/qdeclarativeinspectorservice.h b/share/qtcreator/qml/qmljsdebugger/include/qdeclarativeinspectorservice.h
index c28f0b50ba868553209f84f9f739bbc3eb20e1d7..9c4f74c8f5412c60e5e1607370afa48f51dc3b7c 100644
--- a/share/qtcreator/qml/qmljsdebugger/include/qdeclarativeinspectorservice.h
+++ b/share/qtcreator/qml/qmljsdebugger/include/qdeclarativeinspectorservice.h
@@ -25,7 +25,7 @@
 ** 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 qt-info@nokia.com.
+** Nokia at info@qt.nokia.com.
 **
 **************************************************************************/
 
diff --git a/share/qtcreator/qml/qmljsdebugger/include/qdeclarativeviewinspector.h b/share/qtcreator/qml/qmljsdebugger/include/qdeclarativeviewinspector.h
index 6ba0427187e170326e08c4988c4cbfbdb616e1ac..134d642ccb52faafde74d1c3fc6806e0c3168a98 100644
--- a/share/qtcreator/qml/qmljsdebugger/include/qdeclarativeviewinspector.h
+++ b/share/qtcreator/qml/qmljsdebugger/include/qdeclarativeviewinspector.h
@@ -26,7 +26,7 @@
 ** 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 qt-info@nokia.com.
+** Nokia at info@qt.nokia.com.
 **
 **************************************************************************/
 
diff --git a/share/qtcreator/qml/qmljsdebugger/include/qdeclarativeviewobserver.h b/share/qtcreator/qml/qmljsdebugger/include/qdeclarativeviewobserver.h
index 7621a9e8d7ed8119afb9c57893644fd5e752ba54..e5af0328f801c3089eeeb5d59e326d714442a9bf 100644
--- a/share/qtcreator/qml/qmljsdebugger/include/qdeclarativeviewobserver.h
+++ b/share/qtcreator/qml/qmljsdebugger/include/qdeclarativeviewobserver.h
@@ -26,7 +26,7 @@
 ** 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 qt-info@nokia.com.
+** Nokia at info@qt.nokia.com.
 **
 **************************************************************************/
 
diff --git a/share/qtcreator/qml/qmljsdebugger/include/qmlinspectorconstants.h b/share/qtcreator/qml/qmljsdebugger/include/qmlinspectorconstants.h
index eb5ac317e87b30260a09f76a50a553f750392e5e..a777a4abaa4cbb5e1af36ff9514437f17b9c0afb 100644
--- a/share/qtcreator/qml/qmljsdebugger/include/qmlinspectorconstants.h
+++ b/share/qtcreator/qml/qmljsdebugger/include/qmlinspectorconstants.h
@@ -26,7 +26,7 @@
 ** 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 qt-info@nokia.com.
+** Nokia at info@qt.nokia.com.
 **
 **************************************************************************/
 
diff --git a/share/qtcreator/qml/qmljsdebugger/include/qmljsdebugger_global.h b/share/qtcreator/qml/qmljsdebugger/include/qmljsdebugger_global.h
index 19f65f7d746bb7da66eafdd8b4df953f1a4707dc..bb364aa5ef09218deb1ed4596d98587a8048c897 100644
--- a/share/qtcreator/qml/qmljsdebugger/include/qmljsdebugger_global.h
+++ b/share/qtcreator/qml/qmljsdebugger/include/qmljsdebugger_global.h
@@ -26,7 +26,7 @@
 ** 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 qt-info@nokia.com.
+** Nokia at info@qt.nokia.com.
 **
 **************************************************************************/
 
diff --git a/share/qtcreator/qml/qmljsdebugger/include/qt_private/qdeclarativedebughelper_p.h b/share/qtcreator/qml/qmljsdebugger/include/qt_private/qdeclarativedebughelper_p.h
index a883d9626587048fed89cb34dd08850e9af0fa3c..ae53ea65d23ac1a9d3bcaa473ccf3cd1d9e7db1a 100644
--- a/share/qtcreator/qml/qmljsdebugger/include/qt_private/qdeclarativedebughelper_p.h
+++ b/share/qtcreator/qml/qmljsdebugger/include/qt_private/qdeclarativedebughelper_p.h
@@ -25,7 +25,7 @@
 ** 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 qt-info@nokia.com.
+** Nokia at info@qt.nokia.com.
 **
 **************************************************************************/
 
diff --git a/share/qtcreator/qml/qmljsdebugger/include/qt_private/qdeclarativedebugservice_p.h b/share/qtcreator/qml/qmljsdebugger/include/qt_private/qdeclarativedebugservice_p.h
index e3771b735e5bcd969fea8ca9331bb479b6d66eae..3ae834a39c1b8c1a37a5a46b669462f63afa01af 100644
--- a/share/qtcreator/qml/qmljsdebugger/include/qt_private/qdeclarativedebugservice_p.h
+++ b/share/qtcreator/qml/qmljsdebugger/include/qt_private/qdeclarativedebugservice_p.h
@@ -25,7 +25,7 @@
 ** 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 qt-info@nokia.com.
+** Nokia at info@qt.nokia.com.
 **
 **************************************************************************/
 
diff --git a/share/qtcreator/qml/qmljsdebugger/include/qt_private/qdeclarativestate_p.h b/share/qtcreator/qml/qmljsdebugger/include/qt_private/qdeclarativestate_p.h
index b864fc044671a0e5226664035748b6f82ac6ef87..58e064238bd3858e332d6cbd23ee049ee953b37d 100644
--- a/share/qtcreator/qml/qmljsdebugger/include/qt_private/qdeclarativestate_p.h
+++ b/share/qtcreator/qml/qmljsdebugger/include/qt_private/qdeclarativestate_p.h
@@ -25,7 +25,7 @@
 ** 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 qt-info@nokia.com.
+** Nokia at info@qt.nokia.com.
 **
 **************************************************************************/
 
diff --git a/share/qtcreator/qml/qmljsdebugger/jsdebuggeragent.cpp b/share/qtcreator/qml/qmljsdebugger/jsdebuggeragent.cpp
index 958012d92efd47c331718d872aff935899b4891c..770f5313484154949c9521bad2fa55342b4e4ccb 100644
--- a/share/qtcreator/qml/qmljsdebugger/jsdebuggeragent.cpp
+++ b/share/qtcreator/qml/qmljsdebugger/jsdebuggeragent.cpp
@@ -25,7 +25,7 @@
 ** 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 qt-info@nokia.com.
+** Nokia at info@qt.nokia.com.
 **
 **************************************************************************/
 
diff --git a/share/qtcreator/qml/qmljsdebugger/qdeclarativeinspectorservice.cpp b/share/qtcreator/qml/qmljsdebugger/qdeclarativeinspectorservice.cpp
index b3c94ec6b0af06b2ee51c8bb34f1b694a424f79a..b55628ab225ad35a8bf9e6386cbf44e3e36f8543 100644
--- a/share/qtcreator/qml/qmljsdebugger/qdeclarativeinspectorservice.cpp
+++ b/share/qtcreator/qml/qmljsdebugger/qdeclarativeinspectorservice.cpp
@@ -25,7 +25,7 @@
 ** 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 qt-info@nokia.com.
+** Nokia at info@qt.nokia.com.
 **
 **************************************************************************/
 
diff --git a/share/qtcreator/qml/qmljsdebugger/qdeclarativeviewinspector.cpp b/share/qtcreator/qml/qmljsdebugger/qdeclarativeviewinspector.cpp
index 946d3f2d8b10389c22bec7bb75a40edce538b6a5..235a359291cb867b47d5609246eccf55d7cff4fe 100644
--- a/share/qtcreator/qml/qmljsdebugger/qdeclarativeviewinspector.cpp
+++ b/share/qtcreator/qml/qmljsdebugger/qdeclarativeviewinspector.cpp
@@ -26,7 +26,7 @@
 ** 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 qt-info@nokia.com.
+** Nokia at info@qt.nokia.com.
 **
 **************************************************************************/
 
diff --git a/share/qtcreator/qml/qmljsdebugger/qdeclarativeviewinspector_p.h b/share/qtcreator/qml/qmljsdebugger/qdeclarativeviewinspector_p.h
index ed2e007cc20af938d9d11f43ab92a9e75f6e40b3..356e39f29be6071939957aceef0e03ddecfab002 100644
--- a/share/qtcreator/qml/qmljsdebugger/qdeclarativeviewinspector_p.h
+++ b/share/qtcreator/qml/qmljsdebugger/qdeclarativeviewinspector_p.h
@@ -26,7 +26,7 @@
 ** 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 qt-info@nokia.com.
+** Nokia at info@qt.nokia.com.
 **
 **************************************************************************/
 
diff --git a/share/qtcreator/qml/qmlobserver/Info.plist.in b/share/qtcreator/qml/qmlobserver/Info.plist.in
index d8900989ae3bcb76973e6e12296c41a6d94dce3d..5ca16668c0db2b0911ff94e989eb5f63f63c5408 100644
--- a/share/qtcreator/qml/qmlobserver/Info.plist.in
+++ b/share/qtcreator/qml/qmlobserver/Info.plist.in
@@ -28,7 +28,7 @@ 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 qt-info@nokia.com.</string>
+Nokia at info@qt.nokia.com.</string>
 	<key>CFBundleIconFile</key>
 	<string>@ICON@</string>
 	<key>CFBundleIdentifier</key>
diff --git a/share/qtcreator/qml/qmlobserver/browser/Browser.qml b/share/qtcreator/qml/qmlobserver/browser/Browser.qml
index 295d049becbe6f96c9a7c48da22ed7418e8261ed..98e8374ebdff14a0da5968c5d908fccdd3c41626 100644
--- a/share/qtcreator/qml/qmlobserver/browser/Browser.qml
+++ b/share/qtcreator/qml/qmlobserver/browser/Browser.qml
@@ -25,7 +25,7 @@
 ** 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 qt-info@nokia.com.
+** Nokia at info@qt.nokia.com.
 **
 **************************************************************************/
 
diff --git a/share/qtcreator/qml/qmlobserver/deviceorientation.cpp b/share/qtcreator/qml/qmlobserver/deviceorientation.cpp
index f172869440f3cfe2d90cafc253edb6f1f3e95a68..6d2cf2be747fcac4abe9d6fcaeaef25aa7cbae14 100644
--- a/share/qtcreator/qml/qmlobserver/deviceorientation.cpp
+++ b/share/qtcreator/qml/qmlobserver/deviceorientation.cpp
@@ -25,7 +25,7 @@
 ** 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 qt-info@nokia.com.
+** Nokia at info@qt.nokia.com.
 **
 **************************************************************************/
 
diff --git a/share/qtcreator/qml/qmlobserver/deviceorientation.h b/share/qtcreator/qml/qmlobserver/deviceorientation.h
index 21ed9702b4ffe9793fc390fb2c1f202849c56659..45e5c020fb0cd0aa9ab1563cd9ae4a4a1a89c6a9 100644
--- a/share/qtcreator/qml/qmlobserver/deviceorientation.h
+++ b/share/qtcreator/qml/qmlobserver/deviceorientation.h
@@ -25,7 +25,7 @@
 ** 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 qt-info@nokia.com.
+** Nokia at info@qt.nokia.com.
 **
 **************************************************************************/
 
diff --git a/share/qtcreator/qml/qmlobserver/deviceorientation_harmattan.cpp b/share/qtcreator/qml/qmlobserver/deviceorientation_harmattan.cpp
index ecf15ac091cfff2f64c9adccb2f4d5785f2fa47d..34eb4cff958f69d6e3b8abb66c261175229d433c 100644
--- a/share/qtcreator/qml/qmlobserver/deviceorientation_harmattan.cpp
+++ b/share/qtcreator/qml/qmlobserver/deviceorientation_harmattan.cpp
@@ -25,7 +25,7 @@
 ** 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 qt-info@nokia.com.
+** Nokia at info@qt.nokia.com.
 **
 **************************************************************************/
 
diff --git a/share/qtcreator/qml/qmlobserver/deviceorientation_maemo5.cpp b/share/qtcreator/qml/qmlobserver/deviceorientation_maemo5.cpp
index 58411af93c576fafd2da990d98f4d02a37837d2d..e9241f4675e9f7063a2c8866ef5ac5031f3c559f 100644
--- a/share/qtcreator/qml/qmlobserver/deviceorientation_maemo5.cpp
+++ b/share/qtcreator/qml/qmlobserver/deviceorientation_maemo5.cpp
@@ -25,7 +25,7 @@
 ** 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 qt-info@nokia.com.
+** Nokia at info@qt.nokia.com.
 **
 **************************************************************************/
 
diff --git a/share/qtcreator/qml/qmlobserver/deviceorientation_symbian.cpp b/share/qtcreator/qml/qmlobserver/deviceorientation_symbian.cpp
index 82af51dab10d37c5bf00b578ae2e72f3cc06d962..84c3a2257b4abeeaeedd8536638bbd029de568b7 100644
--- a/share/qtcreator/qml/qmlobserver/deviceorientation_symbian.cpp
+++ b/share/qtcreator/qml/qmlobserver/deviceorientation_symbian.cpp
@@ -25,7 +25,7 @@
 ** 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 qt-info@nokia.com.
+** Nokia at info@qt.nokia.com.
 **
 **************************************************************************/
 
diff --git a/share/qtcreator/qml/qmlobserver/loggerwidget.cpp b/share/qtcreator/qml/qmlobserver/loggerwidget.cpp
index 9718cad81d2e96bebaaaeb72ad6295998954aa3f..f924949a3bfae8fc21543c6e26084b17ce5ff53f 100644
--- a/share/qtcreator/qml/qmlobserver/loggerwidget.cpp
+++ b/share/qtcreator/qml/qmlobserver/loggerwidget.cpp
@@ -25,7 +25,7 @@
 ** 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 qt-info@nokia.com.
+** Nokia at info@qt.nokia.com.
 **
 **************************************************************************/
 
diff --git a/share/qtcreator/qml/qmlobserver/loggerwidget.h b/share/qtcreator/qml/qmlobserver/loggerwidget.h
index 382a41972f9f857384d5361c93a7318a82e3ad05..c0a662413e99008421399b5f3656a617fccbdaee 100644
--- a/share/qtcreator/qml/qmlobserver/loggerwidget.h
+++ b/share/qtcreator/qml/qmlobserver/loggerwidget.h
@@ -25,7 +25,7 @@
 ** 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 qt-info@nokia.com.
+** Nokia at info@qt.nokia.com.
 **
 **************************************************************************/
 
diff --git a/share/qtcreator/qml/qmlobserver/main.cpp b/share/qtcreator/qml/qmlobserver/main.cpp
index d678e816c39c88ee2b5381e8cae1fdc1d4303418..e8291d2f5d55aeaa13340edb41ceebee21a60199 100644
--- a/share/qtcreator/qml/qmlobserver/main.cpp
+++ b/share/qtcreator/qml/qmlobserver/main.cpp
@@ -25,7 +25,7 @@
 ** 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 qt-info@nokia.com.
+** Nokia at info@qt.nokia.com.
 **
 **************************************************************************/
 
diff --git a/share/qtcreator/qml/qmlobserver/proxysettings.cpp b/share/qtcreator/qml/qmlobserver/proxysettings.cpp
index 67ffd912c38a9385253673c4d16b29205d688cbc..2a94047c2957c6307dbe6068f2c07dba9537bfdc 100644
--- a/share/qtcreator/qml/qmlobserver/proxysettings.cpp
+++ b/share/qtcreator/qml/qmlobserver/proxysettings.cpp
@@ -25,7 +25,7 @@
 ** 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 qt-info@nokia.com.
+** Nokia at info@qt.nokia.com.
 **
 **************************************************************************/
 
diff --git a/share/qtcreator/qml/qmlobserver/proxysettings.h b/share/qtcreator/qml/qmlobserver/proxysettings.h
index fbbc945bcee6c70db284ef4d74fac7ad06c0bd94..462f06d8e1db5bb2e7949e4a305877d9d3104ef1 100644
--- a/share/qtcreator/qml/qmlobserver/proxysettings.h
+++ b/share/qtcreator/qml/qmlobserver/proxysettings.h
@@ -25,7 +25,7 @@
 ** 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 qt-info@nokia.com.
+** Nokia at info@qt.nokia.com.
 **
 **************************************************************************/
 
diff --git a/share/qtcreator/qml/qmlobserver/qdeclarativetester.cpp b/share/qtcreator/qml/qmlobserver/qdeclarativetester.cpp
index aeb57d2a22ae5b3e26d02b312dfad44c046475e8..b51563d844fe4a6f2bc74d2f6428aab92f55447e 100644
--- a/share/qtcreator/qml/qmlobserver/qdeclarativetester.cpp
+++ b/share/qtcreator/qml/qmlobserver/qdeclarativetester.cpp
@@ -25,7 +25,7 @@
 ** 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 qt-info@nokia.com.
+** Nokia at info@qt.nokia.com.
 **
 **************************************************************************/
 
diff --git a/share/qtcreator/qml/qmlobserver/qdeclarativetester.h b/share/qtcreator/qml/qmlobserver/qdeclarativetester.h
index d302fe749f550e4576424b433cbf9e1e1efe1533..399b031c9b05c5ae962b8106bf9f653b59f39257 100644
--- a/share/qtcreator/qml/qmlobserver/qdeclarativetester.h
+++ b/share/qtcreator/qml/qmlobserver/qdeclarativetester.h
@@ -25,7 +25,7 @@
 ** 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 qt-info@nokia.com.
+** Nokia at info@qt.nokia.com.
 **
 **************************************************************************/
 
diff --git a/share/qtcreator/qml/qmlobserver/qmlruntime.cpp b/share/qtcreator/qml/qmlobserver/qmlruntime.cpp
index ae2a34a578522cc26cc6592318f4de853d97db00..a676a6fd14689adadd3b5052b0565b23d0f32bd0 100644
--- a/share/qtcreator/qml/qmlobserver/qmlruntime.cpp
+++ b/share/qtcreator/qml/qmlobserver/qmlruntime.cpp
@@ -25,7 +25,7 @@
 ** 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 qt-info@nokia.com.
+** Nokia at info@qt.nokia.com.
 **
 **************************************************************************/
 
diff --git a/share/qtcreator/qml/qmlobserver/qmlruntime.h b/share/qtcreator/qml/qmlobserver/qmlruntime.h
index 24e9ce76cacf7005030f2fd17140853495d2113b..02f8bd6a96f2564c23df2f1343f9aca70ed09d48 100644
--- a/share/qtcreator/qml/qmlobserver/qmlruntime.h
+++ b/share/qtcreator/qml/qmlobserver/qmlruntime.h
@@ -25,7 +25,7 @@
 ** 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 qt-info@nokia.com.
+** Nokia at info@qt.nokia.com.
 **
 **************************************************************************/
 
diff --git a/share/qtcreator/qml/qmlobserver/startup/Logo.qml b/share/qtcreator/qml/qmlobserver/startup/Logo.qml
index 99944581b93b9e076757742b0d03d4046c00f15e..a82d0b86f98691939d2bc2be7ea0d9d5e74d4720 100644
--- a/share/qtcreator/qml/qmlobserver/startup/Logo.qml
+++ b/share/qtcreator/qml/qmlobserver/startup/Logo.qml
@@ -25,7 +25,7 @@
 ** 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 qt-info@nokia.com.
+** Nokia at info@qt.nokia.com.
 **
 **************************************************************************/
 
diff --git a/share/qtcreator/qml/qmlobserver/startup/startup.qml b/share/qtcreator/qml/qmlobserver/startup/startup.qml
index b3ba87c66adee081eae18f47f2c68063953cbc60..ab4a8311a1b9a35c032000912a212a2b3a268d41 100644
--- a/share/qtcreator/qml/qmlobserver/startup/startup.qml
+++ b/share/qtcreator/qml/qmlobserver/startup/startup.qml
@@ -25,7 +25,7 @@
 ** 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 qt-info@nokia.com.
+** Nokia at info@qt.nokia.com.
 **
 **************************************************************************/
 
diff --git a/share/qtcreator/qml/qmlobserver/texteditautoresizer_maemo5.h b/share/qtcreator/qml/qmlobserver/texteditautoresizer_maemo5.h
index d492f5d758c2ad71c2c61ef9b975e2be102a8248..cf51ea68fbcf90c5b7b7ff80d5a97cd9395cc23d 100644
--- a/share/qtcreator/qml/qmlobserver/texteditautoresizer_maemo5.h
+++ b/share/qtcreator/qml/qmlobserver/texteditautoresizer_maemo5.h
@@ -25,7 +25,7 @@
 ** 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 qt-info@nokia.com.
+** Nokia at info@qt.nokia.com.
 **
 **************************************************************************/
 
diff --git a/share/qtcreator/qml/qmlpuppet/commands/changeidscommand.cpp b/share/qtcreator/qml/qmlpuppet/commands/changeidscommand.cpp
index c6c4658e34d9fcabdb240b9c0b5a47c54fea8d31..525f9b1f5aa47c9be053c1bb1b8f95ee4a43ca90 100644
--- a/share/qtcreator/qml/qmlpuppet/commands/changeidscommand.cpp
+++ b/share/qtcreator/qml/qmlpuppet/commands/changeidscommand.cpp
@@ -2,32 +2,31 @@
 **
 ** This file is part of Qt Creator
 **
-** Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Copyright (c) 2011 Nokia Corporation and/or its subsidiary(-ies).
 **
-** Contact: Nokia Corporation (qt-info@nokia.com)
+** Contact: Nokia Corporation (info@qt.nokia.com)
 **
-** No Commercial Usage
-**
-** This file contains pre-release code and may not be distributed.
-** You may use this file in accordance with the terms and conditions
-** contained in the Technology Preview License Agreement accompanying
-** this package.
 **
 ** GNU Lesser General Public License Usage
 **
-** Alternatively, 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.
+** 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
+** 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 qt-info@nokia.com.
+** Nokia at info@qt.nokia.com.
 **
 **************************************************************************/
 
diff --git a/share/qtcreator/qml/qmlpuppet/commands/changeidscommand.h b/share/qtcreator/qml/qmlpuppet/commands/changeidscommand.h
index 47e6f927f6ebf6c7852b602dff88b7bbe9df144c..dd254539da5cc4e8d8ff32c455923411bc3c0d64 100644
--- a/share/qtcreator/qml/qmlpuppet/commands/changeidscommand.h
+++ b/share/qtcreator/qml/qmlpuppet/commands/changeidscommand.h
@@ -2,32 +2,31 @@
 **
 ** This file is part of Qt Creator
 **
-** Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Copyright (c) 2011 Nokia Corporation and/or its subsidiary(-ies).
 **
-** Contact: Nokia Corporation (qt-info@nokia.com)
+** Contact: Nokia Corporation (info@qt.nokia.com)
 **
-** No Commercial Usage
-**
-** This file contains pre-release code and may not be distributed.
-** You may use this file in accordance with the terms and conditions
-** contained in the Technology Preview License Agreement accompanying
-** this package.
 **
 ** GNU Lesser General Public License Usage
 **
-** Alternatively, 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.
+** 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
+** 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 qt-info@nokia.com.
+** Nokia at info@qt.nokia.com.
 **
 **************************************************************************/
 
diff --git a/share/qtcreator/qml/qmlpuppet/commands/changenodesourcecommand.cpp b/share/qtcreator/qml/qmlpuppet/commands/changenodesourcecommand.cpp
index 65b427c21e746b7a7bc23c003a8afe421222505c..4655c5e68cc021538886875ca59fd2c0fe2fc2e3 100644
--- a/share/qtcreator/qml/qmlpuppet/commands/changenodesourcecommand.cpp
+++ b/share/qtcreator/qml/qmlpuppet/commands/changenodesourcecommand.cpp
@@ -26,7 +26,7 @@
 ** 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 qt-info@nokia.com.
+** Nokia at info@qt.nokia.com.
 **
 **************************************************************************/
 
diff --git a/share/qtcreator/qml/qmlpuppet/commands/changenodesourcecommand.h b/share/qtcreator/qml/qmlpuppet/commands/changenodesourcecommand.h
index 9a04e4811f673360f82c578f130ea3b2e8537d4c..920cc55452fd951c0c2e76814775acaa4dc7f1ef 100644
--- a/share/qtcreator/qml/qmlpuppet/commands/changenodesourcecommand.h
+++ b/share/qtcreator/qml/qmlpuppet/commands/changenodesourcecommand.h
@@ -26,7 +26,7 @@
 ** 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 qt-info@nokia.com.
+** Nokia at info@qt.nokia.com.
 **
 **************************************************************************/
 
diff --git a/share/qtcreator/qml/qmlpuppet/commands/childrenchangedcommand.cpp b/share/qtcreator/qml/qmlpuppet/commands/childrenchangedcommand.cpp
index 7559998c815159b1bd549d4e3ac72001b498fc5f..502778d3f60d1cf491c7cc3a58fb238bbd80cfeb 100644
--- a/share/qtcreator/qml/qmlpuppet/commands/childrenchangedcommand.cpp
+++ b/share/qtcreator/qml/qmlpuppet/commands/childrenchangedcommand.cpp
@@ -39,9 +39,10 @@ ChildrenChangedCommand::ChildrenChangedCommand()
 {
 }
 
-ChildrenChangedCommand::ChildrenChangedCommand(qint32 parentInstanceId, const QVector<qint32> &children)
+ChildrenChangedCommand::ChildrenChangedCommand(qint32 parentInstanceId, const QVector<qint32> &children, const QVector<InformationContainer> &informationVector)
     : m_parentInstanceId(parentInstanceId),
-      m_childrenVector(children)
+      m_childrenVector(children),
+      m_informationVector(informationVector)
 {
 }
 
@@ -55,11 +56,16 @@ qint32 ChildrenChangedCommand::parentInstanceId() const
     return m_parentInstanceId;
 }
 
+QVector<InformationContainer> ChildrenChangedCommand::informations() const
+{
+    return m_informationVector;
+}
+
 QDataStream &operator<<(QDataStream &out, const ChildrenChangedCommand &command)
 {
     out << command.parentInstanceId();
     out << command.childrenInstances();
-
+    out << command.informations();
     return out;
 }
 
@@ -67,6 +73,7 @@ QDataStream &operator>>(QDataStream &in, ChildrenChangedCommand &command)
 {
     in >> command.m_parentInstanceId;
     in >> command.m_childrenVector;
+    in >> command.m_informationVector;
 
     return in;
 }
diff --git a/share/qtcreator/qml/qmlpuppet/commands/childrenchangedcommand.h b/share/qtcreator/qml/qmlpuppet/commands/childrenchangedcommand.h
index 8441c852a12132e73e9328da49640ee4fd4786e5..e89d88a4a07e86490968641e465eed418d10dcff 100644
--- a/share/qtcreator/qml/qmlpuppet/commands/childrenchangedcommand.h
+++ b/share/qtcreator/qml/qmlpuppet/commands/childrenchangedcommand.h
@@ -35,7 +35,7 @@
 
 #include <QMetaType>
 #include <QVector>
-
+#include "informationcontainer.h"
 
 namespace QmlDesigner {
 
@@ -44,14 +44,16 @@ class ChildrenChangedCommand
     friend QDataStream &operator>>(QDataStream &in, ChildrenChangedCommand &command);
 public:
     ChildrenChangedCommand();
-    ChildrenChangedCommand(qint32 parentInstanceId, const QVector<qint32> &childrenInstances);
+    ChildrenChangedCommand(qint32 parentInstanceId, const QVector<qint32> &childrenInstancesconst, const QVector<InformationContainer> &informationVector);
 
     QVector<qint32> childrenInstances() const;
     qint32 parentInstanceId() const;
+    QVector<InformationContainer> informations() const;
 
 private:
     qint32 m_parentInstanceId;
     QVector<qint32> m_childrenVector;
+    QVector<InformationContainer> m_informationVector;
 };
 
 QDataStream &operator<<(QDataStream &out, const ChildrenChangedCommand &command);
diff --git a/share/qtcreator/qml/qmlpuppet/commands/commands.pri b/share/qtcreator/qml/qmlpuppet/commands/commands.pri
index c6c9282d1b802dac811b649a1ed8922bfbb8860c..5ae623cf3f2781707c8216eb8384dcefc8c2477c 100644
--- a/share/qtcreator/qml/qmlpuppet/commands/commands.pri
+++ b/share/qtcreator/qml/qmlpuppet/commands/commands.pri
@@ -1,6 +1,7 @@
 INCLUDEPATH += $$PWD/
 
 HEADERS += $$PWD/synchronizecommand.h
+HEADERS += $$PWD/tokencommand.h
 HEADERS += $$PWD/componentcompletedcommand.h
 HEADERS += $$PWD/completecomponentcommand.h
 HEADERS += $$PWD/statepreviewimagechangedcommand.h
@@ -24,6 +25,7 @@ HEADERS += $$PWD/changeauxiliarycommand.h
 
 
 SOURCES += $$PWD/synchronizecommand.cpp
+SOURCES += $$PWD/tokencommand.cpp
 SOURCES += $$PWD/componentcompletedcommand.cpp
 SOURCES += $$PWD/completecomponentcommand.cpp
 SOURCES += $$PWD/statepreviewimagechangedcommand.cpp
diff --git a/share/qtcreator/qml/qmlpuppet/commands/tokencommand.cpp b/share/qtcreator/qml/qmlpuppet/commands/tokencommand.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..bb8279a9711d3c9cf9f87d7b34173db69adf33ac
--- /dev/null
+++ b/share/qtcreator/qml/qmlpuppet/commands/tokencommand.cpp
@@ -0,0 +1,114 @@
+/**************************************************************************
+
+**
+
+**  This  file  is  part  of  Qt  Creator
+
+**
+
+**  Copyright  (c)  2011  Nokia  Corporation  and/or  its  subsidiary(-ies).
+
+**
+
+**  Contact:  Nokia  Corporation  (qt-info@nokia.com)
+
+**
+
+**  No  Commercial  Usage
+
+**
+
+**  This  file  contains  pre-release  code  and  may  not  be  distributed.
+
+**  You  may  use  this  file  in  accordance  with  the  terms  and  conditions
+
+**  contained  in  the  Technology  Preview  License  Agreement  accompanying
+
+**  this  package.
+
+**
+
+**  GNU  Lesser  General  Public  License  Usage
+
+**
+
+**  Alternatively,  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.
+
+**
+
+**  If  you  have  questions  regarding  the  use  of  this  file,  please  contact
+
+**  Nokia  at  qt-info@nokia.com.
+
+**
+
+**************************************************************************/
+
+#include "tokencommand.h"
+
+namespace QmlDesigner {
+
+TokenCommand::TokenCommand()
+    : m_tokenNumber(-1)
+{
+}
+
+TokenCommand::TokenCommand(const QString &tokenName, qint32 tokenNumber, const QVector<qint32> &instanceIdVector)
+    : m_tokenName(tokenName),
+      m_tokenNumber(tokenNumber),
+      m_instanceIdVector(instanceIdVector)
+{
+}
+
+QString TokenCommand::tokenName() const
+{
+    return m_tokenName;
+}
+
+qint32 TokenCommand::tokenNumber() const
+{
+    return m_tokenNumber;
+}
+
+QVector<qint32> TokenCommand::instances() const
+{
+    return m_instanceIdVector;
+}
+
+QDataStream &operator<<(QDataStream &out, const TokenCommand &command)
+{
+    out << command.tokenName();
+    out << command.tokenNumber();
+    out << command.instances();
+    return out;
+}
+
+QDataStream &operator>>(QDataStream &in, TokenCommand &command)
+{
+    in >> command.m_tokenName;
+    in >> command.m_tokenNumber;
+    in >> command.m_instanceIdVector;
+
+    return in;
+}
+
+
+} // namespace QmlDesigner
diff --git a/share/qtcreator/qml/qmlpuppet/commands/tokencommand.h b/share/qtcreator/qml/qmlpuppet/commands/tokencommand.h
new file mode 100644
index 0000000000000000000000000000000000000000..ef4325a8d71b373660795ca46533917baaf26785
--- /dev/null
+++ b/share/qtcreator/qml/qmlpuppet/commands/tokencommand.h
@@ -0,0 +1,100 @@
+/**************************************************************************
+
+**
+
+**  This  file  is  part  of  Qt  Creator
+
+**
+
+**  Copyright  (c)  2011  Nokia  Corporation  and/or  its  subsidiary(-ies).
+
+**
+
+**  Contact:  Nokia  Corporation  (qt-info@nokia.com)
+
+**
+
+**  No  Commercial  Usage
+
+**
+
+**  This  file  contains  pre-release  code  and  may  not  be  distributed.
+
+**  You  may  use  this  file  in  accordance  with  the  terms  and  conditions
+
+**  contained  in  the  Technology  Preview  License  Agreement  accompanying
+
+**  this  package.
+
+**
+
+**  GNU  Lesser  General  Public  License  Usage
+
+**
+
+**  Alternatively,  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.
+
+**
+
+**  If  you  have  questions  regarding  the  use  of  this  file,  please  contact
+
+**  Nokia  at  qt-info@nokia.com.
+
+**
+
+**************************************************************************/
+
+#ifndef QMLDESIGNER_TOKENCOMMAND_H
+#define QMLDESIGNER_TOKENCOMMAND_H
+
+
+#include <QMetaType>
+#include <QVector>
+
+namespace QmlDesigner {
+
+class TokenCommand
+{
+    friend QDataStream &operator>>(QDataStream &in, TokenCommand &command);
+
+public:
+    TokenCommand();
+    TokenCommand(const QString &tokenName, qint32 tokenNumber, const QVector<qint32> &instances);
+
+    QString tokenName() const;
+    qint32 tokenNumber() const;
+    QVector<qint32> instances() const;
+
+private:
+    QString m_tokenName;
+    qint32 m_tokenNumber;
+    QVector<qint32> m_instanceIdVector;
+};
+
+QDataStream &operator<<(QDataStream &out, const TokenCommand &command);
+QDataStream &operator>>(QDataStream &in, TokenCommand &command);
+
+} // namespace QmlDesigner
+
+Q_DECLARE_METATYPE(QmlDesigner::TokenCommand)
+
+
+#endif // QMLDESIGNER_TOKENCOMMAND_H
diff --git a/share/qtcreator/qml/qmlpuppet/instances/nodeinstanceclientproxy.cpp b/share/qtcreator/qml/qmlpuppet/instances/nodeinstanceclientproxy.cpp
index ad10cdc57ca0a4b449c5f386115a6d260d760e4e..bdefc54d91c34ab75b5c935850d61619c54faf29 100644
--- a/share/qtcreator/qml/qmlpuppet/instances/nodeinstanceclientproxy.cpp
+++ b/share/qtcreator/qml/qmlpuppet/instances/nodeinstanceclientproxy.cpp
@@ -57,6 +57,7 @@
 #include "changestatecommand.h"
 #include "completecomponentcommand.h"
 #include "synchronizecommand.h"
+#include "tokencommand.h"
 
 #include "informationchangedcommand.h"
 #include "pixmapchangedcommand.h"
@@ -133,6 +134,11 @@ void NodeInstanceClientProxy::componentCompleted(const ComponentCompletedCommand
     writeCommand(QVariant::fromValue(command));
 }
 
+void NodeInstanceClientProxy::token(const TokenCommand &command)
+{
+    writeCommand(QVariant::fromValue(command));
+}
+
 void NodeInstanceClientProxy::flush()
 {
 }
@@ -267,6 +273,10 @@ void NodeInstanceClientProxy::changeNodeSource(const ChangeNodeSourceCommand &co
 {
     nodeInstanceServer()->changeNodeSource(command);
 }
+void NodeInstanceClientProxy::redirectToken(const TokenCommand &command)
+{
+    nodeInstanceServer()->token(command);
+}
 
 void NodeInstanceClientProxy::dispatchCommand(const QVariant &command)
 {
@@ -285,6 +295,7 @@ void NodeInstanceClientProxy::dispatchCommand(const QVariant &command)
     static const int completeComponentCommandType = QMetaType::type("CompleteComponentCommand");
     static const int synchronizeCommandType = QMetaType::type("SynchronizeCommand");
     static const int changeNodeSourceCommandType = QMetaType::type("ChangeNodeSourceCommand");
+    static const int tokenCommandType = QMetaType::type("TokenCommand");
 
     if (command.userType() ==  createInstancesCommandType) {
         createInstances(command.value<CreateInstancesCommand>());
@@ -314,6 +325,8 @@ void NodeInstanceClientProxy::dispatchCommand(const QVariant &command)
         completeComponent(command.value<CompleteComponentCommand>());
     else if (command.userType() ==  changeNodeSourceCommandType)
         changeNodeSource(command.value<ChangeNodeSourceCommand>());
+    else if (command.userType() ==  tokenCommandType)
+        redirectToken(command.value<TokenCommand>());
     else if (command.userType() == synchronizeCommandType) {
         SynchronizeCommand synchronizeCommand = command.value<SynchronizeCommand>();
         m_synchronizeId = synchronizeCommand.synchronizeId();
diff --git a/share/qtcreator/qml/qmlpuppet/instances/nodeinstanceclientproxy.h b/share/qtcreator/qml/qmlpuppet/instances/nodeinstanceclientproxy.h
index 0ee07bf354a113fd12385466a61999cd8dd400d8..ba429123f0a9f6a7f0484413e0af08ef878b6790 100644
--- a/share/qtcreator/qml/qmlpuppet/instances/nodeinstanceclientproxy.h
+++ b/share/qtcreator/qml/qmlpuppet/instances/nodeinstanceclientproxy.h
@@ -75,6 +75,7 @@ public:
     void childrenChanged(const ChildrenChangedCommand &command);
     void statePreviewImagesChanged(const StatePreviewImageChangedCommand &command);
     void componentCompleted(const ComponentCompletedCommand &command);    
+    void token(const TokenCommand &command);
 
     void flush();
     void synchronizeWithClientProcess();
@@ -101,6 +102,7 @@ protected:
     void changeState(const ChangeStateCommand &command);
     void completeComponent(const CompleteComponentCommand &command);
     void changeNodeSource(const ChangeNodeSourceCommand &command);
+    void redirectToken(const TokenCommand &command);
 
 private slots:
     void readDataStream();
diff --git a/share/qtcreator/qml/qmlpuppet/instances/nodeinstanceserver.cpp b/share/qtcreator/qml/qmlpuppet/instances/nodeinstanceserver.cpp
index 7c5e49fd71ac0f4295e5acc65496d0416bcd4964..5acbc7fcf8e32c356b0b03a86ac7ba840bb1e088 100644
--- a/share/qtcreator/qml/qmlpuppet/instances/nodeinstanceserver.cpp
+++ b/share/qtcreator/qml/qmlpuppet/instances/nodeinstanceserver.cpp
@@ -74,6 +74,7 @@
 #include "componentcompletedcommand.h"
 #include "createscenecommand.h"
 #include "changenodesourcecommand.h"
+#include "tokencommand.h"
 
 #include "dummycontextobject.h"
 
@@ -338,6 +339,11 @@ void NodeInstanceServer::changeNodeSource(const ChangeNodeSourceCommand &command
     startRenderTimer();
 }
 
+void NodeInstanceServer::token(const TokenCommand &/*command*/)
+{
+
+}
+
 void NodeInstanceServer::setupImports(const QVector<AddImportContainer> &containerVector)
 {
     foreach (const AddImportContainer &container, containerVector) {
@@ -812,17 +818,7 @@ NodeInstanceClientInterface *NodeInstanceServer::nodeInstanceClient() const
     return m_nodeInstanceClient;
 }
 
-ChildrenChangedCommand NodeInstanceServer::createChildrenChangedCommand(const ServerNodeInstance &parentInstance, const QList<ServerNodeInstance> &instanceList) const
-{
-    QVector<qint32> instanceVector;
-
-    foreach (const ServerNodeInstance &instance, instanceList)
-        instanceVector.append(instance.instanceId());
-
-    return ChildrenChangedCommand(parentInstance.instanceId(), instanceVector);
-}
-
-InformationChangedCommand NodeInstanceServer::createAllInformationChangedCommand(const QList<ServerNodeInstance> &instanceList, bool initial) const
+static QVector<InformationContainer> createInformationVector(const QList<ServerNodeInstance> &instanceList, bool initial)
 {
     QVector<InformationContainer> informationVector;
 
@@ -894,7 +890,23 @@ InformationChangedCommand NodeInstanceServer::createAllInformationChangedCommand
 
     }
 
-    return InformationChangedCommand(informationVector);
+    return informationVector;
+}
+
+
+ChildrenChangedCommand NodeInstanceServer::createChildrenChangedCommand(const ServerNodeInstance &parentInstance, const QList<ServerNodeInstance> &instanceList) const
+{
+    QVector<qint32> instanceVector;
+
+    foreach (const ServerNodeInstance &instance, instanceList)
+        instanceVector.append(instance.instanceId());
+
+    return ChildrenChangedCommand(parentInstance.instanceId(), instanceVector, createInformationVector(instanceList, false));
+}
+
+InformationChangedCommand NodeInstanceServer::createAllInformationChangedCommand(const QList<ServerNodeInstance> &instanceList, bool initial) const
+{
+    return InformationChangedCommand(createInformationVector(instanceList, initial));
 }
 
 static bool supportedVariantType(QVariant::Type type)
diff --git a/share/qtcreator/qml/qmlpuppet/instances/nodeinstanceserver.h b/share/qtcreator/qml/qmlpuppet/instances/nodeinstanceserver.h
index bd45ec484923e24db2363f62db329397ac231fb3..ea24316fda11338d0362463485cfb3bfdaa23bdd 100644
--- a/share/qtcreator/qml/qmlpuppet/instances/nodeinstanceserver.h
+++ b/share/qtcreator/qml/qmlpuppet/instances/nodeinstanceserver.h
@@ -92,6 +92,7 @@ public:
     void changeState(const ChangeStateCommand &command);
     void completeComponent(const CompleteComponentCommand &command);
     void changeNodeSource(const ChangeNodeSourceCommand &command);
+    void token(const TokenCommand &command);
 
     ServerNodeInstance instanceForId(qint32 id) const;
     bool hasInstanceForId(qint32 id) const;
@@ -152,7 +153,6 @@ protected:
 
     virtual void collectItemChangesAndSendChangeCommands() = 0;
 
-
     ValuesChangedCommand createValuesChangedCommand(const QList<ServerNodeInstance> &instanceList) const;
     ValuesChangedCommand createValuesChangedCommand(const QVector<InstancePropertyPair> &propertyList) const;
     PixmapChangedCommand createPixmapChangedCommand(const QList<ServerNodeInstance> &instanceList) const;
diff --git a/share/qtcreator/qml/qmlpuppet/interfaces/nodeinstanceclientinterface.h b/share/qtcreator/qml/qmlpuppet/interfaces/nodeinstanceclientinterface.h
index 77bf3355efcaf8a4d2143034f13e5cf2ae568e09..46f45e794e69b9d00aeae9c98220cce65a30a9d9 100644
--- a/share/qtcreator/qml/qmlpuppet/interfaces/nodeinstanceclientinterface.h
+++ b/share/qtcreator/qml/qmlpuppet/interfaces/nodeinstanceclientinterface.h
@@ -43,6 +43,7 @@ class InformationChangedCommand;
 class ChildrenChangedCommand;
 class StatePreviewImageChangedCommand;
 class ComponentCompletedCommand;
+class TokenCommand;
 
 class NodeInstanceClientInterface
 {
@@ -53,6 +54,7 @@ public:
     virtual void childrenChanged(const ChildrenChangedCommand &command) = 0;
     virtual void statePreviewImagesChanged(const StatePreviewImageChangedCommand &command) = 0;
     virtual void componentCompleted(const ComponentCompletedCommand &command) = 0;
+    virtual void token(const TokenCommand &command) = 0;
 
     virtual void flush() {};
     virtual void synchronizeWithClientProcess() {}
diff --git a/share/qtcreator/qml/qmlpuppet/interfaces/nodeinstanceserverinterface.cpp b/share/qtcreator/qml/qmlpuppet/interfaces/nodeinstanceserverinterface.cpp
index ce2bb0104275f4cb5b7af01b443cd4ae7bb472df..c047308ab5684bb96cded25c8585b94a7001cd19 100644
--- a/share/qtcreator/qml/qmlpuppet/interfaces/nodeinstanceserverinterface.cpp
+++ b/share/qtcreator/qml/qmlpuppet/interfaces/nodeinstanceserverinterface.cpp
@@ -61,6 +61,7 @@
 #include "statepreviewimagechangedcommand.h"
 #include "componentcompletedcommand.h"
 #include "synchronizecommand.h"
+#include "tokencommand.h"
 
 
 namespace QmlDesigner {
@@ -169,6 +170,9 @@ void NodeInstanceServerInterface::registerCommands()
 
     qRegisterMetaType<ChangeAuxiliaryCommand>("ChangeAuxiliaryCommand");
     qRegisterMetaTypeStreamOperators<ChangeAuxiliaryCommand>("ChangeAuxiliaryCommand");
+
+    qRegisterMetaType<TokenCommand>("TokenCommand");
+    qRegisterMetaTypeStreamOperators<TokenCommand>("TokenCommand");
 }
 
 }
diff --git a/share/qtcreator/qml/qmlpuppet/interfaces/nodeinstanceserverinterface.h b/share/qtcreator/qml/qmlpuppet/interfaces/nodeinstanceserverinterface.h
index 98d1fe38656fd50e98511e9aee53603a0922495c..3ba659746008ad5103a7028168cfe91430504267 100644
--- a/share/qtcreator/qml/qmlpuppet/interfaces/nodeinstanceserverinterface.h
+++ b/share/qtcreator/qml/qmlpuppet/interfaces/nodeinstanceserverinterface.h
@@ -55,6 +55,7 @@ class RemovePropertiesCommand;
 class ChangeStateCommand;
 class CompleteComponentCommand;
 class ChangeNodeSourceCommand;
+class TokenCommand;
 
 class NodeInstanceServerInterface : public QObject
 {
@@ -81,6 +82,7 @@ public:
     virtual void changeState(const ChangeStateCommand &command) = 0;
     virtual void completeComponent(const CompleteComponentCommand &command) = 0;
     virtual void changeNodeSource(const ChangeNodeSourceCommand &command) = 0;
+    virtual void token(const TokenCommand &command) = 0;
 
     static void registerCommands();
 };
diff --git a/share/qtcreator/qml/qmlpuppet/qml2puppet/instances/qt5informationnodeinstanceserver.cpp b/share/qtcreator/qml/qmlpuppet/qml2puppet/instances/qt5informationnodeinstanceserver.cpp
index 1e8cd6bdf3c9225a7e8a28cf8d3018d81c9d7be0..c0dd079a9fc1f913bddf0517fab7e4137849f211 100644
--- a/share/qtcreator/qml/qmlpuppet/qml2puppet/instances/qt5informationnodeinstanceserver.cpp
+++ b/share/qtcreator/qml/qmlpuppet/qml2puppet/instances/qt5informationnodeinstanceserver.cpp
@@ -1,65 +1,33 @@
 /**************************************************************************
-
 **
-
-**  This  file  is  part  of  Qt  Creator
-
+** This file is part of Qt Creator
 **
-
-**  Copyright  (c)  2011  Nokia  Corporation  and/or  its  subsidiary(-ies).
-
+** Copyright (c) 2011 Nokia Corporation and/or its subsidiary(-ies).
 **
-
-**  Contact:  Nokia  Corporation  (qt-info@nokia.com)
-
+** Contact: Nokia Corporation (info@qt.nokia.com)
 **
-
-**  No  Commercial  Usage
-
 **
-
-**  This  file  contains  pre-release  code  and  may  not  be  distributed.
-
-**  You  may  use  this  file  in  accordance  with  the  terms  and  conditions
-
-**  contained  in  the  Technology  Preview  License  Agreement  accompanying
-
-**  this  package.
-
+** GNU Lesser General Public License Usage
 **
-
-**  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.
 **
-
-**  Alternatively,  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.
 **
-
-**  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
 **
-
-**  If  you  have  questions  regarding  the  use  of  this  file,  please  contact
-
-**  Nokia  at  qt-info@nokia.com.
-
+** 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 "qt5informationnodeinstanceserver.h"
@@ -92,6 +60,7 @@
 #include "completecomponentcommand.h"
 #include "componentcompletedcommand.h"
 #include "createscenecommand.h"
+#include "tokencommand.h"
 
 #include "dummycontextobject.h"
 
@@ -104,6 +73,20 @@ Qt5InformationNodeInstanceServer::Qt5InformationNodeInstanceServer(NodeInstanceC
 {
 }
 
+void Qt5InformationNodeInstanceServer::sendTokenBack()
+{
+    foreach (const TokenCommand &command, m_tokenList)
+        nodeInstanceClient()->token(command);
+
+    m_tokenList.clear();
+}
+
+void Qt5InformationNodeInstanceServer::token(const TokenCommand &command)
+{
+    m_tokenList.append(command);
+    startRenderTimer();
+}
+
 void Qt5InformationNodeInstanceServer::collectItemChangesAndSendChangeCommands()
 {
     static bool inFunction = false;
@@ -157,6 +140,8 @@ void Qt5InformationNodeInstanceServer::collectItemChangesAndSendChangeCommands()
             resetAllItems();
             clearChangedPropertyList();
 
+            sendTokenBack();
+
             if (!informationChangedInstanceSet.isEmpty())
                 nodeInstanceClient()->informationChanged(createAllInformationChangedCommand(informationChangedInstanceSet.toList()));
 
diff --git a/share/qtcreator/qml/qmlpuppet/qml2puppet/instances/qt5informationnodeinstanceserver.h b/share/qtcreator/qml/qmlpuppet/qml2puppet/instances/qt5informationnodeinstanceserver.h
index c0c078fc475b211f808efc688d3111c3680f4666..7e969428d6a0204f32af7edc0d0b8fafd5b29673 100644
--- a/share/qtcreator/qml/qmlpuppet/qml2puppet/instances/qt5informationnodeinstanceserver.h
+++ b/share/qtcreator/qml/qmlpuppet/qml2puppet/instances/qt5informationnodeinstanceserver.h
@@ -1,71 +1,40 @@
 /**************************************************************************
-
 **
-
-**  This  file  is  part  of  Qt  Creator
-
+** This file is part of Qt Creator
 **
-
-**  Copyright  (c)  2011  Nokia  Corporation  and/or  its  subsidiary(-ies).
-
+** Copyright (c) 2011 Nokia Corporation and/or its subsidiary(-ies).
 **
-
-**  Contact:  Nokia  Corporation  (qt-info@nokia.com)
-
+** Contact: Nokia Corporation (info@qt.nokia.com)
 **
-
-**  No  Commercial  Usage
-
 **
-
-**  This  file  contains  pre-release  code  and  may  not  be  distributed.
-
-**  You  may  use  this  file  in  accordance  with  the  terms  and  conditions
-
-**  contained  in  the  Technology  Preview  License  Agreement  accompanying
-
-**  this  package.
-
+** GNU Lesser General Public License Usage
 **
-
-**  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.
 **
-
-**  Alternatively,  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.
 **
-
-**  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
 **
-
-**  If  you  have  questions  regarding  the  use  of  this  file,  please  contact
-
-**  Nokia  at  qt-info@nokia.com.
-
+** 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 QMLDESIGNER_QT5INFORMATIONNODEINSTANCESERVER_H
 #define QMLDESIGNER_QT5INFORMATIONNODEINSTANCESERVER_H
 
 #include "qt5nodeinstanceserver.h"
+#include "tokencommand.h"
 
 namespace QmlDesigner {
 
@@ -79,14 +48,18 @@ public:
     void clearScene(const ClearSceneCommand &command);
     void createScene(const CreateSceneCommand &command);
     void completeComponent(const CompleteComponentCommand &command);
+    void token(const TokenCommand &command);
 
 protected:
     void collectItemChangesAndSendChangeCommands();
     void sendChildrenChangedCommand(const QList<ServerNodeInstance> childList);
+    void sendTokenBack();
+
 
 private:
     QSet<ServerNodeInstance> m_parentChangedSet;
     QList<ServerNodeInstance> m_completedComponentList;
+    QList<TokenCommand> m_tokenList;
 };
 
 } // namespace QmlDesigner
diff --git a/share/qtcreator/qml/qmlpuppet/qml2puppet/instances/qt5nodeinstanceclientproxy.cpp b/share/qtcreator/qml/qmlpuppet/qml2puppet/instances/qt5nodeinstanceclientproxy.cpp
index b66784a9a539ac548e9f9414b036dbb501db7835..452dc1031670424631eaccf5bf7ad7fa8f38333c 100644
--- a/share/qtcreator/qml/qmlpuppet/qml2puppet/instances/qt5nodeinstanceclientproxy.cpp
+++ b/share/qtcreator/qml/qmlpuppet/qml2puppet/instances/qt5nodeinstanceclientproxy.cpp
@@ -1,65 +1,33 @@
 /**************************************************************************
-
 **
-
-**  This  file  is  part  of  Qt  Creator
-
+** This file is part of Qt Creator
 **
-
-**  Copyright  (c)  2011  Nokia  Corporation  and/or  its  subsidiary(-ies).
-
+** Copyright (c) 2011 Nokia Corporation and/or its subsidiary(-ies).
 **
-
-**  Contact:  Nokia  Corporation  (qt-info@nokia.com)
-
+** Contact: Nokia Corporation (info@qt.nokia.com)
 **
-
-**  No  Commercial  Usage
-
 **
-
-**  This  file  contains  pre-release  code  and  may  not  be  distributed.
-
-**  You  may  use  this  file  in  accordance  with  the  terms  and  conditions
-
-**  contained  in  the  Technology  Preview  License  Agreement  accompanying
-
-**  this  package.
-
+** GNU Lesser General Public License Usage
 **
-
-**  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.
 **
-
-**  Alternatively,  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.
 **
-
-**  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
 **
-
-**  If  you  have  questions  regarding  the  use  of  this  file,  please  contact
-
-**  Nokia  at  qt-info@nokia.com.
-
+** 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 "qt5nodeinstanceclientproxy.h"
diff --git a/share/qtcreator/qml/qmlpuppet/qml2puppet/instances/qt5nodeinstanceclientproxy.h b/share/qtcreator/qml/qmlpuppet/qml2puppet/instances/qt5nodeinstanceclientproxy.h
index 2739bddbc926b0c677262256e913ded440594bda..3a1fb76323aedb55f75fa36b71133cc380cebf28 100644
--- a/share/qtcreator/qml/qmlpuppet/qml2puppet/instances/qt5nodeinstanceclientproxy.h
+++ b/share/qtcreator/qml/qmlpuppet/qml2puppet/instances/qt5nodeinstanceclientproxy.h
@@ -1,65 +1,33 @@
 /**************************************************************************
-
 **
-
-**  This  file  is  part  of  Qt  Creator
-
+** This file is part of Qt Creator
 **
-
-**  Copyright  (c)  2011  Nokia  Corporation  and/or  its  subsidiary(-ies).
-
+** Copyright (c) 2011 Nokia Corporation and/or its subsidiary(-ies).
 **
-
-**  Contact:  Nokia  Corporation  (qt-info@nokia.com)
-
+** Contact: Nokia Corporation (info@qt.nokia.com)
 **
-
-**  No  Commercial  Usage
-
 **
-
-**  This  file  contains  pre-release  code  and  may  not  be  distributed.
-
-**  You  may  use  this  file  in  accordance  with  the  terms  and  conditions
-
-**  contained  in  the  Technology  Preview  License  Agreement  accompanying
-
-**  this  package.
-
+** GNU Lesser General Public License Usage
 **
-
-**  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.
 **
-
-**  Alternatively,  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.
 **
-
-**  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
 **
-
-**  If  you  have  questions  regarding  the  use  of  this  file,  please  contact
-
-**  Nokia  at  qt-info@nokia.com.
-
+** 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 QMLDESIGNER_QT5NODEINSTANCECLIENTPROXY_H
diff --git a/share/qtcreator/qml/qmlpuppet/qml2puppet/instances/qt5nodeinstanceserver.cpp b/share/qtcreator/qml/qmlpuppet/qml2puppet/instances/qt5nodeinstanceserver.cpp
index a97b2202ec2fca008547799a0f45fc833437f2df..821752a979b3b2bc275d79fbee91c26680c9871a 100644
--- a/share/qtcreator/qml/qmlpuppet/qml2puppet/instances/qt5nodeinstanceserver.cpp
+++ b/share/qtcreator/qml/qmlpuppet/qml2puppet/instances/qt5nodeinstanceserver.cpp
@@ -1,65 +1,33 @@
 /**************************************************************************
-
 **
-
-**  This  file  is  part  of  Qt  Creator
-
+** This file is part of Qt Creator
 **
-
-**  Copyright  (c)  2011  Nokia  Corporation  and/or  its  subsidiary(-ies).
-
+** Copyright (c) 2011 Nokia Corporation and/or its subsidiary(-ies).
 **
-
-**  Contact:  Nokia  Corporation  (qt-info@nokia.com)
-
+** Contact: Nokia Corporation (info@qt.nokia.com)
 **
-
-**  No  Commercial  Usage
-
 **
-
-**  This  file  contains  pre-release  code  and  may  not  be  distributed.
-
-**  You  may  use  this  file  in  accordance  with  the  terms  and  conditions
-
-**  contained  in  the  Technology  Preview  License  Agreement  accompanying
-
-**  this  package.
-
+** GNU Lesser General Public License Usage
 **
-
-**  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.
 **
-
-**  Alternatively,  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.
 **
-
-**  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
 **
-
-**  If  you  have  questions  regarding  the  use  of  this  file,  please  contact
-
-**  Nokia  at  qt-info@nokia.com.
-
+** 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 "qt5nodeinstanceserver.h"
@@ -138,6 +106,7 @@ QList<ServerNodeInstance> Qt5NodeInstanceServer::setupScene(const CreateSceneCom
 {
     setupFileUrl(command.fileUrl());
     setupImports(command.imports());
+    setupDummyData(command.fileUrl());
 
     QList<ServerNodeInstance> instanceList = setupInstances(command);
 
diff --git a/share/qtcreator/qml/qmlpuppet/qml2puppet/instances/qt5nodeinstanceserver.h b/share/qtcreator/qml/qmlpuppet/qml2puppet/instances/qt5nodeinstanceserver.h
index 4faa447eee65e330fe6c342de7729d9bc4c21b96..58f0342ba9bc16c8d5972f33c77238b4271b2951 100644
--- a/share/qtcreator/qml/qmlpuppet/qml2puppet/instances/qt5nodeinstanceserver.h
+++ b/share/qtcreator/qml/qmlpuppet/qml2puppet/instances/qt5nodeinstanceserver.h
@@ -1,65 +1,33 @@
 /**************************************************************************
-
 **
-
-**  This  file  is  part  of  Qt  Creator
-
+** This file is part of Qt Creator
 **
-
-**  Copyright  (c)  2011  Nokia  Corporation  and/or  its  subsidiary(-ies).
-
+** Copyright (c) 2011 Nokia Corporation and/or its subsidiary(-ies).
 **
-
-**  Contact:  Nokia  Corporation  (qt-info@nokia.com)
-
+** Contact: Nokia Corporation (info@qt.nokia.com)
 **
-
-**  No  Commercial  Usage
-
 **
-
-**  This  file  contains  pre-release  code  and  may  not  be  distributed.
-
-**  You  may  use  this  file  in  accordance  with  the  terms  and  conditions
-
-**  contained  in  the  Technology  Preview  License  Agreement  accompanying
-
-**  this  package.
-
+** GNU Lesser General Public License Usage
 **
-
-**  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.
 **
-
-**  Alternatively,  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.
 **
-
-**  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
 **
-
-**  If  you  have  questions  regarding  the  use  of  this  file,  please  contact
-
-**  Nokia  at  qt-info@nokia.com.
-
+** 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 QT5NODEINSTANCESERVER_H
diff --git a/share/qtcreator/qml/qmlpuppet/qml2puppet/instances/qt5previewnodeinstanceserver.cpp b/share/qtcreator/qml/qmlpuppet/qml2puppet/instances/qt5previewnodeinstanceserver.cpp
index e432ba32faa5cd62703272ca0e47a0f10bf2ab69..4c3f6b568741a64d20a11b0684ac7150115f4307 100644
--- a/share/qtcreator/qml/qmlpuppet/qml2puppet/instances/qt5previewnodeinstanceserver.cpp
+++ b/share/qtcreator/qml/qmlpuppet/qml2puppet/instances/qt5previewnodeinstanceserver.cpp
@@ -1,65 +1,33 @@
 /**************************************************************************
-
 **
-
-**  This  file  is  part  of  Qt  Creator
-
+** This file is part of Qt Creator
 **
-
-**  Copyright  (c)  2011  Nokia  Corporation  and/or  its  subsidiary(-ies).
-
+** Copyright (c) 2011 Nokia Corporation and/or its subsidiary(-ies).
 **
-
-**  Contact:  Nokia  Corporation  (qt-info@nokia.com)
-
+** Contact: Nokia Corporation (info@qt.nokia.com)
 **
-
-**  No  Commercial  Usage
-
 **
-
-**  This  file  contains  pre-release  code  and  may  not  be  distributed.
-
-**  You  may  use  this  file  in  accordance  with  the  terms  and  conditions
-
-**  contained  in  the  Technology  Preview  License  Agreement  accompanying
-
-**  this  package.
-
+** GNU Lesser General Public License Usage
 **
-
-**  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.
 **
-
-**  Alternatively,  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.
 **
-
-**  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
 **
-
-**  If  you  have  questions  regarding  the  use  of  this  file,  please  contact
-
-**  Nokia  at  qt-info@nokia.com.
-
+** 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 "qt5previewnodeinstanceserver.h"
diff --git a/share/qtcreator/qml/qmlpuppet/qml2puppet/instances/qt5previewnodeinstanceserver.h b/share/qtcreator/qml/qmlpuppet/qml2puppet/instances/qt5previewnodeinstanceserver.h
index bf6072127436db523e00216052ab20d45a312332..e10359abc91d2aa1aacfb91489acd23469aeeb8d 100644
--- a/share/qtcreator/qml/qmlpuppet/qml2puppet/instances/qt5previewnodeinstanceserver.h
+++ b/share/qtcreator/qml/qmlpuppet/qml2puppet/instances/qt5previewnodeinstanceserver.h
@@ -1,65 +1,33 @@
 /**************************************************************************
-
 **
-
-**  This  file  is  part  of  Qt  Creator
-
+** This file is part of Qt Creator
 **
-
-**  Copyright  (c)  2011  Nokia  Corporation  and/or  its  subsidiary(-ies).
-
+** Copyright (c) 2011 Nokia Corporation and/or its subsidiary(-ies).
 **
-
-**  Contact:  Nokia  Corporation  (qt-info@nokia.com)
-
+** Contact: Nokia Corporation (info@qt.nokia.com)
 **
-
-**  No  Commercial  Usage
-
 **
-
-**  This  file  contains  pre-release  code  and  may  not  be  distributed.
-
-**  You  may  use  this  file  in  accordance  with  the  terms  and  conditions
-
-**  contained  in  the  Technology  Preview  License  Agreement  accompanying
-
-**  this  package.
-
+** GNU Lesser General Public License Usage
 **
-
-**  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.
 **
-
-**  Alternatively,  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.
 **
-
-**  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
 **
-
-**  If  you  have  questions  regarding  the  use  of  this  file,  please  contact
-
-**  Nokia  at  qt-info@nokia.com.
-
+** 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 QMLDESIGNER_QT5PREVIEWNODEINSTANCESERVER_H
diff --git a/share/qtcreator/qml/qmlpuppet/qml2puppet/instances/qt5rendernodeinstanceserver.cpp b/share/qtcreator/qml/qmlpuppet/qml2puppet/instances/qt5rendernodeinstanceserver.cpp
index e25c0ce3b17162a6f4008f2373bfdb0b677192ac..a96c066b1c71607107fff3e2c40f2bdd98a44776 100644
--- a/share/qtcreator/qml/qmlpuppet/qml2puppet/instances/qt5rendernodeinstanceserver.cpp
+++ b/share/qtcreator/qml/qmlpuppet/qml2puppet/instances/qt5rendernodeinstanceserver.cpp
@@ -1,65 +1,33 @@
 /**************************************************************************
-
 **
-
-**  This  file  is  part  of  Qt  Creator
-
+** This file is part of Qt Creator
 **
-
-**  Copyright  (c)  2011  Nokia  Corporation  and/or  its  subsidiary(-ies).
-
+** Copyright (c) 2011 Nokia Corporation and/or its subsidiary(-ies).
 **
-
-**  Contact:  Nokia  Corporation  (qt-info@nokia.com)
-
+** Contact: Nokia Corporation (info@qt.nokia.com)
 **
-
-**  No  Commercial  Usage
-
 **
-
-**  This  file  contains  pre-release  code  and  may  not  be  distributed.
-
-**  You  may  use  this  file  in  accordance  with  the  terms  and  conditions
-
-**  contained  in  the  Technology  Preview  License  Agreement  accompanying
-
-**  this  package.
-
+** GNU Lesser General Public License Usage
 **
-
-**  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.
 **
-
-**  Alternatively,  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.
 **
-
-**  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
 **
-
-**  If  you  have  questions  regarding  the  use  of  this  file,  please  contact
-
-**  Nokia  at  qt-info@nokia.com.
-
+** 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 "qt5rendernodeinstanceserver.h"
diff --git a/share/qtcreator/qml/qmlpuppet/qml2puppet/instances/qt5rendernodeinstanceserver.h b/share/qtcreator/qml/qmlpuppet/qml2puppet/instances/qt5rendernodeinstanceserver.h
index 78aae47692b64cdd45e112d9ea23cef0a6ef9dd6..ddfdfc16d017bf632b604597ea31412ae28b657c 100644
--- a/share/qtcreator/qml/qmlpuppet/qml2puppet/instances/qt5rendernodeinstanceserver.h
+++ b/share/qtcreator/qml/qmlpuppet/qml2puppet/instances/qt5rendernodeinstanceserver.h
@@ -1,65 +1,33 @@
 /**************************************************************************
-
 **
-
-**  This  file  is  part  of  Qt  Creator
-
+** This file is part of Qt Creator
 **
-
-**  Copyright  (c)  2011  Nokia  Corporation  and/or  its  subsidiary(-ies).
-
+** Copyright (c) 2011 Nokia Corporation and/or its subsidiary(-ies).
 **
-
-**  Contact:  Nokia  Corporation  (qt-info@nokia.com)
-
+** Contact: Nokia Corporation (info@qt.nokia.com)
 **
-
-**  No  Commercial  Usage
-
 **
-
-**  This  file  contains  pre-release  code  and  may  not  be  distributed.
-
-**  You  may  use  this  file  in  accordance  with  the  terms  and  conditions
-
-**  contained  in  the  Technology  Preview  License  Agreement  accompanying
-
-**  this  package.
-
+** GNU Lesser General Public License Usage
 **
-
-**  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.
 **
-
-**  Alternatively,  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.
 **
-
-**  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
 **
-
-**  If  you  have  questions  regarding  the  use  of  this  file,  please  contact
-
-**  Nokia  at  qt-info@nokia.com.
-
+** 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 QMLDESIGNER_QT5RENDERNODEINSTANCESERVER_H
diff --git a/share/qtcreator/qml/qmlpuppet/qml2puppet/instances/sgitemnodeinstance.cpp b/share/qtcreator/qml/qmlpuppet/qml2puppet/instances/sgitemnodeinstance.cpp
index 3b3e7e3e549826c8751af41919985dca862c75c1..4b51e6f1653a70b46e50ee6516543a51963a2547 100644
--- a/share/qtcreator/qml/qmlpuppet/qml2puppet/instances/sgitemnodeinstance.cpp
+++ b/share/qtcreator/qml/qmlpuppet/qml2puppet/instances/sgitemnodeinstance.cpp
@@ -1,65 +1,33 @@
 /**************************************************************************
-
 **
-
-**  This  file  is  part  of  Qt  Creator
-
+** This file is part of Qt Creator
 **
-
-**  Copyright  (c)  2011  Nokia  Corporation  and/or  its  subsidiary(-ies).
-
+** Copyright (c) 2011 Nokia Corporation and/or its subsidiary(-ies).
 **
-
-**  Contact:  Nokia  Corporation  (qt-info@nokia.com)
-
+** Contact: Nokia Corporation (info@qt.nokia.com)
 **
-
-**  No  Commercial  Usage
-
 **
-
-**  This  file  contains  pre-release  code  and  may  not  be  distributed.
-
-**  You  may  use  this  file  in  accordance  with  the  terms  and  conditions
-
-**  contained  in  the  Technology  Preview  License  Agreement  accompanying
-
-**  this  package.
-
+** GNU Lesser General Public License Usage
 **
-
-**  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.
 **
-
-**  Alternatively,  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.
 **
-
-**  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
 **
-
-**  If  you  have  questions  regarding  the  use  of  this  file,  please  contact
-
-**  Nokia  at  qt-info@nokia.com.
-
+** 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 "sgitemnodeinstance.h"
@@ -271,7 +239,24 @@ bool SGItemNodeInstance::isSGItem() const
 
 QSizeF SGItemNodeInstance::size() const
 {
-    return QSizeF(sgItem()->width(), sgItem()->height());
+    double width;
+
+    if (QSGItemPrivate::get(sgItem())->widthValid) {
+        width = sgItem()->width();
+    } else {
+        width = sgItem()->implicitWidth();
+    }
+
+    double height;
+
+    if (QSGItemPrivate::get(sgItem())->heightValid) {
+        height = sgItem()->height();
+    } else {
+        height = sgItem()->implicitHeight();
+    }
+
+
+    return QSizeF(width, height);
 }
 
 QRectF SGItemNodeInstance::boundingRectWithStepChilds(QSGItem *parentItem) const
diff --git a/share/qtcreator/qml/qmlpuppet/qml2puppet/instances/sgitemnodeinstance.h b/share/qtcreator/qml/qmlpuppet/qml2puppet/instances/sgitemnodeinstance.h
index eabd77800965d6bb03dfa808e7f951b8c16d51cd..e344ff45a18fb737b4b584d05123b3eea6481458 100644
--- a/share/qtcreator/qml/qmlpuppet/qml2puppet/instances/sgitemnodeinstance.h
+++ b/share/qtcreator/qml/qmlpuppet/qml2puppet/instances/sgitemnodeinstance.h
@@ -1,65 +1,33 @@
 /**************************************************************************
-
 **
-
-**  This  file  is  part  of  Qt  Creator
-
+** This file is part of Qt Creator
 **
-
-**  Copyright  (c)  2011  Nokia  Corporation  and/or  its  subsidiary(-ies).
-
+** Copyright (c) 2011 Nokia Corporation and/or its subsidiary(-ies).
 **
-
-**  Contact:  Nokia  Corporation  (qt-info@nokia.com)
-
+** Contact: Nokia Corporation (info@qt.nokia.com)
 **
-
-**  No  Commercial  Usage
-
 **
-
-**  This  file  contains  pre-release  code  and  may  not  be  distributed.
-
-**  You  may  use  this  file  in  accordance  with  the  terms  and  conditions
-
-**  contained  in  the  Technology  Preview  License  Agreement  accompanying
-
-**  this  package.
-
+** GNU Lesser General Public License Usage
 **
-
-**  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.
 **
-
-**  Alternatively,  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.
 **
-
-**  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
 **
-
-**  If  you  have  questions  regarding  the  use  of  this  file,  please  contact
-
-**  Nokia  at  qt-info@nokia.com.
-
+** 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 SGITEMNODEINSTANCE_H
diff --git a/share/qtcreator/qml/qmlpuppet/qmlpuppet/instances/positionernodeinstance.cpp b/share/qtcreator/qml/qmlpuppet/qmlpuppet/instances/positionernodeinstance.cpp
index 718f8a3f061b76596422270f3108345aa60cc078..cf25d0b4b79a05720ab75521ef1adc8869f98d68 100644
--- a/share/qtcreator/qml/qmlpuppet/qmlpuppet/instances/positionernodeinstance.cpp
+++ b/share/qtcreator/qml/qmlpuppet/qmlpuppet/instances/positionernodeinstance.cpp
@@ -48,7 +48,7 @@ bool PositionerNodeInstance::isPositioner() const
 
 bool PositionerNodeInstance::isResizable() const
 {
-    return false;
+    return true;
 }
 
 void PositionerNodeInstance::setPropertyVariant(const QString &name, const QVariant &value)
diff --git a/share/qtcreator/qml/qmlpuppet/qmlpuppet/instances/qmlgraphicsitemnodeinstance.cpp b/share/qtcreator/qml/qmlpuppet/qmlpuppet/instances/qmlgraphicsitemnodeinstance.cpp
index 0092e7beab3a5d351b606ad8a3bc60701e247052..acb4ad488e1feb0c66204ad4216a5af9729968d9 100644
--- a/share/qtcreator/qml/qmlpuppet/qmlpuppet/instances/qmlgraphicsitemnodeinstance.cpp
+++ b/share/qtcreator/qml/qmlpuppet/qmlpuppet/instances/qmlgraphicsitemnodeinstance.cpp
@@ -104,7 +104,24 @@ bool QmlGraphicsItemNodeInstance::isQmlGraphicsItem() const
 
 QSizeF QmlGraphicsItemNodeInstance::size() const
 {
-    return QSizeF(qmlGraphicsItem()->width(), qmlGraphicsItem()->height());
+    double width;
+
+    if (QDeclarativeItemPrivate::get(qmlGraphicsItem())->widthValid) {
+        width = qmlGraphicsItem()->width();
+    } else {
+        width = qmlGraphicsItem()->implicitWidth();
+    }
+
+    double height;
+
+    if (QDeclarativeItemPrivate::get(qmlGraphicsItem())->heightValid) {
+        height = qmlGraphicsItem()->height();
+    } else {
+        height = qmlGraphicsItem()->implicitHeight();
+    }
+
+
+    return QSizeF(width, height);
 }
 
 void QmlGraphicsItemNodeInstance::setPropertyVariant(const QString &name, const QVariant &value)
diff --git a/share/qtcreator/qml/qmlpuppet/qmlpuppet/instances/qt4informationnodeinstanceserver.cpp b/share/qtcreator/qml/qmlpuppet/qmlpuppet/instances/qt4informationnodeinstanceserver.cpp
index ab8831d1160bb7b80b949cdaced08f27522790e7..48ab73adf9bd9fe2c650e40d60ddf0597aa5abf5 100644
--- a/share/qtcreator/qml/qmlpuppet/qmlpuppet/instances/qt4informationnodeinstanceserver.cpp
+++ b/share/qtcreator/qml/qmlpuppet/qmlpuppet/instances/qt4informationnodeinstanceserver.cpp
@@ -1,65 +1,33 @@
 /**************************************************************************
-
 **
-
-**  This  file  is  part  of  Qt  Creator
-
+** This file is part of Qt Creator
 **
-
-**  Copyright  (c)  2011  Nokia  Corporation  and/or  its  subsidiary(-ies).
-
+** Copyright (c) 2011 Nokia Corporation and/or its subsidiary(-ies).
 **
-
-**  Contact:  Nokia  Corporation  (qt-info@nokia.com)
-
+** Contact: Nokia Corporation (info@qt.nokia.com)
 **
-
-**  No  Commercial  Usage
-
 **
-
-**  This  file  contains  pre-release  code  and  may  not  be  distributed.
-
-**  You  may  use  this  file  in  accordance  with  the  terms  and  conditions
-
-**  contained  in  the  Technology  Preview  License  Agreement  accompanying
-
-**  this  package.
-
+** GNU Lesser General Public License Usage
 **
-
-**  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.
 **
-
-**  Alternatively,  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.
 **
-
-**  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
 **
-
-**  If  you  have  questions  regarding  the  use  of  this  file,  please  contact
-
-**  Nokia  at  qt-info@nokia.com.
-
+** 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 "qt4informationnodeinstanceserver.h"
@@ -107,6 +75,8 @@
 #include "completecomponentcommand.h"
 #include "componentcompletedcommand.h"
 #include "createscenecommand.h"
+#include "tokencommand.h"
+
 
 #include "dummycontextobject.h"
 
@@ -117,6 +87,20 @@ Qt4InformationNodeInstanceServer::Qt4InformationNodeInstanceServer(NodeInstanceC
 {
 }
 
+void Qt4InformationNodeInstanceServer::sendTokenBack()
+{
+    foreach (const TokenCommand &command, m_tokenList)
+        nodeInstanceClient()->token(command);
+
+    m_tokenList.clear();
+}
+
+void Qt4InformationNodeInstanceServer::token(const TokenCommand &command)
+{
+    m_tokenList.append(command);
+    startRenderTimer();
+}
+
 void Qt4InformationNodeInstanceServer::collectItemChangesAndSendChangeCommands()
 {
     static bool inFunction = false;
@@ -170,9 +154,13 @@ void Qt4InformationNodeInstanceServer::collectItemChangesAndSendChangeCommands()
                 }
             }
 
+            informationChangedInstanceSet.subtract(m_parentChangedSet);
+
             clearChangedPropertyList();
             resetAllItems();
 
+            sendTokenBack();
+
             if (!informationChangedInstanceSet.isEmpty())
                 nodeInstanceClient()->informationChanged(createAllInformationChangedCommand(informationChangedInstanceSet.toList()));
 
diff --git a/share/qtcreator/qml/qmlpuppet/qmlpuppet/instances/qt4informationnodeinstanceserver.h b/share/qtcreator/qml/qmlpuppet/qmlpuppet/instances/qt4informationnodeinstanceserver.h
index ea5aa990e9ec3924fd0ed7b37925cc8d025facf1..04f3064b6d399ad0e5fb213d476f6eab2926f873 100644
--- a/share/qtcreator/qml/qmlpuppet/qmlpuppet/instances/qt4informationnodeinstanceserver.h
+++ b/share/qtcreator/qml/qmlpuppet/qmlpuppet/instances/qt4informationnodeinstanceserver.h
@@ -1,71 +1,40 @@
 /**************************************************************************
-
 **
-
-**  This  file  is  part  of  Qt  Creator
-
+** This file is part of Qt Creator
 **
-
-**  Copyright  (c)  2011  Nokia  Corporation  and/or  its  subsidiary(-ies).
-
+** Copyright (c) 2011 Nokia Corporation and/or its subsidiary(-ies).
 **
-
-**  Contact:  Nokia  Corporation  (qt-info@nokia.com)
-
+** Contact: Nokia Corporation (info@qt.nokia.com)
 **
-
-**  No  Commercial  Usage
-
 **
-
-**  This  file  contains  pre-release  code  and  may  not  be  distributed.
-
-**  You  may  use  this  file  in  accordance  with  the  terms  and  conditions
-
-**  contained  in  the  Technology  Preview  License  Agreement  accompanying
-
-**  this  package.
-
+** GNU Lesser General Public License Usage
 **
-
-**  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.
 **
-
-**  Alternatively,  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.
 **
-
-**  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
 **
-
-**  If  you  have  questions  regarding  the  use  of  this  file,  please  contact
-
-**  Nokia  at  qt-info@nokia.com.
-
+** 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 INFORMATIONNODEINSTANCESERVER_H
 #define INFORMATIONNODEINSTANCESERVER_H
 
 #include "qt4nodeinstanceserver.h"
+#include "tokencommand.h"
 
 namespace QmlDesigner {
 
@@ -79,14 +48,17 @@ public:
     void clearScene(const ClearSceneCommand &command);
     void createScene(const CreateSceneCommand &command);
     void completeComponent(const CompleteComponentCommand &command);
+    void token(const TokenCommand &command);
 
 protected:
     void collectItemChangesAndSendChangeCommands();
     void sendChildrenChangedCommand(const QList<ServerNodeInstance> childList);
+    void sendTokenBack();
 
 private:
     QSet<ServerNodeInstance> m_parentChangedSet;
     QList<ServerNodeInstance> m_completedComponentList;
+    QList<TokenCommand> m_tokenList;
 };
 
 } // namespace QmlDesigner
diff --git a/share/qtcreator/qml/qmlpuppet/qmlpuppet/instances/qt4nodeinstanceclientproxy.cpp b/share/qtcreator/qml/qmlpuppet/qmlpuppet/instances/qt4nodeinstanceclientproxy.cpp
index 91fe2417c0e629e6626344427868d4e558fbe622..fd540e0032e53246deab20539288c9e6b870a74b 100644
--- a/share/qtcreator/qml/qmlpuppet/qmlpuppet/instances/qt4nodeinstanceclientproxy.cpp
+++ b/share/qtcreator/qml/qmlpuppet/qmlpuppet/instances/qt4nodeinstanceclientproxy.cpp
@@ -1,65 +1,33 @@
 /**************************************************************************
-
 **
-
-**  This  file  is  part  of  Qt  Creator
-
+** This file is part of Qt Creator
 **
-
-**  Copyright  (c)  2011  Nokia  Corporation  and/or  its  subsidiary(-ies).
-
+** Copyright (c) 2011 Nokia Corporation and/or its subsidiary(-ies).
 **
-
-**  Contact:  Nokia  Corporation  (qt-info@nokia.com)
-
+** Contact: Nokia Corporation (info@qt.nokia.com)
 **
-
-**  No  Commercial  Usage
-
 **
-
-**  This  file  contains  pre-release  code  and  may  not  be  distributed.
-
-**  You  may  use  this  file  in  accordance  with  the  terms  and  conditions
-
-**  contained  in  the  Technology  Preview  License  Agreement  accompanying
-
-**  this  package.
-
+** GNU Lesser General Public License Usage
 **
-
-**  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.
 **
-
-**  Alternatively,  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.
 **
-
-**  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
 **
-
-**  If  you  have  questions  regarding  the  use  of  this  file,  please  contact
-
-**  Nokia  at  qt-info@nokia.com.
-
+** 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 "qt4nodeinstanceclientproxy.h"
diff --git a/share/qtcreator/qml/qmlpuppet/qmlpuppet/instances/qt4nodeinstanceclientproxy.h b/share/qtcreator/qml/qmlpuppet/qmlpuppet/instances/qt4nodeinstanceclientproxy.h
index 4722a2df2304f3b65c2aa33fe774c3aa9d574c59..97d22a0f565b39f2f48e801fba8cb5bee9285ceb 100644
--- a/share/qtcreator/qml/qmlpuppet/qmlpuppet/instances/qt4nodeinstanceclientproxy.h
+++ b/share/qtcreator/qml/qmlpuppet/qmlpuppet/instances/qt4nodeinstanceclientproxy.h
@@ -1,65 +1,33 @@
 /**************************************************************************
-
 **
-
-**  This  file  is  part  of  Qt  Creator
-
+** This file is part of Qt Creator
 **
-
-**  Copyright  (c)  2011  Nokia  Corporation  and/or  its  subsidiary(-ies).
-
+** Copyright (c) 2011 Nokia Corporation and/or its subsidiary(-ies).
 **
-
-**  Contact:  Nokia  Corporation  (qt-info@nokia.com)
-
+** Contact: Nokia Corporation (info@qt.nokia.com)
 **
-
-**  No  Commercial  Usage
-
 **
-
-**  This  file  contains  pre-release  code  and  may  not  be  distributed.
-
-**  You  may  use  this  file  in  accordance  with  the  terms  and  conditions
-
-**  contained  in  the  Technology  Preview  License  Agreement  accompanying
-
-**  this  package.
-
+** GNU Lesser General Public License Usage
 **
-
-**  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.
 **
-
-**  Alternatively,  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.
 **
-
-**  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
 **
-
-**  If  you  have  questions  regarding  the  use  of  this  file,  please  contact
-
-**  Nokia  at  qt-info@nokia.com.
-
+** 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 QMLDESIGNER_QT4NODEINSTANCECLIENTPROXY_H
diff --git a/share/qtcreator/qml/qmlpuppet/qmlpuppet/instances/qt4nodeinstanceserver.cpp b/share/qtcreator/qml/qmlpuppet/qmlpuppet/instances/qt4nodeinstanceserver.cpp
index 802fd403c142d160888fe522640a4ae6a56700b0..7354f2303ee4617ccf81f02db476abf0cd8efe19 100644
--- a/share/qtcreator/qml/qmlpuppet/qmlpuppet/instances/qt4nodeinstanceserver.cpp
+++ b/share/qtcreator/qml/qmlpuppet/qmlpuppet/instances/qt4nodeinstanceserver.cpp
@@ -1,65 +1,33 @@
 /**************************************************************************
-
 **
-
-**  This  file  is  part  of  Qt  Creator
-
+** This file is part of Qt Creator
 **
-
-**  Copyright  (c)  2011  Nokia  Corporation  and/or  its  subsidiary(-ies).
-
+** Copyright (c) 2011 Nokia Corporation and/or its subsidiary(-ies).
 **
-
-**  Contact:  Nokia  Corporation  (qt-info@nokia.com)
-
+** Contact: Nokia Corporation (info@qt.nokia.com)
 **
-
-**  No  Commercial  Usage
-
 **
-
-**  This  file  contains  pre-release  code  and  may  not  be  distributed.
-
-**  You  may  use  this  file  in  accordance  with  the  terms  and  conditions
-
-**  contained  in  the  Technology  Preview  License  Agreement  accompanying
-
-**  this  package.
-
+** GNU Lesser General Public License Usage
 **
-
-**  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.
 **
-
-**  Alternatively,  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.
 **
-
-**  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
 **
-
-**  If  you  have  questions  regarding  the  use  of  this  file,  please  contact
-
-**  Nokia  at  qt-info@nokia.com.
-
+** 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 "qt4nodeinstanceserver.h"
@@ -160,6 +128,7 @@ QList<ServerNodeInstance> Qt4NodeInstanceServer::setupScene(const CreateSceneCom
 {
     setupFileUrl(command.fileUrl());
     setupImports(command.imports());
+    setupDummyData(command.fileUrl());
 
     static_cast<QGraphicsScenePrivate*>(QObjectPrivate::get(declarativeView()->scene()))->processDirtyItemsEmitted = true;
 
diff --git a/share/qtcreator/qml/qmlpuppet/qmlpuppet/instances/qt4nodeinstanceserver.h b/share/qtcreator/qml/qmlpuppet/qmlpuppet/instances/qt4nodeinstanceserver.h
index 60c41f27807c62caa93d98c97a5ce4a604e94aef..67ee32102e91c110909dc23f9bb090315d6e6332 100644
--- a/share/qtcreator/qml/qmlpuppet/qmlpuppet/instances/qt4nodeinstanceserver.h
+++ b/share/qtcreator/qml/qmlpuppet/qmlpuppet/instances/qt4nodeinstanceserver.h
@@ -1,65 +1,33 @@
 /**************************************************************************
-
 **
-
-**  This  file  is  part  of  Qt  Creator
-
+** This file is part of Qt Creator
 **
-
-**  Copyright  (c)  2011  Nokia  Corporation  and/or  its  subsidiary(-ies).
-
+** Copyright (c) 2011 Nokia Corporation and/or its subsidiary(-ies).
 **
-
-**  Contact:  Nokia  Corporation  (qt-info@nokia.com)
-
+** Contact: Nokia Corporation (info@qt.nokia.com)
 **
-
-**  No  Commercial  Usage
-
 **
-
-**  This  file  contains  pre-release  code  and  may  not  be  distributed.
-
-**  You  may  use  this  file  in  accordance  with  the  terms  and  conditions
-
-**  contained  in  the  Technology  Preview  License  Agreement  accompanying
-
-**  this  package.
-
+** GNU Lesser General Public License Usage
 **
-
-**  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.
 **
-
-**  Alternatively,  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.
 **
-
-**  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
 **
-
-**  If  you  have  questions  regarding  the  use  of  this  file,  please  contact
-
-**  Nokia  at  qt-info@nokia.com.
-
+** 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 QT4NODEINSTANCESERVER_H
diff --git a/share/qtcreator/qmldesigner/propertyeditor/Qt/AlignmentHorizontalButtons.qml b/share/qtcreator/qmldesigner/propertyeditor/Qt/AlignmentHorizontalButtons.qml
index 849ab25517ec9c26e066f1639b4f85b16bb853c4..35f3e9d96682f8a7f57b897529409165cae31701 100644
--- a/share/qtcreator/qmldesigner/propertyeditor/Qt/AlignmentHorizontalButtons.qml
+++ b/share/qtcreator/qmldesigner/propertyeditor/Qt/AlignmentHorizontalButtons.qml
@@ -1,3 +1,35 @@
+/**************************************************************************
+**
+** 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.
+**
+**************************************************************************/
+
 import Qt 4.7
 import Bauhaus 1.0
 
diff --git a/share/qtcreator/qmldesigner/propertyeditor/Qt/AlignmentVerticalButtons.qml b/share/qtcreator/qmldesigner/propertyeditor/Qt/AlignmentVerticalButtons.qml
index ac6a79ca2660de1e0d4bab72a427a8a5343b78be..3e9d8ca699d00ac5cdaa886bf1eaa4b1221bc4b2 100644
--- a/share/qtcreator/qmldesigner/propertyeditor/Qt/AlignmentVerticalButtons.qml
+++ b/share/qtcreator/qmldesigner/propertyeditor/Qt/AlignmentVerticalButtons.qml
@@ -1,3 +1,35 @@
+/**************************************************************************
+**
+** 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.
+**
+**************************************************************************/
+
 import Qt 4.7
 import Bauhaus 1.0
 
diff --git a/share/qtcreator/qmldesigner/propertyeditor/Qt/AnchorBox.qml b/share/qtcreator/qmldesigner/propertyeditor/Qt/AnchorBox.qml
index e24c5905e011bce978fe7471fbfc00bfd77c9330..2c6a4057f5106f231862bdf7e9a390cd00458f91 100644
--- a/share/qtcreator/qmldesigner/propertyeditor/Qt/AnchorBox.qml
+++ b/share/qtcreator/qmldesigner/propertyeditor/Qt/AnchorBox.qml
@@ -1,3 +1,35 @@
+/**************************************************************************
+**
+** 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.
+**
+**************************************************************************/
+
 import Qt 4.7
 import Bauhaus 1.0
 
diff --git a/share/qtcreator/qmldesigner/propertyeditor/Qt/AnchorButtons.qml b/share/qtcreator/qmldesigner/propertyeditor/Qt/AnchorButtons.qml
index 3f4b8fbf4a966211d9bc1eff093e1bbae482e886..1aaa42f2ad9480d49f6d7d5faeaa23f4dbd09d14 100644
--- a/share/qtcreator/qmldesigner/propertyeditor/Qt/AnchorButtons.qml
+++ b/share/qtcreator/qmldesigner/propertyeditor/Qt/AnchorButtons.qml
@@ -1,3 +1,35 @@
+/**************************************************************************
+**
+** 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.
+**
+**************************************************************************/
+
 import Qt 4.7
 import Bauhaus 1.0
 
diff --git a/share/qtcreator/qmldesigner/propertyeditor/Qt/BorderImageSpecifics.qml b/share/qtcreator/qmldesigner/propertyeditor/Qt/BorderImageSpecifics.qml
index a12ae4f0c47d837f86a3fccc4ec409ef894aa073..10a73dff433cf2f81b50b4c5e8f866714c644ff5 100644
--- a/share/qtcreator/qmldesigner/propertyeditor/Qt/BorderImageSpecifics.qml
+++ b/share/qtcreator/qmldesigner/propertyeditor/Qt/BorderImageSpecifics.qml
@@ -1,3 +1,35 @@
+/**************************************************************************
+**
+** 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.
+**
+**************************************************************************/
+
 import Qt 4.7
 import Bauhaus 1.0
 
diff --git a/share/qtcreator/qmldesigner/propertyeditor/Qt/CheckBox.qml b/share/qtcreator/qmldesigner/propertyeditor/Qt/CheckBox.qml
index b161a2c084cdd7021239b43886a7bc0d96c161e6..cc9db08018e553584fcd02fb793d78eb79661f38 100644
--- a/share/qtcreator/qmldesigner/propertyeditor/Qt/CheckBox.qml
+++ b/share/qtcreator/qmldesigner/propertyeditor/Qt/CheckBox.qml
@@ -1,3 +1,35 @@
+/**************************************************************************
+**
+** 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.
+**
+**************************************************************************/
+
 import Qt 4.7
 import Bauhaus 1.0
 
diff --git a/share/qtcreator/qmldesigner/propertyeditor/Qt/ColorGroupBox.qml b/share/qtcreator/qmldesigner/propertyeditor/Qt/ColorGroupBox.qml
index 5b08c18876ec6f9a5046fa9447c14e72073fb1f5..d36219f407efd8bdb9a18fe58804f86d5140f533 100644
--- a/share/qtcreator/qmldesigner/propertyeditor/Qt/ColorGroupBox.qml
+++ b/share/qtcreator/qmldesigner/propertyeditor/Qt/ColorGroupBox.qml
@@ -1,3 +1,35 @@
+/**************************************************************************
+**
+** 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.
+**
+**************************************************************************/
+
 import Qt 4.7
 import Bauhaus 1.0
 
diff --git a/share/qtcreator/qmldesigner/propertyeditor/Qt/ColorLabel.qml b/share/qtcreator/qmldesigner/propertyeditor/Qt/ColorLabel.qml
index 0305bc8610ea198bbae12322732240837655130c..4535b902214802c83f455ad201e3659272ced685 100644
--- a/share/qtcreator/qmldesigner/propertyeditor/Qt/ColorLabel.qml
+++ b/share/qtcreator/qmldesigner/propertyeditor/Qt/ColorLabel.qml
@@ -1,3 +1,35 @@
+/**************************************************************************
+**
+** 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.
+**
+**************************************************************************/
+
 import Qt 4.7
 import Bauhaus 1.0
 
diff --git a/share/qtcreator/qmldesigner/propertyeditor/Qt/ColorScheme.qml b/share/qtcreator/qmldesigner/propertyeditor/Qt/ColorScheme.qml
index ff90e779c1abe12a35b6a2731a33a436a68b609b..40fc5a822ebeea4f7671c79d4d47f1ed2052b9ca 100644
--- a/share/qtcreator/qmldesigner/propertyeditor/Qt/ColorScheme.qml
+++ b/share/qtcreator/qmldesigner/propertyeditor/Qt/ColorScheme.qml
@@ -1,3 +1,35 @@
+/**************************************************************************
+**
+** 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.
+**
+**************************************************************************/
+
 import Qt 4.7
 import Bauhaus 1.0
 
diff --git a/share/qtcreator/qmldesigner/propertyeditor/Qt/ColorTypeButtons.qml b/share/qtcreator/qmldesigner/propertyeditor/Qt/ColorTypeButtons.qml
index 8436718b4b96282e20de3568b97977e1254ef2c3..2e02ac9f8615ed0ecc699bd346b58511afded8f0 100644
--- a/share/qtcreator/qmldesigner/propertyeditor/Qt/ColorTypeButtons.qml
+++ b/share/qtcreator/qmldesigner/propertyeditor/Qt/ColorTypeButtons.qml
@@ -1,3 +1,35 @@
+/**************************************************************************
+**
+** 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.
+**
+**************************************************************************/
+
 import Qt 4.7
 import Bauhaus 1.0
 
diff --git a/share/qtcreator/qmldesigner/propertyeditor/Qt/ComboBox.qml b/share/qtcreator/qmldesigner/propertyeditor/Qt/ComboBox.qml
index c4aa6c7d0bbfad81c560a2644f13df96e1a3d03a..8c4d606731a4470fa1f074c8612ed867a2912fc3 100644
--- a/share/qtcreator/qmldesigner/propertyeditor/Qt/ComboBox.qml
+++ b/share/qtcreator/qmldesigner/propertyeditor/Qt/ComboBox.qml
@@ -1,3 +1,35 @@
+/**************************************************************************
+**
+** 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.
+**
+**************************************************************************/
+
 import Qt 4.7
 import Bauhaus 1.0
 
diff --git a/share/qtcreator/qmldesigner/propertyeditor/Qt/DoubleSpinBox.qml b/share/qtcreator/qmldesigner/propertyeditor/Qt/DoubleSpinBox.qml
index 8045f707d584c24a32d6b857277633aee3a153ee..c0caf71236627e8603a8978e1711436a89f9a2b8 100644
--- a/share/qtcreator/qmldesigner/propertyeditor/Qt/DoubleSpinBox.qml
+++ b/share/qtcreator/qmldesigner/propertyeditor/Qt/DoubleSpinBox.qml
@@ -1,3 +1,35 @@
+/**************************************************************************
+**
+** 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.
+**
+**************************************************************************/
+
 import Qt 4.7
 import Bauhaus 1.0
 
diff --git a/share/qtcreator/qmldesigner/propertyeditor/Qt/DoubleSpinBoxAlternate.qml b/share/qtcreator/qmldesigner/propertyeditor/Qt/DoubleSpinBoxAlternate.qml
index 2fe97d2ae177943c86117df1801a20d6b43ef91d..519cc229b097ba07a2196627ae17a3647abe212a 100644
--- a/share/qtcreator/qmldesigner/propertyeditor/Qt/DoubleSpinBoxAlternate.qml
+++ b/share/qtcreator/qmldesigner/propertyeditor/Qt/DoubleSpinBoxAlternate.qml
@@ -1,3 +1,35 @@
+/**************************************************************************
+**
+** 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.
+**
+**************************************************************************/
+
 import Qt 4.7
 import Bauhaus 1.0
 
diff --git a/share/qtcreator/qmldesigner/propertyeditor/Qt/ExpressionEditor.qml b/share/qtcreator/qmldesigner/propertyeditor/Qt/ExpressionEditor.qml
index 483efc6ce517eee36885940367d91206f5813457..ed4d021589d26e017b44b186e73a86aec495883c 100644
--- a/share/qtcreator/qmldesigner/propertyeditor/Qt/ExpressionEditor.qml
+++ b/share/qtcreator/qmldesigner/propertyeditor/Qt/ExpressionEditor.qml
@@ -1,3 +1,35 @@
+/**************************************************************************
+**
+** 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.
+**
+**************************************************************************/
+
 import Qt 4.7
 import Bauhaus 1.0
 
diff --git a/share/qtcreator/qmldesigner/propertyeditor/Qt/Extended.qml b/share/qtcreator/qmldesigner/propertyeditor/Qt/Extended.qml
index ac2f56fd20b176ac90099b9352d6e7c1042ba060..202715c81301f698e616f75bc4f1b3c6c77b51d1 100644
--- a/share/qtcreator/qmldesigner/propertyeditor/Qt/Extended.qml
+++ b/share/qtcreator/qmldesigner/propertyeditor/Qt/Extended.qml
@@ -1,3 +1,35 @@
+/**************************************************************************
+**
+** 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.
+**
+**************************************************************************/
+
 import Qt 4.7
 import Bauhaus 1.0
 
diff --git a/share/qtcreator/qmldesigner/propertyeditor/Qt/ExtendedFunctionButton.qml b/share/qtcreator/qmldesigner/propertyeditor/Qt/ExtendedFunctionButton.qml
index b943e395d39f37e6da8eb299121f250a23752f40..317fcaa3c59f8d498ae59536376cd6c52d2e7fc9 100644
--- a/share/qtcreator/qmldesigner/propertyeditor/Qt/ExtendedFunctionButton.qml
+++ b/share/qtcreator/qmldesigner/propertyeditor/Qt/ExtendedFunctionButton.qml
@@ -1,3 +1,35 @@
+/**************************************************************************
+**
+** 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.
+**
+**************************************************************************/
+
 import Qt 4.7
 import Bauhaus 1.0
 
diff --git a/share/qtcreator/qmldesigner/propertyeditor/Qt/ExtendedPane.qml b/share/qtcreator/qmldesigner/propertyeditor/Qt/ExtendedPane.qml
index 5e4ba4f58a2d5a3a9547aa389da4072a2cdd5c80..8f5e56753afb6129609259808dca3b9b2c855be3 100644
--- a/share/qtcreator/qmldesigner/propertyeditor/Qt/ExtendedPane.qml
+++ b/share/qtcreator/qmldesigner/propertyeditor/Qt/ExtendedPane.qml
@@ -1,3 +1,35 @@
+/**************************************************************************
+**
+** 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.
+**
+**************************************************************************/
+
 import Qt 4.7
 import Bauhaus 1.0
 
diff --git a/share/qtcreator/qmldesigner/propertyeditor/Qt/ExtendedSwitches.qml b/share/qtcreator/qmldesigner/propertyeditor/Qt/ExtendedSwitches.qml
index 3669e3b169c8172f13008f45de79794c253ad39c..6c3c70a175fcd016f44b0c0eb0ed0d08dfe48665 100644
--- a/share/qtcreator/qmldesigner/propertyeditor/Qt/ExtendedSwitches.qml
+++ b/share/qtcreator/qmldesigner/propertyeditor/Qt/ExtendedSwitches.qml
@@ -1,3 +1,35 @@
+/**************************************************************************
+**
+** 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.
+**
+**************************************************************************/
+
 import Qt 4.7
 import Bauhaus 1.0
 
diff --git a/share/qtcreator/qmldesigner/propertyeditor/Qt/FlagedButton.qml b/share/qtcreator/qmldesigner/propertyeditor/Qt/FlagedButton.qml
index dc0e978d21b7a5d7faeb7bed2af1d5f17dbf93b8..a2bf73b863af0c23cd9eb4d3526c52c9fb90d955 100644
--- a/share/qtcreator/qmldesigner/propertyeditor/Qt/FlagedButton.qml
+++ b/share/qtcreator/qmldesigner/propertyeditor/Qt/FlagedButton.qml
@@ -1,3 +1,35 @@
+/**************************************************************************
+**
+** 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.
+**
+**************************************************************************/
+
 import Qt 4.7
 import Bauhaus 1.0
 
diff --git a/share/qtcreator/qmldesigner/propertyeditor/Qt/FlickableGroupBox.qml b/share/qtcreator/qmldesigner/propertyeditor/Qt/FlickableGroupBox.qml
index 162b928400218757641d09585b9654b82c2a2032..cd3a39a90606e60bf16bcf285b3a60cd901e7e20 100644
--- a/share/qtcreator/qmldesigner/propertyeditor/Qt/FlickableGroupBox.qml
+++ b/share/qtcreator/qmldesigner/propertyeditor/Qt/FlickableGroupBox.qml
@@ -1,3 +1,35 @@
+/**************************************************************************
+**
+** 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.
+**
+**************************************************************************/
+
 import Qt 4.7
 import Bauhaus 1.0
 
diff --git a/share/qtcreator/qmldesigner/propertyeditor/Qt/FlickableSpecifics.qml b/share/qtcreator/qmldesigner/propertyeditor/Qt/FlickableSpecifics.qml
index 6c4d0824182e9efc9516fe98ca7b5f5ea5ec8418..79276766b9db18c0a998d827779c87c2fe9d6d32 100644
--- a/share/qtcreator/qmldesigner/propertyeditor/Qt/FlickableSpecifics.qml
+++ b/share/qtcreator/qmldesigner/propertyeditor/Qt/FlickableSpecifics.qml
@@ -1,3 +1,35 @@
+/**************************************************************************
+**
+** 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.
+**
+**************************************************************************/
+
 import Qt 4.7
 import Bauhaus 1.0
 
diff --git a/share/qtcreator/qmldesigner/propertyeditor/Qt/FlipableSpecifics.qml b/share/qtcreator/qmldesigner/propertyeditor/Qt/FlipableSpecifics.qml
index 1d5c021f4bced4e5d12e55c2cd776d54ba40ec16..1adfb4deaed413e34ca72974bbee598b7ff02d6a 100644
--- a/share/qtcreator/qmldesigner/propertyeditor/Qt/FlipableSpecifics.qml
+++ b/share/qtcreator/qmldesigner/propertyeditor/Qt/FlipableSpecifics.qml
@@ -1,3 +1,35 @@
+/**************************************************************************
+**
+** 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.
+**
+**************************************************************************/
+
 import Qt 4.7
 import Bauhaus 1.0
 
diff --git a/share/qtcreator/qmldesigner/propertyeditor/Qt/FlowSpecifics.qml b/share/qtcreator/qmldesigner/propertyeditor/Qt/FlowSpecifics.qml
index 9bc59d05060eda0bade82fe964c09328ad71d185..726c70b09c7f2bbbdce90bdd6431fa1f2107c759 100644
--- a/share/qtcreator/qmldesigner/propertyeditor/Qt/FlowSpecifics.qml
+++ b/share/qtcreator/qmldesigner/propertyeditor/Qt/FlowSpecifics.qml
@@ -1,3 +1,35 @@
+/**************************************************************************
+**
+** 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.
+**
+**************************************************************************/
+
 import Qt 4.7
 import Bauhaus 1.0
 
diff --git a/share/qtcreator/qmldesigner/propertyeditor/Qt/FontComboBox.qml b/share/qtcreator/qmldesigner/propertyeditor/Qt/FontComboBox.qml
index e11059f22aa094e3346471e5a49bb6dc13c72f20..328ba27f2a01218fe9fb5e43232aa30efb0504f5 100644
--- a/share/qtcreator/qmldesigner/propertyeditor/Qt/FontComboBox.qml
+++ b/share/qtcreator/qmldesigner/propertyeditor/Qt/FontComboBox.qml
@@ -1,3 +1,35 @@
+/**************************************************************************
+**
+** 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.
+**
+**************************************************************************/
+
 import Qt 4.7
 import Bauhaus 1.0
 
diff --git a/share/qtcreator/qmldesigner/propertyeditor/Qt/FontGroupBox.qml b/share/qtcreator/qmldesigner/propertyeditor/Qt/FontGroupBox.qml
index c57846486fec95dd6b650891ee136f142fc765e9..c6cacc72d102191dc155b26256d65ffb25cc21ae 100644
--- a/share/qtcreator/qmldesigner/propertyeditor/Qt/FontGroupBox.qml
+++ b/share/qtcreator/qmldesigner/propertyeditor/Qt/FontGroupBox.qml
@@ -1,3 +1,35 @@
+/**************************************************************************
+**
+** 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.
+**
+**************************************************************************/
+
 import Qt 4.7
 import Bauhaus 1.0
 
diff --git a/share/qtcreator/qmldesigner/propertyeditor/Qt/FontStyleButtons.qml b/share/qtcreator/qmldesigner/propertyeditor/Qt/FontStyleButtons.qml
index 0abd7f7e89ff88f5ac3b112daf4a5379b24ef54b..40945268b533a9ef085c552909fd66da54595855 100644
--- a/share/qtcreator/qmldesigner/propertyeditor/Qt/FontStyleButtons.qml
+++ b/share/qtcreator/qmldesigner/propertyeditor/Qt/FontStyleButtons.qml
@@ -1,3 +1,35 @@
+/**************************************************************************
+**
+** 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.
+**
+**************************************************************************/
+
 import Qt 4.7
 import Bauhaus 1.0
 
diff --git a/share/qtcreator/qmldesigner/propertyeditor/Qt/Geometry.qml b/share/qtcreator/qmldesigner/propertyeditor/Qt/Geometry.qml
index bc8e47ddb505f913762b719cee341c04e27729e7..737083ff89cb24c691374ba66cff8ea3d565ed6f 100644
--- a/share/qtcreator/qmldesigner/propertyeditor/Qt/Geometry.qml
+++ b/share/qtcreator/qmldesigner/propertyeditor/Qt/Geometry.qml
@@ -1,3 +1,35 @@
+/**************************************************************************
+**
+** 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.
+**
+**************************************************************************/
+
 import Qt 4.7
 import Bauhaus 1.0
 
diff --git a/share/qtcreator/qmldesigner/propertyeditor/Qt/GridSpecifics.qml b/share/qtcreator/qmldesigner/propertyeditor/Qt/GridSpecifics.qml
index 092b19963b7ca831579cf8cd0180f3030213a9fe..ed75c200586e258c5ec405bb2084176fb215ed70 100644
--- a/share/qtcreator/qmldesigner/propertyeditor/Qt/GridSpecifics.qml
+++ b/share/qtcreator/qmldesigner/propertyeditor/Qt/GridSpecifics.qml
@@ -1,3 +1,35 @@
+/**************************************************************************
+**
+** 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.
+**
+**************************************************************************/
+
 import Qt 4.7
 import Bauhaus 1.0
 
diff --git a/share/qtcreator/qmldesigner/propertyeditor/Qt/GridViewSpecifics.qml b/share/qtcreator/qmldesigner/propertyeditor/Qt/GridViewSpecifics.qml
index fc9cf78b1fbefad686f636ce0b3f290d851506b6..aeedc767860d43ba9adbd80114ab3db5107c8395 100644
--- a/share/qtcreator/qmldesigner/propertyeditor/Qt/GridViewSpecifics.qml
+++ b/share/qtcreator/qmldesigner/propertyeditor/Qt/GridViewSpecifics.qml
@@ -1,3 +1,35 @@
+/**************************************************************************
+**
+** 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.
+**
+**************************************************************************/
+
 import Qt 4.7
 import Bauhaus 1.0
 
diff --git a/share/qtcreator/qmldesigner/propertyeditor/Qt/GroupBox.qml b/share/qtcreator/qmldesigner/propertyeditor/Qt/GroupBox.qml
index 927d8624d4915e32ab8ccccb169be95bbe6c5b3c..ae25549708f349c2a018d42cdf492800621711dd 100644
--- a/share/qtcreator/qmldesigner/propertyeditor/Qt/GroupBox.qml
+++ b/share/qtcreator/qmldesigner/propertyeditor/Qt/GroupBox.qml
@@ -1,3 +1,35 @@
+/**************************************************************************
+**
+** 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.
+**
+**************************************************************************/
+
 import Qt 4.7
 import Bauhaus 1.0
 
diff --git a/share/qtcreator/qmldesigner/propertyeditor/Qt/GroupBoxOption.qml b/share/qtcreator/qmldesigner/propertyeditor/Qt/GroupBoxOption.qml
index 5a753f8e62934f11d9e9dc4ebee67eba5814dedf..ac414f3fc32dd8dea68155e2c929365335e955bf 100644
--- a/share/qtcreator/qmldesigner/propertyeditor/Qt/GroupBoxOption.qml
+++ b/share/qtcreator/qmldesigner/propertyeditor/Qt/GroupBoxOption.qml
@@ -1,3 +1,35 @@
+/**************************************************************************
+**
+** 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.
+**
+**************************************************************************/
+
 import Qt 4.7
 import Bauhaus 1.0
 
diff --git a/share/qtcreator/qmldesigner/propertyeditor/Qt/HorizontalLayout.qml b/share/qtcreator/qmldesigner/propertyeditor/Qt/HorizontalLayout.qml
index e232a9748d5406512cc2a44347892006372ae011..51020b0f41642c56b8887c00daa8ccdad5e0bec9 100644
--- a/share/qtcreator/qmldesigner/propertyeditor/Qt/HorizontalLayout.qml
+++ b/share/qtcreator/qmldesigner/propertyeditor/Qt/HorizontalLayout.qml
@@ -1,3 +1,35 @@
+/**************************************************************************
+**
+** 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.
+**
+**************************************************************************/
+
 import Qt 4.7
 import Bauhaus 1.0
 
diff --git a/share/qtcreator/qmldesigner/propertyeditor/Qt/HorizontalWhiteLine.qml b/share/qtcreator/qmldesigner/propertyeditor/Qt/HorizontalWhiteLine.qml
index d37816a8e14d22456c866a813ff27679448698c8..b99bec51cc0dc3bf8671e7c64fb5df7c3550178b 100644
--- a/share/qtcreator/qmldesigner/propertyeditor/Qt/HorizontalWhiteLine.qml
+++ b/share/qtcreator/qmldesigner/propertyeditor/Qt/HorizontalWhiteLine.qml
@@ -1,3 +1,35 @@
+/**************************************************************************
+**
+** 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.
+**
+**************************************************************************/
+
 import Qt 4.7
 import Bauhaus 1.0
 
diff --git a/share/qtcreator/qmldesigner/propertyeditor/Qt/ImageSpecifics.qml b/share/qtcreator/qmldesigner/propertyeditor/Qt/ImageSpecifics.qml
index fd45f644b6afa1cafde44e7a4c265ca34abd0268..d24debbceef71b5a83ff2dfc82a5b3edc8704dee 100644
--- a/share/qtcreator/qmldesigner/propertyeditor/Qt/ImageSpecifics.qml
+++ b/share/qtcreator/qmldesigner/propertyeditor/Qt/ImageSpecifics.qml
@@ -1,3 +1,35 @@
+/**************************************************************************
+**
+** 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.
+**
+**************************************************************************/
+
 import Qt 4.7
 import Bauhaus 1.0
 
diff --git a/share/qtcreator/qmldesigner/propertyeditor/Qt/IntEditor.qml b/share/qtcreator/qmldesigner/propertyeditor/Qt/IntEditor.qml
index e7fbabf4fcae3a07c7dfdc859e9723d421313f18..e889787145695eb2ddd3479887b7033386aed3ca 100644
--- a/share/qtcreator/qmldesigner/propertyeditor/Qt/IntEditor.qml
+++ b/share/qtcreator/qmldesigner/propertyeditor/Qt/IntEditor.qml
@@ -1,3 +1,35 @@
+/**************************************************************************
+**
+** 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.
+**
+**************************************************************************/
+
 import Qt 4.7
 import Bauhaus 1.0
 
diff --git a/share/qtcreator/qmldesigner/propertyeditor/Qt/ItemPane.qml b/share/qtcreator/qmldesigner/propertyeditor/Qt/ItemPane.qml
index 5689950fe2a9af67c47bd355353715c33a3d0b7b..d5624f314dddeb8191132729193d1665e5a8c926 100644
--- a/share/qtcreator/qmldesigner/propertyeditor/Qt/ItemPane.qml
+++ b/share/qtcreator/qmldesigner/propertyeditor/Qt/ItemPane.qml
@@ -1,3 +1,35 @@
+/**************************************************************************
+**
+** 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.
+**
+**************************************************************************/
+
 import Qt 4.7
 import Bauhaus 1.0
 
diff --git a/share/qtcreator/qmldesigner/propertyeditor/Qt/Label.qml b/share/qtcreator/qmldesigner/propertyeditor/Qt/Label.qml
index c3c7c5851aed019c9c27741472a6e094cc3fd820..c1d188784ec9541ece38383b0cb9b174682afe4c 100644
--- a/share/qtcreator/qmldesigner/propertyeditor/Qt/Label.qml
+++ b/share/qtcreator/qmldesigner/propertyeditor/Qt/Label.qml
@@ -1,3 +1,35 @@
+/**************************************************************************
+**
+** 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.
+**
+**************************************************************************/
+
 import Qt 4.7
 import Bauhaus 1.0
 
diff --git a/share/qtcreator/qmldesigner/propertyeditor/Qt/Layout.qml b/share/qtcreator/qmldesigner/propertyeditor/Qt/Layout.qml
index 1475dd06ff70852fae6ec7e7dda602f81231f04c..bbde64075b939c05fad5d4f385f12091bb782fef 100644
--- a/share/qtcreator/qmldesigner/propertyeditor/Qt/Layout.qml
+++ b/share/qtcreator/qmldesigner/propertyeditor/Qt/Layout.qml
@@ -1,3 +1,35 @@
+/**************************************************************************
+**
+** 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.
+**
+**************************************************************************/
+
 import Qt 4.7
 import Bauhaus 1.0
 
diff --git a/share/qtcreator/qmldesigner/propertyeditor/Qt/LayoutPane.qml b/share/qtcreator/qmldesigner/propertyeditor/Qt/LayoutPane.qml
index efa89e20ea4e4c4ffefa3fad3cac93fa70093d56..918f27369c38ad2c14934213dd302711c74a98fc 100644
--- a/share/qtcreator/qmldesigner/propertyeditor/Qt/LayoutPane.qml
+++ b/share/qtcreator/qmldesigner/propertyeditor/Qt/LayoutPane.qml
@@ -1,3 +1,35 @@
+/**************************************************************************
+**
+** 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.
+**
+**************************************************************************/
+
 import Qt 4.7
 import Bauhaus 1.0
 
diff --git a/share/qtcreator/qmldesigner/propertyeditor/Qt/LineEdit.qml b/share/qtcreator/qmldesigner/propertyeditor/Qt/LineEdit.qml
index 0909caf84663f7075c8e90c9736e26b4172d4d3d..a80e4dbde126f22f6e655c2cfdc63704756935f1 100644
--- a/share/qtcreator/qmldesigner/propertyeditor/Qt/LineEdit.qml
+++ b/share/qtcreator/qmldesigner/propertyeditor/Qt/LineEdit.qml
@@ -1,3 +1,35 @@
+/**************************************************************************
+**
+** 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.
+**
+**************************************************************************/
+
 import Qt 4.7
 import Bauhaus 1.0
 
diff --git a/share/qtcreator/qmldesigner/propertyeditor/Qt/ListViewSpecifics.qml b/share/qtcreator/qmldesigner/propertyeditor/Qt/ListViewSpecifics.qml
index dbab81eeb25b2cadd26a892f3a86265f03a361e3..0ba6f1af54442faf4cf796c3cba285190a467953 100644
--- a/share/qtcreator/qmldesigner/propertyeditor/Qt/ListViewSpecifics.qml
+++ b/share/qtcreator/qmldesigner/propertyeditor/Qt/ListViewSpecifics.qml
@@ -1,3 +1,35 @@
+/**************************************************************************
+**
+** 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.
+**
+**************************************************************************/
+
 import Qt 4.7
 import Bauhaus 1.0
 
diff --git a/share/qtcreator/qmldesigner/propertyeditor/Qt/Modifiers.qml b/share/qtcreator/qmldesigner/propertyeditor/Qt/Modifiers.qml
index 13bd9ba2ee265a08d3b1205930bf2d11d81a4a04..d1f6b59646a070733203cbadc6664feb609046c6 100644
--- a/share/qtcreator/qmldesigner/propertyeditor/Qt/Modifiers.qml
+++ b/share/qtcreator/qmldesigner/propertyeditor/Qt/Modifiers.qml
@@ -1,3 +1,35 @@
+/**************************************************************************
+**
+** 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.
+**
+**************************************************************************/
+
 import Qt 4.7
 import Bauhaus 1.0
 
diff --git a/share/qtcreator/qmldesigner/propertyeditor/Qt/MouseAreaSpecifics.qml b/share/qtcreator/qmldesigner/propertyeditor/Qt/MouseAreaSpecifics.qml
index 9a7777c23d8beae237723b70187698a564ae5bb7..b5041c7f4a83e9c96299e289b5099af16582cc4d 100644
--- a/share/qtcreator/qmldesigner/propertyeditor/Qt/MouseAreaSpecifics.qml
+++ b/share/qtcreator/qmldesigner/propertyeditor/Qt/MouseAreaSpecifics.qml
@@ -1,3 +1,35 @@
+/**************************************************************************
+**
+** 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.
+**
+**************************************************************************/
+
 import Qt 4.7
 import Bauhaus 1.0
 
diff --git a/share/qtcreator/qmldesigner/propertyeditor/Qt/PathViewSpecifics.qml b/share/qtcreator/qmldesigner/propertyeditor/Qt/PathViewSpecifics.qml
index 47eae2e405cb63dc5e86541e161af6a3671c8280..c0a2fbd9730a87c8addb186061f5724b59ab202f 100644
--- a/share/qtcreator/qmldesigner/propertyeditor/Qt/PathViewSpecifics.qml
+++ b/share/qtcreator/qmldesigner/propertyeditor/Qt/PathViewSpecifics.qml
@@ -1,3 +1,35 @@
+/**************************************************************************
+**
+** 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.
+**
+**************************************************************************/
+
 import Qt 4.7
 import Bauhaus 1.0
 
diff --git a/share/qtcreator/qmldesigner/propertyeditor/Qt/PlaceHolder.qml b/share/qtcreator/qmldesigner/propertyeditor/Qt/PlaceHolder.qml
index 7c1ad73db5fb0eb697c64f3f7b46c7c76be537c5..979293ce13484bf571f7f54e10543b7b37bfcfcb 100644
--- a/share/qtcreator/qmldesigner/propertyeditor/Qt/PlaceHolder.qml
+++ b/share/qtcreator/qmldesigner/propertyeditor/Qt/PlaceHolder.qml
@@ -1,3 +1,35 @@
+/**************************************************************************
+**
+** 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.
+**
+**************************************************************************/
+
 import Qt 4.7
 import Bauhaus 1.0
 
diff --git a/share/qtcreator/qmldesigner/propertyeditor/Qt/PropertyFrame.qml b/share/qtcreator/qmldesigner/propertyeditor/Qt/PropertyFrame.qml
index 13086c4cbc00de73ddf75c7c3f81b6527a58fd30..144a07e3fa03e7e2af7de2c2a431d010406e1925 100644
--- a/share/qtcreator/qmldesigner/propertyeditor/Qt/PropertyFrame.qml
+++ b/share/qtcreator/qmldesigner/propertyeditor/Qt/PropertyFrame.qml
@@ -1,3 +1,35 @@
+/**************************************************************************
+**
+** 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.
+**
+**************************************************************************/
+
 import Qt 4.7
 import Bauhaus 1.0
 
diff --git a/share/qtcreator/qmldesigner/propertyeditor/Qt/RectangleColorGroupBox.qml b/share/qtcreator/qmldesigner/propertyeditor/Qt/RectangleColorGroupBox.qml
index a6feca92d6a6546fbbb8314eeeb7fc4a663ac068..79dafeccdba3a548f40ee6531c364d326bd1dfdd 100644
--- a/share/qtcreator/qmldesigner/propertyeditor/Qt/RectangleColorGroupBox.qml
+++ b/share/qtcreator/qmldesigner/propertyeditor/Qt/RectangleColorGroupBox.qml
@@ -1,3 +1,35 @@
+/**************************************************************************
+**
+** 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.
+**
+**************************************************************************/
+
 import Qt 4.7
 import Bauhaus 1.0
 
diff --git a/share/qtcreator/qmldesigner/propertyeditor/Qt/RectangleSpecifics.qml b/share/qtcreator/qmldesigner/propertyeditor/Qt/RectangleSpecifics.qml
index 66e2ddcfe8009a9903e8372d5639f687b6d72108..ebeb4afc0e6774a6c2a8cf4e958bd8d083531715 100644
--- a/share/qtcreator/qmldesigner/propertyeditor/Qt/RectangleSpecifics.qml
+++ b/share/qtcreator/qmldesigner/propertyeditor/Qt/RectangleSpecifics.qml
@@ -1,3 +1,35 @@
+/**************************************************************************
+**
+** 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.
+**
+**************************************************************************/
+
 import Qt 4.7
 import Bauhaus 1.0
 
diff --git a/share/qtcreator/qmldesigner/propertyeditor/Qt/RowSpecifics.qml b/share/qtcreator/qmldesigner/propertyeditor/Qt/RowSpecifics.qml
index 0ffe12f1e2262df254cd88013dc33448fadcd1df..13bf7a22040b77bf205802bb4fa80b84ecd9e5b6 100644
--- a/share/qtcreator/qmldesigner/propertyeditor/Qt/RowSpecifics.qml
+++ b/share/qtcreator/qmldesigner/propertyeditor/Qt/RowSpecifics.qml
@@ -1,3 +1,35 @@
+/**************************************************************************
+**
+** 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.
+**
+**************************************************************************/
+
 import Qt 4.7
 import Bauhaus 1.0
 
diff --git a/share/qtcreator/qmldesigner/propertyeditor/Qt/ScrollArea.qml b/share/qtcreator/qmldesigner/propertyeditor/Qt/ScrollArea.qml
index 85913dbd3a05db7315f49ed0e9e8e84068e9fa1e..5db50627e038c5e930a5520acb85b20d21e506e8 100644
--- a/share/qtcreator/qmldesigner/propertyeditor/Qt/ScrollArea.qml
+++ b/share/qtcreator/qmldesigner/propertyeditor/Qt/ScrollArea.qml
@@ -1,3 +1,35 @@
+/**************************************************************************
+**
+** 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.
+**
+**************************************************************************/
+
 import Qt 4.7
 import Bauhaus 1.0
 
diff --git a/share/qtcreator/qmldesigner/propertyeditor/Qt/SliderWidget.qml b/share/qtcreator/qmldesigner/propertyeditor/Qt/SliderWidget.qml
index b0a5a61f46dd769130b939297ccb1c1e495d9957..2972ca2779e5e67ae160c96b43e2bab7a9914832 100644
--- a/share/qtcreator/qmldesigner/propertyeditor/Qt/SliderWidget.qml
+++ b/share/qtcreator/qmldesigner/propertyeditor/Qt/SliderWidget.qml
@@ -1,3 +1,35 @@
+/**************************************************************************
+**
+** 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.
+**
+**************************************************************************/
+
 import Qt 4.7
 import Bauhaus 1.0
 
diff --git a/share/qtcreator/qmldesigner/propertyeditor/Qt/SpinBox.qml b/share/qtcreator/qmldesigner/propertyeditor/Qt/SpinBox.qml
index 60f79d618a6859fd57e9944ce77031f7ddba1bdb..18303831bbecb329eedd5ee80a4f8c7d526411bd 100644
--- a/share/qtcreator/qmldesigner/propertyeditor/Qt/SpinBox.qml
+++ b/share/qtcreator/qmldesigner/propertyeditor/Qt/SpinBox.qml
@@ -1,3 +1,35 @@
+/**************************************************************************
+**
+** 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.
+**
+**************************************************************************/
+
 import Qt 4.7
 import Bauhaus 1.0
 
diff --git a/share/qtcreator/qmldesigner/propertyeditor/Qt/StandardTextColorGroupBox.qml b/share/qtcreator/qmldesigner/propertyeditor/Qt/StandardTextColorGroupBox.qml
index 07645f3036201c6e51fe22099a1c6c018d59a982..926d677a8f37f9dd93a8bcafc820b3595f536444 100644
--- a/share/qtcreator/qmldesigner/propertyeditor/Qt/StandardTextColorGroupBox.qml
+++ b/share/qtcreator/qmldesigner/propertyeditor/Qt/StandardTextColorGroupBox.qml
@@ -1,3 +1,35 @@
+/**************************************************************************
+**
+** 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.
+**
+**************************************************************************/
+
 import Qt 4.7
 import Bauhaus 1.0
 
diff --git a/share/qtcreator/qmldesigner/propertyeditor/Qt/StandardTextGroupBox.qml b/share/qtcreator/qmldesigner/propertyeditor/Qt/StandardTextGroupBox.qml
index 3f29936cbfbf3236524dd3fdedc3f6c4e32b5e0c..fda6d93522d37bff13f04adeab620c4b6cea3f2a 100644
--- a/share/qtcreator/qmldesigner/propertyeditor/Qt/StandardTextGroupBox.qml
+++ b/share/qtcreator/qmldesigner/propertyeditor/Qt/StandardTextGroupBox.qml
@@ -1,3 +1,35 @@
+/**************************************************************************
+**
+** 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.
+**
+**************************************************************************/
+
 import Qt 4.7
 import Bauhaus 1.0
 
diff --git a/share/qtcreator/qmldesigner/propertyeditor/Qt/Switches.qml b/share/qtcreator/qmldesigner/propertyeditor/Qt/Switches.qml
index f9c8890062c2f17f90d239e4502998bae96065ac..e842709425a1fcc1fe8cce2811d1da9b4491655a 100644
--- a/share/qtcreator/qmldesigner/propertyeditor/Qt/Switches.qml
+++ b/share/qtcreator/qmldesigner/propertyeditor/Qt/Switches.qml
@@ -1,3 +1,35 @@
+/**************************************************************************
+**
+** 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.
+**
+**************************************************************************/
+
 import Qt 4.7
 import Bauhaus 1.0
 
diff --git a/share/qtcreator/qmldesigner/propertyeditor/Qt/TextEditSpecifics.qml b/share/qtcreator/qmldesigner/propertyeditor/Qt/TextEditSpecifics.qml
index 6a0dc35f3bf2d80be67f608dc4a66b5f9fbd78a8..f7c26a54c9212995b74d7d08d7f0b1c4508b4e96 100644
--- a/share/qtcreator/qmldesigner/propertyeditor/Qt/TextEditSpecifics.qml
+++ b/share/qtcreator/qmldesigner/propertyeditor/Qt/TextEditSpecifics.qml
@@ -1,3 +1,35 @@
+/**************************************************************************
+**
+** 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.
+**
+**************************************************************************/
+
 import Qt 4.7
 import Bauhaus 1.0
 
diff --git a/share/qtcreator/qmldesigner/propertyeditor/Qt/TextInputGroupBox.qml b/share/qtcreator/qmldesigner/propertyeditor/Qt/TextInputGroupBox.qml
index dc64c5770904f034c92d09807a690dcacb0876dc..577e364c8dfc844551c78d2e97159dfb1a15ded1 100644
--- a/share/qtcreator/qmldesigner/propertyeditor/Qt/TextInputGroupBox.qml
+++ b/share/qtcreator/qmldesigner/propertyeditor/Qt/TextInputGroupBox.qml
@@ -1,3 +1,35 @@
+/**************************************************************************
+**
+** 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.
+**
+**************************************************************************/
+
 import Qt 4.7
 import Bauhaus 1.0
 
diff --git a/share/qtcreator/qmldesigner/propertyeditor/Qt/TextInputSpecifics.qml b/share/qtcreator/qmldesigner/propertyeditor/Qt/TextInputSpecifics.qml
index 3a98fe9a61c0a21db3e4f3b6f1624f050d78ff4a..1d55a3e36512ebc9222cb76d29f8d82c1323c7b5 100644
--- a/share/qtcreator/qmldesigner/propertyeditor/Qt/TextInputSpecifics.qml
+++ b/share/qtcreator/qmldesigner/propertyeditor/Qt/TextInputSpecifics.qml
@@ -1,3 +1,35 @@
+/**************************************************************************
+**
+** 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.
+**
+**************************************************************************/
+
 import Qt 4.7
 import Bauhaus 1.0
 
diff --git a/share/qtcreator/qmldesigner/propertyeditor/Qt/TextSpecifics.qml b/share/qtcreator/qmldesigner/propertyeditor/Qt/TextSpecifics.qml
index 666c5091c47029bfc75173f100a6ea1128a65931..78e83dff0623ed6f5158182bf1221967b36d2b03 100644
--- a/share/qtcreator/qmldesigner/propertyeditor/Qt/TextSpecifics.qml
+++ b/share/qtcreator/qmldesigner/propertyeditor/Qt/TextSpecifics.qml
@@ -1,3 +1,35 @@
+/**************************************************************************
+**
+** 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.
+**
+**************************************************************************/
+
 import Qt 4.7
 import Bauhaus 1.0
 
diff --git a/share/qtcreator/qmldesigner/propertyeditor/Qt/Transformation.qml b/share/qtcreator/qmldesigner/propertyeditor/Qt/Transformation.qml
index 8a0af921242efcd0c617a7a56fbe7aad538eee38..047abcfd8f73510d6e3ea4f9bdc218fd94176172 100644
--- a/share/qtcreator/qmldesigner/propertyeditor/Qt/Transformation.qml
+++ b/share/qtcreator/qmldesigner/propertyeditor/Qt/Transformation.qml
@@ -1,3 +1,35 @@
+/**************************************************************************
+**
+** 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.
+**
+**************************************************************************/
+
 import Qt 4.7
 import Bauhaus 1.0
 
diff --git a/share/qtcreator/qmldesigner/propertyeditor/Qt/Type.qml b/share/qtcreator/qmldesigner/propertyeditor/Qt/Type.qml
index 702212eda81925959afdba7b2b0dfc4e3ef0296b..54b43f91b388f7307c836763e86425569edaf96f 100644
--- a/share/qtcreator/qmldesigner/propertyeditor/Qt/Type.qml
+++ b/share/qtcreator/qmldesigner/propertyeditor/Qt/Type.qml
@@ -1,3 +1,35 @@
+/**************************************************************************
+**
+** 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.
+**
+**************************************************************************/
+
 import Qt 4.7
 import Bauhaus 1.0
 
diff --git a/share/qtcreator/qmldesigner/propertyeditor/Qt/VerticalLayout.qml b/share/qtcreator/qmldesigner/propertyeditor/Qt/VerticalLayout.qml
index f60d062eeec9bd44546a16f7ae1e3a5e37de8411..5ff63d5a45ffaffdfe4476c4765cddce3e73121b 100644
--- a/share/qtcreator/qmldesigner/propertyeditor/Qt/VerticalLayout.qml
+++ b/share/qtcreator/qmldesigner/propertyeditor/Qt/VerticalLayout.qml
@@ -1,3 +1,35 @@
+/**************************************************************************
+**
+** 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.
+**
+**************************************************************************/
+
 import Qt 4.7
 import Bauhaus 1.0
 
diff --git a/share/qtcreator/qmldesigner/propertyeditor/Qt/Visibility.qml b/share/qtcreator/qmldesigner/propertyeditor/Qt/Visibility.qml
index 398ca2b29abfe86a6970f7de1fae4851f89343fd..741902affe64cdbf62dc192409b7b61294bbff78 100644
--- a/share/qtcreator/qmldesigner/propertyeditor/Qt/Visibility.qml
+++ b/share/qtcreator/qmldesigner/propertyeditor/Qt/Visibility.qml
@@ -1,3 +1,35 @@
+/**************************************************************************
+**
+** 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.
+**
+**************************************************************************/
+
 import Qt 4.7
 import Bauhaus 1.0
 
diff --git a/share/qtcreator/qmldesigner/propertyeditor/Qt/emptyPane.qml b/share/qtcreator/qmldesigner/propertyeditor/Qt/emptyPane.qml
index 5f2b1e506b5f59dedd721d532a58a4460c94f06a..10a563827c8d224c6a3aaf7e964a912d21581ffd 100644
--- a/share/qtcreator/qmldesigner/propertyeditor/Qt/emptyPane.qml
+++ b/share/qtcreator/qmldesigner/propertyeditor/Qt/emptyPane.qml
@@ -1,3 +1,35 @@
+/**************************************************************************
+**
+** 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.
+**
+**************************************************************************/
+
 import Qt 4.7
 import Bauhaus 1.0
 
diff --git a/share/qtcreator/qmldesigner/propertyeditor/QtWebKit/WebViewSpecifics.qml b/share/qtcreator/qmldesigner/propertyeditor/QtWebKit/WebViewSpecifics.qml
index 575c510a5897ec9f269c0b827dfa2af158a6a5b0..a089b954789cebc76a1a7f1b659d38d1637653ab 100644
--- a/share/qtcreator/qmldesigner/propertyeditor/QtWebKit/WebViewSpecifics.qml
+++ b/share/qtcreator/qmldesigner/propertyeditor/QtWebKit/WebViewSpecifics.qml
@@ -1,3 +1,35 @@
+/**************************************************************************
+**
+** 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.
+**
+**************************************************************************/
+
 import Qt 4.7
 import Bauhaus 1.0
 import "../Qt/"
diff --git a/share/qtcreator/templates/wizards/helloworld/wizard_sample.xml b/share/qtcreator/templates/wizards/helloworld/wizard_sample.xml
index 3317e0abbdb0196852882a87df7b486ccbff20f2..5fee3deb6f736ee98366058524f878f0a3c710f0 100644
--- a/share/qtcreator/templates/wizards/helloworld/wizard_sample.xml
+++ b/share/qtcreator/templates/wizards/helloworld/wizard_sample.xml
@@ -28,7 +28,7 @@
 ** 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 qt-info@nokia.com.
+** Nokia at info@qt.nokia.com.
 **
 **************************************************************************/
 
diff --git a/share/qtcreator/templates/wizards/listmodel/wizard_sample.xml b/share/qtcreator/templates/wizards/listmodel/wizard_sample.xml
index a8c0afa8c9e2ecd5134f9ff2b43a36541ad48d8f..a7011dfcc0df1ad8d38c9ea51718cd0e70a186ae 100644
--- a/share/qtcreator/templates/wizards/listmodel/wizard_sample.xml
+++ b/share/qtcreator/templates/wizards/listmodel/wizard_sample.xml
@@ -28,7 +28,7 @@
 ** 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 qt-info@nokia.com.
+** Nokia at info@qt.nokia.com.
 **
 **************************************************************************/
 
diff --git a/share/qtcreator/templates/wizards/qml-extension/wizard.xml b/share/qtcreator/templates/wizards/qml-extension/wizard.xml
index 49a3dbdf5c3dd3ac8a0e7d699efc71ed2867060c..7ea0ac80c3690c966b4a35ee008c5298c846e439 100644
--- a/share/qtcreator/templates/wizards/qml-extension/wizard.xml
+++ b/share/qtcreator/templates/wizards/qml-extension/wizard.xml
@@ -28,7 +28,7 @@
 ** 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 qt-info@nokia.com.
+** Nokia at info@qt.nokia.com.
 **
 **************************************************************************/
 
diff --git a/share/qtcreator/templates/wizards/qtcreatorplugin/wizard.xml b/share/qtcreator/templates/wizards/qtcreatorplugin/wizard.xml
index 5f5bb94be31fa9a4c0d915970df1a70e78cd9493..05a6c3096bbe72614d971771d72714dfcc28db25 100644
--- a/share/qtcreator/templates/wizards/qtcreatorplugin/wizard.xml
+++ b/share/qtcreator/templates/wizards/qtcreatorplugin/wizard.xml
@@ -28,7 +28,7 @@
 ** 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 qt-info@nokia.com.
+** Nokia at info@qt.nokia.com.
 **
 **************************************************************************/
 
diff --git a/share/qtcreator/templates/wizards/scriptgeneratedproject/wizard_sample.xml b/share/qtcreator/templates/wizards/scriptgeneratedproject/wizard_sample.xml
index ce32b538105b0a01e43d8df330ffc80247e9b7cf..3718a346e9704dd70ce4698bf694e7715b2a28aa 100644
--- a/share/qtcreator/templates/wizards/scriptgeneratedproject/wizard_sample.xml
+++ b/share/qtcreator/templates/wizards/scriptgeneratedproject/wizard_sample.xml
@@ -28,7 +28,7 @@
 ** 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 qt-info@nokia.com.
+** Nokia at info@qt.nokia.com.
 **
 **************************************************************************/
 
diff --git a/share/qtcreator/translations/check-ts.pl b/share/qtcreator/translations/check-ts.pl
index 5b126d3bf2ac47d990164d8baf1441f43bf54ea5..1bf79d54527d17fb2280402c6a78afc200ea0364 100755
--- a/share/qtcreator/translations/check-ts.pl
+++ b/share/qtcreator/translations/check-ts.pl
@@ -26,7 +26,7 @@
 ## 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 qt-info@nokia.com.
+## Nokia at info@qt.nokia.com.
 ##
 ##
 ##
diff --git a/share/qtcreator/translations/translations.pro b/share/qtcreator/translations/translations.pro
index 51343d4d76febc320a0e5907e871a377dff7bb43..0d6e672a379a1959fd0c18fa811be3e2d9f9b41f 100644
--- a/share/qtcreator/translations/translations.pro
+++ b/share/qtcreator/translations/translations.pro
@@ -1,6 +1,6 @@
 include(../../../qtcreator.pri)
 
-LANGUAGES = cs de fr hu ja ru sl zh_CN
+LANGUAGES = cs de fr hu ja pl ru sl zh_CN
 
 # var, prepend, append
 defineReplace(prependAll) {
@@ -40,7 +40,8 @@ plugin_sources -= src/plugins/plugins.pro \
     src/plugins/qtestlib \
     src/plugins/snippets \
     src/plugins/regexp
-sources = src/app src/libs $$plugin_sources src/shared share/qtcreator/qmldesigner
+sources = src/app src/libs $$plugin_sources src/shared share/qtcreator/qmldesigner \
+          share/qtcreator/welcomescreen share/qtcreator/welcomescreen/widgets
 
 files = $$files($$PWD/*_??.ts) $$PWD/qtcreator_untranslated.ts
 for(file, files) {
diff --git a/share/qtcreator/welcomescreen/components/Button.qml b/share/qtcreator/welcomescreen/components/Button.qml
index 2cc4d434ef1690e637d536604204707a6a4023c7..050eeb4ddc0c2ff5ae984ff039f6ecffdb826a35 100644
--- a/share/qtcreator/welcomescreen/components/Button.qml
+++ b/share/qtcreator/welcomescreen/components/Button.qml
@@ -1,6 +1,37 @@
+/**************************************************************************
+**
+** 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.
+**
+**************************************************************************/
+
 import QtQuick 1.0
 import "custom" as Components
-import "plugin"
 
 Components.Button {
     id:button
diff --git a/share/qtcreator/welcomescreen/components/ButtonRow.qml b/share/qtcreator/welcomescreen/components/ButtonRow.qml
index 7123b415b946d101788a6b2b019b650fd85f5d15..b2cba92849ded5a6ccadc52787adc32f530573b8 100644
--- a/share/qtcreator/welcomescreen/components/ButtonRow.qml
+++ b/share/qtcreator/welcomescreen/components/ButtonRow.qml
@@ -1,3 +1,35 @@
+/**************************************************************************
+**
+** 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.
+**
+**************************************************************************/
+
 import QtQuick 1.0
 import "custom" as Components
 
diff --git a/share/qtcreator/welcomescreen/components/CheckBox.qml b/share/qtcreator/welcomescreen/components/CheckBox.qml
index 51055f84670ce36d48d48c1a91e491a73afa50d2..b8b94ca77f51dbcedfbcfc62c45ca7e2194c5230 100644
--- a/share/qtcreator/welcomescreen/components/CheckBox.qml
+++ b/share/qtcreator/welcomescreen/components/CheckBox.qml
@@ -1,6 +1,37 @@
+/**************************************************************************
+**
+** 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.
+**
+**************************************************************************/
+
 import QtQuick 1.0
 import "custom" as Components
-import "plugin"
 
 // jb : Size should not depend on background, we should make it consistent
 
diff --git a/share/qtcreator/welcomescreen/components/ChoiceList.qml b/share/qtcreator/welcomescreen/components/ChoiceList.qml
index eb6b5fddbe94040008a782f6fb78c9fcb7755c39..cf72493421f58a1793e045e6571ffa8e84d2d54c 100644
--- a/share/qtcreator/welcomescreen/components/ChoiceList.qml
+++ b/share/qtcreator/welcomescreen/components/ChoiceList.qml
@@ -1,6 +1,37 @@
+/**************************************************************************
+**
+** 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.
+**
+**************************************************************************/
+
 import QtQuick 1.0
 import "custom" as Components
-import "plugin"
 
 Components.ChoiceList {
 
diff --git a/share/qtcreator/welcomescreen/components/ContextMenu.qml b/share/qtcreator/welcomescreen/components/ContextMenu.qml
index 14fbc8da9dd33378b56181ebdd13adc5d66c5246..9592a2068c1b2391716f28f0dba26870ae089aa2 100644
--- a/share/qtcreator/welcomescreen/components/ContextMenu.qml
+++ b/share/qtcreator/welcomescreen/components/ContextMenu.qml
@@ -1,3 +1,35 @@
+/**************************************************************************
+**
+** 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.
+**
+**************************************************************************/
+
 import QtQuick 1.0
 import "custom" as Components
 
diff --git a/share/qtcreator/welcomescreen/components/Dial.qml b/share/qtcreator/welcomescreen/components/Dial.qml
index e1b367b9a4b0f5c4f5fe743916aa25e33e23b966..9793b46be1e9c32a1920dc3a98d99a4c7f313199 100644
--- a/share/qtcreator/welcomescreen/components/Dial.qml
+++ b/share/qtcreator/welcomescreen/components/Dial.qml
@@ -1,6 +1,37 @@
+/**************************************************************************
+**
+** 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.
+**
+**************************************************************************/
+
 import QtQuick 1.0
 import "custom" as Components
-import "plugin"
 
 // jens: ContainsMouse breaks drag functionality
 
diff --git a/share/qtcreator/welcomescreen/components/Frame.qml b/share/qtcreator/welcomescreen/components/Frame.qml
index 24a8e8332efa58056954e2aae19c97414af799f9..f101cb6b01e7f68b37ea26bff40f0f5ba80d7089 100644
--- a/share/qtcreator/welcomescreen/components/Frame.qml
+++ b/share/qtcreator/welcomescreen/components/Frame.qml
@@ -1,6 +1,37 @@
+/**************************************************************************
+**
+** 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.
+**
+**************************************************************************/
+
 import QtQuick 1.0
 import "custom" as Components
-import "plugin"
 
 
 QStyleBackground {
diff --git a/share/qtcreator/welcomescreen/components/GroupBox.qml b/share/qtcreator/welcomescreen/components/GroupBox.qml
index d2184d515f6b7601c06d7f72f63f4466b2d2c7fa..b9de3ad662ac59d8775051c3e68622eb5d117dd8 100644
--- a/share/qtcreator/welcomescreen/components/GroupBox.qml
+++ b/share/qtcreator/welcomescreen/components/GroupBox.qml
@@ -1,6 +1,37 @@
+/**************************************************************************
+**
+** 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.
+**
+**************************************************************************/
+
 import QtQuick 1.0
 import "custom" as Components
-import "plugin"
 
 Components.GroupBox {
     id: groupbox
diff --git a/share/qtcreator/welcomescreen/components/Menu.qml b/share/qtcreator/welcomescreen/components/Menu.qml
index 000219ece9d9c5a9bf33299d92342aeba6b48463..8db25dbcae59500d82d3bd5c248abdaada77e709 100644
--- a/share/qtcreator/welcomescreen/components/Menu.qml
+++ b/share/qtcreator/welcomescreen/components/Menu.qml
@@ -1,5 +1,36 @@
+/**************************************************************************
+**
+** 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.
+**
+**************************************************************************/
+
 import QtQuick 1.0
-import "../components/plugin"
 
 MenuBase {
 
diff --git a/share/qtcreator/welcomescreen/components/MenuItem.qml b/share/qtcreator/welcomescreen/components/MenuItem.qml
index 52a0511f0f90ab328b7de7941e113ce8230fc8f4..d02b3500a6531a7836f16bac32670f5efefe2d20 100644
--- a/share/qtcreator/welcomescreen/components/MenuItem.qml
+++ b/share/qtcreator/welcomescreen/components/MenuItem.qml
@@ -1,5 +1,36 @@
+/**************************************************************************
+**
+** 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.
+**
+**************************************************************************/
+
 import QtQuick 1.0
-import "../components/plugin"
 
 MenuItemBase {
 
diff --git a/share/qtcreator/welcomescreen/components/ProgressBar.qml b/share/qtcreator/welcomescreen/components/ProgressBar.qml
index 9b2d368a3711ca33089f434b086b8d86e075c11b..358993554d16ae9288b5ac1f7c866d8eb784ad14 100644
--- a/share/qtcreator/welcomescreen/components/ProgressBar.qml
+++ b/share/qtcreator/welcomescreen/components/ProgressBar.qml
@@ -1,6 +1,37 @@
+/**************************************************************************
+**
+** 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.
+**
+**************************************************************************/
+
 import QtQuick 1.0
 import "custom" as Components
-import "plugin"
 
 Components.ProgressBar {
     id:progressbar
diff --git a/share/qtcreator/welcomescreen/components/RadioButton.qml b/share/qtcreator/welcomescreen/components/RadioButton.qml
index cfc16c95951440579bd9acf38089796dd28a0d83..9045158fb6706aae9480262eb855ae69599c2e8f 100644
--- a/share/qtcreator/welcomescreen/components/RadioButton.qml
+++ b/share/qtcreator/welcomescreen/components/RadioButton.qml
@@ -1,6 +1,37 @@
+/**************************************************************************
+**
+** 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.
+**
+**************************************************************************/
+
 import QtQuick 1.0
 import "custom" as Components
-import "plugin"
 
 // jb : Size should not depend on background, we should make it consistent
 
diff --git a/share/qtcreator/welcomescreen/components/ScrollArea.qml b/share/qtcreator/welcomescreen/components/ScrollArea.qml
index 4c79a093d0136315e240f3a55510baa891d72f07..8f32e38d261c8325a386f81a7591582cca297cb4 100644
--- a/share/qtcreator/welcomescreen/components/ScrollArea.qml
+++ b/share/qtcreator/welcomescreen/components/ScrollArea.qml
@@ -1,6 +1,37 @@
+/**************************************************************************
+**
+** 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.
+**
+**************************************************************************/
+
 import QtQuick 1.0
 import "custom" as Components
-import "plugin"
 
 FocusScope {
     id: scrollarea
diff --git a/share/qtcreator/welcomescreen/components/ScrollBar.qml b/share/qtcreator/welcomescreen/components/ScrollBar.qml
index ef1a93779d61eeec0fb28e3987c18af3a1b87991..fcd16450ed9ca04d7bdfd7e3ef921751d5d6508a 100644
--- a/share/qtcreator/welcomescreen/components/ScrollBar.qml
+++ b/share/qtcreator/welcomescreen/components/ScrollBar.qml
@@ -1,6 +1,37 @@
+/**************************************************************************
+**
+** 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.
+**
+**************************************************************************/
+
 import QtQuick 1.0
 import "custom" as Components
-import "plugin"
 
 Item {
     id: scrollbar
diff --git a/share/qtcreator/welcomescreen/components/Slider.qml b/share/qtcreator/welcomescreen/components/Slider.qml
index b8720351fbc75c97c94b3d54bc7e78fb8da49861..ca2c5a49fea5de6f18c178b72caac350b7e2f654 100644
--- a/share/qtcreator/welcomescreen/components/Slider.qml
+++ b/share/qtcreator/welcomescreen/components/Slider.qml
@@ -1,6 +1,37 @@
+/**************************************************************************
+**
+** 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.
+**
+**************************************************************************/
+
 import QtQuick 1.0
 import "custom" as Components
-import "plugin"
 
 // jens: ContainsMouse breaks drag functionality
 
diff --git a/share/qtcreator/welcomescreen/components/SpinBox.qml b/share/qtcreator/welcomescreen/components/SpinBox.qml
index 919ac95e6b5148c623c727f8a1c56d9e663ac434..a929adfa728e8b8ac21e73af94f54d36e18686c3 100644
--- a/share/qtcreator/welcomescreen/components/SpinBox.qml
+++ b/share/qtcreator/welcomescreen/components/SpinBox.qml
@@ -1,6 +1,37 @@
+/**************************************************************************
+**
+** 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.
+**
+**************************************************************************/
+
 import QtQuick 1.0
 import "custom" as Components
-import "plugin"
 
 Components.SpinBox {
     id:spinbox
diff --git a/share/qtcreator/welcomescreen/components/SplitterRow.qml b/share/qtcreator/welcomescreen/components/SplitterRow.qml
index adcc535e001c67e28e57cfaec76d39264aa0dfbe..ced970e27f35e10c7b66e7ca9346a27f8b208879 100644
--- a/share/qtcreator/welcomescreen/components/SplitterRow.qml
+++ b/share/qtcreator/welcomescreen/components/SplitterRow.qml
@@ -1,6 +1,37 @@
+/**************************************************************************
+**
+** 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.
+**
+**************************************************************************/
+
 import QtQuick 1.0
 import "custom" as Components
-import "plugin"
 
 Components.SplitterRow {
     handleBackground: QStyleItem {
diff --git a/share/qtcreator/welcomescreen/components/Switch.qml b/share/qtcreator/welcomescreen/components/Switch.qml
index 5d661ec3d6b4f032c59355e393dcad5c256e8a3a..fcc54094c1024b4e3aeb3d3cd5070f83dee69009 100644
--- a/share/qtcreator/welcomescreen/components/Switch.qml
+++ b/share/qtcreator/welcomescreen/components/Switch.qml
@@ -1,6 +1,37 @@
+/**************************************************************************
+**
+** 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.
+**
+**************************************************************************/
+
 import QtQuick 1.0
 import "custom" as Components
-import "plugin"
 
 Components.Switch {
     id:widget
diff --git a/share/qtcreator/welcomescreen/components/Tab.qml b/share/qtcreator/welcomescreen/components/Tab.qml
index b0e223da385f15ed73271a7195eae16b62bcbfba..520f07db750edc66230987a3129c8dd896af4093 100644
--- a/share/qtcreator/welcomescreen/components/Tab.qml
+++ b/share/qtcreator/welcomescreen/components/Tab.qml
@@ -1,3 +1,35 @@
+/**************************************************************************
+**
+** 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.
+**
+**************************************************************************/
+
 import Qt 4.7
 
 Item {
diff --git a/share/qtcreator/welcomescreen/components/TabBar.qml b/share/qtcreator/welcomescreen/components/TabBar.qml
index b5869ebf9d556cbd9500d641ec781efb23084fd9..27d648f0b12971bb4cd4a33d752a58f0d87e562e 100644
--- a/share/qtcreator/welcomescreen/components/TabBar.qml
+++ b/share/qtcreator/welcomescreen/components/TabBar.qml
@@ -1,6 +1,37 @@
+/**************************************************************************
+**
+** 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.
+**
+**************************************************************************/
+
 import QtQuick 1.0
 import "custom" as Components
-import "plugin"
 
 
 Item {
diff --git a/share/qtcreator/welcomescreen/components/TabFrame.qml b/share/qtcreator/welcomescreen/components/TabFrame.qml
index 10d63db3e2609f964895cdf673acb785ff80eca0..d9e730dade2209518087515db3633e164fdbcfb4 100644
--- a/share/qtcreator/welcomescreen/components/TabFrame.qml
+++ b/share/qtcreator/welcomescreen/components/TabFrame.qml
@@ -1,6 +1,37 @@
+/**************************************************************************
+**
+** 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.
+**
+**************************************************************************/
+
 import QtQuick 1.0
 import "custom" as Components
-import "plugin"
 
 Item {
     id: tabWidget
diff --git a/share/qtcreator/welcomescreen/components/TableColumn.qml b/share/qtcreator/welcomescreen/components/TableColumn.qml
index b40334bbf59359f8f196e68163715c15a4b35ec5..9081f6af13251b873081ff62a8999ca94358d2de 100644
--- a/share/qtcreator/welcomescreen/components/TableColumn.qml
+++ b/share/qtcreator/welcomescreen/components/TableColumn.qml
@@ -1,3 +1,35 @@
+/**************************************************************************
+**
+** 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.
+**
+**************************************************************************/
+
 import QtQuick 1.0
 
 QtObject {
diff --git a/share/qtcreator/welcomescreen/components/TableView.qml b/share/qtcreator/welcomescreen/components/TableView.qml
index 196a0ed4b6c0e1b06adbd83bad8a4ff9bb6349f2..132610c3f6604bf44306fea64119fd42b3f1e194 100644
--- a/share/qtcreator/welcomescreen/components/TableView.qml
+++ b/share/qtcreator/welcomescreen/components/TableView.qml
@@ -1,6 +1,36 @@
+/**************************************************************************
+**
+** 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.
+**
+**************************************************************************/
+
 import QtQuick 1.0
-import "../components"
-import "../components/plugin"
 
 /*
 *
diff --git a/share/qtcreator/welcomescreen/components/TextArea.qml b/share/qtcreator/welcomescreen/components/TextArea.qml
index 440081f829e9198ec55b96f39e22b10392f41134..c222e9ecc314c7382db728053679821c3daa0738 100644
--- a/share/qtcreator/welcomescreen/components/TextArea.qml
+++ b/share/qtcreator/welcomescreen/components/TextArea.qml
@@ -1,6 +1,37 @@
+/**************************************************************************
+**
+** 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.
+**
+**************************************************************************/
+
 import QtQuick 1.0
 import "custom" as Components
-import "plugin"
 
 ScrollArea {
     id:area
diff --git a/share/qtcreator/welcomescreen/components/TextField.qml b/share/qtcreator/welcomescreen/components/TextField.qml
index ccadadf86fc900512bb2fd4d3ecd8d1a8d742d85..62adbddb9ee270998007bc32e56ea629f014f7d3 100644
--- a/share/qtcreator/welcomescreen/components/TextField.qml
+++ b/share/qtcreator/welcomescreen/components/TextField.qml
@@ -1,6 +1,37 @@
+/**************************************************************************
+**
+** 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.
+**
+**************************************************************************/
+
 import QtQuick 1.0
 import "custom" as Components
-import "plugin"
 
 Components.TextField {
     id: textfield
diff --git a/share/qtcreator/welcomescreen/components/ToolBar.qml b/share/qtcreator/welcomescreen/components/ToolBar.qml
index 98367723c5a0be8ac80a616eb87d52c40b43a776..a33fd69e3b57e5c57a4f5b643ffd92139a7c98f4 100644
--- a/share/qtcreator/welcomescreen/components/ToolBar.qml
+++ b/share/qtcreator/welcomescreen/components/ToolBar.qml
@@ -1,6 +1,37 @@
+/**************************************************************************
+**
+** 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.
+**
+**************************************************************************/
+
 import QtQuick 1.0
 import "custom" as Components
-import "plugin"
 
 QStyleItem{
     id: toolbar
diff --git a/share/qtcreator/welcomescreen/components/ToolButton.qml b/share/qtcreator/welcomescreen/components/ToolButton.qml
index 7de72fd10c7e7c674693adb891edbecb84aa7b05..2747947d5d2c281c2bc720167c6e5f8819d2319a 100644
--- a/share/qtcreator/welcomescreen/components/ToolButton.qml
+++ b/share/qtcreator/welcomescreen/components/ToolButton.qml
@@ -1,6 +1,37 @@
+/**************************************************************************
+**
+** 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.
+**
+**************************************************************************/
+
 import QtQuick 1.0
 import "custom" as Components
-import "plugin"
 
 Components.Button {
     id:button
diff --git a/share/qtcreator/welcomescreen/components/custom/BasicButton.qml b/share/qtcreator/welcomescreen/components/custom/BasicButton.qml
index ee591e2026c06ea0c1645814b919346e3b61f1cc..79ceb40b5108c6a4c7872659d2ac22b807467759 100644
--- a/share/qtcreator/welcomescreen/components/custom/BasicButton.qml
+++ b/share/qtcreator/welcomescreen/components/custom/BasicButton.qml
@@ -1,3 +1,35 @@
+/**************************************************************************
+**
+** 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.
+**
+**************************************************************************/
+
 import QtQuick 1.0
 import "./behaviors"    // ButtonBehavior
 
diff --git a/share/qtcreator/welcomescreen/components/custom/Button.qml b/share/qtcreator/welcomescreen/components/custom/Button.qml
index 45abc83f6041a194dc6e690220572067d63b2aed..f3a4af3adf1a092c39cdee5b658980d37c5ae10a 100644
--- a/share/qtcreator/welcomescreen/components/custom/Button.qml
+++ b/share/qtcreator/welcomescreen/components/custom/Button.qml
@@ -1,3 +1,35 @@
+/**************************************************************************
+**
+** 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.
+**
+**************************************************************************/
+
 import QtQuick 1.0
 
 BasicButton {
diff --git a/share/qtcreator/welcomescreen/components/custom/ButtonColumn.qml b/share/qtcreator/welcomescreen/components/custom/ButtonColumn.qml
index 8d63a855c3b774f50678746cc55507e5594e3320..4a1fe634eb174a7f8294cf80d2d6689b0a823bb0 100644
--- a/share/qtcreator/welcomescreen/components/custom/ButtonColumn.qml
+++ b/share/qtcreator/welcomescreen/components/custom/ButtonColumn.qml
@@ -1,3 +1,35 @@
+/**************************************************************************
+**
+** 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.
+**
+**************************************************************************/
+
 import Qt 4.7
 import "ButtonGroup.js" as Behavior
 
diff --git a/share/qtcreator/welcomescreen/components/custom/ButtonRow.qml b/share/qtcreator/welcomescreen/components/custom/ButtonRow.qml
index 7c2d3ea7ad62646096004778e3ed48e2254f122f..1f1ceeb5b223b6dd649783c990760bc892f90614 100644
--- a/share/qtcreator/welcomescreen/components/custom/ButtonRow.qml
+++ b/share/qtcreator/welcomescreen/components/custom/ButtonRow.qml
@@ -1,3 +1,35 @@
+/**************************************************************************
+**
+** 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.
+**
+**************************************************************************/
+
 import Qt 4.7
 import "ButtonGroup.js" as Behavior
 
diff --git a/share/qtcreator/welcomescreen/components/custom/CheckBox.qml b/share/qtcreator/welcomescreen/components/custom/CheckBox.qml
index a49d71d8a53c1cee09cb6714a24dfcb0454bf58d..851b032dcc943bb14b0cbbaee722ae0a9b4e74df 100644
--- a/share/qtcreator/welcomescreen/components/custom/CheckBox.qml
+++ b/share/qtcreator/welcomescreen/components/custom/CheckBox.qml
@@ -1,3 +1,35 @@
+/**************************************************************************
+**
+** 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.
+**
+**************************************************************************/
+
 import QtQuick 1.0
 import "./behaviors"
 
diff --git a/share/qtcreator/welcomescreen/components/custom/ChoiceList.qml b/share/qtcreator/welcomescreen/components/custom/ChoiceList.qml
index a316f042ed9ba408449d30581e8ab02d64b485e5..4da78ffa7d86abc8f35720f2380c3a6074d3c8d9 100644
--- a/share/qtcreator/welcomescreen/components/custom/ChoiceList.qml
+++ b/share/qtcreator/welcomescreen/components/custom/ChoiceList.qml
@@ -1,3 +1,35 @@
+/**************************************************************************
+**
+** 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.
+**
+**************************************************************************/
+
 import QtQuick 1.0
 import "./private" as Private
 
diff --git a/share/qtcreator/welcomescreen/components/custom/GroupBox.qml b/share/qtcreator/welcomescreen/components/custom/GroupBox.qml
index ab1117e3e8abaf3124de4fb686a05695e43e3f02..87b471074cd79c39e744d0e391260836446ce1cb 100644
--- a/share/qtcreator/welcomescreen/components/custom/GroupBox.qml
+++ b/share/qtcreator/welcomescreen/components/custom/GroupBox.qml
@@ -1,3 +1,35 @@
+/**************************************************************************
+**
+** 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.
+**
+**************************************************************************/
+
 import QtQuick 1.0
 
 FocusScope {
diff --git a/share/qtcreator/welcomescreen/components/custom/ProgressBar.qml b/share/qtcreator/welcomescreen/components/custom/ProgressBar.qml
index 3ad8bca6c0bf7d94797b5a83433f063b39e2bc27..995d477fdaa0cb297198ac68ef0d39b3d46fc256 100644
--- a/share/qtcreator/welcomescreen/components/custom/ProgressBar.qml
+++ b/share/qtcreator/welcomescreen/components/custom/ProgressBar.qml
@@ -1,3 +1,35 @@
+/**************************************************************************
+**
+** 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.
+**
+**************************************************************************/
+
 import QtQuick 1.0
 
 Item {
diff --git a/share/qtcreator/welcomescreen/components/custom/Slider.qml b/share/qtcreator/welcomescreen/components/custom/Slider.qml
index f551baa85ad17c1d127c05d9985cc6f89475dd3d..5bb78f69fd62dc48754e6270b5e8b0f9ba4a99d9 100644
--- a/share/qtcreator/welcomescreen/components/custom/Slider.qml
+++ b/share/qtcreator/welcomescreen/components/custom/Slider.qml
@@ -2,7 +2,7 @@
 **
 ** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
 ** All rights reserved.
-** Contact: Nokia Corporation (qt-info@nokia.com)
+** Contact: Nokia Corporation (info@qt.nokia.com)
 **
 ** This file is part of the Qt Components project on Qt Labs.
 **
@@ -20,7 +20,7 @@
 ** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
 **
 ** If you have questions regarding the use of this file, please contact
-** Nokia at qt-info@nokia.com.
+** Nokia at info@qt.nokia.com.
 **
 ****************************************************************************/
 
diff --git a/share/qtcreator/welcomescreen/components/custom/SpinBox.qml b/share/qtcreator/welcomescreen/components/custom/SpinBox.qml
index 1110ff824e0d611fbfd9ac42b3e9011f9452a61a..e17b56c931aafa6100693682a46d080fff5c604d 100644
--- a/share/qtcreator/welcomescreen/components/custom/SpinBox.qml
+++ b/share/qtcreator/welcomescreen/components/custom/SpinBox.qml
@@ -1,3 +1,35 @@
+/**************************************************************************
+**
+** 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.
+**
+**************************************************************************/
+
 import QtQuick 1.0
 
 FocusScope {
diff --git a/share/qtcreator/welcomescreen/components/custom/SplitterRow.qml b/share/qtcreator/welcomescreen/components/custom/SplitterRow.qml
index adf73f317bba7c105797068e89c356808fb6f08d..7c709311593e2936078c1f5866dc2fd6cd3994e9 100644
--- a/share/qtcreator/welcomescreen/components/custom/SplitterRow.qml
+++ b/share/qtcreator/welcomescreen/components/custom/SplitterRow.qml
@@ -1,3 +1,35 @@
+/**************************************************************************
+**
+** 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.
+**
+**************************************************************************/
+
 import QtQuick 1.0
 import "private"
 
diff --git a/share/qtcreator/welcomescreen/components/custom/TextField.qml b/share/qtcreator/welcomescreen/components/custom/TextField.qml
index b38b3ecb70d67d40fd68cea96d8995aaec88f656..17188d10a2d8c07523876a75f54e6d90dda773c5 100644
--- a/share/qtcreator/welcomescreen/components/custom/TextField.qml
+++ b/share/qtcreator/welcomescreen/components/custom/TextField.qml
@@ -1,3 +1,35 @@
+/**************************************************************************
+**
+** 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.
+**
+**************************************************************************/
+
 import QtQuick 1.0
 import "./behaviors"    // TextEditMouseBehavior
 
diff --git a/share/qtcreator/welcomescreen/components/custom/behaviors/ButtonBehavior.qml b/share/qtcreator/welcomescreen/components/custom/behaviors/ButtonBehavior.qml
index 57ea626906c471df9f47b4f61607b3c6fd89e11e..da8c49149ba2bf719c23695a7a13b6fb88bb72f9 100644
--- a/share/qtcreator/welcomescreen/components/custom/behaviors/ButtonBehavior.qml
+++ b/share/qtcreator/welcomescreen/components/custom/behaviors/ButtonBehavior.qml
@@ -1,3 +1,35 @@
+/**************************************************************************
+**
+** 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.
+**
+**************************************************************************/
+
 import QtQuick 1.0
 
 Item {
diff --git a/share/qtcreator/welcomescreen/components/custom/behaviors/ModalPopupBehavior.qml b/share/qtcreator/welcomescreen/components/custom/behaviors/ModalPopupBehavior.qml
index 108bf02ae219b761964e315726500582dfae1d5a..0e5da2c3117dac106a3daaa1ccb036692a6d68ab 100644
--- a/share/qtcreator/welcomescreen/components/custom/behaviors/ModalPopupBehavior.qml
+++ b/share/qtcreator/welcomescreen/components/custom/behaviors/ModalPopupBehavior.qml
@@ -1,3 +1,35 @@
+/**************************************************************************
+**
+** 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.
+**
+**************************************************************************/
+
 import QtQuick 1.0
 
 // KNOWN ISSUES
diff --git a/share/qtcreator/welcomescreen/components/custom/private/ChoiceListPopup.qml b/share/qtcreator/welcomescreen/components/custom/private/ChoiceListPopup.qml
index 5ed7f277da2c3f442219cdca2ad538994d29f8f4..5445fdc1653a15c3d4460fe1b8d8c47e06cb7e39 100644
--- a/share/qtcreator/welcomescreen/components/custom/private/ChoiceListPopup.qml
+++ b/share/qtcreator/welcomescreen/components/custom/private/ChoiceListPopup.qml
@@ -1,3 +1,35 @@
+/**************************************************************************
+**
+** 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.
+**
+**************************************************************************/
+
 import QtQuick 1.0
 
 MouseArea {
diff --git a/share/qtcreator/welcomescreen/components/styleitem/qdeclarativefolderlistmodel.cpp b/share/qtcreator/welcomescreen/components/styleitem/qdeclarativefolderlistmodel.cpp
index 89c072b39f8b4b44694327be56264349bf4500e6..061b99edfb3067fb03cfcbb558c977bdd1d6d84b 100644
--- a/share/qtcreator/welcomescreen/components/styleitem/qdeclarativefolderlistmodel.cpp
+++ b/share/qtcreator/welcomescreen/components/styleitem/qdeclarativefolderlistmodel.cpp
@@ -2,7 +2,7 @@
 **
 ** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies).
 ** All rights reserved.
-** Contact: Nokia Corporation (qt-info@nokia.com)
+** Contact: Nokia Corporation (info@qt.nokia.com)
 **
 ** This file is part of the examples of the Qt Toolkit.
 **
@@ -26,7 +26,7 @@
 ** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
 **
 ** If you have questions regarding the use of this file, please contact
-** Nokia at qt-info@nokia.com.
+** Nokia at info@qt.nokia.com.
 **
 **
 **
diff --git a/share/qtcreator/welcomescreen/components/styleitem/qdeclarativefolderlistmodel.h b/share/qtcreator/welcomescreen/components/styleitem/qdeclarativefolderlistmodel.h
index f225a04dcd626975812ece7cfa2b6619326bf823..d22d0acb0a8d28abedd3e2b755a45fa6f73079ee 100644
--- a/share/qtcreator/welcomescreen/components/styleitem/qdeclarativefolderlistmodel.h
+++ b/share/qtcreator/welcomescreen/components/styleitem/qdeclarativefolderlistmodel.h
@@ -2,7 +2,7 @@
 **
 ** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies).
 ** All rights reserved.
-** Contact: Nokia Corporation (qt-info@nokia.com)
+** Contact: Nokia Corporation (info@qt.nokia.com)
 **
 ** This file is part of the examples of the Qt Toolkit.
 **
@@ -26,7 +26,7 @@
 ** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
 **
 ** If you have questions regarding the use of this file, please contact
-** Nokia at qt-info@nokia.com.
+** Nokia at info@qt.nokia.com.
 **
 **
 **
diff --git a/share/qtcreator/welcomescreen/components/styleitem/qrangemodel.cpp b/share/qtcreator/welcomescreen/components/styleitem/qrangemodel.cpp
index 83c106ecd204e130494ecf9335bc3450d6d8c4d3..c3a53a6890cb8aa0004ee863c667427be93ab032 100644
--- a/share/qtcreator/welcomescreen/components/styleitem/qrangemodel.cpp
+++ b/share/qtcreator/welcomescreen/components/styleitem/qrangemodel.cpp
@@ -2,7 +2,7 @@
 **
 ** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
 ** All rights reserved.
-** Contact: Nokia Corporation (qt-info@nokia.com)
+** Contact: Nokia Corporation (info@qt.nokia.com)
 **
 ** This file is part of the Qt Components project on Qt Labs.
 **
@@ -20,7 +20,7 @@
 ** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
 **
 ** If you have questions regarding the use of this file, please contact
-** Nokia at qt-info@nokia.com.
+** Nokia at info@qt.nokia.com.
 **
 ****************************************************************************/
 
diff --git a/share/qtcreator/welcomescreen/components/styleitem/qrangemodel.h b/share/qtcreator/welcomescreen/components/styleitem/qrangemodel.h
index 6144281ed2ce10a229bb2bea9abd68575ea95a1a..842f9aa00ec1a6863b73de2b1b90a0654660b657 100644
--- a/share/qtcreator/welcomescreen/components/styleitem/qrangemodel.h
+++ b/share/qtcreator/welcomescreen/components/styleitem/qrangemodel.h
@@ -2,7 +2,7 @@
 **
 ** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
 ** All rights reserved.
-** Contact: Nokia Corporation (qt-info@nokia.com)
+** Contact: Nokia Corporation (info@qt.nokia.com)
 **
 ** This file is part of the Qt Components project on Qt Labs.
 **
@@ -20,7 +20,7 @@
 ** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
 **
 ** If you have questions regarding the use of this file, please contact
-** Nokia at qt-info@nokia.com.
+** Nokia at info@qt.nokia.com.
 **
 ****************************************************************************/
 
diff --git a/share/qtcreator/welcomescreen/components/styleitem/qrangemodel_p.h b/share/qtcreator/welcomescreen/components/styleitem/qrangemodel_p.h
index cb72ceff2f6e325ad82b6bf2adf27674c906e7d8..74edf2f9f5e0d278dcae388c87bcfefd18d858ff 100644
--- a/share/qtcreator/welcomescreen/components/styleitem/qrangemodel_p.h
+++ b/share/qtcreator/welcomescreen/components/styleitem/qrangemodel_p.h
@@ -2,7 +2,7 @@
 **
 ** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
 ** All rights reserved.
-** Contact: Nokia Corporation (qt-info@nokia.com)
+** Contact: Nokia Corporation (info@qt.nokia.com)
 **
 ** This file is part of the Qt Components project on Qt Labs.
 **
@@ -20,7 +20,7 @@
 ** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
 **
 ** If you have questions regarding the use of this file, please contact
-** Nokia at qt-info@nokia.com.
+** Nokia at info@qt.nokia.com.
 **
 ****************************************************************************/
 
diff --git a/share/qtcreator/welcomescreen/components/styleitem/qstyleitem.cpp b/share/qtcreator/welcomescreen/components/styleitem/qstyleitem.cpp
index 3f96d89edd9e5713da270994ce84bee26fb57eed..fecffe7b22fb2850392fd947f0ef95fb248a3d48 100644
--- a/share/qtcreator/welcomescreen/components/styleitem/qstyleitem.cpp
+++ b/share/qtcreator/welcomescreen/components/styleitem/qstyleitem.cpp
@@ -2,7 +2,7 @@
 **
 ** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
 ** All rights reserved.
-** Contact: Nokia Corporation (qt-info@nokia.com)
+** Contact: Nokia Corporation (info@qt.nokia.com)
 **
 ** This file is part of the examples of the Qt Toolkit.
 **
@@ -829,13 +829,7 @@ bool QStyleItem::eventFilter(QObject *o, QEvent *e) {
 
 void QStyleItem::showToolTip(const QString &str)
 {
-    QPointF scene = mapToScene(width() - 20, 0);
-    QWidget *focusWidget = qApp->focusWidget();
-    if (!focusWidget)
-        return;
-
-    QPoint global = focusWidget->mapToGlobal(scene.toPoint());
-    QToolTip::showText(QPoint(global.x(), global.y()), str);
+    QToolTip::showText(QCursor::pos(), str);
 }
 
 QRect QStyleItem::subControlRect(const QString &subcontrolString)
diff --git a/share/qtcreator/welcomescreen/components/styleitem/qstyleitem.h b/share/qtcreator/welcomescreen/components/styleitem/qstyleitem.h
index 1b9f9c875ac141a5e8c4ce1a75f7ec8e005e9334..4a1da099fc9ad9da61b71f859f4291d4063770e4 100644
--- a/share/qtcreator/welcomescreen/components/styleitem/qstyleitem.h
+++ b/share/qtcreator/welcomescreen/components/styleitem/qstyleitem.h
@@ -2,7 +2,7 @@
 **
 ** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
 ** All rights reserved.
-** Contact: Nokia Corporation (qt-info@nokia.com)
+** Contact: Nokia Corporation (info@qt.nokia.com)
 **
 ** This file is part of the examples of the Qt Toolkit.
 **
diff --git a/share/qtcreator/welcomescreen/components/styleitem/qstyleplugin.cpp b/share/qtcreator/welcomescreen/components/styleitem/qstyleplugin.cpp
index 2015f0e334efd0c4d28814d1cbd1539c2ad8fbb9..6ba3473839cb30a8ba43499a4436bf28848867c8 100644
--- a/share/qtcreator/welcomescreen/components/styleitem/qstyleplugin.cpp
+++ b/share/qtcreator/welcomescreen/components/styleitem/qstyleplugin.cpp
@@ -2,7 +2,7 @@
 **
 ** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
 ** All rights reserved.
-** Contact: Nokia Corporation (qt-info@nokia.com)
+** Contact: Nokia Corporation (info@qt.nokia.com)
 **
 ** This file is part of the examples of the Qt Toolkit.
 **
@@ -78,7 +78,7 @@ public:
 
 void StylePlugin::registerTypes(const char *uri)
 {
-    qDebug() << "register" << uri;
+//    qDebug() << "register" << uri;
     qmlRegisterType<QStyleItem>(uri, 1, 0, "QStyleItem");
     qmlRegisterType<QRangeModel>(uri, 1, 0, "RangeModel");
     qmlRegisterType<QGraphicsDropShadowEffect>(uri, 1, 0, "DropShadow");
diff --git a/share/qtcreator/welcomescreen/components/styleitem/qstyleplugin.h b/share/qtcreator/welcomescreen/components/styleitem/qstyleplugin.h
index 648add70c8f47bbb11ee0316dd0686d10d9a5608..144cb48aff6cad6a5a9b569b6440cc6900b46185 100644
--- a/share/qtcreator/welcomescreen/components/styleitem/qstyleplugin.h
+++ b/share/qtcreator/welcomescreen/components/styleitem/qstyleplugin.h
@@ -2,7 +2,7 @@
 **
 ** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
 ** All rights reserved.
-** Contact: Nokia Corporation (qt-info@nokia.com)
+** Contact: Nokia Corporation (info@qt.nokia.com)
 **
 ** This file is part of the examples of the Qt Toolkit.
 **
diff --git a/share/qtcreator/welcomescreen/components/styleitem/qtmenu.cpp b/share/qtcreator/welcomescreen/components/styleitem/qtmenu.cpp
index 3647da2d89463486dc0644e15455e7bcaefa0484..7a53f1f5dfae799418d5d51affabdc4ab6e21f4a 100644
--- a/share/qtcreator/welcomescreen/components/styleitem/qtmenu.cpp
+++ b/share/qtcreator/welcomescreen/components/styleitem/qtmenu.cpp
@@ -2,7 +2,7 @@
 **
 ** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies).
 ** All rights reserved.
-** Contact: Nokia Corporation (qt-info@nokia.com)
+** Contact: Nokia Corporation (info@qt.nokia.com)
 **
 ** This file is part of the Qt Components project on Qt Labs.
 **
@@ -20,7 +20,7 @@
 ** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
 **
 ** If you have questions regarding the use of this file, please contact
-** Nokia at qt-info@nokia.com.
+** Nokia at info@qt.nokia.com.
 **
 ****************************************************************************/
 
diff --git a/share/qtcreator/welcomescreen/components/styleitem/qtmenu.h b/share/qtcreator/welcomescreen/components/styleitem/qtmenu.h
index 9e17db3028c3e3182e5bd4291ac44e991d08d077..164e707189c015f04c404d90f30d4cc5496b96c1 100644
--- a/share/qtcreator/welcomescreen/components/styleitem/qtmenu.h
+++ b/share/qtcreator/welcomescreen/components/styleitem/qtmenu.h
@@ -2,7 +2,7 @@
 **
 ** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies).
 ** All rights reserved.
-** Contact: Nokia Corporation (qt-info@nokia.com)
+** Contact: Nokia Corporation (info@qt.nokia.com)
 **
 ** This file is part of the Qt Components project on Qt Labs.
 **
@@ -20,7 +20,7 @@
 ** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
 **
 ** If you have questions regarding the use of this file, please contact
-** Nokia at qt-info@nokia.com.
+** Nokia at info@qt.nokia.com.
 **
 ****************************************************************************/
 
diff --git a/share/qtcreator/welcomescreen/components/styleitem/qtmenubar.cpp b/share/qtcreator/welcomescreen/components/styleitem/qtmenubar.cpp
index 7257795a034de01f641b58e5758ea3c9386a12bf..b50331be74a310485327370b06cb93e48c7db656 100644
--- a/share/qtcreator/welcomescreen/components/styleitem/qtmenubar.cpp
+++ b/share/qtcreator/welcomescreen/components/styleitem/qtmenubar.cpp
@@ -2,7 +2,7 @@
 **
 ** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies).
 ** All rights reserved.
-** Contact: Nokia Corporation (qt-info@nokia.com)
+** Contact: Nokia Corporation (info@qt.nokia.com)
 **
 ** This file is part of the examples of the Qt Toolkit.
 **
diff --git a/share/qtcreator/welcomescreen/components/styleitem/qtmenubar.h b/share/qtcreator/welcomescreen/components/styleitem/qtmenubar.h
index 4c402b8501a097b75815a607c42644f0471cef18..241a098ab7bf703627f5d9fff2ec26bf20955562 100644
--- a/share/qtcreator/welcomescreen/components/styleitem/qtmenubar.h
+++ b/share/qtcreator/welcomescreen/components/styleitem/qtmenubar.h
@@ -2,7 +2,7 @@
 **
 ** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies).
 ** All rights reserved.
-** Contact: Nokia Corporation (qt-info@nokia.com)
+** Contact: Nokia Corporation (info@qt.nokia.com)
 **
 ** This file is part of the examples of the Qt Toolkit.
 **
diff --git a/share/qtcreator/welcomescreen/components/styleitem/qtmenuitem.cpp b/share/qtcreator/welcomescreen/components/styleitem/qtmenuitem.cpp
index 8769990133d383688373a8e89c2126287010a1df..a9465428943052e213633bf23306fc4819f84a5f 100644
--- a/share/qtcreator/welcomescreen/components/styleitem/qtmenuitem.cpp
+++ b/share/qtcreator/welcomescreen/components/styleitem/qtmenuitem.cpp
@@ -2,7 +2,7 @@
 **
 ** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies).
 ** All rights reserved.
-** Contact: Nokia Corporation (qt-info@nokia.com)
+** Contact: Nokia Corporation (info@qt.nokia.com)
 **
 ** This file is part of the examples of the Qt Toolkit.
 **
diff --git a/share/qtcreator/welcomescreen/components/styleitem/qtmenuitem.h b/share/qtcreator/welcomescreen/components/styleitem/qtmenuitem.h
index 7c4a1d4f1d091c780e18b87e2e1327dd0b4545c7..5fc47e2c920233bba9ecbca92db08c26c28f806e 100644
--- a/share/qtcreator/welcomescreen/components/styleitem/qtmenuitem.h
+++ b/share/qtcreator/welcomescreen/components/styleitem/qtmenuitem.h
@@ -2,7 +2,7 @@
 **
 ** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies).
 ** All rights reserved.
-** Contact: Nokia Corporation (qt-info@nokia.com)
+** Contact: Nokia Corporation (info@qt.nokia.com)
 **
 ** This file is part of the examples of the Qt Toolkit.
 **
diff --git a/share/qtcreator/welcomescreen/components/styleitem/qwheelarea.cpp b/share/qtcreator/welcomescreen/components/styleitem/qwheelarea.cpp
index 1a7ae9e6cad1edf459d1cb66bec7c7c01c5713e4..64457b5236cdd80182d93e158eeb165d0bfdbaea 100644
--- a/share/qtcreator/welcomescreen/components/styleitem/qwheelarea.cpp
+++ b/share/qtcreator/welcomescreen/components/styleitem/qwheelarea.cpp
@@ -2,7 +2,7 @@
 **
 ** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
 ** All rights reserved.
-** Contact: Nokia Corporation (qt-info@nokia.com)
+** Contact: Nokia Corporation (info@qt.nokia.com)
 **
 ** This file is part of the examples of the Qt Toolkit.
 **
diff --git a/share/qtcreator/welcomescreen/components/styleitem/qwheelarea.h b/share/qtcreator/welcomescreen/components/styleitem/qwheelarea.h
index f1d7016a8f85882a8137a9b6e472d7d7bbbca8e9..a447b7fc08099dbb26116fd22799c3bb87789be5 100644
--- a/share/qtcreator/welcomescreen/components/styleitem/qwheelarea.h
+++ b/share/qtcreator/welcomescreen/components/styleitem/qwheelarea.h
@@ -2,7 +2,7 @@
 **
 ** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
 ** All rights reserved.
-** Contact: Nokia Corporation (qt-info@nokia.com)
+** Contact: Nokia Corporation (info@qt.nokia.com)
 **
 ** This file is part of the Qt Components project on Qt Labs.
 **
@@ -20,7 +20,7 @@
 ** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
 **
 ** If you have questions regarding the use of this file, please contact
-** Nokia at qt-info@nokia.com.
+** Nokia at info@qt.nokia.com.
 **
 ****************************************************************************/
 
diff --git a/share/qtcreator/welcomescreen/develop.qml b/share/qtcreator/welcomescreen/develop.qml
index 7473c7895708a8f8729b58ec0a7f7839d0b1e1b2..aafa0b2af77fbb5a8efa9dcd6d8c1be5851582a3 100644
--- a/share/qtcreator/welcomescreen/develop.qml
+++ b/share/qtcreator/welcomescreen/develop.qml
@@ -1,25 +1,56 @@
+/**************************************************************************
+**
+** 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.
+**
+**************************************************************************/
+
 import QtQuick 1.0
-import "widgets"
-import "components" as Components
+import "widgets" as Widgets
+import components 1.0 as Components
 
 Item {
     id: root
-
     Components.ScrollArea {
         id: scrollArea
         anchors.fill: parent
+        frame: false
         Item {
             height: Math.max(recentSessions.height, recentProjects.height)
-            width: root.width-40
-            RecentSessions {
+            width: root.width-20
+            Widgets.RecentSessions {
                 id: recentSessions
-                x: 10
-                width: parent.width / 2 - 10
+                width: parent.width / 2
             }
-            RecentProjects {
+            Widgets.RecentProjects {
                 id: recentProjects
-                x: parent.width / 2 + 10
-                width: parent.width / 2 - 10
+                x: parent.width / 2
+                width: parent.width / 2
             }
         }
     }
diff --git a/share/qtcreator/welcomescreen/examples_fallback.xml b/share/qtcreator/welcomescreen/examples_fallback.xml
index 3a0a8dc2b6a14decbd81802cf2f0241cf5627cda..9d4f927caea30390c43758e24162d43e89be67ee 100644
--- a/share/qtcreator/welcomescreen/examples_fallback.xml
+++ b/share/qtcreator/welcomescreen/examples_fallback.xml
@@ -1,11 +1,11 @@
 <?xml version="1.0" encoding="utf-8"?>
 <instructionals module="Qt">
  <demos>
-  <demo imageUrl="qthelp://com.trolltech.qt/qdoc/images/qml-samegame-demo.png" difficulty="?" docUrl="qthelp://com.trolltech.qt/qdoc/demos-declarative-samegame.html" projectPath="./declarative/samegame/declarative/samegame.qmlproject" name="SameGame">
+  <demo imageUrl="qthelp://com.trolltech.qt/qdoc/images/qml-samegame-demo.png" difficulty="?" docUrl="qthelp://com.trolltech.qt/qdoc/demos-declarative-samegame.html" projectPath="./declarative/samegame/samegame.qmlproject" name="SameGame">
    <description><![CDATA[This demo shows how to write a 'Same Game' game in QML, using Javascript for all the game logic.]]></description>
    <tags>demo,declarative,samegame,qml,qt quick</tags>
   </demo>
-  <demo imageUrl="qthelp://com.trolltech.qt/qdoc/images/qml-flickr-demo.png" difficulty="?" docUrl="qthelp://com.trolltech.qt/qdoc/demos-declarative-flickr.html" projectPath="./declarative/flickr/declarative/flickr.qmlproject" name="Flickr Client">
+  <demo imageUrl="qthelp://com.trolltech.qt/qdoc/images/qml-flickr-demo.png" difficulty="?" docUrl="qthelp://com.trolltech.qt/qdoc/demos-declarative-flickr.html" projectPath="./declarative/flickr/flickr.qmlproject" name="Flickr Client">
    <description><![CDATA[This demo shows how to write a mobile Flickr browser application in QML.]]></description>
    <tags>demo,declarative,flickr,qml,qt quick</tags>
   </demo>
@@ -41,11 +41,11 @@
    <description><![CDATA[The Interview demonstration explores the flexibility and scalability of the model/view framework by presenting an infinitely deep data structure using a model and three different types of view.]]></description>
    <tags>demo,interview</tags>
   </demo>
-  <demo imageUrl="qthelp://com.trolltech.qt/qdoc/images/qml-rssnews-demo.png" difficulty="?" docUrl="qthelp://com.trolltech.qt/qdoc/demos-declarative-rssnews.html" projectPath="./declarative/rssnews/declarative/rssnews.qmlproject" name="Rss Client">
+  <demo imageUrl="qthelp://com.trolltech.qt/qdoc/images/qml-rssnews-demo.png" difficulty="?" docUrl="qthelp://com.trolltech.qt/qdoc/demos-declarative-rssnews.html" projectPath="./declarative/rssnews/rssnews.qmlproject" name="Rss Client">
    <description><![CDATA[This demo shows how to write a RSS news reader in QML.]]></description>
    <tags>demo,declarative,rssnews,qml,qt quick</tags>
   </demo>
-  <demo imageUrl="qthelp://com.trolltech.qt/qdoc/images/qml-twitter-demo.png" difficulty="?" docUrl="qthelp://com.trolltech.qt/qdoc/demos-declarative-twitter.html" projectPath="./declarative/twitter/declarative/twitter.qmlproject" name="Twitter Client">
+  <demo imageUrl="qthelp://com.trolltech.qt/qdoc/images/qml-twitter-demo.png" difficulty="?" docUrl="qthelp://com.trolltech.qt/qdoc/demos-declarative-twitter.html" projectPath="./declarative/twitter/twitter.qmlproject" name="Twitter Client">
    <description><![CDATA[This demo shows how to write a mobile Twitter search client in QML. Use it to see what people think about Qt Quick!]]></description>
    <tags>demo,declarative,twitter,qml,qt quick</tags>
   </demo>
@@ -69,7 +69,7 @@
    <description><![CDATA[The Spectrum Analyzer demo shows how the <tt>QtMultimedia Module</tt> can be used in Qt applications to capture and then play back an audio stream.]]></description>
    <tags>demo,spectrum,qtmultimedia module</tags>
   </demo>
-  <demo imageUrl="" difficulty="?" docUrl="qthelp://com.trolltech.qt/qdoc/demos-declarative-minehunt.html" projectPath="./declarative/minehunt/declarative/minehunt.pro" name="Minehunt">
+  <demo imageUrl="" difficulty="?" docUrl="qthelp://com.trolltech.qt/qdoc/demos-declarative-minehunt.html" projectPath="./declarative/minehunt/minehunt.pro" name="Minehunt">
    <description><![CDATA[This demo shows how to create a simple Minehunt game, using QML for the UI and C++ for the game logic.]]></description>
    <tags>demo,declarative,minehunt</tags>
   </demo>
diff --git a/share/qtcreator/welcomescreen/gettingstarted.qml b/share/qtcreator/welcomescreen/gettingstarted.qml
index bb712c0c2a095b1a2a100d64b7f7d824d1835f7d..61a0695af641fa09caad0d14f75ee876f69318b3 100644
--- a/share/qtcreator/welcomescreen/gettingstarted.qml
+++ b/share/qtcreator/welcomescreen/gettingstarted.qml
@@ -1,4 +1,36 @@
+/**************************************************************************
+**
+** 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.
+**
+**************************************************************************/
+
 import QtQuick 1.0
-import "widgets"
+import "widgets" as Widgets
 
-ExampleBrowser {}
+Widgets.ExampleBrowser {}
diff --git a/share/qtcreator/welcomescreen/welcomescreen.pro b/share/qtcreator/welcomescreen/welcomescreen.pro
index 0e9ebeb25c332988594caf4657e4af67b6a2e56e..17ffa689110265e4a51b0051502d5c0120630ca5 100644
--- a/share/qtcreator/welcomescreen/welcomescreen.pro
+++ b/share/qtcreator/welcomescreen/welcomescreen.pro
@@ -1,6 +1,8 @@
 TEMPLATE = subdirs
 SUBDIRS = components/styleitem
 
+QML_IMPORT_PATH += $$OUT_PWD
+
 OTHER_FILES = develop.qml \
               gettingstarted.qml \
               newssupport.qml \
diff --git a/share/qtcreator/welcomescreen/welcomescreen.qml b/share/qtcreator/welcomescreen/welcomescreen.qml
index 77a33ee8b9c66192ea135261aef4858c690c3621..881c3514bbf140ca2d9f79b0e8f34bc9434621b3 100644
--- a/share/qtcreator/welcomescreen/welcomescreen.qml
+++ b/share/qtcreator/welcomescreen/welcomescreen.qml
@@ -1,4 +1,36 @@
-import Qt 4.7
+/**************************************************************************
+**
+** 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.
+**
+**************************************************************************/
+
+import QtQuick 1.0
 import "widgets"
 
 Image {
@@ -18,7 +50,7 @@ Image {
             id: header;
             source: "qrc:welcome/images/center_frame_header.png";
             anchors.verticalCenter: parent.verticalCenter;
-            anchors.left: parent.left;
+            anchors.horizontalCenter: parent.horizontalCenter;
             anchors.topMargin: 2
         }
         anchors.top: root.top
@@ -58,7 +90,6 @@ Image {
             anchors.fill: parent
             anchors.margins: 4
         }
-
     }
 
     TabWidget {
diff --git a/share/qtcreator/welcomescreen/widgets/Button.qml b/share/qtcreator/welcomescreen/widgets/Button.qml
index 40bd8708b00ff0c5030a3eb3493be7e0a7380c62..e23428d5f46f66cc5fd6800c21e2373e22d8c3f0 100644
--- a/share/qtcreator/welcomescreen/widgets/Button.qml
+++ b/share/qtcreator/welcomescreen/widgets/Button.qml
@@ -1,3 +1,35 @@
+/**************************************************************************
+**
+** 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.
+**
+**************************************************************************/
+
 import Qt 4.7
 
 BorderImage {
diff --git a/share/qtcreator/welcomescreen/widgets/ExampleBrowser.qml b/share/qtcreator/welcomescreen/widgets/ExampleBrowser.qml
index 327af9daa7a156d03126fbc330e24eb6e96896b2..104fb52b91e10b62d819af5a4c499f47369320d9 100644
--- a/share/qtcreator/welcomescreen/widgets/ExampleBrowser.qml
+++ b/share/qtcreator/welcomescreen/widgets/ExampleBrowser.qml
@@ -1,5 +1,37 @@
+/**************************************************************************
+**
+** 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.
+**
+**************************************************************************/
+
 import QtQuick 1.0
-import "../components" as Components
+import components 1.0 as Components
 
 Item {
     id: exampleBrowserRoot
@@ -8,16 +40,6 @@ Item {
         width: parent.width
         height: lineEdit.height
 
-        Connections {
-            target: gettingStarted
-            onTagsUpdated: {
-                var tagList = gettingStarted.tagList()
-                for (var tag in tagList) {
-                    tagsTestModel.append({ "text": tagList[tag], "value": tagList[tag] });
-                }
-            }
-        }
-
         Components.TextField {
             Behavior on width { NumberAnimation{} }
             placeholderText: !checkBox.checked ? qsTr("Search in Tutorials") : qsTr("Search in Tutorials, Examples and Demos")
@@ -27,14 +49,11 @@ Item {
             onTextChanged: examplesModel.filterRegExp = RegExp('.*'+text, "im")
         }
 
-        ListModel {
-            id: tagsTestModel
-        }
-
         Components.CheckBox {
             id: checkBox
             text: qsTr("Show Examples and Demos")
             checked: false
+            anchors.leftMargin: 6
             anchors.left: lineEdit.right
             anchors.verticalCenter: lineEdit.verticalCenter
             height: lineEdit.height
@@ -46,11 +65,15 @@ Item {
             property string tag
             Behavior on width { NumberAnimation{} }
             onTagChanged: { examplesModel.filterTag = tag; examplesModel.updateFilter() }
+            anchors.leftMargin: 6
             anchors.left: checkBox.right
             anchors.verticalCenter: lineEdit.verticalCenter
             visible: !examplesModel.showTutorialsOnly
-            text: tag === "" ? qsTr("Filter by Tag") : qsTr("Tag Filter: ") + tag
-            onClicked: tagChooser.visible = !tagChooser.visible
+            text: tag === "" ? qsTr("Filter by Tag") : qsTr("Tag Filter: %1").arg(tag)
+            onClicked: {
+                tagBrowserLoader.source = "TagBrowser.qml"
+                tagBrowserLoader.item.visible = true
+            }
         }
     }
     Components.ScrollArea  {
@@ -68,119 +91,8 @@ Item {
         }
     }
 
-
-    Rectangle {
-        id: tagChooser
+    Loader {
+        id: tagBrowserLoader
         anchors.fill: parent
-        color: "darkgrey"
-        visible: false
-        opacity: 0.95
-        radius: 6
-        MouseArea { anchors.fill: parent; hoverEnabled: true } // disable mouse on background
-        Text {
-            id: descr;
-            anchors.margins: 6;
-            color: "white";
-            text: qsTr("Please choose a tag to filter for:");
-            anchors.top: parent.top;
-            anchors.left: parent.left
-            font.bold: true
-        }
-
-        Item {
-            width: rect.width
-            height: rect.height
-
-            anchors.margins: 6;
-            anchors.top: parent.top;
-            anchors.right: parent.right
-
-            Rectangle {
-                color: "red"
-                id: rect
-                radius: 4
-                opacity: 0.3
-                width: closeText.width+4
-                height: closeText.height+4
-                x: closeText.x-2
-                y: closeText.y-2
-            }
-            Text { id: closeText; text: qsTr("Close"); color: "white"; anchors.centerIn: parent }
-            MouseArea {
-                id: mouseArea
-                anchors.fill: parent
-                hoverEnabled: true
-                onClicked: {
-                    tagChooser.visible = false;
-                    tagFilterButton.tag = "";
-                }
-            }
-        }
-
-        Flickable {
-            id: flickable
-            anchors.fill: parent
-            anchors.margins: 6
-            anchors.topMargin: descr.height + anchors.margins*2
-            contentHeight: flow.height
-            contentWidth: flow.width
-            flickableDirection: Flickable.VerticalFlick
-            clip: true
-            Flow {
-                width: tagChooser.width
-                id: flow
-                spacing: 6
-                Repeater {
-                    model: tagsTestModel
-                    delegate: Item {
-                        width: btnRect.width
-                        height: btnRect.height
-                        Rectangle {
-                            id: btnRect
-                            radius: 4
-                            opacity: 0
-                            width: closeText.width+4
-                            height: closeText.height+4
-                            x: closeText.x-2
-                            y: closeText.y-2
-                        }
-                        Text { id: closeText; text: model.text; color: "white"; anchors.centerIn: parent }
-                        MouseArea {
-                            id: mouseArea
-                            anchors.fill: parent
-                            hoverEnabled: true
-                        }
-
-                        states: [
-                            State {
-                                name: "selected"
-                                when: mouseArea.pressed
-                            },
-                            State {
-                                name: "hovered"
-                                when: mouseArea.containsMouse
-                                PropertyChanges {
-                                    target: btnRect
-                                    color: "darkblue"
-                                    opacity: 0.3
-                                }
-                            }
-                        ]
-                        transitions: [
-                            Transition {
-                                from: "hovered"
-                                to: "selected"
-                                ParallelAnimation {
-                                    PropertyAction { target: tagFilterButton; property: "tag"; value: model.value }
-                                    PropertyAction { target: tagChooser; property: "visible"; value: false }
-                                    ColorAnimation { to: "#00000000"; duration: 0 }
-                                }
-                            }
-                        ]
-                    }
-                }
-            }
-
-        }
     }
 }
diff --git a/share/qtcreator/welcomescreen/widgets/ExampleDelegate.qml b/share/qtcreator/welcomescreen/widgets/ExampleDelegate.qml
index f66a2e410d6df8be817d9dd855e5cf2f14bfe289..d4ebfd8c648f31a8d29c32dadce6f45bc61e636b 100644
--- a/share/qtcreator/welcomescreen/widgets/ExampleDelegate.qml
+++ b/share/qtcreator/welcomescreen/widgets/ExampleDelegate.qml
@@ -1,3 +1,35 @@
+/**************************************************************************
+**
+** 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.
+**
+**************************************************************************/
+
 import QtQuick 1.0
 
 Rectangle {
diff --git a/share/qtcreator/welcomescreen/widgets/FeaturedAndNewsListing.qml b/share/qtcreator/welcomescreen/widgets/FeaturedAndNewsListing.qml
index c545b7af9105a2d6fb579fca747fa596158e5648..1d2ea1208eab60184f565c01b5eb0d1a075da8c8 100644
--- a/share/qtcreator/welcomescreen/widgets/FeaturedAndNewsListing.qml
+++ b/share/qtcreator/welcomescreen/widgets/FeaturedAndNewsListing.qml
@@ -1,5 +1,38 @@
+/**************************************************************************
+**
+** 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.
+**
+**************************************************************************/
+
 import QtQuick 1.0
-import "../components" as Components
+import components 1.0 as Components
+
 Item {
     InsetText {
         id: text
@@ -7,7 +40,7 @@ Item {
         anchors.top:  parent.top
         anchors.margins: 10
         horizontalAlignment: Text.AlignHCenter
-        text: "Featured News"
+        text: qsTr("Featured News")
 //        mainColor: "#44A51C"
         mainColor: "#074C1C"
         font.bold: true
@@ -16,7 +49,7 @@ Item {
 
     ListModel {
         id: tempNewsModel
-        ListElement { title: "Loading news sources..."; description: "Loading..." ; blogIcon: ""; blogName: ""; link: "" }
+        ListElement { title: ""; description: "Loading news sources..." ; blogIcon: ""; blogName: ""; link: "" }
     }
 
     NewsListing {
diff --git a/share/qtcreator/welcomescreen/widgets/Feedback.qml b/share/qtcreator/welcomescreen/widgets/Feedback.qml
index 71fc1e70dc14f5371b92042623db1e549ae6b021..0b623473cb4f898e1c8d4ca200ee3cc8c3fa6573 100644
--- a/share/qtcreator/welcomescreen/widgets/Feedback.qml
+++ b/share/qtcreator/welcomescreen/widgets/Feedback.qml
@@ -1,5 +1,37 @@
-import Qt 4.7
-import "../components" as Components
+/**************************************************************************
+**
+** 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.
+**
+**************************************************************************/
+
+import QtQuick 1.0
+import components 1.0 as Components
 
 BorderImage {
     id: inner_background
@@ -10,11 +42,15 @@ BorderImage {
 
     Rectangle { color: "black"; width: parent.width; height: 1; anchors.top: parent.top; anchors.left: parent.left }
 
-    Components.Button {
+    Components.QStyleItem { id: styleItem; visible: false }
 
+    // whitelist
+    property bool _hasDesktopTheme: welcomeMode.platform() === "linux"
+
+    Components.Button {
         id: openProjectButton
-        text: "Open Project"
-        iconSource: "image://desktoptheme/document-open"
+        text: qsTr("Open Project...")
+        iconSource: _hasDesktopTheme ? "image://desktoptheme/document-open" : ""
         onClicked: welcomeMode.openProject();
         height: 32
         anchors.left: parent.left
@@ -24,8 +60,8 @@ BorderImage {
 
     Components.Button {
         id: createProjectButton
-        text: "Create Project"
-        iconSource: "image://desktoptheme/document-new"
+        text: qsTr("Create Project...")
+        iconSource: _hasDesktopTheme ? "image://desktoptheme/document-new" : ""
         onClicked: welcomeMode.newProject();
         height: 32
         anchors.left: openProjectButton.right
@@ -36,7 +72,7 @@ BorderImage {
 
     Components.Button {
         id: feedbackButton
-        text: "Feedback"
+        text: qsTr("Feedback")
         iconSource: "qrc:welcome/images/feedback_arrow.png"
         height: 32
         anchors.verticalCenter: parent.verticalCenter
@@ -51,6 +87,6 @@ BorderImage {
         anchors.right: parent.right
         anchors.leftMargin: 10
         anchors.margins: 5
-        text: "Help us make Qt Creator even better"
+        text: qsTr("Help us make Qt Creator even better")
     }
 }
diff --git a/share/qtcreator/welcomescreen/widgets/HeaderItemView.qml b/share/qtcreator/welcomescreen/widgets/HeaderItemView.qml
index 1ac0079b1137f1a48389bb9218898254d78a8da8..306cd8f01de1d3b16ce8cbc757cdbdca04f9ec59 100644
--- a/share/qtcreator/welcomescreen/widgets/HeaderItemView.qml
+++ b/share/qtcreator/welcomescreen/widgets/HeaderItemView.qml
@@ -1,4 +1,37 @@
+/**************************************************************************
+**
+** 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.
+**
+**************************************************************************/
+
 import QtQuick 1.0
+
 Item {
     id: root
     height: childrenRect.height
@@ -15,7 +48,6 @@ Item {
         anchors.top: parent.top
         anchors.left: parent.left
         anchors.right: parent.right
-        anchors.topMargin: 6
     }
 
     Column {
diff --git a/share/qtcreator/welcomescreen/widgets/InsetText.qml b/share/qtcreator/welcomescreen/widgets/InsetText.qml
index 0a271bff3da5df149e110f053c4a2808d0979633..94ad5d720bc8548a5a650abdccf01e9577455a32 100644
--- a/share/qtcreator/welcomescreen/widgets/InsetText.qml
+++ b/share/qtcreator/welcomescreen/widgets/InsetText.qml
@@ -1,3 +1,35 @@
+/**************************************************************************
+**
+** 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.
+**
+**************************************************************************/
+
 import QtQuick 1.0
 
 Text {
diff --git a/share/qtcreator/welcomescreen/widgets/LineEdit.qml b/share/qtcreator/welcomescreen/widgets/LineEdit.qml
index 9d3654d276660ab3bf82297fb339d815416f6cd9..aedd1d34e45713d315e1c5663831fe6bb6861680 100644
--- a/share/qtcreator/welcomescreen/widgets/LineEdit.qml
+++ b/share/qtcreator/welcomescreen/widgets/LineEdit.qml
@@ -1,3 +1,35 @@
+/**************************************************************************
+**
+** 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.
+**
+**************************************************************************/
+
 import QtQuick 1.0
 
 FocusScope {
@@ -12,12 +44,12 @@ FocusScope {
         border.right: 5; border.bottom: 5
         TextInput {
             id: input
+            property string defaultText
             anchors.verticalCenter: parent.verticalCenter
             anchors.left: parent.left
             anchors.right: parent.right
             anchors.leftMargin: 4
             anchors.rightMargin: 4
-            property string defaultText: "Click here to search the tutorials and howtos"
             color: "grey"
             text:  defaultText
             font.pointSize: 12
diff --git a/share/qtcreator/welcomescreen/widgets/LinksBar.qml b/share/qtcreator/welcomescreen/widgets/LinksBar.qml
index a4efb7495c5e1226729910049a9f695989f6610d..2d1bfd54de2c09a5b3076fc4b9ca77ee33d05566 100644
--- a/share/qtcreator/welcomescreen/widgets/LinksBar.qml
+++ b/share/qtcreator/welcomescreen/widgets/LinksBar.qml
@@ -1,5 +1,36 @@
-import QtQuick 1.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.
+**
+**************************************************************************/
 
+import QtQuick 1.0
 
 Row {
     id: tabBar
diff --git a/share/qtcreator/welcomescreen/widgets/NewsListing.qml b/share/qtcreator/welcomescreen/widgets/NewsListing.qml
index a756ef7fc3b675243333a2889f47303948720871..75fb1a90fb78602391738e3c8c9ce37599d80cc9 100644
--- a/share/qtcreator/welcomescreen/widgets/NewsListing.qml
+++ b/share/qtcreator/welcomescreen/widgets/NewsListing.qml
@@ -1,5 +1,37 @@
-import Qt 4.7
-import "../components/" as Components
+/**************************************************************************
+**
+** 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.
+**
+**************************************************************************/
+
+import QtQuick 1.1
+import components 1.0 as Components
 
 Item {
     id: root
@@ -15,6 +47,13 @@ Item {
         onTriggered: repeater.incrementIndex()
     }
 
+    Timer {
+        id: modelUpdateTimer
+        repeat: false
+        interval: 1000
+        onTriggered: repeater.handleModelUpdate();
+    }
+
     Repeater {
         id: repeater
         function incrementIndex() {
@@ -23,17 +62,34 @@ Item {
             repeater.itemAt(currentItem).active = true
         }
 
+        function handleModelUpdate() {
+            timer.stop();
+            currentItem = 0;
+            for (var i = 0; i < count; ++i) {
+                if (i != currentItem)
+                    repeater.itemAt(i).active = false;
+                else
+                    repeater.itemAt(i).active = true;
+            }
+            timer.start();
+        }
+
         function handleModelChanged() {
-            if (timer.running)
-                timer.stop();
-            currentItem = 0
-            //FIXME: this doesn't work
-            repeater.itemAt(currentItem).active = true
-            timer.start()
+            modelUpdateTimer.restart();
+        }
+
+        function handleItemRemoved(index, item) {
+            modelUpdateTimer.restart();
+        }
+
+        function handleItemAdded(index, item) {
+            modelUpdateTimer.restart();
         }
 
         anchors.fill: parent
         onModelChanged: handleModelChanged()
+        onItemAdded: handleItemAdded(index, item)
+        onItemRemoved: handleItemRemoved(index, item)
         delegate: Item {
             property bool active: false
             id: delegateItem
@@ -44,12 +100,30 @@ Item {
                 spacing: 10
                 width: parent.width
                 id: column
-                Text { id: heading1; text: title; font.bold: true; wrapMode: Text.WrapAtWordBoundaryOrAnywhere; textFormat: Text.RichText; width: parent.width-icon.width-5 }
+                Text {
+                    id: heading1;
+                    text: title;
+                    font.bold: true;
+                    wrapMode: Text.WrapAtWordBoundaryOrAnywhere;
+                    textFormat: Text.RichText;
+                    width: parent.width-icon.width-5
+                }
                 Row {
                     spacing: 5
                     width: parent.width
-                    Image { id: icon; source: blogIcon; asynchronous: true }
-                    Text { id: heading2; text: blogName; font.italic: true; wrapMode: Text.WrapAtWordBoundaryOrAnywhere; textFormat: Text.RichText; width: parent.width-icon.width-5 }
+                    Image {
+                        id: icon;
+                        source: blogIcon;
+                        asynchronous: true
+                    }
+                    Text {
+                        id: heading2;
+                        text: blogName;
+                        font.italic: true;
+                        wrapMode: Text.WrapAtWordBoundaryOrAnywhere;
+                        textFormat: Text.RichText;
+                        width: parent.width-icon.width-5
+                    }
                 }
                 Text {
                     id: text;
@@ -58,16 +132,33 @@ Item {
                     textFormat: Text.RichText
                     width: parent.width-10
                 }
-                Text { visible: link !== ""; id: readmore; text: qsTr("Click to read more..."); font.italic: true; wrapMode: Text.WrapAtWordBoundaryOrAnywhere; textFormat: Text.RichText }
+                Text { visible: link !== "";
+                    id: readmore;
+                    text: qsTr("Click to read more...");
+                    font.italic: true;
+                    wrapMode: Text.WrapAtWordBoundaryOrAnywhere;
+                    textFormat: Text.RichText
+                }
+            }
+            Components.QStyleItem {
+                id: styleItem;
+                cursor: "pointinghandcursor";
+                anchors.fill: column
+            }
+            MouseArea {
+                anchors.fill: column;
+                onClicked: Qt.openUrlExternally(link);
+                hoverEnabled: true;
+                onEntered: timer.stop()
+                onExited: timer.restart()
+                id: mouseArea
             }
-            Components.QStyleItem { id: styleItem; cursor: "pointinghandcursor"; anchors.fill: column }
-            MouseArea { anchors.fill: column; onClicked: Qt.openUrlExternally(link); hoverEnabled: true; id: mouseArea }
 
             StateGroup {
                 id: activeState
                 states: [ State { name: "active"; when: delegateItem.active; PropertyChanges { target: delegateItem; opacity: 1 } } ]
                 transitions: [
-                    Transition { from: ""; to: "active"; reversible: true; NumberAnimation { target: delegateItem; property: "opacity"; duration: 200 } }
+                    Transition { from: ""; to: "active"; reversible: true; NumberAnimation { target: delegateItem; property: "opacity"; duration: 1000 } }
                 ]
             }
 
@@ -76,6 +167,7 @@ Item {
                 State { name: "hovered"; when: mouseArea.containsMouse;  PropertyChanges { target: text; color: "#074C1C" } }
             ]
 
+
         }
     }
 }
diff --git a/share/qtcreator/welcomescreen/widgets/RatingBar.qml b/share/qtcreator/welcomescreen/widgets/RatingBar.qml
index f7d5a671bbbc8ecd07b08e15873837bb18dea5d9..ff371df62c481031ead88737b1e631ca9f146896 100644
--- a/share/qtcreator/welcomescreen/widgets/RatingBar.qml
+++ b/share/qtcreator/welcomescreen/widgets/RatingBar.qml
@@ -1,3 +1,35 @@
+/**************************************************************************
+**
+** 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.
+**
+**************************************************************************/
+
 import QtQuick 1.0
 
 Row {
diff --git a/share/qtcreator/welcomescreen/widgets/RecentProjects.qml b/share/qtcreator/welcomescreen/widgets/RecentProjects.qml
index 8a9bab30fcc0fefdf2cf570036534eec759d5b95..aa11086c95a8d805d82b9b4698b236de8ec88f2a 100644
--- a/share/qtcreator/welcomescreen/widgets/RecentProjects.qml
+++ b/share/qtcreator/welcomescreen/widgets/RecentProjects.qml
@@ -1,5 +1,37 @@
+/**************************************************************************
+**
+** 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.
+**
+**************************************************************************/
+
 import QtQuick 1.0
-import "../components" as Components
+import components 1.0 as Components
 
 HeaderItemView {
     header: qsTr("Recently Edited Projects")
diff --git a/share/qtcreator/welcomescreen/widgets/RecentSessions.qml b/share/qtcreator/welcomescreen/widgets/RecentSessions.qml
index 3f10805ff97561a7de5b193a130711e5d3b31819..c9fbfde771ea8cf895434f61bbb3456f664fba29 100644
--- a/share/qtcreator/welcomescreen/widgets/RecentSessions.qml
+++ b/share/qtcreator/welcomescreen/widgets/RecentSessions.qml
@@ -1,5 +1,37 @@
+/**************************************************************************
+**
+** 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.
+**
+**************************************************************************/
+
 import QtQuick 1.0
-import "../components" as Components
+import components 1.0 as Components
 
 HeaderItemView {
     header: qsTr("Recently Used Sessions")
@@ -13,7 +45,7 @@ HeaderItemView {
         {
             var newSessionName = sessionName
             if (model.currentSession)
-                newSessionName +=  qsTr(" (current session)");
+                newSessionName = qsTr("%1 (current session)").arg(newSessionName);
             return newSessionName;
         }
 
diff --git a/share/qtcreator/welcomescreen/widgets/TabWidget.qml b/share/qtcreator/welcomescreen/widgets/TabWidget.qml
index cf90dfe980dabcc186735af0a4e01ad3dae091fb..150c74ead80cb55cf52a449cab570abbb9033140 100644
--- a/share/qtcreator/welcomescreen/widgets/TabWidget.qml
+++ b/share/qtcreator/welcomescreen/widgets/TabWidget.qml
@@ -1,4 +1,36 @@
-import Qt 4.7
+/**************************************************************************
+**
+** 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.
+**
+**************************************************************************/
+
+import QtQuick 1.0
 
 Item {
     id: tabWidget
@@ -14,12 +46,13 @@ Item {
         Repeater {
             id: contentRepeater
             Loader {
+                property bool active: index == tabWidget.current
                 id: pageLoader
                 clip: true
-                opacity: index == tabWidget.current
+                opacity: active
                 anchors.fill: parent
                 anchors.margins: 4
-                source: model.modelData.pageLocation
+                onActiveChanged: if (active && source == "") source = model.modelData.pageLocation
 
                 onStatusChanged: {
                     if (pageLoader.status == Loader.Error) console.debug(source + ' failed to load')
diff --git a/share/qtcreator/welcomescreen/widgets/TagBrowser.qml b/share/qtcreator/welcomescreen/widgets/TagBrowser.qml
new file mode 100644
index 0000000000000000000000000000000000000000..bcb9cfc56c94de38e9c546eb76fba7b88c93893f
--- /dev/null
+++ b/share/qtcreator/welcomescreen/widgets/TagBrowser.qml
@@ -0,0 +1,173 @@
+/**************************************************************************
+**
+** 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.
+**
+**************************************************************************/
+
+import QtQuick 1.0
+
+Rectangle {
+    id: tagChooser
+
+    anchors.fill: parent
+    color: "darkgrey"
+    opacity: 0.95
+    radius: 6
+    visible: false
+
+    property bool needsUpdate: true;
+
+    Connections {
+        target: gettingStarted
+        onTagsUpdated: needsUpdate = true
+    }
+
+    onVisibleChanged: {
+        if (visible && needsUpdate) {
+            needsUpdate = false;
+            tagsModel.clear();
+            var tagList = gettingStarted.tagList()
+            for (var tag in tagList) {
+                tagsModel.append({ "text": tagList[tag], "value": tagList[tag] });
+            }
+        }
+    }
+
+    ListModel {
+        id: tagsModel
+    }
+
+    MouseArea { anchors.fill: parent; hoverEnabled: true } // disable mouse on background
+    Text {
+        id: descr;
+        anchors.margins: 6;
+        color: "white";
+        text: qsTr("Please choose a tag to filter for:");
+        anchors.top: parent.top;
+        anchors.left: parent.left
+        font.bold: true
+    }
+
+    Item {
+        width: rect.width
+        height: rect.height
+
+        anchors.margins: 6;
+        anchors.top: parent.top;
+        anchors.right: parent.right
+
+        Rectangle {
+            color: "red"
+            id: rect
+            radius: 4
+            opacity: 0.3
+            width: clearText.width+4
+            height: clearText.height+4
+            x: clearText.x-2
+            y: clearText.y-2
+        }
+        Text { id: clearText; text: qsTr("Clear"); color: "white"; anchors.centerIn: parent }
+        MouseArea {
+            id: mouseArea
+            anchors.fill: parent
+            hoverEnabled: true
+            onClicked: {
+                tagChooser.visible = false;
+                tagFilterButton.tag = "";
+            }
+        }
+    }
+
+    Flickable {
+        id: flickable
+        anchors.fill: parent
+        anchors.margins: 6
+        anchors.topMargin: descr.height + anchors.margins*2
+        contentHeight: flow.height
+        contentWidth: flow.width
+        flickableDirection: Flickable.VerticalFlick
+        clip: true
+        Flow {
+            width: tagChooser.width
+            id: flow
+            spacing: 6
+            Repeater {
+                id: tagsList
+                model: tagsModel
+                delegate: Item {
+                    width: btnRect.width
+                    height: btnRect.height
+                    Rectangle {
+                        id: btnRect
+                        radius: 4
+                        opacity: 0
+                        width: text.width+4
+                        height: text.height+4
+                        x: text.x-2
+                        y: text.y-2
+                    }
+                    Text { id: text; text: model.text; color: "white"; anchors.centerIn: parent }
+                    MouseArea {
+                        id: mouseArea
+                        anchors.fill: parent
+                        hoverEnabled: true
+                    }
+
+                    states: [
+                        State {
+                            name: "selected"
+                            when: mouseArea.pressed
+                        },
+                        State {
+                            name: "hovered"
+                            when: mouseArea.containsMouse
+                            PropertyChanges {
+                                target: btnRect
+                                color: "darkblue"
+                                opacity: 0.3
+                            }
+                        }
+                    ]
+                    transitions: [
+                        Transition {
+                            from: "hovered"
+                            to: "selected"
+                            ParallelAnimation {
+                                PropertyAction { target: tagFilterButton; property: "tag"; value: model.value }
+                                PropertyAction { target: tagChooser; property: "visible"; value: false }
+                                ColorAnimation { to: "#00000000"; duration: 0 }
+                            }
+                        }
+                    ]
+                }
+            }
+        }
+
+    }
+}
diff --git a/share/qtcreator/welcomescreen/widgets/qmldir b/share/qtcreator/welcomescreen/widgets/qmldir
new file mode 100644
index 0000000000000000000000000000000000000000..40e9f991a24caf3356926c7a348d6b338057519d
--- /dev/null
+++ b/share/qtcreator/welcomescreen/widgets/qmldir
@@ -0,0 +1,14 @@
+Button 1.0 Button.qml
+ExampleBrowser 1.0 ExampleBrowser.qml
+ExampleDelegate 1.0 ExampleDelegate.qml
+FeaturedAndNewsListing 1.0 FeaturedAndNewsListing.qml
+Feedback 1.0 Feedback.qml
+HeaderItemView 1.0 HeaderItemView.qml
+InsetText 1.0 InsetText.qml
+LineEdit 1.0 LineEdit.qml
+LinksBar 1.0 LinksBar.qml
+NewsListing 1.0 NewsListing.qml
+RatingBar 1.0 RatingBar.qml
+RecentProjects 1.0 RecentProjects.qml
+RecentSessions 1.0 RecentSessions.qml
+TabWidget 1.0 TabWidget.qml
diff --git a/src/libs/3rdparty/botan/build/botan/build.h b/src/libs/3rdparty/botan/build/botan/build.h
index f674283e72352413050f5b0733c41e6ba4d33596..cea0132dc982ea97071e5362824c61db8a80e6ff 100644
--- a/src/libs/3rdparty/botan/build/botan/build.h
+++ b/src/libs/3rdparty/botan/build/botan/build.h
@@ -26,7 +26,7 @@
 ** 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 qt-info@nokia.com.
+** Nokia at info@qt.nokia.com.
 **
 **************************************************************************/
 
diff --git a/src/libs/3rdparty/precompiled_headers/botan_pch.h b/src/libs/3rdparty/precompiled_headers/botan_pch.h
index 034a5845fc1c532901f04a4f26d903b952166442..6a2aa431eefc0691d2ac108f2069936d85ee59c5 100644
--- a/src/libs/3rdparty/precompiled_headers/botan_pch.h
+++ b/src/libs/3rdparty/precompiled_headers/botan_pch.h
@@ -26,7 +26,7 @@
 ** 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 qt-info@nokia.com.
+** Nokia at info@qt.nokia.com.
 **
 **************************************************************************/
 
diff --git a/src/libs/aggregation/examples/text/main.cpp b/src/libs/aggregation/examples/text/main.cpp
index 81d88727ca6ec2c14e0f99950f5f5288a572d930..30a4a1d91b35382d221c6ed19041f642355675de 100644
--- a/src/libs/aggregation/examples/text/main.cpp
+++ b/src/libs/aggregation/examples/text/main.cpp
@@ -26,7 +26,7 @@
 ** 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 qt-info@nokia.com.
+** Nokia at info@qt.nokia.com.
 **
 **************************************************************************/
 
diff --git a/src/libs/aggregation/examples/text/main.h b/src/libs/aggregation/examples/text/main.h
index 3c80fea8c6d319c79a4c6d4ec559217436d1df77..111f55df4156e7be28ae9d46016c94bdafeb0290 100644
--- a/src/libs/aggregation/examples/text/main.h
+++ b/src/libs/aggregation/examples/text/main.h
@@ -26,7 +26,7 @@
 ** 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 qt-info@nokia.com.
+** Nokia at info@qt.nokia.com.
 **
 **************************************************************************/
 
diff --git a/src/libs/aggregation/examples/text/myinterfaces.h b/src/libs/aggregation/examples/text/myinterfaces.h
index 7834af3d47ee3bc2b01607a588a552caa880c745..9180feaed55deb9c1d86e17841e091cc6c459998 100644
--- a/src/libs/aggregation/examples/text/myinterfaces.h
+++ b/src/libs/aggregation/examples/text/myinterfaces.h
@@ -26,7 +26,7 @@
 ** 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 qt-info@nokia.com.
+** Nokia at info@qt.nokia.com.
 **
 **************************************************************************/
 
diff --git a/src/libs/extensionsystem/test/manual/pluginview/plugindialog.cpp b/src/libs/extensionsystem/test/manual/pluginview/plugindialog.cpp
index 37b53ed11d43c5f7331ef2012f4089296d916494..ab2042488b43a5d44f759876659b5e6c7a9698d3 100644
--- a/src/libs/extensionsystem/test/manual/pluginview/plugindialog.cpp
+++ b/src/libs/extensionsystem/test/manual/pluginview/plugindialog.cpp
@@ -26,7 +26,7 @@
 ** 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 qt-info@nokia.com.
+** Nokia at info@qt.nokia.com.
 **
 **************************************************************************/
 
diff --git a/src/libs/extensionsystem/test/manual/pluginview/plugindialog.h b/src/libs/extensionsystem/test/manual/pluginview/plugindialog.h
index 2a98c84af4f7d20e391591237850684609c6e1dd..a8c2b098d653ec585320d289535d24f531998a83 100644
--- a/src/libs/extensionsystem/test/manual/pluginview/plugindialog.h
+++ b/src/libs/extensionsystem/test/manual/pluginview/plugindialog.h
@@ -26,7 +26,7 @@
 ** 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 qt-info@nokia.com.
+** Nokia at info@qt.nokia.com.
 **
 **************************************************************************/
 
diff --git a/src/libs/extensionsystem/test/manual/pluginview/plugins/plugin1/plugin1.cpp b/src/libs/extensionsystem/test/manual/pluginview/plugins/plugin1/plugin1.cpp
index 0bdf6d2b512337c1f0fd48d258a7583c01f6ad34..e9cb0655544209c9feda415ca6d742e95e63f9fb 100644
--- a/src/libs/extensionsystem/test/manual/pluginview/plugins/plugin1/plugin1.cpp
+++ b/src/libs/extensionsystem/test/manual/pluginview/plugins/plugin1/plugin1.cpp
@@ -26,7 +26,7 @@
 ** 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 qt-info@nokia.com.
+** Nokia at info@qt.nokia.com.
 **
 **************************************************************************/
 
diff --git a/src/libs/extensionsystem/test/manual/pluginview/plugins/plugin1/plugin1.h b/src/libs/extensionsystem/test/manual/pluginview/plugins/plugin1/plugin1.h
index 63e382556600a3a9c16fc2927746b8f24e687668..b28470e5dfb5d7195758b649ba75c8fec1b10c68 100644
--- a/src/libs/extensionsystem/test/manual/pluginview/plugins/plugin1/plugin1.h
+++ b/src/libs/extensionsystem/test/manual/pluginview/plugins/plugin1/plugin1.h
@@ -26,7 +26,7 @@
 ** 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 qt-info@nokia.com.
+** Nokia at info@qt.nokia.com.
 **
 **************************************************************************/
 
diff --git a/src/libs/extensionsystem/test/manual/pluginview/plugins/plugin2/plugin2.cpp b/src/libs/extensionsystem/test/manual/pluginview/plugins/plugin2/plugin2.cpp
index 204bf391d32957c6e2e07d407325325c5e9e5245..f177ff2fa5c94c006a5eb9714188738d5244afde 100644
--- a/src/libs/extensionsystem/test/manual/pluginview/plugins/plugin2/plugin2.cpp
+++ b/src/libs/extensionsystem/test/manual/pluginview/plugins/plugin2/plugin2.cpp
@@ -26,7 +26,7 @@
 ** 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 qt-info@nokia.com.
+** Nokia at info@qt.nokia.com.
 **
 **************************************************************************/
 
diff --git a/src/libs/extensionsystem/test/manual/pluginview/plugins/plugin2/plugin2.h b/src/libs/extensionsystem/test/manual/pluginview/plugins/plugin2/plugin2.h
index 21819e498d098f6321f7fabf2e132759f2d86138..421a35e769a4a8e0c713ed86fec6e6f35d2d544f 100644
--- a/src/libs/extensionsystem/test/manual/pluginview/plugins/plugin2/plugin2.h
+++ b/src/libs/extensionsystem/test/manual/pluginview/plugins/plugin2/plugin2.h
@@ -26,7 +26,7 @@
 ** 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 qt-info@nokia.com.
+** Nokia at info@qt.nokia.com.
 **
 **************************************************************************/
 
diff --git a/src/libs/extensionsystem/test/manual/pluginview/plugins/plugin3/plugin3.cpp b/src/libs/extensionsystem/test/manual/pluginview/plugins/plugin3/plugin3.cpp
index f385aae4d469acd850c7211cae872e910de748b4..00138f33a5e27a10dde9cf52ae10cf8a53b164fd 100644
--- a/src/libs/extensionsystem/test/manual/pluginview/plugins/plugin3/plugin3.cpp
+++ b/src/libs/extensionsystem/test/manual/pluginview/plugins/plugin3/plugin3.cpp
@@ -26,7 +26,7 @@
 ** 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 qt-info@nokia.com.
+** Nokia at info@qt.nokia.com.
 **
 **************************************************************************/
 
diff --git a/src/libs/extensionsystem/test/manual/pluginview/plugins/plugin3/plugin3.h b/src/libs/extensionsystem/test/manual/pluginview/plugins/plugin3/plugin3.h
index a323129bd26924f10573197031d9de1567afa196..500d38b61b4bd3813ed937ebe7d7dbfdf2c54bec 100644
--- a/src/libs/extensionsystem/test/manual/pluginview/plugins/plugin3/plugin3.h
+++ b/src/libs/extensionsystem/test/manual/pluginview/plugins/plugin3/plugin3.h
@@ -26,7 +26,7 @@
 ** 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 qt-info@nokia.com.
+** Nokia at info@qt.nokia.com.
 **
 **************************************************************************/
 
diff --git a/src/libs/libs.pro b/src/libs/libs.pro
index 3e34c766e53066f8832bdac12cf2f6ecb2d4fe0f..f33e687774f5c5803230b366b97bd5c60038b35e 100644
--- a/src/libs/libs.pro
+++ b/src/libs/libs.pro
@@ -16,11 +16,6 @@ SUBDIRS   = \
     qmleditorwidgets \
     symbianutils
 
-
-!win32 {
-    SUBDIRS += valgrind
-}
-
 # Windows: Compile Qt Creator CDB extension if Debugging tools can be detected.    
 win32 {
     include(qtcreatorcdbext/cdb_detect.pri)
diff --git a/src/libs/qmljs/qmljstypedescriptionreader.cpp b/src/libs/qmljs/qmljstypedescriptionreader.cpp
index c95dc741012936d2f42f6b7856ecda91bad25641..d3f392c71bbd49eff3689484e58e72b3cc5af47d 100644
--- a/src/libs/qmljs/qmljstypedescriptionreader.cpp
+++ b/src/libs/qmljs/qmljstypedescriptionreader.cpp
@@ -120,7 +120,7 @@ void TypeDescriptionReader::readDocument(UiProgram *ast)
                                    versionString.mid(dotIdx + 1).toInt());
     }
     if (version > ComponentVersion(1, 1)) {
-        addError(import->versionToken, "Expected version 1.1 or higher");
+        addError(import->versionToken, "Expected version 1.1 or lower");
         return;
     }
 
diff --git a/src/libs/qtconcurrent/QtConcurrentTools b/src/libs/qtconcurrent/QtConcurrentTools
index 96cda38316c068fc3befc873d0bd7455226f5f52..ca634a4bce7d7ea8cc0735595b56dcda064b7b39 100644
--- a/src/libs/qtconcurrent/QtConcurrentTools
+++ b/src/libs/qtconcurrent/QtConcurrentTools
@@ -26,7 +26,7 @@
 ** 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 qt-info@nokia.com.
+** Nokia at info@qt.nokia.com.
 **
 **************************************************************************/
 
diff --git a/src/libs/qtcreatorcdbext/qtcreatorcdbext.pro b/src/libs/qtcreatorcdbext/qtcreatorcdbext.pro
index c8dfa333ae47b9aae124af3738d4508fca7b717e..f9da7617b61e3ba5afe72aa7f0d3f90725b582eb 100644
--- a/src/libs/qtcreatorcdbext/qtcreatorcdbext.pro
+++ b/src/libs/qtcreatorcdbext/qtcreatorcdbext.pro
@@ -22,12 +22,18 @@ DEF_FILE=$$PWD/qtcreatorcdbext.def
 
 IDE_BASE_PATH=$$dirname(IDE_APP_PATH)
 
-# Find out 64/32bit and determine target directories accordingly.
-# TODO: This is an ugly hack. Better check compiler (stderr) or something?
-ENV_LIB_PATH=$$(LIBPATH)
-
-
-contains(ENV_LIB_PATH, ^.*amd64.*$) {
+# Find out whether we are _building_ 64/32bit and determine target
+# directories accordingly.
+#
+# Newer MSVC versions set CPU, olders do not, so use hacky check on
+# LIBPATH if CPU is not available
+ENV_CPU=$$(CPU)
+ENV_LIBPATH=$$(LIBPATH)
+
+contains(ENV_CPU, ^AMD64$) {
+    DESTDIR=$$IDE_BASE_PATH/lib/$${BASENAME}64
+    CDB_PLATFORM=amd64
+} else:isEmpty(ENV_CPU):contains(ENV_LIBPATH, ^.*amd64.*$) {
     DESTDIR=$$IDE_BASE_PATH/lib/$${BASENAME}64
     CDB_PLATFORM=amd64
 } else {
diff --git a/src/libs/utils/detailsbutton.cpp b/src/libs/utils/detailsbutton.cpp
index ef38d9b409d74decefe2ba6984fbb01d7e68f596..5aa4ef91fca809e90b4a461479ea988d694ff260 100644
--- a/src/libs/utils/detailsbutton.cpp
+++ b/src/libs/utils/detailsbutton.cpp
@@ -80,10 +80,11 @@ DetailsButton::DetailsButton(QWidget *parent) : QAbstractButton(parent), m_fader
 QSize DetailsButton::sizeHint() const
 {
     // TODO: Adjust this when icons become available!
+    const int w = fontMetrics().width(text()) + 32;
 #ifdef Q_WS_MAC
-    return QSize(80, 34);
+    return QSize(w, 34);
 #else
-    return QSize(80, 22);
+    return QSize(w, 22);
 #endif
 }
 
@@ -171,6 +172,7 @@ QPixmap DetailsButton::cacheRendering(const QSize &size, bool checked)
 
     QRect textRect = p.fontMetrics().boundingRect(text());
     textRect.setWidth(textRect.width() + 15);
+    textRect.setHeight(textRect.height() + 4);
     textRect.moveCenter(rect().center());
 
     p.drawText(textRect, Qt::AlignLeft | Qt::AlignVCenter, text());
diff --git a/src/libs/utils/fileutils.cpp b/src/libs/utils/fileutils.cpp
index 871e5ebb5288bf22bf4bccda59dba24d3137d229..b4eb010a4ae1c94227c1db6e1f72bc9275b7eaeb 100644
--- a/src/libs/utils/fileutils.cpp
+++ b/src/libs/utils/fileutils.cpp
@@ -38,12 +38,152 @@
 #include <QtCore/QDir>
 #include <QtCore/QFileInfo>
 #include <QtCore/QTemporaryFile>
+#include <QtCore/QDateTime>
 #include <QtCore/QDataStream>
 #include <QtCore/QTextStream>
 #include <QtGui/QMessageBox>
 
 namespace Utils {
 
+/*! \class Utils::FileUtils
+
+  \brief File- and directory-related convenience functions.
+
+  File- and directory-related convenience functions.
+*/
+
+/*!
+  \fn Utils::FileUtils::removeRecursively(const QString &filePath, QString *error)
+
+  Removes the directory \a filePath and its subdirectories recursively.
+
+  \note The \a error parameter is optional.
+
+  \return Whether the operation succeeded.
+*/
+
+/*!
+  \fn Utils::FileUtils::copyRecursively(const QString &srcFilePath, const QString &tgtFilePath, QString *error)
+
+  Copies the directory specified by \a srcFilePath recursively to \a tgtFilePath. \a tgtFilePath will contain
+  the target directory, which will be created. Example usage:
+
+  \code
+    QString error;
+    book ok = Utils::FileUtils::copyRecursively("/foo/bar", "/foo/baz", &error);
+    if (!ok)
+      qDebug() << error;
+  \endcode
+
+  This will copy the contents of /foo/bar into to the baz directory under /foo, which will be created in the process.
+
+  \note The \a error parameter is optional.
+
+  \return Whether the operation succeeded.
+*/
+
+/*!
+  \fn Utils::FileUtils::isFileNewerThan(const QString &filePath, const QDateTime &timeStamp)
+
+  If \a filePath is a directory, the function will recursively check all files and return
+  true if one of them is newer than \a timeStamp. If \a filePath is a single file, true will
+  be returned if the file is newer than \timeStamp.
+
+  \return Whether at least one file in \a filePath has a newer date than \a timeStamp.
+*/
+
+bool FileUtils::removeRecursively(const QString &filePath, QString *error)
+{
+    QFileInfo fileInfo(filePath);
+    if (!fileInfo.exists())
+        return true;
+    QFile::setPermissions(filePath, fileInfo.permissions() | QFile::WriteUser);
+    if (fileInfo.isDir()) {
+        QDir dir(filePath);
+        QStringList fileNames = dir.entryList(QDir::Files | QDir::Hidden
+                                              | QDir::System | QDir::Dirs | QDir::NoDotAndDotDot);
+        foreach (const QString &fileName, fileNames) {
+            if (!removeRecursively(filePath + QLatin1Char('/') + fileName, error))
+                return false;
+        }
+        dir.cdUp();
+        if (!dir.rmdir(fileInfo.fileName())) {
+            if (error) {
+                *error = QCoreApplication::translate("Utils::FileUtils", "Failed to remove directory '%1'.")
+                        .arg(QDir::toNativeSeparators(filePath));
+            }
+            return false;
+        }
+    } else {
+        if (!QFile::remove(filePath)) {
+            if (error) {
+                *error = QCoreApplication::translate("Utils::FileUtils", "Failed to remove file '%1'.")
+                        .arg(QDir::toNativeSeparators(filePath));
+            }
+            return false;
+        }
+    }
+    return true;
+}
+
+bool FileUtils::copyRecursively(const QString &srcFilePath,
+                     const QString &tgtFilePath, QString *error)
+{
+    QFileInfo srcFileInfo(srcFilePath);
+    if (srcFileInfo.isDir()) {
+        QDir targetDir(tgtFilePath);
+        targetDir.cdUp();
+        if (!targetDir.mkdir(QFileInfo(tgtFilePath).fileName())) {
+            if (error) {
+                *error = QCoreApplication::translate("Utils::FileUtils", "Failed to create directory '%1'.")
+                        .arg(QDir::toNativeSeparators(tgtFilePath));
+                return false;
+            }
+        }
+        QDir sourceDir(srcFilePath);
+        QStringList fileNames = sourceDir.entryList(QDir::Files | QDir::Dirs | QDir::NoDotAndDotDot | QDir::Hidden | QDir::System);
+        foreach (const QString &fileName, fileNames) {
+            const QString newSrcFilePath
+                    = srcFilePath + QLatin1Char('/') + fileName;
+            const QString newTgtFilePath
+                    = tgtFilePath + QLatin1Char('/') + fileName;
+            if (!copyRecursively(newSrcFilePath, newTgtFilePath, error))
+                return false;
+        }
+    } else {
+        if (!QFile::copy(srcFilePath, tgtFilePath)) {
+            if (error) {
+                *error = QCoreApplication::translate("Utils::FileUtils", "Could not copy file '%1' to '%2'.")
+                        .arg(QDir::toNativeSeparators(srcFilePath),
+                             QDir::toNativeSeparators(tgtFilePath));
+            }
+            return false;
+        }
+    }
+    return true;
+}
+
+bool FileUtils::isFileNewerThan(const QString &filePath,
+    const QDateTime &timeStamp)
+{
+    QFileInfo fileInfo(filePath);
+    if (!fileInfo.exists() || fileInfo.lastModified() >= timeStamp)
+        return true;
+    if (fileInfo.isDir()) {
+        const QStringList dirContents = QDir(filePath)
+            .entryList(QDir::Files | QDir::Dirs | QDir::NoDotAndDotDot);
+        foreach (const QString &curFileName, dirContents) {
+            const QString curFilePath
+                = filePath + QLatin1Char('/') + curFileName;
+            if (isFileNewerThan(curFilePath, timeStamp))
+                return true;
+        }
+    }
+    return false;
+}
+
+
+
 QByteArray FileReader::fetchQrc(const QString &fileName)
 {
     QTC_ASSERT(fileName.startsWith(QLatin1Char(':')), return QByteArray())
diff --git a/src/libs/utils/fileutils.h b/src/libs/utils/fileutils.h
index 21f5eee3f2b6c61866ec13919812c3dae6714d63..d6b4e57ef26b7947962883f2704c4284c5dfb9cd 100644
--- a/src/libs/utils/fileutils.h
+++ b/src/libs/utils/fileutils.h
@@ -45,10 +45,20 @@ class QTemporaryFile;
 class QWidget;
 class QTextStream;
 class QDataStream;
+class QDateTime;
 QT_END_NAMESPACE
 
 namespace Utils {
 
+class QTCREATOR_UTILS_EXPORT FileUtils {
+public:
+    static bool removeRecursively(const QString &filePath, QString *error = 0);
+    static bool copyRecursively(const QString &srcFilePath,
+                         const QString &tgtFilePath, QString *error = 0);
+    static bool isFileNewerThan(const QString &filePath,
+                            const QDateTime &timeStamp);
+};
+
 class QTCREATOR_UTILS_EXPORT FileReader
 {
     Q_DECLARE_TR_FUNCTIONS(Utils::FileUtils) // sic!
diff --git a/src/libs/utils/iwelcomepage.h b/src/libs/utils/iwelcomepage.h
index d2dd6129a1e7012716d25661a74dc7281119bfc4..4363beb78e6a39962a2b3dd99d7189c897278d06 100644
--- a/src/libs/utils/iwelcomepage.h
+++ b/src/libs/utils/iwelcomepage.h
@@ -36,6 +36,7 @@
 
 #include <QtCore/QObject>
 #include <QtCore/QMetaType>
+#include <QtCore/QUrl>
 
 #include "utils_global.h"
 
@@ -52,14 +53,14 @@ class QTCREATOR_UTILS_EXPORT IWelcomePage : public QObject
     Q_OBJECT
 
     Q_PROPERTY(QString title READ title CONSTANT)
-    Q_PROPERTY(QString pageLocation READ pageLocation CONSTANT)
+    Q_PROPERTY(QUrl pageLocation READ pageLocation CONSTANT)
     Q_PROPERTY(int priority READ priority CONSTANT)
 
 public:
     IWelcomePage();
     virtual ~IWelcomePage();
 
-    virtual QString pageLocation() const = 0;
+    virtual QUrl pageLocation() const = 0;
     virtual QString title() const = 0;
     virtual int priority() const { return 0; }
     virtual void facilitateQml(QDeclarativeEngine *) {}
diff --git a/src/libs/utils/qtcprocess.cpp b/src/libs/utils/qtcprocess.cpp
index e730fd98cfeae80cc5162bb51507ff3551eefadc..6c54a9cb00136a8a8ed30b0fe603c5d4c4b9fc83 100644
--- a/src/libs/utils/qtcprocess.cpp
+++ b/src/libs/utils/qtcprocess.cpp
@@ -568,7 +568,10 @@ QString QtcProcess::quoteArg(const QString &arg)
         // The argument must not end with a \ since this would be interpreted
         // as escaping the quote -- rather put the \ behind the quote: e.g.
         // rather use "foo"\ than "foo\"
-        ret.replace(QRegExp(QLatin1String("(\\\\*)$")), QLatin1String("\"\\1"));
+        int i = ret.length();
+        while (i > 0 && ret.at(i - 1) == QLatin1Char('\\'))
+            --i;
+        ret.insert(i, QLatin1Char('"'));
         ret.prepend(QLatin1Char('"'));
     }
     // FIXME: Without this, quoting is not foolproof. But it needs support in the process setup, etc.
diff --git a/src/libs/utils/settingsutils.h b/src/libs/utils/settingsutils.h
index 6c0f494af52032a7164598d5aa0ecfae5821e1d1..fb0d8271abe053e5909b1ef3a2db1104977a413a 100644
--- a/src/libs/utils/settingsutils.h
+++ b/src/libs/utils/settingsutils.h
@@ -26,7 +26,7 @@
 ** 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 qt-info@nokia.com.
+** Nokia at info@qt.nokia.com.
 **
 **************************************************************************/
 
diff --git a/src/libs/utils/ssh/sshconnection.cpp b/src/libs/utils/ssh/sshconnection.cpp
index 6a712817edb63300384be27e38784116da197b02..5ff083e6d2ba96531f7a84490b55dfae5e19cb3d 100644
--- a/src/libs/utils/ssh/sshconnection.cpp
+++ b/src/libs/utils/ssh/sshconnection.cpp
@@ -48,6 +48,7 @@
 
 #include <QtCore/QFile>
 #include <QtCore/QMutex>
+#include <QtCore/QMutexLocker>
 #include <QtNetwork/QNetworkProxy>
 #include <QtNetwork/QTcpSocket>
 
@@ -70,15 +71,12 @@ namespace {
 
     void doStaticInitializationsIfNecessary()
     {
+        QMutexLocker locker(&staticInitMutex);
         if (!staticInitializationsDone) {
-            staticInitMutex.lock();
-            if (!staticInitializationsDone) {
-                Botan::LibraryInitializer::initialize("thread_safe=true");
-                qRegisterMetaType<Utils::SshError>("Utils::SshError");
-                qRegisterMetaType<Utils::SftpJobId>("Utils::SftpJobId");
-                staticInitializationsDone = true;
-            }
-            staticInitMutex.unlock();
+            Botan::LibraryInitializer::initialize("thread_safe=true");
+            qRegisterMetaType<Utils::SshError>("Utils::SshError");
+            qRegisterMetaType<Utils::SftpJobId>("Utils::SftpJobId");
+            staticInitializationsDone = true;
         }
     }
 } // anonymous namespace
@@ -620,6 +618,8 @@ void SshConnectionPrivate::sendKeepAlivePacket()
 
 void SshConnectionPrivate::connectToHost()
 {
+    QTC_ASSERT(m_state == SocketUnconnected, return);
+
     m_incomingData.clear();
     m_incomingPacket.reset();
     m_sendFacility.reset();
diff --git a/src/libs/utils/ssh/sshremoteprocessrunner.cpp b/src/libs/utils/ssh/sshremoteprocessrunner.cpp
index 0d5fa24e932aad30cfe2a5cb90a4cd66417ba92d..6a751cc37e7e240720932736f74556adfb481fe8 100644
--- a/src/libs/utils/ssh/sshremoteprocessrunner.cpp
+++ b/src/libs/utils/ssh/sshremoteprocessrunner.cpp
@@ -145,7 +145,8 @@ void SshRemoteProcessRunnerPrivate::run(const QByteArray &command)
     } else {
         connect(m_connection.data(), SIGNAL(connected()),
             SLOT(handleConnected()));
-        m_connection->connectToHost();
+        if (m_connection->state() == SshConnection::Unconnected)
+            m_connection->connectToHost();
     }
 }
 
diff --git a/src/libs/valgrind/valgrind.pri b/src/libs/valgrind/valgrind.pri
deleted file mode 100644
index 7647eeacb01df340cdaf83ed676dfa7ca3497185..0000000000000000000000000000000000000000
--- a/src/libs/valgrind/valgrind.pri
+++ /dev/null
@@ -1 +0,0 @@
-LIBS *= -l$$qtLibraryName(Valgrind)
diff --git a/src/libs/valgrind/valgrind.pro b/src/libs/valgrind/valgrind.pro
deleted file mode 100644
index b670b92bff035dd037443d562c418b4bf9723b67..0000000000000000000000000000000000000000
--- a/src/libs/valgrind/valgrind.pro
+++ /dev/null
@@ -1,71 +0,0 @@
-TEMPLATE = lib
-TARGET = Valgrind
-
-include(../../qtcreatorlibrary.pri)
-include(../utils/utils.pri)
-
-TEMPLATE = lib
-
-DEFINES += VALGRIND_LIBRARY
-
-QT += network
-
-HEADERS += valgrind_global.h \
-    xmlprotocol/frame.h \
-    xmlprotocol/parser.h \
-    xmlprotocol/error.h \
-    xmlprotocol/status.h \
-    xmlprotocol/suppression.h \
-    xmlprotocol/threadedparser.h \
-    xmlprotocol/announcethread.h \
-    xmlprotocol/stack.h \
-    xmlprotocol/errorlistmodel.h \
-    xmlprotocol/stackmodel.h \
-    xmlprotocol/modelhelpers.h \
-    callgrind/callgrindparser.h \
-    callgrind/callgrindparsedata.h \
-    callgrind/callgrindfunction.h \
-    callgrind/callgrindfunction_p.h \
-    callgrind/callgrindfunctioncycle.h \
-    callgrind/callgrindfunctioncall.h \
-    callgrind/callgrindcostitem.h \
-    callgrind/callgrinddatamodel.h \
-    callgrind/callgrindabstractmodel.h \
-    callgrind/callgrindcallmodel.h \
-    callgrind/callgrindcontroller.h \
-    callgrind/callgrindcycledetection.h \
-    callgrind/callgrindproxymodel.h \
-    callgrind/callgrindstackbrowser.h \
-    callgrind/callgrindrunner.h \
-    memcheck/memcheckrunner.h \
-    valgrindrunner.h \
-    valgrindprocess.h
-
-SOURCES += xmlprotocol/error.cpp \
-    xmlprotocol/frame.cpp \
-    xmlprotocol/parser.cpp \
-    xmlprotocol/status.cpp \
-    xmlprotocol/suppression.cpp \
-    xmlprotocol/threadedparser.cpp \
-    xmlprotocol/announcethread.cpp \
-    xmlprotocol/stack.cpp \
-    xmlprotocol/errorlistmodel.cpp \
-    xmlprotocol/stackmodel.cpp \
-    xmlprotocol/modelhelpers.cpp \
-    callgrind/callgrindparser.cpp \
-    callgrind/callgrindparsedata.cpp \
-    callgrind/callgrindfunction.cpp \
-    callgrind/callgrindfunctioncycle.cpp \
-    callgrind/callgrindfunctioncall.cpp \
-    callgrind/callgrindcostitem.cpp \
-    callgrind/callgrindabstractmodel.cpp \
-    callgrind/callgrinddatamodel.cpp \
-    callgrind/callgrindcallmodel.cpp \
-    callgrind/callgrindcontroller.cpp \
-    callgrind/callgrindcycledetection.cpp \
-    callgrind/callgrindproxymodel.cpp \
-    callgrind/callgrindrunner.cpp \
-    callgrind/callgrindstackbrowser.cpp \
-    memcheck/memcheckrunner.cpp \
-    valgrindrunner.cpp \
-    valgrindprocess.cpp
diff --git a/src/plugins/analyzerbase/analyzerbase.pro b/src/plugins/analyzerbase/analyzerbase.pro
index ad33056b15abbf9c72c3d00e2deafd09eba5cb0f..e42ee34fa8c9298ac7b383f3de4de304e5e31289 100644
--- a/src/plugins/analyzerbase/analyzerbase.pro
+++ b/src/plugins/analyzerbase/analyzerbase.pro
@@ -15,7 +15,6 @@ SOURCES += \
     ianalyzertool.cpp \
     analyzerplugin.cpp \
     analyzerruncontrol.cpp \
-    analyzerruncontrolfactory.cpp \
     analyzermanager.cpp \
     analyzersettings.cpp \
     analyzeroptionspage.cpp \
@@ -30,7 +29,6 @@ HEADERS += \
     analyzerconstants.h \
     analyzerplugin.h \
     analyzerruncontrol.h \
-    analyzerruncontrolfactory.h \
     analyzermanager.h \
     analyzersettings.h \
     analyzerstartparameters.h \
diff --git a/src/plugins/analyzerbase/analyzerconstants.h b/src/plugins/analyzerbase/analyzerconstants.h
index 883f77b9cf4449f19d046e10eabee2fcdc9246e9..23f15e7b807434ac39e62e055ded3a141f2cf794 100644
--- a/src/plugins/analyzerbase/analyzerconstants.h
+++ b/src/plugins/analyzerbase/analyzerconstants.h
@@ -39,16 +39,22 @@
 
 namespace Analyzer {
 
-enum AnalyzerStartMode
+// Special values for currently used modes.
+// Their meaning is interpreted by the individual tools.
+// FIXME: The plan is to remove this entirely from the
+// public interface and let the tools handle that internally.
+
+enum StartMode
 {
-    StartLocal,
-    StartRemote
+    StartLocal = -1,
+    StartRemote = -2,
+    StartQml = -3
 };
 
 namespace Constants {
 
 // modes and their priorities
-const char * const MODE_ANALYZE   = "Analyzer.Mode.Analyze";
+const char * const MODE_ANALYZE   = "Mode.Analyze";
 const int          P_MODE_ANALYZE = 76;
 
 // context
@@ -61,6 +67,10 @@ const char * const START = "Analyzer.Start";
 const char * const STARTREMOTE = "Analyzer.StartRemote";
 const char * const STOP = "Analyzer.Stop";
 
+const char * const G_ANALYZER_CONTROL = "Menu.Group.Analyzer.Control";
+const char * const G_ANALYZER_TOOLS = "Menu.Group.Analyzer.Tools";
+const char * const G_ANALYZER_REMOTE_TOOLS = "Menu.Group.Analyzer.RemoteTools";
+
 // options dialog
 const char * const ANALYZER_SETTINGS_CATEGORY = "T.Analyzer";
 const char * const ANALYZER_SETTINGS_TR_CATEGORY =
@@ -76,9 +86,6 @@ const char * const ANALYZER_CONTROL_STOP_ICON =
 
 const char * const ANALYZERTASK_ID = "Analyzer.TaskId";
 
-// private
-const char * const ANALYZER_DUMMYWIDGET_ID = "Analyzer.DummyWidget";
-
 } // namespace Constants
 } // namespace Analyzer
 
diff --git a/src/plugins/analyzerbase/analyzermanager.cpp b/src/plugins/analyzerbase/analyzermanager.cpp
index 8553afab86a1adf278569b0b9e3d9ddfc19deb59..cdf4e5d167b5cdabee44ef5bec0fca7a45dc84b5 100644
--- a/src/plugins/analyzerbase/analyzermanager.cpp
+++ b/src/plugins/analyzerbase/analyzermanager.cpp
@@ -37,12 +37,10 @@
 #include "analyzerconstants.h"
 #include "analyzerplugin.h"
 #include "analyzerruncontrol.h"
-#include "analyzerruncontrolfactory.h"
 #include "analyzeroptionspage.h"
 #include "analyzerstartparameters.h"
 #include "analyzerutils.h"
 #include "ianalyzertool.h"
-#include "startremotedialog.h"
 
 #include <coreplugin/coreconstants.h>
 #include <coreplugin/findplaceholder.h>
@@ -76,8 +74,6 @@
 #include <utils/statuslabel.h>
 #include <utils/ssh/sshconnection.h>
 
-#include <cmakeprojectmanager/cmakeprojectconstants.h>
-
 #include <QtCore/QVariant>
 #include <QtCore/QDebug>
 #include <QtGui/QHBoxLayout>
@@ -98,18 +94,20 @@
 #include <QtGui/QPushButton>
 
 using namespace Core;
-using namespace Analyzer;
 using namespace Analyzer::Internal;
+using namespace ProjectExplorer;
 
 namespace Analyzer {
 namespace Internal {
 
-const char lastActiveToolC[] = "Analyzer.Plugin.LastActiveTool";
-const char G_ANALYZER_TOOLS[] = "Menu.Group.Analyzer.Tools";
-const char G_ANALYZER_REMOTE_TOOLS[] = "Menu.Group.Analyzer.RemoteTools";
+const char LAST_ACTIVE_TOOL[] = "Analyzer.Plugin.LastActiveTool";
 const char INITIAL_DOCK_AREA[] = "initial_dock_area";
 
-// AnalyzerMode ////////////////////////////////////////////////////
+////////////////////////////////////////////////////////////////////
+//
+// AnalyzerMode
+//
+////////////////////////////////////////////////////////////////////
 
 class AnalyzerMode : public Core::IMode
 {
@@ -142,7 +140,6 @@ public:
 };
 
 } // namespace Internal
-} // namespace Analyzer
 
 ////////////////////////////////////////////////////////////////////
 //
@@ -150,7 +147,7 @@ public:
 //
 ////////////////////////////////////////////////////////////////////
 
-class AnalyzerManager::AnalyzerManagerPrivate : public QObject
+class AnalyzerManagerPrivate : public QObject
 {
     Q_OBJECT
 
@@ -169,60 +166,52 @@ public:
     void delayedInit();
 
     void setupActions();
-    QWidget *createModeContents();
-    QWidget *createModeMainWindow();
+    void createModeMainWindow();
     bool showPromptDialog(const QString &title, const QString &text,
         const QString &stopButtonText, const QString &cancelButtonText) const;
 
-    void addDock(Qt::DockWidgetArea area, QDockWidget *dockWidget);
-    void startAction(int tool);
-    void addTool(IAnalyzerTool *tool);
-    void addToolAction(IAnalyzerTool *tool, bool local);
-    int indexOf(IAnalyzerTool *tool) const;
-    int indexOf(QAction *action) const;
-    IAnalyzerTool *toolAt(int idx) const;
+    void activateDock(Qt::DockWidgetArea area, QDockWidget *dockWidget);
+    void deactivateDock(QDockWidget *dockWidget);
+    void addTool(IAnalyzerTool *tool, const StartModes &modes);
+    void selectSavedTool();
+    void selectTool(IAnalyzerTool *tool, StartMode mode);
+    void handleToolStarted();
+    void handleToolFinished();
+    void saveToolSettings(IAnalyzerTool *tool, StartMode mode);
+    void loadToolSettings(IAnalyzerTool *tool);
+    QAction *actionFromToolAndMode(IAnalyzerTool *tool, StartMode mode);
+
+    // Convenience.
+    void startLocalTool(IAnalyzerTool *tool, StartMode mode);
 
 public slots:
-    void startAction() { startAction(m_currentIndex); }
-    void startToolRemote();
-    void stopTool();
-
-    void handleToolFinished();
-    void selectAction();
-    void selectAction(int);
-    void selectAction(QAction *);
+    void startTool();
+    void selectToolboxAction(int);
+    void selectMenuAction();
     void modeChanged(Core::IMode *mode);
-    void runControlCreated(Analyzer::AnalyzerRunControl *);
     void resetLayout();
-    void saveToolSettings(Analyzer::IAnalyzerTool *tool);
-    void loadToolSettings(Analyzer::IAnalyzerTool *tool);
     void updateRunActions();
-    void registerRunControlFactory(ProjectExplorer::IRunControlFactory *factory);
 
 public:
-    struct ToolData {
-        IAnalyzerTool *tool;
-        QAction *action;
-        bool local;
-    };
-
     AnalyzerManager *q;
     AnalyzerMode *m_mode;
-    AnalyzerRunControlFactory *m_runControlFactory;
-    ProjectExplorer::RunControl *m_currentRunControl;
+    bool m_isRunning;
     Utils::FancyMainWindow *m_mainWindow;
-    int m_currentIndex;
-    QList<ToolData> m_actions;
+    IAnalyzerTool *m_currentTool;
+    StartMode m_currentMode;
+    QHash<QAction *, IAnalyzerTool *> m_toolFromAction;
+    QHash<QAction *, StartMode> m_modeFromAction;
     QList<IAnalyzerTool *> m_tools;
+    QList<QAction *> m_actions;
     QAction *m_startAction;
     QAction *m_stopAction;
     ActionContainer *m_menu;
     QComboBox *m_toolBox;
-    QStackedWidget *m_controlsWidget;
-    ActionContainer *m_viewsMenu;
+    QStackedWidget *m_controlsStackWidget;
     Utils::StatusLabel *m_statusLabel;
     typedef QMap<IAnalyzerTool *, FancyMainWindowSettings> MainWindowSettingsMap;
-    QMap<IAnalyzerTool *, QList<QDockWidget *> > m_toolWidgets;
+    QHash<IAnalyzerTool *, QList<QDockWidget *> > m_toolWidgets;
+    QHash<IAnalyzerTool *, QWidget *> m_controlsWidgetFromTool;
     MainWindowSettingsMap m_defaultSettings;
 
     // list of dock widgets to prevent memory leak
@@ -230,42 +219,35 @@ public:
     QList<DockPtr> m_dockWidgets;
 
     bool m_restartOnStop;
-    bool m_initialized;
 };
 
-AnalyzerManager::AnalyzerManagerPrivate::AnalyzerManagerPrivate(AnalyzerManager *qq):
+AnalyzerManagerPrivate::AnalyzerManagerPrivate(AnalyzerManager *qq):
     q(qq),
     m_mode(0),
-    m_runControlFactory(0),
-    m_currentRunControl(0),
+    m_isRunning(false),
     m_mainWindow(0),
-    m_currentIndex(-1),
+    m_currentTool(0),
+    m_currentMode(),
     m_startAction(0),
     m_stopAction(0),
     m_menu(0),
     m_toolBox(new QComboBox),
-    m_controlsWidget(new QStackedWidget),
-    m_viewsMenu(0),
+    m_controlsStackWidget(new QStackedWidget),
     m_statusLabel(new Utils::StatusLabel),
-    m_restartOnStop(false),
-    m_initialized(false)
+    m_restartOnStop(false)
 {
     m_toolBox->setObjectName(QLatin1String("AnalyzerManagerToolBox"));
-    connect(m_toolBox, SIGNAL(currentIndexChanged(int)), SLOT(selectAction(int)));
-
-    m_runControlFactory = new AnalyzerRunControlFactory();
-    registerRunControlFactory(m_runControlFactory);
+    connect(m_toolBox, SIGNAL(activated(int)), SLOT(selectToolboxAction(int)));
 
     setupActions();
 
     connect(ModeManager::instance(), SIGNAL(currentModeChanged(Core::IMode*)),
             this, SLOT(modeChanged(Core::IMode*)));
-    ProjectExplorer::ProjectExplorerPlugin *pe =
-        ProjectExplorer::ProjectExplorerPlugin::instance();
+    ProjectExplorerPlugin *pe = ProjectExplorerPlugin::instance();
     connect(pe, SIGNAL(updateRunActions()), SLOT(updateRunActions()));
 }
 
-AnalyzerManager::AnalyzerManagerPrivate::~AnalyzerManagerPrivate()
+AnalyzerManagerPrivate::~AnalyzerManagerPrivate()
 {
     // as we have to setParent(0) on dock widget that are not selected,
     // we keep track of all and make sure we don't leak any
@@ -275,15 +257,7 @@ AnalyzerManager::AnalyzerManagerPrivate::~AnalyzerManagerPrivate()
     }
 }
 
-void AnalyzerManager::AnalyzerManagerPrivate::registerRunControlFactory
-    (ProjectExplorer::IRunControlFactory *factory)
-{
-    AnalyzerPlugin::instance()->addAutoReleasedObject(factory);
-    connect(factory, SIGNAL(runControlCreated(Analyzer::AnalyzerRunControl*)),
-            this, SLOT(runControlCreated(Analyzer::AnalyzerRunControl*)));
-}
-
-void AnalyzerManager::AnalyzerManagerPrivate::setupActions()
+void AnalyzerManagerPrivate::setupActions()
 {
     Core::ICore *core = Core::ICore::instance();
     Core::ActionManager *am = core->actionManager();
@@ -295,8 +269,9 @@ void AnalyzerManager::AnalyzerManagerPrivate::setupActions()
     m_menu->menu()->setTitle(tr("&Analyze"));
     m_menu->menu()->setEnabled(true);
 
-    m_menu->appendGroup(G_ANALYZER_TOOLS);
-    m_menu->appendGroup(G_ANALYZER_REMOTE_TOOLS);
+    m_menu->appendGroup(Constants::G_ANALYZER_CONTROL);
+    m_menu->appendGroup(Constants::G_ANALYZER_TOOLS);
+    m_menu->appendGroup(Constants::G_ANALYZER_REMOTE_TOOLS);
 
     Core::ActionContainer *menubar =
         am->actionContainer(Core::Constants::MENU_BAR);
@@ -307,52 +282,52 @@ void AnalyzerManager::AnalyzerManagerPrivate::setupActions()
     m_startAction = new QAction(tr("Start"), m_menu);
     m_startAction->setIcon(QIcon(Constants::ANALYZER_CONTROL_START_ICON));
     command = am->registerAction(m_startAction, Constants::START, globalcontext);
-    connect(m_startAction, SIGNAL(triggered()), this, SLOT(startAction()));
+    connect(m_startAction, SIGNAL(triggered()), this, SLOT(startTool()));
 
     m_stopAction = new QAction(tr("Stop"), m_menu);
     m_stopAction->setEnabled(false);
     m_stopAction->setIcon(QIcon(Constants::ANALYZER_CONTROL_STOP_ICON));
     command = am->registerAction(m_stopAction, Constants::STOP, globalcontext);
-    connect(m_stopAction, SIGNAL(triggered()), this, SLOT(stopTool()));
+    m_menu->addAction(command, Constants::G_ANALYZER_CONTROL);
 
-    QAction *separatorAction = new QAction(m_menu);
-    separatorAction->setSeparator(true);
-    command = am->registerAction(separatorAction,
-        "Menu.Action.Analyzer.Tools.Separator", globalcontext);
-    m_menu->addAction(command, G_ANALYZER_REMOTE_TOOLS);
+    QAction *separatorAction1 = new QAction(m_menu);
+    separatorAction1->setSeparator(true);
+    command = am->registerAction(separatorAction1,
+        "Menu.Action.Analyzer.Tools.Separator1", globalcontext);
+    m_menu->addAction(command, Constants::G_ANALYZER_TOOLS);
 
-    m_viewsMenu = am->actionContainer(Core::Id(Core::Constants::M_WINDOW_VIEWS));
+    QAction *separatorAction2 = new QAction(m_menu);
+    separatorAction2->setSeparator(true);
+    command = am->registerAction(separatorAction2,
+        "Menu.Action.Analyzer.Tools.Separator2", globalcontext);
+    m_menu->addAction(command, Constants::G_ANALYZER_REMOTE_TOOLS);
 }
 
-void AnalyzerManager::AnalyzerManagerPrivate::delayedInit()
+void AnalyzerManagerPrivate::delayedInit()
 {
-    if (m_initialized)
+    if (m_mode)
         return;
 
     m_mode = new AnalyzerMode(q);
-    m_mode->setWidget(createModeContents());
-    AnalyzerPlugin::instance()->addAutoReleasedObject(m_mode);
-
-    m_initialized = true;
-}
+    createModeMainWindow();
 
-QWidget *AnalyzerManager::AnalyzerManagerPrivate::createModeContents()
-{
-    // right-side window with editor, output etc.
+    // Right-side window with editor, output etc.
     MiniSplitter *mainWindowSplitter = new MiniSplitter;
-    mainWindowSplitter->addWidget(createModeMainWindow());
+    mainWindowSplitter->addWidget(m_mainWindow);
     mainWindowSplitter->addWidget(new OutputPanePlaceHolder(m_mode, mainWindowSplitter));
     mainWindowSplitter->setStretchFactor(0, 10);
     mainWindowSplitter->setStretchFactor(1, 0);
     mainWindowSplitter->setOrientation(Qt::Vertical);
 
-    // navigation + right-side window
+    // Navigation + right-side window.
     MiniSplitter *splitter = new MiniSplitter;
     splitter->addWidget(new NavigationWidgetPlaceHolder(m_mode));
     splitter->addWidget(mainWindowSplitter);
     splitter->setStretchFactor(0, 0);
     splitter->setStretchFactor(1, 1);
-    return splitter;
+    m_mode->setWidget(splitter);
+
+    AnalyzerPlugin::instance()->addAutoReleasedObject(m_mode);
 }
 
 static QToolButton *toolButton(QAction *action)
@@ -362,14 +337,13 @@ static QToolButton *toolButton(QAction *action)
     return button;
 }
 
-QWidget *AnalyzerManager::AnalyzerManagerPrivate::createModeMainWindow()
+void AnalyzerManagerPrivate::createModeMainWindow()
 {
     m_mainWindow = new Utils::FancyMainWindow();
     m_mainWindow->setObjectName(QLatin1String("AnalyzerManagerMainWindow"));
     m_mainWindow->setDocumentMode(true);
     m_mainWindow->setDockNestingEnabled(true);
-    m_mainWindow->setDockActionsVisible(ModeManager::instance()->currentMode()->id() ==
-                                        Constants::MODE_ANALYZE);
+    m_mainWindow->setDockActionsVisible(false);
     connect(m_mainWindow, SIGNAL(resetLayout()), SLOT(resetLayout()));
 
     QBoxLayout *editorHolderLayout = new QVBoxLayout;
@@ -396,7 +370,7 @@ QWidget *AnalyzerManager::AnalyzerManagerPrivate::createModeMainWindow()
     analyzeToolBarLayout->addWidget(toolButton(m_stopAction));
     analyzeToolBarLayout->addWidget(new Utils::StyledSeparator);
     analyzeToolBarLayout->addWidget(m_toolBox);
-    analyzeToolBarLayout->addWidget(m_controlsWidget);
+    analyzeToolBarLayout->addWidget(m_controlsStackWidget);
     analyzeToolBarLayout->addWidget(m_statusLabel);
     analyzeToolBarLayout->addStretch();
 
@@ -421,12 +395,9 @@ QWidget *AnalyzerManager::AnalyzerManagerPrivate::createModeMainWindow()
     centralLayout->addWidget(documentAndRightPane);
     centralLayout->setStretch(0, 1);
     centralLayout->setStretch(1, 0);
-
-    return m_mainWindow;
 }
 
-void AnalyzerManager::AnalyzerManagerPrivate::addDock(Qt::DockWidgetArea area,
-                                                      QDockWidget *dockWidget)
+void AnalyzerManagerPrivate::activateDock(Qt::DockWidgetArea area, QDockWidget *dockWidget)
 {
     dockWidget->setParent(m_mainWindow);
     m_mainWindow->addDockWidget(area, dockWidget);
@@ -436,32 +407,44 @@ void AnalyzerManager::AnalyzerManagerPrivate::addDock(Qt::DockWidgetArea area,
     ActionManager *am = ICore::instance()->actionManager();
     QAction *toggleViewAction = dockWidget->toggleViewAction();
     toggleViewAction->setText(dockWidget->windowTitle());
-    Command *cmd = am->registerAction(toggleViewAction, QString("Analyzer." + dockWidget->objectName()),
-                                      globalContext);
+    Command *cmd = am->registerAction(toggleViewAction,
+        QString("Analyzer." + dockWidget->objectName()), globalContext);
     cmd->setAttribute(Command::CA_Hide);
-    m_viewsMenu->addAction(cmd);
+
+    ActionContainer *viewsMenu =
+        am->actionContainer(Core::Id(Core::Constants::M_WINDOW_VIEWS));
+    viewsMenu->addAction(cmd);
+}
+
+void AnalyzerManagerPrivate::deactivateDock(QDockWidget *dockWidget)
+{
+    ActionManager *am = ICore::instance()->actionManager();
+    QAction *toggleViewAction = dockWidget->toggleViewAction();
+    am->unregisterAction(toggleViewAction, QString("Analyzer." + dockWidget->objectName()));
+    m_mainWindow->removeDockWidget(dockWidget);
+    dockWidget->hide();
+    // Prevent saveState storing the data of the wrong children.
+    dockWidget->setParent(0);
 }
 
 bool buildTypeAccepted(IAnalyzerTool::ToolMode toolMode,
-                       ProjectExplorer::BuildConfiguration::BuildType buildType)
+                       BuildConfiguration::BuildType buildType)
 {
     if (toolMode == IAnalyzerTool::AnyMode)
         return true;
-    if (buildType == ProjectExplorer::BuildConfiguration::Unknown)
+    if (buildType == BuildConfiguration::Unknown)
         return true;
-    if (buildType == ProjectExplorer::BuildConfiguration::Debug
+    if (buildType == BuildConfiguration::Debug
             && toolMode == IAnalyzerTool::DebugMode)
         return true;
-    if (buildType == ProjectExplorer::BuildConfiguration::Release
+    if (buildType == BuildConfiguration::Release
             && toolMode == IAnalyzerTool::ReleaseMode)
         return true;
     return false;
 }
 
-bool AnalyzerManager::AnalyzerManagerPrivate::showPromptDialog(const QString &title,
-                                        const QString &text,
-                                        const QString &stopButtonText,
-                                        const QString &cancelButtonText) const
+bool AnalyzerManagerPrivate::showPromptDialog(const QString &title, const QString &text,
+    const QString &stopButtonText, const QString &cancelButtonText) const
 {
     Utils::CheckableMessageBox messageBox(Core::ICore::instance()->mainWindow());
     messageBox.setWindowTitle(title);
@@ -477,52 +460,27 @@ bool AnalyzerManager::AnalyzerManagerPrivate::showPromptDialog(const QString &ti
     return messageBox.clickedStandardButton() == QDialogButtonBox::Yes;
 }
 
-void AnalyzerManager::AnalyzerManagerPrivate::startToolRemote()
-{
-    StartRemoteDialog dlg;
-    if (dlg.exec() != QDialog::Accepted)
-        return;
-
-    AnalyzerStartParameters sp;
-    sp.connParams = dlg.sshParams();
-    sp.debuggee = dlg.executable();
-    sp.debuggeeArgs = dlg.arguments();
-    sp.displayName = dlg.executable();
-    sp.startMode = StartRemote;
-    sp.workingDirectory = dlg.workingDirectory();
-
-    AnalyzerRunControl *runControl = m_runControlFactory->create(sp, 0);
-
-    QTC_ASSERT(runControl, return);
-    ProjectExplorer::ProjectExplorerPlugin::instance()
-        ->startRunControl(runControl, Constants::MODE_ANALYZE);
-}
-
-void AnalyzerManager::AnalyzerManagerPrivate::startAction(int index)
+void AnalyzerManagerPrivate::startLocalTool(IAnalyzerTool *tool, StartMode)
 {
+    int index = m_tools.indexOf(tool);
     QTC_ASSERT(index >= 0, return);
-    QTC_ASSERT(index < m_actions.size(), return);
-    QTC_ASSERT(index == m_currentIndex, return);
+    QTC_ASSERT(index < m_tools.size(), return);
+    QTC_ASSERT(tool == m_currentTool, return);
 
-    if (!m_actions.at(index).local) {
-        startToolRemote();
-        return;
-    }
-
-    // make sure mode is shown
+    // Make sure mode is shown.
     q->showMode();
 
-    ProjectExplorer::ProjectExplorerPlugin *pe = ProjectExplorer::ProjectExplorerPlugin::instance();
+    ProjectExplorerPlugin *pe = ProjectExplorerPlugin::instance();
 
     // ### not sure if we're supposed to check if the RunConFiguration isEnabled
-    ProjectExplorer::Project *pro = pe->startupProject();
-    const ProjectExplorer::RunConfiguration *runConfig = 0;
-    ProjectExplorer::BuildConfiguration::BuildType buildType = ProjectExplorer::BuildConfiguration::Unknown;
+    Project *pro = pe->startupProject();
+    const RunConfiguration *runConfig = 0;
+    BuildConfiguration::BuildType buildType = BuildConfiguration::Unknown;
     if (pro) {
-        if (const ProjectExplorer::Target *target = pro->activeTarget()) {
+        if (const Target *target = pro->activeTarget()) {
             runConfig = target->activeRunConfiguration();
             // Build configuration is 0 for QML projects.
-            if (const ProjectExplorer::BuildConfiguration *buildConfig = target->activeBuildConfiguration())
+            if (const BuildConfiguration *buildConfig = target->activeBuildConfiguration())
                 buildType = buildConfig->buildType();
         }
     }
@@ -530,12 +488,12 @@ void AnalyzerManager::AnalyzerManagerPrivate::startAction(int index)
         return;
 
     // Check if there already is an analyzer run.
-    if (m_currentRunControl) {
+    if (m_isRunning) {
         // ask if user wants to restart the analyzer
         const QString msg = tr("<html><head/><body><center><i>%1</i> is still running. "
             "You have to quit the Analyzer before being able to run another instance."
             "<center/><center>Force it to quit?</center></body></html>")
-                .arg(m_currentRunControl->displayName());
+                .arg(m_currentTool->displayName());
         bool stopRequested = showPromptDialog(tr("Analyzer Still Running"), msg,
                                      tr("Stop Active Run"), tr("Keep Running"));
         if (!stopRequested)
@@ -543,37 +501,47 @@ void AnalyzerManager::AnalyzerManagerPrivate::startAction(int index)
 
         // user selected to stop the active run. stop it, activate restart on stop
         m_restartOnStop = true;
-        stopTool();
+        q->stopTool();
         return;
     }
 
-    IAnalyzerTool *tool = toolAt(index);
-    IAnalyzerTool::ToolMode toolMode = tool->mode();
+    IAnalyzerTool::ToolMode toolMode = tool->toolMode();
 
     // Check the project for whether the build config is in the correct mode
     // if not, notify the user and urge him to use the correct mode.
     if (!buildTypeAccepted(toolMode, buildType)) {
-        const QString &toolName = tool->displayName();
-        const QString &toolMode = IAnalyzerTool::modeString(tool->mode());
-        const QString currentMode = buildType == ProjectExplorer::BuildConfiguration::Debug ? tr("Debug") : tr("Release");
+        const QString toolName = tool->displayName();
+        const QString currentMode =
+            buildType == BuildConfiguration::Debug ? tr("Debug") : tr("Release");
 
         QSettings *settings = Core::ICore::instance()->settings();
-        const QString configKey = QLatin1String(Constants::MODE_ANALYZE) + QLatin1Char('/') + QLatin1String("AnalyzeCorrectMode");
+        const QString configKey = QLatin1String("Analyzer.AnalyzeCorrectMode");
         int ret;
         if (settings->contains(configKey)) {
             ret = settings->value(configKey, QDialog::Accepted).toInt();
         } else {
+            QString toolModeString;
+            switch (toolMode) {
+                case IAnalyzerTool::DebugMode:
+                    toolModeString = tr("Debug");
+                case IAnalyzerTool::ReleaseMode:
+                    toolModeString = tr("Release");
+                case IAnalyzerTool::AnyMode:
+                    break;
+            }
             const QString title = tr("Run %1 in %2 Mode?").arg(toolName).arg(currentMode);
-            const QString message = tr("<html><head/><body><p>You are trying to run the tool '%1' on an application in %2 mode. "
-                                       "The tool is designed to be used in %3 mode.</p><p>"
-                                       "Do you want to continue and run it in %2 mode?</p></body></html>").
-                                       arg(toolName).arg(currentMode).arg(toolMode);
+            const QString message = tr("<html><head/><body><p>You are trying "
+                "to run the tool \"%1\" on an application in %2 mode. "
+                "The tool is designed to be used in %3 mode.</p><p>"
+                "Do you want to continue and run it in %2 mode?</p></body></html>")
+                    .arg(toolName).arg(currentMode).arg(toolModeString);
             const QString checkBoxText = tr("&Do not ask again");
             bool checkBoxSetting = false;
             const QDialogButtonBox::StandardButton button =
-                Utils::CheckableMessageBox::question(Core::ICore::instance()->mainWindow(), title, message, checkBoxText,
-                                                     &checkBoxSetting, QDialogButtonBox::Yes|QDialogButtonBox::Cancel,
-                                                     QDialogButtonBox::Cancel);
+                Utils::CheckableMessageBox::question(Core::ICore::instance()->mainWindow(),
+                    title, message, checkBoxText,
+                    &checkBoxSetting, QDialogButtonBox::Yes|QDialogButtonBox::Cancel,
+                    QDialogButtonBox::Cancel);
             ret = button == QDialogButtonBox::Yes ? QDialog::Accepted : QDialog::Rejected;
 
             if (checkBoxSetting && ret == QDialog::Accepted)
@@ -583,173 +551,154 @@ void AnalyzerManager::AnalyzerManagerPrivate::startAction(int index)
             return;
     }
 
-    pe->runProject(pro, Constants::MODE_ANALYZE);
-
+    m_isRunning = true;
+    pe->runProject(pro, tool->id());
     updateRunActions();
 }
 
-
-void AnalyzerManager::AnalyzerManagerPrivate::stopTool()
+void AnalyzerManagerPrivate::startTool()
 {
-    if (m_currentRunControl)
-        return;
-
-    // be sure to call handleToolFinished only once, and only when the engine is really finished
-    if (m_currentRunControl->stop() == ProjectExplorer::RunControl::StoppedSynchronously)
-        handleToolFinished();
-    // else: wait for the finished() signal to trigger handleToolFinished()
+    m_currentTool->startTool(m_currentMode);
 }
 
-void AnalyzerManager::AnalyzerManagerPrivate::modeChanged(IMode *mode)
+void AnalyzerManagerPrivate::modeChanged(IMode *mode)
 {
-    if (!m_mainWindow)
-        return;
-    const bool makeVisible = mode->id() == Constants::MODE_ANALYZE;
-    if (!makeVisible)
-        return;
-    m_mainWindow->setDockActionsVisible(makeVisible);
-}
-
-void AnalyzerManager::AnalyzerManagerPrivate::selectAction(int idx)
-{
-    QTC_ASSERT(idx >= 0, return);
-    if (m_currentIndex == idx)
-        return;
-
-    if (m_currentIndex != -1) {
-        IAnalyzerTool *oldTool = toolAt(m_currentIndex);
-        saveToolSettings(oldTool);
-
-        ActionManager *am = ICore::instance()->actionManager();
-
-        foreach (QDockWidget *widget, m_toolWidgets.value(oldTool)) {
-            QAction *toggleViewAction = widget->toggleViewAction();
-            am->unregisterAction(toggleViewAction,
-                QString("Analyzer." + widget->objectName()));
-            m_mainWindow->removeDockWidget(widget);
-            ///NOTE: QMainWindow (and FancyMainWindow) just look at
-            /// @c findChildren<QDockWidget*>()
-            ///if we don't do this, all kind of havoc might happen, including:
-            ///- improper saveState/restoreState
-            ///- improper list of qdockwidgets in popup menu
-            ///- ...
-            widget->setParent(0);
-        }
-        oldTool->toolDeselected();
-    }
-
-    m_currentIndex = idx;
-
-    m_toolBox->setCurrentIndex(idx);
-    m_controlsWidget->setCurrentIndex(idx);
-
-    IAnalyzerTool *newTool = toolAt(idx);
-
-    const bool firstTime = !m_defaultSettings.contains(newTool);
-    if (firstTime) {
-        newTool->initializeDockWidgets();
-        m_defaultSettings.insert(newTool, m_mainWindow->saveSettings());
+    if (mode && mode == m_mode) {
+        m_mainWindow->setDockActionsVisible(true);
+        static bool firstTime = true;
+        if (firstTime)
+            selectSavedTool();
+        firstTime = false;
+        updateRunActions();
     } else {
-        foreach (QDockWidget *widget, m_toolWidgets.value(newTool))
-            addDock(Qt::DockWidgetArea(widget->property(INITIAL_DOCK_AREA).toInt()), widget);
+        m_mainWindow->setDockActionsVisible(false);
     }
-
-    loadToolSettings(newTool);
-    updateRunActions();
 }
 
-void AnalyzerManager::AnalyzerManagerPrivate::selectAction()
+QAction *AnalyzerManagerPrivate::actionFromToolAndMode(IAnalyzerTool *tool, StartMode mode)
 {
-    selectAction(qobject_cast<QAction *>(sender()));
+    foreach (QAction *action, m_actions)
+        if (m_toolFromAction.value(action) == tool && m_modeFromAction[action] == mode)
+            return action;
+    QTC_ASSERT(false, /**/);
+    return 0;
 }
 
-void AnalyzerManager::AnalyzerManagerPrivate::selectAction(QAction *action)
+void AnalyzerManagerPrivate::selectSavedTool()
 {
-    selectAction(indexOf(action));
+    const QSettings *settings = Core::ICore::instance()->settings();
+    const QByteArray lastActiveAction =
+        settings->value(QLatin1String(LAST_ACTIVE_TOOL), QString()).toByteArray();
+    foreach (QAction *action, m_actions) {
+        IAnalyzerTool *tool = m_toolFromAction.value(action);
+        StartMode mode = m_modeFromAction.value(action);
+        if (tool->actionId(mode) == lastActiveAction) {
+            selectTool(tool, mode);
+            break;
+        }
+    }
 }
 
-int AnalyzerManager::AnalyzerManagerPrivate::indexOf(QAction *action) const
+void AnalyzerManagerPrivate::selectMenuAction()
 {
-    for (int i = 0; i != m_actions.size(); ++i)
-        if (m_actions.at(i).action == action)
-            return i;
-    return -1;
+    QAction *action = qobject_cast<QAction *>(sender());
+    QTC_ASSERT(action, return);
+    IAnalyzerTool *tool = m_toolFromAction.value(action);
+    StartMode mode = m_modeFromAction.value(action);
+    selectTool(tool, mode);
+    tool->startTool(mode);
 }
 
-int AnalyzerManager::AnalyzerManagerPrivate::indexOf(IAnalyzerTool *tool) const
+void AnalyzerManagerPrivate::selectToolboxAction(int index)
 {
-    for (int i = 0; i != m_actions.size(); ++i)
-        if (toolAt(i) == tool)
-            return i;
-    return -1;
+    QAction *action = m_actions[index];
+    selectTool(m_toolFromAction.value(action), m_modeFromAction.value(action));
 }
 
-IAnalyzerTool *AnalyzerManager::AnalyzerManagerPrivate::toolAt(int idx) const
+void AnalyzerManagerPrivate::selectTool(IAnalyzerTool *tool, StartMode mode)
 {
-    QTC_ASSERT(idx >= 0, return 0);
-    QTC_ASSERT(idx < m_actions.size(), return 0);
-    return m_actions.at(idx).tool;
-}
+    if (m_currentTool == tool && m_currentMode == mode)
+        return;
 
-void AnalyzerManager::AnalyzerManagerPrivate::addToolAction(IAnalyzerTool *tool, bool local)
-{
-    ActionManager *am = Core::ICore::instance()->actionManager();
+    QAction *action = actionFromToolAndMode(tool, mode);
+    const int actionIndex = m_actions.indexOf(action);
+    QTC_ASSERT(actionIndex >= 0, return);
 
-    QString actionId = QString("Action.Analyzer.Tools.%1").arg(m_actions.size());
-    QString displayName = tool->displayName() + (local ? QString() : tr(" (Remote)"));
-    QAction *action = new QAction(displayName, 0);
+    // Clean up old tool.
+    if (m_currentTool) {
+        saveToolSettings(m_currentTool, m_currentMode);
+        foreach (QDockWidget *widget, m_toolWidgets.value(m_currentTool))
+            deactivateDock(widget);
+        m_currentTool->toolDeselected();
+    }
 
-    ToolData data;
-    data.tool = tool;
-    data.local = local;
-    data.action = action;
-    m_actions.append(data);
+    // Now change the tool.
+    m_currentTool = tool;
+    m_currentMode = mode;
+
+    if (!m_defaultSettings.contains(tool)) {
+        QWidget *widget = tool->createWidgets();
+        QTC_ASSERT(widget, /**/);
+        m_defaultSettings.insert(tool, m_mainWindow->saveSettings());
+        QTC_ASSERT(!m_controlsWidgetFromTool.contains(tool), /**/);
+        m_controlsWidgetFromTool[tool] = widget;
+        m_controlsStackWidget->addWidget(widget);
+    }
+    foreach (QDockWidget *widget, m_toolWidgets.value(tool))
+        activateDock(Qt::DockWidgetArea(widget->property(INITIAL_DOCK_AREA).toInt()), widget);
 
-    Core::Command *command = am->registerAction(action, actionId,
-        Core::Context(Core::Constants::C_GLOBAL));
-    m_menu->addAction(command, local ? G_ANALYZER_TOOLS : G_ANALYZER_REMOTE_TOOLS);
-    connect(action, SIGNAL(triggered()), SLOT(selectAction()));
+    loadToolSettings(tool);
 
-    const bool blocked = m_toolBox->blockSignals(true); // Do not make current.
-    m_toolBox->addItem(displayName);
-    m_toolBox->blockSignals(blocked);
-    m_toolBox->setEnabled(true);
+    QTC_ASSERT(m_controlsWidgetFromTool.contains(tool), /**/);
+    m_controlsStackWidget->setCurrentWidget(m_controlsWidgetFromTool.value(tool));
+    m_toolBox->setCurrentIndex(actionIndex);
+
+    updateRunActions();
 }
 
-void AnalyzerManager::AnalyzerManagerPrivate::addTool(IAnalyzerTool *tool)
+void AnalyzerManagerPrivate::addTool(IAnalyzerTool *tool, const StartModes &modes)
 {
-    delayedInit(); // be sure that there is a valid IMode instance
+    delayedInit(); // Make sure that there is a valid IMode instance.
+
+    const bool blocked = m_toolBox->blockSignals(true); // Do not make current.
+    ActionManager *am = Core::ICore::instance()->actionManager();
+    foreach (StartMode mode, modes) {
+        QString actionName = tool->actionName(mode);
+        QString menuGroup = tool->menuGroup(mode);
+        QString actionId = tool->actionId(mode);
+        QAction *action = new QAction(actionName, 0);
+        Core::Command *command = am->registerAction(action, actionId,
+            Core::Context(Core::Constants::C_GLOBAL));
+        m_menu->addAction(command, menuGroup);
+        m_actions.append(action);
+        m_toolFromAction[action] = tool;
+        m_modeFromAction[action] = mode;
+        m_toolBox->addItem(actionName);
+        m_toolBox->blockSignals(blocked);
+        connect(action, SIGNAL(triggered()), SLOT(selectMenuAction()));
+    }
     m_tools.append(tool);
-    if (tool->canRunLocally())
-        addToolAction(tool, true);
-    if (tool->canRunRemotely())
-        addToolAction(tool, false);
-    // Populate controls widget.
-    QWidget *controlWidget = tool->createControlWidget(); // might be 0
-    m_controlsWidget->addWidget(controlWidget
-        ? controlWidget : AnalyzerUtils::createDummyWidget());
-    tool->initialize();
+    m_toolBox->setEnabled(true);
 }
 
-void AnalyzerManager::AnalyzerManagerPrivate::runControlCreated(AnalyzerRunControl *rc)
+void AnalyzerManagerPrivate::handleToolStarted()
 {
-    QTC_ASSERT(!m_currentRunControl, /**/);
-    m_currentRunControl = rc;
-    connect(rc, SIGNAL(finished()), this, SLOT(handleToolFinished()));
+    m_isRunning = true; // FIXME: Make less global.
+    updateRunActions();
 }
 
-void AnalyzerManager::AnalyzerManagerPrivate::handleToolFinished()
+void AnalyzerManagerPrivate::handleToolFinished()
 {
-    m_currentRunControl = 0;
+    m_isRunning = false;
     updateRunActions();
 
     if (m_restartOnStop) {
-        startAction(m_currentIndex);
+        m_currentTool->startTool(m_currentMode);
         m_restartOnStop = false;
     }
 }
 
-void AnalyzerManager::AnalyzerManagerPrivate::loadToolSettings(IAnalyzerTool *tool)
+void AnalyzerManagerPrivate::loadToolSettings(IAnalyzerTool *tool)
 {
     QTC_ASSERT(m_mainWindow, return);
     QSettings *settings = Core::ICore::instance()->settings();
@@ -759,7 +708,7 @@ void AnalyzerManager::AnalyzerManagerPrivate::loadToolSettings(IAnalyzerTool *to
     settings->endGroup();
 }
 
-void AnalyzerManager::AnalyzerManagerPrivate::saveToolSettings(IAnalyzerTool *tool)
+void AnalyzerManagerPrivate::saveToolSettings(IAnalyzerTool *tool, StartMode mode)
 {
     if (!tool)
         return; // no active tool, do nothing
@@ -770,31 +719,38 @@ void AnalyzerManager::AnalyzerManagerPrivate::saveToolSettings(IAnalyzerTool *to
     m_mainWindow->saveSettings(settings);
     settings->setValue("ToolSettingsSaved", true);
     settings->endGroup();
-    settings->setValue(QLatin1String(lastActiveToolC), tool->id());
+    settings->setValue(QLatin1String(LAST_ACTIVE_TOOL), tool->actionId(mode));
 }
 
-void AnalyzerManager::AnalyzerManagerPrivate::updateRunActions()
+void AnalyzerManagerPrivate::updateRunActions()
 {
-    ProjectExplorer::ProjectExplorerPlugin *pe =
-        ProjectExplorer::ProjectExplorerPlugin::instance();
-    ProjectExplorer::Project *project = pe->startupProject();
+    static bool previousRunning = true;
+    static IAnalyzerTool *previousTool = 0;
+    if (previousRunning == m_isRunning && previousTool == m_currentTool)
+        return;
+    previousTool = m_currentTool;
+    previousRunning = m_isRunning;
+
+    ProjectExplorerPlugin *pe = ProjectExplorerPlugin::instance();
+    Project *project = pe->startupProject();
 
-    bool startEnabled = !m_currentRunControl
-        && pe->canRun(project, Constants::MODE_ANALYZE)
-        && m_currentIndex >= 0;
+    bool startEnabled = !m_isRunning
+        && m_currentTool && pe->canRun(project, m_currentTool->id());
 
     QString disabledReason;
-    if (m_currentRunControl)
+    if (m_isRunning)
         disabledReason = tr("An analysis is still in progress.");
-    else if (m_currentIndex == -1)
+    else if (!m_currentTool)
         disabledReason = tr("No analyzer tool selected.");
     else
-        disabledReason = pe->cannotRunReason(project, Constants::MODE_ANALYZE);
+        disabledReason = pe->cannotRunReason(project, m_currentTool->id());
 
     m_startAction->setEnabled(startEnabled);
     m_startAction->setToolTip(disabledReason);
-    m_toolBox->setEnabled(!m_currentRunControl);
-    m_stopAction->setEnabled(m_currentRunControl);
+    m_toolBox->setEnabled(!m_isRunning);
+    m_stopAction->setEnabled(m_isRunning);
+    foreach (QAction *action, m_actions)
+        action->setEnabled(!m_isRunning);
 }
 
 ////////////////////////////////////////////////////////////////////
@@ -822,85 +778,57 @@ void AnalyzerManager::extensionsInitialized()
     if (d->m_tools.isEmpty())
         return;
 
-    const QSettings *settings = Core::ICore::instance()->settings();
-    const QString lastActiveToolId =
-        settings->value(QLatin1String(lastActiveToolC), QString()).toString();
-    int lastAction = 0;
-
-    foreach (IAnalyzerTool *tool, d->m_tools) {
+    foreach (IAnalyzerTool *tool, d->m_tools)
         tool->extensionsInitialized();
-        if (tool->id() == lastActiveToolId)
-            lastAction = d->indexOf(tool);
-    }
-
-    d->selectAction(lastAction);
 }
 
 void AnalyzerManager::shutdown()
 {
-    d->saveToolSettings(d->m_actions[d->m_currentIndex].tool);
+    d->saveToolSettings(d->m_currentTool, d->m_currentMode);
 }
 
-AnalyzerManager *AnalyzerManager::instance()
+void AnalyzerManager::addTool(IAnalyzerTool *tool, const StartModes &modes)
 {
-    return m_instance;
-}
-
-void AnalyzerManager::registerRunControlFactory(ProjectExplorer::IRunControlFactory *factory)
-{
-    d->registerRunControlFactory(factory);
-}
-
-void AnalyzerManager::addTool(IAnalyzerTool *tool)
-{
-    d->addTool(tool);
+    m_instance->d->addTool(tool, modes);
 }
 
 QDockWidget *AnalyzerManager::createDockWidget(IAnalyzerTool *tool, const QString &title,
                                                QWidget *widget, Qt::DockWidgetArea area)
 {
-    QTC_ASSERT(!widget->objectName().isEmpty(), return 0;);
-
+    QTC_ASSERT(!widget->objectName().isEmpty(), return 0);
+    AnalyzerManagerPrivate *d = m_instance->d;
     QDockWidget *dockWidget = d->m_mainWindow->addDockForWidget(widget);
     dockWidget->setProperty(INITIAL_DOCK_AREA, int(area));
     d->m_dockWidgets.append(AnalyzerManagerPrivate::DockPtr(dockWidget));
     dockWidget->setWindowTitle(title);
     d->m_toolWidgets[tool].push_back(dockWidget);
-    d->addDock(area, dockWidget);
     return dockWidget;
 }
 
-IAnalyzerEngine *AnalyzerManager::createEngine(const AnalyzerStartParameters &sp,
-    ProjectExplorer::RunConfiguration *runConfiguration)
+void AnalyzerManager::selectTool(IAnalyzerTool *tool, StartMode mode)
 {
-    IAnalyzerTool *tool = d->toolAt(d->m_currentIndex);
-    QTC_ASSERT(tool, return 0);
-    return tool->createEngine(sp, runConfiguration);
+    m_instance->d->selectTool(tool, mode);
 }
 
-void AnalyzerManager::selectTool(IAnalyzerTool *tool)
+void AnalyzerManager::startTool(IAnalyzerTool *tool, StartMode mode)
 {
-    d->selectAction(d->indexOf(tool));
+    QTC_ASSERT(tool == m_instance->d->m_currentTool, return);
+    tool->startTool(mode);
 }
 
-void AnalyzerManager::startTool(IAnalyzerTool *tool)
+Utils::FancyMainWindow *AnalyzerManager::mainWindow()
 {
-    d->startAction(d->indexOf(tool));
+    return m_instance->d->m_mainWindow;
 }
 
-Utils::FancyMainWindow *AnalyzerManager::mainWindow() const
+void AnalyzerManagerPrivate::resetLayout()
 {
-    return d->m_mainWindow;
-}
-
-void AnalyzerManager::AnalyzerManagerPrivate::resetLayout()
-{
-    m_mainWindow->restoreSettings(m_defaultSettings.value(toolAt(m_currentIndex)));
+    m_mainWindow->restoreSettings(m_defaultSettings.value(m_currentTool));
 }
 
 void AnalyzerManager::showStatusMessage(const QString &message, int timeoutMS)
 {
-    d->m_statusLabel->showStatusMessage(message, timeoutMS);
+    m_instance->d->m_statusLabel->showStatusMessage(message, timeoutMS);
 }
 
 void AnalyzerManager::showPermanentStatusMessage(const QString &message)
@@ -922,13 +850,44 @@ QString AnalyzerManager::msgToolFinished(const QString &name, int issuesFound)
 
 void AnalyzerManager::showMode()
 {
-    if (d->m_mode)
-        ModeManager::instance()->activateMode(d->m_mode->id());
+    if (m_instance->d->m_mode)
+        ModeManager::instance()->activateMode(m_instance->d->m_mode->id());
 }
 
 void AnalyzerManager::stopTool()
 {
-    d->stopTool();
+    stopAction()->trigger();
 }
 
+void AnalyzerManager::startLocalTool(IAnalyzerTool *tool, StartMode mode)
+{
+    m_instance->d->startLocalTool(tool, mode);
+}
+
+QAction *AnalyzerManager::stopAction()
+{
+    return m_instance->d->m_stopAction;
+}
+
+void AnalyzerManager::handleToolStarted()
+{
+    m_instance->d->handleToolStarted();
+}
+
+void AnalyzerManager::handleToolFinished()
+{
+    m_instance->d->handleToolFinished();
+}
+
+IAnalyzerTool *AnalyzerManager::toolFromId(const QByteArray &id)
+{
+    foreach (IAnalyzerTool *tool, m_instance->d->m_tools)
+        if (id.startsWith(tool->id()))
+            return tool;
+    QTC_ASSERT(false, qDebug() << "NO ANAYLYZER TOOL FOUND FOR ID" << id);
+    return 0;
+}
+
+} // namespace Analyzer
+
 #include "analyzermanager.moc"
diff --git a/src/plugins/analyzerbase/analyzermanager.h b/src/plugins/analyzerbase/analyzermanager.h
index a46ce59cb10881843681990017a7044a900a55cc..42700cac90dcda6a8f9628aa324e5e1839369754 100644
--- a/src/plugins/analyzerbase/analyzermanager.h
+++ b/src/plugins/analyzerbase/analyzermanager.h
@@ -36,6 +36,7 @@
 #define ANALYZERMANAGER_H
 
 #include "analyzerbase_global.h"
+#include "analyzerconstants.h"
 #include "projectexplorer/runconfiguration.h"
 
 #include <QtCore/QObject>
@@ -48,14 +49,12 @@ namespace Utils {
 class FancyMainWindow;
 }
 
-namespace ProjectExplorer {
-class RunConfiguration;
-}
-
 namespace Analyzer {
+
+typedef QList<StartMode> StartModes;
+
 class IAnalyzerTool;
-class IAnalyzerEngine;
-class AnalyzerStartParameters;
+class AnalyzerManagerPrivate;
 
 class ANALYZER_EXPORT AnalyzerManager : public QObject
 {
@@ -65,40 +64,39 @@ public:
     explicit AnalyzerManager(QObject *parent = 0);
     ~AnalyzerManager();
 
-    static AnalyzerManager *instance();
-    void registerRunControlFactory(ProjectExplorer::IRunControlFactory *factory);
-
     void extensionsInitialized();
     void shutdown();
 
-    /**
-     * Register a tool and initialize it.
-     */
-    void addTool(Analyzer::IAnalyzerTool *tool);
+    // Register a tool and initialize it.
+    static void addTool(IAnalyzerTool *tool, const StartModes &mode);
+    static IAnalyzerTool *toolFromId(const QByteArray &id);
+    static StartMode modeFromId(const QByteArray &id);
 
     // Dockwidgets are registered to the main window.
-    QDockWidget *createDockWidget(IAnalyzerTool *tool, const QString &title,
+    static QDockWidget *createDockWidget(IAnalyzerTool *tool, const QString &title,
         QWidget *widget, Qt::DockWidgetArea area = Qt::TopDockWidgetArea);
 
-    Utils::FancyMainWindow *mainWindow() const;
+    static Utils::FancyMainWindow *mainWindow();
+
+    static void showMode();
+    static void selectTool(IAnalyzerTool *tool, StartMode mode);
+    static void startTool(IAnalyzerTool *tool, StartMode mode);
+    static void stopTool();
 
-    void showMode();
-    void selectTool(IAnalyzerTool *tool);
-    void startTool(IAnalyzerTool *tool);
-    void stopTool();
+    // Convenience functions.
+    static void startLocalTool(IAnalyzerTool *tool, StartMode mode);
 
     static QString msgToolStarted(const QString &name);
     static QString msgToolFinished(const QString &name, int issuesFound);
 
-    IAnalyzerEngine *createEngine(const AnalyzerStartParameters &sp,
-        ProjectExplorer::RunConfiguration *runConfiguration);
+    static void showStatusMessage(const QString &message, int timeoutMS = 10000);
+    static void showPermanentStatusMessage(const QString &message);
 
-public slots:
-    void showStatusMessage(const QString &message, int timeoutMS = 10000);
-    void showPermanentStatusMessage(const QString &message);
+    static void handleToolStarted();
+    static void handleToolFinished();
+    static QAction *stopAction();
 
 private:
-    class AnalyzerManagerPrivate;
     friend class AnalyzerManagerPrivate;
     AnalyzerManagerPrivate *const d;
 };
diff --git a/src/plugins/analyzerbase/analyzerruncontrol.cpp b/src/plugins/analyzerbase/analyzerruncontrol.cpp
index 920c62ef10759a34e4f4330b8a0b1e298196150a..889b2a911b61c3f278a2e7d85d37556c02378251 100644
--- a/src/plugins/analyzerbase/analyzerruncontrol.cpp
+++ b/src/plugins/analyzerbase/analyzerruncontrol.cpp
@@ -48,9 +48,15 @@
 
 #include <QtCore/QDebug>
 
-using namespace Analyzer;
+using namespace ProjectExplorer;
 
-// AnalyzerRunControl::Private ///////////////////////////////////////////
+//////////////////////////////////////////////////////////////////////////
+//
+// AnalyzerRunControl::Private
+//
+//////////////////////////////////////////////////////////////////////////
+
+namespace Analyzer {
 
 class AnalyzerRunControl::Private
 {
@@ -66,13 +72,18 @@ AnalyzerRunControl::Private::Private()
 {}
 
 
-// AnalyzerRunControl ////////////////////////////////////////////////////
-AnalyzerRunControl::AnalyzerRunControl(const AnalyzerStartParameters &sp,
-                                       RunConfiguration *runConfiguration)
-    : RunControl(runConfiguration, Constants::MODE_ANALYZE),
+//////////////////////////////////////////////////////////////////////////
+//
+// AnalyzerRunControl
+//
+//////////////////////////////////////////////////////////////////////////
+
+AnalyzerRunControl::AnalyzerRunControl(IAnalyzerTool *tool,
+        const AnalyzerStartParameters &sp, RunConfiguration *runConfiguration)
+    : RunControl(runConfiguration, tool->id()),
       d(new Private)
 {
-    d->m_engine = AnalyzerManager::instance()->createEngine(sp, runConfiguration);
+    d->m_engine = tool->createEngine(sp, runConfiguration);
 
     if (!d->m_engine)
         return;
@@ -83,6 +94,7 @@ AnalyzerRunControl::AnalyzerRunControl(const AnalyzerStartParameters &sp,
             SLOT(addTask(ProjectExplorer::Task::TaskType,QString,QString,int)));
     connect(d->m_engine, SIGNAL(finished()),
             SLOT(engineFinished()));
+    connect(this, SIGNAL(finished()), SLOT(runControlFinished()), Qt::QueuedConnection);
 }
 
 AnalyzerRunControl::~AnalyzerRunControl()
@@ -92,6 +104,7 @@ AnalyzerRunControl::~AnalyzerRunControl()
 
     delete d->m_engine;
     d->m_engine = 0;
+    delete d;
 }
 
 void AnalyzerRunControl::start()
@@ -103,7 +116,7 @@ void AnalyzerRunControl::start()
 
     // clear about-to-be-outdated tasks
     ExtensionSystem::PluginManager *pm = ExtensionSystem::PluginManager::instance();
-    ProjectExplorer::TaskHub *hub = pm->getObject<ProjectExplorer::TaskHub>();
+    TaskHub *hub = pm->getObject<TaskHub>();
     hub->clearTasks(Constants::ANALYZERTASK_ID);
 
     d->m_isRunning = true;
@@ -111,7 +124,7 @@ void AnalyzerRunControl::start()
     d->m_engine->start();
 }
 
-ProjectExplorer::RunControl::StopResult AnalyzerRunControl::stop()
+RunControl::StopResult AnalyzerRunControl::stop()
 {
     if (!d->m_engine || !d->m_isRunning)
         return StoppedSynchronously;
@@ -121,12 +134,23 @@ ProjectExplorer::RunControl::StopResult AnalyzerRunControl::stop()
     return AsynchronousStop;
 }
 
+void AnalyzerRunControl::stopIt()
+{
+    if (stop() == RunControl::StoppedSynchronously)
+        AnalyzerManager::handleToolFinished();
+}
+
 void AnalyzerRunControl::engineFinished()
 {
     d->m_isRunning = false;
     emit finished();
 }
 
+void AnalyzerRunControl::runControlFinished()
+{
+    AnalyzerManager::handleToolFinished();
+}
+
 bool AnalyzerRunControl::isRunning() const
 {
     return d->m_isRunning;
@@ -149,12 +173,12 @@ void AnalyzerRunControl::receiveOutput(const QString &text, Utils::OutputFormat
     appendMessage(text, format);
 }
 
-void AnalyzerRunControl::addTask(ProjectExplorer::Task::TaskType type, const QString &description,
+void AnalyzerRunControl::addTask(Task::TaskType type, const QString &description,
                                  const QString &file, int line)
 {
     ExtensionSystem::PluginManager *pm = ExtensionSystem::PluginManager::instance();
-    ProjectExplorer::TaskHub *hub = pm->getObject<ProjectExplorer::TaskHub>();
-    hub->addTask(ProjectExplorer::Task(type, description, file, line, Constants::ANALYZERTASK_ID));
+    TaskHub *hub = pm->getObject<TaskHub>();
+    hub->addTask(Task(type, description, file, line, Constants::ANALYZERTASK_ID));
 
     ///FIXME: get a better API for this into Qt Creator
     QList<Core::IOutputPane *> panes = pm->getObjects<Core::IOutputPane>();
@@ -165,3 +189,5 @@ void AnalyzerRunControl::addTask(ProjectExplorer::Task::TaskType type, const QSt
         }
     }
 }
+
+} // namespace Analyzer
diff --git a/src/plugins/analyzerbase/analyzerruncontrol.h b/src/plugins/analyzerbase/analyzerruncontrol.h
index 59a2a2e7209cc8bb45e68bb95c50111905be7c95..ff320a4e2b6a36f6e28915868149cbecbfbcf3f9 100644
--- a/src/plugins/analyzerbase/analyzerruncontrol.h
+++ b/src/plugins/analyzerbase/analyzerruncontrol.h
@@ -45,18 +45,18 @@
 namespace Analyzer {
 
 class AnalyzerStartParameters;
+class IAnalyzerTool;
 
-class ANALYZER_EXPORT AnalyzerRunControl: public ProjectExplorer::RunControl
+class ANALYZER_EXPORT AnalyzerRunControl : public ProjectExplorer::RunControl
 {
     Q_OBJECT
 
 public:
-    typedef ProjectExplorer::RunConfiguration RunConfiguration;
-    // the constructor is likely to gain more arguments later
-    explicit AnalyzerRunControl(const AnalyzerStartParameters &sp, RunConfiguration *runConfiguration);
+    AnalyzerRunControl(IAnalyzerTool *tool, const AnalyzerStartParameters &sp,
+        ProjectExplorer::RunConfiguration *runConfiguration);
     ~AnalyzerRunControl();
 
-    // pure virtuals from ProjectExplorer::RunControl
+    // ProjectExplorer::RunControl
     void start();
     StopResult stop();
     bool isRunning() const;
@@ -64,16 +64,18 @@ public:
     QIcon icon() const;
 
 private slots:
+    void stopIt();
     void receiveOutput(const QString &, Utils::OutputFormat format);
 
     void addTask(ProjectExplorer::Task::TaskType type, const QString &description,
                  const QString &file, int line);
 
     void engineFinished();
+    void runControlFinished();
 
 private:
     class Private;
-    QScopedPointer<Private> d;
+    Private *d;
 };
 
 } // namespace Analyzer
diff --git a/src/plugins/analyzerbase/analyzerruncontrolfactory.cpp b/src/plugins/analyzerbase/analyzerruncontrolfactory.cpp
deleted file mode 100644
index 3e7efb81e85984e7513a1f379dc66415692ea66e..0000000000000000000000000000000000000000
--- a/src/plugins/analyzerbase/analyzerruncontrolfactory.cpp
+++ /dev/null
@@ -1,149 +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 "analyzerruncontrolfactory.h"
-#include "analyzerruncontrol.h"
-#include "analyzerconstants.h"
-#include "analyzerrunconfigwidget.h"
-#include "analyzersettings.h"
-#include "analyzerstartparameters.h"
-
-#include <utils/qtcassert.h>
-
-#include <projectexplorer/applicationrunconfiguration.h>
-
-#include <remotelinux/linuxdeviceconfiguration.h>
-#include <remotelinux/remotelinuxrunconfiguration.h>
-
-#include <QtCore/QDebug>
-
-using namespace Analyzer;
-using namespace Analyzer::Internal;
-
-AnalyzerStartParameters localStartParameters(ProjectExplorer::RunConfiguration *runConfiguration)
-{
-    AnalyzerStartParameters sp;
-    QTC_ASSERT(runConfiguration, return sp);
-    ProjectExplorer::LocalApplicationRunConfiguration *rc =
-            qobject_cast<ProjectExplorer::LocalApplicationRunConfiguration *>(runConfiguration);
-    QTC_ASSERT(rc, return sp);
-
-    sp.startMode = StartLocal;
-    sp.environment = rc->environment();
-    sp.workingDirectory = rc->workingDirectory();
-    sp.debuggee = rc->executable();
-    sp.debuggeeArgs = rc->commandLineArguments();
-    sp.displayName = rc->displayName();
-    sp.connParams.host = QLatin1String("localhost");
-    sp.connParams.port = rc->qmlDebugServerPort();
-    return sp;
-}
-
-AnalyzerStartParameters remoteLinuxStartParameters(ProjectExplorer::RunConfiguration *runConfiguration)
-{
-    AnalyzerStartParameters sp;
-    RemoteLinux::RemoteLinuxRunConfiguration * const rc
-        = qobject_cast<RemoteLinux::RemoteLinuxRunConfiguration *>(runConfiguration);
-    QTC_ASSERT(rc, return sp);
-
-    sp.debuggee = rc->remoteExecutableFilePath();
-    sp.debuggeeArgs = rc->arguments();
-    sp.connParams = rc->deviceConfig()->sshParameters();
-    sp.analyzerCmdPrefix = rc->commandPrefix();
-    sp.startMode = StartRemote;
-    sp.displayName = rc->displayName();
-    return sp;
-}
-
-
-// AnalyzerRunControlFactory ////////////////////////////////////////////////////
-AnalyzerRunControlFactory::AnalyzerRunControlFactory(QObject *parent)
-    : IRunControlFactory(parent)
-{
-}
-
-bool AnalyzerRunControlFactory::canRun(RunConfiguration *runConfiguration, const QString &mode) const
-{
-    return runConfiguration->isEnabled() && mode == Constants::MODE_ANALYZE;
-}
-
-ProjectExplorer::RunControl *AnalyzerRunControlFactory::create(RunConfiguration *runConfiguration,
-                                                               const QString &mode)
-{
-    QTC_ASSERT(canRun(runConfiguration, mode), return 0);
-
-    AnalyzerStartParameters sp;
-    if (qobject_cast<ProjectExplorer::LocalApplicationRunConfiguration *>(runConfiguration)) {
-        sp = localStartParameters(runConfiguration);
-    } else if (qobject_cast<RemoteLinux::RemoteLinuxRunConfiguration *>(runConfiguration)) {
-        sp = remoteLinuxStartParameters(runConfiguration);
-    } else {
-        // might be S60DeviceRunfiguration, or something else ...
-        sp.startMode = StartRemote;
-    }
-
-    return create(sp, runConfiguration);
-}
-
-AnalyzerRunControl *AnalyzerRunControlFactory::create(const AnalyzerStartParameters &sp,
-                                                               RunConfiguration *runConfiguration)
-{
-    AnalyzerRunControl *rc = new AnalyzerRunControl(sp, runConfiguration);
-    emit runControlCreated(rc);
-    return rc;
-}
-
-QString AnalyzerRunControlFactory::displayName() const
-{
-    return tr("Analyzer");
-}
-
-ProjectExplorer::IRunConfigurationAspect *AnalyzerRunControlFactory::createRunConfigurationAspect()
-{
-    return new AnalyzerProjectSettings;
-}
-
-ProjectExplorer::RunConfigWidget *AnalyzerRunControlFactory::createConfigurationWidget(RunConfiguration
-                                                                                       *runConfiguration)
-{
-    ProjectExplorer::LocalApplicationRunConfiguration *localRc =
-        qobject_cast<ProjectExplorer::LocalApplicationRunConfiguration *>(runConfiguration);
-    if (!localRc)
-        return 0;
-    AnalyzerProjectSettings *settings = runConfiguration->extraAspect<AnalyzerProjectSettings>();
-    if (!settings)
-        return 0;
-
-    AnalyzerRunConfigWidget *ret = new AnalyzerRunConfigWidget;
-    ret->setRunConfiguration(runConfiguration);
-    return ret;
-}
diff --git a/src/plugins/analyzerbase/analyzersettings.cpp b/src/plugins/analyzerbase/analyzersettings.cpp
index fa00ab55d067e88bf6da6de87f572425d4ad4279..89fa68b1c212d8fa9b454ed221e17a08f1697a51 100644
--- a/src/plugins/analyzerbase/analyzersettings.cpp
+++ b/src/plugins/analyzerbase/analyzersettings.cpp
@@ -40,7 +40,6 @@
 #include "analyzeroptionspage.h"
 
 #include <coreplugin/icore.h>
-#include <valgrind/xmlprotocol/error.h>
 #include <utils/qtcassert.h>
 
 #include <QtCore/QSettings>
diff --git a/src/plugins/analyzerbase/analyzerstartparameters.h b/src/plugins/analyzerbase/analyzerstartparameters.h
index a867108c42fcbf87bf41fe2a45ffa52734a6c26a..5265e7099fa6524f36e913dea287d39c37c5f3a6 100644
--- a/src/plugins/analyzerbase/analyzerstartparameters.h
+++ b/src/plugins/analyzerbase/analyzerstartparameters.h
@@ -50,19 +50,16 @@ class ANALYZER_EXPORT AnalyzerStartParameters
 {
 public:
     AnalyzerStartParameters()
-    : startMode(StartLocal)
-    , connParams(Utils::SshConnectionParameters::NoProxy)
-    { }
+        : connParams(Utils::SshConnectionParameters::NoProxy)
+    {}
 
-    AnalyzerStartMode startMode;
+    StartMode startMode;
     Utils::SshConnectionParameters connParams;
 
+    QByteArray toolId;
     QString debuggee;
     QString debuggeeArgs;
     QString analyzerCmdPrefix;
-    QString remoteMountPoint;
-    QString localMountDir;
-    QString remoteSourcesDir;
     QString displayName;
     Utils::Environment environment;
     QString workingDirectory;
diff --git a/src/plugins/analyzerbase/analyzerutils.cpp b/src/plugins/analyzerbase/analyzerutils.cpp
index 532a3c559f302cab52eca13a06b6a001856c03bd..83107e8312f63bd0a85accb4daaa728cb542d94e 100644
--- a/src/plugins/analyzerbase/analyzerutils.cpp
+++ b/src/plugins/analyzerbase/analyzerutils.cpp
@@ -116,10 +116,3 @@ CPlusPlus::Symbol *AnalyzerUtils::findSymbolUnderCursor()
     const CPlusPlus::LookupItem &lookupItem = lookupItems.first(); // ### TODO: select best candidate.
     return lookupItem.declaration();
 }
-
-QWidget *AnalyzerUtils::createDummyWidget()
-{
-    QWidget *widget = new QWidget;
-    widget->setProperty(Constants::ANALYZER_DUMMYWIDGET_ID, QVariant(true));
-    return widget;
-}
diff --git a/src/plugins/analyzerbase/analyzerutils.h b/src/plugins/analyzerbase/analyzerutils.h
index cece97438fdc84fa4cbdac7f947508d741bec766..61f6b8a98df913345072a0cd8530c07160daafa6 100644
--- a/src/plugins/analyzerbase/analyzerutils.h
+++ b/src/plugins/analyzerbase/analyzerutils.h
@@ -46,8 +46,6 @@ class Symbol;
 namespace AnalyzerUtils
 {
     ANALYZER_EXPORT CPlusPlus::Symbol *findSymbolUnderCursor();
-
-    ANALYZER_EXPORT QWidget *createDummyWidget();
 }
 
 #endif // ANALYZERUTILS_H
diff --git a/src/plugins/analyzerbase/ianalyzerengine.cpp b/src/plugins/analyzerbase/ianalyzerengine.cpp
index 1da091d93caee8d96e389599deef73ca241cc414..91da9d098f1f01a32bc0c34846141f7ef8f5ad06 100644
--- a/src/plugins/analyzerbase/ianalyzerengine.cpp
+++ b/src/plugins/analyzerbase/ianalyzerengine.cpp
@@ -36,21 +36,19 @@
 
 namespace Analyzer {
 
-IAnalyzerEngine::IAnalyzerEngine(const AnalyzerStartParameters &sp,
-                                 ProjectExplorer::RunConfiguration *runConfiguration)
-    : m_runConfig(runConfiguration)
-    , m_sp(sp)
+IAnalyzerEngine::IAnalyzerEngine(IAnalyzerTool *tool, const AnalyzerStartParameters &sp,
+    ProjectExplorer::RunConfiguration *runConfiguration)
 {
+    m_runConfig = runConfiguration;
+    m_sp = sp;
+    m_tool = tool;
 }
 
-ProjectExplorer::RunConfiguration *IAnalyzerEngine::runConfiguration() const
+IAnalyzerEngine::IAnalyzerEngine(IAnalyzerTool *tool,
+        ProjectExplorer::RunConfiguration *runConfiguration)
 {
-    return m_runConfig;
-}
-
-AnalyzerStartParameters IAnalyzerEngine::startParameters() const
-{
-    return m_sp;
+    m_runConfig = runConfiguration;
+    m_tool = tool;
 }
 
 } // namespace Analyzer
diff --git a/src/plugins/analyzerbase/ianalyzerengine.h b/src/plugins/analyzerbase/ianalyzerengine.h
index d8a9bd889571cb7bad635b6f2656b9cfee26478b..29c2d0f0b8c6a44c225d889e2cf331ad27d7cbbd 100644
--- a/src/plugins/analyzerbase/ianalyzerengine.h
+++ b/src/plugins/analyzerbase/ianalyzerengine.h
@@ -51,6 +51,8 @@ class RunConfiguration;
 
 namespace Analyzer {
 
+class IAnalyzerTool;
+
 /**
  * An IAnalyzerEngine instance handles the launch of an analyzation tool.
  *
@@ -61,40 +63,47 @@ class ANALYZER_EXPORT IAnalyzerEngine : public QObject
     Q_OBJECT
 
 public:
-    explicit IAnalyzerEngine(const AnalyzerStartParameters &sp,
+    IAnalyzerEngine(IAnalyzerTool *tool, const AnalyzerStartParameters &sp,
         ProjectExplorer::RunConfiguration *runConfiguration = 0);
+    IAnalyzerEngine(IAnalyzerTool *tool,
+        ProjectExplorer::RunConfiguration *runConfiguration);
 
-    /// start analyzation process
+    /// Start analyzation process.
     virtual void start() = 0;
-    /// trigger async stop of the analyzation process
+    /// Trigger async stop of the analyzation process.
     virtual void stop() = 0;
 
-    /// controller actions
+    /// Controller actions.
     virtual bool canPause() const { return false; }
     virtual void pause() {}
     virtual void unpause() {}
 
-    /// the active run configuration for this engine, might be zero
-    ProjectExplorer::RunConfiguration *runConfiguration() const;
+    /// The active run configuration for this engine, might be zero.
+    ProjectExplorer::RunConfiguration *runConfiguration() const { return m_runConfig; }
+
+    /// The start parameters for this engine.
+    const AnalyzerStartParameters &startParameters() const { return m_sp; }
 
-    /// the start parameters for this engine
-    AnalyzerStartParameters startParameters() const;
+    /// The tool this engine is associated with.
+    IAnalyzerTool *tool() const { return m_tool; }
+    StartMode mode() const { return m_sp.startMode; }
 
 signals:
-    /// should be emitted when the debuggee outputted something
+    /// Should be emitted when the debuggee outputted something.
     void outputReceived(const QString &, Utils::OutputFormat format);
-    /// can be emitted when you want to show a task, e.g. to display an error
+    /// Can be emitted when you want to show a task, e.g. to display an error.
     void taskToBeAdded(ProjectExplorer::Task::TaskType type, const QString &description,
                        const QString &file, int line);
 
-    /// must be emitted when the engine finished
+    /// Must be emitted when the engine finished.
     void finished();
-    /// must be emitted when the engine is starting
+    /// Must be emitted when the engine is starting.
     void starting(const Analyzer::IAnalyzerEngine *);
 
 private:
     ProjectExplorer::RunConfiguration *m_runConfig;
     AnalyzerStartParameters m_sp;
+    IAnalyzerTool *m_tool;
 };
 
 } // namespace Analyzer
diff --git a/src/plugins/analyzerbase/ianalyzertool.cpp b/src/plugins/analyzerbase/ianalyzertool.cpp
index 600d18f844759ec7dd980a9d126fa6f3b9854ab4..f0dce04541c886df563cecd45bea86c747759ce6 100644
--- a/src/plugins/analyzerbase/ianalyzertool.cpp
+++ b/src/plugins/analyzerbase/ianalyzertool.cpp
@@ -33,6 +33,7 @@
 **************************************************************************/
 
 #include "ianalyzertool.h"
+#include "analyzermanager.h"
 
 namespace Analyzer {
 
@@ -40,26 +41,27 @@ IAnalyzerTool::IAnalyzerTool(QObject *parent)
     : QObject(parent)
 {}
 
-QString IAnalyzerTool::modeString(ToolMode mode)
+QByteArray IAnalyzerTool::defaultMenuGroup(StartMode mode)
 {
-    switch (mode) {
-        case IAnalyzerTool::DebugMode:
-            return tr("Debug");
-        case IAnalyzerTool::ReleaseMode:
-            return tr("Release");
-        case IAnalyzerTool::AnyMode:
-            break;
-    }
-    return QString();
+    if (mode == StartRemote)
+        return Analyzer::Constants::G_ANALYZER_REMOTE_TOOLS;
+    return Analyzer::Constants::G_ANALYZER_TOOLS;
 }
 
-void IAnalyzerTool::initializeDockWidgets()
+QByteArray IAnalyzerTool::defaultActionId(const IAnalyzerTool *tool, StartMode mode)
 {
+    QByteArray id = tool->id();
+    if (mode == StartRemote)
+        return "Action." + id + ".RemoteStart." + QByteArray::number(mode);
+    return "Action." + id + ".LocalStart." + QByteArray::number(mode);
 }
 
-QWidget *IAnalyzerTool::createControlWidget()
+QString IAnalyzerTool::defaultActionName(const IAnalyzerTool *tool, StartMode mode)
 {
-    return 0;
+    QString base = tool->displayName();
+    if (mode == StartRemote)
+        return base + tr(" (Remote)");
+    return base;
 }
 
 } // namespace Analyzer
diff --git a/src/plugins/analyzerbase/ianalyzertool.h b/src/plugins/analyzerbase/ianalyzertool.h
index 0e77b82199fd44bf572aeec2e36a25e02c8d2d58..8b7e489ad820c01d36a4fd5cd821f0a167f299e7 100644
--- a/src/plugins/analyzerbase/ianalyzertool.h
+++ b/src/plugins/analyzerbase/ianalyzertool.h
@@ -36,6 +36,7 @@
 #define IANALYZERTOOL_H
 
 #include "analyzerbase_global.h"
+#include "analyzerconstants.h"
 
 #include <QtCore/QObject>
 
@@ -49,8 +50,12 @@ class AnalyzerStartParameters;
 class IAnalyzerOutputPaneAdapter;
 class IAnalyzerEngine;
 
+
 /**
  * This class represents an analyzation tool, e.g. "Valgrind Memcheck".
+ *
+ * Each tool can run in different run modes. The modes are specific to the mode.
+ *
  * @code
  * bool YourPlugin::initialize(const QStringList &arguments, QString *errorString)
  * {
@@ -67,16 +72,25 @@ public:
     explicit IAnalyzerTool(QObject *parent = 0);
 
     /// Returns a unique ID for this tool.
-    virtual QString id() const = 0;
+    virtual QByteArray id() const = 0;
     /// Returns a short user readable display name for this tool.
     virtual QString displayName() const = 0;
     /// Returns a user readable description name for this tool.
     virtual QString description() const = 0;
+    /// Returns an id for the start action.
+    virtual QByteArray actionId(StartMode mode) const
+        { return defaultActionId(this, mode); }
+    /// Returns the menu group the start action should go to.
+    virtual QByteArray menuGroup(StartMode mode) const
+        { return defaultMenuGroup(mode); }
+    /// Returns a short user readable action name for this tool.
+    virtual QString actionName(StartMode mode) const
+        { return defaultActionName(this, mode); }
 
     /**
      * The mode in which this tool should preferably be run
      *
-     * The memcheckt tool, for example, requires debug symbols, hence DebugMode
+     * The memcheck tool, for example, requires debug symbols, hence DebugMode
      * is preferred. On the other hand, callgrind should look at optimized code,
      * hence ReleaseMode.
      */
@@ -85,38 +99,27 @@ public:
         ReleaseMode,
         AnyMode
     };
-    virtual ToolMode mode() const = 0;
+    virtual ToolMode toolMode() const = 0;
 
-    static QString modeString(ToolMode mode);
+    /// Convenience implementation.
+    static QByteArray defaultMenuGroup(StartMode mode);
+    static QByteArray defaultActionId(const IAnalyzerTool *tool, StartMode mode);
+    static QString defaultActionName(const IAnalyzerTool *tool, StartMode mode);
 
-    /**
-     * The implementation should setup widgets for the output pane here and
-     * optionally add dock widgets in the analyzation mode if wanted.
-     */
-    virtual void initialize() = 0;
     /// This gets called after all analyzation tools where initialized.
     virtual void extensionsInitialized() = 0;
 
-    /**
-      * This is called to add all dock widgets if tool becomes active first time.
-      * \sa AnalzyerManager::createDockWidget
-      */
-    virtual void initializeDockWidgets();
-
-    /// Returns a control widget which will be shown
-    /// in the output pane when this tool is selected.
-    virtual QWidget *createControlWidget();
+    /// Creates all widgets used by the tool.
+    /// Returns a control widget which will be shown in the status bar when
+    /// this tool is selected. Must be non-zero.
+    virtual QWidget *createWidgets() = 0;
 
     /// Returns a new engine for the given start parameters.
     /// Called each time the tool is launched.
     virtual IAnalyzerEngine *createEngine(const AnalyzerStartParameters &sp,
         ProjectExplorer::RunConfiguration *runConfiguration = 0) = 0;
 
-    /// Returns true when this tool can be run on the loca machine.
-    virtual bool canRunLocally() const = 0;
-
-    /// Returns true when this tool can be run on a remote machine.
-    virtual bool canRunRemotely() const = 0;
+    virtual void startTool(StartMode mode) = 0;
 
     /// Called when tools gets selected.
     virtual void toolSelected() const {}
diff --git a/src/plugins/analyzerbase/startremotedialog.cpp b/src/plugins/analyzerbase/startremotedialog.cpp
index cfb2859576012149f6a209f6f0a3913a3f973d80..2fdec91bea109dc2e30769e107f6037ea81e01a5 100644
--- a/src/plugins/analyzerbase/startremotedialog.cpp
+++ b/src/plugins/analyzerbase/startremotedialog.cpp
@@ -40,8 +40,8 @@
 
 namespace Analyzer {
 
-StartRemoteDialog::StartRemoteDialog(QWidget *parent, Qt::WindowFlags f)
-    : QDialog(parent, f)
+StartRemoteDialog::StartRemoteDialog(QWidget *parent)
+    : QDialog(parent)
     , m_ui(new Ui::StartRemoteDialog)
 {
     m_ui->setupUi(this);
diff --git a/src/plugins/analyzerbase/startremotedialog.h b/src/plugins/analyzerbase/startremotedialog.h
index 24f32b775f2999657dae8e0a0bf2458f19843f45..258d45554f5f64a92f7b036660482a77bbb79fcf 100644
--- a/src/plugins/analyzerbase/startremotedialog.h
+++ b/src/plugins/analyzerbase/startremotedialog.h
@@ -33,12 +33,11 @@
 #ifndef STARTREMOTEDIALOG_H
 #define STARTREMOTEDIALOG_H
 
-#include <QtGui/QDialog>
+#include "analyzerbase_global.h"
 
 #include <utils/ssh/sshconnection.h>
 
-QT_BEGIN_NAMESPACE
-QT_END_NAMESPACE
+#include <QtGui/QDialog>
 
 namespace Analyzer {
 
@@ -46,11 +45,12 @@ namespace Ui {
 class StartRemoteDialog;
 }
 
-class StartRemoteDialog : public QDialog {
+class ANALYZER_EXPORT StartRemoteDialog : public QDialog
+{
     Q_OBJECT
 
 public:
-    explicit StartRemoteDialog(QWidget *parent = 0, Qt::WindowFlags f = 0);
+    explicit StartRemoteDialog(QWidget *parent = 0);
     virtual ~StartRemoteDialog();
 
     Utils::SshConnectionParameters sshParams() const;
@@ -66,6 +66,6 @@ private:
     Ui::StartRemoteDialog *m_ui;
 };
 
-}
+} // namespace Analyzer
 
 #endif // STARTREMOTEDIALOG_H
diff --git a/src/plugins/coreplugin/generalsettings.ui b/src/plugins/coreplugin/generalsettings.ui
index 82398e3e196c104ab0ef03f5165a262d9d795fee..960d05b098d08573c5f281523b6ac06a842ba69e 100644
--- a/src/plugins/coreplugin/generalsettings.ui
+++ b/src/plugins/coreplugin/generalsettings.ui
@@ -78,7 +78,7 @@
         <item>
          <widget class="QPushButton" name="resetButton">
           <property name="toolTip">
-           <string>Reset to default.</string>
+           <string comment="Color">Reset to default.</string>
           </property>
           <property name="text">
            <string>Reset</string>
@@ -196,7 +196,7 @@
       <item row="0" column="2">
        <widget class="QPushButton" name="resetTerminalButton">
         <property name="toolTip">
-         <string>Reset to default.</string>
+         <string comment="Terminal">Reset to default.</string>
         </property>
         <property name="text">
          <string>Reset</string>
@@ -206,7 +206,7 @@
       <item row="1" column="2">
        <widget class="QPushButton" name="resetFileBrowserButton">
         <property name="toolTip">
-         <string>Reset to default.</string>
+         <string comment="File Browser">Reset to default.</string>
         </property>
         <property name="text">
          <string>Reset</string>
diff --git a/src/plugins/coreplugin/infobar.cpp b/src/plugins/coreplugin/infobar.cpp
index 29d15a02fe146947b1de3acc4cdba1d83dd9a25b..bf107416bf5da76f16f7c3213770f5020a6d270e 100644
--- a/src/plugins/coreplugin/infobar.cpp
+++ b/src/plugins/coreplugin/infobar.cpp
@@ -26,7 +26,7 @@
 ** 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 qt-info@nokia.com.
+** Nokia at info@qt.nokia.com.
 **
 **************************************************************************/
 
diff --git a/src/plugins/coreplugin/infobar.h b/src/plugins/coreplugin/infobar.h
index af8e12395b1f7a8388847f062bbd568873140eb0..0d8e63249a8cd6e3553a280f85ae68f85db4d8c3 100644
--- a/src/plugins/coreplugin/infobar.h
+++ b/src/plugins/coreplugin/infobar.h
@@ -26,7 +26,7 @@
 ** 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 qt-info@nokia.com.
+** Nokia at info@qt.nokia.com.
 **
 **************************************************************************/
 
diff --git a/src/plugins/coreplugin/multifeedrssmodel.cpp b/src/plugins/coreplugin/multifeedrssmodel.cpp
index 66fe94822c7f3a95744d21f24d7d7694dcba26fe..64b3ad2eeb5bf6c9be230fd0a6d7ee0360017429 100644
--- a/src/plugins/coreplugin/multifeedrssmodel.cpp
+++ b/src/plugins/coreplugin/multifeedrssmodel.cpp
@@ -1,3 +1,35 @@
+/**************************************************************************
+**
+** 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 "multifeedrssmodel.h"
 
 #include <QtCore/QTimer>
diff --git a/src/plugins/coreplugin/multifeedrssmodel.h b/src/plugins/coreplugin/multifeedrssmodel.h
index 1d0d0363a858938d169663eac7777453a241a955..a6a125565bfab2c6649c94530d04bf306e80e33a 100644
--- a/src/plugins/coreplugin/multifeedrssmodel.h
+++ b/src/plugins/coreplugin/multifeedrssmodel.h
@@ -1,3 +1,35 @@
+/**************************************************************************
+**
+** 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 MULTIFEEDRSSMODEL_H
 #define MULTIFEEDRSSMODEL_H
 
diff --git a/src/plugins/coreplugin/networkaccessmanager.cpp b/src/plugins/coreplugin/networkaccessmanager.cpp
index 8297e94e13907f4759f8098d6db91dfbaee54a30..88dec43e0050a3528384f4d9a6a4e50c3285a031 100644
--- a/src/plugins/coreplugin/networkaccessmanager.cpp
+++ b/src/plugins/coreplugin/networkaccessmanager.cpp
@@ -1,3 +1,35 @@
+/**************************************************************************
+**
+** 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 "networkaccessmanager.h"
 
 #include <QtCore/QLocale>
diff --git a/src/plugins/coreplugin/networkaccessmanager.h b/src/plugins/coreplugin/networkaccessmanager.h
index cd4a8aa60e4a3aa851da1ab2e24fbc1d118c2209..a45ad3fa32ba810a839209a83592118e6ab88b84 100644
--- a/src/plugins/coreplugin/networkaccessmanager.h
+++ b/src/plugins/coreplugin/networkaccessmanager.h
@@ -1,3 +1,35 @@
+/**************************************************************************
+**
+** 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 "core_global.h"
 
 #include <QtCore/QUrl>
diff --git a/src/plugins/coreplugin/outputpane.cpp b/src/plugins/coreplugin/outputpane.cpp
index 782c5ed02956d747b02e1134bb0f6ff8fedfa897..aee055b9bc17c679cc19aeaff18c9879a9a2421a 100644
--- a/src/plugins/coreplugin/outputpane.cpp
+++ b/src/plugins/coreplugin/outputpane.cpp
@@ -48,12 +48,12 @@ struct OutputPanePlaceHolderPrivate {
 
     Core::IMode *m_mode;
     QSplitter *m_splitter;
-    bool m_closeable;
+    int m_lastNonMaxSize;
     static OutputPanePlaceHolder* m_current;
 };
 
 OutputPanePlaceHolderPrivate::OutputPanePlaceHolderPrivate(Core::IMode *mode, QSplitter *parent) :
-    m_mode(mode), m_splitter(parent), m_closeable(true)
+    m_mode(mode), m_splitter(parent), m_lastNonMaxSize(0)
 {
 }
 
@@ -85,16 +85,6 @@ OutputPanePlaceHolder::~OutputPanePlaceHolder()
     }
 }
 
-void OutputPanePlaceHolder::setCloseable(bool b)
-{
-    d->m_closeable = b;
-}
-
-bool OutputPanePlaceHolder::closeable()
-{
-    return d->m_closeable;
-}
-
 void OutputPanePlaceHolder::currentModeChanged(Core::IMode *mode)
 {
     if (d->m_current == this) {
@@ -110,7 +100,6 @@ void OutputPanePlaceHolder::currentModeChanged(Core::IMode *mode)
         layout()->addWidget(om);
         om->show();
         om->updateStatusButtons(isVisible());
-        om->setCloseable(d->m_closeable);
     }
 }
 
@@ -125,6 +114,7 @@ void OutputPanePlaceHolder::maximizeOrMinimize(bool maximize)
     QList<int> sizes = d->m_splitter->sizes();
 
     if (maximize) {
+        d->m_lastNonMaxSize = sizes[idx];
         int sum = 0;
         foreach(int s, sizes)
             sum += s;
@@ -133,7 +123,7 @@ void OutputPanePlaceHolder::maximizeOrMinimize(bool maximize)
         }
         sizes[idx] = sum - (sizes.count()-1) * 32;
     } else {
-        int target = sizeHint().height();
+        int target = d->m_lastNonMaxSize > 0 ? d->m_lastNonMaxSize : sizeHint().height();
         int space = sizes[idx] - target;
         if (space > 0) {
             for (int i = 0; i < sizes.count(); ++i) {
diff --git a/src/plugins/coreplugin/outputpane.h b/src/plugins/coreplugin/outputpane.h
index 69b7af71af701062ee8f432d315f77a6340cd6e0..1de9343a5a9d409fd470897e02f8a8532e79bf30 100644
--- a/src/plugins/coreplugin/outputpane.h
+++ b/src/plugins/coreplugin/outputpane.h
@@ -60,8 +60,6 @@ public:
     explicit OutputPanePlaceHolder(Core::IMode *mode, QSplitter *parent = 0);
     ~OutputPanePlaceHolder();
 
-    void setCloseable(bool b);
-    bool closeable();
     static OutputPanePlaceHolder *getCurrent();
     static bool isCurrentVisible();
 
diff --git a/src/plugins/coreplugin/outputpanemanager.cpp b/src/plugins/coreplugin/outputpanemanager.cpp
index 561e6020dcb7f65e6e3010187de0e04d1c5c8028..a7e1279166ab90d4cbe2baed4c711b4bed5c22bb 100644
--- a/src/plugins/coreplugin/outputpanemanager.cpp
+++ b/src/plugins/coreplugin/outputpanemanager.cpp
@@ -349,8 +349,7 @@ void OutputPaneManager::buttonTriggered()
     int idx = it.key();
 
     if (m_widgetComboBox->itemData(m_widgetComboBox->currentIndex()).toInt() == idx &&
-        OutputPanePlaceHolder::isCurrentVisible()
-        && OutputPanePlaceHolder::getCurrent()->closeable()) {
+        OutputPanePlaceHolder::isCurrentVisible()) {
         // we should toggle and the page is already visible and we are actually closeable
         slotHide();
     } else {
@@ -464,16 +463,6 @@ void OutputPaneManager::togglePage(bool focus)
     }
 }
 
-void OutputPaneManager::setCloseable(bool b)
-{
-    m_closeButton->setVisible(b);
-}
-
-bool OutputPaneManager::closeable()
-{
-    return m_closeButton->isVisibleTo(m_closeButton->parentWidget());
-}
-
 void OutputPaneManager::focusInEvent(QFocusEvent *e)
 {
     if (m_outputWidgetPane->currentWidget())
diff --git a/src/plugins/coreplugin/outputpanemanager.h b/src/plugins/coreplugin/outputpanemanager.h
index f71985d9cb7461f8d33d097868be3eb45e16b37b..921e21dd1289fcfc4252e501a87db52af6f426b2 100644
--- a/src/plugins/coreplugin/outputpanemanager.h
+++ b/src/plugins/coreplugin/outputpanemanager.h
@@ -62,8 +62,6 @@ class OutputPaneManager : public QWidget
 public:
     void init();
     static OutputPaneManager *instance();
-    void setCloseable(bool b);
-    bool closeable();
     QWidget *buttonsWidget();
     void updateStatusButtons(bool visible);
 
diff --git a/src/plugins/coreplugin/variablechooser.cpp b/src/plugins/coreplugin/variablechooser.cpp
index ec8e45f3d57f24628a90e4fa870ddb03cd374987..09528d0654ab44671e0f2dfaf25488693e9a682c 100644
--- a/src/plugins/coreplugin/variablechooser.cpp
+++ b/src/plugins/coreplugin/variablechooser.cpp
@@ -52,6 +52,7 @@ VariableChooser::VariableChooser(QWidget *parent) :
     ui->variableList->setAttribute(Qt::WA_MacShowFocusRect, false);
     ui->variableDescription->setAttribute(Qt::WA_MacSmallSize);
     setWindowFlags(Qt::Tool | Qt::WindowStaysOnTopHint);
+    setFocusPolicy(Qt::StrongFocus);
     setFocusProxy(ui->variableList);
 
     VariableManager *vm = VariableManager::instance();
@@ -155,6 +156,8 @@ void VariableChooser::updatePositionAndShow()
         move(parentCenter.x() - width()/2, parentCenter.y() - height()/2);
     }
     show();
+    raise();
+    activateWindow();
 }
 
 void VariableChooser::handleItemActivated(QListWidgetItem *item)
diff --git a/src/plugins/cpptools/cppcodeformatter.cpp b/src/plugins/cpptools/cppcodeformatter.cpp
index 4a355f6ffbb98673a1cf4e47607878af193b8eda..41e70725f7703dedacbaf509bb87aab8dad1e3a2 100644
--- a/src/plugins/cpptools/cppcodeformatter.cpp
+++ b/src/plugins/cpptools/cppcodeformatter.cpp
@@ -1058,6 +1058,14 @@ int QtStyleCodeFormatter::loadLexerState(const QTextBlock &block) const
     return BaseTextDocumentLayout::lexerState(block);
 }
 
+void QtStyleCodeFormatter::addContinuationIndent(int *paddingDepth) const
+{
+    if (*paddingDepth == 0)
+        *paddingDepth = 2*m_tabSettings.m_indentSize;
+    else
+        *paddingDepth += m_tabSettings.m_indentSize;
+}
+
 void QtStyleCodeFormatter::onEnter(int newState, int *indentDepth, int *savedIndentDepth, int *paddingDepth, int *savedPaddingDepth) const
 {
     const State &parentState = state();
@@ -1094,12 +1102,8 @@ void QtStyleCodeFormatter::onEnter(int newState, int *indentDepth, int *savedInd
     case template_param:
         if (!lastToken)
             *paddingDepth = nextTokenPosition-*indentDepth;
-        else {
-            if (*paddingDepth == 0)
-                *paddingDepth = 2*m_tabSettings.m_indentSize;
-            else
-                *paddingDepth += m_tabSettings.m_indentSize;
-        }
+        else
+            addContinuationIndent(paddingDepth);
         break;
 
     case statement_with_condition:
@@ -1140,17 +1144,18 @@ void QtStyleCodeFormatter::onEnter(int newState, int *indentDepth, int *savedInd
 
     case arglist_open:
     case condition_paren_open:
+    case member_init_paren_open:
         if (!lastToken)
             *paddingDepth = nextTokenPosition-*indentDepth;
         else
-            *paddingDepth += m_tabSettings.m_indentSize;
+            addContinuationIndent(paddingDepth);
         break;
 
     case ternary_op:
         if (!lastToken)
             *paddingDepth = spaceOrNextTokenPosition-*indentDepth;
         else
-            *paddingDepth += m_tabSettings.m_indentSize;
+            addContinuationIndent(paddingDepth);
         break;
 
     case stream_op:
@@ -1175,10 +1180,6 @@ void QtStyleCodeFormatter::onEnter(int newState, int *indentDepth, int *savedInd
         *paddingDepth += 2; // savedIndentDepth is the position of ':'
         break;
 
-    case member_init_paren_open:
-        *paddingDepth += m_tabSettings.m_indentSize;
-        break;
-
     case case_cont:
         if (m_styleSettings.indentStatementsRelativeToSwitchLabels)
             *indentDepth += m_tabSettings.m_indentSize;
diff --git a/src/plugins/cpptools/cppcodeformatter.h b/src/plugins/cpptools/cppcodeformatter.h
index 21f06135a8b8d0a42100e5ee5aeb455112aa054e..dae19a2e249efc3ebf65a68bd88806a53f98ad05 100644
--- a/src/plugins/cpptools/cppcodeformatter.h
+++ b/src/plugins/cpptools/cppcodeformatter.h
@@ -278,6 +278,8 @@ protected:
     static bool shouldClearPaddingOnEnter(int state);
 
 private:
+    void addContinuationIndent(int *paddingDepth) const;
+
     TextEditor::TabSettings m_tabSettings;
     CppCodeStyleSettings m_styleSettings;
 };
diff --git a/src/plugins/cpptools/cppcodestylepreferences.cpp b/src/plugins/cpptools/cppcodestylepreferences.cpp
index 981216c5b2674d9731e30ed4f505c11726928b3c..5e3e27a8aaa174a0c66d75a55165d420e6515121 100644
--- a/src/plugins/cpptools/cppcodestylepreferences.cpp
+++ b/src/plugins/cpptools/cppcodestylepreferences.cpp
@@ -1,3 +1,35 @@
+/**************************************************************************
+**
+** 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 "cppcodestylepreferences.h"
 
 using namespace CppTools;
diff --git a/src/plugins/cpptools/cppcodestylepreferences.h b/src/plugins/cpptools/cppcodestylepreferences.h
index 991e15f0171b31c6877587025a294940dde06282..022d623e5f23a7d622c141d455aa8009965ec54e 100644
--- a/src/plugins/cpptools/cppcodestylepreferences.h
+++ b/src/plugins/cpptools/cppcodestylepreferences.h
@@ -1,3 +1,35 @@
+/**************************************************************************
+**
+** 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 CPPCODESTYLEPREFERENCES_H
 #define CPPCODESTYLEPREFERENCES_H
 
diff --git a/src/plugins/cpptools/cppcodestylesettings.cpp b/src/plugins/cpptools/cppcodestylesettings.cpp
index 13a06e263362e0e14828697bd958954a0800271b..40efe1254ce7acfd0f7cc55707fe8ecba905de63 100644
--- a/src/plugins/cpptools/cppcodestylesettings.cpp
+++ b/src/plugins/cpptools/cppcodestylesettings.cpp
@@ -1,3 +1,35 @@
+/**************************************************************************
+**
+** 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 "cppcodestylesettings.h"
 
 #include <utils/settingsutils.h>
diff --git a/src/plugins/cpptools/cppcodestylesettings.h b/src/plugins/cpptools/cppcodestylesettings.h
index 320c99471f73f0439e854c9977f00eb5ae83b0e8..ea934814b4f2b9e50326e9be6b64a4fbbb964aa9 100644
--- a/src/plugins/cpptools/cppcodestylesettings.h
+++ b/src/plugins/cpptools/cppcodestylesettings.h
@@ -1,3 +1,35 @@
+/**************************************************************************
+**
+** 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 CPPCODESTYLESETTINGS_H
 #define CPPCODESTYLESETTINGS_H
 
diff --git a/src/plugins/cpptools/cppcodestylesettingsfactory.cpp b/src/plugins/cpptools/cppcodestylesettingsfactory.cpp
index b794ace8957ab9ea1dd526ef6cba584189087d2c..dc2e3ab0b322e38b2bb7e550c9b0e29a782f8eae 100644
--- a/src/plugins/cpptools/cppcodestylesettingsfactory.cpp
+++ b/src/plugins/cpptools/cppcodestylesettingsfactory.cpp
@@ -1,3 +1,35 @@
+/**************************************************************************
+**
+** 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 "cppcodestylesettingsfactory.h"
 #include "cppcodestylesettings.h"
 #include "cppcodestylesettingspage.h"
diff --git a/src/plugins/cpptools/cppcodestylesettingsfactory.h b/src/plugins/cpptools/cppcodestylesettingsfactory.h
index 53681d6dd00bbef40bf58b54f40fddbf6631df79..85c59d55ea3c7c8d1554577276a6925d9b84ced8 100644
--- a/src/plugins/cpptools/cppcodestylesettingsfactory.h
+++ b/src/plugins/cpptools/cppcodestylesettingsfactory.h
@@ -1,3 +1,35 @@
+/**************************************************************************
+**
+** 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 CPPCODESTYLESETTINGSFACTORY_H
 #define CPPCODESTYLESETTINGSFACTORY_H
 
diff --git a/src/plugins/cpptools/cppcodestylesettingspage.cpp b/src/plugins/cpptools/cppcodestylesettingspage.cpp
index 6bb2013efc58035da3c5d33b2f81645dc5c84b6a..426d3da5d21863395816d4e637ee093a77237c9f 100644
--- a/src/plugins/cpptools/cppcodestylesettingspage.cpp
+++ b/src/plugins/cpptools/cppcodestylesettingspage.cpp
@@ -1,3 +1,35 @@
+/**************************************************************************
+**
+** 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 "cppcodestylesettingspage.h"
 #include "cppcodestylepreferences.h"
 #include "ui_cppcodestylesettingspage.h"
diff --git a/src/plugins/cpptools/cppcodestylesettingspage.h b/src/plugins/cpptools/cppcodestylesettingspage.h
index b632f1cccc14546fc42bfa70e1fb0f34210da543..dce545eeded281cf2f58235c1d939ba997a5ddb0 100644
--- a/src/plugins/cpptools/cppcodestylesettingspage.h
+++ b/src/plugins/cpptools/cppcodestylesettingspage.h
@@ -1,3 +1,35 @@
+/**************************************************************************
+**
+** 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 CPPCODESTYLESETTINGSPAGE_H
 #define CPPCODESTYLESETTINGSPAGE_H
 
diff --git a/src/plugins/cpptools/cpptoolssettings.cpp b/src/plugins/cpptools/cpptoolssettings.cpp
index c203b9e582512e19a248a10a606861fc90ad5ebd..41608011615535ee2500f25ba3a590ba3613da57 100644
--- a/src/plugins/cpptools/cpptoolssettings.cpp
+++ b/src/plugins/cpptools/cpptoolssettings.cpp
@@ -1,3 +1,35 @@
+/**************************************************************************
+**
+** 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 "cpptoolssettings.h"
 #include "cpptoolsconstants.h"
 #include "cppcodestylepreferences.h"
diff --git a/src/plugins/cpptools/cpptoolssettings.h b/src/plugins/cpptools/cpptoolssettings.h
index 48712012afe48a95a6b257c1efed4d917fe1b5a9..cc0004bd7d529d70cf89e4ecdb4c9c482167e377 100644
--- a/src/plugins/cpptools/cpptoolssettings.h
+++ b/src/plugins/cpptools/cpptoolssettings.h
@@ -4,30 +4,29 @@
 **
 ** Copyright (c) 2011 Nokia Corporation and/or its subsidiary(-ies).
 **
-** Contact: Nokia Corporation (qt-info@nokia.com)
+** Contact: Nokia Corporation (info@qt.nokia.com)
 **
-** No Commercial Usage
-**
-** This file contains pre-release code and may not be distributed.
-** You may use this file in accordance with the terms and conditions
-** contained in the Technology Preview License Agreement accompanying
-** this package.
 **
 ** GNU Lesser General Public License Usage
 **
-** Alternatively, 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.
+** 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
+** 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 qt-info@nokia.com.
+** Nokia at info@qt.nokia.com.
 **
 **************************************************************************/
 
diff --git a/src/plugins/debugger/breakpoint.cpp b/src/plugins/debugger/breakpoint.cpp
index c8285f3f42e5f5654d275ca76ef1a5155d5da983..4d1f9c5be7038dd36fb41ffd61ced2ba77c71d72 100644
--- a/src/plugins/debugger/breakpoint.cpp
+++ b/src/plugins/debugger/breakpoint.cpp
@@ -36,6 +36,7 @@
 
 #include <QtCore/QByteArray>
 #include <QtCore/QDebug>
+#include <QtCore/QFileInfo>
 
 namespace Debugger {
 namespace Internal {
@@ -51,6 +52,9 @@ namespace Internal {
 
     This identifies a breakpoint in the \c BreakHandler. The
     major parts are strictly increasing over time.
+
+    The minor part identifies a multiple breakpoint
+    set for example by gdb in constructors.
 */
 
 
@@ -105,6 +109,10 @@ BreakpointModelId BreakpointModelId::child(int row) const
 
     This is what the external debuggers use to identify a breakpoint.
     It is only valid for one debugger run.
+
+    In gdb, the breakpoint number is used, which is constant
+    during a session. CDB's breakpoint numbers vary if breakpoints
+    are deleted, so, the ID is used.
 */
 
 BreakpointResponseId::BreakpointResponseId(const QByteArray &ba)
@@ -227,12 +235,17 @@ bool BreakpointParameters::conditionsMatch(const QByteArray &other) const
     return s1 == s2;
 }
 
-void BreakpointParameters::setLocation(const QByteArray &location)
+void BreakpointParameters::updateLocation(const QByteArray &location)
 {
     if (location.size()) {
         int pos = location.indexOf(':');
         lineNumber = location.mid(pos + 1).toInt();
-        fileName = QString::fromUtf8(location.left(pos));
+        QString file = QString::fromUtf8(location.left(pos));
+        if (file.startsWith(QLatin1Char('"')) && file.endsWith(QLatin1Char('"')))
+            file = file.mid(1, file.size() - 2);
+        QFileInfo fi(file);
+        if (fi.isReadable())
+            fileName = fi.absoluteFilePath();
     }
 }
 
diff --git a/src/plugins/debugger/breakpoint.h b/src/plugins/debugger/breakpoint.h
index 82831320369147287e390b344e12de582c1045d6..7e1fbe5856fba3dfac3e3377a330d20a0acb907d 100644
--- a/src/plugins/debugger/breakpoint.h
+++ b/src/plugins/debugger/breakpoint.h
@@ -209,7 +209,7 @@ public:
     bool isBreakpoint() const { return !isWatchpoint() && !isTracepoint(); }
     bool isTracepoint() const { return tracepoint; }
     QString toString() const;
-    void setLocation(const QByteArray &location); // file.cpp:42
+    void updateLocation(const QByteArray &location); // file.cpp:42
 
     bool operator==(const BreakpointParameters &p) const { return equals(p); }
     bool operator!=(const BreakpointParameters &p) const { return !equals(p); }
diff --git a/src/plugins/debugger/cdb/cdbengine.cpp b/src/plugins/debugger/cdb/cdbengine.cpp
index a2ea611039d498857ade01c1ea15e0a8defea887..9d2d1e30264b92fa08efee5c42198b2e40e17e3c 100644
--- a/src/plugins/debugger/cdb/cdbengine.cpp
+++ b/src/plugins/debugger/cdb/cdbengine.cpp
@@ -478,6 +478,7 @@ void CdbEngine::init()
     m_extensionMessageBuffer.clear();
     m_pendingBreakpointMap.clear();
     m_customSpecialStopData.clear();
+    m_symbolAddressCache.clear();
 
     // Create local list of mappings in native separators
     m_sourcePathMappings.clear();
@@ -1532,16 +1533,149 @@ void CdbEngine::selectThread(int index)
     postBuiltinCommand(cmd, 0, &CdbEngine::dummyHandler, CommandListStack);
 }
 
+// Default address range for showing disassembly.
+enum { DisassemblerRange = 512 };
+
+/* Try to emulate gdb's behaviour: When passed an address, display
+ * the disassembled function. CDB's 'u' (disassemble) command takes a symbol,
+ * but does not display the whole function, only 10 lines per default.
+ * So, to ensure the agent's
+ * address is in that range, resolve the function symbol, cache it and
+ * request the disassembly for a range that contains the agent's address. */
+
 void CdbEngine::fetchDisassembler(DisassemblerAgent *agent)
 {
     QTC_ASSERT(m_accessible, return;)
+    const QString function = agent->location().functionName();
+    const QString module = agent->location().from();
+    const QVariant cookie = qVariantFromValue<DisassemblerAgent*>(agent);
+    if (function.isEmpty() || module.isEmpty()) {
+        // No function, display a default range.
+        postDisassemblerCommand(agent->address(), cookie);
+    } else {
+        postResolveSymbol(module, function, cookie);
+    }
+}
+
+void CdbEngine::postDisassemblerCommand(quint64 address, const QVariant &cookie)
+{
+    postDisassemblerCommand(address - DisassemblerRange / 2,
+                            address + DisassemblerRange / 2, cookie);
+}
+
+void CdbEngine::postDisassemblerCommand(quint64 address, quint64 endAddress,
+                                        const QVariant &cookie)
+{
     QByteArray cmd;
     ByteArrayInputStream str(cmd);
-    str <<  "u " << hex << hexPrefixOn << agent->address() << " L40";
-    const QVariant cookie = qVariantFromValue<DisassemblerAgent*>(agent);
+    str <<  "u " << hex <<hexPrefixOn << address << ' ' << endAddress;
     postBuiltinCommand(cmd, 0, &CdbEngine::handleDisassembler, 0, cookie);
 }
 
+void CdbEngine::postResolveSymbol(const QString &module, const QString &function,
+                                  const QVariant &cookie)
+{
+    const QString symbol = module + QLatin1Char('!') + function;
+    const QList<quint64> addresses = m_symbolAddressCache.values(symbol);
+    if (addresses.isEmpty()) {
+        QVariantList cookieList;
+        cookieList << QVariant(symbol) << cookie;
+        showMessage(QLatin1String("Resolving symbol: ") + symbol, LogMisc);
+        postBuiltinCommand(QByteArray("x ") + symbol.toLatin1(), 0,
+                           &CdbEngine::handleResolveSymbol, 0,
+                           QVariant(cookieList));
+    } else {
+        showMessage(QString::fromLatin1("Using cached addresses for %1.").
+                    arg(symbol), LogMisc);
+        handleResolveSymbol(addresses, cookie);
+    }
+}
+
+// Parse address from 'x' response.
+// "00000001`3f7ebe80 module!foo (void)"
+static inline quint64 resolvedAddress(const QByteArray &line)
+{
+    const int blankPos = line.indexOf(' ');
+    if (blankPos >= 0) {
+        QByteArray addressBA = line.left(blankPos);
+        if (addressBA.size() > 9 && addressBA.at(8) == '`')
+            addressBA.remove(8, 1);
+        bool ok;
+        const quint64 address = addressBA.toULongLong(&ok, 16);
+        if (ok)
+            return address;
+    }
+    return 0;
+}
+
+void CdbEngine::handleResolveSymbol(const CdbBuiltinCommandPtr &command)
+{
+    QTC_ASSERT(command->cookie.type() == QVariant::List, return; );
+    const QVariantList cookieList = command->cookie.toList();
+    const QString symbol = cookieList.front().toString();
+    // Insert all matches of (potentially) ambiguous symbols
+    if (const int size = command->reply.size()) {
+        for (int i = 0; i < size; i++) {
+            if (const quint64 address = resolvedAddress(command->reply.at(i))) {
+                m_symbolAddressCache.insert(symbol, address);
+                showMessage(QString::fromLatin1("Obtained 0x%1 for %2 (#%3)").
+                            arg(address, 0, 16).arg(symbol).arg(i + 1), LogMisc);
+            }
+        }
+    } else {
+        showMessage(QLatin1String("Symbol resolution failed: ")
+                    + QString::fromLatin1(command->joinedReply()),
+                    LogError);
+    }
+    handleResolveSymbol(m_symbolAddressCache.values(symbol), cookieList.back());
+}
+
+// Find the function address matching needle in a list of function
+// addresses obtained from the 'x' command. Check for the
+// mimimum POSITIVE offset (needle >= function address.)
+static inline quint64 findClosestFunctionAddress(const QList<quint64> &addresses,
+                                                 quint64 needle)
+{
+    const int size = addresses.size();
+    if (!size)
+        return 0;
+    if (size == 1)
+       return addresses.front();
+    int closestIndex = 0;
+    quint64 closestOffset = 0xFFFFFFFF;
+    for (int i = 0; i < size; i++) {
+        if (addresses.at(i) <= needle) {
+            const quint64 offset = needle - addresses.at(i);
+            if (offset < offset) {
+                closestOffset = offset;
+                closestIndex = i;
+            }
+        }
+    }
+    return addresses.at(closestIndex);
+}
+
+void CdbEngine::handleResolveSymbol(const QList<quint64> &addresses, const QVariant &cookie)
+{
+    // Disassembly mode: Determine suitable range containing the
+    // agent's address within the function to display.
+    if (qVariantCanConvert<DisassemblerAgent*>(cookie)) {
+        DisassemblerAgent *agent = cookie.value<DisassemblerAgent *>();
+        const quint64 agentAddress = agent->address();
+        const quint64 functionAddress
+                = findClosestFunctionAddress(addresses, agentAddress);
+        if (functionAddress > 0 && functionAddress <= agentAddress) {
+            quint64 endAddress = agentAddress + DisassemblerRange / 2;
+            if (const quint64 remainder = endAddress % 8)
+                endAddress += 8 - remainder;
+            postDisassemblerCommand(functionAddress, endAddress, cookie);
+        } else {
+            postDisassemblerCommand(agentAddress, cookie);
+        }
+        return;
+    }
+}
+
 // Parse: "00000000`77606060 cc              int     3"
 void CdbEngine::handleDisassembler(const CdbBuiltinCommandPtr &command)
 {
@@ -2512,6 +2646,7 @@ void CdbEngine::attemptBreakpointSynchronization()
         BreakpointParameters parameters = handler->breakpointData(id);
         BreakpointResponse response;
         response.fromParameters(parameters);
+        response.id = BreakpointResponseId(id.majorPart(), id.minorPart());
         // If we encountered that file and have a module for it: Add it.
         if (parameters.type == BreakpointByFileAndLine && parameters.module.isEmpty()) {
             const QHash<QString, QString>::const_iterator it = m_fileNameModuleHash.constFind(parameters.fileName);
@@ -2833,14 +2968,14 @@ void CdbEngine::handleBreakPoints(const GdbMi &value)
     BreakHandler *handler = breakHandler();
     foreach (const GdbMi &breakPointG, value.children()) {
         BreakpointResponse reportedResponse;
-        const BreakpointResponseId id = parseBreakPoint(breakPointG, &reportedResponse);
+        parseBreakPoint(breakPointG, &reportedResponse);
         if (debugBreakpoints)
-            qDebug("  Parsed %d: pending=%d %s\n", id.majorPart(),
+            qDebug("  Parsed %d: pending=%d %s\n", reportedResponse.id.majorPart(),
                 reportedResponse.pending,
                 qPrintable(reportedResponse.toString()));
-
-        if (!reportedResponse.pending) {
-            BreakpointModelId mid = handler->findBreakpointByResponseId(id);
+        if (reportedResponse.id.isValid() && !reportedResponse.pending) {
+            const BreakpointModelId mid = handler->findBreakpointByResponseId(reportedResponse.id);
+            QTC_ASSERT(mid.isValid(), continue; )
             const PendingBreakPointMap::iterator it = m_pendingBreakpointMap.find(mid);
             if (it != m_pendingBreakpointMap.end()) {
                 // Complete the response and set on handler.
@@ -2852,9 +2987,8 @@ void CdbEngine::handleBreakPoints(const GdbMi &value)
                 currentResponse.enabled = reportedResponse.enabled;
                 formatCdbBreakPointResponse(mid, currentResponse, str);
                 if (debugBreakpoints)
-                    qDebug("  Setting for %d: %s\n", id.majorPart(),
+                    qDebug("  Setting for %d: %s\n", currentResponse.id.majorPart(),
                         qPrintable(currentResponse.toString()));
-                BreakpointModelId mid = handler->findBreakpointByResponseId(id);
                 handler->setResponse(mid, currentResponse);
                 m_pendingBreakpointMap.erase(it);
             }
diff --git a/src/plugins/debugger/cdb/cdbengine.h b/src/plugins/debugger/cdb/cdbengine.h
index ef97f1fc729fb32fa76b74654470ec6124d5003e..9c21dd4b0a877edbd517019def5b3ecb073277bf 100644
--- a/src/plugins/debugger/cdb/cdbengine.h
+++ b/src/plugins/debugger/cdb/cdbengine.h
@@ -40,6 +40,7 @@
 #include <QtCore/QProcess>
 #include <QtCore/QVariantList>
 #include <QtCore/QMap>
+#include <QtCore/QMultiHash>
 #include <QtCore/QTime>
 #include <QtCore/QPair>
 #include <QtCore/QList>
@@ -211,8 +212,12 @@ private:
     void postWidgetAtCommand();
     void handleCustomSpecialStop(const QVariant &v);
     void postFetchMemory(const MemoryViewCookie &c);
+    inline void postDisassemblerCommand(quint64 address, const QVariant &cookie = QVariant());
+    void postDisassemblerCommand(quint64 address, quint64 endAddress,
+                                 const QVariant &cookie = QVariant());
+    void postResolveSymbol(const QString &module, const QString &function,
+                           const QVariant &cookie =  QVariant());
     void evaluateExpression(QByteArray exp, const QVariant &cookie = QVariant());
-
     // Builtin commands
     void dummyHandler(const CdbBuiltinCommandPtr &);
     void handleStackTrace(const CdbExtensionCommandPtr &);
@@ -220,7 +225,10 @@ private:
     void handleDisassembler(const CdbBuiltinCommandPtr &);
     void handleJumpToLineAddressResolution(const CdbBuiltinCommandPtr &);
     void handleExpression(const CdbExtensionCommandPtr &);
+    void handleResolveSymbol(const CdbBuiltinCommandPtr &command);
+    void handleResolveSymbol(const QList<quint64> &addresses, const QVariant &cookie);
     void jumpToAddress(quint64 address);
+
     // Extension commands
     void handleThreads(const CdbExtensionCommandPtr &);
     void handlePid(const CdbExtensionCommandPtr &reply);
@@ -270,6 +278,7 @@ private:
     int m_watchPointY;
     PendingBreakPointMap m_pendingBreakpointMap;
     QHash<QString, QString> m_fileNameModuleHash;
+    QMultiHash<QString, quint64> m_symbolAddressCache;
     bool m_ignoreCdbOutput;
     QVariantList m_customSpecialStopData;
     QList<SourcePathMapping> m_sourcePathMappings;
diff --git a/src/plugins/debugger/cdb/cdbparsehelpers.cpp b/src/plugins/debugger/cdb/cdbparsehelpers.cpp
index 92cc42090bb4f0f3bd8505878d7cd7cbe2a6ab87..bade3a09a9a601ff1227a6dc43686d921743c71d 100644
--- a/src/plugins/debugger/cdb/cdbparsehelpers.cpp
+++ b/src/plugins/debugger/cdb/cdbparsehelpers.cpp
@@ -298,21 +298,18 @@ static inline bool gdbmiChildToBool(const GdbMi &parent, const char *childName,
 // Parse extension command listing breakpoints.
 // Note that not all fields are returned, since file, line, function are encoded
 // in the expression (that is in addition deleted on resolving for a bp-type breakpoint).
-BreakpointResponseId parseBreakPoint(const GdbMi &gdbmi, BreakpointResponse *r,
-                             QString *expression /*  = 0 */)
+void parseBreakPoint(const GdbMi &gdbmi, BreakpointResponse *r,
+                     QString *expression /*  = 0 */)
 {
-    BreakpointResponseId id = BreakpointResponseId(-1);
-    int majorPart = 0;
-    gdbmiChildToInt(gdbmi, "number", &majorPart);
     gdbmiChildToBool(gdbmi, "enabled", &(r->enabled));
     gdbmiChildToBool(gdbmi, "deferred", &(r->pending));
-    r->id = BreakpointResponseId(majorPart);
+    r->id = BreakpointResponseId();
     const GdbMi idG = gdbmi.findChild("id");
     if (idG.isValid()) { // Might not be valid if there is not id
         bool ok;
-        const BreakpointResponseId cid(idG.data().toInt(&ok));
+        const int id = idG.data().toInt(&ok);
         if (ok)
-            id = cid;
+            r->id = BreakpointResponseId(id);
     }
     const GdbMi moduleG = gdbmi.findChild("module");
     if (moduleG.isValid())
@@ -328,7 +325,6 @@ BreakpointResponseId parseBreakPoint(const GdbMi &gdbmi, BreakpointResponse *r,
     if (gdbmiChildToInt(gdbmi, "passcount", &(r->ignoreCount)))
         r->ignoreCount--;
     gdbmiChildToInt(gdbmi, "thread", &(r->threadSpec));
-    return id;
 }
 
 QByteArray cdbWriteMemoryCommand(quint64 addr, const QByteArray &data)
diff --git a/src/plugins/debugger/cdb/cdbparsehelpers.h b/src/plugins/debugger/cdb/cdbparsehelpers.h
index 66f453b1d669391114fb4db5851939c924107da3..15a281a87892a9cdfb49b20cc20181698f6d5e36 100644
--- a/src/plugins/debugger/cdb/cdbparsehelpers.h
+++ b/src/plugins/debugger/cdb/cdbparsehelpers.h
@@ -69,7 +69,7 @@ QByteArray cdbAddBreakpointCommand(const BreakpointParameters &d,
 // Parse extension command listing breakpoints.
 // Note that not all fields are returned, since file, line, function are encoded
 // in the expression (that is in addition deleted on resolving for a bp-type breakpoint).
-BreakpointResponseId parseBreakPoint(const GdbMi &gdbmi, BreakpointResponse *r, QString *expression = 0);
+void parseBreakPoint(const GdbMi &gdbmi, BreakpointResponse *r, QString *expression = 0);
 
 // Convert a CDB integer value: '00000000`0012a290' -> '12a290', '0n10' ->'10'
 QByteArray fixCdbIntegerValue(QByteArray t, bool stripLeadingZeros = false, int *basePtr = 0);
diff --git a/src/plugins/debugger/debuggerconstants.h b/src/plugins/debugger/debuggerconstants.h
index 7ff518a5b37b6454eb8162dc1740c41eca4d4666..14e71f2d2ee817d939258fa1c43add5a54576ce9 100644
--- a/src/plugins/debugger/debuggerconstants.h
+++ b/src/plugins/debugger/debuggerconstants.h
@@ -39,7 +39,7 @@ namespace Debugger {
 namespace Constants {
 
 // Debug mode
-const char * const MODE_DEBUG           = "Debugger.Mode.Debug";
+const char * const MODE_DEBUG           = "Mode.Debug";
 
 // Contexts
 const char * const C_DEBUGMODE          = "Debugger.DebugMode";
@@ -48,7 +48,7 @@ const char * const C_QMLDEBUGGER        = "Qml/JavaScript Debugger";
 
 // Project Explorer run mode (RUN/DEBUG)
 const char * const DEBUGMODE            = "Debugger.DebugMode";
-const char * const DEBUGMODE2           = "Debugger.DebugMode2";
+const char * const DEBUGMODE2           = "Debugger.DebugMode2"; // Breaks on main.
 
 // Common actions (accessed by QML inspector)
 const char * const INTERRUPT            = "Debugger.Interrupt";
diff --git a/src/plugins/debugger/debuggerengine.cpp b/src/plugins/debugger/debuggerengine.cpp
index a46841c2f1249deed3820baf3eb56dbc163c2dd1..904ced335532b4d6afeba28b56affc44f0a96252 100644
--- a/src/plugins/debugger/debuggerengine.cpp
+++ b/src/plugins/debugger/debuggerengine.cpp
@@ -97,6 +97,7 @@ Internal::Location::Location(const StackFrame &frame, bool marker)
     m_functionName = frame.function;
     m_hasDebugInfo = frame.isUsable();
     m_address = frame.address;
+    m_from = frame.from;
 }
 
 QDebug operator<<(QDebug d, DebuggerState state)
@@ -1508,7 +1509,7 @@ QString DebuggerEngine::msgWatchpointByExpressionTriggered(BreakpointModelId id,
     return id
         ? tr("Data breakpoint %1 (%2) at %3 in thread %4 triggered.")
             .arg(id.toString()).arg(number).arg(expr).arg(threadId)
-        : tr("Internal data breakpoint %1 at %2 in thread %4 triggered.")
+        : tr("Internal data breakpoint %1 at %2 in thread %3 triggered.")
             .arg(number).arg(expr).arg(threadId);
 }
 
diff --git a/src/plugins/debugger/debuggerengine.h b/src/plugins/debugger/debuggerengine.h
index 8fc593c8e93e3c5dd4bfc15fe4d6636bf6cce6cc..7fabfd253d91bbdb44df4cc0a8055773359ab4d9 100644
--- a/src/plugins/debugger/debuggerengine.h
+++ b/src/plugins/debugger/debuggerengine.h
@@ -100,6 +100,7 @@ public:
     Location(const StackFrame &frame, bool marker = true);
     QString fileName() const { return m_fileName; }
     QString functionName() const { return m_functionName; }
+    QString from() const { return m_from; }
     int lineNumber() const { return m_lineNumber; }
     void setNeedsRaise(bool on) { m_needsRaise = on; }
     void setNeedsMarker(bool on) { m_needsMarker = on; }
@@ -118,6 +119,7 @@ private:
     int m_lineNumber;
     QString m_fileName;
     QString m_functionName;
+    QString m_from;
     quint64 m_address;
 };
 
diff --git a/src/plugins/debugger/debuggersourcepathmappingwidget.cpp b/src/plugins/debugger/debuggersourcepathmappingwidget.cpp
index c26c690d342af2a54d4f824abf73f00320a8a5a4..645d4baeefed072c3bbcccb5d5360243d3941e39 100644
--- a/src/plugins/debugger/debuggersourcepathmappingwidget.cpp
+++ b/src/plugins/debugger/debuggersourcepathmappingwidget.cpp
@@ -361,7 +361,7 @@ void DebuggerSourcePathMappingWidget::slotAddQt()
     if (qtSourcesPath.isEmpty())
         return;
     const size_t buildPathCount = sizeof(qtBuildPaths)/sizeof(qtBuildPaths[0]);
-    for (size_t i = 0; i < buildPathCount; ++i)
+    for (size_t i = 0; i != buildPathCount; ++i) // use != to avoid 0<0 which triggers warning on Mac
         m_model->addMapping(QString::fromLatin1(qtBuildPaths[i]), qtSourcesPath);
     resizeColumns();
     setCurrentRow(m_model->rowCount() - 1);
@@ -403,7 +403,7 @@ DebuggerSourcePathMappingWidget::SourcePathMap
     if (qtInstallPath.isEmpty() || buildPathCount == 0)
         return rc;
 
-    for (size_t i = 0; i < buildPathCount; i++) {
+    for (size_t i = 0; i != buildPathCount; ++i) { // use != to avoid 0<0 which triggers warning on Mac
         const QString buildPath = QString::fromLatin1(qtBuildPaths[i]);
         if (!rc.contains(buildPath)) // Do not overwrite user settings.
             rc.insert(buildPath, qtInstallPath);
diff --git a/src/plugins/debugger/disassembleragent.cpp b/src/plugins/debugger/disassembleragent.cpp
index ca63193ee70dc0d8838860fc80b13758d8120d66..80d58ad7f2d9bfeb6d4abc5b208f614bc71a53e0 100644
--- a/src/plugins/debugger/disassembleragent.cpp
+++ b/src/plugins/debugger/disassembleragent.cpp
@@ -56,6 +56,8 @@
 #include <QtGui/QTextBlock>
 #include <QtGui/QIcon>
 #include <QtCore/QPointer>
+#include <QtCore/QPair>
+#include <QtCore/QDir>
 
 using namespace Core;
 using namespace TextEditor;
@@ -69,6 +71,27 @@ namespace Internal {
 //
 ///////////////////////////////////////////////////////////////////////
 
+class FrameKey
+{
+public:
+    FrameKey() : startAddress(0), endAddress(0) {}
+    inline bool matches(const Location &loc) const;
+
+    QString functionName;
+    QString fileName;
+    quint64 startAddress;
+    quint64 endAddress;
+};
+
+bool FrameKey::matches(const Location &loc) const
+{
+    return loc.address() >= startAddress
+            && loc.address() < endAddress
+            && loc.fileName() == fileName && loc.functionName() == functionName;
+}
+
+typedef QPair<FrameKey, DisassemblerLines> CacheEntry;
+
 class DisassemblerAgentPrivate
 {
 public:
@@ -83,8 +106,9 @@ public:
     QPointer<DebuggerEngine> engine;
     ITextMark *locationMark;
     QList<ITextMark *> breakpointMarks;
-    
-    QHash<QString, DisassemblerLines> cache;
+
+    QList<CacheEntry> cache;
+
     QString mimeType;
     bool m_resetLocationScheduled;
 };
@@ -130,6 +154,14 @@ DisassemblerAgent::~DisassemblerAgent()
     d = 0;
 }
 
+int DisassemblerAgent::indexOf(const Location &loc) const
+{
+    for (int i = 0; i < d->cache.size(); i++)
+        if (d->cache.at(i).first.matches(loc))
+            return i;
+    return -1;
+}
+
 void DisassemblerAgent::cleanup()
 {
     d->cache.clear();
@@ -150,12 +182,6 @@ void DisassemblerAgent::resetLocation()
     }
 }
 
-static QString frameKey(const Location &loc)
-{
-    return _("%1:%2:%3").arg(loc.functionName())
-        .arg(loc.fileName()).arg(loc.address());
-}
-
 const Location &DisassemblerAgent::location() const
 {
     return d->location;
@@ -172,20 +198,28 @@ bool DisassemblerAgent::isMixed() const
 void DisassemblerAgent::setLocation(const Location &loc)
 {
     d->location = loc;
-    if (isMixed()) {
-        QHash<QString, DisassemblerLines>::ConstIterator it =
-            d->cache.find(frameKey(loc));
-        if (it != d->cache.end()) {
-            QString msg = _("Use cache disassembler for '%1' in '%2'")
-                .arg(loc.functionName()).arg(loc.fileName());
-            d->engine->showMessage(msg);
-            setContents(*it);
-            updateBreakpointMarkers();
-            updateLocationMarker();
-            return;
+    int index = indexOf(loc);
+    if (index != -1) {
+        // Refresh when not displaying a function and there is not sufficient
+        // context left past the address.
+        if (!isMixed() && d->cache.at(index).first.endAddress - loc.address() < 24) {
+            index = -1;
+            d->cache.removeAt(index);
         }
     }
-    d->engine->fetchDisassembler(this);
+    if (index != -1) {
+        const FrameKey &key = d->cache.at(index).first;
+        const QString msg =
+            _("Using cached disassembly for 0x%1 (0x%2-0x%3) in '%4'/ '%5'")
+                .arg(loc.address(), 0, 16)
+                .arg(key.startAddress, 0, 16).arg(key.endAddress, 0, 16)
+                .arg(loc.functionName(), QDir::toNativeSeparators(loc.fileName()));
+        d->engine->showMessage(msg);
+        setContentsToEditor(d->cache.at(index).second);
+        d->m_resetLocationScheduled = false; // In case reset from previous run still pending.
+    } else {
+        d->engine->fetchDisassembler(this);
+    }
 }
 
 void DisassemblerAgentPrivate::configureMimeType()
@@ -223,6 +257,24 @@ void DisassemblerAgent::setMimeType(const QString &mt)
 }
 
 void DisassemblerAgent::setContents(const DisassemblerLines &contents)
+{
+    QTC_ASSERT(d, return);
+    if (contents.size()) {
+        const quint64 startAddress = contents.startAddress();
+        const quint64 endAddress = contents.endAddress();
+        if (startAddress) {
+            FrameKey key;
+            key.fileName = d->location.fileName();
+            key.functionName = d->location.functionName();
+            key.startAddress = startAddress;
+            key.endAddress = endAddress;
+            d->cache.append(CacheEntry(key, contents));
+        }
+    }
+    setContentsToEditor(contents);
+}
+
+void DisassemblerAgent::setContentsToEditor(const DisassemblerLines &contents)
 {
     QTC_ASSERT(d, return);
     using namespace Core;
@@ -260,7 +312,6 @@ void DisassemblerAgent::setContents(const DisassemblerLines &contents)
     plainTextEdit->setPlainText(str);
     plainTextEdit->setReadOnly(true);
 
-    d->cache.insert(frameKey(d->location), contents);
     d->editor->setDisplayName(_("Disassembler (%1)")
         .arg(d->location.functionName()));
 
@@ -272,9 +323,10 @@ void DisassemblerAgent::updateLocationMarker()
 {
     QTC_ASSERT(d->editor, return);
 
-    const DisassemblerLines &contents = d->cache.value(frameKey(d->location));
+    const int index = indexOf(d->location);
+    const DisassemblerLines contents = index != -1 ?
+                d->cache.at(index).second : DisassemblerLines();
     int lineNumber = contents.lineForAddress(d->location.address());
-
     if (d->location.needsMarker()) {
         d->editor->markableInterface()->removeMark(d->locationMark);
         if (lineNumber)
@@ -300,8 +352,9 @@ void DisassemblerAgent::updateBreakpointMarkers()
     if (ids.isEmpty())
         return;
 
-    const DisassemblerLines &contents = d->cache.value(frameKey(d->location));
-
+    const int index = indexOf(d->location);
+    const DisassemblerLines contents = index != -1 ?
+                                       d->cache.at(index).second : DisassemblerLines();
     foreach (TextEditor::ITextMark *marker, d->breakpointMarks)
         d->editor->markableInterface()->removeMark(marker);
     d->breakpointMarks.clear();
diff --git a/src/plugins/debugger/disassembleragent.h b/src/plugins/debugger/disassembleragent.h
index 71665e4221472dffca566bae21345dbaf559aa6c..fea7c848828114dfb525408eab7da805305f40d7 100644
--- a/src/plugins/debugger/disassembleragent.h
+++ b/src/plugins/debugger/disassembleragent.h
@@ -72,6 +72,9 @@ public:
     bool isMixed() const;
 
 private:
+    void setContentsToEditor(const DisassemblerLines &contents);
+    int indexOf(const Location &loc) const;
+
     DisassemblerAgentPrivate *d;
 };
 
diff --git a/src/plugins/debugger/disassemblerlines.cpp b/src/plugins/debugger/disassemblerlines.cpp
index 2e2bad655e7a899505c0d66ef45311784f81a076..4beee54169e0ad59490a1f1d16bc008acf82e17f 100644
--- a/src/plugins/debugger/disassemblerlines.cpp
+++ b/src/plugins/debugger/disassemblerlines.cpp
@@ -80,6 +80,22 @@ quint64 DisassemblerLine::addressFromDisassemblyLine(const QString &line)
     return l.address;
 }
 
+quint64 DisassemblerLines::startAddress() const
+{
+    for (int i = 0; i < m_data.size(); ++i)
+        if (m_data.at(i).address)
+            return m_data.at(i).address;
+    return 0;
+}
+
+quint64 DisassemblerLines::endAddress() const
+{
+    for (int i = m_data.size()- 1; i >= 0; --i)
+        if (m_data.at(i).address)
+            return m_data.at(i).address;
+    return 0;
+}
+
 int DisassemblerLines::lineForAddress(quint64 address) const
 {
     return m_rowCache.value(address);
diff --git a/src/plugins/debugger/disassemblerlines.h b/src/plugins/debugger/disassemblerlines.h
index ae0160e63817da23429407c68fd06bd9c689c0ed..59cf0a1255de4d4a4583791ddfee6e96deea51c2 100644
--- a/src/plugins/debugger/disassemblerlines.h
+++ b/src/plugins/debugger/disassemblerlines.h
@@ -83,6 +83,9 @@ public:
     const DisassemblerLine &at(int i) const { return m_data.at(i); }
     int lineForAddress(quint64 address) const;
 
+    quint64 startAddress() const;
+    quint64 endAddress() const;
+
 private:
     QString m_lastFunction;
     QVector<DisassemblerLine> m_data;
diff --git a/src/plugins/debugger/gdb/abstractplaingdbadapter.cpp b/src/plugins/debugger/gdb/abstractplaingdbadapter.cpp
index f492bcd378402ee5367d7bea95ca7303e31f12a3..6fe247725342b5358c56d4bf78beb1f4f656fee5 100644
--- a/src/plugins/debugger/gdb/abstractplaingdbadapter.cpp
+++ b/src/plugins/debugger/gdb/abstractplaingdbadapter.cpp
@@ -120,7 +120,7 @@ void AbstractPlainGdbAdapter::handleInfoTarget(const GdbResponse &response)
         // [some leading stdout here]
         // >&"        Entry point: 0x80831f0  0x08048134 - 0x08048147 is .interp\n"
         // [some trailing stdout here]
-        QString msg = _(response.data.findChild("consolestreamoutput").data());
+        QString msg = _(response.consoleStreamOutput);
         QRegExp needle(_("\\bEntry point: 0x([0-9a-f]+)\\b"));
         if (needle.indexIn(msg) != -1) {
             m_engine->m_entryPoint =
diff --git a/src/plugins/debugger/gdb/classicgdbengine.cpp b/src/plugins/debugger/gdb/classicgdbengine.cpp
index 8912bb884828c21d68b27daebf75ed9fbe024630..51ee1b6be124cbef477f58ef53748e51b1d91eb7 100644
--- a/src/plugins/debugger/gdb/classicgdbengine.cpp
+++ b/src/plugins/debugger/gdb/classicgdbengine.cpp
@@ -676,8 +676,7 @@ static bool isAccessSpecifier(const QByteArray &ba)
 // reads a MI-encoded item frome the consolestream
 static bool parseConsoleStream(const GdbResponse &response, GdbMi *contents)
 {
-    GdbMi output = response.data.findChild("consolestreamoutput");
-    QByteArray out = output.data();
+    QByteArray out = response.consoleStreamOutput;
 
     int markerPos = out.indexOf('"') + 1; // position of 'success marker'
     if (markerPos == 0 || out.at(markerPos) == 'f') {  // 't' or 'f'
@@ -1016,7 +1015,7 @@ void GdbEngine::handleDebuggingHelperValue3Classic(const GdbResponse &response)
 {
     if (response.resultClass == GdbResultDone) {
         WatchData data = response.cookie.value<WatchData>();
-        QByteArray out = response.data.findChild("consolestreamoutput").data();
+        QByteArray out = response.consoleStreamOutput;
         while (out.endsWith(' ') || out.endsWith('\n'))
             out.chop(1);
         QList<QByteArray> list = out.split(' ');
diff --git a/src/plugins/debugger/gdb/coregdbadapter.cpp b/src/plugins/debugger/gdb/coregdbadapter.cpp
index 7527795c99e53ca6f2a6bfbc72a8e9feea2ea210..6b80ce102c9cec05db03a3ad87456250e422ab59 100644
--- a/src/plugins/debugger/gdb/coregdbadapter.cpp
+++ b/src/plugins/debugger/gdb/coregdbadapter.cpp
@@ -124,16 +124,16 @@ void CoreGdbAdapter::handleTemporaryTargetCore(const GdbResponse &response)
         return;
     }
 
-    GdbMi console = response.data.findChild("consolestreamoutput");
-    int pos1 = console.data().indexOf('`');
-    int pos2 = console.data().indexOf('\'');
+    QByteArray console = response.consoleStreamOutput;
+    int pos1 = console.indexOf('`');
+    int pos2 = console.indexOf('\'');
     if (pos1 == -1 || pos2 == -1) {
         showMessage(tr("Attach to core failed."), StatusBar);
         m_engine->notifyEngineSetupFailed();
         return;
     }
 
-    m_executable = console.data().mid(pos1 + 1, pos2 - pos1 - 1);
+    m_executable = console.mid(pos1 + 1, pos2 - pos1 - 1);
     // Strip off command line arguments. FIXME: make robust.
     int idx = m_executable.indexOf(_c(' '));
     if (idx >= 0)
diff --git a/src/plugins/debugger/gdb/gdbengine.cpp b/src/plugins/debugger/gdb/gdbengine.cpp
index 2227b12ae304b847e617086df45d44481efa1a14..f956c22cf87637dee74a0ac17c29b23c3fc94f9a 100644
--- a/src/plugins/debugger/gdb/gdbengine.cpp
+++ b/src/plugins/debugger/gdb/gdbengine.cpp
@@ -171,8 +171,7 @@ static int &currentToken()
 
 static QByteArray parsePlainConsoleStream(const GdbResponse &response)
 {
-    GdbMi output = response.data.findChild("consolestreamoutput");
-    QByteArray out = output.data();
+    QByteArray out = response.consoleStreamOutput;
     // FIXME: proper decoding needed
     if (out.endsWith("\\n"))
         out.chop(2);
@@ -653,10 +652,8 @@ void GdbEngine::handleResponse(const QByteArray &buff)
 
             //qDebug() << "\nLOG STREAM:" + m_pendingLogStreamOutput;
             //qDebug() << "\nCONSOLE STREAM:" + m_pendingConsoleStreamOutput;
-            response.data.setStreamOutput("logstreamoutput",
-                m_pendingLogStreamOutput);
-            response.data.setStreamOutput("consolestreamoutput",
-                m_pendingConsoleStreamOutput);
+            response.logStreamOutput = m_pendingLogStreamOutput;
+            response.consoleStreamOutput =  m_pendingConsoleStreamOutput;
             m_pendingLogStreamOutput.clear();
             m_pendingConsoleStreamOutput.clear();
 
@@ -1070,8 +1067,8 @@ void GdbEngine::handleResultRecord(GdbResponse *response)
         // Happens with some incarnations of gdb 6.8 for "jump to line"
         //  (response->resultClass == GdbResultDone && cmd.command.startsWith("jump"))
         //  (response->resultClass == GdbResultDone && cmd.command.startsWith("detach"))
-        // Happens when stepping finishes very quickly and issues *stopped/^done
-        // instead of ^running/*stopped
+        // Happens when stepping finishes very quickly and issues *stopped and ^done
+        // instead of ^running and *stopped
         //  (response->resultClass == GdbResultDone && (cmd.flags & RunRequest));
 
     if (!isExpectedResult) {
@@ -1688,7 +1685,7 @@ void GdbEngine::handleInfoProc(const GdbResponse &response)
     if (response.resultClass == GdbResultDone) {
         static QRegExp re(_("\\bprocess ([0-9]+)\n"));
         QTC_ASSERT(re.isValid(), return);
-        if (re.indexIn(_(response.data.findChild("consolestreamoutput").data())) != -1)
+        if (re.indexIn(_(response.consoleStreamOutput)) != -1)
             maybeHandleInferiorPidChanged(re.cap(1));
     }
 }
@@ -1700,8 +1697,7 @@ void GdbEngine::handleShowVersion(const GdbResponse &response)
         m_gdbVersion = 100;
         m_gdbBuildVersion = -1;
         m_isMacGdb = false;
-        GdbMi version = response.data.findChild("consolestreamoutput");
-        QString msg = QString::fromLocal8Bit(version.data());
+        QString msg = QString::fromLocal8Bit(response.consoleStreamOutput);
         extractGdbVersion(msg,
               &m_gdbVersion, &m_gdbBuildVersion, &m_isMacGdb);
         if (m_gdbVersion > 60500 && m_gdbVersion < 200000)
@@ -1726,9 +1722,8 @@ void GdbEngine::handleHasPython(const GdbResponse &response)
 {
     if (response.resultClass == GdbResultDone) {
         m_hasPython = true;
-        GdbMi contents = response.data.findChild("consolestreamoutput");
         GdbMi data;
-        data.fromStringMultiple(contents.data());
+        data.fromStringMultiple(response.consoleStreamOutput);
         const GdbMi dumpers = data.findChild("dumpers");
         foreach (const GdbMi &dumper, dumpers.children()) {
             QByteArray type = dumper.findChild("type").data();
@@ -2386,7 +2381,7 @@ void GdbEngine::updateResponse(BreakpointResponse &response, const GdbMi &bkpt)
         response.fileName = name;
 
     if (response.fileName.isEmpty())
-        response.setLocation(originalLocation);
+        response.updateLocation(originalLocation);
 }
 
 QString GdbEngine::breakLocation(const QString &file) const
@@ -2442,7 +2437,7 @@ void GdbEngine::handleWatchInsert(const GdbResponse &response)
         BreakHandler *handler = breakHandler();
         BreakpointResponse br = handler->response(id);
         // "Hardware watchpoint 2: *0xbfffed40\n"
-        QByteArray ba = response.data.findChild("consolestreamoutput").data();
+        QByteArray ba = response.consoleStreamOutput;
         GdbMi wpt = response.data.findChild("wpt");
         if (wpt.isValid()) {
             // Mac yields:
@@ -2517,6 +2512,7 @@ void GdbEngine::handleBreakInsert1(const GdbResponse &response)
             foreach (const GdbMi bkpt, response.data.children()) {
                 nr = bkpt.findChild("number").data();
                 rid = BreakpointResponseId(nr);
+                QTC_ASSERT(rid.isValid(), continue);
                 if (nr.contains('.')) {
                     // A sub-breakpoint.
                     BreakpointResponse sub;
@@ -2664,8 +2660,7 @@ void GdbEngine::handleBreakListMultiple(const GdbResponse &response)
 {
     QTC_ASSERT(response.resultClass == GdbResultDone, /**/)
     const BreakpointModelId id = response.cookie.value<BreakpointModelId>();
-    const QString str = QString::fromLocal8Bit(
-        response.data.findChild("consolestreamoutput").data());
+    const QString str = QString::fromLocal8Bit(response.consoleStreamOutput);
     extractDataFromInfoBreak(str, id);
 }
 
@@ -2720,7 +2715,7 @@ void GdbEngine::handleBreakIgnore(const GdbResponse &response)
     //
     // gdb 6.3 does not produce any console output
     QTC_ASSERT(response.resultClass == GdbResultDone, /**/)
-    QString msg = _(response.data.findChild("consolestreamoutput").data());
+    //QString msg = _(response.consoleStreamOutput);
     BreakpointModelId id = response.cookie.value<BreakpointModelId>();
     BreakHandler *handler = breakHandler();
     BreakpointResponse br = handler->response(id);
@@ -2847,8 +2842,8 @@ void GdbEngine::extractDataFromInfoBreak(const QString &output, BreakpointModelI
                         BreakpointResponse sub;
                         sub.address = address;
                         sub.functionName = QString::fromUtf8(function);
-                        sub.setLocation(location);
-                        sub.id = subId;
+                        sub.updateLocation(location);
+                        sub.id = BreakpointResponseId(majorPart, minorPart);
                         sub.type = response.type;
                         sub.address = address;
                         handler->insertSubBreakpoint(id, sub);
@@ -2863,7 +2858,20 @@ void GdbEngine::extractDataFromInfoBreak(const QString &output, BreakpointModelI
                 }
             }
         }
-        // Commit main data.
+        if (minorPart) {
+            // Commit last chunk.
+            BreakpointResponse sub;
+            sub.address = address;
+            sub.functionName = QString::fromUtf8(function);
+            sub.updateLocation(location);
+            sub.id = BreakpointResponseId(majorPart, minorPart);
+            sub.type = response.type;
+            sub.address = address;
+            handler->insertSubBreakpoint(id, sub);
+            location.clear();
+            function.clear();
+            address = 0;
+        }
     } else {
         qDebug() << "COULD NOT MATCH" << output;
         response.id = BreakpointResponseId(); // Unavailable.
@@ -2877,7 +2885,7 @@ void GdbEngine::handleInfoLine(const GdbResponse &response)
         // Old-style output: "Line 1102 of \"simple/app.cpp\" starts
         // at address 0x80526aa <_Z10...+131> and ends at 0x80526b5
         // <_Z10testQStackv+142>.\n"
-        QByteArray ba = response.data.findChild("consolestreamoutput").data();
+        QByteArray ba = response.consoleStreamOutput;
         const BreakpointModelId id = response.cookie.value<BreakpointModelId>();
         const int pos = ba.indexOf(' ', 5);
         if (ba.startsWith("Line ") && pos != -1) {
@@ -3201,8 +3209,7 @@ void GdbEngine::handleModulesList(const GdbResponse &response)
     if (response.resultClass == GdbResultDone) {
         // That's console-based output, likely Linux or Windows,
         // but we can avoid the target dependency here.
-        QString data = QString::fromLocal8Bit(
-            response.data.findChild("consolestreamoutput").data());
+        QString data = QString::fromLocal8Bit(response.consoleStreamOutput);
         QTextStream ts(&data, QIODevice::ReadOnly);
         while (!ts.atEnd()) {
             QString line = ts.readLine();
@@ -3378,7 +3385,7 @@ void GdbEngine::handleStackListFrames(const GdbResponse &response)
     if (!handleIt) {
         // That always happens on symbian gdb with
         // ^error,data={msg="Previous frame identical to this frame (corrupt stack?)"
-        // logstreamoutput="Previous frame identical to this frame (corrupt stack?)\n"
+        // logStreamOutput: "Previous frame identical to this frame (corrupt stack?)\n"
         //qDebug() << "LISTING STACK FAILED: " << response.toString();
         reloadRegisters();
         return;
@@ -3504,9 +3511,8 @@ void GdbEngine::handleThreadListIds(const GdbResponse &response)
 void GdbEngine::handleThreadNames(const GdbResponse &response)
 {
     if (response.resultClass == GdbResultDone) {
-        GdbMi contents = response.data.findChild("consolestreamoutput");
         GdbMi names;
-        names.fromString(contents.data());
+        names.fromString(response.consoleStreamOutput);
 
         Threads threads = threadsHandler()->threads();
 
@@ -4406,28 +4412,26 @@ DisassemblerLines GdbEngine::parseMiDisassembler(const GdbMi &lines)
     return result;
 }
 
-DisassemblerLines GdbEngine::parseCliDisassembler(const GdbMi &output)
+DisassemblerLines GdbEngine::parseCliDisassembler(const QByteArray &output)
 {
-    const QString someSpace = _("        ");
     // First line is something like
     // "Dump of assembler code from 0xb7ff598f to 0xb7ff5a07:"
     DisassemblerLines dlines;
-    foreach (const QByteArray &line, output.data().split('\n'))
+    foreach (const QByteArray &line, output.split('\n'))
         dlines.appendUnparsed(_(line));
     return dlines;
 }
 
-DisassemblerLines GdbEngine::parseDisassembler(const GdbMi &data)
+DisassemblerLines GdbEngine::parseDisassembler(const GdbResponse &response)
 {
     // Apple's gdb produces MI output even for CLI commands.
     // FIXME: Check whether wrapping this into -interpreter-exec console
     // (i.e. usgind the 'ConsoleCommand' GdbCommandFlag makes a
     // difference.
-    GdbMi lines = data.findChild("asm_insns");
+    GdbMi lines = response.data.findChild("asm_insns");
     if (lines.isValid())
         return parseMiDisassembler(lines);
-    GdbMi output = data.findChild("consolestreamoutput");
-    return parseCliDisassembler(output);
+    return parseCliDisassembler(response.consoleStreamOutput);
 }
 
 void GdbEngine::handleDisassemblerCheck(const GdbResponse &response)
@@ -4441,7 +4445,7 @@ void GdbEngine::handleFetchDisassemblerByCliPointMixed(const GdbResponse &respon
     QTC_ASSERT(ac.agent, return);
 
     if (response.resultClass == GdbResultDone) {
-        DisassemblerLines dlines = parseDisassembler(response.data);
+        DisassemblerLines dlines = parseDisassembler(response);
         if (dlines.coversAddress(ac.agent->address())) {
             ac.agent->setContents(dlines);
             return;
@@ -4456,7 +4460,7 @@ void GdbEngine::handleFetchDisassemblerByCliPointPlain(const GdbResponse &respon
     QTC_ASSERT(ac.agent, return);
 
     if (response.resultClass == GdbResultDone) {
-        DisassemblerLines dlines = parseDisassembler(response.data);
+        DisassemblerLines dlines = parseDisassembler(response);
         if (dlines.coversAddress(ac.agent->address())) {
             ac.agent->setContents(dlines);
             return;
@@ -4474,7 +4478,7 @@ void GdbEngine::handleFetchDisassemblerByCliRangeMixed(const GdbResponse &respon
     QTC_ASSERT(ac.agent, return);
 
     if (response.resultClass == GdbResultDone) {
-        DisassemblerLines dlines = parseDisassembler(response.data);
+        DisassemblerLines dlines = parseDisassembler(response);
         if (dlines.coversAddress(ac.agent->address())) {
             ac.agent->setContents(dlines);
             return;
@@ -4489,7 +4493,7 @@ void GdbEngine::handleFetchDisassemblerByCliRangePlain(const GdbResponse &respon
     QTC_ASSERT(ac.agent, return);
 
     if (response.resultClass == GdbResultDone) {
-        DisassemblerLines dlines = parseDisassembler(response.data);
+        DisassemblerLines dlines = parseDisassembler(response);
         if (dlines.size()) {
             ac.agent->setContents(dlines);
             return;
@@ -4992,8 +4996,7 @@ void GdbEngine::handleCreateFullBacktrace(const GdbResponse &response)
 {
     if (response.resultClass == GdbResultDone) {
         debuggerCore()->openTextEditor(_("Backtrace $"),
-            _(response.data.findChild("consolestreamoutput").data()
-              + response.data.findChild("logstreamoutput").data()));
+            _(response.consoleStreamOutput + response.logStreamOutput));
     }
 }
 
@@ -5040,8 +5043,8 @@ void GdbEngine::handleSetQmlStepBreakpoint(const GdbResponse &response)
 {
     //QTC_ASSERT(state() == EngineRunRequested, qDebug() << state());
     if (response.resultClass == GdbResultDone) {
-        // "{logstreamoutput="tbreak 'myns::QScript::FunctionWrapper::proxyCall'\n"
-        //,consolestreamoutput="Temporary breakpoint 1 at 0xf166e7:
+        // logStreamOutput: "tbreak 'myns::QScript::FunctionWrapper::proxyCall'\n"
+        // consoleStreamOutput: "Temporary breakpoint 1 at 0xf166e7:
         // file bridge/qscriptfunction.cpp, line 75.\n"}
         QByteArray ba = parsePlainConsoleStream(response);
         const int pos2 = ba.indexOf(" at 0x");
diff --git a/src/plugins/debugger/gdb/gdbengine.h b/src/plugins/debugger/gdb/gdbengine.h
index 3c610ca0347848d9959b401664ea7e93355daaba..99d869e38849ad1100d0fdaf1ac5ed37eaf31d0a 100644
--- a/src/plugins/debugger/gdb/gdbengine.h
+++ b/src/plugins/debugger/gdb/gdbengine.h
@@ -568,9 +568,9 @@ private: ////////// View & Data Stuff //////////
     //void handleFetchDisassemblerByMiRangePlain(const GdbResponse &response);
     void handleDisassemblerCheck(const GdbResponse &response);
     void handleBreakOnQFatal(const GdbResponse &response);
-    DisassemblerLines parseDisassembler(const GdbMi &data);
-    DisassemblerLines parseCliDisassembler(const GdbMi &lines);
-    DisassemblerLines parseMiDisassembler(const GdbMi &lines);
+    DisassemblerLines parseDisassembler(const GdbResponse &response);
+    DisassemblerLines parseCliDisassembler(const QByteArray &response);
+    DisassemblerLines parseMiDisassembler(const GdbMi &response);
 
     bool m_disassembleUsesComma;
 
diff --git a/src/plugins/debugger/gdb/gdbmi.cpp b/src/plugins/debugger/gdb/gdbmi.cpp
index 17abe886373883d2dd7182c330b8ff9dd70b079e..080916037a82326043949c592801db6b795fdbea 100644
--- a/src/plugins/debugger/gdb/gdbmi.cpp
+++ b/src/plugins/debugger/gdb/gdbmi.cpp
@@ -228,19 +228,6 @@ void GdbMi::parseList(const char *&from, const char *to)
     }
 }
 
-void GdbMi::setStreamOutput(const QByteArray &name, const QByteArray &content)
-{
-    if (content.isEmpty())
-        return;
-    GdbMi child;
-    child.m_type = Const;
-    child.m_name = name;
-    child.m_data = content;
-    m_children += child;
-    if (m_type == Invalid)
-        m_type = Tuple;
-}
-
 static QByteArray ind(int indent)
 {
     return QByteArray(2 * indent, ' ');
diff --git a/src/plugins/debugger/gdb/gdbmi.h b/src/plugins/debugger/gdb/gdbmi.h
index 09cc4cc98a9cd6e1d6f75fb7f3dc43f52a7e7552..c975ba1cadb10c54b2a05b390cd2f9b3859f2a6d 100644
--- a/src/plugins/debugger/gdb/gdbmi.h
+++ b/src/plugins/debugger/gdb/gdbmi.h
@@ -130,7 +130,6 @@ public:
     qulonglong toAddress() const;
     void fromString(const QByteArray &str);
     void fromStringMultiple(const QByteArray &str);
-    void setStreamOutput(const QByteArray &name, const QByteArray &content);
 
 private:
     friend class GdbResponse;
@@ -170,6 +169,8 @@ public:
     GdbResultClass resultClass;
     GdbMi          data;
     QVariant       cookie;
+    QByteArray     logStreamOutput;
+    QByteArray     consoleStreamOutput;
 };
 
 void extractGdbVersion(const QString &msg,
diff --git a/src/plugins/debugger/gdb/gdboptionspage.ui b/src/plugins/debugger/gdb/gdboptionspage.ui
index 9445a0d837a7ca5c4b1097168f59dc380aab3277..6fb810fca1b06120af7da8886beec025d7805a00 100644
--- a/src/plugins/debugger/gdb/gdboptionspage.ui
+++ b/src/plugins/debugger/gdb/gdboptionspage.ui
@@ -154,7 +154,7 @@ on slow machines. In this case, the value should be increased.</string>
          <string>This is the slowest but safest option.</string>
         </property>
         <property name="text">
-         <string>Try to set breakpoints in plugins always automatically</string>
+         <string>Always try to set breakpoints in plugins automatically</string>
         </property>
        </widget>
       </item>
diff --git a/src/plugins/debugger/gdb/pythongdbengine.cpp b/src/plugins/debugger/gdb/pythongdbengine.cpp
index 50ffd4bc0d62d68ed2d358993947ca117a8a26bb..81d5ca302bfbb2188b2a7139c08a43c5760a674b 100644
--- a/src/plugins/debugger/gdb/pythongdbengine.cpp
+++ b/src/plugins/debugger/gdb/pythongdbengine.cpp
@@ -135,7 +135,7 @@ void GdbEngine::handleStackFramePython(const GdbResponse &response)
     PRECONDITION;
     if (response.resultClass == GdbResultDone) {
         const bool partial = response.cookie.toBool();
-        QByteArray out = response.data.findChild("consolestreamoutput").data();
+        QByteArray out = response.consoleStreamOutput;
         while (out.endsWith(' ') || out.endsWith('\n'))
             out.chop(1);
         int pos = out.indexOf("data=");
diff --git a/src/plugins/debugger/gdb/remotegdbprocess.cpp b/src/plugins/debugger/gdb/remotegdbprocess.cpp
index f32af660e016081133389259096ecff7fbf398a3..124e43f620d014424a729ffe35d67dfd5a6bba78 100644
--- a/src/plugins/debugger/gdb/remotegdbprocess.cpp
+++ b/src/plugins/debugger/gdb/remotegdbprocess.cpp
@@ -98,7 +98,8 @@ void RemoteGdbProcess::realStart(const QString &cmd, const QStringList &args,
         handleConnected();
     } else {
         connect(m_conn.data(), SIGNAL(connected()), this, SLOT(handleConnected()));
-        m_conn->connectToHost();
+        if (m_conn->state() == SshConnection::Unconnected)
+            m_conn->connectToHost();
     }
 }
 
diff --git a/src/plugins/debugger/stackwindow.cpp b/src/plugins/debugger/stackwindow.cpp
index d547b6a423b05addd4a758263a22ce59002c7855..92e0722e7acadfd06e77c6771f71fea5d1792a95 100644
--- a/src/plugins/debugger/stackwindow.cpp
+++ b/src/plugins/debugger/stackwindow.cpp
@@ -173,7 +173,7 @@ void StackWindow::contextMenuEvent(QContextMenuEvent *ev)
     else if (act == actAdjust)
         resizeColumnsToContents();
     else if (act == actShowMemory) {
-        const QString title = tr("Memory at Frame #%1 (%2) 0x%3)").
+        const QString title = tr("Memory at Frame #%1 (%2) 0x%3").
         arg(row).arg(frame.function).arg(address, 0, 16);
         QList<MemoryMarkup> ml;
         ml.push_back(MemoryMarkup(address, 1, QColor(Qt::blue).lighter(),
diff --git a/src/plugins/debugger/watchwindow.cpp b/src/plugins/debugger/watchwindow.cpp
index 10ed4fe1e65ec088567fab9ac60da38fc8b09cea..9bad66fcf903c266c63e14742cad59c7b6805040 100644
--- a/src/plugins/debugger/watchwindow.cpp
+++ b/src/plugins/debugger/watchwindow.cpp
@@ -462,7 +462,7 @@ static inline void addStackLayoutMemoryView(DebuggerEngine *engine,
                              regMap, true, background);
     const unsigned flags = separateView ? (DebuggerEngine::MemoryView|DebuggerEngine::MemoryReadOnly) : 0;
     const QString title =
-        WatchWindow::tr("Memory Layout of Local Variables at 0x%2").arg(start, 0, 16);
+        WatchWindow::tr("Memory Layout of Local Variables at 0x%1").arg(start, 0, 16);
     engine->openMemoryView(start, flags, markup, p, title, parent);
 }
 
diff --git a/src/plugins/designer/qt_private/abstractnewformwidget_p.h b/src/plugins/designer/qt_private/abstractnewformwidget_p.h
index 7ac5dd293748abe5e2c073c70187a0b3c4eadbbe..aaf1d1086e100952bd5dcace1b12077aaa4f492c 100644
--- a/src/plugins/designer/qt_private/abstractnewformwidget_p.h
+++ b/src/plugins/designer/qt_private/abstractnewformwidget_p.h
@@ -26,7 +26,7 @@
 ** 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 qt-info@nokia.com.
+** Nokia at info@qt.nokia.com.
 **
 **************************************************************************/
 
diff --git a/src/plugins/designer/qt_private/abstractoptionspage_p.h b/src/plugins/designer/qt_private/abstractoptionspage_p.h
index 242f00f4130864ac713e1c95f71e6ad440b963e0..e0b0fd75c4e4830b45d8de18a91482c788594413 100644
--- a/src/plugins/designer/qt_private/abstractoptionspage_p.h
+++ b/src/plugins/designer/qt_private/abstractoptionspage_p.h
@@ -26,7 +26,7 @@
 ** 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 qt-info@nokia.com.
+** Nokia at info@qt.nokia.com.
 **
 **************************************************************************/
 
diff --git a/src/plugins/designer/qt_private/abstractsettings_p.h b/src/plugins/designer/qt_private/abstractsettings_p.h
index 736907f4113132f57ce8b0b9953d0f968b835f65..ca7615049c1695af40c72a3306e03c38c15ce9aa 100644
--- a/src/plugins/designer/qt_private/abstractsettings_p.h
+++ b/src/plugins/designer/qt_private/abstractsettings_p.h
@@ -26,7 +26,7 @@
 ** 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 qt-info@nokia.com.
+** Nokia at info@qt.nokia.com.
 **
 **************************************************************************/
 
diff --git a/src/plugins/designer/qt_private/formwindowbase_p.h b/src/plugins/designer/qt_private/formwindowbase_p.h
index 56a02babe115edd5e161793bda53ededa1c52d8b..99239adb9145fa66c2c34425e92bead833bd186f 100644
--- a/src/plugins/designer/qt_private/formwindowbase_p.h
+++ b/src/plugins/designer/qt_private/formwindowbase_p.h
@@ -26,7 +26,7 @@
 ** 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 qt-info@nokia.com.
+** Nokia at info@qt.nokia.com.
 **
 **************************************************************************/
 
diff --git a/src/plugins/designer/qt_private/iconloader_p.h b/src/plugins/designer/qt_private/iconloader_p.h
index 7cdd4a8105f4944cc4516ac3f5a793081d915010..b2eca12a9dd088b4f627bf1fb20750f91bc937a9 100644
--- a/src/plugins/designer/qt_private/iconloader_p.h
+++ b/src/plugins/designer/qt_private/iconloader_p.h
@@ -26,7 +26,7 @@
 ** 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 qt-info@nokia.com.
+** Nokia at info@qt.nokia.com.
 **
 **************************************************************************/
 
diff --git a/src/plugins/designer/qt_private/pluginmanager_p.h b/src/plugins/designer/qt_private/pluginmanager_p.h
index 6ca500329670a73d825d5dd8cbb29bf90d721380..f1edc70836d3c211bf4ab823022bdac88adf606c 100644
--- a/src/plugins/designer/qt_private/pluginmanager_p.h
+++ b/src/plugins/designer/qt_private/pluginmanager_p.h
@@ -26,7 +26,7 @@
 ** 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 qt-info@nokia.com.
+** Nokia at info@qt.nokia.com.
 **
 **************************************************************************/
 
diff --git a/src/plugins/designer/qt_private/qdesigner_formwindowmanager_p.h b/src/plugins/designer/qt_private/qdesigner_formwindowmanager_p.h
index 8c3a95d5ca1869b7d1553722fe1dde5d9a7ddb40..539a3a99aa7896ae4afcd94457fde3b6a8935a6d 100644
--- a/src/plugins/designer/qt_private/qdesigner_formwindowmanager_p.h
+++ b/src/plugins/designer/qt_private/qdesigner_formwindowmanager_p.h
@@ -26,7 +26,7 @@
 ** 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 qt-info@nokia.com.
+** Nokia at info@qt.nokia.com.
 **
 **************************************************************************/
 
diff --git a/src/plugins/designer/qt_private/qdesigner_integration_p.h b/src/plugins/designer/qt_private/qdesigner_integration_p.h
index 3014b00d397962905e6aec6e1c18d42dacd5ddb0..af6ad5c9a48897a8dfb28f05ad7e8df4dfcc73b0 100644
--- a/src/plugins/designer/qt_private/qdesigner_integration_p.h
+++ b/src/plugins/designer/qt_private/qdesigner_integration_p.h
@@ -26,7 +26,7 @@
 ** 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 qt-info@nokia.com.
+** Nokia at info@qt.nokia.com.
 **
 **************************************************************************/
 
diff --git a/src/plugins/designer/qt_private/qsimpleresource_p.h b/src/plugins/designer/qt_private/qsimpleresource_p.h
index 19cf8d52391005612bae052ff78757c3cddc2db4..506efaf61c50f4124ae1d5dd8844dc4c19479937 100644
--- a/src/plugins/designer/qt_private/qsimpleresource_p.h
+++ b/src/plugins/designer/qt_private/qsimpleresource_p.h
@@ -26,7 +26,7 @@
 ** 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 qt-info@nokia.com.
+** Nokia at info@qt.nokia.com.
 **
 **************************************************************************/
 
diff --git a/src/plugins/designer/qt_private/qtresourcemodel_p.h b/src/plugins/designer/qt_private/qtresourcemodel_p.h
index 836164205205617d8b5450692a83f67c0e5f48de..b132eeb8b23677135a2f199943c486ce7d63291e 100644
--- a/src/plugins/designer/qt_private/qtresourcemodel_p.h
+++ b/src/plugins/designer/qt_private/qtresourcemodel_p.h
@@ -26,7 +26,7 @@
 ** 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 qt-info@nokia.com.
+** Nokia at info@qt.nokia.com.
 **
 **************************************************************************/
 
diff --git a/src/plugins/designer/qt_private/shared_enums_p.h b/src/plugins/designer/qt_private/shared_enums_p.h
index 7bc821c8b33c30e7eab1141fb894d0fcced185e8..24296f7de645d0165b4c5b1d353ff2e9c02e9e30 100644
--- a/src/plugins/designer/qt_private/shared_enums_p.h
+++ b/src/plugins/designer/qt_private/shared_enums_p.h
@@ -26,7 +26,7 @@
 ** 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 qt-info@nokia.com.
+** Nokia at info@qt.nokia.com.
 **
 **************************************************************************/
 
diff --git a/src/plugins/designer/qt_private/shared_global_p.h b/src/plugins/designer/qt_private/shared_global_p.h
index 587f62809791e24d4506f47d1b72ecb9b499fe0a..41ead1158a813fa163278f170649b0ea8ff0a8f8 100644
--- a/src/plugins/designer/qt_private/shared_global_p.h
+++ b/src/plugins/designer/qt_private/shared_global_p.h
@@ -26,7 +26,7 @@
 ** 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 qt-info@nokia.com.
+** Nokia at info@qt.nokia.com.
 **
 **************************************************************************/
 
diff --git a/src/plugins/genericprojectmanager/genericprojectfileseditor.cpp b/src/plugins/genericprojectmanager/genericprojectfileseditor.cpp
index 941738c50a977236f34d6a7817ec8dd374f3b0de..9b0741dd1d196802dca05f09364bf0b340fd3b7b 100644
--- a/src/plugins/genericprojectmanager/genericprojectfileseditor.cpp
+++ b/src/plugins/genericprojectmanager/genericprojectfileseditor.cpp
@@ -179,6 +179,6 @@ bool ProjectFilesDocument::save(QString *errorString, const QString &name, bool
         return false;
 
     if (!autoSave)
-        m_manager->notifyChanged(name);
+        m_manager->notifyChanged(name.isEmpty() ? fileName() : name);
     return true;
 }
diff --git a/src/plugins/genericprojectmanager/selectablefilesmodel.cpp b/src/plugins/genericprojectmanager/selectablefilesmodel.cpp
index 4c516f33758258655cfd90303bdf1ca9604f78c7..a9b5582f2faf2603cf126ebf51b998615d5300b1 100644
--- a/src/plugins/genericprojectmanager/selectablefilesmodel.cpp
+++ b/src/plugins/genericprojectmanager/selectablefilesmodel.cpp
@@ -58,6 +58,12 @@ SelectableFilesModel::SelectableFilesModel(const QString &baseDir, QObject *pare
 void SelectableFilesModel::setInitialMarkedFiles(const QStringList &files)
 {
     m_files = files.toSet();
+    m_outOfBaseDirFiles.clear();
+    QString base = m_baseDir + '/';
+    foreach (const QString &file, m_files)
+        if (!file.startsWith(base))
+            m_outOfBaseDirFiles.append(file);
+
     m_allFiles = false;
 }
 
@@ -333,11 +339,16 @@ void SelectableFilesModel::collectPaths(Tree *root, QStringList *result)  const
 
 QStringList SelectableFilesModel::selectedFiles() const
 {
-    QStringList result;
+    QStringList result = m_outOfBaseDirFiles;
     collectFiles(m_root, &result);
     return result;
 }
 
+QStringList SelectableFilesModel::preservedFiles() const
+{
+    return m_outOfBaseDirFiles;
+}
+
 void SelectableFilesModel::collectFiles(Tree *root, QStringList *result) const
 {
     if (root->checked == Qt::Unchecked)
@@ -526,6 +537,10 @@ SelectableFilesDialog::SelectableFilesDialog(const QString &path, const QStringL
     m_view->hide();
     layout->addWidget(m_view);
 
+    m_preservedFiles = new QLabel;
+    m_preservedFiles->hide();
+    layout->addWidget(m_preservedFiles);
+
     m_progressLabel = new QLabel(this);
     m_progressLabel->setMaximumWidth(500);
     layout->addWidget(m_progressLabel);
@@ -569,6 +584,13 @@ void SelectableFilesDialog::parsingFinished()
     m_view->expand(QModelIndex());
     smartExpand(m_selectableFilesModel->index(0,0, QModelIndex()));
     applyFilter();
+    const QStringList &preservedFiles = m_selectableFilesModel->preservedFiles();
+    if (preservedFiles.isEmpty()) {
+        m_preservedFiles->hide();
+    } else {
+        m_preservedFiles->show();
+        m_preservedFiles->setText(tr("Not showing %n files that are outside of the base directory.\nThese files are preserved.", 0, preservedFiles.count()));
+    }
 }
 
 void SelectableFilesDialog::smartExpand(const QModelIndex &index)
diff --git a/src/plugins/genericprojectmanager/selectablefilesmodel.h b/src/plugins/genericprojectmanager/selectablefilesmodel.h
index 6b81e238fc1d886968341aa130ffda5e83dda211..f85b4c5672fe9bae92c5ba1f62174647e08ccc58 100644
--- a/src/plugins/genericprojectmanager/selectablefilesmodel.h
+++ b/src/plugins/genericprojectmanager/selectablefilesmodel.h
@@ -88,6 +88,7 @@ public:
 
     QStringList selectedFiles() const;
     QStringList selectedPaths() const;
+    QStringList preservedFiles() const;
 
     // only call this once
     void startParsing();
@@ -115,6 +116,7 @@ private:
     // Used in the future thread need to all not used after calling startParsing
     QString m_baseDir;
     QSet<QString> m_files;
+    QStringList m_outOfBaseDirFiles;
     QSet<QString> m_suffixes;
     QFutureWatcher<void> m_watcher;
     Tree *m_rootForFuture;
@@ -143,6 +145,7 @@ private:
     QLineEdit *m_filterLineEdit;
     QPushButton *m_applyFilterButton;
     QTreeView *m_view;
+    QLabel *m_preservedFiles;
     QLabel *m_progressLabel;
 };
 
diff --git a/src/plugins/git/branchadddialog.cpp b/src/plugins/git/branchadddialog.cpp
index 64e2d32b2ee4bca7d1a0e8e115d77b7aec6c9abd..4a4981f2abd95b5dd60b215d0c4c07dbe8e0e4ab 100644
--- a/src/plugins/git/branchadddialog.cpp
+++ b/src/plugins/git/branchadddialog.cpp
@@ -1,3 +1,35 @@
+/**************************************************************************
+**
+** 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 "branchadddialog.h"
 #include "ui_branchadddialog.h"
 
diff --git a/src/plugins/git/branchadddialog.h b/src/plugins/git/branchadddialog.h
index 9fec0966a388ff83a84dc650b6d0c27ecac9b911..301c3e521cb765bbcd771339415fe7477d2ce206 100644
--- a/src/plugins/git/branchadddialog.h
+++ b/src/plugins/git/branchadddialog.h
@@ -1,3 +1,35 @@
+/**************************************************************************
+**
+** 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 BRANCHADDDIALOG_H
 #define BRANCHADDDIALOG_H
 
diff --git a/src/plugins/locator/locatorplugin.cpp b/src/plugins/locator/locatorplugin.cpp
index 215854044447847aa3103545fc561fad358265a5..43831ebc56053744bd0a25aefd0126cc85fda9f3 100644
--- a/src/plugins/locator/locatorplugin.cpp
+++ b/src/plugins/locator/locatorplugin.cpp
@@ -45,12 +45,12 @@
 #include <coreplugin/icore.h>
 #include <coreplugin/actionmanager/actionmanager.h>
 #include <coreplugin/actionmanager/actioncontainer.h>
-#include <coreplugin/actionmanager/command.h>
 #include <coreplugin/progressmanager/progressmanager.h>
 #include <coreplugin/progressmanager/futureprogress.h>
 #include <coreplugin/uniqueidmanager.h>
 #include <extensionsystem/pluginmanager.h>
 #include <qtconcurrent/QtConcurrentTools>
+#include <utils/qtcassert.h>
 
 #include <QtCore/QSettings>
 #include <QtCore/QtPlugin>
@@ -119,6 +119,8 @@ bool LocatorPlugin::initialize(const QStringList &, QString *)
         ->registerAction(action, "QtCreator.Locate", Core::Context(Core::Constants::C_GLOBAL));
     cmd->setDefaultKeySequence(QKeySequence("Ctrl+K"));
     connect(action, SIGNAL(triggered()), this, SLOT(openLocator()));
+    connect(cmd, SIGNAL(keySequenceChanged()), this, SLOT(updatePlaceholderText()));
+    updatePlaceholderText(cmd);
 
     Core::ActionContainer *mtools = core->actionManager()->actionContainer(Core::Constants::M_TOOLS);
     mtools->addAction(cmd);
@@ -137,6 +139,18 @@ bool LocatorPlugin::initialize(const QStringList &, QString *)
     return true;
 }
 
+void LocatorPlugin::updatePlaceholderText(Core::Command *command)
+{
+    if (!command)
+        command = qobject_cast<Core::Command *>(sender());
+    QTC_ASSERT(command, return);
+    if (command->keySequence().isEmpty())
+        m_locatorWidget->setPlaceholderText(tr("Type to locate"));
+    else
+        m_locatorWidget->setPlaceholderText(tr("Type to locate (%1)").arg(
+                                                command->keySequence().toString(QKeySequence::NativeText)));
+}
+
 void LocatorPlugin::openLocator()
 {
     m_locatorWidget->show("");
diff --git a/src/plugins/locator/locatorplugin.h b/src/plugins/locator/locatorplugin.h
index 11020fa864ee5c607d0fbedd19f2a703469da52e..0d2ec895c0e38919f991b8e887097eb2a5174249 100644
--- a/src/plugins/locator/locatorplugin.h
+++ b/src/plugins/locator/locatorplugin.h
@@ -37,6 +37,7 @@
 #include "directoryfilter.h"
 
 #include <extensionsystem/iplugin.h>
+#include <coreplugin/actionmanager/command.h>
 
 #include <QtCore/QObject>
 #include <QtCore/QTimer>
@@ -77,6 +78,7 @@ public slots:
 private slots:
     void startSettingsLoad();
     void settingsLoaded();
+    void updatePlaceholderText(Core::Command *command = 0);
 
 private:
     void loadSettings();
diff --git a/src/plugins/locator/locatorwidget.cpp b/src/plugins/locator/locatorwidget.cpp
index d9b83a04c376b1202f1443e59cbdb5d80150d166..5e9024c48b275fab8ac490323f1ad2f2b5d3ca7b 100644
--- a/src/plugins/locator/locatorwidget.cpp
+++ b/src/plugins/locator/locatorwidget.cpp
@@ -306,7 +306,6 @@ LocatorWidget::LocatorWidget(LocatorPlugin *qop) :
     setWindowIcon(QIcon(QLatin1String(":/locator/images/locator.png")));
     QPixmap image(Core::Constants::ICON_MAGNIFIER);
     m_fileLineEdit->setButtonPixmap(Utils::FancyLineEdit::Left, image);
-    m_fileLineEdit->setPlaceholderText(tr("Type to locate"));
     m_fileLineEdit->setButtonToolTip(Utils::FancyLineEdit::Left, tr("Options"));
     m_fileLineEdit->setFocusPolicy(Qt::ClickFocus);
     m_fileLineEdit->setButtonVisible(Utils::FancyLineEdit::Left, true);
@@ -343,6 +342,11 @@ LocatorWidget::LocatorWidget(LocatorPlugin *qop) :
     connect(m_showPopupTimer, SIGNAL(timeout()), SLOT(showPopupNow()));
 }
 
+void LocatorWidget::setPlaceholderText(const QString &text)
+{
+    m_fileLineEdit->setPlaceholderText(text);
+}
+
 void LocatorWidget::updateFilterList()
 {
     m_filterMenu->clear();
diff --git a/src/plugins/locator/locatorwidget.h b/src/plugins/locator/locatorwidget.h
index f7dd2508e48d3b70da087d739d1b2266fcdc4267..bdf053f4131c1e3c9c0cda8e289aef083fe41fca 100644
--- a/src/plugins/locator/locatorwidget.h
+++ b/src/plugins/locator/locatorwidget.h
@@ -67,6 +67,8 @@ public:
 
     void show(const QString &text, int selectionStart = -1, int selectionLength = 0);
 
+    void setPlaceholderText(const QString &text);
+
 private slots:
     void showPopup();
     void showPopupNow();
diff --git a/src/plugins/projectexplorer/clangparser.cpp b/src/plugins/projectexplorer/clangparser.cpp
index 577943fabf7e099142ab5afd72dd48431c73d959..f89a374baa7a9462af69eed990bf3c13507d18fc 100644
--- a/src/plugins/projectexplorer/clangparser.cpp
+++ b/src/plugins/projectexplorer/clangparser.cpp
@@ -35,8 +35,6 @@
 #include "taskwindow.h"
 #include "projectexplorerconstants.h"
 
-#include <QtCore/QDir>
-
 using namespace ProjectExplorer;
 
 namespace {
diff --git a/src/plugins/projectexplorer/codestylesettingspropertiespage.cpp b/src/plugins/projectexplorer/codestylesettingspropertiespage.cpp
index 414d01c8a6caaa7c87bee6bb6678bbe0b61558e3..496cb289bb38664af49b3d86363f49d31ec3d69e 100644
--- a/src/plugins/projectexplorer/codestylesettingspropertiespage.cpp
+++ b/src/plugins/projectexplorer/codestylesettingspropertiespage.cpp
@@ -1,3 +1,35 @@
+/**************************************************************************
+**
+** 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 "codestylesettingspropertiespage.h"
 #include "editorconfiguration.h"
 #include "project.h"
diff --git a/src/plugins/projectexplorer/codestylesettingspropertiespage.h b/src/plugins/projectexplorer/codestylesettingspropertiespage.h
index 07ba4ae4b71bc137da70f6efe9c4d21ee0561251..873c7faaf0f7aa809f9c482c1d1a8b3d45f6231b 100644
--- a/src/plugins/projectexplorer/codestylesettingspropertiespage.h
+++ b/src/plugins/projectexplorer/codestylesettingspropertiespage.h
@@ -1,3 +1,35 @@
+/**************************************************************************
+**
+** 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 CODESTYLESETTINGSPROPERTIESPAGE_H
 #define CODESTYLESETTINGSPROPERTIESPAGE_H
 
diff --git a/src/plugins/projectexplorer/gccparser.cpp b/src/plugins/projectexplorer/gccparser.cpp
index 845bb58c6f04f1794152e1af268c70d2c4cf0be5..9efca403d5861c3ec2b78cc0c58d204ed090e32d 100644
--- a/src/plugins/projectexplorer/gccparser.cpp
+++ b/src/plugins/projectexplorer/gccparser.cpp
@@ -35,8 +35,6 @@
 #include "taskwindow.h"
 #include "projectexplorerconstants.h"
 
-#include <QtCore/QDir>
-
 using namespace ProjectExplorer;
 
 namespace {
@@ -105,7 +103,7 @@ void GccParser::stdError(const QString &line)
         int lineno = m_regExp.cap(3).toInt();
         Task task(Task::Unknown,
                   m_regExp.cap(8) /* description */,
-                  QDir::fromNativeSeparators(filename), lineno,
+                  filename, lineno,
                   Constants::TASK_CATEGORY_COMPILE);
         if (m_regExp.cap(7) == QLatin1String("warning"))
             task.type = Task::Warning;
@@ -123,7 +121,7 @@ void GccParser::stdError(const QString &line)
     } else if (m_regExpIncluded.indexIn(lne) > -1) {
         emit addTask(Task(Task::Unknown,
                           lne /* description */,
-                          QDir::fromNativeSeparators(m_regExpIncluded.cap(1)) /* filename */,
+                          m_regExpIncluded.cap(1) /* filename */,
                           m_regExpIncluded.cap(3).toInt() /* linenumber */,
                           Constants::TASK_CATEGORY_COMPILE));
         return;
@@ -207,7 +205,7 @@ void ProjectExplorerPlugin::testGccOutputParsers_data()
             << QString() << QString()
             << (QList<ProjectExplorer::Task>() << Task(Task::Error,
                                                        QLatin1String("#error Symbian error"),
-                                                       QLatin1String("C:/temp/test/untitled8/main.cpp"), 7,
+                                                       QLatin1String("C:\\temp\\test\\untitled8\\main.cpp"), 7,
                                                        Constants::TASK_CATEGORY_COMPILE))
             << QString();
     // Symbian reports #warning(s) twice (using different syntax).
@@ -217,7 +215,7 @@ void ProjectExplorerPlugin::testGccOutputParsers_data()
             << QString() << QString()
             << (QList<ProjectExplorer::Task>() << Task(Task::Warning,
                                                        QLatin1String("#warning Symbian warning"),
-                                                       QLatin1String("C:/temp/test/untitled8/main.cpp"), 8,
+                                                       QLatin1String("C:\\temp\\test\\untitled8\\main.cpp"), 8,
                                                        Constants::TASK_CATEGORY_COMPILE))
             << QString();
     QTest::newRow("GCCE #warning2")
@@ -242,7 +240,7 @@ void ProjectExplorerPlugin::testGccOutputParsers_data()
                         Constants::TASK_CATEGORY_COMPILE)
                 << Task(Task::Error,
                         QLatin1String("undefined reference to `MainWindow::doSomething()'"),
-                        QLatin1String("C:/temp/test/untitled8/main.cpp"), 8,
+                        QLatin1String("C:\\temp\\test\\untitled8/main.cpp"), 8,
                         Constants::TASK_CATEGORY_COMPILE)
                 << Task(Task::Error,
                         QLatin1String("collect2: ld returned 1 exit status"),
@@ -263,7 +261,7 @@ void ProjectExplorerPlugin::testGccOutputParsers_data()
                         Constants::TASK_CATEGORY_COMPILE)
                 << Task(Task::Error,
                         QLatin1String("undefined reference to `MainWindow::doSomething()'"),
-                        QLatin1String("C:/temp/test/untitled8/main.cpp"), -1,
+                        QLatin1String("C:\\temp\\test\\untitled8/main.cpp"), -1,
                         Constants::TASK_CATEGORY_COMPILE)
                 << Task(Task::Error,
                         QLatin1String("collect2: ld returned 1 exit status"),
@@ -278,7 +276,7 @@ void ProjectExplorerPlugin::testGccOutputParsers_data()
             << (QList<ProjectExplorer::Task>()
                 << Task(Task::Error,
                         QLatin1String("file not recognized: File format not recognized"),
-                        QLatin1String("c:/Qt/4.6/lib/QtGuid4.dll"), -1,
+                        QLatin1String("c:\\Qt\\4.6\\lib/QtGuid4.dll"), -1,
                         Constants::TASK_CATEGORY_COMPILE))
             << QString();
     QTest::newRow("Invalid rpath")
@@ -510,11 +508,11 @@ void ProjectExplorerPlugin::testGccOutputParsers_data()
                         Constants::TASK_CATEGORY_COMPILE)
                 << Task(Task::Error,
                         QLatin1String("undefined reference to `vtable for QPlotAxis'"),
-                        QLatin1String("M:/Development/x64/QtPlot/qplotaxis.cpp"), 26,
+                        QLatin1String("M:\\Development\\x64\\QtPlot/qplotaxis.cpp"), 26,
                         Constants::TASK_CATEGORY_COMPILE)
                 << Task(Task::Error,
                         QLatin1String("undefined reference to `vtable for QPlotAxis'"),
-                        QLatin1String("M:/Development/x64/QtPlot/qplotaxis.cpp"), 26,
+                        QLatin1String("M:\\Development\\x64\\QtPlot/qplotaxis.cpp"), 26,
                         Constants::TASK_CATEGORY_COMPILE)
                 << Task(Task::Error,
                         QLatin1String("collect2: ld returned 1 exit status"),
diff --git a/src/plugins/projectexplorer/gcctoolchain.cpp b/src/plugins/projectexplorer/gcctoolchain.cpp
index a0976771f7e3bd8f8a3cfc8a3e0d899e7a0aac64..1c62f61b03e905200ca7dbacdc758dcad5f00989 100644
--- a/src/plugins/projectexplorer/gcctoolchain.cpp
+++ b/src/plugins/projectexplorer/gcctoolchain.cpp
@@ -189,7 +189,7 @@ static QList<ProjectExplorer::Abi> guessGccAbi(const QString &m)
                    || p == QLatin1String("i686") || p == QLatin1String("x86")) {
             arch = ProjectExplorer::Abi::X86Architecture;
             width = 32;
-        } else if (p == QLatin1String("arm") || p == QLatin1String("armv5tel")) {
+        } else if (p.startsWith(QLatin1String("arm"))) {
             arch = ProjectExplorer::Abi::ArmArchitecture;
             width = 32;
         } else if (p == QLatin1String("mipsel")) {
@@ -1014,6 +1014,10 @@ void ProjectExplorerPlugin::testGccAbiGuessing_data()
     QTest::newRow("Linux 7") // Meego
                 << QString::fromLatin1("armv5tel-meego-linux-gnueabi")
                 << (QStringList() << QLatin1String("arm-linux-meego-elf-32bit"));
+    QTest::newRow("Linux 8")
+                << QString::fromLatin1("armv5tl-montavista-linux-gnueabi")
+                << (QStringList() << QLatin1String("arm-linux-generic-elf-32bit"));
+
     QTest::newRow("Mingw 1")
             << QString::fromLatin1("i686-w64-mingw32")
             << (QStringList() << QLatin1String("x86-windows-msys-pe-64bit")
diff --git a/src/plugins/projectexplorer/gnumakeparser.cpp b/src/plugins/projectexplorer/gnumakeparser.cpp
index 6d01af617f3bf7557623b9ea3daa186dc26e0123..ca81054127994d405358e4dbe0abda5db8a21e00 100644
--- a/src/plugins/projectexplorer/gnumakeparser.cpp
+++ b/src/plugins/projectexplorer/gnumakeparser.cpp
@@ -95,7 +95,7 @@ void GnuMakeParser::stdError(const QString &line)
             m_suppressIssues = true;
             addTask(Task(Task::Error,
                          m_makefileError.cap(3),
-                         QDir::fromNativeSeparators(m_makefileError.cap(1)),
+                         m_makefileError.cap(1),
                          m_makefileError.cap(2).toInt(),
                          Constants::TASK_CATEGORY_BUILDSYSTEM));
         }
diff --git a/src/plugins/projectexplorer/ldparser.cpp b/src/plugins/projectexplorer/ldparser.cpp
index a1d7980ca0dc190417287adaf7e103959efefc64..a3272b0f16a3002ef9d90db590d7804f2794f024 100644
--- a/src/plugins/projectexplorer/ldparser.cpp
+++ b/src/plugins/projectexplorer/ldparser.cpp
@@ -34,8 +34,6 @@
 #include "projectexplorerconstants.h"
 #include "taskwindow.h"
 
-#include <QtCore/QDir>
-
 using namespace ProjectExplorer;
 
 namespace {
@@ -103,7 +101,7 @@ void LdParser::stdError(const QString &line)
             && !m_regExpLinker.cap(4).startsWith(QLatin1String("(.text+0x")))
             filename = m_regExpLinker.cap(4);
         QString description = m_regExpLinker.cap(8).trimmed();
-        Task task(Task::Error, description, QDir::fromNativeSeparators(filename), lineno,
+        Task task(Task::Error, description, filename, lineno,
                   Constants::TASK_CATEGORY_COMPILE);
         if (m_regExpInFunction.indexIn(description) > -1 ||
             description.startsWith(QLatin1String("At global scope")) ||
diff --git a/src/plugins/projectexplorer/linuxiccparser.cpp b/src/plugins/projectexplorer/linuxiccparser.cpp
index 074eaf4352f3a66e479e1dd43844aef091cc5e2a..d29d2f76ad04ef9c6512ca200281703d3b83317d 100644
--- a/src/plugins/projectexplorer/linuxiccparser.cpp
+++ b/src/plugins/projectexplorer/linuxiccparser.cpp
@@ -35,8 +35,6 @@
 #include "taskwindow.h"
 #include "projectexplorerconstants.h"
 
-#include <QtCore/QDir>
-
 using namespace ProjectExplorer;
 
 LinuxIccParser::LinuxIccParser()
@@ -75,7 +73,7 @@ void LinuxIccParser::stdError(const QString &line)
     if (m_expectFirstLine  && m_firstLine.indexIn(line) != -1) {
         // Clear out old task
         m_temporary = ProjectExplorer::Task(Task::Unknown, m_firstLine.cap(6).trimmed(),
-                                            QDir::fromNativeSeparators(m_firstLine.cap(1)),
+                                            m_firstLine.cap(1),
                                             m_firstLine.cap(2).toInt(),
                                             QLatin1String(Constants::TASK_CATEGORY_COMPILE));
         QString category = m_firstLine.cap(4);
diff --git a/src/plugins/projectexplorer/msvctoolchain.cpp b/src/plugins/projectexplorer/msvctoolchain.cpp
index a1a8683cef7c2cec5029cda36ce7347476cfd01a..beb512dfbe87f2194863619bc8f4b1c15ba2f1be 100644
--- a/src/plugins/projectexplorer/msvctoolchain.cpp
+++ b/src/plugins/projectexplorer/msvctoolchain.cpp
@@ -610,7 +610,6 @@ QList<ToolChain *> MsvcToolChainFactory::autoDetect()
             tmp.append(new MsvcToolChain(generateDisplayName(name, MsvcToolChain::WindowsSDK, MsvcToolChain::s32),
                                          findAbiOfMsvc(MsvcToolChain::WindowsSDK, MsvcToolChain::s32, version),
                                          sdkVcVarsBat, QLatin1String("/x86"), true));
-#ifdef Q_OS_WIN64
             // Add all platforms
             tmp.append(new MsvcToolChain(generateDisplayName(name, MsvcToolChain::WindowsSDK, MsvcToolChain::s64),
                                          findAbiOfMsvc(MsvcToolChain::WindowsSDK, MsvcToolChain::s64, version),
@@ -618,7 +617,6 @@ QList<ToolChain *> MsvcToolChainFactory::autoDetect()
             tmp.append(new MsvcToolChain(generateDisplayName(name, MsvcToolChain::WindowsSDK, MsvcToolChain::ia64),
                                          findAbiOfMsvc(MsvcToolChain::WindowsSDK, MsvcToolChain::ia64, version),
                                          sdkVcVarsBat, QLatin1String("/ia64"), true));
-#endif
             // Make sure the default is front.
             if (folder == defaultSdkPath)
                 results = tmp + results;
diff --git a/src/plugins/projectexplorer/projecttreewidget.cpp b/src/plugins/projectexplorer/projecttreewidget.cpp
index 2e326022cc6ca7e47d16b0418aab7e6c2d769b56..1d3b8da6d695e1c288053f419c9b081521ba4064 100644
--- a/src/plugins/projectexplorer/projecttreewidget.cpp
+++ b/src/plugins/projectexplorer/projecttreewidget.cpp
@@ -101,8 +101,7 @@ ProjectTreeWidget::ProjectTreeWidget(QWidget *parent)
           m_model(0),
           m_filterProjectsAction(0),
           m_autoSync(false),
-          m_autoExpand(true),
-          m_currentItemLocked(0)
+          m_autoExpand(true)
 {
     m_model = new FlatModel(m_explorer->session()->sessionNode(), this);
     Project *pro = m_explorer->session()->startupProject();
@@ -282,13 +281,6 @@ void ProjectTreeWidget::setCurrentItem(Node *node, Project *project)
     if (debug)
         qDebug() << "ProjectTreeWidget::setCurrentItem(" << (project ? project->displayName() : "0")
                  << ", " <<  (node ? node->path() : "0") << ")";
-    if (m_currentItemLocked) {
-        if (m_currentItemLocked == node) {
-            m_currentItemLocked = 0;
-            return;
-        }
-        m_currentItemLocked = 0;
-    }
 
     if (!project) {
         return;
@@ -326,10 +318,6 @@ void ProjectTreeWidget::showContextMenu(const QPoint &pos)
 
 void ProjectTreeWidget::handleProjectAdded(ProjectExplorer::Project *project)
 {
-    // We disable auto-synchronization for the current node so that the project
-    // is selected until another file is opened
-    m_currentItemLocked = m_model->nodeForIndex(m_view->currentIndex());
-
     Node *node = project->rootProjectNode();
     QModelIndex idx = m_model->indexForNode(node);
     if (m_autoExpand) // disabled while session restoring
diff --git a/src/plugins/projectexplorer/projecttreewidget.h b/src/plugins/projectexplorer/projecttreewidget.h
index 9a15cc9169d857ec5679e5906f21fe91812cf59d..570aa7fc001d5ef053c1bce3d006c16d34eb9b7f 100644
--- a/src/plugins/projectexplorer/projecttreewidget.h
+++ b/src/plugins/projectexplorer/projecttreewidget.h
@@ -101,7 +101,6 @@ private:
     QString m_modelId;
     bool m_autoSync;
     bool m_autoExpand;
-    Node *m_currentItemLocked;
     friend class ProjectTreeWidgetFactory;
 };
 
diff --git a/src/plugins/projectexplorer/projectwelcomepage.cpp b/src/plugins/projectexplorer/projectwelcomepage.cpp
index 63807deccfbd652688f7b608d0c7dcbb9cf09bfd..e24c7a22ca340899429d1f2788e8833bea514e25 100644
--- a/src/plugins/projectexplorer/projectwelcomepage.cpp
+++ b/src/plugins/projectexplorer/projectwelcomepage.cpp
@@ -58,7 +58,7 @@ SessionModel::SessionModel(SessionManager *manager, QObject *parent)
 
 int SessionModel::rowCount(const QModelIndex &) const
 {
-    return qMin(m_manager->sessions().count(), 12);
+    return m_manager->sessions().count();
 }
 
 QVariant SessionModel::data(const QModelIndex &index, int role) const
@@ -95,7 +95,7 @@ ProjectModel::ProjectModel(ProjectExplorerPlugin *plugin, QObject *parent)
 
 int ProjectModel::rowCount(const QModelIndex &) const
 {
-    return qMin(m_plugin->recentProjects().count(), 6);
+    return m_plugin->recentProjects().count();
 }
 
 QVariant ProjectModel::data(const QModelIndex &index, int role) const
diff --git a/src/plugins/projectexplorer/projectwelcomepage.h b/src/plugins/projectexplorer/projectwelcomepage.h
index 5b3d2da2cb0be13953299464d958ce3aa6adda9f..f63009f8988c159eeefe1b03bc08327303048d8b 100644
--- a/src/plugins/projectexplorer/projectwelcomepage.h
+++ b/src/plugins/projectexplorer/projectwelcomepage.h
@@ -103,7 +103,7 @@ public:
     ProjectWelcomePage();
 
     void facilitateQml(QDeclarativeEngine *engine);
-    QString pageLocation() const { return Core::ICore::instance()->resourcePath() + QLatin1String("/welcomescreen/develop.qml"); }
+    QUrl pageLocation() const { return QUrl::fromLocalFile(Core::ICore::instance()->resourcePath() + QLatin1String("/welcomescreen/develop.qml")); }
     QWidget *page() { return 0; }
     QString title() const { return tr("Develop"); }
     int priority() const { return 20; }
diff --git a/src/plugins/projectexplorer/task.cpp b/src/plugins/projectexplorer/task.cpp
index a1571b91b8a98273af6c8fac10f284bc354f930a..24e3bf56eba1cedf00e8ff85f5827e8c00e17bdb 100644
--- a/src/plugins/projectexplorer/task.cpp
+++ b/src/plugins/projectexplorer/task.cpp
@@ -32,6 +32,8 @@
 
 #include "task.h"
 
+#include <QtCore/QDir>
+
 namespace ProjectExplorer
 {
 
@@ -48,8 +50,7 @@ Task::Task() : taskId(0), type(Unknown), line(-1)
 
 Task::Task(TaskType type_, const QString &description_,
            const QString &file_, int line_, const QString &category_) :
-    taskId(s_nextId), type(type_), description(description_), file(file_),
-    line(line_), category(category_)
+    taskId(s_nextId), type(type_), description(description_), file(QDir::fromNativeSeparators(file_)), line(line_), category(category_)
 {
     ++s_nextId;
 }
diff --git a/src/plugins/qmldesigner/components/formeditor/abstractformeditortool.h b/src/plugins/qmldesigner/components/formeditor/abstractformeditortool.h
index eed1ec3088457af055e61544dddc71ebae3777d8..f61ef51631c3b832f18210653c9238e47a0cabf5 100644
--- a/src/plugins/qmldesigner/components/formeditor/abstractformeditortool.h
+++ b/src/plugins/qmldesigner/components/formeditor/abstractformeditortool.h
@@ -82,6 +82,7 @@ public:
     virtual void formEditorItemsChanged(const QList<FormEditorItem*> &itemList) = 0;
 
     virtual void instancesCompleted(const QList<FormEditorItem*> &itemList) = 0;
+    virtual void instancesParentChanged(const QList<FormEditorItem*> &itemList) = 0;
 
     void setItems(const QList<FormEditorItem*> &itemList);
     QList<FormEditorItem*> items() const;
diff --git a/src/plugins/qmldesigner/components/formeditor/anchortool.cpp b/src/plugins/qmldesigner/components/formeditor/anchortool.cpp
index 85d3707e698d7ae10d3033480d111f131e38c2c4..b058a50249066a9eb337e22a8852da3eb5cfa29f 100644
--- a/src/plugins/qmldesigner/components/formeditor/anchortool.cpp
+++ b/src/plugins/qmldesigner/components/formeditor/anchortool.cpp
@@ -220,6 +220,10 @@ void AnchorTool::instancesCompleted(const QList<FormEditorItem*> &/*itemList*/)
 {
 }
 
+void AnchorTool::instancesParentChanged(const QList<FormEditorItem *> &/*itemList*/)
+{
+}
+
 AnchorLineHandleItem* AnchorTool::topAnchorLineHandleItem(const QList<QGraphicsItem*> & itemList)
 {
     foreach (QGraphicsItem *item, itemList) {
diff --git a/src/plugins/qmldesigner/components/formeditor/anchortool.h b/src/plugins/qmldesigner/components/formeditor/anchortool.h
index b5a19a4c79733d657eabffa313b09ef06f2c6934..27fc531fca2683d5e0e8f9ee078b4302a81e5a77 100644
--- a/src/plugins/qmldesigner/components/formeditor/anchortool.h
+++ b/src/plugins/qmldesigner/components/formeditor/anchortool.h
@@ -74,6 +74,8 @@ public:
     void formEditorItemsChanged(const QList<FormEditorItem*> &itemList);
 
     void instancesCompleted(const QList<FormEditorItem*> &itemList);
+    void instancesParentChanged(const QList<FormEditorItem *> &itemList);
+
 
     static AnchorLineHandleItem* topAnchorLineHandleItem(const QList<QGraphicsItem*> & itemList);
 
diff --git a/src/plugins/qmldesigner/components/formeditor/dragtool.cpp b/src/plugins/qmldesigner/components/formeditor/dragtool.cpp
index ec62f391f16ab22cbdb5ed3dddf64e2188d16fde..38556c08cb1d16aa60e55d692b8e8f7940c231e4 100644
--- a/src/plugins/qmldesigner/components/formeditor/dragtool.cpp
+++ b/src/plugins/qmldesigner/components/formeditor/dragtool.cpp
@@ -217,6 +217,12 @@ void DragTool::instancesCompleted(const QList<FormEditorItem*> &itemList)
     QmlDesignerItemLibraryDragAndDrop::CustomDragAndDrop::hide();
 }
 
+void DragTool::instancesParentChanged(const QList<FormEditorItem *> &itemList)
+{
+    m_moveManipulator.synchronizeInstanceParent(itemList);
+}
+
+
 void DragTool::clearMoveDelay()
 {
     if (!m_blockMove)
@@ -291,7 +297,7 @@ void DragTool::dragEnterEvent(QGraphicsSceneDragDropEvent * event)
                 const QString newImportVersion = QString("%1.%2").arg(QString::number(itemLibraryEntry.majorVersion()), QString::number(itemLibraryEntry.minorVersion()));
                 Import newImport = Import::createLibraryImport(newImportUrl, newImportVersion);
 
-                if (!view()->model()->hasImport(newImport, true)) {
+                if (!view()->model()->hasImport(newImport, true, true)) {
                     importToBeAddedList.append(newImport);
                 }
 
@@ -381,6 +387,7 @@ void DragTool::dragMoveEvent(QGraphicsSceneDragDropEvent * event)
             QTimer::singleShot(1000, m_timerHandler.data(), SLOT(clearMoveDelay()));
         }
     }
+
     if (event->mimeData()->hasFormat("application/vnd.bauhaus.libraryresource")) {
     }
 }
diff --git a/src/plugins/qmldesigner/components/formeditor/dragtool.h b/src/plugins/qmldesigner/components/formeditor/dragtool.h
index d397c731587333c687b262fdb8f4f1a285e23612..f2a8db7f1082f0dc3cca30527abb9f8c292301c8 100644
--- a/src/plugins/qmldesigner/components/formeditor/dragtool.h
+++ b/src/plugins/qmldesigner/components/formeditor/dragtool.h
@@ -86,6 +86,7 @@ public:
     void itemsAboutToRemoved(const QList<FormEditorItem*> &itemList);
 
     void selectedItemsChanged(const QList<FormEditorItem*> &itemList);
+    void instancesParentChanged(const QList<FormEditorItem *> &itemList);
 
     void updateMoveManipulator();
 
diff --git a/src/plugins/qmldesigner/components/formeditor/formeditorgraphicsview.cpp b/src/plugins/qmldesigner/components/formeditor/formeditorgraphicsview.cpp
index 52623f77168d063b0c54a6033471e1f460ea2cf2..c3b6993659a384b6d13ec638a053f897f0a87918 100644
--- a/src/plugins/qmldesigner/components/formeditor/formeditorgraphicsview.cpp
+++ b/src/plugins/qmldesigner/components/formeditor/formeditorgraphicsview.cpp
@@ -46,8 +46,7 @@ FormEditorGraphicsView::FormEditorGraphicsView(QWidget *parent) :
     setTransformationAnchor(QGraphicsView::AnchorUnderMouse);
     setResizeAnchor(QGraphicsView::AnchorViewCenter);
     setAlignment(Qt::AlignCenter);
-    setCacheMode(QGraphicsView::CacheBackground);
-//    setCacheMode(QGraphicsView::CacheBackground);
+    setCacheMode(QGraphicsView::CacheNone);
     setViewportUpdateMode(QGraphicsView::MinimalViewportUpdate);
     setOptimizationFlags(QGraphicsView::DontSavePainterState);
 //    setViewportUpdateMode(QGraphicsView::NoViewportUpdate);
diff --git a/src/plugins/qmldesigner/components/formeditor/formeditornodeinstanceview.cpp b/src/plugins/qmldesigner/components/formeditor/formeditornodeinstanceview.cpp
index 4724c10edc74c44af9f906fc21c58c7014f60ea7..28331eeba2e28ac4cebb0ccf919e3f9a6a1cf086 100644
--- a/src/plugins/qmldesigner/components/formeditor/formeditornodeinstanceview.cpp
+++ b/src/plugins/qmldesigner/components/formeditor/formeditornodeinstanceview.cpp
@@ -26,7 +26,7 @@
 ** 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 qt-info@nokia.com.
+** Nokia at info@qt.nokia.com.
 **
 **************************************************************************/
 
diff --git a/src/plugins/qmldesigner/components/formeditor/formeditornodeinstanceview.h b/src/plugins/qmldesigner/components/formeditor/formeditornodeinstanceview.h
index d6ed7b223fcd1e52cd938496fe304198d549d256..acd68af923171d5ff5fc9cee42004273c12bb150 100644
--- a/src/plugins/qmldesigner/components/formeditor/formeditornodeinstanceview.h
+++ b/src/plugins/qmldesigner/components/formeditor/formeditornodeinstanceview.h
@@ -26,7 +26,7 @@
 ** 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 qt-info@nokia.com.
+** Nokia at info@qt.nokia.com.
 **
 **************************************************************************/
 
diff --git a/src/plugins/qmldesigner/components/formeditor/formeditorscene.cpp b/src/plugins/qmldesigner/components/formeditor/formeditorscene.cpp
index bb257b3278725dfd26a40d9ff00c368997f8fa58..1b429d0dd93dacbf976cd3b7fe4b4912165000af 100644
--- a/src/plugins/qmldesigner/components/formeditor/formeditorscene.cpp
+++ b/src/plugins/qmldesigner/components/formeditor/formeditorscene.cpp
@@ -196,6 +196,9 @@ void FormEditorScene::synchronizeOtherProperty(const QmlItemNode &qmlItemNode, c
         if (propertyName == "clip")
             item->setFlag(QGraphicsItem::ItemClipsChildrenToShape, qmlItemNode.instanceValue("clip").toBool());
 
+        if (propertyName == "z")
+            item->setZValue(qmlItemNode.instanceValue("z").toDouble());
+
         if (!qmlItemNode.isRootNode()) {
             if (propertyName == "visible")
                 item->setContentVisible(qmlItemNode.instanceValue("visible").toBool());
diff --git a/src/plugins/qmldesigner/components/formeditor/formeditorsubwindow.cpp b/src/plugins/qmldesigner/components/formeditor/formeditorsubwindow.cpp
index 49a780fddfbda47b4614ebc2359d998236e30881..8ba85336497d8aca1a294ee20797bd08efae04dc 100644
--- a/src/plugins/qmldesigner/components/formeditor/formeditorsubwindow.cpp
+++ b/src/plugins/qmldesigner/components/formeditor/formeditorsubwindow.cpp
@@ -26,7 +26,7 @@
 ** 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 qt-info@nokia.com.
+** Nokia at info@qt.nokia.com.
 **
 **************************************************************************/
 
diff --git a/src/plugins/qmldesigner/components/formeditor/formeditorsubwindow.h b/src/plugins/qmldesigner/components/formeditor/formeditorsubwindow.h
index 0c902b2586fdd46a35b455c0bb211e2878c545fb..5cded6394cc8ea3592fa1dc25d8857899d3b9577 100644
--- a/src/plugins/qmldesigner/components/formeditor/formeditorsubwindow.h
+++ b/src/plugins/qmldesigner/components/formeditor/formeditorsubwindow.h
@@ -26,7 +26,7 @@
 ** 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 qt-info@nokia.com.
+** Nokia at info@qt.nokia.com.
 **
 **************************************************************************/
 
diff --git a/src/plugins/qmldesigner/components/formeditor/formeditorview.cpp b/src/plugins/qmldesigner/components/formeditor/formeditorview.cpp
index 3e0ebe06c41cc423b04de38ac75341a34050e20f..a2ed9a85548df68686f54b923db75bf61fa38d11 100644
--- a/src/plugins/qmldesigner/components/formeditor/formeditorview.cpp
+++ b/src/plugins/qmldesigner/components/formeditor/formeditorview.cpp
@@ -56,6 +56,7 @@
 #include <zoomaction.h>
 #include <nodeabstractproperty.h>
 #include <nodelistproperty.h>
+#include <commondefines.h>
 
 
 namespace QmlDesigner {
@@ -489,6 +490,10 @@ void FormEditorView::instancesPreviewImageChanged(const QVector<ModelNode> &/*no
 
 }
 
+void FormEditorView::instancesToken(const QString &/*tokenName*/, int /*tokenNumber*/, const QVector<ModelNode> &/*nodeVector*/)
+{
+}
+
 void FormEditorView::instancesChildrenChanged(const QVector<ModelNode> &nodeList)
 {
     QList<FormEditorItem*> itemNodeList;
@@ -502,6 +507,7 @@ void FormEditorView::instancesChildrenChanged(const QVector<ModelNode> &nodeList
     }
 
     m_currentTool->formEditorItemsChanged(itemNodeList);
+    m_currentTool->instancesParentChanged(itemNodeList);
 }
 
 void FormEditorView::rewriterBeginTransaction()
@@ -573,16 +579,22 @@ QmlItemNode findRecursiveQmlItemNode(const QmlObjectNode &firstQmlObjectNode)
     return QmlItemNode();
 }
 
-void FormEditorView::otherPropertyChanged(const QmlObjectNode &qmlObjectNode, const QString &propertyName)
+void FormEditorView::instancePropertyChange(const QList<QPair<ModelNode, QString> > &propertyList)
 {
-    Q_ASSERT(qmlObjectNode.isValid());
-
-    QmlItemNode itemNode = findRecursiveQmlItemNode(qmlObjectNode);
-
-    if (itemNode.isValid() && scene()->hasItemForQmlItemNode(itemNode)) {
-        m_scene->synchronizeOtherProperty(itemNode, propertyName);
-        m_currentTool->formEditorItemsChanged(QList<FormEditorItem*>() << m_scene->itemForQmlItemNode(itemNode));
+    typedef QPair<ModelNode, QString> NodePropertyPair;
+    foreach (const NodePropertyPair &nodePropertyPair, propertyList) {
+        const QmlItemNode itemNode(nodePropertyPair.first);
+        const QString propertyName = nodePropertyPair.second;
+        if (itemNode.isValid() && scene()->hasItemForQmlItemNode(itemNode)) {
+            static QStringList skipList = QStringList() << "x" << "y" << "width" << "height";
+            if (!skipList.contains(propertyName)) {
+                m_scene->synchronizeOtherProperty(itemNode, propertyName);
+                m_currentTool->formEditorItemsChanged(QList<FormEditorItem*>() << m_scene->itemForQmlItemNode(itemNode));
+            }
+        }
     }
+
+    QmlModelView::instancePropertyChange(propertyList);
 }
 
 void FormEditorView::updateGraphicsIndicators()
diff --git a/src/plugins/qmldesigner/components/formeditor/formeditorview.h b/src/plugins/qmldesigner/components/formeditor/formeditorview.h
index 2657d6ae3b07cf49ad7ae246951ba92dd390a946..b723c4bcef324fd76ff13e8572a490306bde37d2 100644
--- a/src/plugins/qmldesigner/components/formeditor/formeditorview.h
+++ b/src/plugins/qmldesigner/components/formeditor/formeditorview.h
@@ -108,6 +108,8 @@ public:
     void instancesRenderImageChanged(const QVector<ModelNode> &nodeList);
     void instancesPreviewImageChanged(const QVector<ModelNode> &nodeList);
     void instancesChildrenChanged(const QVector<ModelNode> &nodeList);
+    void instancePropertyChange(const QList<QPair<ModelNode, QString> > &propertyList);
+    void instancesToken(const QString &tokenName, int tokenNumber, const QVector<ModelNode> &nodeVector);
 
     void rewriterBeginTransaction();
     void rewriterEndTransaction();
@@ -123,7 +125,6 @@ signals:
     void ItemCreatorDeActivated();
 
 protected:
-    void otherPropertyChanged(const QmlObjectNode &qmlObjectNode, const QString &propertyName);
     void stateChanged(const QmlModelState &newQmlModelState, const QmlModelState &oldQmlModelState);
     void reset();
 
diff --git a/src/plugins/qmldesigner/components/formeditor/itemcreatortool.cpp b/src/plugins/qmldesigner/components/formeditor/itemcreatortool.cpp
index 4d6c3a769fb75eb7a70c597a527a20dcc66d6256..398dbe1f4d9e444d5a2ebb5468f679c7782b201c 100644
--- a/src/plugins/qmldesigner/components/formeditor/itemcreatortool.cpp
+++ b/src/plugins/qmldesigner/components/formeditor/itemcreatortool.cpp
@@ -145,6 +145,10 @@ void ItemCreatorTool::instancesCompleted(const QList<FormEditorItem*> &/*itemLis
 {
 }
 
+void ItemCreatorTool::instancesParentChanged(const QList<FormEditorItem *> &/*itemList*/)
+{
+}
+
 void ItemCreatorTool::setItemString(const QString &itemString)
 {
     m_itemString = itemString;
diff --git a/src/plugins/qmldesigner/components/formeditor/itemcreatortool.h b/src/plugins/qmldesigner/components/formeditor/itemcreatortool.h
index 6c41176020ac1224c34cb54e2dad73a91f5d454a..cd678b264707feb57b7c5dc98113e8638efe0a41 100644
--- a/src/plugins/qmldesigner/components/formeditor/itemcreatortool.h
+++ b/src/plugins/qmldesigner/components/formeditor/itemcreatortool.h
@@ -26,7 +26,7 @@
 ** 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 qt-info@nokia.com.
+** Nokia at info@qt.nokia.com.
 **
 **************************************************************************/
 
@@ -71,6 +71,7 @@ public:
     void formEditorItemsChanged(const QList<FormEditorItem*> &itemList);
 
     void instancesCompleted(const QList<FormEditorItem*> &itemList);
+    void instancesParentChanged(const QList<FormEditorItem *> &itemList);
 
     void setItemString(const QString &itemString);
 
diff --git a/src/plugins/qmldesigner/components/formeditor/manipulatorlayeritem.h b/src/plugins/qmldesigner/components/formeditor/manipulatorlayeritem.h
index ae91b5ef35dfd2ab9e5f4e383eb0c135ef2205e4..53478d01d70b019b8993895b65e3f74e171f0558 100644
--- a/src/plugins/qmldesigner/components/formeditor/manipulatorlayeritem.h
+++ b/src/plugins/qmldesigner/components/formeditor/manipulatorlayeritem.h
@@ -26,7 +26,7 @@
 ** 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 qt-info@nokia.com.
+** Nokia at info@qt.nokia.com.
 **
 **************************************************************************/
 
diff --git a/src/plugins/qmldesigner/components/formeditor/movemanipulator.cpp b/src/plugins/qmldesigner/components/formeditor/movemanipulator.cpp
index 14bcc54256659a7baae108900e8c584ecf3d4098..91926dc5dfda62d5f697aae23a2cc791f4715097 100644
--- a/src/plugins/qmldesigner/components/formeditor/movemanipulator.cpp
+++ b/src/plugins/qmldesigner/components/formeditor/movemanipulator.cpp
@@ -88,6 +88,35 @@ void MoveManipulator::setItems(const QList<FormEditorItem*> &itemList)
     }
 }
 
+void MoveManipulator::synchronizeParent(const QList<FormEditorItem*> &itemList, const ModelNode &parentNode)
+{
+    bool snapperUpdated = false;
+
+    foreach (FormEditorItem *item, itemList) {
+        if (m_itemList.contains(item)) {
+            QmlItemNode parentItemNode = QmlItemNode(parentNode);
+            if (parentItemNode.isValid()) {
+                if (snapperUpdated == false && m_snapper.containerFormEditorItem() != m_view->scene()->itemForQmlItemNode(parentItemNode)) {
+                    m_snapper.setContainerFormEditorItem(m_view->scene()->itemForQmlItemNode(parentItemNode));
+                    m_snapper.setTransformtionSpaceFormEditorItem(m_snapper.containerFormEditorItem());
+                    m_snapper.updateSnappingLines(m_itemList);
+                    updateHashes();
+                    snapperUpdated = true;
+                }
+            }
+        }
+    }
+
+    update(m_lastPosition, NoSnapping, UseBaseState);
+}
+
+void MoveManipulator::synchronizeInstanceParent(const QList<FormEditorItem*> &itemList)
+{
+    if (m_view->model() && !m_itemList.isEmpty())
+        synchronizeParent(itemList, m_itemList.first()->qmlItemNode().instanceParent());
+
+}
+
 void MoveManipulator::updateHashes()
 {
 //    foreach (FormEditorItem* item, m_itemList)
@@ -239,6 +268,7 @@ QHash<FormEditorItem*, QRectF> MoveManipulator::tanslatedBoundingRects(const QHa
 */
 void MoveManipulator::update(const QPointF& updatePoint, Snapping useSnapping, State stateToBeManipulated)
 {
+    m_lastPosition = updatePoint;
     deleteSnapLines(); //Since they position is changed and the item is moved the snapping lines are
                        //are obsolete. The new updated snapping lines (color and visibility) will be
                        //calculated in snapPoint() called in moveNode() later
@@ -311,6 +341,7 @@ void MoveManipulator::clear()
     m_beginPositionHash.clear();
     m_beginPositionInSceneSpaceHash.clear();
     m_itemList.clear();
+    m_lastPosition = QPointF();
 
     m_rewriterTransaction.commit();
 
@@ -332,24 +363,30 @@ void MoveManipulator::reparentTo(FormEditorItem *newParent)
     if (!itemsCanReparented())
         return;
 
-    foreach (FormEditorItem* item, m_itemList) {
-        if (!item || !item->qmlItemNode().isValid())
-            continue;
+    QVector<ModelNode> nodeReparentVector;
+    NodeAbstractProperty parentProperty;
 
-        QmlItemNode parent(newParent->qmlItemNode());
-        if (parent.isValid()) {
-            if (parent.hasDefaultProperty())
-                item->qmlItemNode().setParentProperty(parent.nodeAbstractProperty(parent.defaultProperty()));
-            else
-                item->qmlItemNode().setParentProperty(parent.nodeAbstractProperty("data"));
+    QmlItemNode parent(newParent->qmlItemNode());
+    if (parent.isValid()) {
+        if (parent.hasDefaultProperty()) {
+            parentProperty = parent.nodeAbstractProperty(parent.defaultProperty());
+        } else {
+            parentProperty = parent.nodeAbstractProperty("data");
         }
-    }
 
-    if (m_view->model()) {
-        m_snapper.setContainerFormEditorItem(newParent);
-        m_snapper.setTransformtionSpaceFormEditorItem(m_snapper.containerFormEditorItem());
-        m_snapper.updateSnappingLines(m_itemList);
-        updateHashes();
+        foreach (FormEditorItem* item, m_itemList) {
+            if (!item || !item->qmlItemNode().isValid())
+                continue;
+
+            if (parentProperty != item->qmlItemNode().modelNode().parentProperty())
+                nodeReparentVector.append(item->qmlItemNode().modelNode());
+
+        }
+
+        foreach (const ModelNode &nodeToReparented, nodeReparentVector)
+            parentProperty.reparentHere(nodeToReparented);
+
+        synchronizeParent(m_itemList, parentProperty.parentModelNode());
     }
 }
 
diff --git a/src/plugins/qmldesigner/components/formeditor/movemanipulator.h b/src/plugins/qmldesigner/components/formeditor/movemanipulator.h
index d24cb50716b2c3fe09940729345a30b82bf16f1d..671feef0388f72034760914fc5836b243c0345ba 100644
--- a/src/plugins/qmldesigner/components/formeditor/movemanipulator.h
+++ b/src/plugins/qmldesigner/components/formeditor/movemanipulator.h
@@ -69,7 +69,8 @@ public:
     ~MoveManipulator();
     void setItems(const QList<FormEditorItem*> &itemList);
     void setItem(FormEditorItem* item);
-
+    void synchronizeInstanceParent(const QList<FormEditorItem*> &itemList);
+    void synchronizeParent(const QList<FormEditorItem*> &itemList, const ModelNode &parentNode);
     void begin(const QPointF& beginPoint);
     void update(const QPointF& updatePoint, Snapping useSnapping, State stateToBeManipulated = UseActualState);
     void reparentTo(FormEditorItem *newParent);
@@ -122,6 +123,7 @@ private:
     QList<QGraphicsItem*> m_graphicsLineList;
     bool m_isActive;
     RewriterTransaction m_rewriterTransaction;
+    QPointF m_lastPosition;
 };
 
 }
diff --git a/src/plugins/qmldesigner/components/formeditor/movetool.cpp b/src/plugins/qmldesigner/components/formeditor/movetool.cpp
index 5b8226fff400b8a8361170147fe1af02a13893ce..0b68938bc6f5ed9f81ae2f12030b5769e94016bd 100644
--- a/src/plugins/qmldesigner/components/formeditor/movetool.cpp
+++ b/src/plugins/qmldesigner/components/formeditor/movetool.cpp
@@ -256,6 +256,11 @@ void MoveTool::instancesCompleted(const QList<FormEditorItem*> & /*itemList*/)
 {
 }
 
+void  MoveTool::instancesParentChanged(const QList<FormEditorItem *> &itemList)
+{
+    m_moveManipulator.synchronizeInstanceParent(itemList);
+}
+
 bool MoveTool::haveSameParent(const QList<FormEditorItem*> &itemList)
 {
     if (itemList.isEmpty())
diff --git a/src/plugins/qmldesigner/components/formeditor/movetool.h b/src/plugins/qmldesigner/components/formeditor/movetool.h
index be9227f714c525321338e36bb4ff628abff7fac4..9225e0989028020f2753505548ce58bd97c08a55 100644
--- a/src/plugins/qmldesigner/components/formeditor/movetool.h
+++ b/src/plugins/qmldesigner/components/formeditor/movetool.h
@@ -67,7 +67,8 @@ public:
 
     void selectedItemsChanged(const QList<FormEditorItem*> &itemList);
 
-    void instancesCompleted(const QList<FormEditorItem*> &/*itemList*/);
+    void instancesCompleted(const QList<FormEditorItem*> &itemList);
+    void instancesParentChanged(const QList<FormEditorItem *> &itemList);
 
     void updateMoveManipulator();
 
diff --git a/src/plugins/qmldesigner/components/formeditor/resizetool.cpp b/src/plugins/qmldesigner/components/formeditor/resizetool.cpp
index 3063daff4f2554b979484adfe6299420c81db0a3..fca319def1c8a0ce955a813c1d810da2face9288 100644
--- a/src/plugins/qmldesigner/components/formeditor/resizetool.cpp
+++ b/src/plugins/qmldesigner/components/formeditor/resizetool.cpp
@@ -196,8 +196,14 @@ void ResizeTool::formEditorItemsChanged(const QList<FormEditorItem*> &itemList)
     m_resizeIndicator.updateItems(itemList);
 }
 
- void ResizeTool::instancesCompleted(const QList<FormEditorItem*> &/*itemList*/)
- {
- }
+void ResizeTool::instancesCompleted(const QList<FormEditorItem*> &/*itemList*/)
+{
+}
+
+
+void ResizeTool::instancesParentChanged(const QList<FormEditorItem *> &/*itemList*/)
+{
+
+}
 
 }
diff --git a/src/plugins/qmldesigner/components/formeditor/resizetool.h b/src/plugins/qmldesigner/components/formeditor/resizetool.h
index d7ffa7a0501b958107ffe0c48c80c4f57ba9062a..68c935b67660abf6af32735e079272100872c6b0 100644
--- a/src/plugins/qmldesigner/components/formeditor/resizetool.h
+++ b/src/plugins/qmldesigner/components/formeditor/resizetool.h
@@ -67,9 +67,11 @@ public:
     void clear();
 
     void formEditorItemsChanged(const QList<FormEditorItem*> &itemList);
+    void instancesParentChanged(const QList<FormEditorItem *> &itemList);
 
     void instancesCompleted(const QList<FormEditorItem*> &itemList);
 
+
 private:
     SelectionIndicator m_selectionIndicator;
     ResizeIndicator m_resizeIndicator;
diff --git a/src/plugins/qmldesigner/components/formeditor/selectiontool.cpp b/src/plugins/qmldesigner/components/formeditor/selectiontool.cpp
index 110c75129349ebed9af02e93bc4ec2ba8484ef05..b79bf484ab374cf719f5558c3472b99a2d101939 100644
--- a/src/plugins/qmldesigner/components/formeditor/selectiontool.cpp
+++ b/src/plugins/qmldesigner/components/formeditor/selectiontool.cpp
@@ -275,6 +275,11 @@ void SelectionTool::instancesCompleted(const QList<FormEditorItem*> &/*itemList*
 {
 }
 
+void SelectionTool::instancesParentChanged(const QList<FormEditorItem *> &/*itemList*/)
+{
+
+}
+
 void SelectionTool::selectUnderPoint(QGraphicsSceneMouseEvent *event)
 {
     m_singleSelectionManipulator.begin(event->scenePos());
diff --git a/src/plugins/qmldesigner/components/formeditor/selectiontool.h b/src/plugins/qmldesigner/components/formeditor/selectiontool.h
index d9b1edcc37758b64816f50d67af883405e8fef46..a08c38dcaea321d33203d7ce4bda5135b7ac4c82 100644
--- a/src/plugins/qmldesigner/components/formeditor/selectiontool.h
+++ b/src/plugins/qmldesigner/components/formeditor/selectiontool.h
@@ -80,6 +80,8 @@ public:
     void formEditorItemsChanged(const QList<FormEditorItem*> &itemList);
 
     void instancesCompleted(const QList<FormEditorItem*> &itemList);
+    void instancesParentChanged(const QList<FormEditorItem *> &itemList);
+
 
     void selectUnderPoint(QGraphicsSceneMouseEvent *event);
 
diff --git a/src/plugins/qmldesigner/components/integration/componentview.cpp b/src/plugins/qmldesigner/components/integration/componentview.cpp
index a2d818d4dd260ecc2021290bfce2634518bb2fb0..539c57578d4d5b7d04f6b2392be7fc205b6acb71 100644
--- a/src/plugins/qmldesigner/components/integration/componentview.cpp
+++ b/src/plugins/qmldesigner/components/integration/componentview.cpp
@@ -212,6 +212,8 @@ void ComponentView::instanceInformationsChange(const QMultiHash<ModelNode, Infor
 void ComponentView::instancesRenderImageChanged(const QVector<ModelNode> &/*nodeList*/) {}
 void ComponentView::instancesPreviewImageChanged(const QVector<ModelNode> &/*nodeList*/) {}
 void ComponentView::instancesChildrenChanged(const QVector<ModelNode> &/*nodeList*/) {}
+void ComponentView::instancesToken(const QString &/*tokenName*/, int /*tokenNumber*/, const QVector<ModelNode> &/*nodeVector*/) {}
+
 void ComponentView::nodeSourceChanged(const ModelNode &, const QString & /*newNodeSource*/) {}
 
 void ComponentView::rewriterBeginTransaction() {}
diff --git a/src/plugins/qmldesigner/components/integration/componentview.h b/src/plugins/qmldesigner/components/integration/componentview.h
index fef34556b511b714afe8dcfe7d22170ac53d288b..3541fbc7602748f141d98a1a6ae94d3c132404f4 100644
--- a/src/plugins/qmldesigner/components/integration/componentview.h
+++ b/src/plugins/qmldesigner/components/integration/componentview.h
@@ -81,6 +81,8 @@ public:
     void instancesRenderImageChanged(const QVector<ModelNode> &nodeList);
     void instancesPreviewImageChanged(const QVector<ModelNode> &nodeList);
     void instancesChildrenChanged(const QVector<ModelNode> &nodeList);
+    void instancesToken(const QString &tokenName, int tokenNumber, const QVector<ModelNode> &nodeVector);
+
     void nodeSourceChanged(const ModelNode &modelNode, const QString &newNodeSource);
 
     void rewriterBeginTransaction();
diff --git a/src/plugins/qmldesigner/components/integration/designdocumentcontrollerview.cpp b/src/plugins/qmldesigner/components/integration/designdocumentcontrollerview.cpp
index ead2ab44a1df169ac3a66833ed18a5c6ebfbfe58..41c0e819cca54e73f00e398185d2fbf07da4917a 100644
--- a/src/plugins/qmldesigner/components/integration/designdocumentcontrollerview.cpp
+++ b/src/plugins/qmldesigner/components/integration/designdocumentcontrollerview.cpp
@@ -92,6 +92,11 @@ void DesignDocumentControllerView::instancesChildrenChanged(const QVector<ModelN
 
 }
 
+void DesignDocumentControllerView::instancesToken(const QString &/*tokenName*/, int /*tokenNumber*/, const QVector<ModelNode> &/*nodeVector*/)
+{
+
+}
+
 void DesignDocumentControllerView::nodeSourceChanged(const ModelNode &, const QString & /*newNodeSource*/)
 {
 
diff --git a/src/plugins/qmldesigner/components/integration/designdocumentcontrollerview.h b/src/plugins/qmldesigner/components/integration/designdocumentcontrollerview.h
index a915eeb4cd97a82da356aed627ffb74464dc72b5..6725ab4ea44c793434d451e61f3877e113c82aaa 100644
--- a/src/plugins/qmldesigner/components/integration/designdocumentcontrollerview.h
+++ b/src/plugins/qmldesigner/components/integration/designdocumentcontrollerview.h
@@ -68,6 +68,8 @@ public:
     void instancesRenderImageChanged(const QVector<ModelNode> &nodeList);
     void instancesPreviewImageChanged(const QVector<ModelNode> &nodeList);
     void instancesChildrenChanged(const QVector<ModelNode> &nodeList);
+    void instancesToken(const QString &tokenName, int tokenNumber, const QVector<ModelNode> &nodeVector);
+
     void nodeSourceChanged(const ModelNode &modelNode, const QString &newNodeSource);
 
     void rewriterBeginTransaction();
diff --git a/src/plugins/qmldesigner/components/itemlibrary/itemlibrarymodel.cpp b/src/plugins/qmldesigner/components/itemlibrary/itemlibrarymodel.cpp
index 0987c3fb313781f4a14ccc685d4cfdd7a7fe6aef..c454f45cd707c1924c70c8dfd44e7739cc2e3966 100644
--- a/src/plugins/qmldesigner/components/itemlibrary/itemlibrarymodel.cpp
+++ b/src/plugins/qmldesigner/components/itemlibrary/itemlibrarymodel.cpp
@@ -408,7 +408,7 @@ void ItemLibraryModel::update(ItemLibraryInfo *itemLibraryInfo, Model *model)
 
          bool valid = model->metaInfo(entry.typeName(), entry.majorVersion(), entry.minorVersion()).isValid();
 
-        if (valid && (entry.requiredImport().isEmpty() || model->hasImport(entryToImport(entry), true) || entry.forceImport())) {
+        if (valid && (entry.requiredImport().isEmpty() || model->hasImport(entryToImport(entry), true, true) || entry.forceImport())) {
             QString itemSectionName = entry.category();
             ItemLibrarySectionModel *sectionModel;
             ItemLibraryItemModel *itemModel;
diff --git a/src/plugins/qmldesigner/components/itemlibrary/itemlibraryview.cpp b/src/plugins/qmldesigner/components/itemlibrary/itemlibraryview.cpp
index 611257b27f0fabb7daf9e1fa93fd34b6e9d8d3c8..27133cffde8d684df072bbfc7c1519c147b8a2bf 100644
--- a/src/plugins/qmldesigner/components/itemlibrary/itemlibraryview.cpp
+++ b/src/plugins/qmldesigner/components/itemlibrary/itemlibraryview.cpp
@@ -172,6 +172,11 @@ void ItemLibraryView::instancesChildrenChanged(const QVector<ModelNode> &/*nodeL
 
 }
 
+void ItemLibraryView::instancesToken(const QString &/*tokenName*/, int /*tokenNumber*/, const QVector<ModelNode> &/*nodeVector*/)
+{
+
+}
+
 void ItemLibraryView::nodeSourceChanged(const ModelNode &, const QString & /*newNodeSource*/)
 {
 
diff --git a/src/plugins/qmldesigner/components/itemlibrary/itemlibraryview.h b/src/plugins/qmldesigner/components/itemlibrary/itemlibraryview.h
index 3c61139efe3b5ae498a5be5dc3297d8c3c8863eb..576de2254629273f0b519908b33e6ed738e75111 100644
--- a/src/plugins/qmldesigner/components/itemlibrary/itemlibraryview.h
+++ b/src/plugins/qmldesigner/components/itemlibrary/itemlibraryview.h
@@ -84,6 +84,8 @@ public:
     void instancesRenderImageChanged(const QVector<ModelNode> &nodeList);
     void instancesPreviewImageChanged(const QVector<ModelNode> &nodeList);
     void instancesChildrenChanged(const QVector<ModelNode> &nodeList);
+    void instancesToken(const QString &tokenName, int tokenNumber, const QVector<ModelNode> &nodeVector);
+
     void nodeSourceChanged(const ModelNode &modelNode, const QString &newNodeSource);
 
     void rewriterBeginTransaction();
diff --git a/src/plugins/qmldesigner/components/itemlibrary/itemlibrarywidget.cpp b/src/plugins/qmldesigner/components/itemlibrary/itemlibrarywidget.cpp
index 4b5c64a7833d9ce46deb02c6e961f2877c18a0a7..3fe167f2eebc34503f2f62f2921a287acffa310c 100644
--- a/src/plugins/qmldesigner/components/itemlibrary/itemlibrarywidget.cpp
+++ b/src/plugins/qmldesigner/components/itemlibrary/itemlibrarywidget.cpp
@@ -379,6 +379,7 @@ void ItemLibraryWidget::emitImportChecked()
 
 void ItemLibraryWidget::setImportFilter(FilterChangeFlag flag)
 {
+    return;
 
     static bool block = false;
     if (!m_d->model)
diff --git a/src/plugins/qmldesigner/components/logger/logger.cpp b/src/plugins/qmldesigner/components/logger/logger.cpp
index 5b3a331ae66022442c68c98900509f331f1c944c..42c4013b27566571a6862744f4bf056ea22984fb 100644
--- a/src/plugins/qmldesigner/components/logger/logger.cpp
+++ b/src/plugins/qmldesigner/components/logger/logger.cpp
@@ -26,7 +26,7 @@
 ** 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 qt-info@nokia.com.
+** Nokia at info@qt.nokia.com.
 **
 **************************************************************************/
 
diff --git a/src/plugins/qmldesigner/components/logger/logger.h b/src/plugins/qmldesigner/components/logger/logger.h
index 9f574b8175ee22593778c4a0a39514296cf54def..e5ff44d293cae137d5fd5972c26c0ed3ab27dc61 100644
--- a/src/plugins/qmldesigner/components/logger/logger.h
+++ b/src/plugins/qmldesigner/components/logger/logger.h
@@ -26,7 +26,7 @@
 ** 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 qt-info@nokia.com.
+** Nokia at info@qt.nokia.com.
 **
 **************************************************************************/
 
diff --git a/src/plugins/qmldesigner/components/propertyeditor/genericpropertieswidget.cpp b/src/plugins/qmldesigner/components/propertyeditor/genericpropertieswidget.cpp
index 0d9e194219eaa00873d46f390ad99d89550213f7..884ee0894baf6f6d0abde702c33616946d2cc5e9 100644
--- a/src/plugins/qmldesigner/components/propertyeditor/genericpropertieswidget.cpp
+++ b/src/plugins/qmldesigner/components/propertyeditor/genericpropertieswidget.cpp
@@ -26,7 +26,7 @@
 ** 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 qt-info@nokia.com.
+** Nokia at info@qt.nokia.com.
 **
 **************************************************************************/
 
diff --git a/src/plugins/qmldesigner/components/propertyeditor/genericpropertieswidget.h b/src/plugins/qmldesigner/components/propertyeditor/genericpropertieswidget.h
index a5340bbf28408ec04cbb1990256057d3b3ecd05b..70d5293562a1380b297713301f0825e4d77ad7e0 100644
--- a/src/plugins/qmldesigner/components/propertyeditor/genericpropertieswidget.h
+++ b/src/plugins/qmldesigner/components/propertyeditor/genericpropertieswidget.h
@@ -26,7 +26,7 @@
 ** 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 qt-info@nokia.com.
+** Nokia at info@qt.nokia.com.
 **
 **************************************************************************/
 
diff --git a/src/plugins/qmldesigner/components/stateseditor/HorizontalScrollBar.qml b/src/plugins/qmldesigner/components/stateseditor/HorizontalScrollBar.qml
index 699fdeef6ab5b323ea413b034f9f29895b579e82..738d521e06074c37b855f105bba1337e4fe6b05f 100644
--- a/src/plugins/qmldesigner/components/stateseditor/HorizontalScrollBar.qml
+++ b/src/plugins/qmldesigner/components/stateseditor/HorizontalScrollBar.qml
@@ -1,3 +1,35 @@
+/**************************************************************************
+**
+** 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.
+**
+**************************************************************************/
+
 import Qt 4.7
 
 Item {
diff --git a/src/plugins/qmldesigner/components/stateseditor/stateseditorimageprovider.h b/src/plugins/qmldesigner/components/stateseditor/stateseditorimageprovider.h
index f688102d4ac30c5e1f43a6e55b79000816e4fb25..f41c825f909afc5b68bf089651f6c2a285e1d7f2 100644
--- a/src/plugins/qmldesigner/components/stateseditor/stateseditorimageprovider.h
+++ b/src/plugins/qmldesigner/components/stateseditor/stateseditorimageprovider.h
@@ -26,7 +26,7 @@
 ** 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 qt-info@nokia.com.
+** Nokia at info@qt.nokia.com.
 **
 **************************************************************************/
 
diff --git a/src/plugins/qmldesigner/components/stateseditor/stateslist.qml b/src/plugins/qmldesigner/components/stateseditor/stateslist.qml
index 19b6bfb0681f8306c5b4c0a76a0c6a7acc69e65f..924258029e6b681ec69ede71fce59c963c7c69f2 100644
--- a/src/plugins/qmldesigner/components/stateseditor/stateslist.qml
+++ b/src/plugins/qmldesigner/components/stateseditor/stateslist.qml
@@ -1,3 +1,35 @@
+/**************************************************************************
+**
+** 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.
+**
+**************************************************************************/
+
 import Qt 4.7
 
 Rectangle {
diff --git a/src/plugins/qmldesigner/components/themeloader/qts60stylethemeio.cpp b/src/plugins/qmldesigner/components/themeloader/qts60stylethemeio.cpp
index db005b62677e48ececd73ec23033c4839aff6f0a..21013ecb0e4d1570684e83865b6c5bd53d50e469 100644
--- a/src/plugins/qmldesigner/components/themeloader/qts60stylethemeio.cpp
+++ b/src/plugins/qmldesigner/components/themeloader/qts60stylethemeio.cpp
@@ -26,7 +26,7 @@
 ** 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 qt-info@nokia.com.
+** Nokia at info@qt.nokia.com.
 **
 **************************************************************************/
 
diff --git a/src/plugins/qmldesigner/components/themeloader/qts60stylethemeio.h b/src/plugins/qmldesigner/components/themeloader/qts60stylethemeio.h
index f68b5b422a35f320b063655671eb87720e2b895e..bc27f95f88277a7ff9d2b57c0cf531a1a2fb678e 100644
--- a/src/plugins/qmldesigner/components/themeloader/qts60stylethemeio.h
+++ b/src/plugins/qmldesigner/components/themeloader/qts60stylethemeio.h
@@ -26,7 +26,7 @@
 ** 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 qt-info@nokia.com.
+** Nokia at info@qt.nokia.com.
 **
 **************************************************************************/
 
diff --git a/src/plugins/qmldesigner/designercore/exceptions/modificationgroupexception.cpp b/src/plugins/qmldesigner/designercore/exceptions/modificationgroupexception.cpp
index 20dde948b63fd444e275271a5e570114a0fdde11..57655ce68736474b234e8369facb4a844f769624 100644
--- a/src/plugins/qmldesigner/designercore/exceptions/modificationgroupexception.cpp
+++ b/src/plugins/qmldesigner/designercore/exceptions/modificationgroupexception.cpp
@@ -26,7 +26,7 @@
 ** 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 qt-info@nokia.com.
+** Nokia at info@qt.nokia.com.
 **
 **************************************************************************/
 
diff --git a/src/plugins/qmldesigner/designercore/include/abstractview.h b/src/plugins/qmldesigner/designercore/include/abstractview.h
index 88fc9204c9cd165066068cb1f4a563272f2a80a6..45b2a064d67f492fb2d2d64e3674c7904b63cd7b 100644
--- a/src/plugins/qmldesigner/designercore/include/abstractview.h
+++ b/src/plugins/qmldesigner/designercore/include/abstractview.h
@@ -121,8 +121,11 @@ public:
     void emitInstancesChildrenChanged(const QVector<ModelNode> &nodeList);
     void emitRewriterBeginTransaction();
     void emitRewriterEndTransaction();
+    void emitInstanceToken(const QString &token, int number, const QVector<ModelNode> &nodeVector);
     void emitActualStateChanged(const ModelNode &node);
 
+    void sendTokenToInstances(const QString &token, int number, const QVector<ModelNode> &nodeVector);
+
     virtual void modelAttached(Model *model);
     virtual void modelAboutToBeDetached(Model *model);
 
@@ -144,6 +147,8 @@ public:
     virtual void instancesRenderImageChanged(const QVector<ModelNode> &nodeList) = 0;
     virtual void instancesPreviewImageChanged(const QVector<ModelNode> &nodeList) = 0;
     virtual void instancesChildrenChanged(const QVector<ModelNode> &nodeList) = 0;
+    virtual void instancesToken(const QString &tokenName, int tokenNumber, const QVector<ModelNode> &nodeVector) = 0;
+
     virtual void nodeSourceChanged(const ModelNode &modelNode, const QString &newNodeSource) = 0;
 
     virtual void rewriterBeginTransaction() = 0;
diff --git a/src/plugins/qmldesigner/designercore/include/anchorline.h b/src/plugins/qmldesigner/designercore/include/anchorline.h
index 54d317719ac05a723bb2d7fa2f82d7d9c7319dfc..c41cebda88eadf9dc1cbae35bcb5ff6f8c2e390d 100644
--- a/src/plugins/qmldesigner/designercore/include/anchorline.h
+++ b/src/plugins/qmldesigner/designercore/include/anchorline.h
@@ -26,7 +26,7 @@
 ** 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 qt-info@nokia.com.
+** Nokia at info@qt.nokia.com.
 **
 **************************************************************************/
 
diff --git a/src/plugins/qmldesigner/designercore/include/bytearraymodifier.h b/src/plugins/qmldesigner/designercore/include/bytearraymodifier.h
index bfa2eb6a2d3b342df454ab17863d03349af1ee30..9110036c17042f26879481092eba9f128942a2b5 100644
--- a/src/plugins/qmldesigner/designercore/include/bytearraymodifier.h
+++ b/src/plugins/qmldesigner/designercore/include/bytearraymodifier.h
@@ -26,7 +26,7 @@
 ** 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 qt-info@nokia.com.
+** Nokia at info@qt.nokia.com.
 **
 **************************************************************************/
 
diff --git a/src/plugins/qmldesigner/designercore/include/model.h b/src/plugins/qmldesigner/designercore/include/model.h
index e5ce969dbed00dcfeb6448cc6fcc20c6d16d1fcf..b2d51001a43dd2ac1f207bac5b83013f1bfeef43 100644
--- a/src/plugins/qmldesigner/designercore/include/model.h
+++ b/src/plugins/qmldesigner/designercore/include/model.h
@@ -104,7 +104,7 @@ public:
     // Imports:
     QList<Import> imports() const;
     void changeImports(const QList<Import> &importsToBeAdded, const QList<Import> &importsToBeRemoved);
-    bool hasImport(const Import &import, bool ignoreAlias = true);
+    bool hasImport(const Import &import, bool ignoreAlias = true, bool allowHigherVersion = false);
 
     RewriterView *rewriterView() const;
 
diff --git a/src/plugins/qmldesigner/designercore/include/modificationgroupexception.h b/src/plugins/qmldesigner/designercore/include/modificationgroupexception.h
index b709522b26961dfece4158b4c1e29d053236c94a..fbfc93bc79f50720b4a9a1bdf4a9bdf07707e6fe 100644
--- a/src/plugins/qmldesigner/designercore/include/modificationgroupexception.h
+++ b/src/plugins/qmldesigner/designercore/include/modificationgroupexception.h
@@ -26,7 +26,7 @@
 ** 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 qt-info@nokia.com.
+** Nokia at info@qt.nokia.com.
 **
 **************************************************************************/
 
diff --git a/src/plugins/qmldesigner/designercore/include/modificationgrouptoken.h b/src/plugins/qmldesigner/designercore/include/modificationgrouptoken.h
index 56baa0e420585384da5ff271f057387a74609fd4..08ec189174f36dae3b5c96ef9c764d0f326bad99 100644
--- a/src/plugins/qmldesigner/designercore/include/modificationgrouptoken.h
+++ b/src/plugins/qmldesigner/designercore/include/modificationgrouptoken.h
@@ -26,7 +26,7 @@
 ** 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 qt-info@nokia.com.
+** Nokia at info@qt.nokia.com.
 **
 **************************************************************************/
 
diff --git a/src/plugins/qmldesigner/designercore/include/nodeabstractproperty.h b/src/plugins/qmldesigner/designercore/include/nodeabstractproperty.h
index 6260a3461c38555455c8ec4a812ed9907507992a..9e69201688d8101110fd9fb25b96d7ec64007de2 100644
--- a/src/plugins/qmldesigner/designercore/include/nodeabstractproperty.h
+++ b/src/plugins/qmldesigner/designercore/include/nodeabstractproperty.h
@@ -47,6 +47,11 @@ class NodeAbstractProperty : public AbstractProperty
     friend class QmlDesigner::ModelNode;
     friend class QmlDesigner::Internal::ModelPrivate;
     friend class QmlDesigner::AbstractProperty;
+
+    friend CORESHARED_EXPORT bool operator ==(const NodeAbstractProperty &property1, const NodeAbstractProperty &property2);
+    friend CORESHARED_EXPORT bool operator !=(const NodeAbstractProperty &property1, const NodeAbstractProperty &property2);
+    friend CORESHARED_EXPORT uint qHash(const NodeAbstractProperty& property);
+
 public:
     NodeAbstractProperty();
     NodeAbstractProperty(const NodeAbstractProperty &property, AbstractView *view);
@@ -63,6 +68,13 @@ protected:
     void reparentHere(const ModelNode &modelNode, bool isNodeList);
 };
 
+
+CORESHARED_EXPORT bool operator ==(const NodeAbstractProperty &property1, const NodeAbstractProperty &property2);
+CORESHARED_EXPORT bool operator !=(const NodeAbstractProperty &property1, const NodeAbstractProperty &property2);
+CORESHARED_EXPORT uint qHash(const NodeAbstractProperty& property);
+CORESHARED_EXPORT QTextStream& operator<<(QTextStream &stream, const NodeAbstractProperty &property);
+CORESHARED_EXPORT QDebug operator<<(QDebug debug, const NodeAbstractProperty &property);
+
 } // namespace QmlDesigner
 
 #endif // NODEABSTRACTPROPERTY_H
diff --git a/src/plugins/qmldesigner/designercore/include/nodeanchors.h b/src/plugins/qmldesigner/designercore/include/nodeanchors.h
index 8b09513a4d35b26ecd89f733aab29f497dd62aaa..4486ccceae53ef7d13f1ff7d5ffec7d7e0e6b129 100644
--- a/src/plugins/qmldesigner/designercore/include/nodeanchors.h
+++ b/src/plugins/qmldesigner/designercore/include/nodeanchors.h
@@ -26,7 +26,7 @@
 ** 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 qt-info@nokia.com.
+** Nokia at info@qt.nokia.com.
 **
 **************************************************************************/
 
diff --git a/src/plugins/qmldesigner/designercore/include/nodeinstanceview.h b/src/plugins/qmldesigner/designercore/include/nodeinstanceview.h
index 1cc469b411036b4f892fc17578a437053a0fd105..053da698e22307923cb5b1b20086e9b1c266a468 100644
--- a/src/plugins/qmldesigner/designercore/include/nodeinstanceview.h
+++ b/src/plugins/qmldesigner/designercore/include/nodeinstanceview.h
@@ -69,6 +69,8 @@ class ChangeIdsCommand;
 class RemoveInstancesCommand;
 class RemovePropertiesCommand;
 class CompleteComponentCommand;
+class InformationContainer;
+class TokenCommand;
 
 class CORESHARED_EXPORT NodeInstanceView : public AbstractView, public NodeInstanceClientInterface
 {
@@ -106,10 +108,12 @@ public:
     void instancesRenderImageChanged(const QVector<ModelNode> &nodeList);
     void instancesPreviewImageChanged(const QVector<ModelNode> &nodeList);
     void instancesChildrenChanged(const QVector<ModelNode> &nodeList);
+    void instancesToken(const QString &tokenName, int tokenNumber, const QVector<ModelNode> &nodeVector);
     void auxiliaryDataChanged(const ModelNode &node, const QString &name, const QVariant &data);
     void customNotification(const AbstractView *view, const QString &identifier, const QList<ModelNode> &nodeList, const QList<QVariant> &data);
     void nodeSourceChanged(const ModelNode &modelNode, const QString &newNodeSource);
 
+
     void rewriterBeginTransaction();
     void rewriterEndTransaction();
 
@@ -135,11 +139,14 @@ public:
     void childrenChanged(const ChildrenChangedCommand &command);
     void statePreviewImagesChanged(const StatePreviewImageChangedCommand &command);
     void componentCompleted(const ComponentCompletedCommand &command);
+    void token(const TokenCommand &command);
 
     QImage statePreviewImage(const ModelNode &stateNode) const;
 
     void setPathToQt(const QString &pathToQt);
 
+    void sendToken(const QString &token, int number, const QVector<ModelNode> &nodeVector);
+
 signals:
     void qmlPuppetCrashed();
 
@@ -161,6 +168,8 @@ private: // functions
     void clearStateInstance();
 
     NodeInstanceServerInterface *nodeInstanceServer() const;
+    QMultiHash<ModelNode, InformationName> informationChanged(const QVector<InformationContainer> &containerVector);
+
 
     CreateSceneCommand createCreateSceneCommand();
     ClearSceneCommand createClearSceneCommand() const;
diff --git a/src/plugins/qmldesigner/designercore/include/objectpropertybinding.h b/src/plugins/qmldesigner/designercore/include/objectpropertybinding.h
index 562a425f8a468170b1c1993e91442f75d828e070..db43ab59409905716da1c99bb586caf3cfb41fb1 100644
--- a/src/plugins/qmldesigner/designercore/include/objectpropertybinding.h
+++ b/src/plugins/qmldesigner/designercore/include/objectpropertybinding.h
@@ -26,7 +26,7 @@
 ** 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 qt-info@nokia.com.
+** Nokia at info@qt.nokia.com.
 **
 **************************************************************************/
 
diff --git a/src/plugins/qmldesigner/designercore/include/propertybinding.h b/src/plugins/qmldesigner/designercore/include/propertybinding.h
index 775e1245307d8fd283f5ae992dad8184d8445971..85487a1e4fef16fbc82b3545afccbb9e59ac6bdb 100644
--- a/src/plugins/qmldesigner/designercore/include/propertybinding.h
+++ b/src/plugins/qmldesigner/designercore/include/propertybinding.h
@@ -26,7 +26,7 @@
 ** 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 qt-info@nokia.com.
+** Nokia at info@qt.nokia.com.
 **
 **************************************************************************/
 
diff --git a/src/plugins/qmldesigner/designercore/include/qmlmodelview.h b/src/plugins/qmldesigner/designercore/include/qmlmodelview.h
index 4b72f12481b9438f3780fa28e6b2ac12e21e56c0..d77bfbb6cb3e8396eda8771af54519d5e1ba17a6 100644
--- a/src/plugins/qmldesigner/designercore/include/qmlmodelview.h
+++ b/src/plugins/qmldesigner/designercore/include/qmlmodelview.h
@@ -98,6 +98,7 @@ public:
     void instancesRenderImageChanged(const QVector<ModelNode> &nodeList);
     void instancesPreviewImageChanged(const QVector<ModelNode> &nodeList);
     void instancesChildrenChanged(const QVector<ModelNode> &nodeList);
+    void instancesToken(const QString &tokenName, int tokenNumber, const QVector<ModelNode> &nodeVector);
 
     void rewriterBeginTransaction();
     void rewriterEndTransaction();
diff --git a/src/plugins/qmldesigner/designercore/include/replaceallobjectdefinitionsvisitor.h b/src/plugins/qmldesigner/designercore/include/replaceallobjectdefinitionsvisitor.h
index baa92ffc6a216b9d968e9bd83cc223af6b712207..98d901f11991892fb493f727b980f36f242ff854 100644
--- a/src/plugins/qmldesigner/designercore/include/replaceallobjectdefinitionsvisitor.h
+++ b/src/plugins/qmldesigner/designercore/include/replaceallobjectdefinitionsvisitor.h
@@ -26,7 +26,7 @@
 ** 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 qt-info@nokia.com.
+** Nokia at info@qt.nokia.com.
 **
 **************************************************************************/
 
diff --git a/src/plugins/qmldesigner/designercore/include/rewriterview.h b/src/plugins/qmldesigner/designercore/include/rewriterview.h
index 2f3bf35e5c7d50b509422988e7621006c2015a0f..e78b6e733a9873a32bf97352487de8686a775ee7 100644
--- a/src/plugins/qmldesigner/designercore/include/rewriterview.h
+++ b/src/plugins/qmldesigner/designercore/include/rewriterview.h
@@ -143,6 +143,8 @@ public:
     void instancesRenderImageChanged(const QVector<ModelNode> &nodeList);
     void instancesPreviewImageChanged(const QVector<ModelNode> &nodeList);
     void instancesChildrenChanged(const QVector<ModelNode> &nodeList);
+    void instancesToken(const QString &tokenName, int tokenNumber, const QVector<ModelNode> &nodeVector);
+
     void nodeSourceChanged(const ModelNode &modelNode, const QString &newNodeSource);
 
     void rewriterBeginTransaction();
diff --git a/src/plugins/qmldesigner/designercore/include/stylemanager.h b/src/plugins/qmldesigner/designercore/include/stylemanager.h
index 8af2b28f209aefc4d0fae37e43ad60f7acab8e14..838e720d8ab0652512b68849fcc59516bbc4f1ef 100644
--- a/src/plugins/qmldesigner/designercore/include/stylemanager.h
+++ b/src/plugins/qmldesigner/designercore/include/stylemanager.h
@@ -26,7 +26,7 @@
 ** 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 qt-info@nokia.com.
+** Nokia at info@qt.nokia.com.
 **
 **************************************************************************/
 
diff --git a/src/plugins/qmldesigner/designercore/include/widgetplugin_helper.h b/src/plugins/qmldesigner/designercore/include/widgetplugin_helper.h
index 211c31b06c9b7d119ac0507583a9d16431d21ca1..83414ab514aee207992a3c52fe7c90f5419de073 100644
--- a/src/plugins/qmldesigner/designercore/include/widgetplugin_helper.h
+++ b/src/plugins/qmldesigner/designercore/include/widgetplugin_helper.h
@@ -26,7 +26,7 @@
 ** 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 qt-info@nokia.com.
+** Nokia at info@qt.nokia.com.
 **
 **************************************************************************/
 
diff --git a/src/plugins/qmldesigner/designercore/include/widgetqueryview.h b/src/plugins/qmldesigner/designercore/include/widgetqueryview.h
index 42de5494eb47f3e4378b322075f86f8c0e027184..5a87046bfb7202098db3d3e6c24085d7b42450f4 100644
--- a/src/plugins/qmldesigner/designercore/include/widgetqueryview.h
+++ b/src/plugins/qmldesigner/designercore/include/widgetqueryview.h
@@ -26,7 +26,7 @@
 ** 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 qt-info@nokia.com.
+** Nokia at info@qt.nokia.com.
 **
 **************************************************************************/
 
diff --git a/src/plugins/qmldesigner/designercore/instances/nodeinstanceserverproxy.cpp b/src/plugins/qmldesigner/designercore/instances/nodeinstanceserverproxy.cpp
index daccbb77c8f3baa5857cf7971b2e04d45ce2931f..8c8f1bef42a360bab8c6b37787f0fbc34f92c8fd 100644
--- a/src/plugins/qmldesigner/designercore/instances/nodeinstanceserverproxy.cpp
+++ b/src/plugins/qmldesigner/designercore/instances/nodeinstanceserverproxy.cpp
@@ -65,6 +65,7 @@
 #include "imagecontainer.h"
 #include "statepreviewimagechangedcommand.h"
 #include "componentcompletedcommand.h"
+#include "tokencommand.h"
 
 #include "synchronizecommand.h"
 
@@ -203,7 +204,7 @@ NodeInstanceServerProxy::NodeInstanceServerProxy(NodeInstanceView *nodeInstanceV
        QMessageBox::warning(0, tr("Cannot Find QML Puppet Executable"),
                             tr("The executable of the QML Puppet process (%1) cannot be found. "
                                "Please check your installation. "
-                               "QML Puppet is a process which runs in the background to render the the items.").
+                               "QML Puppet is a process which runs in the background to render the items.").
                             arg(applicationPath));
    }
 }
@@ -241,6 +242,7 @@ void NodeInstanceServerProxy::dispatchCommand(const QVariant &command)
     static const int statePreviewImageChangedCommandType = QMetaType::type("StatePreviewImageChangedCommand");
     static const int componentCompletedCommandType = QMetaType::type("ComponentCompletedCommand");
     static const int synchronizeCommandType = QMetaType::type("SynchronizeCommand");
+    static const int tokenCommandType = QMetaType::type("TokenCommand");
 
     if (command.userType() ==  informationChangedCommandType)
         nodeInstanceClient()->informationChanged(command.value<InformationChangedCommand>());
@@ -254,6 +256,8 @@ void NodeInstanceServerProxy::dispatchCommand(const QVariant &command)
         nodeInstanceClient()->statePreviewImagesChanged(command.value<StatePreviewImageChangedCommand>());
     else if (command.userType() == componentCompletedCommandType)
         nodeInstanceClient()->componentCompleted(command.value<ComponentCompletedCommand>());
+    else if (command.userType() == tokenCommandType)
+        nodeInstanceClient()->token(command.value<TokenCommand>());
     else if (command.userType() == synchronizeCommandType) {
         SynchronizeCommand synchronizeCommand = command.value<SynchronizeCommand>();
         m_synchronizeId = synchronizeCommand.synchronizeId();
@@ -523,4 +527,9 @@ void NodeInstanceServerProxy::changeNodeSource(const ChangeNodeSourceCommand &co
     writeCommand(QVariant::fromValue(command));
 }
 
+void NodeInstanceServerProxy::token(const TokenCommand &command)
+{
+    writeCommand(QVariant::fromValue(command));
+}
+
 } // namespace QmlDesigner
diff --git a/src/plugins/qmldesigner/designercore/instances/nodeinstanceserverproxy.h b/src/plugins/qmldesigner/designercore/instances/nodeinstanceserverproxy.h
index 6197694df0e588f567ec1a4871f9116c4c733191..42bf3e95ce680581bd818905ffdd2bca41caf9e8 100644
--- a/src/plugins/qmldesigner/designercore/instances/nodeinstanceserverproxy.h
+++ b/src/plugins/qmldesigner/designercore/instances/nodeinstanceserverproxy.h
@@ -71,6 +71,7 @@ public:
     void changeState(const ChangeStateCommand &command);
     void completeComponent(const CompleteComponentCommand &command);
     void changeNodeSource(const ChangeNodeSourceCommand &command);
+    void token(const TokenCommand &command);
 
 protected:
     void writeCommand(const QVariant &command);
diff --git a/src/plugins/qmldesigner/designercore/instances/nodeinstanceview.cpp b/src/plugins/qmldesigner/designercore/instances/nodeinstanceview.cpp
index 65c5a1bfba6a0e73da9757c9d320ff7492f848fa..b21add18e2bb9c9c763b535e4355f07ecd9a54d2 100644
--- a/src/plugins/qmldesigner/designercore/instances/nodeinstanceview.cpp
+++ b/src/plugins/qmldesigner/designercore/instances/nodeinstanceview.cpp
@@ -80,6 +80,7 @@
 #include "statepreviewimagechangedcommand.h"
 #include "completecomponentcommand.h"
 #include "componentcompletedcommand.h"
+#include "tokencommand.h"
 
 #include "nodeinstanceserverproxy.h"
 
@@ -483,6 +484,11 @@ void NodeInstanceView::instancesChildrenChanged(const QVector<ModelNode> &/*node
 
 }
 
+void NodeInstanceView::instancesToken(const QString &/*tokenName*/, int /*tokenNumber*/, const QVector<ModelNode> &/*nodeVector*/)
+{
+
+}
+
 void NodeInstanceView::auxiliaryDataChanged(const ModelNode &node, const QString &name, const QVariant &data)
 {
     if (node.isRootNode() && (name == "width" || name == "height")) {
@@ -1058,14 +1064,11 @@ void NodeInstanceView::pixmapChanged(const PixmapChangedCommand &command)
         emitInstancesRenderImageChanged(renderImageChangeSet.toList().toVector());
 }
 
-void NodeInstanceView::informationChanged(const InformationChangedCommand &command)
+QMultiHash<ModelNode, InformationName> NodeInstanceView::informationChanged(const QVector<InformationContainer> &containerVector)
 {
-    if (!model())
-        return;
-
     QMultiHash<ModelNode, InformationName> informationChangeHash;
 
-    foreach(const InformationContainer &container, command.informations()) {
+    foreach (const InformationContainer &container, containerVector) {
         if (hasInstanceForId(container.instanceId())) {
             NodeInstance instance = instanceForId(container.instanceId());
             if (instance.isValid()) {
@@ -1076,6 +1079,16 @@ void NodeInstanceView::informationChanged(const InformationChangedCommand &comma
         }
     }
 
+    return informationChangeHash;
+}
+
+void NodeInstanceView::informationChanged(const InformationChangedCommand &command)
+{
+    if (!model())
+        return;
+
+    QMultiHash<ModelNode, InformationName> informationChangeHash = informationChanged(command.informations());
+
     if (!informationChangeHash.isEmpty())
         emitInstanceInformationsChange(informationChangeHash);
 }
@@ -1138,6 +1151,7 @@ void NodeInstanceView::childrenChanged(const ChildrenChangedCommand &command)
      if (!model())
         return;
 
+
     QVector<ModelNode> childNodeVector;
 
     foreach(qint32 instanceId, command.childrenInstances()) {
@@ -1148,8 +1162,39 @@ void NodeInstanceView::childrenChanged(const ChildrenChangedCommand &command)
         }
     }
 
+    QMultiHash<ModelNode, InformationName> informationChangeHash = informationChanged(command.informations());
+
+    if (!informationChangeHash.isEmpty())
+        emitInstanceInformationsChange(informationChangeHash);
+
     if (!childNodeVector.isEmpty())
         emitInstancesChildrenChanged(childNodeVector);
 }
 
+void NodeInstanceView::token(const TokenCommand &command)
+{
+    if (!model())
+        return;
+
+    QVector<ModelNode> nodeVector;
+
+    foreach (const qint32 &instanceId, command.instances()) {
+        if (hasModelNodeForInternalId(instanceId)) {
+            nodeVector.append(modelNodeForInternalId(instanceId));
+        }
+    }
+
+
+    emitInstanceToken(command.tokenName(), command.tokenNumber(), nodeVector);
+}
+
+void NodeInstanceView::sendToken(const QString &token, int number, const QVector<ModelNode> &nodeVector)
+{
+    QVector<qint32> instanceIdVector;
+    foreach (const ModelNode &node, nodeVector)
+        instanceIdVector.append(node.internalId());
+
+    nodeInstanceServer()->token(TokenCommand(token, number, instanceIdVector));
+}
+
 }
diff --git a/src/plugins/qmldesigner/designercore/model/abstractview.cpp b/src/plugins/qmldesigner/designercore/model/abstractview.cpp
index 4117986b1ea65eaf366d54b9a6ee4e7c68c2be31..b8f589b6694e064a8543de97b73f9c5c588274a1 100644
--- a/src/plugins/qmldesigner/designercore/model/abstractview.cpp
+++ b/src/plugins/qmldesigner/designercore/model/abstractview.cpp
@@ -429,6 +429,18 @@ void AbstractView::emitRewriterBeginTransaction()
         model()->m_d->notifyRewriterBeginTransaction();
 }
 
+void AbstractView::sendTokenToInstances(const QString &token, int number, const QVector<ModelNode> &nodeVector)
+{
+    if (nodeInstanceView())
+        nodeInstanceView()->sendToken(token, number, nodeVector);
+}
+
+void AbstractView::emitInstanceToken(const QString &token, int number, const QVector<ModelNode> &nodeVector)
+{
+    if (nodeInstanceView())
+        model()->m_d->notifyInstanceToken(token, number, nodeVector);
+}
+
 void AbstractView::emitRewriterEndTransaction()
 {
     if (model())
diff --git a/src/plugins/qmldesigner/designercore/model/anchorline.cpp b/src/plugins/qmldesigner/designercore/model/anchorline.cpp
index ee8159ec50ece77be90353764a47d23321d4a791..b8fccdd4a8411fa2b7a436b965ab71c6fad19cc5 100644
--- a/src/plugins/qmldesigner/designercore/model/anchorline.cpp
+++ b/src/plugins/qmldesigner/designercore/model/anchorline.cpp
@@ -26,7 +26,7 @@
 ** 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 qt-info@nokia.com.
+** Nokia at info@qt.nokia.com.
 **
 **************************************************************************/
 
diff --git a/src/plugins/qmldesigner/designercore/model/bytearraymodifier.cpp b/src/plugins/qmldesigner/designercore/model/bytearraymodifier.cpp
index 2df0d4246bf0e27b582666b84921a4934688acca..c06765307096210de434bf0204d08ff5e7233d10 100644
--- a/src/plugins/qmldesigner/designercore/model/bytearraymodifier.cpp
+++ b/src/plugins/qmldesigner/designercore/model/bytearraymodifier.cpp
@@ -26,7 +26,7 @@
 ** 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 qt-info@nokia.com.
+** Nokia at info@qt.nokia.com.
 **
 **************************************************************************/
 
diff --git a/src/plugins/qmldesigner/designercore/model/copyhelper.cpp b/src/plugins/qmldesigner/designercore/model/copyhelper.cpp
index 7a9502c658d35a349793e2c5704df15236c7a343..1a7ea3b7a07eac48244a012a3d0d329424ffa932 100644
--- a/src/plugins/qmldesigner/designercore/model/copyhelper.cpp
+++ b/src/plugins/qmldesigner/designercore/model/copyhelper.cpp
@@ -26,7 +26,7 @@
 ** 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 qt-info@nokia.com.
+** Nokia at info@qt.nokia.com.
 **
 **************************************************************************/
 
diff --git a/src/plugins/qmldesigner/designercore/model/copyhelper.h b/src/plugins/qmldesigner/designercore/model/copyhelper.h
index bdfd9c8de5e7a2417128793b702b26744e12e49a..61f531320e9a317d06db21e3e3019297f0e713f2 100644
--- a/src/plugins/qmldesigner/designercore/model/copyhelper.h
+++ b/src/plugins/qmldesigner/designercore/model/copyhelper.h
@@ -26,7 +26,7 @@
 ** 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 qt-info@nokia.com.
+** Nokia at info@qt.nokia.com.
 **
 **************************************************************************/
 
diff --git a/src/plugins/qmldesigner/designercore/model/model.cpp b/src/plugins/qmldesigner/designercore/model/model.cpp
index 18404c3054b9b48078bcbeb8d49ebc3b8e20bc35..938026c3f9f42093dd4627910bc62c119f01b15e 100644
--- a/src/plugins/qmldesigner/designercore/model/model.cpp
+++ b/src/plugins/qmldesigner/designercore/model/model.cpp
@@ -681,6 +681,36 @@ void ModelPrivate::notifyRewriterEndTransaction()
     }
 }
 
+void ModelPrivate::notifyInstanceToken(const QString &token, int number, const QVector<ModelNode> &nodeVector)
+{
+    bool resetModel = false;
+    QString description;
+
+    QVector<Internal::InternalNode::Pointer> internalVector(toInternalNodeVector(nodeVector));
+
+
+    try {
+        if (rewriterView())
+            rewriterView()->instancesToken(token, number, toModelNodeVector(internalVector, rewriterView()));
+    } catch (RewritingException &e) {
+        description = e.description();
+        resetModel = true;
+    }
+
+    foreach (const QWeakPointer<AbstractView> &view, m_viewList) {
+        Q_ASSERT(view != 0);
+        view->instancesToken(token, number, toModelNodeVector(internalVector, view.data()));
+    }
+
+    if (nodeInstanceView()) {
+        nodeInstanceView()->instancesToken(token, number, toModelNodeVector(internalVector, nodeInstanceView()));
+    }
+
+    if (resetModel) {
+        resetModelByRewriter(description);
+    }
+}
+
 void ModelPrivate::notifyCustomNotification(const AbstractView *senderView, const QString &identifier, const QList<ModelNode> &nodeList, const QList<QVariant> &data)
 {
     bool resetModel = false;
@@ -1742,7 +1772,39 @@ void Model::changeImports(const QList<Import> &importsToBeAdded, const QList<Imp
     m_d->changeImports(importsToBeAdded, importsToBeRemoved);
 }
 
-bool Model::hasImport(const Import &import, bool ignoreAlias)
+
+static bool compareVersions(const QString &version1, const QString &version2, bool allowHigherVersion)
+{
+    if (version1 == version2)
+        return true;
+    if (!allowHigherVersion)
+        return false;
+    QStringList version1List = version1.split('.');
+    QStringList version2List = version2.split('.');
+    if (version1List.count() == 2 && version2List.count() == 2) {
+        bool ok;
+        int major1 = version1List.first().toInt(&ok);
+        if (!ok)
+            return false;
+        int major2 = version2List.first().toInt(&ok);
+        if (!ok)
+            return false;
+        if (major1 >= major2) {
+            int minor1 = version1List.last().toInt(&ok);
+            if (!ok)
+                return false;
+            int minor2 = version2List.last().toInt(&ok);
+            if (!ok)
+                return false;
+            if (minor1 >= minor2)
+                return true;
+        }
+    }
+
+    return false;
+}
+
+bool Model::hasImport(const Import &import, bool ignoreAlias, bool allowHigherVersion)
 {
     if (imports().contains(import))
         return true;
@@ -1751,10 +1813,10 @@ bool Model::hasImport(const Import &import, bool ignoreAlias)
 
     foreach (const Import &existingImport, imports()) {
         if (existingImport.isFileImport() && import.isFileImport())
-            if (existingImport.file() == import.file() && existingImport.version() == import.version())
+            if (existingImport.file() == import.file() && compareVersions(existingImport.version(), import.version(), allowHigherVersion))
                 return true;
         if (existingImport.isLibraryImport() && import.isLibraryImport())
-            if (existingImport.url() == import.url()  && existingImport.version() == import.version())
+            if (existingImport.url() == import.url()  && compareVersions(existingImport.version(), import.version(), allowHigherVersion))
                 return true;
     }
     return false;
diff --git a/src/plugins/qmldesigner/designercore/model/model_p.h b/src/plugins/qmldesigner/designercore/model/model_p.h
index c806b1b82ae7e27f7117c1488bbce33333ae1fa2..bc6ff14564e2def5c7505810903501cd5781043c 100644
--- a/src/plugins/qmldesigner/designercore/model/model_p.h
+++ b/src/plugins/qmldesigner/designercore/model/model_p.h
@@ -156,12 +156,13 @@ public:
     void notifyInstancesRenderImageChanged(const QVector<ModelNode> &nodeList);
     void notifyInstancesPreviewImageChanged(const QVector<ModelNode> &nodeList);
     void notifyInstancesChildrenChanged(const QVector<ModelNode> &nodeList);
+    void notifyInstanceToken(const QString &token, int number, const QVector<ModelNode> &nodeVector);
+
     void notifyActualStateChanged(const ModelNode &node);
 
     void notifyRewriterBeginTransaction();
     void notifyRewriterEndTransaction();
 
-
     void setSelectedNodes(const QList<InternalNodePointer> &selectedNodeList);
     void clearSelectedNodes();
     QList<InternalNodePointer> selectedNodes() const;
diff --git a/src/plugins/qmldesigner/designercore/model/modelnodecontextmenu.cpp b/src/plugins/qmldesigner/designercore/model/modelnodecontextmenu.cpp
index 780c090730d7b869fcde97443f70c9f308f4ec02..88cb7278a571ea85c17bde56cefc7ebee497c52d 100644
--- a/src/plugins/qmldesigner/designercore/model/modelnodecontextmenu.cpp
+++ b/src/plugins/qmldesigner/designercore/model/modelnodecontextmenu.cpp
@@ -1,3 +1,35 @@
+/**************************************************************************
+**
+** 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 "modelnodecontextmenu.h"
 #include <QApplication>
 #include <coreplugin/editormanager/editormanager.h>
diff --git a/src/plugins/qmldesigner/designercore/model/modelnodecontextmenu.h b/src/plugins/qmldesigner/designercore/model/modelnodecontextmenu.h
index bbec61c21073d2ee2855303ff9c7b7f5c17b2d17..df37142954f50da27fe9d7685395195431632912 100644
--- a/src/plugins/qmldesigner/designercore/model/modelnodecontextmenu.h
+++ b/src/plugins/qmldesigner/designercore/model/modelnodecontextmenu.h
@@ -1,3 +1,35 @@
+/**************************************************************************
+**
+** 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 MODELNODECONTEXTMENU_H
 #define MODELNODECONTEXTMENU_H
 
diff --git a/src/plugins/qmldesigner/designercore/model/modelrewriter.cpp b/src/plugins/qmldesigner/designercore/model/modelrewriter.cpp
index e57f6f24178c8fabd050a737d740a17c8af84398..a13345493f779457c0266e08a70ca58d66c07171 100644
--- a/src/plugins/qmldesigner/designercore/model/modelrewriter.cpp
+++ b/src/plugins/qmldesigner/designercore/model/modelrewriter.cpp
@@ -26,7 +26,7 @@
 ** 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 qt-info@nokia.com.
+** Nokia at info@qt.nokia.com.
 **
 **************************************************************************/
 
diff --git a/src/plugins/qmldesigner/designercore/model/modelrewriter.h b/src/plugins/qmldesigner/designercore/model/modelrewriter.h
index fdbb21484829c477b9f7bfe4523675ac9456b223..05f358fa98e744ae438d9453dc4b701b0ee628cb 100644
--- a/src/plugins/qmldesigner/designercore/model/modelrewriter.h
+++ b/src/plugins/qmldesigner/designercore/model/modelrewriter.h
@@ -26,7 +26,7 @@
 ** 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 qt-info@nokia.com.
+** Nokia at info@qt.nokia.com.
 **
 **************************************************************************/
 
diff --git a/src/plugins/qmldesigner/designercore/model/modificationgrouptoken.cpp b/src/plugins/qmldesigner/designercore/model/modificationgrouptoken.cpp
index 5451717da30c9ec534c2418d8b4d3870fa0bf4a4..dbadf522ce8c24876ceaefb20bd4bc40fb0ef745 100644
--- a/src/plugins/qmldesigner/designercore/model/modificationgrouptoken.cpp
+++ b/src/plugins/qmldesigner/designercore/model/modificationgrouptoken.cpp
@@ -26,7 +26,7 @@
 ** 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 qt-info@nokia.com.
+** Nokia at info@qt.nokia.com.
 **
 **************************************************************************/
 
diff --git a/src/plugins/qmldesigner/designercore/model/nodeabstractproperty.cpp b/src/plugins/qmldesigner/designercore/model/nodeabstractproperty.cpp
index 530269f22a36ad69eb5fb0e47d633c9587abc2d6..8ebd1d4a7e06eeb83884df02d8f025ea60744fd0 100644
--- a/src/plugins/qmldesigner/designercore/model/nodeabstractproperty.cpp
+++ b/src/plugins/qmldesigner/designercore/model/nodeabstractproperty.cpp
@@ -141,4 +141,36 @@ QList<ModelNode> NodeAbstractProperty::allSubNodes()
     return toModelNodeList(property->allSubNodes(), view());
 }
 
+/*!
+  \brief Returns if the the two property handles reference the same property in the same node
+*/
+bool operator ==(const NodeAbstractProperty &property1, const NodeAbstractProperty &property2)
+{
+    return AbstractProperty(property1) == AbstractProperty(property2);
+}
+
+/*!
+  \brief Returns if the the two property handles do not reference the same property in the same node
+  */
+bool operator !=(const NodeAbstractProperty &property1, const NodeAbstractProperty &property2)
+{
+    return !(property1 == property2);
+}
+
+uint qHash(const NodeAbstractProperty &property)
+{
+    return qHash(AbstractProperty(property));
+}
+
+QDebug operator<<(QDebug debug, const NodeAbstractProperty &property)
+{
+    return debug.nospace() << "NodeAbstractProperty(" << (property.isValid() ? property.name() : QLatin1String("invalid")) << ')';
+}
+
+QTextStream& operator<<(QTextStream &stream, const NodeAbstractProperty &property)
+{
+    stream << "NodeAbstractProperty(" << property.name() << ')';
+
+    return stream;
+}
 } // namespace QmlDesigner
diff --git a/src/plugins/qmldesigner/designercore/model/nodeanchors.cpp b/src/plugins/qmldesigner/designercore/model/nodeanchors.cpp
index 83a1ac51445808f7f2692d7e7ed386f91254bbd3..e58778d5be94d15a7723057cabfd67f986f27b10 100644
--- a/src/plugins/qmldesigner/designercore/model/nodeanchors.cpp
+++ b/src/plugins/qmldesigner/designercore/model/nodeanchors.cpp
@@ -26,7 +26,7 @@
 ** 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 qt-info@nokia.com.
+** Nokia at info@qt.nokia.com.
 **
 **************************************************************************/
 
diff --git a/src/plugins/qmldesigner/designercore/model/objectpropertybinding.cpp b/src/plugins/qmldesigner/designercore/model/objectpropertybinding.cpp
index 771b0f0146230d41e80d363c72fd7fba819a89ff..f541abb87e8a44d991d3696ce50215f9e1cdb7f0 100644
--- a/src/plugins/qmldesigner/designercore/model/objectpropertybinding.cpp
+++ b/src/plugins/qmldesigner/designercore/model/objectpropertybinding.cpp
@@ -26,7 +26,7 @@
 ** 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 qt-info@nokia.com.
+** Nokia at info@qt.nokia.com.
 **
 **************************************************************************/
 
diff --git a/src/plugins/qmldesigner/designercore/model/parsedqml.cpp b/src/plugins/qmldesigner/designercore/model/parsedqml.cpp
index 733c31c38f09210a3570610663171f125a3c6fc1..543703df0406a02faad0578008cd3bce9d3ae70b 100644
--- a/src/plugins/qmldesigner/designercore/model/parsedqml.cpp
+++ b/src/plugins/qmldesigner/designercore/model/parsedqml.cpp
@@ -26,7 +26,7 @@
 ** 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 qt-info@nokia.com.
+** Nokia at info@qt.nokia.com.
 **
 **************************************************************************/
 
diff --git a/src/plugins/qmldesigner/designercore/model/parsedqml.h b/src/plugins/qmldesigner/designercore/model/parsedqml.h
index 0bba6c57b87b8d18580a4eeca4bce82c7c1a407e..9b4cbecc7d3f16fb796d1816150bacd7578c3d57 100644
--- a/src/plugins/qmldesigner/designercore/model/parsedqml.h
+++ b/src/plugins/qmldesigner/designercore/model/parsedqml.h
@@ -26,7 +26,7 @@
 ** 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 qt-info@nokia.com.
+** Nokia at info@qt.nokia.com.
 **
 **************************************************************************/
 
diff --git a/src/plugins/qmldesigner/designercore/model/paster.cpp b/src/plugins/qmldesigner/designercore/model/paster.cpp
index d8dcb79f3f9730b9799dac922cbd1d7f22c024f2..52f29146c6f6d64860798defc730cae75648c457 100644
--- a/src/plugins/qmldesigner/designercore/model/paster.cpp
+++ b/src/plugins/qmldesigner/designercore/model/paster.cpp
@@ -26,7 +26,7 @@
 ** 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 qt-info@nokia.com.
+** Nokia at info@qt.nokia.com.
 **
 **************************************************************************/
 
diff --git a/src/plugins/qmldesigner/designercore/model/paster.h b/src/plugins/qmldesigner/designercore/model/paster.h
index 38ccc01b9ec96eb763bec384b2c00227d375cb1c..3f9d07c3926a3bf23045f6ded9a10136c7eea65b 100644
--- a/src/plugins/qmldesigner/designercore/model/paster.h
+++ b/src/plugins/qmldesigner/designercore/model/paster.h
@@ -26,7 +26,7 @@
 ** 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 qt-info@nokia.com.
+** Nokia at info@qt.nokia.com.
 **
 **************************************************************************/
 
diff --git a/src/plugins/qmldesigner/designercore/model/propertybinding.cpp b/src/plugins/qmldesigner/designercore/model/propertybinding.cpp
index 792321f0d3089b9bf8245c1cf569d4db1b4d973a..d88ce07e8c7f63bb76282e3d5e68e5c525998a17 100644
--- a/src/plugins/qmldesigner/designercore/model/propertybinding.cpp
+++ b/src/plugins/qmldesigner/designercore/model/propertybinding.cpp
@@ -26,7 +26,7 @@
 ** 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 qt-info@nokia.com.
+** Nokia at info@qt.nokia.com.
 **
 **************************************************************************/
 
diff --git a/src/plugins/qmldesigner/designercore/model/qmlmodelview.cpp b/src/plugins/qmldesigner/designercore/model/qmlmodelview.cpp
index 682a6e2d4ae5429dc283cd8b66cf22d66df121f6..ceec3fbd2125f7cf68809eb4ad0aa30550224fdf 100644
--- a/src/plugins/qmldesigner/designercore/model/qmlmodelview.cpp
+++ b/src/plugins/qmldesigner/designercore/model/qmlmodelview.cpp
@@ -196,7 +196,7 @@ QmlItemNode QmlModelView::createQmlItemNode(const ItemLibraryEntry &itemLibraryE
                     }
                 }
 
-                if (!model()->hasImport(newImport, true)) {
+                if (!model()->hasImport(newImport, true, true)) {
                     model()->changeImports(QList<Import>() << newImport, QList<Import>());
                 }
             }
@@ -414,6 +414,11 @@ void QmlModelView::importsChanged(const QList<Import> &/*addedImports*/, const Q
 
 }
 
+void QmlModelView::instancesToken(const QString &/*tokenName*/, int /*tokenNumber*/, const QVector<ModelNode> &/*nodeVector*/)
+{
+
+}
+
 void QmlModelView::nodeSourceChanged(const ModelNode &, const QString & /*newNodeSource*/)
 {
 
diff --git a/src/plugins/qmldesigner/designercore/model/rewriterview.cpp b/src/plugins/qmldesigner/designercore/model/rewriterview.cpp
index 6b1d820012c6e691b7e3152ba021b9b995501426..a2ce780006bc346ba10b19db670ac161b70d3df2 100644
--- a/src/plugins/qmldesigner/designercore/model/rewriterview.cpp
+++ b/src/plugins/qmldesigner/designercore/model/rewriterview.cpp
@@ -407,6 +407,11 @@ void RewriterView::instancesChildrenChanged(const QVector<ModelNode> & /*nodeLis
 
 }
 
+void RewriterView::instancesToken(const QString &/*tokenName*/, int /*tokenNumber*/, const QVector<ModelNode> &/*nodeVector*/)
+{
+
+}
+
 void RewriterView::nodeSourceChanged(const ModelNode &, const QString & /*newNodeSource*/)
 {
 
diff --git a/src/plugins/qmldesigner/designercore/model/viewlogger.cpp b/src/plugins/qmldesigner/designercore/model/viewlogger.cpp
index b49a2358a9520f9f495224534e8ed3696815b146..2bb3e4eadc882a900ad893a97fa0b96a486f5757 100644
--- a/src/plugins/qmldesigner/designercore/model/viewlogger.cpp
+++ b/src/plugins/qmldesigner/designercore/model/viewlogger.cpp
@@ -260,6 +260,13 @@ void ViewLogger::instancesChildrenChanged(const QVector<ModelNode> &nodeList)
         m_output << time() << indent("node: ") << node << endl;
 }
 
+void ViewLogger::instancesToken(const QString &tokenName, int tokenNumber, const QVector<ModelNode> &nodeVector)
+{
+    m_output << time() << indent("instancesToken:") << tokenName << tokenNumber << endl;
+    foreach (const ModelNode &node, nodeVector)
+        m_output << time() << indent("node: ") << node << endl;
+}
+
 void ViewLogger::nodeSourceChanged(const ModelNode &node, const QString & /*newNodeSource*/)
 {
     m_output << time() << indent("nodeSourceChanged:") << endl;
diff --git a/src/plugins/qmldesigner/designercore/model/viewlogger.h b/src/plugins/qmldesigner/designercore/model/viewlogger.h
index 01fc89ca25e80614e95c0c04ffd9a756897eac4a..2ca8ffa5e7eb7f5c40bb4162cfb8770d4100c7fc 100644
--- a/src/plugins/qmldesigner/designercore/model/viewlogger.h
+++ b/src/plugins/qmldesigner/designercore/model/viewlogger.h
@@ -81,6 +81,8 @@ public:
     void instancesRenderImageChanged(const QVector<ModelNode> &nodeList);
     void instancesPreviewImageChanged(const QVector<ModelNode> &nodeList);
     void instancesChildrenChanged(const QVector<ModelNode> &nodeList);
+    void instancesToken(const QString &tokenName, int tokenNumber, const QVector<ModelNode> &nodeVector);
+
     void nodeSourceChanged(const ModelNode &modelNode, const QString &newNodeSource);
 
     void rewriterBeginTransaction();
diff --git a/src/plugins/qmldesigner/designercore/preview/stylemanager.cpp b/src/plugins/qmldesigner/designercore/preview/stylemanager.cpp
index 3957af5ff6daa1914625739314ad00a689ddffb2..09e89a6df8cbc6e440298c7054e795425b01fc06 100644
--- a/src/plugins/qmldesigner/designercore/preview/stylemanager.cpp
+++ b/src/plugins/qmldesigner/designercore/preview/stylemanager.cpp
@@ -26,7 +26,7 @@
 ** 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 qt-info@nokia.com.
+** Nokia at info@qt.nokia.com.
 **
 **************************************************************************/
 
diff --git a/src/plugins/qmldesigner/qmlcontextpane.cpp b/src/plugins/qmldesigner/qmlcontextpane.cpp
index 64cac4cf49cc8910ea8c128f7ef64ec4233e23ba..447a69fbe370189127aa37ae5fd36d1d17903df2 100644
--- a/src/plugins/qmldesigner/qmlcontextpane.cpp
+++ b/src/plugins/qmldesigner/qmlcontextpane.cpp
@@ -26,7 +26,7 @@
 ** 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 qt-info@nokia.com.
+** Nokia at info@qt.nokia.com.
 **
 **************************************************************************/
 
diff --git a/src/plugins/qmldesigner/qmlcontextpane.h b/src/plugins/qmldesigner/qmlcontextpane.h
index 63d334c6db6829321dca20ee128dbfa1cddf8743..9bc72eb950421a733cc98f757801f19c354ca30e 100644
--- a/src/plugins/qmldesigner/qmlcontextpane.h
+++ b/src/plugins/qmldesigner/qmlcontextpane.h
@@ -26,7 +26,7 @@
 ** 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 qt-info@nokia.com.
+** Nokia at info@qt.nokia.com.
 **
 **************************************************************************/
 
diff --git a/src/plugins/qmldesigner/qtquickplugin/source/gridview.qml b/src/plugins/qmldesigner/qtquickplugin/source/gridview.qml
index 508edc8b8323d151e90aa2a0db032b4743be46ce..3fd0503bb7e8696b6299f823879934e8f94eb5e2 100644
--- a/src/plugins/qmldesigner/qtquickplugin/source/gridview.qml
+++ b/src/plugins/qmldesigner/qtquickplugin/source/gridview.qml
@@ -1,8 +1,42 @@
+/**************************************************************************
+**
+** 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.
+**
+**************************************************************************/
+
 import QtQuick 1.0
 
 GridView {
-    width: 200
-    height: 200
+    width: 140
+    height: 140
+    cellWidth: 70
+    cellHeight: 70
 
     model: ListModel {
 
diff --git a/src/plugins/qmldesigner/qtquickplugin/source/listview.qml b/src/plugins/qmldesigner/qtquickplugin/source/listview.qml
index 3f4f90abd391fe0ed25bc4c2b096859ca0fd92d3..5c5277e1f4e0e9f131d8e3e73edbf444431375db 100644
--- a/src/plugins/qmldesigner/qtquickplugin/source/listview.qml
+++ b/src/plugins/qmldesigner/qtquickplugin/source/listview.qml
@@ -1,7 +1,39 @@
+/**************************************************************************
+**
+** 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.
+**
+**************************************************************************/
+
 import QtQuick 1.0
 
 ListView {
-    width: 160
+    width: 110
     height: 160
     model:  ListModel {
         ListElement {
diff --git a/src/plugins/qmldesigner/qtquickplugin/source/pathview.qml b/src/plugins/qmldesigner/qtquickplugin/source/pathview.qml
index 13b3f543c528eb3deb9d292a19e75481eebaa806..2eea6619e56e95c1a830d9f6716b5f7e287c4087 100644
--- a/src/plugins/qmldesigner/qtquickplugin/source/pathview.qml
+++ b/src/plugins/qmldesigner/qtquickplugin/source/pathview.qml
@@ -1,8 +1,40 @@
+/**************************************************************************
+**
+** 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.
+**
+**************************************************************************/
+
 import QtQuick 1.0
 
 PathView {
     width: 250
-    height: 200
+    height: 130
 
     path: Path {
         startX: 120
diff --git a/src/plugins/qmldesigner/qtquickplugin/source/text.qml b/src/plugins/qmldesigner/qtquickplugin/source/text.qml
index 088dfdd12402764d7a6994ca18a48b3c197e0e55..10a9aabc82c0730106d25f1a9a3cbc33107e6e77 100644
--- a/src/plugins/qmldesigner/qtquickplugin/source/text.qml
+++ b/src/plugins/qmldesigner/qtquickplugin/source/text.qml
@@ -1,3 +1,35 @@
+/**************************************************************************
+**
+** 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.
+**
+**************************************************************************/
+
 import QtQuick 1.0
 
 Text {
diff --git a/src/plugins/qmldesigner/qtquickplugin/source/textedit.qml b/src/plugins/qmldesigner/qtquickplugin/source/textedit.qml
index ac1bc18b44319cd97d5e0cc5bc8844510830e594..87254f21c49dad78127eabaa801088c075d028bb 100644
--- a/src/plugins/qmldesigner/qtquickplugin/source/textedit.qml
+++ b/src/plugins/qmldesigner/qtquickplugin/source/textedit.qml
@@ -1,3 +1,35 @@
+/**************************************************************************
+**
+** 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.
+**
+**************************************************************************/
+
 import QtQuick 1.0
 
 Text {
diff --git a/src/plugins/qmldesigner/qtquickplugin/source/textinput.qml b/src/plugins/qmldesigner/qtquickplugin/source/textinput.qml
index d78a430d030757dbb6f30dccfc984bad6b30c0de..423e599993d0c540c312f41a825f4d63c3241317 100644
--- a/src/plugins/qmldesigner/qtquickplugin/source/textinput.qml
+++ b/src/plugins/qmldesigner/qtquickplugin/source/textinput.qml
@@ -1,3 +1,35 @@
+/**************************************************************************
+**
+** 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.
+**
+**************************************************************************/
+
 import QtQuick 1.0
 
 Text {
diff --git a/src/plugins/qmljseditor/qmljscompletionassist.cpp b/src/plugins/qmljseditor/qmljscompletionassist.cpp
index bda56d06c358d12aa812c3602a35f53f13dbedc3..1784c3cb9d80cc51461a05fd0435915c84b8eaca 100644
--- a/src/plugins/qmljseditor/qmljscompletionassist.cpp
+++ b/src/plugins/qmljseditor/qmljscompletionassist.cpp
@@ -777,7 +777,9 @@ void QmlJSCompletionAssistProcessor::addCompletionsPropertyLhs(const QHash<QStri
         it.next();
 
         QString itemText = it.key();
-        QLatin1String postfix(": ");
+        QString postfix;
+        if (!itemText.isEmpty() && itemText.at(0).isLower())
+            postfix = QLatin1String(": ");
         if (afterOn)
             postfix = QLatin1String(" {");
         if (const Interpreter::QmlObjectValue *qmlValue =
diff --git a/src/plugins/qmljstools/qmljscodestylesettingsfactory.cpp b/src/plugins/qmljstools/qmljscodestylesettingsfactory.cpp
index d372482298b61abe691b4c5397008f24526a25e3..60a2a29f2d7a7a9bd9320363d156f698a1641a0b 100644
--- a/src/plugins/qmljstools/qmljscodestylesettingsfactory.cpp
+++ b/src/plugins/qmljstools/qmljscodestylesettingsfactory.cpp
@@ -1,3 +1,35 @@
+/**************************************************************************
+**
+** 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 "qmljscodestylesettingsfactory.h"
 #include "qmljscodestylesettingspage.h"
 #include "qmljstoolsconstants.h"
diff --git a/src/plugins/qmljstools/qmljscodestylesettingsfactory.h b/src/plugins/qmljstools/qmljscodestylesettingsfactory.h
index 321f564e92f2c8f5bfe1450a61b0a1a24e4f3b00..7efba77933e2f52cd7eee3300ba0b32c76853a85 100644
--- a/src/plugins/qmljstools/qmljscodestylesettingsfactory.h
+++ b/src/plugins/qmljstools/qmljscodestylesettingsfactory.h
@@ -1,3 +1,35 @@
+/**************************************************************************
+**
+** 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 QMLJSCODESTYLESETTINGSFACTORY_H
 #define QMLJSCODESTYLESETTINGSFACTORY_H
 
diff --git a/src/plugins/qmljstools/qmljscodestylesettingspage.cpp b/src/plugins/qmljstools/qmljscodestylesettingspage.cpp
index 40f2eccdb30712ef58c4bb2fec06f739921a7cf2..7be5e331849f756f71d86d3d11fee257bb05f456 100644
--- a/src/plugins/qmljstools/qmljscodestylesettingspage.cpp
+++ b/src/plugins/qmljstools/qmljscodestylesettingspage.cpp
@@ -1,3 +1,35 @@
+/**************************************************************************
+**
+** 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 "qmljscodestylesettingspage.h"
 #include "ui_qmljscodestylesettingspage.h"
 #include "qmljstoolsconstants.h"
diff --git a/src/plugins/qmljstools/qmljscodestylesettingspage.h b/src/plugins/qmljstools/qmljscodestylesettingspage.h
index 733160ba434616b79d077a4c5203696c4acde0a4..762923320306feb580e0d0147cda15e98f0edd69 100644
--- a/src/plugins/qmljstools/qmljscodestylesettingspage.h
+++ b/src/plugins/qmljstools/qmljscodestylesettingspage.h
@@ -1,3 +1,35 @@
+/**************************************************************************
+**
+** 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 QMLJSCODESTYLESETTINGSPAGE_H
 #define QMLJSCODESTYLESETTINGSPAGE_H
 
diff --git a/src/plugins/qmljstools/qmljstoolssettings.cpp b/src/plugins/qmljstools/qmljstoolssettings.cpp
index d471b7e18ee00e54a4f197d48beba1aafa8e06d4..e1f161f1298ef29a41e1275947f381fd2810458e 100644
--- a/src/plugins/qmljstools/qmljstoolssettings.cpp
+++ b/src/plugins/qmljstools/qmljstoolssettings.cpp
@@ -1,3 +1,35 @@
+/**************************************************************************
+**
+** 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 "qmljstoolssettings.h"
 #include "qmljstoolsconstants.h"
 
diff --git a/src/plugins/qmljstools/qmljstoolssettings.h b/src/plugins/qmljstools/qmljstoolssettings.h
index 9eb8b657c5c8b29c58c8c2de008f111fd8698ed8..8bc0e104614858afa5c9753da37a0b45b2a82352 100644
--- a/src/plugins/qmljstools/qmljstoolssettings.h
+++ b/src/plugins/qmljstools/qmljstoolssettings.h
@@ -4,30 +4,29 @@
 **
 ** Copyright (c) 2011 Nokia Corporation and/or its subsidiary(-ies).
 **
-** Contact: Nokia Corporation (qt-info@nokia.com)
+** Contact: Nokia Corporation (info@qt.nokia.com)
 **
-** No Commercial Usage
-**
-** This file contains pre-release code and may not be distributed.
-** You may use this file in accordance with the terms and conditions
-** contained in the Technology Preview License Agreement accompanying
-** this package.
 **
 ** GNU Lesser General Public License Usage
 **
-** Alternatively, 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.
+** 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
+** 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 qt-info@nokia.com.
+** Nokia at info@qt.nokia.com.
 **
 **************************************************************************/
 
diff --git a/src/plugins/qmlprofiler/canvas/qdeclarativecanvas.cpp b/src/plugins/qmlprofiler/canvas/qdeclarativecanvas.cpp
index e66ef7c3dde2f3aa1639b1d9506cc2d9f04c3f79..06c27d12b46492bc70e9cdc5232846b7d7cbb634 100644
--- a/src/plugins/qmlprofiler/canvas/qdeclarativecanvas.cpp
+++ b/src/plugins/qmlprofiler/canvas/qdeclarativecanvas.cpp
@@ -1,43 +1,34 @@
-/****************************************************************************
+/**************************************************************************
 **
-** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
-** All rights reserved.
-** Contact: Nokia Corporation (info@qt.nokia.com)
+** This file is part of Qt Creator
+**
+** Copyright (c) 2011 Nokia Corporation and/or its subsidiary(-ies).
 **
-** This file is part of the QtDeclarative module of the Qt Toolkit.
+** Contact: Nokia Corporation (info@qt.nokia.com)
 **
-** $QT_BEGIN_LICENSE:LGPL$
-** No Commercial Usage
-** This file contains pre-release code and may not be distributed.
-** You may use this file in accordance with the terms and conditions
-** contained in the Technology Preview License Agreement accompanying
-** this package.
 **
 ** GNU Lesser General Public License Usage
-** Alternatively, 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.
+**
+** 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
+** rights. These rights are described in the Nokia Qt LGPL Exception
 ** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
 **
-** If you have questions regarding the use of this file, please contact
-** Nokia at info@qt.nokia.com.
-**
+** 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.
 **
-**
-**
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+**************************************************************************/
 
 #include "qdeclarativecanvas_p.h"
 #include "qdeclarativecanvastimer_p.h"
diff --git a/src/plugins/qmlprofiler/canvas/qdeclarativecanvas_p.h b/src/plugins/qmlprofiler/canvas/qdeclarativecanvas_p.h
index d7601d35e3619cee1708cff9ba7def6a3ff5456f..b43eefecef8f686afec24d2253e863f40356a4db 100644
--- a/src/plugins/qmlprofiler/canvas/qdeclarativecanvas_p.h
+++ b/src/plugins/qmlprofiler/canvas/qdeclarativecanvas_p.h
@@ -1,43 +1,34 @@
-/****************************************************************************
+/**************************************************************************
 **
-** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
-** All rights reserved.
-** Contact: Nokia Corporation (info@qt.nokia.com)
+** This file is part of Qt Creator
+**
+** Copyright (c) 2011 Nokia Corporation and/or its subsidiary(-ies).
 **
-** This file is part of the QtDeclarative module of the Qt Toolkit.
+** Contact: Nokia Corporation (info@qt.nokia.com)
 **
-** $QT_BEGIN_LICENSE:LGPL$
-** No Commercial Usage
-** This file contains pre-release code and may not be distributed.
-** You may use this file in accordance with the terms and conditions
-** contained in the Technology Preview License Agreement accompanying
-** this package.
 **
 ** GNU Lesser General Public License Usage
-** Alternatively, 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.
+**
+** 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
+** rights. These rights are described in the Nokia Qt LGPL Exception
 ** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
 **
-** If you have questions regarding the use of this file, please contact
-** Nokia at info@qt.nokia.com.
-**
+** 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.
 **
-**
-**
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+**************************************************************************/
 
 #ifndef QDECLARATIVECANVAS_P_H
 #define QDECLARATIVECANVAS_P_H
diff --git a/src/plugins/qmlprofiler/canvas/qdeclarativecanvastimer.cpp b/src/plugins/qmlprofiler/canvas/qdeclarativecanvastimer.cpp
index c5efd4f1b4c5fd8981f8f3148b64554420b57010..44a3d3b56bee6b4a273b32ebb2767f450e02c47c 100644
--- a/src/plugins/qmlprofiler/canvas/qdeclarativecanvastimer.cpp
+++ b/src/plugins/qmlprofiler/canvas/qdeclarativecanvastimer.cpp
@@ -1,43 +1,34 @@
-/****************************************************************************
+/**************************************************************************
 **
-** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
-** All rights reserved.
-** Contact: Nokia Corporation (info@qt.nokia.com)
+** This file is part of Qt Creator
+**
+** Copyright (c) 2011 Nokia Corporation and/or its subsidiary(-ies).
 **
-** This file is part of the QtDeclarative module of the Qt Toolkit.
+** Contact: Nokia Corporation (info@qt.nokia.com)
 **
-** $QT_BEGIN_LICENSE:LGPL$
-** No Commercial Usage
-** This file contains pre-release code and may not be distributed.
-** You may use this file in accordance with the terms and conditions
-** contained in the Technology Preview License Agreement accompanying
-** this package.
 **
 ** GNU Lesser General Public License Usage
-** Alternatively, 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.
+**
+** 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
+** rights. These rights are described in the Nokia Qt LGPL Exception
 ** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
 **
-** If you have questions regarding the use of this file, please contact
-** Nokia at info@qt.nokia.com.
-**
+** 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.
 **
-**
-**
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+**************************************************************************/
 
 #include <QtScript/qscriptengine.h>
 #include <QtScript/qscriptvalue.h>
diff --git a/src/plugins/qmlprofiler/canvas/qdeclarativecanvastimer_p.h b/src/plugins/qmlprofiler/canvas/qdeclarativecanvastimer_p.h
index f77a5685cbe00d223529b55df9fb16483c6f2b3c..17ad439adf0582988302a50db69a8e6ac6e8f62c 100644
--- a/src/plugins/qmlprofiler/canvas/qdeclarativecanvastimer_p.h
+++ b/src/plugins/qmlprofiler/canvas/qdeclarativecanvastimer_p.h
@@ -1,43 +1,34 @@
-/****************************************************************************
+/**************************************************************************
 **
-** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
-** All rights reserved.
-** Contact: Nokia Corporation (info@qt.nokia.com)
+** This file is part of Qt Creator
+**
+** Copyright (c) 2011 Nokia Corporation and/or its subsidiary(-ies).
 **
-** This file is part of the QtDeclarative module of the Qt Toolkit.
+** Contact: Nokia Corporation (info@qt.nokia.com)
 **
-** $QT_BEGIN_LICENSE:LGPL$
-** No Commercial Usage
-** This file contains pre-release code and may not be distributed.
-** You may use this file in accordance with the terms and conditions
-** contained in the Technology Preview License Agreement accompanying
-** this package.
 **
 ** GNU Lesser General Public License Usage
-** Alternatively, 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.
+**
+** 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
+** rights. These rights are described in the Nokia Qt LGPL Exception
 ** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
 **
-** If you have questions regarding the use of this file, please contact
-** Nokia at info@qt.nokia.com.
-**
+** 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.
 **
-**
-**
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+**************************************************************************/
 
 #ifndef QDECLARATIVECANVASTIMER_P_H
 #define QDECLARATIVECANVASTIMER_P_H
diff --git a/src/plugins/qmlprofiler/canvas/qdeclarativecontext2d.cpp b/src/plugins/qmlprofiler/canvas/qdeclarativecontext2d.cpp
index ed9d73d3ff459b6e99581683d0661e5ded0650cd..ddaa3d4d951a0c5b8a9cde33c6a14b79e5fc8d6b 100644
--- a/src/plugins/qmlprofiler/canvas/qdeclarativecontext2d.cpp
+++ b/src/plugins/qmlprofiler/canvas/qdeclarativecontext2d.cpp
@@ -1,43 +1,34 @@
-/****************************************************************************
+/**************************************************************************
 **
-** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
-** All rights reserved.
-** Contact: Nokia Corporation (info@qt.nokia.com)
+** This file is part of Qt Creator
+**
+** Copyright (c) 2011 Nokia Corporation and/or its subsidiary(-ies).
 **
-** This file is part of the QtDeclarative module of the Qt Toolkit.
+** Contact: Nokia Corporation (info@qt.nokia.com)
 **
-** $QT_BEGIN_LICENSE:LGPL$
-** No Commercial Usage
-** This file contains pre-release code and may not be distributed.
-** You may use this file in accordance with the terms and conditions
-** contained in the Technology Preview License Agreement accompanying
-** this package.
 **
 ** GNU Lesser General Public License Usage
-** Alternatively, 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.
+**
+** 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
+** rights. These rights are described in the Nokia Qt LGPL Exception
 ** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
 **
-** If you have questions regarding the use of this file, please contact
-** Nokia at info@qt.nokia.com.
-**
+** 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.
 **
-**
-**
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+**************************************************************************/
 
 #include "qdeclarativecontext2d_p.h"
 
diff --git a/src/plugins/qmlprofiler/canvas/qdeclarativecontext2d_p.h b/src/plugins/qmlprofiler/canvas/qdeclarativecontext2d_p.h
index 73575fdb6138466a212d60c6ef3acb90d04a1b97..5d6048d449861a3b077bb55d29ad1ccaee04aee1 100644
--- a/src/plugins/qmlprofiler/canvas/qdeclarativecontext2d_p.h
+++ b/src/plugins/qmlprofiler/canvas/qdeclarativecontext2d_p.h
@@ -1,43 +1,34 @@
-/****************************************************************************
+/**************************************************************************
 **
-** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
-** All rights reserved.
-** Contact: Nokia Corporation (info@qt.nokia.com)
+** This file is part of Qt Creator
+**
+** Copyright (c) 2011 Nokia Corporation and/or its subsidiary(-ies).
 **
-** This file is part of the QtDeclarative module of the Qt Toolkit.
+** Contact: Nokia Corporation (info@qt.nokia.com)
 **
-** $QT_BEGIN_LICENSE:LGPL$
-** No Commercial Usage
-** This file contains pre-release code and may not be distributed.
-** You may use this file in accordance with the terms and conditions
-** contained in the Technology Preview License Agreement accompanying
-** this package.
 **
 ** GNU Lesser General Public License Usage
-** Alternatively, 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.
+**
+** 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
+** rights. These rights are described in the Nokia Qt LGPL Exception
 ** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
 **
-** If you have questions regarding the use of this file, please contact
-** Nokia at info@qt.nokia.com.
-**
+** 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.
 **
-**
-**
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+**************************************************************************/
 
 #ifndef QDECLARATIVECONTEXT2D_P_H
 #define QDECLARATIVECONTEXT2D_P_H
diff --git a/src/plugins/qmlprofiler/canvas/qdeclarativetiledcanvas_p.h b/src/plugins/qmlprofiler/canvas/qdeclarativetiledcanvas_p.h
index ce8346007b5cadf30dff9da8fcd9770ffb7d02ad..6a0a21ee19aaa438474241ce2bdfbc3bea1845af 100644
--- a/src/plugins/qmlprofiler/canvas/qdeclarativetiledcanvas_p.h
+++ b/src/plugins/qmlprofiler/canvas/qdeclarativetiledcanvas_p.h
@@ -1,43 +1,34 @@
-/****************************************************************************
+/**************************************************************************
 **
-** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
-** All rights reserved.
-** Contact: Nokia Corporation (info@qt.nokia.com)
+** This file is part of Qt Creator
+**
+** Copyright (c) 2011 Nokia Corporation and/or its subsidiary(-ies).
 **
-** This file is part of the QtDeclarative module of the Qt Toolkit.
+** Contact: Nokia Corporation (info@qt.nokia.com)
 **
-** $QT_BEGIN_LICENSE:LGPL$
-** No Commercial Usage
-** This file contains pre-release code and may not be distributed.
-** You may use this file in accordance with the terms and conditions
-** contained in the Technology Preview License Agreement accompanying
-** this package.
 **
 ** GNU Lesser General Public License Usage
-** Alternatively, 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.
+**
+** 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
+** rights. These rights are described in the Nokia Qt LGPL Exception
 ** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
 **
-** If you have questions regarding the use of this file, please contact
-** Nokia at info@qt.nokia.com.
-**
-**
+** 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.
 **
-**
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+**************************************************************************/
 
 #ifndef QDECLARATIVETILEDCANVAS_P_H
 #define QDECLARATIVETILEDCANVAS_P_H
@@ -52,7 +43,37 @@ QT_MODULE(Declarative)
 class Context2D;
 class TiledCanvas : public QDeclarativeItem
 {
-    Q_OBJECT
+    Q_OBJECT/**************************************************************************
+**
+** 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.
+**
+**************************************************************************/
 
     Q_PROPERTY(QSizeF canvasSize READ canvasSize WRITE setCanvasSize NOTIFY canvasSizeChanged)
     Q_PROPERTY(QSize tileSize READ tileSize WRITE setTileSize NOTIFY tileSizeChanged)
diff --git a/src/plugins/qmlprofiler/codaqmlprofilerrunner.cpp b/src/plugins/qmlprofiler/codaqmlprofilerrunner.cpp
index 4e4b91559c203768609e80353d8307c6c1d346f7..a2414b8f3b7f8c25c4bb4fd259903639d917468b 100644
--- a/src/plugins/qmlprofiler/codaqmlprofilerrunner.cpp
+++ b/src/plugins/qmlprofiler/codaqmlprofilerrunner.cpp
@@ -4,30 +4,29 @@
 **
 ** Copyright (c) 2011 Nokia Corporation and/or its subsidiary(-ies).
 **
-** Contact: Nokia Corporation (qt-info@nokia.com)
+** Contact: Nokia Corporation (info@qt.nokia.com)
 **
-** No Commercial Usage
-**
-** This file contains pre-release code and may not be distributed.
-** You may use this file in accordance with the terms and conditions
-** contained in the Technology Preview License Agreement accompanying
-** this package.
 **
 ** GNU Lesser General Public License Usage
 **
-** Alternatively, 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.
+** 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
+** 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 qt-info@nokia.com.
+** Nokia at info@qt.nokia.com.
 **
 **************************************************************************/
 
@@ -50,7 +49,7 @@ CodaQmlProfilerRunner::CodaQmlProfilerRunner(S60DeviceRunConfiguration *configur
                                              QObject *parent) :
     AbstractQmlProfilerRunner(parent),
     m_configuration(configuration),
-    m_runControl(new CodaRunControl(configuration, Analyzer::Constants::MODE_ANALYZE))
+    m_runControl(new CodaRunControl(configuration, "QmlProfiler"))
 {
     connect(m_runControl, SIGNAL(finished()), this, SIGNAL(stopped()));
     connect(m_runControl,
diff --git a/src/plugins/qmlprofiler/codaqmlprofilerrunner.h b/src/plugins/qmlprofiler/codaqmlprofilerrunner.h
index 82dbe97d399f93a63d88ccf422acc9e8d52cb61f..e9e931713fbdf1289fbb87f737de20a30b4060f9 100644
--- a/src/plugins/qmlprofiler/codaqmlprofilerrunner.h
+++ b/src/plugins/qmlprofiler/codaqmlprofilerrunner.h
@@ -6,26 +6,25 @@
 **
 ** Contact: Nokia Corporation (info@qt.nokia.com)
 **
-** No Commercial Usage
-**
-** This file contains pre-release code and may not be distributed.
-** You may use this file in accordance with the terms and conditions
-** contained in the Technology Preview License Agreement accompanying
-** this package.
 **
 ** GNU Lesser General Public License Usage
 **
-** Alternatively, 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.
+** 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
+** 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.
 **
diff --git a/src/plugins/qmlprofiler/localqmlprofilerrunner.cpp b/src/plugins/qmlprofiler/localqmlprofilerrunner.cpp
index 38eb80e78d0f41c2e66b6c0d87fb96385407aac9..98762b82e8a4f11b5431bda43f3cd4150082ce06 100644
--- a/src/plugins/qmlprofiler/localqmlprofilerrunner.cpp
+++ b/src/plugins/qmlprofiler/localqmlprofilerrunner.cpp
@@ -6,26 +6,25 @@
 **
 ** Contact: Nokia Corporation (info@qt.nokia.com)
 **
-** No Commercial Usage
-**
-** This file contains pre-release code and may not be distributed.
-** You may use this file in accordance with the terms and conditions
-** contained in the Technology Preview License Agreement accompanying
-** this package.
 **
 ** GNU Lesser General Public License Usage
 **
-** Alternatively, 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.
+** 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
+** 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.
 **
diff --git a/src/plugins/qmlprofiler/localqmlprofilerrunner.h b/src/plugins/qmlprofiler/localqmlprofilerrunner.h
index c50ed7620208ba83c9bbc97c7acfaa55e4c9368a..2a8b7031b247a4307166b51d2fd1756082ea21f3 100644
--- a/src/plugins/qmlprofiler/localqmlprofilerrunner.h
+++ b/src/plugins/qmlprofiler/localqmlprofilerrunner.h
@@ -6,26 +6,25 @@
 **
 ** Contact: Nokia Corporation (info@qt.nokia.com)
 **
-** No Commercial Usage
-**
-** This file contains pre-release code and may not be distributed.
-** You may use this file in accordance with the terms and conditions
-** contained in the Technology Preview License Agreement accompanying
-** this package.
 **
 ** GNU Lesser General Public License Usage
 **
-** Alternatively, 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.
+** 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
+** 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.
 **
diff --git a/src/plugins/qmlprofiler/qml/Detail.qml b/src/plugins/qmlprofiler/qml/Detail.qml
index 815130c6af86f9943c5bc49c1df20604e1e60559..c0ec386b8468e81c1c2ab92a29d0e141ccc45a7b 100644
--- a/src/plugins/qmlprofiler/qml/Detail.qml
+++ b/src/plugins/qmlprofiler/qml/Detail.qml
@@ -6,26 +6,25 @@
 **
 ** Contact: Nokia Corporation (info@qt.nokia.com)
 **
-** No Commercial Usage
-**
-** This file contains pre-release code and may not be distributed.
-** You may use this file in accordance with the terms and conditions
-** contained in the Technology Preview License Agreement accompanying
-** this package.
 **
 ** GNU Lesser General Public License Usage
 **
-** Alternatively, 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.
+** 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
+** 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.
 **
diff --git a/src/plugins/qmlprofiler/qml/Label.qml b/src/plugins/qmlprofiler/qml/Label.qml
index f1fa86b567502abd91430b99753d55e57b3d7ac4..abe28391bbe81972ce614330cdf5fa9967a28e0f 100644
--- a/src/plugins/qmlprofiler/qml/Label.qml
+++ b/src/plugins/qmlprofiler/qml/Label.qml
@@ -6,26 +6,25 @@
 **
 ** Contact: Nokia Corporation (info@qt.nokia.com)
 **
-** No Commercial Usage
-**
-** This file contains pre-release code and may not be distributed.
-** You may use this file in accordance with the terms and conditions
-** contained in the Technology Preview License Agreement accompanying
-** this package.
 **
 ** GNU Lesser General Public License Usage
 **
-** Alternatively, 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.
+** 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
+** 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.
 **
diff --git a/src/plugins/qmlprofiler/qml/MainView.js b/src/plugins/qmlprofiler/qml/MainView.js
index bbdc25cfa9a9dbae36008e4adcda5ded2c80c74a..bd4752d07101cc26266719ac031dd1e00b7e925a 100644
--- a/src/plugins/qmlprofiler/qml/MainView.js
+++ b/src/plugins/qmlprofiler/qml/MainView.js
@@ -36,7 +36,6 @@
 var values = [ ];   //events
 var ranges = [ ];
 var frameFps = [ ];
-var valuesdone = false;
 var xmargin = 0;
 var ymargin = 0;
 var drawFpsGraph = false;
@@ -55,7 +54,6 @@ function reset()
     frameFps = [];
     xmargin = 0;
     ymargin = 0;
-    valuesdone = false;
     nestingDepth = [];
 }
 
diff --git a/src/plugins/qmlprofiler/qml/MainView.qml b/src/plugins/qmlprofiler/qml/MainView.qml
index 635b4ef8fb05a8e827f96d73d79999dac434ff86..b66c73396b8e5c0170b7208b6c44dfb0f521ecc8 100644
--- a/src/plugins/qmlprofiler/qml/MainView.qml
+++ b/src/plugins/qmlprofiler/qml/MainView.qml
@@ -6,26 +6,25 @@
 **
 ** Contact: Nokia Corporation (info@qt.nokia.com)
 **
-** No Commercial Usage
-**
-** This file contains pre-release code and may not be distributed.
-** You may use this file in accordance with the terms and conditions
-** contained in the Technology Preview License Agreement accompanying
-** this package.
 **
 ** GNU Lesser General Public License Usage
 **
-** Alternatively, 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.
+** 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
+** 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.
 **
@@ -38,9 +37,7 @@ import "MainView.js" as Plotter
 Rectangle {
     id: root
 
-    property variant colors:  Plotter.colors  //the colors used for the timeline data
-    property bool xRay: false                 //useful for seeing "nested" ranges (but redraw is buggy -- QGV problem?)
-    property Item currentItem                 //currently selected item in the view
+    property bool dataAvailable: false;
 
     // move the cursor in the editor
     signal updateCursorPosition
@@ -55,6 +52,7 @@ Rectangle {
     function clearData() {
         Plotter.reset();
         view.clearData();
+        root.dataAvailable = false;
         rangeMover.x = 2
         rangeMover.opacity = 0
     }
@@ -62,7 +60,6 @@ Rectangle {
     function clearAll() {
         clearData();
         selectedEventIndex = -1;
-        Plotter.valuesdone = false;
         canvas.requestPaint();
         view.visible = false;
         root.elapsedTime = 0;
@@ -132,21 +129,21 @@ Rectangle {
     Connections {
         target: connection
         onEvent: {
-            if (Plotter.valuesdone) {
+            if (root.dataAvailable) {
                 root.clearData();
             }
 
-            if (!Plotter.valuesdone && event === 0) //### only handle paint event
+            if (!root.dataAvailable && event === 0) //### only handle paint event
                 Plotter.values.push(time);
         }
 
         onRange: {
-            if (Plotter.valuesdone) {
+            if (root.dataAvailable) {
                 root.clearData();
             }
 
             // todo: consider nestingLevel
-            if (!Plotter.valuesdone) {
+            if (!root.dataAvailable) {
                 if (!Plotter.nestingDepth[type])
                     Plotter.nestingDepth[type] = nestingInType;
                 else
@@ -158,7 +155,7 @@ Rectangle {
         }
 
         onComplete: {
-            Plotter.valuesdone = true;
+            root.dataAvailable = true;
             Plotter.calcFps();
             view.visible = true;
             view.setRanges(Plotter.ranges);
@@ -264,7 +261,7 @@ Rectangle {
             delegate: Rectangle {
                 id: obj
 
-                property color baseColor: colors[type]
+                property color baseColor: Plotter.colors[type]
                 property color myColor: baseColor
 
                 function conditionalHide() {
@@ -302,7 +299,6 @@ Rectangle {
                 }
 
                 function enableSelected(x,y) {
-                    currentItem = obj
                     myColor = Qt.darker(baseColor, 1.2)
                     rangeDetails.duration = duration
                     rangeDetails.label = label
@@ -429,7 +425,7 @@ Rectangle {
         canvasWindow.height: height
 
         onDrawRegion: {
-             if (Plotter.valuesdone)
+             if (root.dataAvailable)
                  Plotter.plot(canvas, ctxt, region);
              else
                  Plotter.drawGraph(canvas, ctxt, region)    //just draw the background
diff --git a/src/plugins/qmlprofiler/qml/RangeDetails.qml b/src/plugins/qmlprofiler/qml/RangeDetails.qml
index 3b817e28c9f62e4aedc07f613681a91a56d2af25..7b4207f0afe7e3600e8f6decf9449a885e3c1d0d 100644
--- a/src/plugins/qmlprofiler/qml/RangeDetails.qml
+++ b/src/plugins/qmlprofiler/qml/RangeDetails.qml
@@ -6,26 +6,25 @@
 **
 ** Contact: Nokia Corporation (info@qt.nokia.com)
 **
-** No Commercial Usage
-**
-** This file contains pre-release code and may not be distributed.
-** You may use this file in accordance with the terms and conditions
-** contained in the Technology Preview License Agreement accompanying
-** this package.
 **
 ** GNU Lesser General Public License Usage
 **
-** Alternatively, 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.
+** 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
+** 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.
 **
diff --git a/src/plugins/qmlprofiler/qml/RangeMover.qml b/src/plugins/qmlprofiler/qml/RangeMover.qml
index 193921c68870edb8398b78a57b1f54bae28b66f3..14443783b87fd8a271bfa5d63d8d34e2a5f08c23 100644
--- a/src/plugins/qmlprofiler/qml/RangeMover.qml
+++ b/src/plugins/qmlprofiler/qml/RangeMover.qml
@@ -6,26 +6,25 @@
 **
 ** Contact: Nokia Corporation (info@qt.nokia.com)
 **
-** No Commercial Usage
-**
-** This file contains pre-release code and may not be distributed.
-** You may use this file in accordance with the terms and conditions
-** contained in the Technology Preview License Agreement accompanying
-** this package.
 **
 ** GNU Lesser General Public License Usage
 **
-** Alternatively, 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.
+** 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
+** 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.
 **
diff --git a/src/plugins/qmlprofiler/qml/TimeDisplay.qml b/src/plugins/qmlprofiler/qml/TimeDisplay.qml
index 026846f900efc6766429c60cde109225bb67089e..24dd47d8cf0b3d2864a3931bc36894a6220dbfb3 100644
--- a/src/plugins/qmlprofiler/qml/TimeDisplay.qml
+++ b/src/plugins/qmlprofiler/qml/TimeDisplay.qml
@@ -1,3 +1,35 @@
+/**************************************************************************
+**
+** 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.
+**
+**************************************************************************/
+
 import QtQuick 1.0
 import Monitor 1.0
 import "MainView.js" as Plotter
@@ -126,7 +158,7 @@ TiledCanvas {
             var timeDisplayBeginTime = Math.min(bt, et);
             var timeDisplayEndTime = Math.max(bt, et);
 
-            timeDisplayText.text = qsTr("length:")+detailedPrintTime(timeDisplayEndTime-timeDisplayBeginTime);
+            timeDisplayText.text = qsTr("length: %1").arg(detailedPrintTime(timeDisplayEndTime-timeDisplayBeginTime));
             timeDisplayEnd.visible = true;
             timeDisplayEnd.x = xpos + flick.x
         }
diff --git a/src/plugins/qmlprofiler/qml/analyzer_category_small.png b/src/plugins/qmlprofiler/qml/analyzer_category_small.png
deleted file mode 100644
index 5bc90fbf9184b4a32ded2b35523b481b87db64f2..0000000000000000000000000000000000000000
Binary files a/src/plugins/qmlprofiler/qml/analyzer_category_small.png and /dev/null differ
diff --git a/src/plugins/qmlprofiler/qml/qml.qrc b/src/plugins/qmlprofiler/qml/qml.qrc
index 822e2096d029961de8dfa3f1230ae178ee09680a..acb92c1d774b9e4548c3a5c1b5da6e677ff341c3 100644
--- a/src/plugins/qmlprofiler/qml/qml.qrc
+++ b/src/plugins/qmlprofiler/qml/qml.qrc
@@ -5,16 +5,15 @@
         <file>MainView.js</file>
         <file>MainView.qml</file>
         <file>popup.png</file>
-        <file>range.png</file>
         <file>RangeDetails.qml</file>
         <file>RangeMover.qml</file>
-        <file>analyzer_category_small.png</file>
         <file>TimeDisplay.qml</file>
         <file>clean_pane_small.png</file>
         <file>prev.png</file>
         <file>next.png</file>
-        <file>toolbarbg.png</file>
         <file>magnifier-minus.png</file>
         <file>magnifier-plus.png</file>
+        <file>recordOff.png</file>
+        <file>recordOn.png</file>
     </qresource>
 </RCC>
diff --git a/src/plugins/qmlprofiler/qml/range.png b/src/plugins/qmlprofiler/qml/range.png
deleted file mode 100644
index 2ac200fe18a6029c2f5c02f8381aafa82165956a..0000000000000000000000000000000000000000
Binary files a/src/plugins/qmlprofiler/qml/range.png and /dev/null differ
diff --git a/src/plugins/qmlprofiler/qml/recordOff.png b/src/plugins/qmlprofiler/qml/recordOff.png
new file mode 100644
index 0000000000000000000000000000000000000000..66f4e3b36b18d09d60f29585486251b9d1b9a9ee
Binary files /dev/null and b/src/plugins/qmlprofiler/qml/recordOff.png differ
diff --git a/src/plugins/qmlprofiler/qml/recordOn.png b/src/plugins/qmlprofiler/qml/recordOn.png
new file mode 100644
index 0000000000000000000000000000000000000000..5d4b77f0f26688edad425ea1cd16e91c9dd7347e
Binary files /dev/null and b/src/plugins/qmlprofiler/qml/recordOn.png differ
diff --git a/src/plugins/qmlprofiler/qml/toolbarbg.png b/src/plugins/qmlprofiler/qml/toolbarbg.png
deleted file mode 100644
index a94d5465b52ffeccdcf4d8b9e1c232c536bef371..0000000000000000000000000000000000000000
Binary files a/src/plugins/qmlprofiler/qml/toolbarbg.png and /dev/null differ
diff --git a/src/plugins/qmlprofiler/qmlprofiler.pro b/src/plugins/qmlprofiler/qmlprofiler.pro
index 1aa41fbe8303ae2afd689e6f506d78474859d8c1..69ed6b3c4510ce275c10b2a9b7932f6493ffc4ea 100644
--- a/src/plugins/qmlprofiler/qmlprofiler.pro
+++ b/src/plugins/qmlprofiler/qmlprofiler.pro
@@ -23,14 +23,12 @@ SOURCES += \
     tracewindow.cpp \
     timelineview.cpp \
     qmlprofilerattachdialog.cpp \
-    qmlprofilersummaryview.cpp \
-    qmlprojectanalyzerruncontrolfactory.cpp \
     localqmlprofilerrunner.cpp \
     codaqmlprofilerrunner.cpp \
     remotelinuxqmlprofilerrunner.cpp \
-    qmlprofilercalleeview.cpp \
-    qmlprofilercallerview.cpp \
-    qmlprofilertraceclient.cpp
+    qmlprofilertraceclient.cpp \
+    qmlprofilereventview.cpp \
+    qmlprofilerruncontrolfactory.cpp
 
 HEADERS += \
     qmlprofilerconstants.h \
@@ -41,15 +39,14 @@ HEADERS += \
     tracewindow.h \
     timelineview.h \
     qmlprofilerattachdialog.h \
-    qmlprofilersummaryview.h \
-    qmlprojectanalyzerruncontrolfactory.h \
     abstractqmlprofilerrunner.h \
     localqmlprofilerrunner.h \
     codaqmlprofilerrunner.h \
     remotelinuxqmlprofilerrunner.h \
-    qmlprofilercalleeview.h \
-    qmlprofilercallerview.h \
-    qmlprofilertraceclient.h
+    qmlprofilertraceclient.h \
+    qmlprofilereventview.h \
+    qmlprofilereventtypes.h \
+    qmlprofilerruncontrolfactory.h
 
 RESOURCES += \
     qml/qml.qrc
diff --git a/src/plugins/qmlprofiler/qmlprofiler_global.h b/src/plugins/qmlprofiler/qmlprofiler_global.h
index ac97df4bf4f7e9b5ad0273c89bd1cedb0cb1e778..a241f0615f3cb480f5bad1b77ee2ee9cb3594b88 100644
--- a/src/plugins/qmlprofiler/qmlprofiler_global.h
+++ b/src/plugins/qmlprofiler/qmlprofiler_global.h
@@ -6,26 +6,25 @@
 **
 ** Contact: Nokia Corporation (info@qt.nokia.com)
 **
-** No Commercial Usage
-**
-** This file contains pre-release code and may not be distributed.
-** You may use this file in accordance with the terms and conditions
-** contained in the Technology Preview License Agreement accompanying
-** this package.
 **
 ** GNU Lesser General Public License Usage
 **
-** Alternatively, 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.
+** 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
+** 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.
 **
diff --git a/src/plugins/qmlprofiler/qmlprofilercalleeview.cpp b/src/plugins/qmlprofiler/qmlprofilercalleeview.cpp
deleted file mode 100644
index 71fd7677b97dc7097a3a5f4963ea9f59ef8a661a..0000000000000000000000000000000000000000
--- a/src/plugins/qmlprofiler/qmlprofilercalleeview.cpp
+++ /dev/null
@@ -1,292 +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)
-**
-** No Commercial Usage
-**
-** This file contains pre-release code and may not be distributed.
-** You may use this file in accordance with the terms and conditions
-** contained in the Technology Preview License Agreement accompanying
-** this package.
-**
-** GNU Lesser General Public License Usage
-**
-** Alternatively, 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.
-**
-** If you have questions regarding the use of this file, please contact
-** Nokia at info@qt.nokia.com.
-**
-**************************************************************************/
-
-#include "qmlprofilercalleeview.h"
-
-#include <QtCore/QUrl>
-#include <QtCore/QHash>
-
-#include <QtGui/QHeaderView>
-#include <QtGui/QStandardItemModel>
-
-using namespace QmlProfiler::Internal;
-
-struct BindingData
-{
-    BindingData() :
-        displayname(0), filename(0), location(0), details(0),
-        line(-1), rangeType(-1), level(-1), childrenHash(0), parentBinding(0) {}
-
-    ~BindingData() {
-        delete displayname;
-        delete filename;
-        delete location;
-        delete childrenHash;
-    }
-    QString *displayname;
-    QString *filename;
-    QString *location;
-    QString *details;
-    int line;
-    int rangeType;
-    qint64 level;
-    QHash<QString, BindingData *> *childrenHash;
-
-    // reference to parent binding stored in the hash
-    BindingData *parentBinding;
-};
-
-typedef QHash<QString, BindingData *> BindingHash;
-
-enum ItemRole {
-    LocationRole = Qt::UserRole+1,
-    FilenameRole = Qt::UserRole+2,
-    LineRole = Qt::UserRole+3
-};
-
-class QmlProfilerCalleeView::QmlProfilerCalleeViewPrivate
-{
-public:
-    QmlProfilerCalleeViewPrivate(QmlProfilerCalleeView *qq) : q(qq) {}
-
-    void recursiveClearHash(BindingHash *hash);
-    void buildModelFromHash( BindingHash *hash, QStandardItem *parentItem );
-
-    QmlProfilerCalleeView *q;
-
-    QStandardItemModel *m_model;
-//  ToDo: avoid unnecessary allocations by using global hash
-//    BindingHash m_globalHash;
-    BindingHash m_rootHash;
-    QList<BindingData *> m_bindingBuffer;
-};
-
-QmlProfilerCalleeView::QmlProfilerCalleeView(QWidget *parent) :
-    QTreeView(parent), d(new QmlProfilerCalleeViewPrivate(this))
-{
-    setObjectName("QmlProfilerCalleeView");
-    setRootIsDecorated(true);
-    header()->setResizeMode(QHeaderView::Interactive);
-    header()->setMinimumSectionSize(50);
-    setSortingEnabled(false);
-    setFrameStyle(QFrame::NoFrame);
-
-    d->m_model = new QStandardItemModel(this);
-
-    setModel(d->m_model);
-
-    d->m_model->setColumnCount(3);
-    setHeaderLabels();
-
-    connect(this,SIGNAL(clicked(QModelIndex)), this,SLOT(jumpToItem(QModelIndex)));
-}
-
-QmlProfilerCalleeView::~QmlProfilerCalleeView()
-{
-    clean();
-    delete d->m_model;
-}
-
-void QmlProfilerCalleeView::clean()
-{
-    d->m_model->clear();
-    d->m_model->setColumnCount(3);
-
-    // clean the hashes
-    d->recursiveClearHash(&d->m_rootHash);
-
-    setHeaderLabels();
-    setSortingEnabled(false);
-}
-
-void QmlProfilerCalleeView::addRangedEvent(int type, int nestingLevel, int nestingInType, qint64 startTime, qint64 length,
-    const QStringList &data, const QString &fileName, int line)
-{
-    Q_UNUSED(startTime);
-    Q_UNUSED(nestingInType);
-    Q_UNUSED(length);
-
-    const QChar colon = QLatin1Char(':');
-    QString localName, displayName, location, details;
-
-    if (fileName.isEmpty()) {
-        displayName = tr("<bytecode>");
-        location = QLatin1String("--");
-
-    } else {
-        localName = QUrl(fileName).toLocalFile();
-        displayName = localName.mid(localName.lastIndexOf(QChar('/')) + 1) + colon + QString::number(line);
-        location = fileName+colon+QString::number(line);
-    }
-
-    if (data.isEmpty())
-        details = tr("Source code not available");
-    else
-        details = data.join(" ").replace('\n'," ");
-
-    // ToDo: instead of allocating each new event, store them in the global hash
-    BindingData *newBinding = new BindingData;
-    newBinding->displayname = new QString(displayName);
-    newBinding->filename = new QString(fileName);
-    newBinding->line = line;
-    newBinding->level = nestingLevel;
-    newBinding->rangeType = type;
-    newBinding->location = new QString(location);
-    newBinding->details = new QString(details);
-    newBinding->childrenHash = 0;
-
-    d->m_bindingBuffer.prepend(newBinding);
-
-    if (nestingLevel == 1) {
-        // top level: insert buffered stuff
-        BindingHash *currentHash = &(d->m_rootHash);
-        BindingData *lastBinding = 0;
-        int lastLevel = 0;
-
-        while (d->m_bindingBuffer.length()) {
-            BindingData *bindingInfo = d->m_bindingBuffer.at(0);
-            // find the data's place
-            if (bindingInfo->level > lastLevel) {
-                currentHash = lastBinding ? lastBinding->childrenHash : &(d->m_rootHash);
-                bindingInfo->parentBinding = lastBinding;
-                ++lastLevel;
-            } else if (bindingInfo->level == lastLevel) {
-                bindingInfo->parentBinding = lastBinding->parentBinding;
-            } else if (bindingInfo->level < lastLevel) {
-                while (bindingInfo->level < lastLevel) {
-                    bindingInfo->parentBinding = lastBinding->parentBinding ? lastBinding->parentBinding->parentBinding : 0;
-                    currentHash = bindingInfo->parentBinding ? bindingInfo->parentBinding->childrenHash : &(d->m_rootHash);
-                    --lastLevel;
-                }
-            }
-
-            BindingHash::iterator it = currentHash->find(*bindingInfo->location);
-            if (it == currentHash->end()) {
-                bindingInfo->childrenHash = new BindingHash;
-                currentHash->insert(*bindingInfo->location, bindingInfo);
-                lastBinding = bindingInfo;
-            } else {
-                lastBinding = it.value();
-                delete bindingInfo;
-            }
-
-            d->m_bindingBuffer.removeFirst();
-        }
-    }
-}
-
-void QmlProfilerCalleeView::complete()
-{
-    // build the model from the hashed data
-    d->buildModelFromHash( &d->m_rootHash, d->m_model->invisibleRootItem());
-
-    expandAll();
-    resizeColumnToContents(0);
-    resizeColumnToContents(1);
-}
-
-void QmlProfilerCalleeView::jumpToItem(const QModelIndex &index)
-{
-    QStandardItem *clickedItem = d->m_model->itemFromIndex(index);
-    QStandardItem *infoItem;
-    if (clickedItem->parent())
-        infoItem = clickedItem->parent()->child(clickedItem->row(), 0);
-    else
-        infoItem = d->m_model->item(index.row(), 0);
-
-    int line = infoItem->data(LineRole).toInt();
-    if (line == -1)
-        return;
-    QString fileName = infoItem->data(FilenameRole).toString();
-    emit gotoSourceLocation(fileName, line);
-}
-
-void QmlProfilerCalleeView::setHeaderLabels()
-{
-    d->m_model->setHeaderData(0, Qt::Horizontal, QVariant(tr("Location")));
-    d->m_model->setHeaderData(1, Qt::Horizontal, QVariant(tr("Type")));
-    d->m_model->setHeaderData(2, Qt::Horizontal, QVariant(tr("Details")));
-}
-
-void QmlProfilerCalleeView::QmlProfilerCalleeViewPrivate::recursiveClearHash(BindingHash *hash) {
-    QHashIterator<QString, BindingData *> it(*hash);
-    while (it.hasNext()) {
-        it.next();
-        if (it.value()->childrenHash)
-            recursiveClearHash(it.value()->childrenHash);
-        delete it.value();
-    }
-    hash->clear();
-}
-
-inline QString nameForType(int typeNumber)
-{
-    switch (typeNumber) {
-    case 0: return QmlProfilerCalleeView::tr("Paint");
-    case 1: return QmlProfilerCalleeView::tr("Compile");
-    case 2: return QmlProfilerCalleeView::tr("Create");
-    case 3: return QmlProfilerCalleeView::tr("Binding");
-    case 4: return QmlProfilerCalleeView::tr("Signal");
-    }
-    return QString();
-}
-
-void QmlProfilerCalleeView::QmlProfilerCalleeViewPrivate::buildModelFromHash( BindingHash *hash, QStandardItem *parentItem )
-{
-    QHashIterator<QString, BindingData *> it(*hash);
-
-    while (it.hasNext()) {
-        it.next();
-        BindingData *binding = it.value();
-
-        QStandardItem *nameColumn = new QStandardItem(*binding->displayname);
-        nameColumn->setEditable(false);
-
-        QStandardItem *typeColumn = new QStandardItem(nameForType(binding->rangeType));
-        typeColumn->setEditable(false);
-
-        QStandardItem *detailsColumn = new QStandardItem(*binding->details);
-        detailsColumn->setEditable(false);
-
-        QStandardItem *firstColumn = nameColumn;
-        firstColumn->setData(QVariant(*binding->location),LocationRole);
-        firstColumn->setData(QVariant(*binding->filename),FilenameRole);
-        firstColumn->setData(QVariant(binding->line),LineRole);
-
-        QList<QStandardItem *> newRow;
-        newRow << nameColumn << typeColumn << detailsColumn;
-        parentItem->appendRow(newRow);
-        if (!binding->childrenHash->isEmpty())
-            buildModelFromHash(binding->childrenHash, nameColumn);
-    }
-}
diff --git a/src/plugins/qmlprofiler/qmlprofilercalleeview.h b/src/plugins/qmlprofiler/qmlprofilercalleeview.h
deleted file mode 100644
index 715a006edddc4e860941e2118f9ce77a3692281c..0000000000000000000000000000000000000000
--- a/src/plugins/qmlprofiler/qmlprofilercalleeview.h
+++ /dev/null
@@ -1,71 +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)
-**
-** No Commercial Usage
-**
-** This file contains pre-release code and may not be distributed.
-** You may use this file in accordance with the terms and conditions
-** contained in the Technology Preview License Agreement accompanying
-** this package.
-**
-** GNU Lesser General Public License Usage
-**
-** Alternatively, 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.
-**
-** If you have questions regarding the use of this file, please contact
-** Nokia at info@qt.nokia.com.
-**
-**************************************************************************/
-
-#ifndef QMLPROFILERCALLEEVIEW_H
-#define QMLPROFILERCALLEEVIEW_H
-
-#include <QTreeView>
-
-namespace QmlProfiler {
-namespace Internal {
-
-class QmlProfilerCalleeView : public QTreeView
-{
-    Q_OBJECT
-
-public:
-    explicit QmlProfilerCalleeView(QWidget *parent = 0);
-    ~QmlProfilerCalleeView();
-
-signals:
-    void gotoSourceLocation(const QString &fileName, int lineNumber);
-
-public slots:
-    void clean();
-
-    void addRangedEvent(int type, int nestingLevel, int nestingInType, qint64 startTime, qint64 length,
-                        const QStringList &data, const QString &fileName, int line);
-    void complete();
-    void jumpToItem(const QModelIndex &index);
-
-private:
-    class QmlProfilerCalleeViewPrivate;
-    QmlProfilerCalleeViewPrivate *d;
-
-    void setHeaderLabels();
-};
-
-} // namespace Internal
-} // namespace QmlProfiler
-
-#endif // QMLPROFILERCALLEEVIEW_H
diff --git a/src/plugins/qmlprofiler/qmlprofilercallerview.cpp b/src/plugins/qmlprofiler/qmlprofilercallerview.cpp
deleted file mode 100644
index 92cece6058d1c2961cf0759482570078b50eb8aa..0000000000000000000000000000000000000000
--- a/src/plugins/qmlprofiler/qmlprofilercallerview.cpp
+++ /dev/null
@@ -1,288 +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)
-**
-** No Commercial Usage
-**
-** This file contains pre-release code and may not be distributed.
-** You may use this file in accordance with the terms and conditions
-** contained in the Technology Preview License Agreement accompanying
-** this package.
-**
-** GNU Lesser General Public License Usage
-**
-** Alternatively, 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.
-**
-** If you have questions regarding the use of this file, please contact
-** Nokia at info@qt.nokia.com.
-**
-**************************************************************************/
-
-#include "qmlprofilercallerview.h"
-
-#include <QtCore/QUrl>
-#include <QtCore/QHash>
-
-#include <QtGui/QHeaderView>
-#include <QtGui/QStandardItemModel>
-
-using namespace QmlProfiler::Internal;
-
-struct BindingData
-{
-    BindingData() : displayname(0) , filename(0) , location(0) , details(0),
-    line(0), rangeType(0), level(-1), parentList(0) {}
-    ~BindingData() {
-        delete displayname;
-        delete filename;
-        delete location;
-        delete parentList;
-    }
-    QString *displayname;
-    QString *filename;
-    QString *location;
-    QString *details;
-    int line;
-    int rangeType;
-    qint64 level;
-    QList< BindingData *> *parentList;
-};
-
-typedef QHash<QString, BindingData *> BindingHash;
-typedef QList<BindingData *> BindingList;
-
-enum ItemRole {
-    LocationRole = Qt::UserRole+1,
-    FilenameRole = Qt::UserRole+2,
-    LineRole = Qt::UserRole+3
-};
-
-class QmlProfilerCallerView::QmlProfilerCallerViewPrivate
-{
-public:
-    QmlProfilerCallerViewPrivate(QmlProfilerCallerView *qq) : q(qq) {}
-
-    void recursiveClearHash(BindingHash *hash);
-    void buildModelFromList( BindingList *list, QStandardItem *parentItem, BindingList *listSoFar );
-
-    QmlProfilerCallerView *q;
-
-    QStandardItemModel *m_model;
-    BindingHash m_rootHash;
-    QHash<int, BindingList> m_pendingChildren;
-    int m_lastLevel;
-};
-
-QmlProfilerCallerView::QmlProfilerCallerView(QWidget *parent) :
-    QTreeView(parent), d(new QmlProfilerCallerViewPrivate(this))
-{
-    setObjectName("QmlProfilerCallerView");
-    setRootIsDecorated(true);
-    header()->setResizeMode(QHeaderView::Interactive);
-    header()->setMinimumSectionSize(50);
-    setSortingEnabled(false);
-    setFrameStyle(QFrame::NoFrame);
-
-    d->m_model = new QStandardItemModel(this);
-
-    setModel(d->m_model);
-
-    d->m_model->setColumnCount(3);
-    setHeaderLabels();
-
-    connect(this,SIGNAL(clicked(QModelIndex)), this,SLOT(jumpToItem(QModelIndex)));
-
-    d->m_lastLevel = -1;
-}
-
-QmlProfilerCallerView::~QmlProfilerCallerView()
-{
-    clean();
-    delete d->m_model;
-}
-
-void QmlProfilerCallerView::clean()
-{
-    d->m_model->clear();
-    d->m_model->setColumnCount(3);
-
-    foreach (int levelNumber, d->m_pendingChildren.keys())
-        d->m_pendingChildren[levelNumber].clear();
-
-    d->m_lastLevel = -1;
-
-    // clean the hashes
-    d->recursiveClearHash(&d->m_rootHash);
-
-    setHeaderLabels();
-    setSortingEnabled(false);
-}
-
-void QmlProfilerCallerView::addRangedEvent(int type, int nestingLevel, int nestingInType, qint64 startTime, qint64 length,
-    const QStringList &data, const QString &fileName, int line)
-{
-    Q_UNUSED(startTime);
-    Q_UNUSED(nestingInType);
-    Q_UNUSED(length);
-
-    const QChar colon = QLatin1Char(':');
-    QString localName, displayName, location, details;
-
-    if (fileName.isEmpty()) {
-        displayName = tr("<bytecode>");
-        location = QLatin1String("--");
-
-    } else {
-        localName = QUrl(fileName).toLocalFile();
-        displayName = localName.mid(localName.lastIndexOf(QChar('/')) + 1) + colon + QString::number(line);
-        location = fileName+colon+QString::number(line);
-    }
-
-    if (data.isEmpty())
-        details = tr("Source code not available");
-    else
-        details = data.join(" ").replace('\n'," ");
-
-
-    // New Data:  if it's not in the hash, put it there
-    // if it's in the hash, get the reference from the hash
-    BindingData *newBinding;
-    BindingHash::iterator it = d->m_rootHash.find(location);
-    if (it != d->m_rootHash.end()) {
-        newBinding = it.value();
-    } else {
-        newBinding = new BindingData;
-        newBinding->displayname = new QString(displayName);
-        newBinding->filename = new QString(fileName);
-        newBinding->line = line;
-        newBinding->level = nestingLevel;
-        newBinding->rangeType = type;
-        newBinding->location = new QString(location);
-        newBinding->details = new QString(details);
-        newBinding->parentList = new BindingList();
-        d->m_rootHash.insert(location, newBinding);
-    }
-
-    if (nestingLevel < d->m_lastLevel) {
-        // I'm the parent of the former
-        if (d->m_pendingChildren.contains(nestingLevel+1)) {
-            foreach (BindingData *child, d->m_pendingChildren[nestingLevel + 1]) {
-                if (!child->parentList->contains(newBinding))
-                    child->parentList->append(newBinding);
-            }
-            d->m_pendingChildren[nestingLevel + 1].clear();
-        }
-
-    }
-
-    if (nestingLevel > 1 && !d->m_pendingChildren[nestingLevel].contains(newBinding)) {
-        // I'm not root... there will come a parent later
-        d->m_pendingChildren[nestingLevel].append(newBinding);
-    }
-
-    d->m_lastLevel = nestingLevel;
-}
-
-void QmlProfilerCallerView::complete()
-{
-    // build the model from the hashed data
-    BindingList bindingList = d->m_rootHash.values();
-    BindingList emptyList;
-    d->buildModelFromList(&bindingList, d->m_model->invisibleRootItem(), &emptyList);
-
-    expandAll();
-    resizeColumnToContents(0);
-    resizeColumnToContents(1);
-    collapseAll();
-}
-
-void QmlProfilerCallerView::jumpToItem(const QModelIndex &index)
-{
-    QStandardItem *clickedItem = d->m_model->itemFromIndex(index);
-    QStandardItem *infoItem;
-    if (clickedItem->parent())
-        infoItem = clickedItem->parent()->child(clickedItem->row(), 0);
-    else
-        infoItem = d->m_model->item(index.row(), 0);
-
-    int line = infoItem->data(Qt::UserRole+3).toInt();
-    if (line == -1)
-        return;
-    QString fileName = infoItem->data(Qt::UserRole+2).toString();
-    emit gotoSourceLocation(fileName, line);
-}
-
-void QmlProfilerCallerView::setHeaderLabels()
-{
-    d->m_model->setHeaderData(0, Qt::Horizontal, QVariant(tr("Location")));
-    d->m_model->setHeaderData(1, Qt::Horizontal, QVariant(tr("Type")));
-    d->m_model->setHeaderData(2, Qt::Horizontal, QVariant(tr("Details")));
-}
-
-// ToDo: property clean the stored data
-void QmlProfilerCallerView::QmlProfilerCallerViewPrivate::recursiveClearHash(BindingHash *hash) {
-    QHashIterator<QString, BindingData *> it(*hash);
-    while (it.hasNext()) {
-        it.next();
-        delete it.value();
-    }
-    hash->clear();
-}
-
-inline QString nameForType(int typeNumber)
-{
-    switch (typeNumber) {
-    case 0: return QmlProfilerCallerView::tr("Paint");
-    case 1: return QmlProfilerCallerView::tr("Compile");
-    case 2: return QmlProfilerCallerView::tr("Create");
-    case 3: return QmlProfilerCallerView::tr("Binding");
-    case 4: return QmlProfilerCallerView::tr("Signal");
-    }
-    return QString();
-}
-
-void QmlProfilerCallerView::QmlProfilerCallerViewPrivate::buildModelFromList( BindingList *list, QStandardItem *parentItem, BindingList *listSoFar )
-{
-    foreach (BindingData *binding, *list) {
-        if (listSoFar->contains(binding))
-            continue;
-
-        QStandardItem *nameColumn = new QStandardItem(*binding->displayname);
-        nameColumn->setEditable(false);
-
-        QStandardItem *typeColumn = new QStandardItem(nameForType(binding->rangeType));
-        typeColumn->setEditable(false);
-
-        QStandardItem *detailsColumn = new QStandardItem(*binding->details);
-        detailsColumn->setEditable(false);
-
-        QStandardItem *firstColumn = nameColumn;
-        firstColumn->setData(QVariant(*binding->location),LocationRole);
-        firstColumn->setData(QVariant(*binding->filename),FilenameRole);
-        firstColumn->setData(QVariant(binding->line),LineRole);
-
-        QList<QStandardItem *> newRow;
-        newRow << nameColumn << typeColumn << detailsColumn;
-        parentItem->appendRow(newRow);
-        if (!binding->parentList->isEmpty()) {
-            // avoid infinite loops due to recursive functions
-            BindingList newParentList(*listSoFar);
-            newParentList.append(binding);
-
-            buildModelFromList(binding->parentList, nameColumn, &newParentList);
-        }
-    }
-}
diff --git a/src/plugins/qmlprofiler/qmlprofilercallerview.h b/src/plugins/qmlprofiler/qmlprofilercallerview.h
deleted file mode 100644
index 7f9416fea986d80f2271d615ce8ac1004c286828..0000000000000000000000000000000000000000
--- a/src/plugins/qmlprofiler/qmlprofilercallerview.h
+++ /dev/null
@@ -1,71 +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)
-**
-** No Commercial Usage
-**
-** This file contains pre-release code and may not be distributed.
-** You may use this file in accordance with the terms and conditions
-** contained in the Technology Preview License Agreement accompanying
-** this package.
-**
-** GNU Lesser General Public License Usage
-**
-** Alternatively, 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.
-**
-** If you have questions regarding the use of this file, please contact
-** Nokia at info@qt.nokia.com.
-**
-**************************************************************************/
-
-#ifndef QMLPROFILERCALLERVIEW_H
-#define QMLPROFILERCALLERVIEW_H
-
-#include <QTreeView>
-
-namespace QmlProfiler {
-namespace Internal {
-
-class QmlProfilerCallerView : public QTreeView
-{
-    Q_OBJECT
-
-public:
-    explicit QmlProfilerCallerView(QWidget *parent = 0);
-    ~QmlProfilerCallerView();
-
-signals:
-    void gotoSourceLocation(const QString &fileName, int lineNumber);
-
-public slots:
-    void clean();
-
-    void addRangedEvent(int type, int nestingLevel, int nestingInType, qint64 startTime, qint64 length,
-                        const QStringList &data, const QString &fileName, int line);
-    void complete();
-    void jumpToItem(const QModelIndex &index);
-
-private:
-    class QmlProfilerCallerViewPrivate;
-    QmlProfilerCallerViewPrivate *d;
-
-    void setHeaderLabels();
-};
-
-} // namespace Internal
-} // namespace QmlProfiler
-
-#endif // QMLPROFILERCALLERVIEW_H
diff --git a/src/plugins/qmlprofiler/qmlprofilerconstants.h b/src/plugins/qmlprofiler/qmlprofilerconstants.h
index ea7d06df2d2dcd45d5663343c08164d6fc66a359..0a21fd7ad58d8024de11971494bf845e096c1616 100644
--- a/src/plugins/qmlprofiler/qmlprofilerconstants.h
+++ b/src/plugins/qmlprofiler/qmlprofilerconstants.h
@@ -6,26 +6,25 @@
 **
 ** Contact: Nokia Corporation (info@qt.nokia.com)
 **
-** No Commercial Usage
-**
-** This file contains pre-release code and may not be distributed.
-** You may use this file in accordance with the terms and conditions
-** contained in the Technology Preview License Agreement accompanying
-** this package.
 **
 ** GNU Lesser General Public License Usage
 **
-** Alternatively, 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.
+** 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
+** 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.
 **
diff --git a/src/plugins/qmlprofiler/qmlprofilerengine.cpp b/src/plugins/qmlprofiler/qmlprofilerengine.cpp
index 8d0f1ec981c5297613d5a7b8e97f6a70e69929ab..27f34056ff5c953d84d3cd124e3111b99df3e776 100644
--- a/src/plugins/qmlprofiler/qmlprofilerengine.cpp
+++ b/src/plugins/qmlprofiler/qmlprofilerengine.cpp
@@ -6,26 +6,25 @@
 **
 ** Contact: Nokia Corporation (info@qt.nokia.com)
 **
-** No Commercial Usage
-**
-** This file contains pre-release code and may not be distributed.
-** You may use this file in accordance with the terms and conditions
-** contained in the Technology Preview License Agreement accompanying
-** this package.
 **
 ** GNU Lesser General Public License Usage
 **
-** Alternatively, 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.
+** 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
+** 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.
 **
@@ -46,10 +45,18 @@
 #include <coreplugin/icore.h>
 #include <utils/qtcassert.h>
 #include <coreplugin/helpmanager.h>
+#include <qmlprojectmanager/qmlprojectrunconfiguration.h>
+#include <projectexplorer/localapplicationruncontrol.h>
+#include <projectexplorer/applicationrunconfiguration.h>
+#include <qt4projectmanager/qt-s60/s60devicedebugruncontrol.h>
+#include <qt4projectmanager/qt-s60/s60devicerunconfiguration.h>
 
 #include <QtGui/QMainWindow>
 #include <QtGui/QMessageBox>
 
+using namespace Analyzer;
+using namespace ProjectExplorer;
+
 namespace QmlProfiler {
 namespace Internal {
 
@@ -65,12 +72,11 @@ public:
 
     bool attach(const QString &address, uint port);
     static AbstractQmlProfilerRunner *createRunner(ProjectExplorer::RunConfiguration *runConfiguration,
-                                                   const Analyzer::AnalyzerStartParameters &m_params,
                                                    QObject *parent);
 
     QmlProfilerEngine *q;
 
-    Analyzer::AnalyzerStartParameters m_params;
+    //AnalyzerStartParameters m_params;
     AbstractQmlProfilerRunner *m_runner;
     bool m_running;
     bool m_fetchingData;
@@ -78,28 +84,38 @@ public:
 };
 
 AbstractQmlProfilerRunner *
-QmlProfilerEngine::QmlProfilerEnginePrivate::createRunner(ProjectExplorer::RunConfiguration *configuration,
-                                                          const Analyzer::AnalyzerStartParameters &m_params,
+QmlProfilerEngine::QmlProfilerEnginePrivate::createRunner(ProjectExplorer::RunConfiguration *runConfiguration,
                                                           QObject *parent)
 {
     AbstractQmlProfilerRunner *runner = 0;
-    if (m_params.startMode == Analyzer::StartLocal) {
-        LocalQmlProfilerRunner::Configuration configuration;
-        configuration.executable = m_params.debuggee;
-        configuration.executableArguments = m_params.debuggeeArgs;
-        configuration.workingDirectory = m_params.workingDirectory;
-        configuration.environment = m_params.environment;
-        configuration.port = m_params.connParams.port;
-
-        runner = new LocalQmlProfilerRunner(configuration, parent);
-    } else if (m_params.startMode == Analyzer::StartRemote) {
-        if (Qt4ProjectManager::S60DeviceRunConfiguration *s60Config
-                = qobject_cast<Qt4ProjectManager::S60DeviceRunConfiguration*>(configuration)) {
-            runner = new CodaQmlProfilerRunner(s60Config, parent);
-        } else if (RemoteLinux::RemoteLinuxRunConfiguration *rmConfig
-                   = qobject_cast<RemoteLinux::RemoteLinuxRunConfiguration*>(configuration)){
-            runner = new RemoteLinuxQmlProfilerRunner(rmConfig, parent);
-        }
+    if (QmlProjectManager::QmlProjectRunConfiguration *rc1 =
+            qobject_cast<QmlProjectManager::QmlProjectRunConfiguration *>(runConfiguration)) {
+        // This is a "plain" .qmlproject.
+        LocalQmlProfilerRunner::Configuration conf;
+        conf.executable = rc1->observerPath();
+        conf.executableArguments = rc1->viewerArguments();
+        conf.workingDirectory = rc1->workingDirectory();
+        conf.environment = rc1->environment();
+        conf.port = rc1->qmlDebugServerPort();
+        runner = new LocalQmlProfilerRunner(conf, parent);
+    } else if (LocalApplicationRunConfiguration *rc2 =
+            qobject_cast<LocalApplicationRunConfiguration *>(runConfiguration)) {
+        // FIXME: Check.
+        LocalQmlProfilerRunner::Configuration conf;
+        conf.executable = rc2->executable();
+        conf.executableArguments = rc2->commandLineArguments();
+        conf.workingDirectory = rc2->workingDirectory();
+        conf.environment = rc2->environment();
+        conf.port = rc2->qmlDebugServerPort();
+        runner = new LocalQmlProfilerRunner(conf, parent);
+    } else if (Qt4ProjectManager::S60DeviceRunConfiguration *s60Config =
+            qobject_cast<Qt4ProjectManager::S60DeviceRunConfiguration*>(runConfiguration)) {
+        runner = new CodaQmlProfilerRunner(s60Config, parent);
+    } else if (RemoteLinux::RemoteLinuxRunConfiguration *rmConfig =
+            qobject_cast<RemoteLinux::RemoteLinuxRunConfiguration *>(runConfiguration)) {
+        runner = new RemoteLinuxQmlProfilerRunner(rmConfig, parent);
+    } else {
+        QTC_ASSERT(false, /**/);
     }
     return runner;
 }
@@ -108,12 +124,11 @@ QmlProfilerEngine::QmlProfilerEnginePrivate::createRunner(ProjectExplorer::RunCo
 // QmlProfilerEngine
 //
 
-QmlProfilerEngine::QmlProfilerEngine(const Analyzer::AnalyzerStartParameters &sp,
-                                     ProjectExplorer::RunConfiguration *runConfiguration)
-    : IAnalyzerEngine(sp, runConfiguration)
+QmlProfilerEngine::QmlProfilerEngine(IAnalyzerTool *tool,
+         ProjectExplorer::RunConfiguration *runConfiguration)
+    : IAnalyzerEngine(tool, runConfiguration)
     , d(new QmlProfilerEnginePrivate(this))
 {
-    d->m_params = sp;
     d->m_running = false;
     d->m_fetchingData = false;
     d->m_delayedDelete = false;
@@ -129,8 +144,8 @@ QmlProfilerEngine::~QmlProfilerEngine()
 void QmlProfilerEngine::start()
 {
     QTC_ASSERT(!d->m_runner, return);
-    d->m_runner = QmlProfilerEnginePrivate::createRunner(runConfiguration(), d->m_params, this);
-    QTC_ASSERT(d->m_runner, return);
+    d->m_runner = QmlProfilerEnginePrivate::createRunner(runConfiguration(), this);
+
 
     connect(d->m_runner, SIGNAL(stopped()), this, SLOT(stopped()));
     connect(d->m_runner, SIGNAL(appendMessage(QString,Utils::OutputFormat)),
@@ -140,6 +155,8 @@ void QmlProfilerEngine::start()
 
     d->m_running = true;
     d->m_delayedDelete = false;
+
+    AnalyzerManager::handleToolStarted();
 }
 
 void QmlProfilerEngine::stop()
@@ -157,7 +174,7 @@ void QmlProfilerEngine::stop()
 void QmlProfilerEngine::stopped()
 {
     d->m_running = false;
-    Analyzer::AnalyzerManager::instance()->stopTool();
+    AnalyzerManager::stopTool(); // FIXME: Needed?
     emit finished();
 }
 
diff --git a/src/plugins/qmlprofiler/qmlprofilerengine.h b/src/plugins/qmlprofiler/qmlprofilerengine.h
index 85a041dfe5234c6b36e9908cc00bab9922222beb..02dceaf8e2e5b0fd0a9d3ba074df6af6b1c15216 100644
--- a/src/plugins/qmlprofiler/qmlprofilerengine.h
+++ b/src/plugins/qmlprofiler/qmlprofilerengine.h
@@ -6,26 +6,25 @@
 **
 ** Contact: Nokia Corporation (info@qt.nokia.com)
 **
-** No Commercial Usage
-**
-** This file contains pre-release code and may not be distributed.
-** You may use this file in accordance with the terms and conditions
-** contained in the Technology Preview License Agreement accompanying
-** this package.
 **
 ** GNU Lesser General Public License Usage
 **
-** Alternatively, 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.
+** 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
+** 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.
 **
@@ -43,9 +42,10 @@ namespace Internal {
 class QmlProfilerEngine : public Analyzer::IAnalyzerEngine
 {
     Q_OBJECT
+
 public:
-    explicit QmlProfilerEngine(const Analyzer::AnalyzerStartParameters &sp,
-                               ProjectExplorer::RunConfiguration *runConfiguration);
+    QmlProfilerEngine(Analyzer::IAnalyzerTool *tool,
+        ProjectExplorer::RunConfiguration *runConfiguration);
     ~QmlProfilerEngine();
 
 signals:
diff --git a/src/libs/valgrind/valgrind_global.h b/src/plugins/qmlprofiler/qmlprofilereventtypes.h
similarity index 80%
rename from src/libs/valgrind/valgrind_global.h
rename to src/plugins/qmlprofiler/qmlprofilereventtypes.h
index c09c7814ff62fa0d4f4f84a01bcee6e673775e14..1739f90aefddb5ca578445c81d76ece75c63f142 100644
--- a/src/libs/valgrind/valgrind_global.h
+++ b/src/plugins/qmlprofiler/qmlprofilereventtypes.h
@@ -4,8 +4,6 @@
 **
 ** Copyright (c) 2011 Nokia Corporation and/or its subsidiary(-ies).
 **
-** Author: Nicolas Arnaud-Cormos, KDAB (nicolas.arnaud-cormos@kdab.com)
-**
 ** Contact: Nokia Corporation (info@qt.nokia.com)
 **
 **
@@ -32,15 +30,23 @@
 **
 **************************************************************************/
 
-#ifndef VALGRIND_GLOBAL_H
-#define VALGRIND_GLOBAL_H
+#ifndef QMLPROFILEREVENTTYPES_H
+#define QMLPROFILEREVENTTYPES_H
+
+namespace QmlProfiler {
+namespace Internal {
+
+enum QmlEventType {
+    Painting,
+    Compiling,
+    Creating,
+    Binding,
+    HandlingSignal,
 
-#include <QtCore/QtGlobal>
+    MaximumQmlEventType
+};
 
-#if defined(VALGRIND_LIBRARY)
-#  define VALGRINDSHARED_EXPORT Q_DECL_EXPORT
-#else
-#  define VALGRINDSHARED_EXPORT Q_DECL_IMPORT
-#endif
+}
+}
 
-#endif // VALGRIND_GLOBAL_H
+#endif //QMLPROFILEREVENTTYPES_H
diff --git a/src/plugins/qmlprofiler/qmlprofilereventview.cpp b/src/plugins/qmlprofiler/qmlprofilereventview.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..dc75dd5cb8506a1fe994dabf744a287cd8d61b5c
--- /dev/null
+++ b/src/plugins/qmlprofiler/qmlprofilereventview.cpp
@@ -0,0 +1,543 @@
+/**************************************************************************
+**
+** 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 "qmlprofilereventview.h"
+
+#include <QtCore/QUrl>
+#include <QtCore/QHash>
+
+#include <QtGui/QHeaderView>
+#include <QtGui/QStandardItemModel>
+
+namespace QmlProfiler {
+namespace Internal {
+
+class EventsViewItem : public QStandardItem
+{
+public:
+    EventsViewItem(const QString &text) : QStandardItem(text) {}
+
+    virtual bool operator<(const QStandardItem &other) const
+    {
+        if (data().type() == QVariant::String) {
+            // first column
+            return data(FilenameRole).toString() == other.data(FilenameRole).toString() ?
+                        data(LineRole).toInt() < other.data(LineRole).toInt() :
+                        data(FilenameRole).toString() < other.data(FilenameRole).toString();
+        }
+
+        return data().toDouble() < other.data().toDouble();
+    }
+};
+
+
+////////////////////////////////////////////////////////////////////////////////////
+
+class QmlProfilerEventStatistics::QmlProfilerEventStatisticsPrivate
+{
+public:
+    QmlProfilerEventStatisticsPrivate(QmlProfilerEventStatistics *qq) : q(qq) {}
+
+    void postProcess();
+
+    QmlProfilerEventStatistics *q;
+    QmlEventHash m_rootHash;
+    QHash<int, QmlEventList> m_pendingEvents;
+    int m_lastLevel;
+};
+
+
+////////////////////////////////////////////////////////////////////////////////////
+
+class QmlProfilerEventsView::QmlProfilerEventsViewPrivate
+{
+public:
+    QmlProfilerEventsViewPrivate(QmlProfilerEventsView *qq) : q(qq) {}
+
+    void buildModelFromList(const QmlEventList &list, QStandardItem *parentItem, const QmlEventList &visitedFunctionsList = QmlEventList() );
+    int getFieldCount();
+    QString displayTime(double time) const;
+    QString nameForType(int typeNumber) const;
+
+
+    QmlProfilerEventsView *q;
+
+    QmlProfilerEventStatistics *m_eventStatistics;
+    QStandardItemModel *m_model;
+    QList<bool> m_fieldShown;
+    bool m_showAnonymous;
+    int m_firstNumericColumn;
+};
+
+
+////////////////////////////////////////////////////////////////////////////////////
+
+QmlProfilerEventStatistics::QmlProfilerEventStatistics(QObject *parent) :
+    QObject(parent), d(new QmlProfilerEventStatisticsPrivate(this))
+{
+    setObjectName("QmlProfilerEventStatistics");
+    d->m_lastLevel = -1;
+}
+
+QmlProfilerEventStatistics::~QmlProfilerEventStatistics()
+{
+    clear();
+}
+
+void QmlProfilerEventStatistics::clear()
+{
+    foreach (int levelNumber, d->m_pendingEvents.keys())
+        d->m_pendingEvents[levelNumber].clear();
+
+    d->m_lastLevel = -1;
+
+    foreach (QmlEventData *binding, d->m_rootHash.values())
+        delete binding;
+    d->m_rootHash.clear();
+}
+
+QList <QmlEventData *> QmlProfilerEventStatistics::getEventList()
+{
+    return d->m_rootHash.values();
+}
+
+void QmlProfilerEventStatistics::addRangedEvent(int type, int nestingLevel, int nestingInType, qint64 startTime, qint64 length,
+                                                const QStringList &data, const QString &fileName, int line)
+{
+    Q_UNUSED(startTime);
+    Q_UNUSED(nestingInType);
+
+    const QChar colon = QLatin1Char(':');
+    QString localName, displayName, location, details;
+
+    if (data.isEmpty())
+        details = tr("Source code not available");
+    else {
+        details = data.join(" ").replace('\n'," ").simplified();
+        QRegExp rewrite("\\(function \\$(\\w+)\\(\\) \\{ (return |)(.+) \\}\\)");
+        bool match = rewrite.exactMatch(details);
+        if (match) {
+            details = rewrite.cap(1) + ": " + rewrite.cap(3);
+        }
+        if (details.startsWith(QString("file://")))
+            details = details.mid(details.lastIndexOf(QChar('/')) + 1);
+    }
+
+    if (fileName.isEmpty()) {
+        displayName = tr("<bytecode>");
+        location = QString("--:%1:%2").arg(QString::number(type), details);
+    } else {
+        localName = QUrl(fileName).toLocalFile();
+        displayName = localName.mid(localName.lastIndexOf(QChar('/')) + 1) + colon + QString::number(line);
+        location = fileName+colon+QString::number(line);
+    }
+
+
+    // New Data:  if it's not in the hash, put it there
+    // if it's in the hash, get the reference from the hash
+    QmlEventData *newBinding;
+    QmlEventHash::iterator it = d->m_rootHash.find(location);
+    if (it != d->m_rootHash.end()) {
+        newBinding = it.value();
+        newBinding->duration += length;
+        newBinding->calls++;
+        if (newBinding->maxTime < length)
+            newBinding->maxTime = length;
+        if (newBinding->minTime > length)
+            newBinding->minTime = length;
+    } else {
+        newBinding = new QmlEventData;
+        newBinding->calls = 1;
+        newBinding->duration = length;
+        newBinding->displayname = new QString(displayName);
+        newBinding->filename = new QString(fileName);
+        newBinding->location = new QString(location);
+        newBinding->line = line;
+        newBinding->minTime = length;
+        newBinding->maxTime = length;
+        newBinding->level = nestingLevel;
+        newBinding->eventType = (QmlEventType)type;
+        newBinding->details = new QString(details);
+        newBinding->parentList = new QmlEventList();
+        newBinding->childrenList = new QmlEventList();
+        d->m_rootHash.insert(location, newBinding);
+    }
+
+    if (nestingLevel < d->m_lastLevel) {
+        // I'm the parent of the former
+        if (d->m_pendingEvents.contains(nestingLevel+1)) {
+            foreach (QmlEventData *child, d->m_pendingEvents[nestingLevel + 1]) {
+                if (!newBinding->childrenList->contains(child))
+                    newBinding->childrenList->append(child);
+                if (!child->parentList->contains(newBinding))
+                    child->parentList->append(newBinding);
+            }
+            d->m_pendingEvents[nestingLevel + 1].clear();
+        }
+
+    }
+
+    if (nestingLevel > 1 && !d->m_pendingEvents[nestingLevel].contains(newBinding)) {
+        // I'm not root... there will come a parent later
+        d->m_pendingEvents[nestingLevel].append(newBinding);
+    }
+
+    d->m_lastLevel = nestingLevel;
+}
+
+void QmlProfilerEventStatistics::complete()
+{
+    d->postProcess();
+    emit dataReady();
+}
+
+void QmlProfilerEventStatistics::QmlProfilerEventStatisticsPrivate::postProcess()
+{
+    double totalTime = 0;
+
+    foreach (QmlEventData *binding, m_rootHash.values())
+        totalTime += binding->duration;
+
+    foreach (QmlEventData *binding, m_rootHash.values()) {
+        binding->percentOfTime = binding->duration * 100.0 / totalTime;
+        binding->timePerCall = binding->calls > 0 ? double(binding->duration) / binding->calls : 0;
+    }
+}
+
+////////////////////////////////////////////////////////////////////////////////////
+
+QmlProfilerEventsView::QmlProfilerEventsView(QWidget *parent, QmlProfilerEventStatistics *model) :
+    QTreeView(parent), d(new QmlProfilerEventsViewPrivate(this))
+{
+    setObjectName("QmlProfilerEventsView");
+    header()->setResizeMode(QHeaderView::Interactive);
+    header()->setDefaultSectionSize(100);
+    header()->setMinimumSectionSize(50);
+    setSortingEnabled(false);
+    setFrameStyle(QFrame::NoFrame);
+
+    d->m_model = new QStandardItemModel(this);
+    setModel(d->m_model);
+    connect(this,SIGNAL(clicked(QModelIndex)), this,SLOT(jumpToItem(QModelIndex)));
+
+    d->m_eventStatistics = 0;
+    setEventStatisticsModel(model);
+
+    d->m_showAnonymous = false;
+    d->m_firstNumericColumn = 0;
+
+    // default view
+    setViewType(EventsView);
+}
+
+QmlProfilerEventsView::~QmlProfilerEventsView()
+{
+    clear();
+    delete d->m_model;
+}
+
+void QmlProfilerEventsView::setEventStatisticsModel( QmlProfilerEventStatistics *model )
+{
+    if (d->m_eventStatistics)
+        disconnect(d->m_eventStatistics,SIGNAL(dataReady()),this,SLOT(buildModel()));
+    d->m_eventStatistics = model;
+    connect(d->m_eventStatistics,SIGNAL(dataReady()),this,SLOT(buildModel()));
+}
+
+void QmlProfilerEventsView::setFieldViewable(Fields field, bool show)
+{
+    if (field < MaxFields) {
+        int length = d->m_fieldShown.count();
+        if (field >= length) {
+            for (int i=length; i<MaxFields; i++)
+                d->m_fieldShown << false;
+        }
+        d->m_fieldShown[field] = show;
+    }
+}
+
+void QmlProfilerEventsView::setViewType(ViewTypes type)
+{
+    switch (type) {
+    case EventsView: {
+        setObjectName("QmlProfilerEventsView");
+        setFieldViewable(Name, true);
+        setFieldViewable(Type, true);
+        setFieldViewable(Percent, true);
+        setFieldViewable(TotalDuration, true);
+        setFieldViewable(CallCount, true);
+        setFieldViewable(TimePerCall, true);
+        setFieldViewable(MaxTime, true);
+        setFieldViewable(MinTime, true);
+        setFieldViewable(Details, false);
+        setFieldViewable(Parents, false);
+        setFieldViewable(Children, false);
+        setShowAnonymousEvents(false);
+        break;
+    }
+    case CallersView: {
+        setObjectName("QmlProfilerCallersView");
+        setFieldViewable(Name, true);
+        setFieldViewable(Type, true);
+        setFieldViewable(Percent, false);
+        setFieldViewable(TotalDuration, false);
+        setFieldViewable(CallCount, false);
+        setFieldViewable(TimePerCall, false);
+        setFieldViewable(MaxTime, false);
+        setFieldViewable(MinTime, false);
+        setFieldViewable(Details, true);
+        setFieldViewable(Parents, true);
+        setFieldViewable(Children, false);
+        setShowAnonymousEvents(true);
+        break;
+    }
+    case CalleesView: {
+        setObjectName("QmlProfilerCalleesView");
+        setFieldViewable(Name, true);
+        setFieldViewable(Type, true);
+        setFieldViewable(Percent, false);
+        setFieldViewable(TotalDuration, false);
+        setFieldViewable(CallCount, false);
+        setFieldViewable(TimePerCall, false);
+        setFieldViewable(MaxTime, false);
+        setFieldViewable(MinTime, false);
+        setFieldViewable(Details, true);
+        setFieldViewable(Parents, false);
+        setFieldViewable(Children, true);
+        setShowAnonymousEvents(true);
+        break;
+    }
+    default: break;
+    }
+
+    buildModel();
+}
+
+void QmlProfilerEventsView::setShowAnonymousEvents( bool showThem )
+{
+    d->m_showAnonymous = showThem;
+}
+
+void QmlProfilerEventsView::setHeaderLabels()
+{
+    int fieldIndex = 0;
+    d->m_firstNumericColumn = 0;
+
+    if (d->m_fieldShown[Name]) {
+        d->m_model->setHeaderData(fieldIndex++, Qt::Horizontal, QVariant(tr("Location")));
+        d->m_firstNumericColumn++;
+    }
+    if (d->m_fieldShown[Type]) {
+        d->m_model->setHeaderData(fieldIndex++, Qt::Horizontal, QVariant(tr("Type")));
+        d->m_firstNumericColumn++;
+    }
+    if (d->m_fieldShown[Percent])
+        d->m_model->setHeaderData(fieldIndex++, Qt::Horizontal, QVariant(tr("Time in Percent")));
+    if (d->m_fieldShown[TotalDuration])
+        d->m_model->setHeaderData(fieldIndex++, Qt::Horizontal, QVariant(tr("Total Time")));
+    if (d->m_fieldShown[CallCount])
+        d->m_model->setHeaderData(fieldIndex++, Qt::Horizontal, QVariant(tr("Calls")));
+    if (d->m_fieldShown[TimePerCall])
+        d->m_model->setHeaderData(fieldIndex++, Qt::Horizontal, QVariant(tr("Time per Call")));
+    if (d->m_fieldShown[MaxTime])
+        d->m_model->setHeaderData(fieldIndex++, Qt::Horizontal, QVariant(tr("Longest Time")));
+    if (d->m_fieldShown[MinTime])
+        d->m_model->setHeaderData(fieldIndex++, Qt::Horizontal, QVariant(tr("Shortest Time")));
+    if (d->m_fieldShown[Details])
+        d->m_model->setHeaderData(fieldIndex++, Qt::Horizontal, QVariant(tr("Details")));
+}
+
+void QmlProfilerEventsView::clear()
+{
+    d->m_model->clear();
+    d->m_model->setColumnCount(d->getFieldCount());
+
+    setHeaderLabels();
+    setSortingEnabled(false);
+}
+
+int QmlProfilerEventsView::QmlProfilerEventsViewPrivate::getFieldCount()
+{
+    int count = 0;
+    for (int i=0; i < m_fieldShown.count(); ++i)
+        if (m_fieldShown[i] && i != Parents && i != Children)
+            count++;
+    return count;
+}
+
+void QmlProfilerEventsView::buildModel()
+{
+    if (d->m_eventStatistics) {
+        clear();
+        d->buildModelFromList( d->m_eventStatistics->getEventList(), d->m_model->invisibleRootItem() );
+
+        bool hasBranches = d->m_fieldShown[Parents] || d->m_fieldShown[Children];
+        setRootIsDecorated(hasBranches);
+
+        setSortingEnabled(!hasBranches);
+
+        if (!hasBranches)
+            sortByColumn(d->m_firstNumericColumn,Qt::DescendingOrder);
+
+        expandAll();
+        if (d->m_fieldShown[Name])
+            resizeColumnToContents(0);
+
+        if (d->m_fieldShown[Type])
+            resizeColumnToContents(d->m_fieldShown[Name]?1:0);
+        collapseAll();
+    }
+}
+
+void QmlProfilerEventsView::QmlProfilerEventsViewPrivate::buildModelFromList( const QmlEventList &list, QStandardItem *parentItem, const QmlEventList &visitedFunctionsList )
+{
+    foreach (QmlEventData *binding, list) {
+        if (visitedFunctionsList.contains(binding))
+            continue;
+
+        if ((!m_showAnonymous) && binding->filename->isEmpty())
+            continue;
+
+        QList<QStandardItem *> newRow;
+        if (m_fieldShown[Name]) {
+            newRow << new EventsViewItem(*binding->displayname);
+        }
+
+        if (m_fieldShown[Type]) {
+            newRow << new EventsViewItem(nameForType(binding->eventType));
+            newRow.last()->setData(QVariant(binding->eventType));
+        }
+
+        if (m_fieldShown[Percent]) {
+            newRow << new EventsViewItem(QString::number(binding->percentOfTime,'f',2)+QLatin1String(" %"));
+            newRow.last()->setData(QVariant(binding->eventType));
+        }
+
+        if (m_fieldShown[TotalDuration]) {
+            newRow << new EventsViewItem(displayTime(binding->duration));
+            newRow.last()->setData(QVariant(binding->duration));
+        }
+
+        if (m_fieldShown[CallCount]) {
+            newRow << new EventsViewItem(QString::number(binding->calls));
+            newRow.last()->setData(QVariant(binding->calls));
+        }
+
+        if (m_fieldShown[TimePerCall]) {
+            newRow << new EventsViewItem(displayTime(binding->timePerCall));
+            newRow.last()->setData(QVariant(binding->timePerCall));
+        }
+
+        if (m_fieldShown[MaxTime]) {
+            newRow << new EventsViewItem(displayTime(binding->maxTime));
+            newRow.last()->setData(QVariant(binding->maxTime));
+        }
+
+        if (m_fieldShown[MinTime]) {
+            newRow << new EventsViewItem(displayTime(binding->minTime));
+            newRow.last()->setData(QVariant(binding->minTime));
+        }
+
+        if (m_fieldShown[Details]) {
+            newRow << new EventsViewItem(*binding->details);
+        }
+
+        if (!newRow.isEmpty()) {
+            // no edit
+            foreach (QStandardItem *item, newRow)
+                item->setEditable(false);
+
+            // metadata
+            newRow.at(0)->setData(QVariant(*binding->location),LocationRole);
+            newRow.at(0)->setData(QVariant(*binding->filename),FilenameRole);
+            newRow.at(0)->setData(QVariant(binding->line),LineRole);
+
+            // append
+            parentItem->appendRow(newRow);
+
+            if (m_fieldShown[Parents] && !binding->parentList->isEmpty()) {
+                QmlEventList newParentList(visitedFunctionsList);
+                newParentList.append(binding);
+
+                buildModelFromList(*binding->parentList, newRow.at(0), newParentList);
+            }
+
+            if (m_fieldShown[Children] && !binding->childrenList->isEmpty()) {
+                QmlEventList newChildrenList(visitedFunctionsList);
+                newChildrenList.append(binding);
+
+                buildModelFromList(*binding->childrenList, newRow.at(0), newChildrenList);
+            }
+        }
+    }
+}
+
+QString QmlProfilerEventsView::QmlProfilerEventsViewPrivate::displayTime(double time) const
+{
+    if (time < 1e6)
+        return QString::number(time/1e3,'f',3) + QString::fromWCharArray(L" \u03BCs");
+    if (time < 1e9)
+        return QString::number(time/1e6,'f',3) + QLatin1String(" ms");
+
+    return QString::number(time/1e9,'f',3) + QLatin1String(" s");
+}
+
+QString QmlProfilerEventsView::QmlProfilerEventsViewPrivate::nameForType(int typeNumber) const
+{
+    switch (typeNumber) {
+    case 0: return QmlProfilerEventsView::tr("Paint");
+    case 1: return QmlProfilerEventsView::tr("Compile");
+    case 2: return QmlProfilerEventsView::tr("Create");
+    case 3: return QmlProfilerEventsView::tr("Binding");
+    case 4: return QmlProfilerEventsView::tr("Signal");
+    }
+    return QString();
+}
+
+void QmlProfilerEventsView::jumpToItem(const QModelIndex &index)
+{
+    QStandardItem *clickedItem = d->m_model->itemFromIndex(index);
+    QStandardItem *infoItem;
+    if (clickedItem->parent())
+        infoItem = clickedItem->parent()->child(clickedItem->row(), 0);
+    else
+        infoItem = d->m_model->item(index.row(), 0);
+
+    int line = infoItem->data(LineRole).toInt();
+    if (line == -1)
+        return;
+    QString fileName = infoItem->data(FilenameRole).toString();
+    emit gotoSourceLocation(fileName, line);
+}
+
+} // namespace Internal
+} // namespace QmlProfiler
diff --git a/src/plugins/qmlprofiler/qmlprofilereventview.h b/src/plugins/qmlprofiler/qmlprofilereventview.h
new file mode 100644
index 0000000000000000000000000000000000000000..eac510a9e243b690e643aa9dbe830abe53d44dd5
--- /dev/null
+++ b/src/plugins/qmlprofiler/qmlprofilereventview.h
@@ -0,0 +1,160 @@
+/**************************************************************************
+**
+** 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 QMLPROFILEREVENTVIEW_H
+#define QMLPROFILEREVENTVIEW_H
+
+#include <QTreeView>
+#include "qmlprofilereventtypes.h"
+
+namespace QmlProfiler {
+namespace Internal {
+
+struct QmlEventData
+{
+    QmlEventData() : displayname(0) , filename(0) , location(0) , details(0),
+        line(0), eventType(MaximumQmlEventType), level(-1), parentList(0), childrenList(0) {}
+    ~QmlEventData() {
+        delete displayname;
+        delete filename;
+        delete location;
+        delete parentList;
+        delete childrenList;
+    }
+    QString *displayname;
+    QString *filename;
+    QString *location;
+    QString *details;
+    int line;
+    QmlEventType eventType;
+    qint64 level;
+    QList< QmlEventData *> *parentList;
+    QList< QmlEventData *> *childrenList;
+    qint64 duration;
+    qint64 calls;
+    qint64 minTime;
+    qint64 maxTime;
+    double timePerCall;
+    double percentOfTime;
+};
+
+
+typedef QHash<QString, QmlEventData *> QmlEventHash;
+typedef QList<QmlEventData *> QmlEventList;
+
+enum ItemRole {
+    LocationRole = Qt::UserRole+1,
+    FilenameRole = Qt::UserRole+2,
+    LineRole = Qt::UserRole+3
+};
+
+class QmlProfilerEventStatistics : public QObject
+{
+    Q_OBJECT
+public:
+
+    explicit QmlProfilerEventStatistics(QObject *parent = 0);
+    ~QmlProfilerEventStatistics();
+
+    QmlEventList getEventList();
+
+signals:
+    void dataReady();
+
+public slots:
+    void clear();
+    void addRangedEvent(int type, int nestingLevel, int nestingInType, qint64 startTime, qint64 length,
+                        const QStringList &data, const QString &fileName, int line);
+    void complete();
+
+private:
+    class QmlProfilerEventStatisticsPrivate;
+    QmlProfilerEventStatisticsPrivate *d;
+};
+
+class QmlProfilerEventsView : public QTreeView
+{
+    Q_OBJECT
+public:
+    enum Fields {
+        Name,
+        Type,
+        Percent,
+        TotalDuration,
+        CallCount,
+        TimePerCall,
+        MaxTime,
+        MinTime,
+        Details,
+        Parents,
+        Children,
+
+        MaxFields
+    };
+
+    enum ViewTypes {
+        EventsView,
+        CallersView,
+        CalleesView,
+
+        MaxViewTypes
+    };
+
+    explicit QmlProfilerEventsView(QWidget *parent, QmlProfilerEventStatistics *model);
+    ~QmlProfilerEventsView();
+
+    void setEventStatisticsModel( QmlProfilerEventStatistics *model );
+    void setFieldViewable(Fields field, bool show);
+    void setViewType(ViewTypes type);
+    void setShowAnonymousEvents( bool showThem );
+
+signals:
+    void gotoSourceLocation(const QString &fileName, int lineNumber);
+
+public slots:
+    void clear();
+    void jumpToItem(const QModelIndex &index);
+    void buildModel();
+
+private:
+    void setHeaderLabels();
+
+private:
+    class QmlProfilerEventsViewPrivate;
+    QmlProfilerEventsViewPrivate *d;
+
+};
+
+} // namespace Internal
+} // namespace QmlProfiler
+
+#endif // QMLPROFILEREVENTVIEW_H
diff --git a/src/plugins/qmlprofiler/qmlprofilerplugin.cpp b/src/plugins/qmlprofiler/qmlprofilerplugin.cpp
index 3f2dd503696f1cc923d0c4c1eb652b6903741478..995a13cb5d06bdb1ff187bd82274f1bc137edf84 100644
--- a/src/plugins/qmlprofiler/qmlprofilerplugin.cpp
+++ b/src/plugins/qmlprofiler/qmlprofilerplugin.cpp
@@ -6,124 +6,71 @@
 **
 ** Contact: Nokia Corporation (info@qt.nokia.com)
 **
-** No Commercial Usage
-**
-** This file contains pre-release code and may not be distributed.
-** You may use this file in accordance with the terms and conditions
-** contained in the Technology Preview License Agreement accompanying
-** this package.
 **
 ** GNU Lesser General Public License Usage
 **
-** Alternatively, 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.
+** 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
+** 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 "qmlprofilerplugin.h"
-#include "qmlprofilerconstants.h"
-#include "qmlprojectanalyzerruncontrolfactory.h"
 
-#include <coreplugin/icore.h>
-#include <coreplugin/icontext.h>
-#include <coreplugin/actionmanager/actionmanager.h>
-#include <coreplugin/actionmanager/command.h>
-#include <coreplugin/actionmanager/actioncontainer.h>
-#include <coreplugin/coreconstants.h>
+#include "qmlprofilertool.h"
+#include "qmlprofilerruncontrolfactory.h"
 
 #include <analyzerbase/analyzermanager.h>
 
-#include <QtGui/QAction>
-#include <QtGui/QMessageBox>
-#include <QtGui/QMainWindow>
-#include <QtGui/QMenu>
-
 #include <QtCore/QtPlugin>
 
-#include "qmlprofilertool.h"
-
 using namespace Analyzer;
 using namespace QmlProfiler::Internal;
 
-QmlProfilerPlugin *QmlProfilerPlugin::m_instance = 0;
 bool QmlProfilerPlugin::debugOutput = false;
 
-
-class QmlProfilerPlugin::QmlProfilerPluginPrivate
-{
-public:
-    QmlProfilerPluginPrivate(QmlProfilerPlugin *qq):
-        q(qq)
-    {}
-
-    void initialize(const QStringList &arguments, QString *errorString);
-
-    QmlProjectAnalyzerRunControlFactory *m_runControlFactory;
-    QmlProfilerPlugin *q;
-};
-
-void QmlProfilerPlugin::QmlProfilerPluginPrivate::initialize(const QStringList &arguments, QString *errorString)
+bool QmlProfilerPlugin::initialize(const QStringList &arguments, QString *errorString)
 {
     Q_UNUSED(arguments)
     Q_UNUSED(errorString)
-
-    m_runControlFactory = new QmlProjectAnalyzerRunControlFactory();
-    Analyzer::AnalyzerManager::instance()->registerRunControlFactory(m_runControlFactory);
-}
-
-
-
-QmlProfilerPlugin::QmlProfilerPlugin()
-    : d(new QmlProfilerPluginPrivate(this))
-{
-    m_instance = this;
-}
-
-QmlProfilerPlugin::~QmlProfilerPlugin()
-{
-    delete d;
-    m_instance = 0;
-}
-
-bool QmlProfilerPlugin::initialize(const QStringList &arguments, QString *errorString)
-{
-    d->initialize(arguments, errorString);
-
-    AnalyzerManager::instance()->addTool(new QmlProfilerTool(this));
-
+    addAutoReleasedObject(new QmlProfilerRunControlFactory());
+    StartModes modes;
+    // They are handled the same actually.
+    //modes.append(StartMode(StartRemote));
+    modes.append(StartMode(StartLocal));
+    AnalyzerManager::addTool(new QmlProfilerTool(this), modes);
     return true;
 }
 
 void QmlProfilerPlugin::extensionsInitialized()
 {
-    // Retrieve objects from the plugin manager's object pool
+    // Retrieve objects from the plugin manager's object pool.
     // "In the extensionsInitialized method, a plugin can be sure that all
     //  plugins that depend on it are completely initialized."
 }
 
 ExtensionSystem::IPlugin::ShutdownFlag QmlProfilerPlugin::aboutToShutdown()
 {
-    // Save settings
+    // Save settings.
     // Disconnect from signals that are not needed during shutdown
     // Hide UI (if you add UI that is not in the main window directly)
     return SynchronousShutdown;
 }
 
-QmlProfilerPlugin *QmlProfilerPlugin::instance()
-{
-    return m_instance;
-}
-
 Q_EXPORT_PLUGIN(QmlProfilerPlugin)
 
diff --git a/src/plugins/qmlprofiler/qmlprofilerplugin.h b/src/plugins/qmlprofiler/qmlprofilerplugin.h
index aa6a749c8342afd7333eb7a25a3d41dc127dbf59..e6ce2b1d9c66cd27ce630611ebe380b4ef643a72 100644
--- a/src/plugins/qmlprofiler/qmlprofilerplugin.h
+++ b/src/plugins/qmlprofiler/qmlprofilerplugin.h
@@ -6,26 +6,25 @@
 **
 ** Contact: Nokia Corporation (info@qt.nokia.com)
 **
-** No Commercial Usage
-**
-** This file contains pre-release code and may not be distributed.
-** You may use this file in accordance with the terms and conditions
-** contained in the Technology Preview License Agreement accompanying
-** this package.
 **
 ** GNU Lesser General Public License Usage
 **
-** Alternatively, 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.
+** 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
+** 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.
 **
@@ -46,22 +45,13 @@ class QmlProfilerPlugin : public ExtensionSystem::IPlugin
     Q_OBJECT
 
 public:
-    static QmlProfilerPlugin *instance();
-
-    QmlProfilerPlugin();
-    ~QmlProfilerPlugin();
+    QmlProfilerPlugin() {}
 
     bool initialize(const QStringList &arguments, QString *errorString);
     void extensionsInitialized();
     ShutdownFlag aboutToShutdown();
 
     static bool debugOutput;
-
-private:
-    class QmlProfilerPluginPrivate;
-    QmlProfilerPluginPrivate *d;
-
-    static QmlProfilerPlugin *m_instance;
 };
 
 } // namespace Internal
diff --git a/src/plugins/qmlprofiler/qmlprofilerruncontrolfactory.cpp b/src/plugins/qmlprofiler/qmlprofilerruncontrolfactory.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..1b0edfeef42fb262aa724f16337dfabe2f2986c9
--- /dev/null
+++ b/src/plugins/qmlprofiler/qmlprofilerruncontrolfactory.cpp
@@ -0,0 +1,158 @@
+/**************************************************************************
+**
+** 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 "qmlprofilerruncontrolfactory.h"
+#include "qmlprojectmanager/qmlprojectrunconfiguration.h"
+
+#include <analyzerbase/analyzerstartparameters.h>
+#include <analyzerbase/analyzermanager.h>
+#include <analyzerbase/analyzersettings.h>
+#include <analyzerbase/analyzerrunconfigwidget.h>
+
+#include <projectexplorer/applicationrunconfiguration.h>
+#include <projectexplorer/projectexplorer.h>
+
+#include <remotelinux/linuxdeviceconfiguration.h>
+#include <remotelinux/remotelinuxrunconfiguration.h>
+#include <qt4projectmanager/qt-s60/s60devicedebugruncontrol.h>
+#include <qt4projectmanager/qt-s60/s60devicerunconfiguration.h>
+
+#include <utils/qtcassert.h>
+
+#include <QtGui/QAction>
+
+using namespace Analyzer;
+using namespace ProjectExplorer;
+using namespace QmlProfiler::Internal;
+using namespace QmlProjectManager;
+
+QmlProfilerRunControlFactory::QmlProfilerRunControlFactory(QObject *parent)
+    : IRunControlFactory(parent)
+{
+    setObjectName(QLatin1String("QmlProfilerRunControlFactory"));
+}
+
+bool QmlProfilerRunControlFactory::canRun(RunConfiguration *runConfiguration, const QString &mode) const
+{
+    // FIXME: Should this just accept all  mode == QLatin1String("QmlProfiler"); ?
+    if (qobject_cast<QmlProjectRunConfiguration *>(runConfiguration))
+        return mode == QLatin1String("QmlProfiler");
+    if (qobject_cast<RemoteLinux::RemoteLinuxRunConfiguration *>(runConfiguration))
+        return mode == QLatin1String("QmlProfiler");
+    if (qobject_cast<LocalApplicationRunConfiguration *>(runConfiguration))
+        return mode == QLatin1String("QmlProfiler");
+    if (qobject_cast<Qt4ProjectManager::S60DeviceRunConfiguration *>(runConfiguration))
+        return mode == QLatin1String("QmlProfiler");
+    return false;
+}
+
+RunControl *QmlProfilerRunControlFactory::create(RunConfiguration *runConfiguration, const QString &mode)
+{
+    QTC_ASSERT(canRun(runConfiguration, mode), return 0);
+    AnalyzerStartParameters sp;
+    sp.toolId = "QmlProfiler";
+    sp.startMode = StartQml; // FIXME: The parameter struct is not needed/not used.
+
+
+    // FIXME: This is only used to communicate the connParams settings.
+    if (QmlProjectRunConfiguration *rc1 =
+            qobject_cast<QmlProjectRunConfiguration *>(runConfiguration)) {
+        // This is a "plain" .qmlproject.
+        sp.environment = rc1->environment();
+        sp.workingDirectory = rc1->workingDirectory();
+        sp.debuggee = rc1->observerPath();
+        sp.debuggeeArgs = rc1->viewerArguments();
+        sp.displayName = rc1->displayName();
+        sp.connParams.host = QLatin1String("localhost");
+        sp.connParams.port = rc1->qmlDebugServerPort();
+    } else if (LocalApplicationRunConfiguration *rc2 =
+            qobject_cast<LocalApplicationRunConfiguration *>(runConfiguration)) {
+        sp.environment = rc2->environment();
+        sp.workingDirectory = rc2->workingDirectory();
+        sp.debuggee = rc2->executable();
+        sp.debuggeeArgs = rc2->commandLineArguments();
+        sp.displayName = rc2->displayName();
+        sp.connParams.host = QLatin1String("localhost");
+        sp.connParams.port = rc2->qmlDebugServerPort();
+    } else if (RemoteLinux::RemoteLinuxRunConfiguration *rc3 =
+            qobject_cast<RemoteLinux::RemoteLinuxRunConfiguration *>(runConfiguration)) {
+        sp.debuggee = rc3->remoteExecutableFilePath();
+        sp.debuggeeArgs = rc3->arguments();
+        sp.connParams = rc3->deviceConfig()->sshParameters();
+        sp.analyzerCmdPrefix = rc3->commandPrefix();
+        sp.displayName = rc3->displayName();
+    } else if (Qt4ProjectManager::S60DeviceRunConfiguration *rc4 =
+        qobject_cast<Qt4ProjectManager::S60DeviceRunConfiguration *>(runConfiguration)) {
+        //sp.environment = rc4->environment();
+        //sp.workingDirectory = rc4->workingDirectory();
+        //sp.debuggee = rc4->executable();
+        sp.debuggeeArgs = rc4->commandLineArguments();
+        sp.displayName = rc4->displayName();
+        sp.connParams.host = QLatin1String("localhost");
+        sp.connParams.port = rc4->qmlDebugServerPort();
+    } else {
+        // What could that be?
+        QTC_ASSERT(false, return 0);
+    }
+
+    IAnalyzerTool *tool = AnalyzerManager::toolFromId(mode.toLatin1());
+    AnalyzerRunControl *rc = new AnalyzerRunControl(tool, sp, runConfiguration);
+    QObject::connect(AnalyzerManager::stopAction(), SIGNAL(triggered()), rc, SLOT(stopIt()));
+    return rc;
+}
+
+QString QmlProfilerRunControlFactory::displayName() const
+{
+    return tr("QML Profiler");
+}
+
+IRunConfigurationAspect *QmlProfilerRunControlFactory::createRunConfigurationAspect()
+{
+    return new AnalyzerProjectSettings;
+}
+
+RunConfigWidget *QmlProfilerRunControlFactory::createConfigurationWidget(RunConfiguration *runConfiguration)
+{
+    QmlProjectManager::QmlProjectRunConfiguration *localRc =
+        qobject_cast<QmlProjectManager::QmlProjectRunConfiguration *>(runConfiguration);
+    if (!localRc)
+        return 0;
+
+    AnalyzerProjectSettings *settings = runConfiguration->extraAspect<AnalyzerProjectSettings>();
+    if (!settings)
+        return 0;
+
+    Analyzer::AnalyzerRunConfigWidget *ret = new Analyzer::AnalyzerRunConfigWidget;
+
+    ret->setRunConfiguration(runConfiguration);
+    return ret;
+}
diff --git a/src/plugins/analyzerbase/analyzerruncontrolfactory.h b/src/plugins/qmlprofiler/qmlprofilerruncontrolfactory.h
similarity index 75%
rename from src/plugins/analyzerbase/analyzerruncontrolfactory.h
rename to src/plugins/qmlprofiler/qmlprofilerruncontrolfactory.h
index 7c518f15cc8126262e8e238d3ab44029bb83bdd5..d360fb3ae9ce941d0fc35b0276ef65006060961d 100644
--- a/src/plugins/analyzerbase/analyzerruncontrolfactory.h
+++ b/src/plugins/qmlprofiler/qmlprofilerruncontrolfactory.h
@@ -30,34 +30,28 @@
 **
 **************************************************************************/
 
-#ifndef ANALYZERRUNCONTROLFACTORY_H
-#define ANALYZERRUNCONTROLFACTORY_H
+#ifndef QMLPROFILERRUNCONTROLFACTORY_H
+#define QMLPROFILERRUNCONTROLFACTORY_H
 
+#include <analyzerbase/analyzerruncontrol.h>
 #include <projectexplorer/runconfiguration.h>
 
-namespace Analyzer {
-
-class AnalyzerRunControl;
-class AnalyzerStartParameters;
-
+namespace QmlProfiler {
 namespace Internal {
 
-class AnalyzerRunControlFactory: public ProjectExplorer::IRunControlFactory
+class QmlProfilerRunControlFactory : public ProjectExplorer::IRunControlFactory
 {
     Q_OBJECT
 
 public:
-    AnalyzerRunControlFactory(QObject *parent = 0);
-
     typedef ProjectExplorer::RunConfiguration RunConfiguration;
-    typedef ProjectExplorer::RunControl RunControl;
 
-    // virtuals from IRunControlFactory
-    bool canRun(RunConfiguration *runConfiguration, const QString &mode) const;
-    RunControl *create(RunConfiguration *runConfiguration, const QString &mode);
-    AnalyzerRunControl *create(const AnalyzerStartParameters &sp, RunConfiguration *rc = 0);
-    QString displayName() const;
+    QmlProfilerRunControlFactory(QObject *parent = 0);
 
+    // IRunControlFactory implementation
+    QString displayName() const;
+    bool canRun(RunConfiguration *runConfiguration, const QString &mode) const;
+    ProjectExplorer::RunControl *create(RunConfiguration *runConfiguration, const QString &mode);
     ProjectExplorer::IRunConfigurationAspect *createRunConfigurationAspect();
     ProjectExplorer::RunConfigWidget *createConfigurationWidget(RunConfiguration *runConfiguration);
 
@@ -66,6 +60,6 @@ signals:
 };
 
 } // namespace Internal
-} // namespace Analyzer
+} // namespace QmlProfiler
 
-#endif // ANALYZERRUNCONTROLFACTORY_H
+#endif // QMLPROFILERRUNCONTROLFACTORY_H
diff --git a/src/plugins/qmlprofiler/qmlprofilersummaryview.cpp b/src/plugins/qmlprofiler/qmlprofilersummaryview.cpp
deleted file mode 100644
index 307d920c57a20d9c4755905e38fa2507c49ab6e6..0000000000000000000000000000000000000000
--- a/src/plugins/qmlprofiler/qmlprofilersummaryview.cpp
+++ /dev/null
@@ -1,283 +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)
-**
-** No Commercial Usage
-**
-** This file contains pre-release code and may not be distributed.
-** You may use this file in accordance with the terms and conditions
-** contained in the Technology Preview License Agreement accompanying
-** this package.
-**
-** GNU Lesser General Public License Usage
-**
-** Alternatively, 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.
-**
-** If you have questions regarding the use of this file, please contact
-** Nokia at info@qt.nokia.com.
-**
-**************************************************************************/
-
-#include "qmlprofilersummaryview.h"
-
-#include <QtCore/QUrl>
-#include <QtCore/QHash>
-
-#include <QtGui/QHeaderView>
-#include <QtGui/QStandardItemModel>
-
-using namespace QmlProfiler::Internal;
-
-struct BindingData
-{
-    QString displayname;
-    QString filename;
-    int line;
-    qint64 duration;
-    qint64 calls;
-    qint64 minTime;
-    qint64 maxTime;
-    double tpc;
-    double percent;
-};
-
-class QmlProfilerSummaryView::QmlProfilerSummaryViewPrivate
-{
-public:
-    QmlProfilerSummaryViewPrivate(QmlProfilerSummaryView *qq) : q(qq) {}
-
-    QmlProfilerSummaryView *q;
-
-    QStandardItemModel *m_model;
-    QHash<QString, BindingData *> m_bindingHash;
-
-    enum RangeType {
-        Painting,
-        Compiling,
-        Creating,
-        Binding,
-        HandlingSignal,
-
-        MaximumRangeType
-    };
-};
-
-class ProfilerItem : public QStandardItem
-{
-public:
-    ProfilerItem(const QString &text) : QStandardItem(text) {}
-
-    virtual bool operator<(const QStandardItem &other) const
-    {
-        if (data().type() == QVariant::String) {
-            // first column
-            return data(Qt::UserRole+2).toString() == other.data(Qt::UserRole+2).toString() ?
-                        data(Qt::UserRole+3).toInt() < other.data(Qt::UserRole+3).toInt() :
-                        data(Qt::UserRole+2).toString() < other.data(Qt::UserRole+2).toString();
-        }
-
-        return data().toDouble() < other.data().toDouble();
-    }
-};
-
-QmlProfilerSummaryView::QmlProfilerSummaryView(QWidget *parent) :
-    QTreeView(parent), d(new QmlProfilerSummaryViewPrivate(this))
-{
-    setObjectName("QmlProfilerSummaryView");
-    setRootIsDecorated(false);
-    header()->setResizeMode(QHeaderView::Interactive);
-    header()->setMinimumSectionSize(100);
-    setSortingEnabled(false);
-    setFrameStyle(QFrame::NoFrame);
-
-    d->m_model = new QStandardItemModel(this);
-
-    setModel(d->m_model);
-
-    d->m_model->setColumnCount(7);
-    setHeaderLabels();
-
-    connect(this,SIGNAL(clicked(QModelIndex)), this,SLOT(jumpToItem(QModelIndex)));
-}
-
-QmlProfilerSummaryView::~QmlProfilerSummaryView()
-{
-    delete d->m_model;
-}
-
-void QmlProfilerSummaryView::clean()
-{
-    d->m_model->clear();
-    d->m_model->setColumnCount(7);
-
-    // clean the hash
-    QHashIterator<QString, BindingData *> it(d->m_bindingHash);
-    while (it.hasNext()) {
-        it.next();
-        delete it.value();
-    }
-    d->m_bindingHash.clear();
-
-    setHeaderLabels();
-    setSortingEnabled(false);
-}
-
-void QmlProfilerSummaryView::addRangedEvent(int type, int nestingLevel, int nestingInType, qint64 startTime, qint64 length,
-    const QStringList &data, const QString &fileName, int line)
-{
-    Q_UNUSED(startTime);
-    Q_UNUSED(data);
-    Q_UNUSED(nestingLevel);
-    Q_UNUSED(nestingInType);
-
-    if (type != QmlProfilerSummaryViewPrivate::Binding && type != QmlProfilerSummaryViewPrivate::HandlingSignal)
-        return;
-
-    if (fileName.isEmpty())
-        return;
-    const QChar colon = QLatin1Char(':');
-    QString localName = QUrl(fileName).toLocalFile();
-    QString displayName = localName.mid(localName.lastIndexOf(QChar('/'))+1)+colon+QString::number(line);
-    QString location = fileName+colon+QString::number(line);
-
-    QHash<QString, BindingData *>::iterator it = d->m_bindingHash.find(location);
-    if (it != d->m_bindingHash.end()) {
-        BindingData *bindingInfo = it.value();
-        bindingInfo->duration += length;
-        bindingInfo->calls++;
-        if (bindingInfo->maxTime < length)
-            bindingInfo->maxTime = length;
-        if (bindingInfo->minTime > length)
-            bindingInfo->minTime = length;
-    } else {
-        BindingData *newBinding = new BindingData;
-        newBinding->calls = 1;
-        newBinding->duration = length;
-        newBinding->displayname = displayName;
-        newBinding->filename = fileName;
-        newBinding->line = line;
-        newBinding->minTime = length;
-        newBinding->maxTime = length;
-
-        d->m_bindingHash.insert(location, newBinding);
-    }
-}
-
-void QmlProfilerSummaryView::complete()
-{
-    // compute percentages
-    double totalTime = 0;
-
-    QHashIterator<QString, BindingData *> it(d->m_bindingHash);
-
-    while (it.hasNext()) {
-        it.next();
-        totalTime += it.value()->duration;
-    }
-
-    it.toFront();
-
-    while (it.hasNext()) {
-        it.next();
-        BindingData *binding = it.value();
-        binding->percent = binding->duration * 100.0 / totalTime;
-        binding->tpc = binding->calls > 0 ? double(binding->duration) / binding->calls : 0;
-
-        appendRow(binding->displayname,
-                  binding->filename,
-                  binding->line,
-                  binding->percent,
-                  binding->duration,
-                  binding->calls,
-                  binding->tpc,
-                  binding->maxTime,
-                  binding->minTime);
-
-    }
-    setSortingEnabled(true);
-    sortByColumn(1,Qt::DescendingOrder);
-    resizeColumnToContents(0);
-}
-
-void QmlProfilerSummaryView::jumpToItem(const QModelIndex &index)
-{
-    int line = d->m_model->item(index.row(),0)->data(Qt::UserRole+3).toInt();
-    if (line == -1)
-        return;
-    QString fileName = d->m_model->item(index.row(),0)->data(Qt::UserRole+2).toString();
-    emit gotoSourceLocation(fileName, line);
-}
-
-void QmlProfilerSummaryView::appendRow(const QString &displayName,
-                const QString &fileName,
-                int line,
-                double percentTime,
-                double totalTime,
-                int nCalls,
-                double timePerCall,
-                double maxTime,
-                double minTime)
-{
-    QString location = fileName + QLatin1Char(':') + QString::number(line);
-    ProfilerItem *locationColumn = new ProfilerItem(displayName);
-    locationColumn->setData(QVariant(location),Qt::UserRole+1);
-    locationColumn->setData(QVariant(fileName),Qt::UserRole+2);
-    locationColumn->setData(QVariant(line),Qt::UserRole+3);
-    locationColumn->setEditable(false);
-    ProfilerItem *percentColumn = new ProfilerItem(QString::number(percentTime,'f',2)+QLatin1String(" %"));
-    percentColumn->setData(QVariant(percentTime));
-    percentColumn->setEditable(false);
-    ProfilerItem *timeColumn = new ProfilerItem(displayTime(totalTime));
-    timeColumn->setData(QVariant(totalTime));
-    timeColumn->setEditable(false);
-    ProfilerItem *callsColumn = new ProfilerItem(QString::number(nCalls));
-    callsColumn->setData(QVariant(nCalls));
-    callsColumn->setEditable(false);
-    ProfilerItem *tpcColumn = new ProfilerItem(displayTime(timePerCall));
-    tpcColumn->setData(QVariant(timePerCall));
-    tpcColumn->setEditable(false);
-    ProfilerItem *maxTimeColumn = new ProfilerItem(displayTime(maxTime));
-    maxTimeColumn->setData(QVariant(maxTime));
-    maxTimeColumn->setEditable(false);
-    ProfilerItem *minTimeColumn = new ProfilerItem(displayTime(minTime));
-    minTimeColumn->setData(QVariant(minTime));
-    minTimeColumn->setEditable(false);
-
-    QList<QStandardItem *> newRow;
-    newRow << locationColumn << percentColumn << timeColumn << callsColumn << tpcColumn << maxTimeColumn << minTimeColumn;
-    d->m_model->appendRow(newRow);
-}
-
-QString QmlProfilerSummaryView::displayTime(double time) const
-{
-    if (time < 1e6)
-        return QString::number(time/1e3,'f',3) + QString::fromWCharArray(L" \u03BCs");
-    if (time < 1e9)
-        return QString::number(time/1e6,'f',3) + QLatin1String(" ms");
-
-    return QString::number(time/1e9,'f',3) + QLatin1String(" s");
-}
-
-void QmlProfilerSummaryView::setHeaderLabels()
-{
-    d->m_model->setHeaderData(0, Qt::Horizontal, QVariant(tr("Location")));
-    d->m_model->setHeaderData(1, Qt::Horizontal, QVariant(tr("Time in Percent")));
-    d->m_model->setHeaderData(2, Qt::Horizontal, QVariant(tr("Total Time")));
-    d->m_model->setHeaderData(3, Qt::Horizontal, QVariant(tr("Calls")));
-    d->m_model->setHeaderData(4, Qt::Horizontal, QVariant(tr("Time per Call")));
-    d->m_model->setHeaderData(5, Qt::Horizontal, QVariant(tr("Longest Time")));
-    d->m_model->setHeaderData(6, Qt::Horizontal, QVariant(tr("Shortest Time")));
-}
diff --git a/src/plugins/qmlprofiler/qmlprofilersummaryview.h b/src/plugins/qmlprofiler/qmlprofilersummaryview.h
deleted file mode 100644
index 8de750d8063541b26d839a0af29af2fe1306f6f4..0000000000000000000000000000000000000000
--- a/src/plugins/qmlprofiler/qmlprofilersummaryview.h
+++ /dev/null
@@ -1,80 +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)
-**
-** No Commercial Usage
-**
-** This file contains pre-release code and may not be distributed.
-** You may use this file in accordance with the terms and conditions
-** contained in the Technology Preview License Agreement accompanying
-** this package.
-**
-** GNU Lesser General Public License Usage
-**
-** Alternatively, 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.
-**
-** If you have questions regarding the use of this file, please contact
-** Nokia at info@qt.nokia.com.
-**
-**************************************************************************/
-
-#ifndef QMLPROFILERSUMMARYVIEW_H
-#define QMLPROFILERSUMMARYVIEW_H
-
-#include <QTreeView>
-
-namespace QmlProfiler {
-namespace Internal {
-
-class QmlProfilerSummaryView : public QTreeView
-{
-    Q_OBJECT
-
-public:
-    explicit QmlProfilerSummaryView(QWidget *parent = 0);
-    ~QmlProfilerSummaryView();
-
-signals:
-    void gotoSourceLocation(const QString &fileName, int lineNumber);
-
-public slots:
-    void clean();
-    void addRangedEvent(int type, int nestingLevel, int nestingInType, qint64 startTime, qint64 length,
-                        const QStringList &data, const QString &fileName, int line);
-    void complete();
-    void jumpToItem(const QModelIndex &index);
-
-private:
-    class QmlProfilerSummaryViewPrivate;
-    QmlProfilerSummaryViewPrivate *d;
-
-    void appendRow(const QString &displayname,
-                   const QString &filename,
-                   int line,
-                   double percentTime,
-                   double totalTime,
-                   int ncalls,
-                   double timepercall,
-                   double maxtime,
-                   double mintime);
-    void setHeaderLabels();
-    QString displayTime(double time) const;
-};
-
-} // namespace Internal
-} // namespace QmlProfiler
-
-#endif // QMLPROFILERSUMMARYVIEW_H
diff --git a/src/plugins/qmlprofiler/qmlprofilertool.cpp b/src/plugins/qmlprofiler/qmlprofilertool.cpp
index bb810d04e86bd262bcc0dad26a297bfc1cfb5a26..fd004b7ae0b89769b412aee283e3ad57a9accd9a 100644
--- a/src/plugins/qmlprofiler/qmlprofilertool.cpp
+++ b/src/plugins/qmlprofiler/qmlprofilertool.cpp
@@ -6,26 +6,25 @@
 **
 ** Contact: Nokia Corporation (info@qt.nokia.com)
 **
-** No Commercial Usage
-**
-** This file contains pre-release code and may not be distributed.
-** You may use this file in accordance with the terms and conditions
-** contained in the Technology Preview License Agreement accompanying
-** this package.
 **
 ** GNU Lesser General Public License Usage
 **
-** Alternatively, 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.
+** 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
+** 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.
 **
@@ -36,9 +35,7 @@
 #include "qmlprofilerplugin.h"
 #include "qmlprofilerconstants.h"
 #include "qmlprofilerattachdialog.h"
-#include "qmlprofilersummaryview.h"
-#include "qmlprofilercalleeview.h"
-#include "qmlprofilercallerview.h"
+#include "qmlprofilereventview.h"
 
 #include "tracewindow.h"
 #include "timelineview.h"
@@ -96,9 +93,10 @@ public:
     QTimer m_connectionTimer;
     int m_connectionAttempts;
     TraceWindow *m_traceWindow;
-    QmlProfilerSummaryView *m_summary;
-    QmlProfilerCalleeView *m_calleetree;
-    QmlProfilerCallerView *m_callertree;
+    QmlProfilerEventStatistics *m_statistics;
+    QmlProfilerEventsView *m_eventsView;
+    QmlProfilerEventsView *m_calleeView;
+    QmlProfilerEventsView *m_callerView;
     ProjectExplorer::Project *m_project;
     Utils::FileInProjectFinder m_projectFinder;
     ProjectExplorer::RunConfiguration *m_runConfiguration;
@@ -121,6 +119,7 @@ public:
 QmlProfilerTool::QmlProfilerTool(QObject *parent)
     : IAnalyzerTool(parent), d(new QmlProfilerToolPrivate(this))
 {
+    setObjectName("QmlProfilerTool");
     d->m_client = 0;
     d->m_connectionAttempts = 0;
     d->m_traceWindow = 0;
@@ -132,6 +131,13 @@ QmlProfilerTool::QmlProfilerTool(QObject *parent)
 
     d->m_connectionTimer.setInterval(200);
     connect(&d->m_connectionTimer, SIGNAL(timeout()), SLOT(tryToConnect()));
+
+    qmlRegisterType<Canvas>("Monitor", 1, 0, "Canvas");
+    qmlRegisterType<TiledCanvas>("Monitor", 1, 0, "TiledCanvas");
+    qmlRegisterType<Context2D>();
+    qmlRegisterType<CanvasImage>();
+    qmlRegisterType<CanvasGradient>();
+    qmlRegisterType<TimelineView>("Monitor", 1, 0,"TimelineView");
 }
 
 QmlProfilerTool::~QmlProfilerTool()
@@ -140,7 +146,7 @@ QmlProfilerTool::~QmlProfilerTool()
     delete d;
 }
 
-QString QmlProfilerTool::id() const
+QByteArray QmlProfilerTool::id() const
 {
     return "QmlProfiler";
 }
@@ -156,7 +162,7 @@ QString QmlProfilerTool::description() const
               "applications using QML.");
 }
 
-IAnalyzerTool::ToolMode QmlProfilerTool::mode() const
+IAnalyzerTool::ToolMode QmlProfilerTool::toolMode() const
 {
     return AnyMode;
 }
@@ -164,7 +170,7 @@ IAnalyzerTool::ToolMode QmlProfilerTool::mode() const
 IAnalyzerEngine *QmlProfilerTool::createEngine(const AnalyzerStartParameters &sp,
     ProjectExplorer::RunConfiguration *runConfiguration)
 {
-    QmlProfilerEngine *engine = new QmlProfilerEngine(sp, runConfiguration);
+    QmlProfilerEngine *engine = new QmlProfilerEngine(this, runConfiguration);
 
     // Check minimum Qt Version. We cannot really be sure what the Qt version
     // at runtime is, but guess that the active build configuraiton has been used.
@@ -194,6 +200,7 @@ IAnalyzerEngine *QmlProfilerTool::createEngine(const AnalyzerStartParameters &sp
         }
     }
 
+    // FIXME: Check that there's something sensible in sp.connParams
     if (d->m_connectMode == QmlProfilerToolPrivate::TcpConnection) {
         d->m_tcpHost = sp.connParams.host;
         d->m_tcpPort = sp.connParams.port;
@@ -218,24 +225,25 @@ IAnalyzerEngine *QmlProfilerTool::createEngine(const AnalyzerStartParameters &sp
     return engine;
 }
 
-void QmlProfilerTool::initialize()
+void QmlProfilerTool::toolSelected()
 {
-    qmlRegisterType<Canvas>("Monitor", 1, 0, "Canvas");
-    qmlRegisterType<TiledCanvas>("Monitor", 1, 0, "TiledCanvas");
-    qmlRegisterType<Context2D>();
-    qmlRegisterType<CanvasImage>();
-    qmlRegisterType<CanvasGradient>();
-    qmlRegisterType<TimelineView>("Monitor", 1, 0,"TimelineView");
+    updateAttachAction(true);
 }
 
-void QmlProfilerTool::extensionsInitialized()
+void QmlProfilerTool::toolDeselected()
 {
+    updateAttachAction(false);
 }
 
-void QmlProfilerTool::initializeDockWidgets()
+QWidget *QmlProfilerTool::createWidgets()
 {
-    Analyzer::AnalyzerManager *analyzerMgr = Analyzer::AnalyzerManager::instance();
-    Utils::FancyMainWindow *mw = analyzerMgr->mainWindow();
+    QTC_ASSERT(!d->m_traceWindow, return 0);
+
+    //
+    // DockWidgets
+    //
+
+    Utils::FancyMainWindow *mw = AnalyzerManager::mainWindow();
 
     d->m_traceWindow = new TraceWindow(mw);
     d->m_traceWindow->reset(d->m_client);
@@ -243,29 +251,25 @@ void QmlProfilerTool::initializeDockWidgets()
     connect(d->m_traceWindow, SIGNAL(gotoSourceLocation(QString,int)),this, SLOT(gotoSourceLocation(QString,int)));
     connect(d->m_traceWindow, SIGNAL(timeChanged(qreal)), this, SLOT(updateTimer(qreal)));
 
-    d->m_summary = new QmlProfilerSummaryView(mw);
+    d->m_statistics = new QmlProfilerEventStatistics(mw);
+    d->m_eventsView = new QmlProfilerEventsView(mw, d->m_statistics);
+    d->m_eventsView->setViewType(QmlProfilerEventsView::EventsView);
 
     connect(d->m_traceWindow, SIGNAL(range(int,int,int,qint64,qint64,QStringList,QString,int)),
-            d->m_summary, SLOT(addRangedEvent(int,int,int,qint64,qint64,QStringList,QString,int)));
+            d->m_statistics, SLOT(addRangedEvent(int,int,int,qint64,qint64,QStringList,QString,int)));
     connect(d->m_traceWindow, SIGNAL(viewUpdated()),
-            d->m_summary, SLOT(complete()));
-    connect(d->m_summary, SIGNAL(gotoSourceLocation(QString,int)),
+            d->m_statistics, SLOT(complete()));
+    connect(d->m_eventsView, SIGNAL(gotoSourceLocation(QString,int)),
             this, SLOT(gotoSourceLocation(QString,int)));
 
-    d->m_calleetree = new QmlProfilerCalleeView(mw);
-    connect(d->m_traceWindow, SIGNAL(range(int,int,int,qint64,qint64,QStringList,QString,int)),
-            d->m_calleetree, SLOT(addRangedEvent(int,int,int,qint64,qint64,QStringList,QString,int)));
-    connect(d->m_traceWindow, SIGNAL(viewUpdated()),
-            d->m_calleetree, SLOT(complete()));
-    connect(d->m_calleetree, SIGNAL(gotoSourceLocation(QString,int)),
+    d->m_calleeView = new QmlProfilerEventsView(mw, d->m_statistics);
+    d->m_calleeView->setViewType(QmlProfilerEventsView::CalleesView);
+    connect(d->m_calleeView, SIGNAL(gotoSourceLocation(QString,int)),
             this, SLOT(gotoSourceLocation(QString,int)));
 
-    d->m_callertree = new QmlProfilerCallerView(mw);
-    connect(d->m_traceWindow, SIGNAL(range(int,int,int,qint64,qint64,QStringList,QString,int)),
-            d->m_callertree, SLOT(addRangedEvent(int,int,int,qint64,qint64,QStringList,QString,int)));
-    connect(d->m_traceWindow, SIGNAL(viewUpdated()),
-            d->m_callertree, SLOT(complete()));
-    connect(d->m_callertree, SIGNAL(gotoSourceLocation(QString,int)),
+    d->m_callerView = new QmlProfilerEventsView(mw, d->m_statistics);
+    d->m_callerView->setViewType(QmlProfilerEventsView::CallersView);
+    connect(d->m_callerView, SIGNAL(gotoSourceLocation(QString,int)),
             this, SLOT(gotoSourceLocation(QString,int)));
 
     Core::ICore *core = Core::ICore::instance();
@@ -282,41 +286,23 @@ void QmlProfilerTool::initializeDockWidgets()
 
     updateAttachAction(false);
 
-    QDockWidget *summaryDock =
-        analyzerMgr->createDockWidget(this, tr("Bindings"),
-                             d->m_summary, Qt::BottomDockWidgetArea);
-
-    QDockWidget *timelineDock =
-        analyzerMgr->createDockWidget(this, tr("Timeline"),
-                            d->m_traceWindow, Qt::BottomDockWidgetArea);
-
-    QDockWidget *calleeDock =
-        analyzerMgr->createDockWidget(this, tr("Callees"),
-                             d->m_calleetree, Qt::BottomDockWidgetArea);
-
-    QDockWidget *callerDock =
-        analyzerMgr->createDockWidget(this, tr("Callers"),
-                             d->m_callertree, Qt::BottomDockWidgetArea);
-
-    mw->splitDockWidget(mw->toolBarDockWidget(), summaryDock, Qt::Vertical);
-    mw->tabifyDockWidget(summaryDock, timelineDock);
+    QDockWidget *eventsDock = AnalyzerManager::createDockWidget
+            (this, tr("Events"), d->m_eventsView, Qt::BottomDockWidgetArea);
+    QDockWidget *timelineDock = AnalyzerManager::createDockWidget
+            (this, tr("Timeline"), d->m_traceWindow, Qt::BottomDockWidgetArea);
+    QDockWidget *calleeDock = AnalyzerManager::createDockWidget
+            (this, tr("Callees"), d->m_calleeView, Qt::BottomDockWidgetArea);
+    QDockWidget *callerDock = AnalyzerManager::createDockWidget
+            (this, tr("Callers"), d->m_callerView, Qt::BottomDockWidgetArea);
+
+    mw->splitDockWidget(mw->toolBarDockWidget(), eventsDock, Qt::Vertical);
+    mw->tabifyDockWidget(eventsDock, timelineDock);
     mw->tabifyDockWidget(timelineDock, calleeDock);
     mw->tabifyDockWidget(calleeDock, callerDock);
-}
-
-void QmlProfilerTool::toolSelected()
-{
-    updateAttachAction(true);
-}
 
-void QmlProfilerTool::toolDeselected()
-{
-    updateAttachAction(false);
-}
-
-QWidget *QmlProfilerTool::createControlWidget()
-{
-    // custom toolbar (TODO)
+    //
+    // Toolbar
+    //
     QWidget *toolbarWidget = new QWidget;
     toolbarWidget->setObjectName(QLatin1String("QmlProfilerToolBarWidget"));
 
@@ -325,8 +311,7 @@ QWidget *QmlProfilerTool::createControlWidget()
     layout->setSpacing(0);
 
     d->m_recordButton = new QToolButton(toolbarWidget);
-
-    d->m_recordButton->setIcon(QIcon(QLatin1String(":/qmlprofiler/analyzer_category_small.png")));
+    // icon and tooltip set in setRecording(), called later
     d->m_recordButton->setCheckable(true);
 
     connect(d->m_recordButton,SIGNAL(toggled(bool)), this, SLOT(setRecording(bool)));
@@ -335,6 +320,7 @@ QWidget *QmlProfilerTool::createControlWidget()
 
     d->m_clearButton = new QToolButton(toolbarWidget);
     d->m_clearButton->setIcon(QIcon(QLatin1String(":/qmlprofiler/clean_pane_small.png")));
+    d->m_clearButton->setToolTip(tr("Discard data"));
     connect(d->m_clearButton,SIGNAL(clicked()), this, SLOT(clearDisplay()));
     layout->addWidget(d->m_clearButton);
 
@@ -409,6 +395,12 @@ void QmlProfilerTool::stopRecording()
 void QmlProfilerTool::setRecording(bool recording)
 {
     d->m_recordingEnabled = recording;
+
+    // update record button
+    d->m_recordButton->setToolTip( d->m_recordingEnabled ? tr("Disable profiling") : tr("Enable profiling"));
+    d->m_recordButton->setIcon(QIcon(d->m_recordingEnabled ? QLatin1String(":/qmlprofiler/recordOn.png") :
+                                                             QLatin1String(":/qmlprofiler/recordOff.png")));
+
     if (recording)
         startRecording();
     else
@@ -447,23 +439,13 @@ void QmlProfilerTool::updateProjectFileList()
                 d->m_project->files(ProjectExplorer::Project::ExcludeGeneratedFiles));
 }
 
-bool QmlProfilerTool::canRunRemotely() const
-{
-    // TODO: Is this correct?
-    return true;
-}
-
-bool QmlProfilerTool::canRunLocally() const
-{
-    return true;
-}
-
 void QmlProfilerTool::clearDisplay()
 {
     d->m_traceWindow->clearDisplay();
-    d->m_summary->clean();
-    d->m_calleetree->clean();
-    d->m_callertree->clean();
+    d->m_statistics->clear();
+    d->m_eventsView->clear();
+    d->m_calleeView->clear();
+    d->m_callerView->clear();
 }
 
 void QmlProfilerTool::attach()
@@ -479,7 +461,7 @@ void QmlProfilerTool::attach()
         d->m_tcpHost = dialog.address();
 
         connectClient(d->m_tcpPort);
-        AnalyzerManager::instance()->showMode();
+        AnalyzerManager::showMode();
     } else {
         stopRecording();
     }
@@ -566,3 +548,18 @@ void QmlProfilerTool::updateRecordingState()
     if (d->m_traceWindow->isRecording())
         clearDisplay();
 }
+
+void QmlProfilerTool::startTool(StartMode mode)
+{
+    Q_UNUSED(mode);
+
+    using namespace ProjectExplorer;
+
+    // Make sure mode is shown.
+    AnalyzerManager::showMode();
+
+    ProjectExplorerPlugin *pe = ProjectExplorerPlugin::instance();
+    // ### not sure if we're supposed to check if the RunConFiguration isEnabled
+    Project *pro = pe->startupProject();
+    pe->runProject(pro, id());
+}
diff --git a/src/plugins/qmlprofiler/qmlprofilertool.h b/src/plugins/qmlprofiler/qmlprofilertool.h
index 13e34375cda31c6d9cd64802cfd5334214db2e1f..c4520d5a65ff1e5a567632da77ab5d58abd94ab1 100644
--- a/src/plugins/qmlprofiler/qmlprofilertool.h
+++ b/src/plugins/qmlprofiler/qmlprofilertool.h
@@ -6,26 +6,25 @@
 **
 ** Contact: Nokia Corporation (info@qt.nokia.com)
 **
-** No Commercial Usage
-**
-** This file contains pre-release code and may not be distributed.
-** You may use this file in accordance with the terms and conditions
-** contained in the Technology Preview License Agreement accompanying
-** this package.
 **
 ** GNU Lesser General Public License Usage
 **
-** Alternatively, 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.
+** 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
+** 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.
 **
@@ -45,27 +44,23 @@ class QmlProfilerTool : public Analyzer::IAnalyzerTool
     Q_OBJECT
 
 public:
-    explicit QmlProfilerTool(QObject *parent = 0);
+    explicit QmlProfilerTool(QObject *parent);
     ~QmlProfilerTool();
 
-    QString id() const;
+    QByteArray id() const;
     QString displayName() const;
     QString description() const;
-    ToolMode mode() const;
+    ToolMode toolMode() const;
 
-    void initialize();
-    void extensionsInitialized();
-    void initializeDockWidgets();
+    void extensionsInitialized() {}
     void toolSelected();
     void toolDeselected();
 
     Analyzer::IAnalyzerEngine *createEngine(const Analyzer::AnalyzerStartParameters &sp,
         ProjectExplorer::RunConfiguration *runConfiguration = 0);
 
-    QWidget *createControlWidget();
-
-    bool canRunRemotely() const;
-    bool canRunLocally() const;
+    QWidget *createWidgets();
+    void startTool(Analyzer::StartMode mode);
 
 public slots:
     void connectClient(int port);
@@ -95,6 +90,7 @@ private:
     void updateAttachAction(bool isCurrentTool);
     void connectToClient();
     void updateRecordingState();
+    void ensureWidgets();
 
     class QmlProfilerToolPrivate;
     QmlProfilerToolPrivate *d;
diff --git a/src/plugins/qmlprofiler/qmlprofilertraceclient.cpp b/src/plugins/qmlprofiler/qmlprofilertraceclient.cpp
index cfc69dad55e577483569d56fd16865f645bbc169..9e663d7c21b6450245d015bd1445e541195a2a23 100644
--- a/src/plugins/qmlprofiler/qmlprofilertraceclient.cpp
+++ b/src/plugins/qmlprofiler/qmlprofilertraceclient.cpp
@@ -6,26 +6,25 @@
 **
 ** Contact: Nokia Corporation (info@qt.nokia.com)
 **
-** No Commercial Usage
-**
-** This file contains pre-release code and may not be distributed.
-** You may use this file in accordance with the terms and conditions
-** contained in the Technology Preview License Agreement accompanying
-** this package.
 **
 ** GNU Lesser General Public License Usage
 **
-** Alternatively, 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.
+** 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
+** 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.
 **
@@ -42,14 +41,14 @@ QmlProfilerTraceClient::QmlProfilerTraceClient(QDeclarativeDebugConnection *clie
     : QDeclarativeDebugClient(QLatin1String("CanvasFrameRate"), client),
       m_inProgressRanges(0), m_maximumTime(0), m_recording(false), m_nestingLevel(0)
 {
-    ::memset(m_rangeCount, 0, MaximumRangeType * sizeof(int));
-    ::memset(m_nestingInType, 0, MaximumRangeType * sizeof(int));
+    ::memset(m_rangeCount, 0, MaximumQmlEventType * sizeof(int));
+    ::memset(m_nestingInType, 0, MaximumQmlEventType * sizeof(int));
 }
 
 void QmlProfilerTraceClient::clearView()
 {
-    ::memset(m_rangeCount, 0, MaximumRangeType * sizeof(int));
-    ::memset(m_nestingInType, 0, MaximumRangeType * sizeof(int));
+    ::memset(m_rangeCount, 0, MaximumQmlEventType * sizeof(int));
+    ::memset(m_nestingInType, 0, MaximumQmlEventType * sizeof(int));
     m_nestingLevel = 0;
     emit clear();
 }
@@ -111,7 +110,7 @@ void QmlProfilerTraceClient::messageReceived(const QByteArray &data)
         int range;
         stream >> range;
 
-        if (range >= MaximumRangeType)
+        if (range >= MaximumQmlEventType)
             return;
 
         if (messageType == RangeStart) {
@@ -150,7 +149,7 @@ void QmlProfilerTraceClient::messageReceived(const QByteArray &data)
                 Location location = m_rangeLocations[range].count() ? m_rangeLocations[range].pop() : Location();
 
                 qint64 startTime = m_rangeStartTimes[range].pop();
-                emit this->range((RangeType)range, m_nestingLevel, m_nestingInType[range], startTime,
+                emit this->range((QmlEventType)range, m_nestingLevel, m_nestingInType[range], startTime,
                                  time - startTime, data, location.fileName, location.line);
                 --m_nestingLevel;
                 --m_nestingInType[range];
diff --git a/src/plugins/qmlprofiler/qmlprofilertraceclient.h b/src/plugins/qmlprofiler/qmlprofilertraceclient.h
index 207f63e9d6a26595bb229dec289cec7ef716c871..39a3a929693970336a3df9481d971e2a4ae7cb94 100644
--- a/src/plugins/qmlprofiler/qmlprofilertraceclient.h
+++ b/src/plugins/qmlprofiler/qmlprofilertraceclient.h
@@ -6,26 +6,25 @@
 **
 ** Contact: Nokia Corporation (info@qt.nokia.com)
 **
-** No Commercial Usage
-**
-** This file contains pre-release code and may not be distributed.
-** You may use this file in accordance with the terms and conditions
-** contained in the Technology Preview License Agreement accompanying
-** this package.
 **
 ** GNU Lesser General Public License Usage
 **
-** Alternatively, 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.
+** 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
+** 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.
 **
@@ -38,6 +37,8 @@
 #include <QtCore/QStack>
 #include <QtCore/QStringList>
 
+#include "qmlprofilereventtypes.h"
+
 namespace QmlProfiler {
 namespace Internal {
 
@@ -76,16 +77,6 @@ public:
         MaximumMessage
     };
 
-    enum RangeType {
-        Painting,
-        Compiling,
-        Creating,
-        Binding,
-        HandlingSignal,
-
-        MaximumRangeType
-    };
-
     bool isRecording() const { return m_recording; }
 
 public slots:
@@ -112,14 +103,14 @@ protected:
 
 private:
     qint64 m_inProgressRanges;
-    QStack<qint64> m_rangeStartTimes[MaximumRangeType];
-    QStack<QStringList> m_rangeDatas[MaximumRangeType];
-    QStack<Location> m_rangeLocations[MaximumRangeType];
-    int m_rangeCount[MaximumRangeType];
+    QStack<qint64> m_rangeStartTimes[MaximumQmlEventType];
+    QStack<QStringList> m_rangeDatas[MaximumQmlEventType];
+    QStack<Location> m_rangeLocations[MaximumQmlEventType];
+    int m_rangeCount[MaximumQmlEventType];
     qint64 m_maximumTime;
     bool m_recording;
     int m_nestingLevel;
-    int m_nestingInType[MaximumRangeType];
+    int m_nestingInType[MaximumQmlEventType];
 };
 
 } // namespace Internal
diff --git a/src/plugins/qmlprofiler/qmlprojectanalyzerruncontrolfactory.cpp b/src/plugins/qmlprofiler/qmlprojectanalyzerruncontrolfactory.cpp
deleted file mode 100644
index aad9d920f1735d3583e785e840e0f7f985ca91f2..0000000000000000000000000000000000000000
--- a/src/plugins/qmlprofiler/qmlprojectanalyzerruncontrolfactory.cpp
+++ /dev/null
@@ -1,118 +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)
-**
-** No Commercial Usage
-**
-** This file contains pre-release code and may not be distributed.
-** You may use this file in accordance with the terms and conditions
-** contained in the Technology Preview License Agreement accompanying
-** this package.
-**
-** GNU Lesser General Public License Usage
-**
-** Alternatively, 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.
-**
-** If you have questions regarding the use of this file, please contact
-** Nokia at info@qt.nokia.com.
-**
-**************************************************************************/
-
-#include "qmlprojectanalyzerruncontrolfactory.h"
-#include "qmlprojectmanager/qmlprojectrunconfiguration.h"
-#include <analyzerbase/analyzerstartparameters.h>
-#include <analyzerbase/analyzersettings.h>
-#include <analyzerbase/analyzerrunconfigwidget.h>
-
-#include <utils/qtcassert.h>
-
-using namespace Analyzer;
-using namespace ProjectExplorer;
-using namespace QmlProfiler::Internal;
-
-AnalyzerStartParameters localStartParameters(ProjectExplorer::RunConfiguration *runConfiguration)
-{
-    AnalyzerStartParameters sp;
-    QTC_ASSERT(runConfiguration, return sp);
-    QmlProjectManager::QmlProjectRunConfiguration *rc =
-            qobject_cast<QmlProjectManager::QmlProjectRunConfiguration *>(runConfiguration);
-    QTC_ASSERT(rc, return sp);
-
-    sp.startMode = StartLocal;
-    sp.environment = rc->environment();
-    sp.workingDirectory = rc->workingDirectory();
-    sp.debuggee = rc->observerPath();
-    sp.debuggeeArgs = rc->viewerArguments();
-    sp.displayName = rc->displayName();
-    sp.connParams.host = QLatin1String("localhost");
-    sp.connParams.port = rc->qmlDebugServerPort();
-    return sp;
-}
-
-QmlProjectAnalyzerRunControlFactory::QmlProjectAnalyzerRunControlFactory(QObject *parent)
-    : IRunControlFactory(parent)
-{
-}
-
-bool QmlProjectAnalyzerRunControlFactory::canRun(RunConfiguration *runConfiguration, const QString &mode) const
-{
-    if (!qobject_cast<QmlProjectManager::QmlProjectRunConfiguration *>(runConfiguration))
-        return false;
-    return mode == Constants::MODE_ANALYZE;
-}
-
-RunControl *QmlProjectAnalyzerRunControlFactory::create(RunConfiguration *runConfiguration, const QString &mode)
-{
-    if (!qobject_cast<QmlProjectManager::QmlProjectRunConfiguration  *>(runConfiguration)
-            || mode != Constants::MODE_ANALYZE) {
-        return 0;
-    }
-    const AnalyzerStartParameters sp = localStartParameters(runConfiguration);
-    return create(sp, runConfiguration);
-}
-
-AnalyzerRunControl *QmlProjectAnalyzerRunControlFactory::create(const Analyzer::AnalyzerStartParameters &sp, RunConfiguration *runConfiguration)
-{
-    AnalyzerRunControl *rc = new AnalyzerRunControl(sp, runConfiguration);
-    emit runControlCreated(rc);
-    return rc;
-}
-
-QString QmlProjectAnalyzerRunControlFactory::displayName() const
-{
-    return tr("QML Profiler");
-}
-
-IRunConfigurationAspect *QmlProjectAnalyzerRunControlFactory::createRunConfigurationAspect()
-{
-    return new AnalyzerProjectSettings;
-}
-
-RunConfigWidget *QmlProjectAnalyzerRunControlFactory::createConfigurationWidget(RunConfiguration *runConfiguration)
-{
-    QmlProjectManager::QmlProjectRunConfiguration *localRc =
-        qobject_cast<QmlProjectManager::QmlProjectRunConfiguration  *>(runConfiguration);
-    if (!localRc)
-        return 0;
-
-    AnalyzerProjectSettings *settings = runConfiguration->extraAspect<AnalyzerProjectSettings>();
-    if (!settings)
-        return 0;
-
-    Analyzer::AnalyzerRunConfigWidget *ret = new Analyzer::AnalyzerRunConfigWidget;
-    ret->setRunConfiguration(runConfiguration);
-    return ret;
-}
diff --git a/src/plugins/qmlprofiler/qmlprojectanalyzerruncontrolfactory.h b/src/plugins/qmlprofiler/qmlprojectanalyzerruncontrolfactory.h
deleted file mode 100644
index c4de8f60dea957e4be1aa9f3487b645180f0e666..0000000000000000000000000000000000000000
--- a/src/plugins/qmlprofiler/qmlprojectanalyzerruncontrolfactory.h
+++ /dev/null
@@ -1,69 +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)
-**
-** No Commercial Usage
-**
-** This file contains pre-release code and may not be distributed.
-** You may use this file in accordance with the terms and conditions
-** contained in the Technology Preview License Agreement accompanying
-** this package.
-**
-** GNU Lesser General Public License Usage
-**
-** Alternatively, 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.
-**
-** If you have questions regarding the use of this file, please contact
-** Nokia at info@qt.nokia.com.
-**
-**************************************************************************/
-
-#ifndef QMLPROJECTANALYZERRUNCONTROLFACTORY_H
-#define QMLPROJECTANALYZERRUNCONTROLFACTORY_H
-
-#include <analyzerbase/analyzerruncontrol.h>
-//#include <analyzerbase/analyzerruncontrolfactory.h>
-#include <projectexplorer/runconfiguration.h>
-
-namespace QmlProfiler {
-namespace Internal {
-
-class QmlProjectAnalyzerRunControlFactory : public ProjectExplorer::IRunControlFactory
-{
-    Q_OBJECT
-
-public:
-    typedef ProjectExplorer::RunConfiguration RunConfiguration;
-
-    QmlProjectAnalyzerRunControlFactory(QObject *parent = 0);
-
-    // IRunControlFactory implementation
-    bool canRun(RunConfiguration *runConfiguration, const QString &mode) const;
-    ProjectExplorer::RunControl *create(RunConfiguration *runConfiguration, const QString &mode);
-    Analyzer::AnalyzerRunControl *create(const Analyzer::AnalyzerStartParameters &sp, RunConfiguration *runConfiguration = 0);
-    QString displayName() const;
-
-    ProjectExplorer::IRunConfigurationAspect *createRunConfigurationAspect();
-    ProjectExplorer::RunConfigWidget *createConfigurationWidget(RunConfiguration *runConfiguration);
-
-signals:
-    void runControlCreated(Analyzer::AnalyzerRunControl *);
-};
-
-} // namespace Internal
-} // namespace QmlProfiler
-
-#endif // QMLPROJECTANALYZERRUNCONTROLFACTORY_H
diff --git a/src/plugins/qmlprofiler/remotelinuxqmlprofilerrunner.cpp b/src/plugins/qmlprofiler/remotelinuxqmlprofilerrunner.cpp
index aecb8940ab0351fc982aa1dde263fe7c2b41fd1d..efccff105c713287214d2fdacaa24c00211f69f7 100644
--- a/src/plugins/qmlprofiler/remotelinuxqmlprofilerrunner.cpp
+++ b/src/plugins/qmlprofiler/remotelinuxqmlprofilerrunner.cpp
@@ -4,30 +4,29 @@
 **
 ** Copyright (c) 2011 Nokia Corporation and/or its subsidiary(-ies).
 **
-** Contact: Nokia Corporation (qt-info@nokia.com)
+** Contact: Nokia Corporation (info@qt.nokia.com)
 **
-** No Commercial Usage
-**
-** This file contains pre-release code and may not be distributed.
-** You may use this file in accordance with the terms and conditions
-** contained in the Technology Preview License Agreement accompanying
-** this package.
 **
 ** GNU Lesser General Public License Usage
 **
-** Alternatively, 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.
+** 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
+** 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 qt-info@nokia.com.
+** Nokia at info@qt.nokia.com.
 **
 **************************************************************************/
 
diff --git a/src/plugins/qmlprofiler/remotelinuxqmlprofilerrunner.h b/src/plugins/qmlprofiler/remotelinuxqmlprofilerrunner.h
index a6b24f7e6e6aa375913bd4a54caa98387d3d9f87..cf7a444a6fe16e5b227b861caa5c9b7647ab18ea 100644
--- a/src/plugins/qmlprofiler/remotelinuxqmlprofilerrunner.h
+++ b/src/plugins/qmlprofiler/remotelinuxqmlprofilerrunner.h
@@ -6,26 +6,25 @@
 **
 ** Contact: Nokia Corporation (info@qt.nokia.com)
 **
-** No Commercial Usage
-**
-** This file contains pre-release code and may not be distributed.
-** You may use this file in accordance with the terms and conditions
-** contained in the Technology Preview License Agreement accompanying
-** this package.
 **
 ** GNU Lesser General Public License Usage
 **
-** Alternatively, 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.
+** 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
+** 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.
 **
diff --git a/src/plugins/qmlprofiler/timelineview.cpp b/src/plugins/qmlprofiler/timelineview.cpp
index 4af994fb22d4629396207d9880f25b40d532c38c..79afcf2cc2ce3cd6e98f4cfa45ea722031b293f9 100644
--- a/src/plugins/qmlprofiler/timelineview.cpp
+++ b/src/plugins/qmlprofiler/timelineview.cpp
@@ -6,26 +6,25 @@
 **
 ** Contact: Nokia Corporation (info@qt.nokia.com)
 **
-** No Commercial Usage
-**
-** This file contains pre-release code and may not be distributed.
-** You may use this file in accordance with the terms and conditions
-** contained in the Technology Preview License Agreement accompanying
-** this package.
 **
 ** GNU Lesser General Public License Usage
 **
-** Alternatively, 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.
+** 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
+** 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.
 **
diff --git a/src/plugins/qmlprofiler/timelineview.h b/src/plugins/qmlprofiler/timelineview.h
index 327ec5112cc42f9cc83acef5901a83e6f9d3e1ee..ca0bffc792556e274d36a177856d3b8a21dcb5cc 100644
--- a/src/plugins/qmlprofiler/timelineview.h
+++ b/src/plugins/qmlprofiler/timelineview.h
@@ -6,26 +6,25 @@
 **
 ** Contact: Nokia Corporation (info@qt.nokia.com)
 **
-** No Commercial Usage
-**
-** This file contains pre-release code and may not be distributed.
-** You may use this file in accordance with the terms and conditions
-** contained in the Technology Preview License Agreement accompanying
-** this package.
 **
 ** GNU Lesser General Public License Usage
 **
-** Alternatively, 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.
+** 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
+** 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.
 **
diff --git a/src/plugins/qmlprofiler/tracewindow.cpp b/src/plugins/qmlprofiler/tracewindow.cpp
index dda54f327b095c138659bac1cdf04c3b12f315e4..f5dee6e244a8d0f28b0de929388c07948cc9b0b2 100644
--- a/src/plugins/qmlprofiler/tracewindow.cpp
+++ b/src/plugins/qmlprofiler/tracewindow.cpp
@@ -6,26 +6,25 @@
 **
 ** Contact: Nokia Corporation (info@qt.nokia.com)
 **
-** No Commercial Usage
-**
-** This file contains pre-release code and may not be distributed.
-** You may use this file in accordance with the terms and conditions
-** contained in the Technology Preview License Agreement accompanying
-** this package.
 **
 ** GNU Lesser General Public License Usage
 **
-** Alternatively, 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.
+** 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
+** 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.
 **
@@ -72,21 +71,32 @@ TraceWindow::TraceWindow(QWidget *parent)
     toolBarLayout->setSpacing(0);
     QToolButton *buttonPrev= new QToolButton;
     buttonPrev->setIcon(QIcon(":/qmlprofiler/prev.png"));
+    buttonPrev->setToolTip(tr("Jump to previous event"));
     connect(buttonPrev, SIGNAL(clicked()), this, SIGNAL(jumpToPrev()));
+    connect(this, SIGNAL(enableToolbar(bool)), buttonPrev, SLOT(setEnabled(bool)));
     QToolButton *buttonNext= new QToolButton;
     buttonNext->setIcon(QIcon(":/qmlprofiler/next.png"));
+    buttonNext->setToolTip(tr("Jump to next event"));
     connect(buttonNext, SIGNAL(clicked()), this, SIGNAL(jumpToNext()));
+    connect(this, SIGNAL(enableToolbar(bool)), buttonNext, SLOT(setEnabled(bool)));
     QToolButton *buttonZoomIn = new QToolButton;
     buttonZoomIn->setIcon(QIcon(":/qmlprofiler/magnifier-plus.png"));
+    buttonZoomIn->setToolTip(tr("Zoom in 10%"));
     connect(buttonZoomIn, SIGNAL(clicked()), this, SIGNAL(zoomIn()));
+    connect(this, SIGNAL(enableToolbar(bool)), buttonZoomIn, SLOT(setEnabled(bool)));
     QToolButton *buttonZoomOut = new QToolButton;
     buttonZoomOut->setIcon(QIcon(":/qmlprofiler/magnifier-minus.png"));
+    buttonZoomOut->setToolTip(tr("Zoom out 10%"));
     connect(buttonZoomOut, SIGNAL(clicked()), this, SIGNAL(zoomOut()));
+    connect(this, SIGNAL(enableToolbar(bool)), buttonZoomOut, SLOT(setEnabled(bool)));
+
     toolBarLayout->addWidget(buttonPrev);
     toolBarLayout->addWidget(buttonNext);
     toolBarLayout->addWidget(buttonZoomIn);
     toolBarLayout->addWidget(buttonZoomOut);
 
+
+
     m_view->setResizeMode(QDeclarativeView::SizeRootObjectToView);
     m_view->setFocus();
     groupLayout->addWidget(m_view);
@@ -115,8 +125,11 @@ void TraceWindow::reset(QmlJsDebugClient::QDeclarativeDebugConnection *conn)
     m_view->rootContext()->setContextProperty("connection", m_plugin.data());
     m_view->setSource(QUrl("qrc:/qmlprofiler/MainView.qml"));
 
+    updateToolbar();
+
     connect(m_view->rootObject(), SIGNAL(updateCursorPosition()), this, SLOT(updateCursorPosition()));
     connect(m_view->rootObject(), SIGNAL(updateTimer()), this, SLOT(updateTimer()));
+    connect(m_view->rootObject(), SIGNAL(dataAvailableChanged()), this, SLOT(updateToolbar()));
     connect(this, SIGNAL(jumpToPrev()), m_view->rootObject(), SLOT(prevEvent()));
     connect(this, SIGNAL(jumpToNext()), m_view->rootObject(), SLOT(nextEvent()));
     connect(this, SIGNAL(zoomIn()), m_view->rootObject(), SLOT(zoomIn()));
@@ -144,6 +157,12 @@ void TraceWindow::clearDisplay()
         emit internalClearDisplay();
 }
 
+void TraceWindow::updateToolbar()
+{
+    bool dataAvailable = m_view->rootObject()->property("dataAvailable").toBool();
+    emit enableToolbar(dataAvailable);
+}
+
 void TraceWindow::setRecording(bool recording)
 {
     if (m_plugin)
diff --git a/src/plugins/qmlprofiler/tracewindow.h b/src/plugins/qmlprofiler/tracewindow.h
index f76fea15f7a8bd87dd732d8dec3b9e0a12e2f311..ffd414d9ca798975b6b5609ecabfb7dffbbbd277 100644
--- a/src/plugins/qmlprofiler/tracewindow.h
+++ b/src/plugins/qmlprofiler/tracewindow.h
@@ -6,26 +6,25 @@
 **
 ** Contact: Nokia Corporation (info@qt.nokia.com)
 **
-** No Commercial Usage
-**
-** This file contains pre-release code and may not be distributed.
-** You may use this file in accordance with the terms and conditions
-** contained in the Technology Preview License Agreement accompanying
-** this package.
 **
 ** GNU Lesser General Public License Usage
 **
-** Alternatively, 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.
+** 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
+** 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.
 **
@@ -64,6 +63,7 @@ public slots:
     void updateCursorPosition();
     void updateTimer();
     void clearDisplay();
+    void updateToolbar();
 
 signals:
     void viewUpdated();
@@ -76,6 +76,7 @@ signals:
     void jumpToNext();
     void zoomIn();
     void zoomOut();
+    void enableToolbar(bool);
 
 private:
     QWeakPointer<QmlProfilerTraceClient> m_plugin;
diff --git a/src/plugins/qt4projectmanager/applicationlauncher.h b/src/plugins/qt4projectmanager/applicationlauncher.h
index 0315b68c6f39ea1229f956a871763101c95c345f..a17f479fd85fc2ef46e6beef8819aa06cc3f05ea 100644
--- a/src/plugins/qt4projectmanager/applicationlauncher.h
+++ b/src/plugins/qt4projectmanager/applicationlauncher.h
@@ -26,7 +26,7 @@
 ** 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 qt-info@nokia.com.
+** Nokia at info@qt.nokia.com.
 **
 **************************************************************************/
 
diff --git a/src/plugins/qt4projectmanager/qmakeparser.cpp b/src/plugins/qt4projectmanager/qmakeparser.cpp
index 19d8e7332de4d0eac0b653f518ae67b80a446e6f..dfc25145470751434efd2e83ae44a951a58ff49a 100644
--- a/src/plugins/qt4projectmanager/qmakeparser.cpp
+++ b/src/plugins/qt4projectmanager/qmakeparser.cpp
@@ -37,8 +37,6 @@
 #include <projectexplorer/projectexplorerconstants.h>
 #include <utils/qtcassert.h>
 
-#include <QtCore/QDir>
-
 using namespace Qt4ProjectManager;
 using namespace Qt4ProjectManager::Internal;
 using ProjectExplorer::Task;
@@ -73,7 +71,7 @@ void QMakeParser::stdError(const QString &line)
         return;
     }
     if (m_error.indexIn(lne) > -1) {
-        QString fileName = QDir::fromNativeSeparators(m_error.cap(1));
+        QString fileName = m_error.cap(1);
         Task::TaskType type = Task::Error;
         if (fileName.startsWith("WARNING: ")) {
             type = Task::Warning;
@@ -143,7 +141,7 @@ void Qt4ProjectManagerPlugin::testQmakeOutputParsers_data()
             << (QList<ProjectExplorer::Task>()
                 << Task(Task::Error,
                         QLatin1String("Parse Error ('sth odd')"),
-                        QDir::fromNativeSeparators(QLatin1String("e:\\project.pro")),
+                        QLatin1String("e:\\project.pro"),
                         14,
                         ProjectExplorer::Constants::TASK_CATEGORY_BUILDSYSTEM))
             << QString();
@@ -166,7 +164,7 @@ void Qt4ProjectManagerPlugin::testQmakeOutputParsers_data()
             << (QList<ProjectExplorer::Task>()
                 << Task(Task::Warning,
                         QLatin1String("Unescaped backslashes are deprecated."),
-                        QLatin1String("e:/NokiaQtSDK/Simulator/Qt/msvc2008/lib/qtmaind.prl"), 1,
+                        QLatin1String("e:\\NokiaQtSDK\\Simulator\\Qt\\msvc2008\\lib\\qtmaind.prl"), 1,
                         ProjectExplorer::Constants::TASK_CATEGORY_BUILDSYSTEM))
             << QString();
 }
diff --git a/src/plugins/qt4projectmanager/qt-s60/abldparser.cpp b/src/plugins/qt4projectmanager/qt-s60/abldparser.cpp
index c54786eec276b517832c1f2fa9dca9a942af3d2f..504ac6520087dca97d9303a213ff4724e44bb6e1 100644
--- a/src/plugins/qt4projectmanager/qt-s60/abldparser.cpp
+++ b/src/plugins/qt4projectmanager/qt-s60/abldparser.cpp
@@ -35,8 +35,6 @@
 #include <projectexplorer/projectexplorerconstants.h>
 #include <projectexplorer/taskwindow.h>
 
-#include <QtCore/QDir>
-
 using namespace Qt4ProjectManager;
 using namespace ProjectExplorer;
 using namespace ProjectExplorer::Constants;
@@ -78,7 +76,7 @@ void AbldParser::stdOutput(const QString &line)
 
     if (m_perlIssue.indexIn(lne) > -1) {
         m_waitingForStdOutContinuation = true;
-        m_currentFile = QDir::fromNativeSeparators(m_perlIssue.cap(2));
+        m_currentFile = m_perlIssue.cap(2);
         m_currentLine = m_perlIssue.cap(3).toInt();
 
         Task task(Task::Unknown,
@@ -148,7 +146,7 @@ void AbldParser::stdError(const QString &line)
     }
 
     if (lne.startsWith(QLatin1String("MMPFILE \""))) {
-        m_currentFile = QDir::fromNativeSeparators(lne.mid(9, lne.size() - 10));
+        m_currentFile = lne.mid(9, lne.size() - 10);
         m_waitingForStdErrContinuation = false;
         return;
     }
diff --git a/src/plugins/qt4projectmanager/qt-s60/rvctparser.cpp b/src/plugins/qt4projectmanager/qt-s60/rvctparser.cpp
index 54b1e4ecfb6cd5664423bcc42bef06424885d6ac..c783b4abc2a2ee56cc7153446a147f466ecf34e8 100644
--- a/src/plugins/qt4projectmanager/qt-s60/rvctparser.cpp
+++ b/src/plugins/qt4projectmanager/qt-s60/rvctparser.cpp
@@ -34,8 +34,6 @@
 #include <projectexplorer/projectexplorerconstants.h>
 #include <projectexplorer/taskwindow.h>
 
-#include <QtCore/QDir>
-
 using namespace ProjectExplorer;
 using namespace ProjectExplorer::Constants;
 using namespace Qt4ProjectManager;
@@ -85,7 +83,7 @@ void RvctParser::stdError(const QString &line)
 
        m_task = new Task(Task::Unknown,
                          m_warningOrError.cap(5) /* description */,
-                         QDir::fromNativeSeparators(m_warningOrError.cap(1)) /* file */,
+                         m_warningOrError.cap(1) /* file */,
                          m_warningOrError.cap(2).toInt() /* line */,
                          TASK_CATEGORY_COMPILE);
        if (m_warningOrError.cap(4) == "Warning")
diff --git a/src/plugins/qt4projectmanager/qt-s60/s60createpackageparser.cpp b/src/plugins/qt4projectmanager/qt-s60/s60createpackageparser.cpp
index 47c52dedba831ca068404eb94ffafe3256bc611e..5dfea8114eb35be36bf9375930eeb9d714e636e1 100644
--- a/src/plugins/qt4projectmanager/qt-s60/s60createpackageparser.cpp
+++ b/src/plugins/qt4projectmanager/qt-s60/s60createpackageparser.cpp
@@ -35,8 +35,6 @@
 #include <projectexplorer/projectexplorerconstants.h>
 #include <projectexplorer/taskwindow.h>
 
-#include <QtCore/QDebug>
-
 using namespace Qt4ProjectManager::Internal;
 
 S60CreatePackageParser::S60CreatePackageParser(const QString &packageName) :
diff --git a/src/plugins/qt4projectmanager/qt-s60/s60deployconfigurationwidget.cpp b/src/plugins/qt4projectmanager/qt-s60/s60deployconfigurationwidget.cpp
index c1e748f5559cedf5bbe7151da69b5162d43a9d54..25e94091b03781dd58824ae83607f0e0c7a1058b 100644
--- a/src/plugins/qt4projectmanager/qt-s60/s60deployconfigurationwidget.cpp
+++ b/src/plugins/qt4projectmanager/qt-s60/s60deployconfigurationwidget.cpp
@@ -633,13 +633,13 @@ void S60DeployConfigurationWidget::getInstalledPackagesResult(const Coda::CodaCo
                 break;
                 case QTMOBILITY_UID: {
                     if (error)
-                        addErrorToTable(str, tr("QtMobility version: "), tr("Error reading QtMobility version"));
+                        addErrorToTable(str, tr("Qt Mobility version: "), tr("Error reading Qt Mobility version"));
                     else
-                        addToTable(str, tr("QtMobility version: "), versionString);
+                        addToTable(str, tr("Qt Mobility version: "), versionString);
                 }
                 break;
                 case QTCOMPONENTS_UID: {
-                    addToTable(str, tr("QtQuick components version: "), error ? tr("Not installed") : versionString);
+                    addToTable(str, tr("Qt Quick components version: "), error ? tr("Not installed") : versionString);
                 }
                 break;
                 default: break;
diff --git a/src/plugins/qt4projectmanager/qt-s60/s60devicedebugruncontrol.cpp b/src/plugins/qt4projectmanager/qt-s60/s60devicedebugruncontrol.cpp
index d43a455b5f19fe31a4398d750cee08d352005170..35eb8df7b431b866a833c88fa974db61ae1f0135 100644
--- a/src/plugins/qt4projectmanager/qt-s60/s60devicedebugruncontrol.cpp
+++ b/src/plugins/qt4projectmanager/qt-s60/s60devicedebugruncontrol.cpp
@@ -4,30 +4,29 @@
 **
 ** Copyright (c) 2011 Nokia Corporation and/or its subsidiary(-ies).
 **
-** Contact: Nokia Corporation (qt-info@nokia.com)
+** Contact: Nokia Corporation (info@qt.nokia.com)
 **
-** No Commercial Usage
-**
-** This file contains pre-release code and may not be distributed.
-** You may use this file in accordance with the terms and conditions
-** contained in the Technology Preview License Agreement accompanying
-** this package.
 **
 ** GNU Lesser General Public License Usage
 **
-** Alternatively, 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.
+** 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
+** 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 qt-info@nokia.com.
+** Nokia at info@qt.nokia.com.
 **
 **************************************************************************/
 
diff --git a/src/plugins/qt4projectmanager/qt-s60/s60devicedebugruncontrol.h b/src/plugins/qt4projectmanager/qt-s60/s60devicedebugruncontrol.h
index d316bf77937f55e52a6dcbce91ee590c51468e76..d608635f35d4608041a10abcdc9ce65365db76c5 100644
--- a/src/plugins/qt4projectmanager/qt-s60/s60devicedebugruncontrol.h
+++ b/src/plugins/qt4projectmanager/qt-s60/s60devicedebugruncontrol.h
@@ -4,30 +4,29 @@
 **
 ** Copyright (c) 2011 Nokia Corporation and/or its subsidiary(-ies).
 **
-** Contact: Nokia Corporation (qt-info@nokia.com)
+** Contact: Nokia Corporation (info@qt.nokia.com)
 **
-** No Commercial Usage
-**
-** This file contains pre-release code and may not be distributed.
-** You may use this file in accordance with the terms and conditions
-** contained in the Technology Preview License Agreement accompanying
-** this package.
 **
 ** GNU Lesser General Public License Usage
 **
-** Alternatively, 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.
+** 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
+** 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 qt-info@nokia.com.
+** Nokia at info@qt.nokia.com.
 **
 **************************************************************************/
 
diff --git a/src/plugins/qt4projectmanager/qt-s60/winscwparser.cpp b/src/plugins/qt4projectmanager/qt-s60/winscwparser.cpp
index 4fa0e50096cf20414d40e9d5d067341fe0ed95b3..b2f2c8d962481073451e9f1fa4ed26290b3203f0 100644
--- a/src/plugins/qt4projectmanager/qt-s60/winscwparser.cpp
+++ b/src/plugins/qt4projectmanager/qt-s60/winscwparser.cpp
@@ -34,8 +34,6 @@
 
 #include <projectexplorer/projectexplorerconstants.h>
 
-#include <QtCore/QDir>
-
 using namespace Qt4ProjectManager;
 using namespace ProjectExplorer;
 using namespace ProjectExplorer::Constants;
@@ -59,7 +57,7 @@ void WinscwParser::stdOutput(const QString &line)
     if (m_compilerProblem.indexIn(lne) > -1) {
         Task task(Task::Error,
                   m_compilerProblem.cap(3) /* description */,
-                  QDir::fromNativeSeparators(m_compilerProblem.cap(1)) /* filename */,
+                  m_compilerProblem.cap(1) /* filename */,
                   m_compilerProblem.cap(2).toInt() /* linenumber */,
                   TASK_CATEGORY_COMPILE);
         if (task.description.startsWith(QLatin1String("warning: "))) {
@@ -79,7 +77,7 @@ void WinscwParser::stdError(const QString &line)
     if (m_linkerProblem.indexIn(lne) > -1) {
         emit addTask(Task(Task::Error,
                           m_linkerProblem.cap(2) /* description */,
-                          QDir::fromNativeSeparators(m_linkerProblem.cap(1)) /* filename */,
+                          m_linkerProblem.cap(1) /* filename */,
                           -1 /* linenumber */,
                           TASK_CATEGORY_COMPILE));
         return;
diff --git a/src/plugins/qt4projectmanager/qt4nodes.cpp b/src/plugins/qt4projectmanager/qt4nodes.cpp
index b53bac567e5162d73ab18d22b5bdfacb41f779f1..ebf2d0bade3728d07cca04b36abc698899678813 100644
--- a/src/plugins/qt4projectmanager/qt4nodes.cpp
+++ b/src/plugins/qt4projectmanager/qt4nodes.cpp
@@ -619,8 +619,8 @@ void Qt4PriFileNode::update(ProFile *includeFileExact, QtSupport::ProFileReader
 
     for (int i = 0; i < fileTypes.size(); ++i) {
         FileType type = fileTypes.at(i).type;
-        QSet<QString> newFilePaths = foundFiles[type];
-        newFilePaths += filterFiles(type, m_recursiveEnumerateFiles);
+        QSet<QString> newFilePaths = filterFilesProVariables(type, foundFiles[type]);
+        newFilePaths += filterFilesRecursiveEnumerata(type, m_recursiveEnumerateFiles);
 
         // We only need to save this information if
         // we are watching folders
@@ -694,8 +694,8 @@ void Qt4PriFileNode::folderChanged(const QString &folder)
     const QVector<Qt4NodeStaticData::FileTypeData> &fileTypes = qt4NodeStaticData()->fileTypeData;
     for (int i = 0; i < fileTypes.size(); ++i) {
         FileType type = fileTypes.at(i).type;
-        QSet<QString> add = filterFiles(type, addedFiles);
-        QSet<QString> remove = filterFiles(type, removedFiles);
+        QSet<QString> add = filterFilesRecursiveEnumerata(type, addedFiles);
+        QSet<QString> remove = filterFilesRecursiveEnumerata(type, removedFiles);
 
         if (!add.isEmpty() || !remove.isEmpty()) {
             // Scream :)
@@ -1227,7 +1227,26 @@ QStringList Qt4PriFileNode::dynamicVarNames(QtSupport::ProFileReader *readerExac
     return result;
 }
 
-QSet<QString> Qt4PriFileNode::filterFiles(ProjectExplorer::FileType fileType, const QSet<QString> &files)
+QSet<QString> Qt4PriFileNode::filterFilesProVariables(ProjectExplorer::FileType fileType, const QSet<QString> &files)
+{
+    if (fileType != ProjectExplorer::QMLType && fileType != ProjectExplorer::UnknownFileType)
+        return files;
+    QSet<QString> result;
+    if (fileType != ProjectExplorer::QMLType && fileType != ProjectExplorer::UnknownFileType)
+        return result;
+    if (fileType == ProjectExplorer::QMLType) {
+        foreach (const QString &file, files)
+            if (file.endsWith(".qml"))
+                result << file;
+    } else {
+        foreach (const QString &file, files)
+            if (!file.endsWith(".qml"))
+                result << file;
+    }
+    return result;
+}
+
+QSet<QString> Qt4PriFileNode::filterFilesRecursiveEnumerata(ProjectExplorer::FileType fileType, const QSet<QString> &files)
 {
     QSet<QString> result;
     if (fileType != ProjectExplorer::QMLType && fileType != ProjectExplorer::UnknownFileType)
diff --git a/src/plugins/qt4projectmanager/qt4nodes.h b/src/plugins/qt4projectmanager/qt4nodes.h
index d674a75899db6d87b5d55bcbfd47fc8f2fd10d1a..3f2d1e7b8a0e87fa919a4a1cf6349f641dc51aaf 100644
--- a/src/plugins/qt4projectmanager/qt4nodes.h
+++ b/src/plugins/qt4projectmanager/qt4nodes.h
@@ -153,7 +153,8 @@ protected:
     void clear();
     static QStringList varNames(FileType type);
     static QStringList dynamicVarNames(QtSupport::ProFileReader *readerExact, QtSupport::ProFileReader *readerCumulative);
-    static QSet<QString> filterFiles(ProjectExplorer::FileType fileType, const QSet<QString> &files);
+    static QSet<QString> filterFilesProVariables(ProjectExplorer::FileType fileType, const QSet<QString> &files);
+    static QSet<QString> filterFilesRecursiveEnumerata(ProjectExplorer::FileType fileType, const QSet<QString> &files);
 
     enum ChangeType {
         AddToProFile,
diff --git a/src/plugins/qtestlib/qtestlibplugin.cpp b/src/plugins/qtestlib/qtestlibplugin.cpp
index 91d443e7f21ecc46fcabcabaaf3000b04a8b0c0e..972ec25f7fa5877d20cd7678d9538dfec8162882 100644
--- a/src/plugins/qtestlib/qtestlibplugin.cpp
+++ b/src/plugins/qtestlib/qtestlibplugin.cpp
@@ -26,7 +26,7 @@
 ** 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 qt-info@nokia.com.
+** Nokia at info@qt.nokia.com.
 **
 **************************************************************************/
 
diff --git a/src/plugins/qtestlib/qtestlibplugin.h b/src/plugins/qtestlib/qtestlibplugin.h
index 7e89b4c0dd81275e79c7ea2bd87ecdd28276e043..612b99e8aa229f9ce0fa08ffe3af76958662f16a 100644
--- a/src/plugins/qtestlib/qtestlibplugin.h
+++ b/src/plugins/qtestlib/qtestlibplugin.h
@@ -26,7 +26,7 @@
 ** 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 qt-info@nokia.com.
+** Nokia at info@qt.nokia.com.
 **
 **************************************************************************/
 
diff --git a/src/plugins/qtsupport/exampleslistmodel.cpp b/src/plugins/qtsupport/exampleslistmodel.cpp
index c1700dc4f4c168929615239bfd944e3e9dfdc0ab..03a84f504b3d30ee115029966ef5807f4955ff67 100644
--- a/src/plugins/qtsupport/exampleslistmodel.cpp
+++ b/src/plugins/qtsupport/exampleslistmodel.cpp
@@ -1,3 +1,35 @@
+/**************************************************************************
+**
+** 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 "exampleslistmodel.h"
 
 #include <QtCore/QFile>
@@ -7,6 +39,7 @@
 #include <QDebug>
 
 #include <coreplugin/icore.h>
+#include <coreplugin/helpmanager.h>
 #include <qtsupport/qtversionmanager.h>
 
 #include <algorithm>
@@ -35,7 +68,9 @@ ExamplesListModel::ExamplesListModel(QObject *parent) :
     setRoleNames(roleNames);
 
     connect(QtVersionManager::instance(), SIGNAL(updateExamples(QString,QString,QString)),
-            SLOT(readNewsItems(QString,QString,QString)));
+            SLOT(cacheExamplesPath(QString,QString,QString)));
+    connect(Core::HelpManager::instance(), SIGNAL(setupFinished()),
+            SLOT(helpInitialized()));
 }
 
 QList<ExampleItem> ExamplesListModel::parseExamples(QXmlStreamReader* reader, const QString& projectsOffset)
@@ -230,7 +265,7 @@ QStringList ExamplesListModel::exampleSources() const
 
     // Try Creator-provided XML file only
     if (sources.isEmpty()) {
-        qDebug() << Q_FUNC_INFO << "falling through to Creator-provided XML file";
+        // qDebug() << Q_FUNC_INFO << "falling through to Creator-provided XML file";
         sources << QString(resourceDir + QLatin1String("/examples_fallback.xml"));
     }
 
@@ -305,6 +340,20 @@ QVariant ExamplesListModel::data(const QModelIndex &index, int role) const
 
 }
 
+void ExamplesListModel::cacheExamplesPath(const QString &examplesPath, const QString &demosPath, const QString &sourcePath)
+{
+    m_cache = QMakePathCache(examplesPath, demosPath, sourcePath);
+}
+
+void ExamplesListModel::helpInitialized()
+{
+    disconnect(this, SLOT(cacheExamplesPath(QString, QString, QString)));
+    connect(QtVersionManager::instance(), SIGNAL(updateExamples(QString,QString,QString)),
+            SLOT(readNewsItems(QString,QString,QString)));
+    readNewsItems(m_cache.examplesPath, m_cache.demosPath, m_cache.examplesPath);
+}
+
+
 ExamplesListModelFilter::ExamplesListModelFilter(QObject *parent) :
     QSortFilterProxyModel(parent), m_showTutorialsOnly(true)
 {
diff --git a/src/plugins/qtsupport/exampleslistmodel.h b/src/plugins/qtsupport/exampleslistmodel.h
index 97811764b3a4197b37346db82669188f02863c68..fc36970f0b0e3253431739ea66c11d97e6de68ff 100644
--- a/src/plugins/qtsupport/exampleslistmodel.h
+++ b/src/plugins/qtsupport/exampleslistmodel.h
@@ -1,15 +1,43 @@
+/**************************************************************************
+**
+** 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 EXAMPLESLISTMODEL_H
 #define EXAMPLESLISTMODEL_H
 
 #include <QAbstractListModel>
 #include <QStringList>
+#include <QtCore/QXmlStreamReader>
 #include <QtGui/QSortFilterProxyModel>
 
-
-QT_BEGIN_NAMESPACE
-class QXmlStreamReader;
-QT_END_NAMESPACE
-
 namespace QtSupport {
 namespace Internal {
 
@@ -32,6 +60,15 @@ struct ExampleItem {
     bool hasSourceCode;
 };
 
+struct QMakePathCache {
+    QString examplesPath;
+    QString demosPath;
+    QString sourcePath;
+    QMakePathCache() {}
+    QMakePathCache(const QString &_examplesPath, const QString &_demosPath, const QString &_sourcePath)
+        : examplesPath(_examplesPath), demosPath(_demosPath), sourcePath(_sourcePath) {}
+};
+
 class ExamplesListModel : public QAbstractListModel {
     Q_OBJECT
 public:
@@ -43,12 +80,15 @@ public:
 
     QStringList tags() const { return m_tags; }
 
-public slots:
-    void readNewsItems(const QString &examplesPath, const QString &demosPath, const QString &sourcePath);
 
 signals:
     void tagsUpdated();
 
+public slots:
+    void readNewsItems(const QString &examplesPath, const QString &demosPath, const QString &sourcePath);
+    void cacheExamplesPath(const QString &examplesPath, const QString &demosPath, const QString &sourcePath);
+    void helpInitialized();
+
 private:
     QList<ExampleItem> parseExamples(QXmlStreamReader* reader, const QString& projectsOffset);
     QList<ExampleItem> parseDemos(QXmlStreamReader* reader, const QString& projectsOffset);
@@ -57,6 +97,8 @@ private:
     QStringList exampleSources() const;
     QList<ExampleItem> exampleItems;
     QStringList m_tags;
+    QMakePathCache m_cache;
+
 };
 
 class ExamplesListModelFilter : public QSortFilterProxyModel {
diff --git a/src/plugins/qtsupport/gettingstartedwelcomepage.h b/src/plugins/qtsupport/gettingstartedwelcomepage.h
index 1c421d024ae6994e4c6638d5b3fc2ce0ec776786..b67d62c5c978b32c4dfffc143dfc50cac8d58c41 100644
--- a/src/plugins/qtsupport/gettingstartedwelcomepage.h
+++ b/src/plugins/qtsupport/gettingstartedwelcomepage.h
@@ -56,7 +56,7 @@ class GettingStartedWelcomePage : public Utils::IWelcomePage
 public:
     GettingStartedWelcomePage();
 
-    QString pageLocation() const { return Core::ICore::instance()->resourcePath() + QLatin1String("/welcomescreen/gettingstarted.qml"); }
+    QUrl pageLocation() const { return QUrl::fromLocalFile(Core::ICore::instance()->resourcePath() + QLatin1String("/welcomescreen/gettingstarted.qml")); }
     QString title() const { return tr("Getting Started");}
     int priority() const { return 10; }
     void facilitateQml(QDeclarativeEngine *);
@@ -68,8 +68,6 @@ signals:
 public slots:
     void openSplitHelp(const QUrl &help);
     void openProject(const QString& projectFile, const QStringList& additionalFilesToOpen, const QUrl& help);
-
-public slots:
     void updateTagsModel();
 
 private:
diff --git a/src/plugins/qtsupport/gettingstartedwelcomepagewidget.cpp b/src/plugins/qtsupport/gettingstartedwelcomepagewidget.cpp
deleted file mode 100644
index 1458c4ec50c00e24a9a8463f60921539a015e1eb..0000000000000000000000000000000000000000
--- a/src/plugins/qtsupport/gettingstartedwelcomepagewidget.cpp
+++ /dev/null
@@ -1,591 +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 "gettingstartedwelcomepagewidget.h"
-#include "ui_gettingstartedwelcomepagewidget.h"
-
-#include <coreplugin/icore.h>
-#include <coreplugin/helpmanager.h>
-#include <coreplugin/coreconstants.h>
-#include <coreplugin/editormanager/editormanager.h>
-#include <coreplugin/rssfetcher.h>
-#include <coreplugin/dialogs/iwizard.h>
-#include <projectexplorer/projectexplorer.h>
-
-#include <utils/pathchooser.h>
-#include <utils/qtcassert.h>
-
-#include <extensionsystem/pluginmanager.h>
-
-#include <QtCore/QDateTime>
-#include <QtCore/QDir>
-#include <QtCore/QFileInfo>
-#include <QtCore/QDebug>
-#include <QtCore/QStringBuilder>
-#include <QtCore/QUrl>
-#include <QtCore/QTimer>
-#include <QtCore/QSettings>
-#include <QtCore/QXmlStreamReader>
-#include <QtCore/QScopedPointer>
-#include <QtGui/QDialogButtonBox>
-#include <QtGui/QFont>
-#include <QtGui/QMessageBox>
-#include <QtGui/QPushButton>
-#include <QtGui/QMenu>
-#include <QtGui/QDesktopServices>
-
-namespace Qt4ProjectManager {
-namespace Internal {
-
-const char ExamplePathPropertyName[] = "__qt_ExamplePath";
-const char HelpPathPropertyName[] = "__qt_HelpPath";
-const char QmlMainFileName[] = "__qt_QmlMainFileName";
-
-void PixmapDownloader::populatePixmap(QNetworkReply *reply) {
-    QImage image;
-    image.loadFromData(reply->readAll());
-    m_label->setScaledContents(false);
-    m_label->setPixmap(QPixmap::fromImage(image));
-    deleteLater();
-}
-
-GettingStartedWelcomePageWidget::GettingStartedWelcomePageWidget(QWidget *parent) :
-    QWidget(parent), ui(new Ui::GettingStartedWelcomePageWidget),
-    m_currentFeature(0), m_rssFetcher(0)
-{
-    ui->setupUi(this);
-
-    ui->didYouKnowTextBrowser->viewport()->setAutoFillBackground(false);
-    ui->detailsLabel->hide();
-
-    connect(ui->tutorialTreeWidget, SIGNAL(activated(QString)), SLOT(slotOpenHelpPage(const QString&)));
-
-    QFontMetrics fm = fontMetrics();
-    const int margins = 30;
-    int width = ui->tutorialTreeWidget->minimumWidth() - margins;
-
-    QString itemText = tr("The Qt Creator User Interface");
-    QString url = QLatin1String("qthelp://com.nokia.qtcreator/doc/creator-quick-tour.html");
-    ui->tutorialTreeWidget->addItem(fm.elidedText(itemText, Qt::ElideRight, width), url, itemText);
-
-    itemText = tr("Building and Running an Example");
-    url = QLatin1String("qthelp://com.nokia.qtcreator/doc/creator-build-example-application.html?view=split");
-    ui->tutorialTreeWidget->addItem(fm.elidedText(itemText, Qt::ElideRight, width), url, itemText);
-
-    itemText = tr("Creating a Qt C++ Application");
-    url = QLatin1String("qthelp://com.nokia.qtcreator/doc/creator-writing-program.html?view=split");
-    ui->tutorialTreeWidget->addItem(fm.elidedText(itemText, Qt::ElideRight, width), url, itemText);
-
-    itemText = tr("Creating a Mobile Application");
-    url = QLatin1String("qthelp://com.nokia.qtcreator/doc/creator-mobile-example.html?view=split");
-    ui->tutorialTreeWidget->addItem(fm.elidedText(itemText, Qt::ElideRight, width), url, itemText);
-
-    itemText = tr("Creating a Qt Quick Application");
-    url = QLatin1String("qthelp://com.nokia.qtcreator/doc/creator-qml-application.html?view=split");
-    ui->tutorialTreeWidget->addItem(fm.elidedText(itemText, Qt::ElideRight, width), url, itemText);
-
-    srand(QDateTime::currentDateTime().toTime_t());
-    QStringList tips = tipsOfTheDay();
-    m_currentTip = rand()%tips.count();
-
-    QTextDocument *doc = ui->didYouKnowTextBrowser->document();
-    doc->setDefaultStyleSheet("* {color:black;};");
-    ui->didYouKnowTextBrowser->setDocument(doc);
-    ui->didYouKnowTextBrowser->setText(tips.at(m_currentTip));
-
-    connect(ui->nextTipBtn, SIGNAL(clicked()), this, SLOT(slotNextTip()));
-    connect(ui->prevTipBtn, SIGNAL(clicked()), this, SLOT(slotPrevTip()));
-    connect(ui->openProjectButton, SIGNAL(clicked()),
-            ProjectExplorer::ProjectExplorerPlugin::instance(),
-            SLOT(openOpenProjectDialog()));
-    connect(ui->createNewProjectButton, SIGNAL(clicked()), this, SLOT(slotCreateNewProject()));
-
-    ui->createNewProjectButton->setIcon(
-            QIcon::fromTheme(QLatin1String("document-new"), ui->createNewProjectButton->icon()));
-    ui->openProjectButton->setIcon(
-            QIcon::fromTheme(QLatin1String("document-open"), ui->openProjectButton->icon()));
-
-    m_rssFetcher = new Core::RssFetcher;
-    connect (m_rssFetcher, SIGNAL(rssItemReady(Core::RssItem)), SLOT(addToFeatures(Core::RssItem)));
-    connect (m_rssFetcher, SIGNAL(finished(bool)), SLOT(showFeature()), Qt::QueuedConnection);
-    connect(this, SIGNAL(startRssFetching(QUrl)), m_rssFetcher, SLOT(fetch(QUrl)), Qt::QueuedConnection);
-    m_rssFetcher->start(QThread::LowestPriority);
-    const QString featureRssFile = Core::ICore::instance()->resourcePath()+QLatin1String("/rss/featured.rss");
-    emit startRssFetching(QUrl::fromLocalFile(featureRssFile));
-
-    ui->nextFeatureBtn->hide();
-    ui->prevFeatureBtn->hide();
-    connect(ui->nextFeatureBtn, SIGNAL(clicked()), this, SLOT(slotNextFeature()));
-    connect(ui->prevFeatureBtn, SIGNAL(clicked()), this, SLOT(slotPrevFeature()));
-}
-
-GettingStartedWelcomePageWidget::~GettingStartedWelcomePageWidget()
-{
-    m_rssFetcher->exit();
-    m_rssFetcher->wait();
-    delete m_rssFetcher;
-    delete ui;
-}
-
-void GettingStartedWelcomePageWidget::parseXmlFile(QFile *file, QMenuHash &cppSubMenuHash, QMenuHash &qmlSubMenuHash,
-                                                   const QString &examplePath, const QString &sourcePath)
-{
-    QMenu *cppSubMenu = 0;
-    QMenu *qmlSubMenu = 0;
-    bool inExamples = false;
-    QString dirName;
-
-    QXmlStreamReader reader(file);
-
-    while (!reader.atEnd()) {
-        switch (reader.readNext()) {
-        case QXmlStreamReader::StartElement:
-            if (reader.name() == QLatin1String("category")) {
-                QString name = reader.attributes().value(QLatin1String("name")).toString();
-                if (name.contains(QLatin1String("Tutorial")))
-                    break;
-                dirName = reader.attributes().value(QLatin1String("dirname")).toString();
-                if (!cppSubMenuHash.contains(dirName)) {
-                    cppSubMenu = new QMenu(name, this);
-                    cppSubMenu->setObjectName(dirName);
-                    cppSubMenuHash.insert(dirName, cppSubMenu);
-                } else {
-                    cppSubMenu = cppSubMenuHash.value(dirName);
-                }
-                if (!qmlSubMenuHash.contains(dirName)) {
-                    qmlSubMenu = new QMenu(name, this);
-                    qmlSubMenu->setObjectName(dirName);
-                    qmlSubMenuHash.insert(dirName, qmlSubMenu);
-                } else {
-                    qmlSubMenu = qmlSubMenuHash.value(dirName);
-                }
-                inExamples = true;
-            }
-            if (inExamples && reader.name() == QLatin1String("example")) {
-                const QChar slash = QLatin1Char('/');
-                const QString name = reader.attributes().value(QLatin1String("name")).toString();
-                const bool isQml = reader.attributes().value(QLatin1String("qml")).toString() == "true";
-                const QString localDir = reader.attributes().value(QLatin1String("filename")).toString();
-                const QString fileName = localDir.section('/', -1);
-                QString replacedFileName = fileName;
-                replacedFileName.replace(QLatin1Char('-'), QString());
-                QString relativeProPath = slash + dirName + slash + localDir + slash + replacedFileName;
-
-                QString finalFileName = examplePath + relativeProPath + QLatin1String(".pro");
-
-                if (!QFile::exists(finalFileName))
-                    finalFileName = sourcePath + QLatin1String("/examples") + relativeProPath  + QLatin1String(".pro");
-
-                if (isQml && !QFile::exists(finalFileName)) {
-                    // maybe it's an old-style QML project?
-                    relativeProPath = slash + dirName + slash + localDir + slash + fileName;
-                    finalFileName = examplePath + relativeProPath + QLatin1String(".qmlproject");
-
-                    if (!QFile::exists(finalFileName))
-                        finalFileName = sourcePath + QLatin1String("/examples") + relativeProPath  + QLatin1String(".qmlproject");;
-                }
-
-                if (!QFile::exists(finalFileName))
-                    break;
-
-                QString dirNameforHelp = dirName;
-                dirNameforHelp.replace(slash, QLatin1Char('-'));
-                QString helpPath = QLatin1String("qthelp://com.trolltech.qt/qdoc/") +
-                        dirNameforHelp +
-                        QLatin1Char('-') + fileName + QLatin1String(".html");
-
-                QAction *exampleAction = 0;
-                QAction *beforeAction = 0;
-                bool duplicate = false;
-                QMenu *subMenu;
-                subMenu = isQml ? qmlSubMenu : cppSubMenu;
-
-                foreach (beforeAction, subMenu->actions()) {
-                    int res = beforeAction->text().compare(name, Qt::CaseInsensitive);
-                    if (res==0) {
-                        duplicate = true;
-                        break;
-                    } else if (res<0)
-                        beforeAction = 0;
-                    else if (res>0) {
-                        break;
-                    }
-                }
-
-                if (!duplicate) {
-                    exampleAction = new QAction(name, subMenu);
-                    subMenu->insertAction(beforeAction, exampleAction);
-                    connect(exampleAction, SIGNAL(triggered()), SLOT(slotOpenExample()));
-                    exampleAction->setProperty(ExamplePathPropertyName, finalFileName);
-                    exampleAction->setProperty(HelpPathPropertyName, helpPath);
-                    if (isQml)
-                        exampleAction->setProperty(QmlMainFileName, fileName);
-                }
-            }
-            break;
-        case QXmlStreamReader::EndElement:
-            if (inExamples && reader.name() == QLatin1String("category")) {
-                if (cppSubMenu->actions().isEmpty())
-                    delete cppSubMenuHash.take(dirName);
-
-                if (qmlSubMenu->actions().isEmpty())
-                    delete qmlSubMenuHash.take(dirName);
-
-                inExamples = false;
-            }
-            break;
-        default:
-            break;
-        }
-    }
-}
-
-bool menuEntryCompare(QMenu* first, QMenu* second)
-{
-    return (QString::localeAwareCompare(first->title(), second->title()) < 0);
-}
-
-void GettingStartedWelcomePageWidget::updateExamples(const QString &examplePath,
-                                                     const QString &demosPath,
-                                                     const QString &sourcePath)
-{
-
-    QString demoXml = demosPath + "/qtdemo/xml/examples.xml";
-    if (!QFile::exists(demoXml)) {
-        demoXml = sourcePath + "/demos/qtdemo/xml/examples.xml";
-        if (!QFile::exists(demoXml))
-            return;
-    }
-
-    QMenuHash cppSubMenuHash;
-    QMenuHash qmlSubMenuHash;
-
-    const QString dropDownLabel = tr("Choose an Example...");
-    QMenu *cppMenu = new QMenu(ui->cppExamplesButton);
-    ui->cppExamplesButton->setMenu(cppMenu);
-    QMenu *qmlMenu = new QMenu(ui->qmlExamplesButton);
-
-
-    // let Creator's files take precedence
-    QString localQmlExamplesXml =
-            Core::ICore::instance()->resourcePath()+QLatin1String("/examplebrowser/qmlexamples.xml");
-
-    QFile localDescriptions(localQmlExamplesXml);
-    if (localDescriptions.open(QFile::ReadOnly)) {
-        parseXmlFile(&localDescriptions, cppSubMenuHash, qmlSubMenuHash, examplePath, sourcePath);
-    }
-
-    QFile descriptions(demoXml);
-    if (!descriptions.open(QFile::ReadOnly))
-        return;
-
-    ui->cppExamplesButton->setEnabled(true);
-    ui->cppExamplesButton->setText(dropDownLabel);
-
-    parseXmlFile(&descriptions, cppSubMenuHash, qmlSubMenuHash, examplePath, sourcePath);
-
-    QList<QMenu*> cppSubMenus = cppSubMenuHash.values();
-    qSort(cppSubMenus.begin(), cppSubMenus.end(), menuEntryCompare);
-    QList<QMenu*> qmlSubMenus = qmlSubMenuHash.values();
-    qSort(qmlSubMenus.begin(), qmlSubMenus.end(), menuEntryCompare);
-
-    foreach (QMenu *menu, cppSubMenus)
-        cppMenu->addMenu(menu);
-    foreach (QMenu *menu, qmlSubMenus)
-        qmlMenu->addMenu(menu);
-
-    if (!qmlMenu->isEmpty()) {
-        ui->qmlExamplesButton->setMenu(qmlMenu);
-        ui->qmlExamplesButton->setEnabled(true);
-        ui->qmlExamplesButton->setText(dropDownLabel);
-    }
-}
-
-namespace {
-void copyRecursive(const QDir& from, const QDir& to, const QString& dir)
-{
-    QDir dest(to);
-    dest.mkdir(dir);
-    dest.cd(dir);
-    QDir src(from);
-    src.cd(dir);
-    foreach(const QFileInfo& roFile, src.entryInfoList(QDir::Files)) {
-        QFile::copy(roFile.absoluteFilePath(), dest.absolutePath() + '/' + roFile.fileName());
-    }
-    foreach(const QString& roDir, src.entryList(QDir::NoDotAndDotDot|QDir::Dirs)) {
-        copyRecursive(src, dest, QDir(roDir).dirName());
-    }
-}
-} // namespace
-
-void GettingStartedWelcomePageWidget::slotOpenExample()
-{
-    QAction *action = qobject_cast<QAction*>(sender());
-    if (!action)
-        return;
-
-    QString helpFile = action->property(HelpPathPropertyName).toString();
-    QString proFile = action->property(ExamplePathPropertyName).toString();
-    QString qmlMainFileName;
-    bool isQmlProject = false;
-    if (action->dynamicPropertyNames().contains(QmlMainFileName)) {
-        qmlMainFileName = action->property(QmlMainFileName).toString();
-        isQmlProject = true;
-    }
-    QStringList files;
-
-    QFileInfo proFileInfo(proFile);
-    // If the Qt is a distro Qt on Linux, it will not be writable, hence compilation will fail
-    if (!proFileInfo.isWritable())
-    {
-        QDialog d;
-        QGridLayout *lay = new QGridLayout(&d);
-        QLabel *descrLbl = new QLabel;
-        d.setWindowTitle(tr("Copy Project to writable Location?"));
-        descrLbl->setTextFormat(Qt::RichText);
-        descrLbl->setWordWrap(true);
-        descrLbl->setText(tr("<p>The project you are about to open is located in the "
-                             "write-protected location:</p><blockquote>%1</blockquote>"
-                             "<p>Please select a writable location below and click \"Copy Project and Open\" "
-                             "to open a modifiable copy of the project or click \"Keep Project and Open\" "
-                             "to open the project in location.</p><p><b>Note:</b> You will not "
-                             "be able to alter or compile your project in the current location.</p>")
-                          .arg(QDir::toNativeSeparators(proFileInfo.dir().absolutePath())));
-        lay->addWidget(descrLbl, 0, 0, 1, 2);
-        QLabel *txt = new QLabel(tr("&Location:"));
-        Utils::PathChooser *chooser = new Utils::PathChooser;
-        txt->setBuddy(chooser);
-        chooser->setExpectedKind(Utils::PathChooser::ExistingDirectory);
-        QSettings *settings = Core::ICore::instance()->settings();
-        chooser->setPath(settings->value(
-                QString::fromLatin1("General/ProjectsFallbackRoot"), QDir::homePath()).toString());
-        lay->addWidget(txt, 1, 0);
-        lay->addWidget(chooser, 1, 1);
-        QDialogButtonBox *bb = new QDialogButtonBox;
-        connect(bb, SIGNAL(accepted()), &d, SLOT(accept()));
-        connect(bb, SIGNAL(rejected()), &d, SLOT(reject()));
-        QPushButton *copyBtn = bb->addButton(tr("&Copy Project and Open"), QDialogButtonBox::AcceptRole);
-        copyBtn->setDefault(true);
-        bb->addButton(tr("&Keep Project and Open"), QDialogButtonBox::RejectRole);
-        lay->addWidget(bb, 2, 0, 1, 2);
-        connect(chooser, SIGNAL(validChanged(bool)), copyBtn, SLOT(setEnabled(bool)));
-        if (d.exec() == QDialog::Accepted) {
-            QString exampleDirName = proFileInfo.dir().dirName();
-            QString toDir = chooser->path();
-            settings->setValue(QString::fromLatin1("General/ProjectsFallbackRoot"), toDir);
-            QDir toDirWithExamplesDir(toDir);
-            if (toDirWithExamplesDir.cd(exampleDirName)) {
-                toDirWithExamplesDir.cdUp(); // step out, just to not be in the way
-                QMessageBox::warning(topLevelWidget(), tr("Warning"),
-                                     tr("The specified location already exists. "
-                                        "Please specify a valid location."),
-                                     QMessageBox::Ok, QMessageBox::NoButton);
-                return;
-            } else {
-                QDir from = proFileInfo.dir();
-                from.cdUp();
-                copyRecursive(from, toDir, exampleDirName);
-                // set vars to new location
-                proFileInfo = QFileInfo(toDir + '/'+ exampleDirName + '/' + proFileInfo.fileName());
-                proFile = proFileInfo.absoluteFilePath();
-            }
-        }
-    }
-
-    QString tryFile;
-    if (isQmlProject) {
-        tryFile = proFileInfo.path() + '/' + "/main.qml";
-        if(!QFile::exists(tryFile))
-            tryFile = proFileInfo.path() + "/qml/" + qmlMainFileName + ".qml";
-        // legacy qmlproject case
-        if(!QFile::exists(tryFile))
-            tryFile = proFileInfo.path() + '/' + qmlMainFileName + ".qml";
-        if(QFile::exists(tryFile))
-            files << tryFile;
-    } else {
-        tryFile = proFileInfo.path() + "/main.cpp";
-        if(!QFile::exists(tryFile))
-            tryFile = proFileInfo.path() + '/' + proFileInfo.baseName() + ".cpp";
-        files << tryFile;
-    }
-    if (ProjectExplorer::ProjectExplorerPlugin::instance()->openProject(proFile)) {
-        Core::ICore::instance()->openFiles(files);
-        if (!helpFile.isEmpty()) {
-            // queue this to make sure it gets executed after the editor widget
-            // has been drawn, so we know whether to show a split help or not
-            QMetaObject::invokeMethod(this, "slotOpenContextHelpPage",
-                                      Qt::QueuedConnection, Q_ARG(QString, helpFile));
-        }
-    }
-}
-
-void GettingStartedWelcomePageWidget::slotOpenHelpPage(const QString& url)
-{
-    Core::HelpManager *helpManager = Core::HelpManager::instance();
-    Q_ASSERT(helpManager);
-    helpManager->handleHelpRequest(url);
-}
-void GettingStartedWelcomePageWidget::slotOpenContextHelpPage(const QString& url)
-{
-    Core::HelpManager *helpManager = Core::HelpManager::instance();
-    Q_ASSERT(helpManager);
-    helpManager->handleHelpRequest(url % QLatin1String("?view=split"));
-}
-
-void GettingStartedWelcomePageWidget::slotCreateNewProject()
-{
-    Core::ICore::instance()->showNewItemDialog(tr("New Project"),
-                                               Core::IWizard::wizardsOfKind(Core::IWizard::ProjectWizard));
-}
-
-void GettingStartedWelcomePageWidget::slotNextTip()
-{
-    QStringList tips = tipsOfTheDay();
-    m_currentTip = ((m_currentTip+1)%tips.count());
-    ui->didYouKnowTextBrowser->setText(tips.at(m_currentTip));
-}
-
-void GettingStartedWelcomePageWidget::slotPrevTip()
-{
-    QStringList tips = tipsOfTheDay();
-    m_currentTip = ((m_currentTip-1)+tips.count())%tips.count();
-    ui->didYouKnowTextBrowser->setText(tips.at(m_currentTip));
-}
-
-QStringList GettingStartedWelcomePageWidget::tipsOfTheDay()
-{
-    static QStringList tips;
-    if (tips.isEmpty()) {
-        QString altShortcut =
-#ifdef Q_WS_MAC
-            tr("Cmd", "Shortcut key");
-#else
-            tr("Alt", "Shortcut key");
-#endif
-
-        QString ctrlShortcut =
-#ifdef Q_WS_MAC
-            tr("Cmd", "Shortcut key");
-#else
-            tr("Ctrl", "Shortcut key");
-#endif
-
-        //:%1 gets replaced by Alt (Win/Unix) or Cmd (Mac)
-        tips.append(tr("You can show and hide the side bar using <tt>%1+0<tt>.").arg(altShortcut));
-        tips.append(tr("You can fine tune the <tt>Find</tt> function by selecting &quot;Whole Words&quot; "
-                       "or &quot;Case Sensitive&quot;. Simply click on the icons on the right end of the line edit."));
-        tips.append(tr("If you add external libraries to your project, Qt Creator will automatically offer syntax highlighting "
-                        "and code completion."));
-        tips.append(tr("The code completion is CamelCase-aware. For example, to complete <tt>namespaceUri</tt> "
-                       "you can just type <tt>nU</tt> and hit <tt>Ctrl+Space</tt>."));
-        tips.append(tr("You can force code completion at any time using <tt>Ctrl+Space</tt>."));
-        tips.append(tr("You can start Qt Creator with a session by calling <tt>qtcreator &lt;sessionname&gt;</tt>."));
-        tips.append(tr("You can return to edit mode from any other mode at any time by hitting <tt>Escape</tt>."));
-        //:%1 gets replaced by Alt (Win/Unix) or Cmd (Mac)
-        tips.append(tr("You can switch between the output pane by hitting <tt>%1+n</tt> where n is the number denoted "
-                       "on the buttons at the window bottom: <br /><br />"
-                       "1: Build Issues, 2: Search Results, 3: Application Output, "
-                       "4: Compile Output").arg(altShortcut));
-        tips.append(tr("You can quickly search methods, classes, help and more using the "
-                       "<a href=\"qthelp://com.nokia.qtcreator/doc/creator-editor-locator.html\">Locator bar</a> (<tt>%1+K</tt>).").arg(ctrlShortcut));
-        tips.append(tr("You can add custom build steps in the "
-                       "<a href=\"qthelp://com.nokia.qtcreator/doc/creator-build-settings.html\">build settings</a>."));
-        tips.append(tr("Within a session, you can add "
-                       "<a href=\"qthelp://com.nokia.qtcreator/doc/creator-build-dependencies.html\">dependencies</a> between projects."));
-        tips.append(tr("You can set the preferred editor encoding for every project in <tt>Projects -> Editor Settings -> Default Encoding</tt>."));
-        tips.append(tr("You can use Qt Creator with a number of <a href=\"qthelp://com.nokia.qtcreator/doc/creator-version-control.html\">"
-                       "revision control systems</a> such as Subversion, Perforce, CVS and Git."));
-        tips.append(tr("In the editor, <tt>F2</tt> follows symbol definition, <tt>Shift+F2</tt> toggles declaration and definition "
-                       "while <tt>F4</tt> toggles header file and source file."));
-    }
-    return tips;
-}
-
-void GettingStartedWelcomePageWidget::addToFeatures(const Core::RssItem &feature)
-{
-    m_featuredItems.append(feature);
-    if (m_featuredItems.count() > 1) {
-        ui->nextFeatureBtn->show();
-        ui->prevFeatureBtn->show();
-    }
-}
-
-void GettingStartedWelcomePageWidget::showFeature(int feature)
-{
-    if (m_featuredItems.isEmpty())
-        return;
-
-    if (feature == -1) {
-        srand(QDateTime::currentDateTime().toTime_t());
-        m_currentFeature = rand()%m_featuredItems.count();
-    }
-
-    const Core::RssItem &item = m_featuredItems.at(m_currentFeature);
-    ui->featuredTextLabel->setTextFormat(Qt::RichText);
-    QString text = QString::fromLatin1("<b style='color: rgb(85, 85, 85);'>%1</b><br><b>%2</b><br/><br/>%3").arg(item.category).arg(item.title).arg(item.description);
-    ui->featuredTextLabel->setText(text);
-    QString imagePath = item.imagePath;
-    if (!imagePath.startsWith("http")) {
-        imagePath = Core::ICore::instance()->resourcePath() + "/rss/" + item.imagePath;
-        ui->featuredImage->setPixmap(QPixmap(imagePath));
-    } else {
-        new PixmapDownloader(QUrl(imagePath), ui->featuredImage);
-    }
-
-    if (item.category == QLatin1String("Event")) {
-        ui->detailsLabel->setText(tr("<a href='%1'>Details...</a>").arg(item.url));
-        ui->detailsLabel->show();
-        ui->detailsLabel->setOpenExternalLinks(true);
-    }
-    else if (item.category == QLatin1String("Tutorial")) {
-        ui->detailsLabel->setText(tr("<a href='%1'>Take Tutorial</a>").arg(item.url+"?view=split"));
-        ui->detailsLabel->show();
-        ui->detailsLabel->setOpenExternalLinks(true);
-    }
-}
-
-void GettingStartedWelcomePageWidget::slotNextFeature()
-{
-    QTC_ASSERT(!m_featuredItems.isEmpty(), return);
-    m_currentFeature = (m_currentFeature+1) % m_featuredItems.count();
-    showFeature(m_currentFeature);
-}
-
-void GettingStartedWelcomePageWidget::slotPrevFeature()
-{
-    QTC_ASSERT(!m_featuredItems.isEmpty(), return);
-    m_currentFeature = ((m_currentFeature-1)+m_featuredItems.count()) % m_featuredItems.count();
-    showFeature(m_currentFeature);
-}
-
-} // namespace Internal
-} // namespace Qt4ProjectManager
diff --git a/src/plugins/qtsupport/gettingstartedwelcomepagewidget.h b/src/plugins/qtsupport/gettingstartedwelcomepagewidget.h
deleted file mode 100644
index 1fe4e8277ee0335a1f2df874f7da8b72a5ff014f..0000000000000000000000000000000000000000
--- a/src/plugins/qtsupport/gettingstartedwelcomepagewidget.h
+++ /dev/null
@@ -1,120 +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 GETTINGSTARTEDWELCOMEPAGEWIDGET_H
-#define GETTINGSTARTEDWELCOMEPAGEWIDGET_H
-
-#include <QtGui/QWidget>
-#include <QtNetwork/QNetworkAccessManager>
-#include <QtNetwork/QNetworkReply>
-
-QT_BEGIN_NAMESPACE
-class QUrl;
-class QLabel;
-class QFile;
-class QMenu;
-QT_END_NAMESPACE
-
-namespace Core {
-class RssFetcher;
-class RssItem;
-}
-
-namespace Qt4ProjectManager {
-namespace Internal {
-
-namespace Ui {
-    class GettingStartedWelcomePageWidget;
-}
-
-typedef QHash<QString, QMenu*> QMenuHash;
-
-class PixmapDownloader : public QNetworkAccessManager {
-    Q_OBJECT
-public:
-    PixmapDownloader(const QUrl& url, QLabel* label, QObject *parent = 0)
-        : QNetworkAccessManager(parent), m_url(url), m_label(label)
-    {
-        connect(this, SIGNAL(finished(QNetworkReply*)), SLOT(populatePixmap(QNetworkReply*)));
-        get(QNetworkRequest(url));
-    }
-public slots:
-    void populatePixmap(QNetworkReply* reply);
-
-private:
-    QUrl m_url;
-    QLabel *m_label;
-
-};
-
-class GettingStartedWelcomePageWidget : public QWidget
-{
-    Q_OBJECT
-public:
-    GettingStartedWelcomePageWidget(QWidget *parent = 0);
-    ~GettingStartedWelcomePageWidget();
-
-public slots:
-    void updateExamples(const QString &examplePath,
-                        const QString &demosPath,
-                        const QString &sourcePath);
-
-private slots:
-    void slotOpenHelpPage(const QString &url);
-    void slotOpenContextHelpPage(const QString &url);
-    void slotOpenExample();
-    void slotNextTip();
-    void slotPrevTip();
-    void slotNextFeature();
-    void slotPrevFeature();
-    void slotCreateNewProject();
-    void addToFeatures(const Core::RssItem&);
-    void showFeature(int feature = -1);
-
-signals:
-    void startRssFetching(const QUrl&);
-
-private:
-    void parseXmlFile(QFile *file, QMenuHash &cppSubMenuHash, QMenuHash &qmlSubMenuHash,
-                      const QString &examplePath, const QString &sourcePath);
-    QStringList tipsOfTheDay();
-    Ui::GettingStartedWelcomePageWidget *ui;
-    int m_currentTip;
-    int m_currentFeature;
-    QList<Core::RssItem> m_featuredItems;
-    Core::RssFetcher *m_rssFetcher;
-};
-
-} // namespace Internal
-} // namespace Qt4ProjectManager
-
-#endif // GETTINGSTARTEDWELCOMEPAGEWIDGET_H
diff --git a/src/plugins/qtsupport/qtoptionspage.cpp b/src/plugins/qtsupport/qtoptionspage.cpp
index 411d04675afad523646497d57e3d3d90886355c8..40febd941089605207b78c432dcbae31bc53ff1b 100644
--- a/src/plugins/qtsupport/qtoptionspage.cpp
+++ b/src/plugins/qtsupport/qtoptionspage.cpp
@@ -48,6 +48,7 @@
 #include <utils/qtcassert.h>
 #include <utils/buildablehelperlibrary.h>
 #include <utils/pathchooser.h>
+#include <projectexplorer/toolchainmanager.h>
 #include <qtconcurrent/runextensions.h>
 
 #include <QtCore/QDir>
@@ -129,6 +130,7 @@ QtOptionsPageWidget::QtOptionsPageWidget(QWidget *parent, QList<BaseQtVersion *>
     , m_versionUi(new Internal::Ui::QtVersionInfo())
     , m_debuggingHelperUi(new Internal::Ui::DebuggingHelper())
     , m_invalidVersionIcon(":/projectexplorer/images/compile_error.png")
+    , m_warningVersionIcon(":/projectexplorer/images/compile_warning.png")
     , m_configurationWidget(0)
 {
     // Initialize m_versions
@@ -169,7 +171,8 @@ QtOptionsPageWidget::QtOptionsPageWidget(QWidget *parent, QList<BaseQtVersion *>
         item->setText(0, version->displayName());
         item->setText(1, QDir::toNativeSeparators(version->qmakeCommand()));
         item->setData(0, VersionIdRole, version->uniqueId());
-        item->setIcon(0, version->isValid()? m_validVersionIcon : m_invalidVersionIcon);
+        const ValidityInfo info = validInformation(version);
+        item->setIcon(0, info.icon);
     }
     m_ui->qtdirList->expandAll();
 
@@ -207,6 +210,9 @@ QtOptionsPageWidget::QtOptionsPageWidget(QWidget *parent, QList<BaseQtVersion *>
 
     connect(QtVersionManager::instance(), SIGNAL(dumpUpdatedFor(QString)),
             this, SLOT(qtVersionsDumpUpdated(QString)));
+
+    connect(ProjectExplorer::ToolChainManager::instance(), SIGNAL(toolChainsChanged()),
+            this, SLOT(toolChainsUpdated()));
 }
 
 bool QtOptionsPageWidget::eventFilter(QObject *o, QEvent *e)
@@ -320,6 +326,19 @@ void QtOptionsPageWidget::cleanUpQtVersions()
     updateCleanUpButton();
 }
 
+void QtOptionsPageWidget::toolChainsUpdated()
+{
+    for (int i = 0; i < m_versions.count(); ++i) {
+        QTreeWidgetItem *item = treeItemForIndex(i);
+        if (item == m_ui->qtdirList->currentItem())
+            updateDescriptionLabel();
+        else {
+            const ValidityInfo info = validInformation(m_versions.at(i));
+            item->setIcon(0, info.icon);
+        }
+    }
+}
+
 void QtOptionsPageWidget::qtVersionsDumpUpdated(const QString &qmakeCommand)
 {
     foreach (BaseQtVersion *version, m_versions) {
@@ -334,6 +353,49 @@ void QtOptionsPageWidget::qtVersionsDumpUpdated(const QString &qmakeCommand)
     }
 }
 
+QtOptionsPageWidget::ValidityInfo QtOptionsPageWidget::validInformation(const BaseQtVersion *version)
+{
+    ValidityInfo info;
+    info.icon = m_validVersionIcon;
+
+    if (!version)
+        return info;
+
+    if (!version->isValid()) {
+        info.icon = m_invalidVersionIcon;
+        info.message = version->invalidReason();
+        return info;
+    }
+
+    // Do we have tool chain issues?
+    QStringList missingToolChains;
+    int abiCount = 0;
+    foreach (const ProjectExplorer::Abi &a, version->qtAbis()) {
+        // Ignore symbian emulator since we do not support it.
+        if (a.osFlavor() == ProjectExplorer::Abi::SymbianEmulatorFlavor)
+            continue;
+        if (ProjectExplorer::ToolChainManager::instance()->findToolChains(a).isEmpty())
+            missingToolChains.append(a.toString());
+        ++abiCount;
+    }
+
+    if (missingToolChains.isEmpty()) {
+        // No:
+        info.message = tr("Qt version %1 for %2").arg(version->qtVersionString(), version->description());
+    } else if (missingToolChains.count() == abiCount) {
+        // Yes, this Qt version can't be used at all!
+        info.message = tr("No tool chain can produce code for this Qt version. Please define one or more tool chains.");
+        info.icon = m_invalidVersionIcon;
+    } else {
+        // Yes, some ABIs are unsupported
+        info.message = tr("Not all possible target environments can be supported due to missing tool chains.");
+        info.toolTip = tr("The following ABIs are currently not supported:<ul><li>%1</li></ul>")
+                       .arg(missingToolChains.join(QLatin1String("</li><li>")));
+        info.icon = m_warningVersionIcon;
+    }
+    return info;
+}
+
 void QtOptionsPageWidget::buildDebuggingHelper(DebuggingHelperBuildTask::Tools tools)
 {
     const int index = currentIndex();
@@ -725,17 +787,11 @@ void QtOptionsPageWidget::qtVersionChanged()
 void QtOptionsPageWidget::updateDescriptionLabel()
 {
     QTreeWidgetItem *item = m_ui->qtdirList->currentItem();
-    const BaseQtVersion *version = currentVersion();
-    if (!version) {
-        m_versionUi->errorLabel->setText(QString());
-    } else if (version->isValid()) {
-        m_versionUi->errorLabel->setText( tr("Qt version %1 for %2").arg(version->qtVersionString(),
-                                                                         version->description()));
-        item->setIcon(0, m_validVersionIcon);
-    } else {
-        m_versionUi->errorLabel->setText(version->invalidReason());
-        item->setIcon(0, m_invalidVersionIcon);
-    }
+    const ValidityInfo info = validInformation(currentVersion());
+    m_versionUi->errorLabel->setText(info.message);
+    m_versionUi->errorLabel->setToolTip(info.toolTip);
+    if (item)
+        item->setIcon(0, info.icon);
 }
 
 int QtOptionsPageWidget::indexForTreeItem(const QTreeWidgetItem *item) const
diff --git a/src/plugins/qtsupport/qtoptionspage.h b/src/plugins/qtsupport/qtoptionspage.h
index df89b2c79c9a824b73dc13bc932412bec218a157..64bc3ba08c4abf254de5c992b4f7b43434efdbde 100644
--- a/src/plugins/qtsupport/qtoptionspage.h
+++ b/src/plugins/qtsupport/qtoptionspage.h
@@ -88,6 +88,7 @@ private:
     QList<BaseQtVersion *> m_versions;
     int m_defaultVersion;
     QIcon m_invalidVersionIcon;
+    QIcon m_warningVersionIcon;
     QIcon m_validVersionIcon;
     QtConfigWidget *m_configurationWidget;
 
@@ -108,8 +109,17 @@ private slots:
     void slotShowDebuggingBuildLog();
     void debuggingHelperBuildFinished(int qtVersionId, const QString &output, DebuggingHelperBuildTask::Tools tools);
     void cleanUpQtVersions();
+    void toolChainsUpdated();
 
     void qtVersionsDumpUpdated(const QString &qmakeCommand);
+
+private:
+    struct ValidityInfo {
+        QString message;
+        QString toolTip;
+        QIcon icon;
+    };
+    ValidityInfo validInformation(const BaseQtVersion *version);
 };
 
 class QtOptionsPage : public Core::IOptionsPage
diff --git a/src/plugins/qtsupport/qtversioninfo.ui b/src/plugins/qtsupport/qtversioninfo.ui
index 0e597e6782e07648b4c7e58d4e1f0b68cf81b81f..9df6f277aacbfa273eccb3c55b059f7d8d75f1f8 100644
--- a/src/plugins/qtsupport/qtversioninfo.ui
+++ b/src/plugins/qtsupport/qtversioninfo.ui
@@ -55,7 +55,7 @@
      </item>
     </layout>
    </item>
-   <item row="2" column="0">
+   <item row="2" column="0" colspan="2">
     <widget class="QLabel" name="errorLabel">
      <property name="text">
       <string/>
diff --git a/src/plugins/qtsupport/qtversionmanager.cpp b/src/plugins/qtsupport/qtversionmanager.cpp
index 8195f8dedaba3b523066636dc04d8c820b414ecc..a259363c174e9eb297787613957257c19814671b 100644
--- a/src/plugins/qtsupport/qtversionmanager.cpp
+++ b/src/plugins/qtsupport/qtversionmanager.cpp
@@ -131,7 +131,6 @@ void QtVersionManager::extensionsInitialized()
         // and add it to the qt versions
         findSystemQt();
     }
-    updateDocumentation();
 
     updateSettings();
     saveQtVersions();
@@ -429,8 +428,7 @@ bool QtVersionManager::legacyRestore()
 
     }
     s->endArray();
-    // TODO add removal of old settings
-    // s->remove(QtVersionsSectionName);
+    s->remove(QtVersionsSectionName);
     return true;
 }
 
diff --git a/src/plugins/regexp/regexpplugin.cpp b/src/plugins/regexp/regexpplugin.cpp
index f774121bd84bfbe51fd82505169b1897d147ffce..f027c92b0bcb9434770bc02978ef6da6cc6ec33f 100644
--- a/src/plugins/regexp/regexpplugin.cpp
+++ b/src/plugins/regexp/regexpplugin.cpp
@@ -26,7 +26,7 @@
 ** 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 qt-info@nokia.com.
+** Nokia at info@qt.nokia.com.
 **
 **************************************************************************/
 
diff --git a/src/plugins/regexp/regexpplugin.h b/src/plugins/regexp/regexpplugin.h
index f50845096069c389d80edacdd89cbe85325f8e0c..6343dc923a60a441dd06a33680ef307cc9edeece 100644
--- a/src/plugins/regexp/regexpplugin.h
+++ b/src/plugins/regexp/regexpplugin.h
@@ -26,7 +26,7 @@
 ** 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 qt-info@nokia.com.
+** Nokia at info@qt.nokia.com.
 **
 **************************************************************************/
 
diff --git a/src/plugins/regexp/regexpwindow.cpp b/src/plugins/regexp/regexpwindow.cpp
index 7497409e09c0da4b40a785fe7a1a489d5ad4f8a6..fe9ff1f1c93d97fab33e0bbfe671446161cf4a86 100644
--- a/src/plugins/regexp/regexpwindow.cpp
+++ b/src/plugins/regexp/regexpwindow.cpp
@@ -26,7 +26,7 @@
 ** 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 qt-info@nokia.com.
+** Nokia at info@qt.nokia.com.
 **
 **************************************************************************/
 
diff --git a/src/plugins/regexp/regexpwindow.h b/src/plugins/regexp/regexpwindow.h
index 75e2e7cf3df83433a3b14903b30fee688a5e0d58..9b09259443c16e4122e43f44aae183a1ac9c3c69 100644
--- a/src/plugins/regexp/regexpwindow.h
+++ b/src/plugins/regexp/regexpwindow.h
@@ -26,7 +26,7 @@
 ** 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 qt-info@nokia.com.
+** Nokia at info@qt.nokia.com.
 **
 **************************************************************************/
 
diff --git a/src/plugins/regexp/settings.cpp b/src/plugins/regexp/settings.cpp
index 18c08200684fe8a00b7c9d8d82db0f14cfafcb02..0a58010f0f5e8894c4f249e72fba0751a5e755a6 100644
--- a/src/plugins/regexp/settings.cpp
+++ b/src/plugins/regexp/settings.cpp
@@ -26,7 +26,7 @@
 ** 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 qt-info@nokia.com.
+** Nokia at info@qt.nokia.com.
 **
 **************************************************************************/
 
diff --git a/src/plugins/regexp/settings.h b/src/plugins/regexp/settings.h
index ba7b65fc4c779d5d7e111d5b60928d805cab35ba..56e3543159874ffd48b8a81082e69141f6147df1 100644
--- a/src/plugins/regexp/settings.h
+++ b/src/plugins/regexp/settings.h
@@ -26,7 +26,7 @@
 ** 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 qt-info@nokia.com.
+** Nokia at info@qt.nokia.com.
 **
 **************************************************************************/
 
diff --git a/src/plugins/remotelinux/abstractmaemodeploystep.cpp b/src/plugins/remotelinux/abstractmaemodeploystep.cpp
index e305bdc7195de43bca7c967b4247e3c80b507beb..32755502450d47d8e9de41004bb1f80197774b06 100644
--- a/src/plugins/remotelinux/abstractmaemodeploystep.cpp
+++ b/src/plugins/remotelinux/abstractmaemodeploystep.cpp
@@ -298,7 +298,8 @@ void AbstractMaemoDeployStep::connectToDevice()
         connect(m_connection.data(), SIGNAL(connected()), this,
             SLOT(handleConnected()));
         writeOutput(tr("Connecting to device..."));
-        m_connection->connectToHost();
+        if (m_connection->state() == SshConnection::Unconnected)
+            m_connection->connectToHost();
     }
 }
 
diff --git a/src/plugins/remotelinux/maemodeployconfigurationwidget.cpp b/src/plugins/remotelinux/maemodeployconfigurationwidget.cpp
index cf6b530bb1b4c0c9ea5c67728e5d185ce61052bc..796be2f87483c2ba7aae82b9ceac1c9bb7fb276f 100644
--- a/src/plugins/remotelinux/maemodeployconfigurationwidget.cpp
+++ b/src/plugins/remotelinux/maemodeployconfigurationwidget.cpp
@@ -78,6 +78,7 @@ void MaemoDeployConfigurationWidget::init(DeployConfiguration *dc)
         SLOT(handleSelectedDeviceConfigurationChanged(int)));
     connect(m_deployConfig, SIGNAL(deviceConfigurationListChanged()),
         SLOT(handleDeviceConfigurationListChanged()));
+    handleDeviceConfigurationListChanged();
 
     ui->projectsComboBox->setModel(m_deployConfig->deploymentInfo().data());
     connect(m_deployConfig->deploymentInfo().data(), SIGNAL(modelAboutToBeReset()),
diff --git a/src/plugins/remotelinux/maemodeploystepfactory.cpp b/src/plugins/remotelinux/maemodeploystepfactory.cpp
index a907660129d4258433cb369058cf3c80524f27c5..82b90fbe347c8904364ae75131472a6de75ce576 100644
--- a/src/plugins/remotelinux/maemodeploystepfactory.cpp
+++ b/src/plugins/remotelinux/maemodeploystepfactory.cpp
@@ -63,6 +63,9 @@ MaemoDeployStepFactory::MaemoDeployStepFactory(QObject *parent)
 QStringList MaemoDeployStepFactory::availableCreationIds(BuildStepList *parent) const
 {
     QStringList ids;
+    if (!qobject_cast<Qt4MaemoDeployConfiguration *>(parent->parent()))
+        return ids;
+
     AbstractQt4MaemoTarget * const maemoTarget
         = qobject_cast<AbstractQt4MaemoTarget *>(parent->target());
     if (maemoTarget)
diff --git a/src/plugins/remotelinux/maemodeviceconfigwizard.cpp b/src/plugins/remotelinux/maemodeviceconfigwizard.cpp
index 60a8605ea109d16711ae83e0ad4c6224d25805e9..969515a75c3f676f0ba8aecbc2fb153506f91410 100644
--- a/src/plugins/remotelinux/maemodeviceconfigwizard.cpp
+++ b/src/plugins/remotelinux/maemodeviceconfigwizard.cpp
@@ -82,6 +82,7 @@ struct WizardData
     QString publicKeyFilePath;
     QString userName;
     QString password;
+    int sshPort;
 };
 
 enum PageId {
@@ -119,6 +120,9 @@ public:
         m_ui->hwButton->setChecked(true);
         handleDeviceTypeChanged();
         m_ui->hostNameLineEdit->setText(defaultHost(deviceType()));
+        m_ui->sshPortSpinBox->setMinimum(1);
+        m_ui->sshPortSpinBox->setMaximum(65535);
+        m_ui->sshPortSpinBox->setValue(22);
         connect(m_ui->nameLineEdit, SIGNAL(textChanged(QString)), this,
             SIGNAL(completeChanged()));
         connect(m_ui->hostNameLineEdit, SIGNAL(textChanged(QString)), this,
@@ -150,12 +154,20 @@ public:
             ? LinuxDeviceConfiguration::Physical : LinuxDeviceConfiguration::Emulator;
     }
 
+    int sshPort() const
+    {
+        return deviceType() == LinuxDeviceConfiguration::Emulator
+            ? 6666 : m_ui->sshPortSpinBox->value();
+    }
+
 private slots:
     void handleDeviceTypeChanged()
     {
         const bool enable = deviceType() == LinuxDeviceConfiguration::Physical;
         m_ui->hostNameLabel->setEnabled(enable);
         m_ui->hostNameLineEdit->setEnabled(enable);
+        m_ui->sshPortLabel->setEnabled(enable);
+        m_ui->sshPortSpinBox->setEnabled(enable);
     }
 
 private:
@@ -495,9 +507,9 @@ private:
         SshConnectionParameters sshParams(SshConnectionParameters::NoProxy);
         sshParams.authenticationType = SshConnectionParameters::AuthenticationByPassword;
         sshParams.host = hostAddress();
-        sshParams.port = 22;
+        sshParams.port = m_wizardData.sshPort;
         sshParams.password = password();
-        sshParams.timeout = 30;
+        sshParams.timeout = 10;
         sshParams.userName = defaultUser(m_wizardData.osType);
         m_ui->statusLabel->setText(tr("Deploying... "));
         m_keyDeployer->deployPublicKey(sshParams, m_wizardData.publicKeyFilePath);
@@ -609,18 +621,17 @@ LinuxDeviceConfiguration::Ptr MaemoDeviceConfigWizard::deviceConfiguration()
     Utils::SshConnectionParameters sshParams(Utils::SshConnectionParameters::NoProxy);
     sshParams.userName = defaultUser(d->wizardData.osType);
     sshParams.host = d->wizardData.hostName;
+    sshParams.port = d->wizardData.sshPort;
     if (d->wizardData.deviceType == LinuxDeviceConfiguration::Emulator) {
         sshParams.authenticationType = Utils::SshConnectionParameters::AuthenticationByPassword;
         sshParams.password = d->wizardData.osType == LinuxDeviceConfiguration::MeeGoOsType
             ? QLatin1String("meego") : QString();
-        sshParams.port = 6666;
         sshParams.timeout = 30;
         freePortsSpec = QLatin1String("13219,14168");
         doTest = false;
     } else {
         sshParams.authenticationType = Utils::SshConnectionParameters::AuthenticationByKey;
         sshParams.privateKeyFile = d->wizardData.privateKeyFilePath;
-        sshParams.port = 22;
         sshParams.timeout = 10;
         freePortsSpec = QLatin1String("10000-10100");
         doTest = true;
@@ -643,7 +654,7 @@ int MaemoDeviceConfigWizard::nextId() const
         d->wizardData.osType = d->startPage.osType();
         d->wizardData.deviceType = d->startPage.deviceType();
         d->wizardData.hostName = d->startPage.hostName();
-
+        d->wizardData.sshPort = d->startPage.sshPort();
         if (d->wizardData.deviceType == LinuxDeviceConfiguration::Emulator)
             return FinalPageId;
         return PreviousKeySetupCheckPageId;
diff --git a/src/plugins/remotelinux/maemodeviceconfigwizardstartpage.ui b/src/plugins/remotelinux/maemodeviceconfigwizardstartpage.ui
index dc89ebe98fc54ae4f923760046ab2cb48e023dc8..062a89c4d173834dcce95d1937f6ab2e232f8ff6 100644
--- a/src/plugins/remotelinux/maemodeviceconfigwizardstartpage.ui
+++ b/src/plugins/remotelinux/maemodeviceconfigwizardstartpage.ui
@@ -6,17 +6,14 @@
    <rect>
     <x>0</x>
     <y>0</y>
-    <width>727</width>
-    <height>136</height>
+    <width>721</width>
+    <height>176</height>
    </rect>
   </property>
   <property name="windowTitle">
    <string>WizardPage</string>
   </property>
   <layout class="QFormLayout" name="formLayout">
-   <property name="fieldGrowthPolicy">
-    <enum>QFormLayout::AllNonFixedFieldsGrow</enum>
-   </property>
    <item row="0" column="0">
     <widget class="QLabel" name="nameLabel">
      <property name="text">
@@ -102,6 +99,33 @@
    <item row="3" column="1">
     <widget class="QLineEdit" name="hostNameLineEdit"/>
    </item>
+   <item row="4" column="0">
+    <widget class="QLabel" name="sshPortLabel">
+     <property name="text">
+      <string>The SSH port:</string>
+     </property>
+    </widget>
+   </item>
+   <item row="4" column="1">
+    <layout class="QHBoxLayout" name="horizontalLayout_3">
+     <item>
+      <widget class="QSpinBox" name="sshPortSpinBox"/>
+     </item>
+     <item>
+      <spacer name="horizontalSpacer_3">
+       <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>
   </layout>
  </widget>
  <resources/>
diff --git a/src/plugins/remotelinux/maemoglobal.cpp b/src/plugins/remotelinux/maemoglobal.cpp
index 6d22c179ee35fcbfaacd866d5e5b4f37e6bd405d..e022aafd0d2d1471dc97c2928ea46dee727c7ab0 100644
--- a/src/plugins/remotelinux/maemoglobal.cpp
+++ b/src/plugins/remotelinux/maemoglobal.cpp
@@ -286,93 +286,6 @@ QString MaemoGlobal::architecture(const QString &qmakePath)
     return arch;
 }
 
-bool MaemoGlobal::removeRecursively(const QString &filePath, QString &error)
-{
-    error.clear();
-    QFileInfo fileInfo(filePath);
-    if (!fileInfo.exists())
-        return true;
-    QFile::setPermissions(filePath, fileInfo.permissions() | QFile::WriteUser);
-    if (fileInfo.isDir()) {
-        QDir dir(filePath);
-        QStringList fileNames = dir.entryList(QDir::Files | QDir::Hidden
-            | QDir::System | QDir::Dirs | QDir::NoDotAndDotDot);
-        foreach (const QString &fileName, fileNames) {
-            if (!removeRecursively(filePath + QLatin1Char('/') + fileName, error))
-                return false;
-        }
-        dir.cdUp();
-        if (!dir.rmdir(fileInfo.fileName())) {
-            error = tr("Failed to remove directory '%1'.")
-                .arg(QDir::toNativeSeparators(filePath));
-            return false;
-        }
-    } else {
-        if (!QFile::remove(filePath)) {
-            error = tr("Failed to remove file '%1'.")
-                .arg(QDir::toNativeSeparators(filePath));
-            return false;
-        }
-    }
-    return true;
-}
-
-bool MaemoGlobal::copyRecursively(const QString &srcFilePath,
-    const QString &tgtFilePath, QString *error)
-{
-    QFileInfo srcFileInfo(srcFilePath);
-    if (srcFileInfo.isDir()) {
-        QDir targetDir(tgtFilePath);
-        targetDir.cdUp();
-        if (!targetDir.mkdir(QFileInfo(tgtFilePath).fileName())) {
-            if (error) {
-                *error = tr("Failed to create directory '%1'.")
-                    .arg(QDir::toNativeSeparators(tgtFilePath));
-                return false;
-            }
-        }
-        QDir sourceDir(srcFilePath);
-        QStringList fileNames = sourceDir.entryList(QDir::Files | QDir::Dirs | QDir::NoDotAndDotDot);
-        foreach (const QString &fileName, fileNames) {
-            const QString newSrcFilePath
-                = srcFilePath + QLatin1Char('/') + fileName;
-            const QString newTgtFilePath
-                = tgtFilePath + QLatin1Char('/') + fileName;
-            if (!copyRecursively(newSrcFilePath, newTgtFilePath))
-                return false;
-        }
-    } else {
-        if (!QFile::copy(srcFilePath, tgtFilePath)) {
-            if (error) {
-                *error = tr("Could not copy file '%1' to '%2'.")
-                    .arg(QDir::toNativeSeparators(srcFilePath),
-                         QDir::toNativeSeparators(tgtFilePath));
-            }
-            return false;
-        }
-    }
-    return true;
-}
-
-bool MaemoGlobal::isFileNewerThan(const QString &filePath,
-    const QDateTime &timeStamp)
-{
-    QFileInfo fileInfo(filePath);
-    if (!fileInfo.exists() || fileInfo.lastModified() >= timeStamp)
-        return true;
-    if (fileInfo.isDir()) {
-        const QStringList dirContents = QDir(filePath)
-            .entryList(QDir::Files | QDir::Dirs | QDir::NoDotAndDotDot);
-        foreach (const QString &curFileName, dirContents) {
-            const QString curFilePath
-                = filePath + QLatin1Char('/') + curFileName;
-            if (isFileNewerThan(curFilePath, timeStamp))
-                return true;
-        }
-    }
-    return false;
-}
-
 void MaemoGlobal::addMaddeEnvironment(Utils::Environment &env, const QString &qmakePath)
 {
     Utils::Environment maddeEnv;
diff --git a/src/plugins/remotelinux/maemoglobal.h b/src/plugins/remotelinux/maemoglobal.h
index c185acce5d34919ccae2d8885d8e806149c6586b..f9751c65056287aa0cdbb2007f187137bc1428e5 100644
--- a/src/plugins/remotelinux/maemoglobal.h
+++ b/src/plugins/remotelinux/maemoglobal.h
@@ -137,13 +137,6 @@ public:
 
     static PackagingSystem packagingSystem(const QString &osType);
 
-    static bool removeRecursively(const QString &filePath, QString &error);
-    static bool copyRecursively(const QString &srcFilePath,
-        const QString &tgtFilePath, QString *error = 0);
-
-    static bool isFileNewerThan(const QString &filePath,
-        const QDateTime &timeStamp);
-
     template<class T> static T *earlierBuildStep(const ProjectExplorer::DeployConfiguration *dc,
         const ProjectExplorer::BuildStep *laterBuildStep)
     {
diff --git a/src/plugins/remotelinux/maemoinstalltosysrootstep.cpp b/src/plugins/remotelinux/maemoinstalltosysrootstep.cpp
index c4111de49d7390920af19fd714e05c12d43e503f..ed10d87c9af2321f62e112155cf391c6b1b3200a 100644
--- a/src/plugins/remotelinux/maemoinstalltosysrootstep.cpp
+++ b/src/plugins/remotelinux/maemoinstalltosysrootstep.cpp
@@ -38,6 +38,8 @@
 #include "maemoqtversion.h"
 #include "qt4maemodeployconfiguration.h"
 
+#include <utils/fileutils.h>
+
 #include <qt4projectmanager/qt4buildconfiguration.h>
 #include <qt4projectmanager/qt4target.h>
 #include <qtsupport/baseqtversion.h>
@@ -323,8 +325,8 @@ void MaemoCopyToSysrootStep::run(QFutureInterface<bool> &fi)
             + deployable.remoteDir + sep + localFileInfo.fileName();
         sysrootDir.mkpath(deployable.remoteDir.mid(1));
         QString errorMsg;
-        MaemoGlobal::removeRecursively(targetFilePath, errorMsg);
-        if (!MaemoGlobal::copyRecursively(deployable.localFilePath,
+        Utils::FileUtils::removeRecursively(targetFilePath, &errorMsg);
+        if (!Utils::FileUtils::copyRecursively(deployable.localFilePath,
                 targetFilePath, &errorMsg)) {
             emit addOutput(tr("Sysroot installation failed: %1\n"
                 " Continuing anyway.").arg(errorMsg), ErrorMessageOutput);
diff --git a/src/plugins/remotelinux/maemopackagecreationfactory.cpp b/src/plugins/remotelinux/maemopackagecreationfactory.cpp
index bab364abe606d6f460ceed92fea4b9954876fb73..cccb44521c0500487d90ad6efdbd52dc7b63d96c 100644
--- a/src/plugins/remotelinux/maemopackagecreationfactory.cpp
+++ b/src/plugins/remotelinux/maemopackagecreationfactory.cpp
@@ -63,6 +63,8 @@ QStringList MaemoPackageCreationFactory::availableCreationIds(ProjectExplorer::B
     QStringList ids;
     if (!MaemoGlobal::hasLinuxQt(parent->target()))
         return ids;
+    if (!qobject_cast<Qt4MaemoDeployConfiguration *>(parent->parent()))
+        return ids;
     if (qobject_cast<AbstractDebBasedQt4MaemoTarget *>(parent->target())
             && !parent->contains(MaemoDebianPackageCreationStep::CreatePackageId)) {
         ids << MaemoDebianPackageCreationStep::CreatePackageId;
diff --git a/src/plugins/remotelinux/maemopackagecreationstep.cpp b/src/plugins/remotelinux/maemopackagecreationstep.cpp
index f48b456000e60900a4fa9479c5bd3750f6193d9b..044b9b71f6621247742833016ed2cc80c809e155 100644
--- a/src/plugins/remotelinux/maemopackagecreationstep.cpp
+++ b/src/plugins/remotelinux/maemopackagecreationstep.cpp
@@ -205,7 +205,7 @@ bool AbstractMaemoPackageCreationStep::packagingNeeded() const
 
     const int deployableCount = deploymentInfo->deployableCount();
     for (int i = 0; i < deployableCount; ++i) {
-        if (MaemoGlobal::isFileNewerThan(deploymentInfo->deployableAt(i).localFilePath,
+        if (Utils::FileUtils::isFileNewerThan(deploymentInfo->deployableAt(i).localFilePath,
                 packageInfo.lastModified()))
             return true;
     }
@@ -427,7 +427,7 @@ bool MaemoDebianPackageCreationStep::copyDebianFiles(bool inSourceBuild)
         return false;
     }
     QString error;
-    if (!MaemoGlobal::removeRecursively(debianDirPath, error)) {
+    if (!Utils::FileUtils::removeRecursively(debianDirPath, &error)) {
         raiseError(tr("Packaging failed."),
             tr("Could not remove directory '%1': %2").arg(debianDirPath, error));
         return false;
@@ -640,7 +640,7 @@ MaemoTarPackageCreationStep::MaemoTarPackageCreationStep(BuildStepList *buildCon
 
 void MaemoTarPackageCreationStep::ctor()
 {
-    setDefaultDisplayName(tr("Create tar ball"));
+    setDefaultDisplayName(tr("Create tarball"));
 }
 
 bool MaemoTarPackageCreationStep::createPackage(QProcess *buildProc,
diff --git a/src/plugins/remotelinux/maemopublisherfremantlefree.cpp b/src/plugins/remotelinux/maemopublisherfremantlefree.cpp
index 36f6f28bd50b44113ab67e9d098922115f82caf6..45ab84172381c9d6de3cdcc6a5092813ccd3e4d4 100644
--- a/src/plugins/remotelinux/maemopublisherfremantlefree.cpp
+++ b/src/plugins/remotelinux/maemopublisherfremantlefree.cpp
@@ -127,7 +127,7 @@ void MaemoPublisherFremantleFree::createPackage()
     if (QFileInfo(tmpDirContainer()).exists()) {
         emit progressReport(tr("Removing left-over temporary directory ..."));
         QString error;
-        if (!MaemoGlobal::removeRecursively(tmpDirContainer(), error)) {
+        if (!Utils::FileUtils::removeRecursively(tmpDirContainer(), &error)) {
             finishWithFailure(tr("Error removing temporary directory: %1").arg(error),
                 tr("Publishing failed: Could not create source package."));
             return;
@@ -360,7 +360,7 @@ void MaemoPublisherFremantleFree::runDpkgBuildPackage()
     }
     foreach (const QString &filePath, d.filesToExclude()) {
         QString error;
-        if (!MaemoGlobal::removeRecursively(filePath, error)) {
+        if (!Utils::FileUtils::removeRecursively(filePath, &error)) {
             finishWithFailure(error,
                 tr("Publishing failed: Could not create package."));
         }
diff --git a/src/plugins/remotelinux/maemouploadandinstalldeploystep.cpp b/src/plugins/remotelinux/maemouploadandinstalldeploystep.cpp
index 5101ffb06352eec4d2622eaefc07275f71419c91..09c2227033868b13c98508d04e74418020ac9c95 100644
--- a/src/plugins/remotelinux/maemouploadandinstalldeploystep.cpp
+++ b/src/plugins/remotelinux/maemouploadandinstalldeploystep.cpp
@@ -277,7 +277,7 @@ const QString MaemoUploadAndInstallTarPackageStep::Id("MaemoUploadAndInstallTarP
 
 QString MaemoUploadAndInstallTarPackageStep::displayName()
 {
-    return tr("Deploy tar package via SFTP upload");
+    return tr("Deploy tarball via SFTP upload");
 }
 
 } // namespace Internal
diff --git a/src/plugins/remotelinux/maemousedportsgatherer.cpp b/src/plugins/remotelinux/maemousedportsgatherer.cpp
index b5711b5db67337be5e85320c4d987465df4ed332..c72371989c1878205e0a39d2ea1ecd031a2b6695 100644
--- a/src/plugins/remotelinux/maemousedportsgatherer.cpp
+++ b/src/plugins/remotelinux/maemousedportsgatherer.cpp
@@ -64,10 +64,12 @@ void MaemoUsedPortsGatherer::start(const Utils::SshConnection::Ptr &connection,
         SLOT(handleRemoteStdOut(QByteArray)));
     connect(m_procRunner.data(), SIGNAL(processErrorOutputAvailable(QByteArray)),
         SLOT(handleRemoteStdErr(QByteArray)));
-    const QString command = MaemoGlobal::remoteSudo(devConf->osType(),
-        m_procRunner->connection()->connectionParameters().userName)
-        + QLatin1String(" lsof -nPi4tcp:") + devConf->freePorts().toString()
+    QString command = QLatin1String("lsof -nPi4tcp:") + devConf->freePorts().toString()
         + QLatin1String(" -F n |grep '^n' |sed -r 's/[^:]*:([[:digit:]]+).*/\\1/g' |sort -n |uniq");
+    if (devConf->osType() != LinuxDeviceConfiguration::HarmattanOsType) { // devrootsh is broken on Harmattan
+        command.prepend(MaemoGlobal::remoteSudo(devConf->osType(),
+            devConf->sshParameters().userName) + QLatin1Char(' '));
+    }
     m_procRunner->run(command.toUtf8());
     m_running = true;
 }
diff --git a/src/plugins/remotelinux/publickeydeploymentdialog.cpp b/src/plugins/remotelinux/publickeydeploymentdialog.cpp
index 9fe831e1a573eb003938938fdf56c53872549218..5107b867af64ab133bca49b23697943ef7219db7 100644
--- a/src/plugins/remotelinux/publickeydeploymentdialog.cpp
+++ b/src/plugins/remotelinux/publickeydeploymentdialog.cpp
@@ -64,7 +64,7 @@ PublicKeyDeploymentDialog::PublicKeyDeploymentDialog(const LinuxDeviceConfigurat
     const QString &dir = QFileInfo(sshParams.privateKeyFile).path();
     QString publicKeyFileName = QFileDialog::getOpenFileName(this,
         tr("Choose Public Key File"), dir,
-        tr("Public Key Files(*.pub);;All Files (*)"));
+        tr("Public Key Files (*.pub);;All Files (*)"));
     if (publicKeyFileName.isEmpty()) {
         reject();
         return;
diff --git a/src/plugins/remotelinux/qt4maemodeployconfiguration.cpp b/src/plugins/remotelinux/qt4maemodeployconfiguration.cpp
index c022de7226f13ba386b3ceec49c9a58e967f90f4..c7f039fe1762423c32bc72c0b7a0e7f9e6e78d60 100644
--- a/src/plugins/remotelinux/qt4maemodeployconfiguration.cpp
+++ b/src/plugins/remotelinux/qt4maemodeployconfiguration.cpp
@@ -196,15 +196,15 @@ QStringList Qt4MaemoDeployConfigurationFactory::availableCreationIds(Target *par
 QString Qt4MaemoDeployConfigurationFactory::displayNameForId(const QString &id) const
 {
     if (id == Qt4MaemoDeployConfiguration::FremantleWithoutPackagingId)
-        return tr("Copy files to Maemo5 device");
+        return tr("Copy Files to Maemo5 Device");
     else if (id == Qt4MaemoDeployConfiguration::FremantleWithPackagingId)
-        return tr("Build Debian package and install to Maemo5 device");
+        return tr("Build Debian Package and Install to Maemo5 Device");
     else if (id == Qt4MaemoDeployConfiguration::HarmattanId)
-        return tr("Build Debian package and install to Harmattan device");
+        return tr("Build Debian Package and Install to Harmattan Device");
     else if (id == Qt4MaemoDeployConfiguration::MeegoId)
-        return tr("Build RPM package and install to Meego device");
+        return tr("Build RPM Package and Install to MeeGo Device");
     else if (id == Qt4MaemoDeployConfiguration::GenericLinuxId)
-        return tr("Build tarball and install to Linux host");
+        return tr("Build Tarball and Install to Linux Host");
     return QString();
 }
 
diff --git a/src/plugins/remotelinux/qt4maemotarget.cpp b/src/plugins/remotelinux/qt4maemotarget.cpp
index 1a8ed325bc89c01cb44a846b1c3c24f97aa7f640..92a675c7e85e08809b2b9a8ea52e15b67a37028f 100644
--- a/src/plugins/remotelinux/qt4maemotarget.cpp
+++ b/src/plugins/remotelinux/qt4maemotarget.cpp
@@ -311,7 +311,7 @@ void AbstractQt4MaemoTarget::handleTargetToBeRemoved(ProjectExplorer::Target *ta
     const QStringList otherContents = QDir(packagingPath).entryList(QDir::Dirs
         | QDir::Files | QDir::Hidden | QDir::NoDotAndDotDot);
     if (otherContents.isEmpty()) {
-        if (!MaemoGlobal::removeRecursively(packagingPath, error))
+        if (!Utils::FileUtils::removeRecursively(packagingPath, &error))
             qDebug("%s", qPrintable(error));
     }
 }
@@ -684,7 +684,7 @@ bool AbstractDebBasedQt4MaemoTarget::targetCanBeRemoved() const
 void AbstractDebBasedQt4MaemoTarget::removeTarget()
 {
     QString error;
-    if (!MaemoGlobal::removeRecursively(debianDirPath(), error))
+    if (!Utils::FileUtils::removeRecursively(debianDirPath(), &error))
         qDebug("%s", qPrintable(error));
 }
 
@@ -705,7 +705,7 @@ AbstractQt4MaemoTarget::ActionStatus AbstractDebBasedQt4MaemoTarget::createSpeci
         projectDir.path() + QLatin1Char('/') + PackagingDirName);
     const QString dhMakeDebianDir = projectDir.path() + QLatin1Char('/')
         + PackagingDirName + QLatin1String("/debian");
-    MaemoGlobal::removeRecursively(dhMakeDebianDir, error);
+    Utils::FileUtils::removeRecursively(dhMakeDebianDir, &error);
     const QStringList dh_makeArgs = QStringList() << QLatin1String("dh_make")
         << QLatin1String("-s") << QLatin1String("-n") << QLatin1String("-p")
         << (defaultPackageFileName() + QLatin1Char('_')
@@ -733,7 +733,7 @@ AbstractQt4MaemoTarget::ActionStatus AbstractDebBasedQt4MaemoTarget::createSpeci
     if (!QFile::rename(dhMakeDebianDir, debianDirPath())) {
         raiseError(tr("Unable to move new debian directory to '%1'.")
             .arg(QDir::toNativeSeparators(debianDirPath())));
-        MaemoGlobal::removeRecursively(dhMakeDebianDir, error);
+        Utils::FileUtils::removeRecursively(dhMakeDebianDir, &error);
         return ActionFailed;
     }
 
diff --git a/src/plugins/remotelinux/remotelinux.pro b/src/plugins/remotelinux/remotelinux.pro
index 1039af7e31395303ceee2820b335808ce9061a4e..cc5a0a3429224afcdf50176634d8d7b3b2542956 100644
--- a/src/plugins/remotelinux/remotelinux.pro
+++ b/src/plugins/remotelinux/remotelinux.pro
@@ -4,8 +4,6 @@ TARGET = RemoteLinux
 include(../../qtcreatorplugin.pri)
 include(remotelinux_dependencies.pri)
 
-message(target.path = $$target.path)
-
 HEADERS += \
     remotelinuxplugin.h \
     remotelinux_export.h \
diff --git a/src/plugins/remotelinux/remotelinuxapplicationrunner.cpp b/src/plugins/remotelinux/remotelinuxapplicationrunner.cpp
index 919238e3d03845e3b9520f0f6ce72bbb9bf4f209..f758c27bc93f0b53101049184e00251805a80c57 100644
--- a/src/plugins/remotelinux/remotelinuxapplicationrunner.cpp
+++ b/src/plugins/remotelinux/remotelinuxapplicationrunner.cpp
@@ -375,7 +375,8 @@ void RemoteLinuxApplicationRunner::handleDeviceSetupDone(bool success)
         handleConnected();
     } else {
         emit reportProgress(tr("Connecting to device..."));
-        m_connection->connectToHost();
+        if (m_connection->state() == Utils::SshConnection::Unconnected)
+            m_connection->connectToHost();
     }
 }
 
diff --git a/src/plugins/remotelinux/remotelinuxdebugsupport.cpp b/src/plugins/remotelinux/remotelinuxdebugsupport.cpp
index b7a86df3f7c722e15034f41791da6f05c5fefee7..b159e052c0ab6c2373a55da94434548a7a698b58 100644
--- a/src/plugins/remotelinux/remotelinuxdebugsupport.cpp
+++ b/src/plugins/remotelinux/remotelinuxdebugsupport.cpp
@@ -181,12 +181,16 @@ void AbstractRemoteLinuxDebugSupport::startExecution()
 
 void AbstractRemoteLinuxDebugSupport::handleRemoteProcessFinished(qint64 exitCode)
 {
-    if (!m_engine || m_state == Inactive || exitCode == 0)
+    if (!m_engine || m_state == Inactive)
         return;
 
     if (m_state == Debugging) {
-        if (m_debuggingType != RemoteLinuxRunConfiguration::DebugQmlOnly)
+        // The QML engine does not realize on its own that the application has finished.
+        if (m_debuggingType == RemoteLinuxRunConfiguration::DebugQmlOnly)
+            m_engine->quitDebugger();
+        else if (exitCode != 0)
             m_engine->notifyInferiorIll();
+
     } else {
         const QString errorMsg = m_debuggingType == RemoteLinuxRunConfiguration::DebugQmlOnly
             ? tr("Remote application failed with exit code %1.").arg(exitCode)
diff --git a/src/plugins/remotelinux/remotelinuxrunconfigurationfactory.cpp b/src/plugins/remotelinux/remotelinuxrunconfigurationfactory.cpp
index f2c8c97445700585e324bce2f889d25b3a4d71de..2a2d0a967b529cd6b27c244e532feeeac6f92362 100644
--- a/src/plugins/remotelinux/remotelinuxrunconfigurationfactory.cpp
+++ b/src/plugins/remotelinux/remotelinuxrunconfigurationfactory.cpp
@@ -102,7 +102,7 @@ QStringList RemoteLinuxRunConfigurationFactory::availableCreationIds(Target *par
 QString RemoteLinuxRunConfigurationFactory::displayNameForId(const QString &id) const
 {
     return QFileInfo(pathFromId(id)).completeBaseName()
-        + QLatin1String(" (on remote generic Linux device)");
+        + tr(" (on Remote Generic Linux Host)");
 }
 
 RunConfiguration *RemoteLinuxRunConfigurationFactory::create(Target *parent, const QString &id)
diff --git a/src/plugins/texteditor/codestylepreferencesmanager.cpp b/src/plugins/texteditor/codestylepreferencesmanager.cpp
index f3e3199590593f649d89727b73ca17f2f8e4ff91..93b0200abcf6d14f0fa01e3fdacd4d0ae8e60ac1 100644
--- a/src/plugins/texteditor/codestylepreferencesmanager.cpp
+++ b/src/plugins/texteditor/codestylepreferencesmanager.cpp
@@ -1,3 +1,35 @@
+/**************************************************************************
+**
+** 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 "codestylepreferencesmanager.h"
 #include "icodestylepreferencesfactory.h"
 
diff --git a/src/plugins/texteditor/codestylepreferencesmanager.h b/src/plugins/texteditor/codestylepreferencesmanager.h
index 1b26228d0b4af69f9d1102bf4f7aa261018d1ea3..a17cf6a2745c4d22c59dccf9c5a67dbf8acd5211 100644
--- a/src/plugins/texteditor/codestylepreferencesmanager.h
+++ b/src/plugins/texteditor/codestylepreferencesmanager.h
@@ -1,3 +1,35 @@
+/**************************************************************************
+**
+** 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 CODESTYLEPREFERENCESMANAGER_H
 #define CODESTYLEPREFERENCESMANAGER_H
 
diff --git a/src/plugins/texteditor/fallbackselectorwidget.cpp b/src/plugins/texteditor/fallbackselectorwidget.cpp
index af931fe1371dbbf93ea107ca9a0cc6a69b6d6114..8abacb092a257f7f920da08998309b4ba66ecff8 100644
--- a/src/plugins/texteditor/fallbackselectorwidget.cpp
+++ b/src/plugins/texteditor/fallbackselectorwidget.cpp
@@ -1,3 +1,35 @@
+/**************************************************************************
+**
+** 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 "fallbackselectorwidget.h"
 #include "ifallbackpreferences.h"
 
diff --git a/src/plugins/texteditor/fallbackselectorwidget.h b/src/plugins/texteditor/fallbackselectorwidget.h
index 795112b660104dcdc4b29114479766df8c350416..205b4a6ebd3f43a7e75dd8c9510988329b3d6f9a 100644
--- a/src/plugins/texteditor/fallbackselectorwidget.h
+++ b/src/plugins/texteditor/fallbackselectorwidget.h
@@ -1,3 +1,35 @@
+/**************************************************************************
+**
+** 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 FALLBACKSELECTORWIDGET_H
 #define FALLBACKSELECTORWIDGET_H
 
diff --git a/src/plugins/texteditor/icodestylepreferencesfactory.cpp b/src/plugins/texteditor/icodestylepreferencesfactory.cpp
index 888bd013362168e3dad9d1428f58671b43e41137..fe4b193296ab05e04aa047f661eaf78aae6f95f6 100644
--- a/src/plugins/texteditor/icodestylepreferencesfactory.cpp
+++ b/src/plugins/texteditor/icodestylepreferencesfactory.cpp
@@ -1,3 +1,35 @@
+/**************************************************************************
+**
+** 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 "icodestylepreferencesfactory.h"
 
 using namespace TextEditor;
diff --git a/src/plugins/texteditor/icodestylepreferencesfactory.h b/src/plugins/texteditor/icodestylepreferencesfactory.h
index d0c49d884ebe8a9b7d6f797c781c491ae8ba2be5..da5c35f134e81cdf81e37238d21d0eab0204fbdf 100644
--- a/src/plugins/texteditor/icodestylepreferencesfactory.h
+++ b/src/plugins/texteditor/icodestylepreferencesfactory.h
@@ -1,3 +1,35 @@
+/**************************************************************************
+**
+** 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 ICODESTYLEPREFERENCESFACTORY_H
 #define ICODESTYLEPREFERENCESFACTORY_H
 
diff --git a/src/plugins/texteditor/ifallbackpreferences.cpp b/src/plugins/texteditor/ifallbackpreferences.cpp
index 4dcb2f6f66bf619954da5dc5dbdcb5359d45a563..95bfd49d6258f26e75eacb85393c5f6cd7ba555f 100644
--- a/src/plugins/texteditor/ifallbackpreferences.cpp
+++ b/src/plugins/texteditor/ifallbackpreferences.cpp
@@ -1,3 +1,35 @@
+/**************************************************************************
+**
+** 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 "ifallbackpreferences.h"
 
 #include <utils/settingsutils.h>
diff --git a/src/plugins/texteditor/ifallbackpreferences.h b/src/plugins/texteditor/ifallbackpreferences.h
index a6339abe4e74d9da39a3ffea2ef063520fb6c1f1..435c21a9927f5673f82271930f6a555a9192e64b 100644
--- a/src/plugins/texteditor/ifallbackpreferences.h
+++ b/src/plugins/texteditor/ifallbackpreferences.h
@@ -1,3 +1,35 @@
+/**************************************************************************
+**
+** 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 IFALLBACKPREFERENCES_H
 #define IFALLBACKPREFERENCES_H
 
diff --git a/src/plugins/texteditor/tabpreferences.cpp b/src/plugins/texteditor/tabpreferences.cpp
index bb3d439def9d77397d3725a86fc0215749f1f4da..93458d5e83bed1645705764cdbdebd31a3e308a5 100644
--- a/src/plugins/texteditor/tabpreferences.cpp
+++ b/src/plugins/texteditor/tabpreferences.cpp
@@ -1,3 +1,35 @@
+/**************************************************************************
+**
+** 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 "tabpreferences.h"
 #include "tabsettings.h"
 #include "texteditorconstants.h"
diff --git a/src/plugins/texteditor/tabpreferences.h b/src/plugins/texteditor/tabpreferences.h
index 37a2b7b4c4114f383059e494dda75d8dae1689a8..c553ab344d537f2eec1d0953405c74c836a72a08 100644
--- a/src/plugins/texteditor/tabpreferences.h
+++ b/src/plugins/texteditor/tabpreferences.h
@@ -1,3 +1,35 @@
+/**************************************************************************
+**
+** 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 TABPREFERENCES_H
 #define TABPREFERENCES_H
 
diff --git a/src/plugins/texteditor/tabpreferenceswidget.cpp b/src/plugins/texteditor/tabpreferenceswidget.cpp
index ec559a91f65f7d810047260e8a435b4bf5a683d8..a542a9e5c935cab012d1cfe430d44200192ae0d9 100644
--- a/src/plugins/texteditor/tabpreferenceswidget.cpp
+++ b/src/plugins/texteditor/tabpreferenceswidget.cpp
@@ -1,3 +1,35 @@
+/**************************************************************************
+**
+** 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 "tabpreferenceswidget.h"
 #include "ui_tabpreferenceswidget.h"
 #include "tabpreferences.h"
diff --git a/src/plugins/texteditor/tabpreferenceswidget.h b/src/plugins/texteditor/tabpreferenceswidget.h
index 20132e41af211cb9a2fda940e3fccdf197cbc8b4..a11f6ccad819e3eae5c1f03b61a09de52f98d606 100644
--- a/src/plugins/texteditor/tabpreferenceswidget.h
+++ b/src/plugins/texteditor/tabpreferenceswidget.h
@@ -1,3 +1,35 @@
+/**************************************************************************
+**
+** 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 TABPREFERENCESWIDGET_H
 #define TABPREFERENCESWIDGET_H
 
diff --git a/src/plugins/texteditor/tabsettingswidget.cpp b/src/plugins/texteditor/tabsettingswidget.cpp
index 9e4336902f032434c114366ac8597a0bb6f7371a..60cc37caf872d09dd06c5fcb5ac06bceb6011082 100644
--- a/src/plugins/texteditor/tabsettingswidget.cpp
+++ b/src/plugins/texteditor/tabsettingswidget.cpp
@@ -1,3 +1,35 @@
+/**************************************************************************
+**
+** 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 "tabsettingswidget.h"
 #include "ui_tabsettingswidget.h"
 #include "tabsettings.h"
diff --git a/src/plugins/texteditor/tabsettingswidget.h b/src/plugins/texteditor/tabsettingswidget.h
index ff79a9d8f854597d25c3de238be41ade3d193698..db4818e6f4bcae954fd64497f0a8794579538dae 100644
--- a/src/plugins/texteditor/tabsettingswidget.h
+++ b/src/plugins/texteditor/tabsettingswidget.h
@@ -1,3 +1,35 @@
+/**************************************************************************
+**
+** 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 TEXTEDITOR_TABSETTINGSWIDGET_H
 #define TEXTEDITOR_TABSETTINGSWIDGET_H
 
diff --git a/src/plugins/valgrind/callgrindengine.cpp b/src/plugins/valgrind/callgrindengine.cpp
index 9fc18f85f0b868a890bdda8915ede8395e981db9..988c70932912e51d053bceb9b7fc3e9374bbfc53 100644
--- a/src/plugins/valgrind/callgrindengine.cpp
+++ b/src/plugins/valgrind/callgrindengine.cpp
@@ -45,22 +45,24 @@ using namespace Analyzer;
 using namespace Valgrind;
 using namespace Valgrind::Internal;
 
-CallgrindEngine::CallgrindEngine(const AnalyzerStartParameters &sp,
-                                 ProjectExplorer::RunConfiguration *runConfiguration)
-    : ValgrindEngine(sp, runConfiguration)
+CallgrindEngine::CallgrindEngine(IAnalyzerTool *tool, const AnalyzerStartParameters &sp,
+         ProjectExplorer::RunConfiguration *runConfiguration)
+    : ValgrindEngine(tool, sp, runConfiguration)
     , m_markAsPaused(false)
 {
     connect(&m_runner, SIGNAL(finished()), this, SLOT(slotFinished()));
     connect(&m_runner, SIGNAL(started()), this, SLOT(slotStarted()));
-
     connect(m_runner.parser(), SIGNAL(parserDataReady()), this, SLOT(slotFinished()));
-
-    connect(&m_runner, SIGNAL(statusMessage(QString)),
-            Analyzer::AnalyzerManager::instance(), SLOT(showStatusMessage(QString)));
+    connect(&m_runner, SIGNAL(statusMessage(QString)), SLOT(showStatusMessage(QString)));
 
     m_progress->setProgressRange(0, 2);
 }
 
+void CallgrindEngine::showStatusMessage(const QString &msg)
+{
+    AnalyzerManager::showStatusMessage(msg);
+}
+
 QStringList CallgrindEngine::toolArguments() const
 {
     QStringList arguments;
diff --git a/src/plugins/valgrind/callgrindengine.h b/src/plugins/valgrind/callgrindengine.h
index 33e8d426ca3088f39c592749e0b539241d74d9ee..53a10a8a4162d4e6d7fc1e72def819cc1868d827 100644
--- a/src/plugins/valgrind/callgrindengine.h
+++ b/src/plugins/valgrind/callgrindengine.h
@@ -46,8 +46,8 @@ class CallgrindEngine : public Valgrind::Internal::ValgrindEngine
     Q_OBJECT
 
 public:
-    explicit CallgrindEngine(const Analyzer::AnalyzerStartParameters &sp,
-                             ProjectExplorer::RunConfiguration *runConfiguration);
+    CallgrindEngine(Analyzer::IAnalyzerTool *tool, const Analyzer::AnalyzerStartParameters &sp,
+        ProjectExplorer::RunConfiguration *runConfiguration);
 
     void start();
 
@@ -79,15 +79,16 @@ protected:
 signals:
     void parserDataReady(CallgrindEngine *engine);
 
+private slots:
+    void slotFinished();
+    void slotStarted();
+    void showStatusMessage(const QString &msg);
+
 private:
     Valgrind::Callgrind::CallgrindRunner m_runner;
     bool m_markAsPaused;
 
     QStringList m_extraArguments;
-
-private slots:
-    void slotFinished();
-    void slotStarted();
 };
 
 } // namespace Internal
diff --git a/src/plugins/valgrind/callgrindtool.cpp b/src/plugins/valgrind/callgrindtool.cpp
index 874a4fc00c6f36865d8ab68d8a87ef07c7ba8260..d89632d6c735a217f94ec0f938db52e00fa76ecd 100644
--- a/src/plugins/valgrind/callgrindtool.cpp
+++ b/src/plugins/valgrind/callgrindtool.cpp
@@ -47,6 +47,7 @@
 #include <valgrind/callgrind/callgrindparsedata.h>
 #include <valgrind/callgrind/callgrindproxymodel.h>
 #include <valgrind/callgrind/callgrindstackbrowser.h>
+#include <valgrind/valgrindplugin.h>
 
 #include <analyzerbase/analyzermanager.h>
 #include <analyzerbase/analyzersettings.h>
@@ -114,10 +115,8 @@ public:
     void setParseData(ParseData *data);
 
     CostDelegate::CostFormat costFormat() const;
-    QWidget *createControlWidget();
-    void initializeDockWidgets();
+    QWidget *createWidgets();
 
-    void ensureDockWidgets();
     void doClear(bool clearParseData);
     void updateEventCombo();
 
@@ -501,9 +500,9 @@ CallgrindTool::CallgrindTool(QObject *parent)
     : Analyzer::IAnalyzerTool(parent)
 {
     d = new CallgrindToolPrivate(this);
-    Core::ICore *core = Core::ICore::instance();
+    setObjectName(QLatin1String("CallgrindTool"));
 
-    // EditorManager
+    Core::ICore *core = Core::ICore::instance();
     QObject *editorManager = core->editorManager();
     connect(editorManager, SIGNAL(editorOpened(Core::IEditor*)),
         d, SLOT(editorOpened(Core::IEditor*)));
@@ -514,7 +513,7 @@ CallgrindTool::~CallgrindTool()
     delete d;
 }
 
-QString CallgrindTool::id() const
+QByteArray CallgrindTool::id() const
 {
     return "Callgrind";
 }
@@ -530,15 +529,11 @@ QString CallgrindTool::description() const
               "record function calls when a program runs.");
 }
 
-IAnalyzerTool::ToolMode CallgrindTool::mode() const
+IAnalyzerTool::ToolMode CallgrindTool::toolMode() const
 {
     return ReleaseMode;
 }
 
-void CallgrindTool::initialize()
-{
-}
-
 void CallgrindTool::extensionsInitialized()
 {
     Core::ICore *core = Core::ICore::instance();
@@ -570,25 +565,78 @@ void CallgrindTool::extensionsInitialized()
     }
 }
 
-void CallgrindTool::initializeDockWidgets()
+IAnalyzerEngine *CallgrindTool::createEngine(const AnalyzerStartParameters &sp,
+    ProjectExplorer::RunConfiguration *runConfiguration)
+{
+    return d->createEngine(sp, runConfiguration);
+}
+
+IAnalyzerEngine *CallgrindToolPrivate::createEngine(const AnalyzerStartParameters &sp,
+    ProjectExplorer::RunConfiguration *runConfiguration)
+{
+    CallgrindEngine *engine = new CallgrindEngine(q, sp, runConfiguration);
+
+    connect(engine, SIGNAL(parserDataReady(CallgrindEngine *)),
+            SLOT(takeParserData(CallgrindEngine *)));
+    connect(engine, SIGNAL(starting(const Analyzer::IAnalyzerEngine*)),
+            SLOT(engineStarting(const Analyzer::IAnalyzerEngine*)));
+    connect(engine, SIGNAL(finished()),
+            SLOT(engineFinished()));
+
+    connect(this, SIGNAL(dumpRequested()), engine, SLOT(dump()));
+    connect(this, SIGNAL(resetRequested()), engine, SLOT(reset()));
+    connect(this, SIGNAL(pauseToggled(bool)), engine, SLOT(setPaused(bool)));
+
+    // initialize engine
+    engine->setPaused(m_pauseAction->isChecked());
+
+    // we may want to toggle collect for one function only in this run
+    engine->setToggleCollectFunction(m_toggleCollectFunction);
+    m_toggleCollectFunction.clear();
+
+    AnalyzerManager::showStatusMessage(AnalyzerManager::msgToolStarted(q->displayName()));
+
+    // apply project settings
+    AnalyzerProjectSettings *analyzerSettings = runConfiguration->extraAspect<AnalyzerProjectSettings>();
+    CallgrindProjectSettings *settings = analyzerSettings->subConfig<CallgrindProjectSettings>();
+    QTC_ASSERT(settings, return engine)
+
+    QTC_ASSERT(m_visualisation, return engine);
+    m_visualisation->setMinimumInclusiveCostRatio(settings->visualisationMinimumInclusiveCostRatio() / 100.0);
+    m_proxyModel->setMinimumInclusiveCostRatio(settings->minimumInclusiveCostRatio() / 100.0);
+    m_dataModel->setVerboseToolTipsEnabled(settings->enableEventToolTips());
+
+    return engine;
+}
+
+void CallgrindTool::startTool(StartMode mode)
+{
+    ValgrindPlugin::startValgrindTool(this, mode);
+}
+
+QWidget *CallgrindTool::createWidgets()
 {
-    d->initializeDockWidgets();
+    return d->createWidgets();
 }
 
-void CallgrindToolPrivate::initializeDockWidgets()
+QWidget *CallgrindToolPrivate::createWidgets()
 {
-    AnalyzerManager *am = AnalyzerManager::instance();
-    Utils::FancyMainWindow *mw = am->mainWindow();
+    QTC_ASSERT(!m_visualisation, return 0);
+
+    //
+    // DockWidgets
+    //
+    Utils::FancyMainWindow *mw = AnalyzerManager::mainWindow();
     m_visualisation = new Visualisation(mw);
     m_visualisation->setFrameStyle(QFrame::NoFrame);
-    m_visualisation->setObjectName("Valgrind.CallgrindToolPrivate.Visualisation");
+    m_visualisation->setObjectName("Valgrind.CallgrindTool.Visualisation");
     m_visualisation->setModel(m_dataModel);
     connect(m_visualisation, SIGNAL(functionActivated(const Valgrind::Callgrind::Function*)),
             this, SLOT(visualisationFunctionSelected(const Valgrind::Callgrind::Function*)));
 
     m_callersView = new CostView(mw);
+    m_callersView->setObjectName("Valgrind.CallgrindTool.CallersView");
     m_callersView->sortByColumn(CallModel::CostColumn);
-    m_callersView->setObjectName("Valgrind.CallgrindToolPrivate.CallersView");
     m_callersView->setFrameStyle(QFrame::NoFrame);
     // enable sorting
     QSortFilterProxyModel *callerProxy = new QSortFilterProxyModel(m_callersModel);
@@ -599,8 +647,8 @@ void CallgrindToolPrivate::initializeDockWidgets()
             this, SLOT(callerFunctionSelected(QModelIndex)));
 
     m_calleesView = new CostView(mw);
+    m_calleesView->setObjectName("Valgrind.CallgrindTool.CalleesView");
     m_calleesView->sortByColumn(CallModel::CostColumn);
-    m_calleesView->setObjectName("Valgrind.CallgrindToolPrivate.CalleesView");
     m_calleesView->setFrameStyle(QFrame::NoFrame);
     // enable sorting
     QSortFilterProxyModel *calleeProxy = new QSortFilterProxyModel(m_calleesModel);
@@ -611,90 +659,40 @@ void CallgrindToolPrivate::initializeDockWidgets()
             this, SLOT(calleeFunctionSelected(QModelIndex)));
 
     m_flatView = new CostView(mw);
+    m_flatView->setObjectName("Valgrind.CallgrindTool.FlatView");
     m_flatView->sortByColumn(DataModel::SelfCostColumn);
     m_flatView->setFrameStyle(QFrame::NoFrame);
     m_flatView->setAttribute(Qt::WA_MacShowFocusRect, false);
     m_flatView->setModel(m_proxyModel);
-    m_flatView->setObjectName("Valgrind.CallgrindToolPrivate.FlatView");
     connect(m_flatView, SIGNAL(activated(QModelIndex)),
             this, SLOT(dataFunctionSelected(QModelIndex)));
 
     updateCostFormat();
 
-    QDockWidget *callersDock =
-        am->createDockWidget(q, tr("Callers"), m_callersView,
-                             Qt::BottomDockWidgetArea);
+    QDockWidget *callersDock = AnalyzerManager::createDockWidget
+        (q, tr("Callers"), m_callersView, Qt::BottomDockWidgetArea);
+
+    QDockWidget *flatDock = AnalyzerManager::createDockWidget
+        (q, tr("Functions"), m_flatView, Qt::BottomDockWidgetArea);
 
-    QDockWidget *flatDock =
-        am->createDockWidget(q, tr("Functions"), m_flatView,
-                             Qt::BottomDockWidgetArea);
+    QDockWidget *calleesDock = AnalyzerManager::createDockWidget
+        (q, tr("Callees"), m_calleesView, Qt::BottomDockWidgetArea);
 
-    QDockWidget *calleesDock =
-        am->createDockWidget(q, tr("Callees"), m_calleesView,
-                             Qt::BottomDockWidgetArea);
+    QDockWidget *visualizationDock = AnalyzerManager::createDockWidget
+        (q, tr("Visualization"), m_visualisation, Qt::RightDockWidgetArea);
 
-    QDockWidget *visualizationDock =
-        am->createDockWidget(q, tr("Visualization"), m_visualisation,
-                             Qt::RightDockWidgetArea);
+    callersDock->show();
+    calleesDock->show();
+    flatDock->show();
     visualizationDock->hide();
 
-    mw->splitDockWidget(mw->toolBarDockWidget(), calleesDock, Qt::Vertical);
-    mw->splitDockWidget(mw->toolBarDockWidget(), callersDock, Qt::Vertical);
     mw->splitDockWidget(mw->toolBarDockWidget(), flatDock, Qt::Vertical);
-    mw->tabifyDockWidget(callersDock, calleesDock);
-}
-
-IAnalyzerEngine *CallgrindTool::createEngine(const AnalyzerStartParameters &sp,
-    ProjectExplorer::RunConfiguration *runConfiguration)
-{
-    return d->createEngine(sp, runConfiguration);
-}
-
-IAnalyzerEngine *CallgrindToolPrivate::createEngine(const AnalyzerStartParameters &sp,
-    ProjectExplorer::RunConfiguration *runConfiguration)
-{
-    CallgrindEngine *engine = new CallgrindEngine(sp, runConfiguration);
-
-    connect(engine, SIGNAL(parserDataReady(CallgrindEngine *)),
-            SLOT(takeParserData(CallgrindEngine *)));
-    connect(engine, SIGNAL(starting(const Analyzer::IAnalyzerEngine*)),
-            SLOT(engineStarting(const Analyzer::IAnalyzerEngine*)));
-    connect(engine, SIGNAL(finished()),
-            SLOT(engineFinished()));
-
-    connect(this, SIGNAL(dumpRequested()), engine, SLOT(dump()));
-    connect(this, SIGNAL(resetRequested()), engine, SLOT(reset()));
-    connect(this, SIGNAL(pauseToggled(bool)), engine, SLOT(setPaused(bool)));
-
-    // initialize engine
-    engine->setPaused(m_pauseAction->isChecked());
-
-    // we may want to toggle collect for one function only in this run
-    engine->setToggleCollectFunction(m_toggleCollectFunction);
-    m_toggleCollectFunction.clear();
-
-    AnalyzerManager::instance()->showStatusMessage(AnalyzerManager::msgToolStarted(q->displayName()));
-
-    // apply project settings
-    AnalyzerProjectSettings *analyzerSettings = runConfiguration->extraAspect<AnalyzerProjectSettings>();
-    CallgrindProjectSettings *settings = analyzerSettings->subConfig<CallgrindProjectSettings>();
-    QTC_ASSERT(settings, return engine)
-
-    QTC_ASSERT(m_visualisation, return engine);
-    m_visualisation->setMinimumInclusiveCostRatio(settings->visualisationMinimumInclusiveCostRatio() / 100.0);
-    m_proxyModel->setMinimumInclusiveCostRatio(settings->minimumInclusiveCostRatio() / 100.0);
-    m_dataModel->setVerboseToolTipsEnabled(settings->enableEventToolTips());
-
-    return engine;
-}
-
-QWidget *CallgrindTool::createControlWidget()
-{
-    return d->createControlWidget();
-}
+    mw->splitDockWidget(mw->toolBarDockWidget(), calleesDock, Qt::Vertical);
+    mw->splitDockWidget(calleesDock, callersDock, Qt::Horizontal);
 
-QWidget *CallgrindToolPrivate::createControlWidget()
-{
+    //
+    // Control Widget
+    //
     QAction *action = 0;
     QWidget *widget = new QWidget;
     QHBoxLayout *layout = new QHBoxLayout;
@@ -862,7 +860,7 @@ void CallgrindToolPrivate::engineFinished()
     if (data)
         showParserResults(data);
     else
-        AnalyzerManager::instance()->showStatusMessage(tr("Profiling aborted."));
+        AnalyzerManager::showStatusMessage(tr("Profiling aborted."));
 }
 
 void CallgrindToolPrivate::showParserResults(const ParseData *data)
@@ -879,7 +877,7 @@ void CallgrindToolPrivate::showParserResults(const ParseData *data)
     } else {
         msg = tr("Parsing failed.");
     }
-    AnalyzerManager::instance()->showStatusMessage(msg);
+    AnalyzerManager::showStatusMessage(msg);
 }
 
 void CallgrindToolPrivate::editorOpened(Core::IEditor *editor)
@@ -938,8 +936,8 @@ void CallgrindToolPrivate::handleShowCostsOfFunction()
 
     m_toggleCollectFunction = QString("%1()").arg(qualifiedFunctionName);
 
-    AnalyzerManager::instance()->selectTool(q);
-    AnalyzerManager::instance()->startTool(q);
+    AnalyzerManager::selectTool(q, StartMode(StartLocal));
+    AnalyzerManager::startTool(q, StartMode(StartLocal));
 }
 
 void CallgrindToolPrivate::slotRequestDump()
@@ -999,15 +997,6 @@ void CallgrindToolPrivate::createTextMarks()
     }
 }
 
-bool CallgrindTool::canRunLocally() const
-{
-#ifdef Q_OS_WINDOWS
-    return false;
-#else
-    return true;
-#endif
-}
-
 } // namespace Internal
 } // namespace Valgrind
 
diff --git a/src/plugins/valgrind/callgrindtool.h b/src/plugins/valgrind/callgrindtool.h
index e3a438b70ac80d45f1d305cd41352d96c3fbd597..35da11be71917f6d9347f37b25023fdc496dce4c 100644
--- a/src/plugins/valgrind/callgrindtool.h
+++ b/src/plugins/valgrind/callgrindtool.h
@@ -45,24 +45,21 @@ class CallgrindTool : public Analyzer::IAnalyzerTool
     Q_OBJECT
 
 public:
-    explicit CallgrindTool(QObject *parent = 0);
+    CallgrindTool(QObject *parent);
     ~CallgrindTool();
 
-    QString id() const;
+    QByteArray id() const;
     QString displayName() const;
     QString description() const;
-    ToolMode mode() const;
+    ToolMode toolMode() const;
 
-    void initialize();
     void extensionsInitialized();
-    void initializeDockWidgets();
 
     Analyzer::IAnalyzerEngine *createEngine(const Analyzer::AnalyzerStartParameters &sp,
         ProjectExplorer::RunConfiguration *runConfiguration = 0);
-    QWidget *createControlWidget();
+    QWidget *createWidgets();
 
-    bool canRunRemotely() const { return true; }
-    bool canRunLocally() const;
+    void startTool(Analyzer::StartMode mode);
 
 private:
     CallgrindToolPrivate *d;
diff --git a/src/plugins/valgrind/memcheckengine.cpp b/src/plugins/valgrind/memcheckengine.cpp
index 10e82fc1dbcf5cc34c84f35665ff70ba62ed003b..341b7a5470de9c535285a4127dd8c8b954812277 100644
--- a/src/plugins/valgrind/memcheckengine.cpp
+++ b/src/plugins/valgrind/memcheckengine.cpp
@@ -49,9 +49,9 @@ using namespace Valgrind::XmlProtocol;
 namespace Valgrind {
 namespace Internal {
 
-MemcheckEngine::MemcheckEngine(const Analyzer::AnalyzerStartParameters &sp,
-                               ProjectExplorer::RunConfiguration *runConfiguration)
-    : ValgrindEngine(sp, runConfiguration)
+MemcheckEngine::MemcheckEngine(IAnalyzerTool *tool, const AnalyzerStartParameters &sp,
+        ProjectExplorer::RunConfiguration *runConfiguration)
+    : ValgrindEngine(tool, sp, runConfiguration)
 {
     connect(&m_parser, SIGNAL(error(Valgrind::XmlProtocol::Error)),
             SIGNAL(parserError(Valgrind::XmlProtocol::Error)));
diff --git a/src/plugins/valgrind/memcheckengine.h b/src/plugins/valgrind/memcheckengine.h
index de21bdf5cd40a29d37f261b643500468b30a4908..6fb21599db40a15ac9d581d3b5402945bc26db29 100644
--- a/src/plugins/valgrind/memcheckengine.h
+++ b/src/plugins/valgrind/memcheckengine.h
@@ -46,9 +46,10 @@ namespace Internal {
 class MemcheckEngine : public ValgrindEngine
 {
     Q_OBJECT
+
 public:
-    explicit MemcheckEngine(const Analyzer::AnalyzerStartParameters &sp,
-                            ProjectExplorer::RunConfiguration *runConfiguration);
+    MemcheckEngine(Analyzer::IAnalyzerTool *tool, const Analyzer::AnalyzerStartParameters &sp,
+        ProjectExplorer::RunConfiguration *runConfiguration);
 
     void start();
     void stop();
diff --git a/src/plugins/valgrind/memchecktool.cpp b/src/plugins/valgrind/memchecktool.cpp
index 109029a15b932a0a1dba07c66bf1716c17d9060d..9c2e89a81742762a3bea32b3d0f78d33a331b265 100644
--- a/src/plugins/valgrind/memchecktool.cpp
+++ b/src/plugins/valgrind/memchecktool.cpp
@@ -37,6 +37,7 @@
 #include "memcheckerrorview.h"
 #include "memchecksettings.h"
 #include "valgrindsettings.h"
+#include "valgrindplugin.h"
 
 #include <analyzerbase/analyzermanager.h>
 #include <analyzerbase/analyzerconstants.h>
@@ -229,15 +230,8 @@ void MemcheckTool::settingsDestroyed(QObject *settings)
     m_settings = AnalyzerGlobalSettings::instance();
 }
 
-void MemcheckTool::extensionsInitialized()
-{
-    //ensureWidgets(); // FIXME: Try to do that later.
-}
-
 void MemcheckTool::maybeActiveRunConfigurationChanged()
 {
-    ensureWidgets();
-
     AnalyzerSettings *settings = 0;
     ProjectExplorer::ProjectExplorerPlugin *pe = ProjectExplorer::ProjectExplorerPlugin::instance();
     if (ProjectExplorer::Project *project = pe->startupProject()) {
@@ -292,9 +286,9 @@ void MemcheckTool::maybeActiveRunConfigurationChanged()
     m_errorProxyModel->setFilterExternalIssues(memcheckSettings->filterExternalIssues());
 }
 
-QString MemcheckTool::id() const
+QByteArray MemcheckTool::id() const
 {
-    return "Memcheck";
+    return "MemcheckLocal";
 }
 
 QString MemcheckTool::displayName() const
@@ -308,7 +302,7 @@ QString MemcheckTool::description() const
         "memory leaks");
 }
 
-IAnalyzerTool::ToolMode MemcheckTool::mode() const
+IAnalyzerTool::ToolMode MemcheckTool::toolMode() const
 {
     return DebugMode;
 }
@@ -359,18 +353,12 @@ private:
     QStringList m_projectFiles;
 };
 
-void MemcheckTool::initializeDockWidgets()
-{
-    ensureWidgets();
-}
 
-void MemcheckTool::ensureWidgets()
+QWidget *MemcheckTool::createWidgets()
 {
-    if (m_errorView)
-        return;
+    QTC_ASSERT(!m_errorView, return 0);
 
-    AnalyzerManager *am = AnalyzerManager::instance();
-    Utils::FancyMainWindow *mw = am->mainWindow();
+    Utils::FancyMainWindow *mw = AnalyzerManager::mainWindow();
 
     m_errorView = new MemcheckErrorView;
     m_errorView->setObjectName(QLatin1String("MemcheckErrorView"));
@@ -390,19 +378,16 @@ void MemcheckTool::ensureWidgets()
     m_errorView->setAutoScroll(false);
     m_errorView->setObjectName("Valgrind.MemcheckTool.ErrorView");
 
-    QDockWidget *errorDock =
-        am->createDockWidget(this, tr("Memory Issues"), m_errorView,
-                             Qt::BottomDockWidgetArea);
+    QDockWidget *errorDock = AnalyzerManager::createDockWidget
+        (this, tr("Memory Issues"), m_errorView, Qt::BottomDockWidgetArea);
     mw->splitDockWidget(mw->toolBarDockWidget(), errorDock, Qt::Vertical);
 
     connect(ProjectExplorer::ProjectExplorerPlugin::instance(),
             SIGNAL(updateRunActions()), SLOT(maybeActiveRunConfigurationChanged()));
-}
-
-QWidget *MemcheckTool::createControlWidget()
-{
-    ensureWidgets();
 
+    //
+    // The Control Widget.
+    //
     QAction *action = 0;
     QHBoxLayout *layout = new QHBoxLayout;
     QToolButton *button = 0;
@@ -457,9 +442,10 @@ QWidget *MemcheckTool::createControlWidget()
 IAnalyzerEngine *MemcheckTool::createEngine(const AnalyzerStartParameters &sp,
                                             ProjectExplorer::RunConfiguration *runConfiguration)
 {
-    m_frameFinder->setFiles(runConfiguration ? runConfiguration->target()->project()->files(ProjectExplorer::Project::AllFiles) : QStringList());
+    m_frameFinder->setFiles(runConfiguration ? runConfiguration->target()
+        ->project()->files(ProjectExplorer::Project::AllFiles) : QStringList());
 
-    MemcheckEngine *engine = new MemcheckEngine(sp, runConfiguration);
+    MemcheckEngine *engine = new MemcheckEngine(this, sp, runConfiguration);
 
     connect(engine, SIGNAL(starting(const Analyzer::IAnalyzerEngine*)),
             this, SLOT(engineStarting(const Analyzer::IAnalyzerEngine*)));
@@ -468,10 +454,15 @@ IAnalyzerEngine *MemcheckTool::createEngine(const AnalyzerStartParameters &sp,
     connect(engine, SIGNAL(internalParserError(QString)),
             this, SLOT(internalParserError(QString)));
     connect(engine, SIGNAL(finished()), this, SLOT(finished()));
-    AnalyzerManager::instance()->showStatusMessage(AnalyzerManager::msgToolStarted(displayName()));
+    AnalyzerManager::showStatusMessage(AnalyzerManager::msgToolStarted(displayName()));
     return engine;
 }
 
+void MemcheckTool::startTool(StartMode mode)
+{
+    ValgrindPlugin::startValgrindTool(this, mode);
+}
+
 void MemcheckTool::engineStarting(const IAnalyzerEngine *engine)
 {
     clearErrorView();
@@ -519,7 +510,7 @@ void MemcheckTool::internalParserError(const QString &errorString)
 
 void MemcheckTool::clearErrorView()
 {
-    ensureWidgets();
+    QTC_ASSERT(m_errorView, return);
     m_errorModel->clear();
 
     qDeleteAll(m_suppressionActions);
@@ -529,7 +520,7 @@ void MemcheckTool::clearErrorView()
 
 void MemcheckTool::updateErrorFilter()
 {
-    ensureWidgets();
+    QTC_ASSERT(m_errorView, return);
     QTC_ASSERT(m_settings, return);
 
     AbstractMemcheckSettings *memcheckSettings = m_settings->subConfig<AbstractMemcheckSettings>();
@@ -556,21 +547,7 @@ void MemcheckTool::finished()
     m_goBack->setEnabled(n > 0);
     m_goNext->setEnabled(n > 0);
     const QString msg = AnalyzerManager::msgToolFinished(displayName(), n);
-    AnalyzerManager::instance()->showStatusMessage(msg);
-}
-
-bool MemcheckTool::canRunRemotely() const
-{
-    return true;
-}
-
-bool MemcheckTool::canRunLocally() const
-{
-#ifdef Q_OS_WINDOWS
-    return false;
-#else
-    return true;
-#endif
+    AnalyzerManager::showStatusMessage(msg);
 }
 
 } // namespace Internal
diff --git a/src/plugins/valgrind/memchecktool.h b/src/plugins/valgrind/memchecktool.h
index 611471290cecc6990b271b14f5f158969f0a195f..60fa68429237d2c494bd44c17f8dda79314e17c1 100644
--- a/src/plugins/valgrind/memchecktool.h
+++ b/src/plugins/valgrind/memchecktool.h
@@ -91,12 +91,11 @@ class MemcheckTool : public Analyzer::IAnalyzerTool
     Q_OBJECT
 
 public:
-    explicit MemcheckTool(QObject *parent = 0);
+    MemcheckTool(QObject *parent);
 
-    QString id() const;
+    QByteArray id() const;
     QString displayName() const;
     QString description() const;
-    ToolMode mode() const;
 
 private slots:
     void settingsDestroyed(QObject *settings);
@@ -111,19 +110,17 @@ private slots:
     void suppressionActionTriggered();
 
 private:
-    void ensureWidgets();
-    bool canRunRemotely() const;
-    bool canRunLocally() const;
-    void initializeDockWidgets();
-    void initialize() {}
-    void extensionsInitialized();
-    QWidget *createControlWidget();
+    ToolMode toolMode() const;
+    void extensionsInitialized() {}
+    QWidget *createWidgets();
 
     Analyzer::IAnalyzerEngine *createEngine(const Analyzer::AnalyzerStartParameters &sp,
                                ProjectExplorer::RunConfiguration *runConfiguration = 0);
+    void startTool(Analyzer::StartMode mode);
 
     void clearErrorView();
 
+private:
     Analyzer::AnalyzerSettings *m_settings;
     QMenu *m_filterMenu;
 
diff --git a/src/plugins/valgrind/valgrind.pro b/src/plugins/valgrind/valgrind.pro
index 18bdb64441554e919100bf7629620de5c2ccb248..e07d06ee74b314eea8eda8e2a29756f85f6ab881 100644
--- a/src/plugins/valgrind/valgrind.pro
+++ b/src/plugins/valgrind/valgrind.pro
@@ -1,20 +1,18 @@
 TEMPLATE = lib
 TARGET = Valgrind
 
-DEFINES += VALGRIND_LIBRARY
-
 include(../../qtcreatorplugin.pri)
-include(valgrind.pri)
+include(valgrind_dependencies.pri)
+include(valgrind/valgrind.pri)
+QT *= network
 
-QT += network
+INCLUDEPATH *= $$PWD
 
 HEADERS += \
     valgrindplugin.h \
-    valgrind_global.h \
     valgrindengine.h \
     valgrindconfigwidget.h \
     valgrindsettings.h \
-    \
     callgrindconfigwidget.h \
     callgrindcostdelegate.h \
     callgrindcostview.h \
@@ -51,7 +49,6 @@ SOURCES += \
     callgrindengine.cpp \
     workarounds.cpp \
     callgrindtextmark.cpp \
-    \
     memchecktool.cpp \
     memcheckengine.cpp \
     memcheckerrorview.cpp \
diff --git a/src/libs/valgrind/callgrind/callgrindabstractmodel.cpp b/src/plugins/valgrind/valgrind/callgrind/callgrindabstractmodel.cpp
similarity index 100%
rename from src/libs/valgrind/callgrind/callgrindabstractmodel.cpp
rename to src/plugins/valgrind/valgrind/callgrind/callgrindabstractmodel.cpp
diff --git a/src/libs/valgrind/callgrind/callgrindabstractmodel.h b/src/plugins/valgrind/valgrind/callgrind/callgrindabstractmodel.h
similarity index 98%
rename from src/libs/valgrind/callgrind/callgrindabstractmodel.h
rename to src/plugins/valgrind/valgrind/callgrind/callgrindabstractmodel.h
index 8ae9f5826e51bf357ab7a940aab48217ffcfcd60..90518e9a09e66c97b37f16d44176a5b24d7dee90 100644
--- a/src/libs/valgrind/callgrind/callgrindabstractmodel.h
+++ b/src/plugins/valgrind/valgrind/callgrind/callgrindabstractmodel.h
@@ -33,8 +33,6 @@
 #ifndef LIBVALGRIND_CALLGRINDABSTRACTMODEL_H
 #define LIBVALGRIND_CALLGRINDABSTRACTMODEL_H
 
-#include "../valgrind_global.h"
-
 #include <QtGui/QAbstractItemView>
 
 namespace Valgrind {
diff --git a/src/libs/valgrind/callgrind/callgrindcallmodel.cpp b/src/plugins/valgrind/valgrind/callgrind/callgrindcallmodel.cpp
similarity index 100%
rename from src/libs/valgrind/callgrind/callgrindcallmodel.cpp
rename to src/plugins/valgrind/valgrind/callgrind/callgrindcallmodel.cpp
diff --git a/src/libs/valgrind/callgrind/callgrindcallmodel.h b/src/plugins/valgrind/valgrind/callgrind/callgrindcallmodel.h
similarity index 96%
rename from src/libs/valgrind/callgrind/callgrindcallmodel.h
rename to src/plugins/valgrind/valgrind/callgrind/callgrindcallmodel.h
index ecac253723e235746ea35405b3e859ee1bc170ed..77bc69b8501fd861dee48945ccfa576d2db1b1b8 100644
--- a/src/libs/valgrind/callgrind/callgrindcallmodel.h
+++ b/src/plugins/valgrind/valgrind/callgrind/callgrindcallmodel.h
@@ -35,8 +35,6 @@
 
 #include <QtCore/QAbstractItemModel>
 
-#include "../valgrind_global.h"
-
 #include "callgrindabstractmodel.h"
 
 namespace Valgrind {
@@ -48,7 +46,7 @@ class Function;
 /**
  * Model to display list of function calls.
  */
-class VALGRINDSHARED_EXPORT CallModel : public QAbstractItemModel
+class CallModel : public QAbstractItemModel
 {
     Q_OBJECT
 public:
diff --git a/src/libs/valgrind/callgrind/callgrindcontroller.cpp b/src/plugins/valgrind/valgrind/callgrind/callgrindcontroller.cpp
similarity index 97%
rename from src/libs/valgrind/callgrind/callgrindcontroller.cpp
rename to src/plugins/valgrind/valgrind/callgrind/callgrindcontroller.cpp
index d3532c700a514cc4ca99b1d1ee5b648171b305c8..c968cfa1de6234486c460b4c4ca8b658c9679af7 100644
--- a/src/libs/valgrind/callgrind/callgrindcontroller.cpp
+++ b/src/plugins/valgrind/valgrind/callgrind/callgrindcontroller.cpp
@@ -35,7 +35,7 @@
 #include <QDebug>
 #include <QDir>
 
-#include <valgrind/valgrindprocess.h>
+#include <valgrindprocess.h>
 
 #include <utils/qtcassert.h>
 #include <utils/ssh/sftpchannel.h>
@@ -137,9 +137,14 @@ void CallgrindController::run(Option option)
 
 #if CALLGRIND_CONTROL_DEBUG
     m_process->setProcessChannelMode(QProcess::ForwardedChannels);
+#endif
+#ifdef Q_OS_WIN
+    int pid = 0;
+#else
+    const int pid = m_valgrindProc->pid();
 #endif
     m_process->run(CALLGRIND_CONTROL_BINARY,
-                   QStringList() << optionString << QString::number(m_valgrindProc->pid()),
+                   QStringList() << optionString << QString::number(pid),
                    QString(), QString());
 }
 
@@ -200,7 +205,8 @@ void CallgrindController::getLocalDataFile()
     QTC_ASSERT(m_valgrindProc, return);
 
     // we look for callgrind.out.PID, but there may be updated ones called ~.PID.NUM
-    QString baseFileName = QString("callgrind.out.%1").arg(m_valgrindProc->pid());
+    QString baseFileName = QString("callgrind.out.%1").
+            arg(m_valgrindProc->pid());
     const QString workingDir = m_valgrindProc->workingDirectory();
     // first, set the to-be-parsed file to callgrind.out.PID
     QString fileName = workingDir.isEmpty() ? baseFileName : (workingDir + QDir::separator() + baseFileName);
diff --git a/src/libs/valgrind/callgrind/callgrindcontroller.h b/src/plugins/valgrind/valgrind/callgrind/callgrindcontroller.h
similarity index 96%
rename from src/libs/valgrind/callgrind/callgrindcontroller.h
rename to src/plugins/valgrind/valgrind/callgrind/callgrindcontroller.h
index 4a648b571d0242f8c35d8f719e3a2505090d8287..0368f5316fefa9f5b629499a12d9f3f62e4d27df 100644
--- a/src/libs/valgrind/callgrind/callgrindcontroller.h
+++ b/src/plugins/valgrind/valgrind/callgrind/callgrindcontroller.h
@@ -41,15 +41,13 @@
 #include <utils/ssh/sshremoteprocess.h>
 #include <utils/ssh/sftpchannel.h>
 
-#include <valgrind/valgrind_global.h>
-
 namespace Valgrind {
 
 class ValgrindProcess;
 
 namespace Callgrind {
 
-class VALGRINDSHARED_EXPORT CallgrindController : public QObject
+class CallgrindController : public QObject
 {
     Q_OBJECT
     Q_ENUMS(Option)
diff --git a/src/libs/valgrind/callgrind/callgrindcostitem.cpp b/src/plugins/valgrind/valgrind/callgrind/callgrindcostitem.cpp
similarity index 100%
rename from src/libs/valgrind/callgrind/callgrindcostitem.cpp
rename to src/plugins/valgrind/valgrind/callgrind/callgrindcostitem.cpp
diff --git a/src/libs/valgrind/callgrind/callgrindcostitem.h b/src/plugins/valgrind/valgrind/callgrind/callgrindcostitem.h
similarity index 97%
rename from src/libs/valgrind/callgrind/callgrindcostitem.h
rename to src/plugins/valgrind/valgrind/callgrind/callgrindcostitem.h
index 2bc789e3bb2a636b776342babcdb294856504aa2..c0804606b0781e9049f988a2bed110bbba009642 100644
--- a/src/libs/valgrind/callgrind/callgrindcostitem.h
+++ b/src/plugins/valgrind/valgrind/callgrind/callgrindcostitem.h
@@ -33,7 +33,7 @@
 #ifndef LIBVALGRIND_CALLGRIND_COSTITEM_H
 #define LIBVALGRIND_CALLGRIND_COSTITEM_H
 
-#include "../valgrind_global.h"
+#include <QtCore/QtGlobal>
 
 QT_BEGIN_NAMESPACE
 class QString;
@@ -49,7 +49,7 @@ class ParseData;
 /**
  * This class represents the cost(s) at given position(s).
  */
-class VALGRINDSHARED_EXPORT CostItem
+class CostItem
 {
 public:
     /// @p data the file data this cost item was parsed in.
diff --git a/src/libs/valgrind/callgrind/callgrindcycledetection.cpp b/src/plugins/valgrind/valgrind/callgrind/callgrindcycledetection.cpp
similarity index 100%
rename from src/libs/valgrind/callgrind/callgrindcycledetection.cpp
rename to src/plugins/valgrind/valgrind/callgrind/callgrindcycledetection.cpp
diff --git a/src/libs/valgrind/callgrind/callgrindcycledetection.h b/src/plugins/valgrind/valgrind/callgrind/callgrindcycledetection.h
similarity index 100%
rename from src/libs/valgrind/callgrind/callgrindcycledetection.h
rename to src/plugins/valgrind/valgrind/callgrind/callgrindcycledetection.h
diff --git a/src/libs/valgrind/callgrind/callgrinddatamodel.cpp b/src/plugins/valgrind/valgrind/callgrind/callgrinddatamodel.cpp
similarity index 100%
rename from src/libs/valgrind/callgrind/callgrinddatamodel.cpp
rename to src/plugins/valgrind/valgrind/callgrind/callgrinddatamodel.cpp
diff --git a/src/libs/valgrind/callgrind/callgrinddatamodel.h b/src/plugins/valgrind/valgrind/callgrind/callgrinddatamodel.h
similarity index 97%
rename from src/libs/valgrind/callgrind/callgrinddatamodel.h
rename to src/plugins/valgrind/valgrind/callgrind/callgrinddatamodel.h
index 9035159b67fe7f4250b5d0062625aa61dc8e9e10..c155ef661c546c750a4ea194964aa19e1ca6abd4 100644
--- a/src/libs/valgrind/callgrind/callgrinddatamodel.h
+++ b/src/plugins/valgrind/valgrind/callgrind/callgrinddatamodel.h
@@ -33,8 +33,6 @@
 #ifndef VALGRIND_CALLGRIND_CALLGRINDDATAMODEL_H
 #define VALGRIND_CALLGRIND_CALLGRINDDATAMODEL_H
 
-#include "../valgrind_global.h"
-
 #include "callgrindabstractmodel.h"
 
 #include <QtCore/QAbstractItemModel>
@@ -45,7 +43,7 @@ namespace Callgrind {
 class Function;
 class ParseData;
 
-class VALGRINDSHARED_EXPORT DataModel : public QAbstractItemModel
+class DataModel : public QAbstractItemModel
 {
     Q_OBJECT
 
diff --git a/src/libs/valgrind/callgrind/callgrindfunction.cpp b/src/plugins/valgrind/valgrind/callgrind/callgrindfunction.cpp
similarity index 100%
rename from src/libs/valgrind/callgrind/callgrindfunction.cpp
rename to src/plugins/valgrind/valgrind/callgrind/callgrindfunction.cpp
diff --git a/src/libs/valgrind/callgrind/callgrindfunction.h b/src/plugins/valgrind/valgrind/callgrind/callgrindfunction.h
similarity index 98%
rename from src/libs/valgrind/callgrind/callgrindfunction.h
rename to src/plugins/valgrind/valgrind/callgrind/callgrindfunction.h
index c52863ff9a4b22ceb87bb3da405b6728392a3e93..50a84b921806c48e9dde99fdd8fd370298a3e1aa 100644
--- a/src/libs/valgrind/callgrind/callgrindfunction.h
+++ b/src/plugins/valgrind/valgrind/callgrind/callgrindfunction.h
@@ -33,8 +33,6 @@
 #ifndef LIBVALGRIND_CALLGRIND_FUNCTION_H
 #define LIBVALGRIND_CALLGRIND_FUNCTION_H
 
-#include "../valgrind_global.h"
-
 #include <QtCore/QMetaType>
 
 QT_BEGIN_NAMESPACE
@@ -50,7 +48,7 @@ class FunctionCall;
 class CostItem;
 class ParseData;
 
-class VALGRINDSHARED_EXPORT Function
+class Function
 {
 public:
     /// @p data the ParseData for the file this function was part of
diff --git a/src/libs/valgrind/callgrind/callgrindfunction_p.h b/src/plugins/valgrind/valgrind/callgrind/callgrindfunction_p.h
similarity index 100%
rename from src/libs/valgrind/callgrind/callgrindfunction_p.h
rename to src/plugins/valgrind/valgrind/callgrind/callgrindfunction_p.h
diff --git a/src/libs/valgrind/callgrind/callgrindfunctioncall.cpp b/src/plugins/valgrind/valgrind/callgrind/callgrindfunctioncall.cpp
similarity index 100%
rename from src/libs/valgrind/callgrind/callgrindfunctioncall.cpp
rename to src/plugins/valgrind/valgrind/callgrind/callgrindfunctioncall.cpp
diff --git a/src/libs/valgrind/callgrind/callgrindfunctioncall.h b/src/plugins/valgrind/valgrind/callgrind/callgrindfunctioncall.h
similarity index 97%
rename from src/libs/valgrind/callgrind/callgrindfunctioncall.h
rename to src/plugins/valgrind/valgrind/callgrind/callgrindfunctioncall.h
index e84aa30f5e9162844b0849341097e04c9192256e..2e825ebca3794783459d527c1c8c6797fc187790 100644
--- a/src/libs/valgrind/callgrind/callgrindfunctioncall.h
+++ b/src/plugins/valgrind/valgrind/callgrind/callgrindfunctioncall.h
@@ -33,8 +33,6 @@
 #ifndef LIBVALGRIND_CALLGRIND_CALLEE_H
 #define LIBVALGRIND_CALLGRIND_CALLEE_H
 
-#include "../valgrind_global.h"
-
 #include <QtCore/QMetaType>
 
 QT_BEGIN_NAMESPACE
@@ -49,7 +47,7 @@ class Function;
 /**
  * This represents a function call.
  */
-class VALGRINDSHARED_EXPORT FunctionCall
+class FunctionCall
 {
 public:
     explicit FunctionCall();
diff --git a/src/libs/valgrind/callgrind/callgrindfunctioncycle.cpp b/src/plugins/valgrind/valgrind/callgrind/callgrindfunctioncycle.cpp
similarity index 100%
rename from src/libs/valgrind/callgrind/callgrindfunctioncycle.cpp
rename to src/plugins/valgrind/valgrind/callgrind/callgrindfunctioncycle.cpp
diff --git a/src/libs/valgrind/callgrind/callgrindfunctioncycle.h b/src/plugins/valgrind/valgrind/callgrind/callgrindfunctioncycle.h
similarity index 97%
rename from src/libs/valgrind/callgrind/callgrindfunctioncycle.h
rename to src/plugins/valgrind/valgrind/callgrind/callgrindfunctioncycle.h
index 249087efa5d2abe92ac586f50b34470166195db5..d4feaca2c065eb2477e568f4441e80143c9b4436 100644
--- a/src/libs/valgrind/callgrind/callgrindfunctioncycle.h
+++ b/src/plugins/valgrind/valgrind/callgrind/callgrindfunctioncycle.h
@@ -46,7 +46,7 @@ namespace Callgrind {
  *                              excluding calees inside the cycle
  * inclusive cost of a function cycle: sum of inclusive cost of callees of the cycle (see above)
  */
-class VALGRINDSHARED_EXPORT FunctionCycle : public Function
+class FunctionCycle : public Function
 {
 public:
     explicit FunctionCycle(const ParseData *data);
diff --git a/src/libs/valgrind/callgrind/callgrindparsedata.cpp b/src/plugins/valgrind/valgrind/callgrind/callgrindparsedata.cpp
similarity index 100%
rename from src/libs/valgrind/callgrind/callgrindparsedata.cpp
rename to src/plugins/valgrind/valgrind/callgrind/callgrindparsedata.cpp
diff --git a/src/libs/valgrind/callgrind/callgrindparsedata.h b/src/plugins/valgrind/valgrind/callgrind/callgrindparsedata.h
similarity index 98%
rename from src/libs/valgrind/callgrind/callgrindparsedata.h
rename to src/plugins/valgrind/valgrind/callgrind/callgrindparsedata.h
index 5110461a35bc389694e1331be6b63d8b0c4e27df..a77f638f6fdbb5917b46879b392ba9074abdcadf 100644
--- a/src/libs/valgrind/callgrind/callgrindparsedata.h
+++ b/src/plugins/valgrind/valgrind/callgrind/callgrindparsedata.h
@@ -33,7 +33,7 @@
 #ifndef LIBVALGRIND_CALLGRIND_PARSEDATA_P_H
 #define LIBVALGRIND_CALLGRIND_PARSEDATA_P_H
 
-#include "../valgrind_global.h"
+#include <QtCore/QtGlobal>
 
 QT_BEGIN_NAMESPACE
 class QString;
@@ -49,7 +49,7 @@ class Function;
 /**
  * Represents all the information extracted from a callgrind data file.
  */
-class VALGRINDSHARED_EXPORT ParseData
+class ParseData
 {
 public:
     explicit ParseData();
diff --git a/src/libs/valgrind/callgrind/callgrindparser.cpp b/src/plugins/valgrind/valgrind/callgrind/callgrindparser.cpp
similarity index 100%
rename from src/libs/valgrind/callgrind/callgrindparser.cpp
rename to src/plugins/valgrind/valgrind/callgrind/callgrindparser.cpp
diff --git a/src/libs/valgrind/callgrind/callgrindparser.h b/src/plugins/valgrind/valgrind/callgrind/callgrindparser.h
similarity index 96%
rename from src/libs/valgrind/callgrind/callgrindparser.h
rename to src/plugins/valgrind/valgrind/callgrind/callgrindparser.h
index 12629928fdb5c8c1f77ea31eed0479e47d39f8d7..40ee2235245cba323945bd5cea35c4d404b39933 100644
--- a/src/libs/valgrind/callgrind/callgrindparser.h
+++ b/src/plugins/valgrind/valgrind/callgrind/callgrindparser.h
@@ -33,8 +33,6 @@
 #ifndef LIBVALGRIND_CALLGRIND_PARSER_H
 #define LIBVALGRIND_CALLGRIND_PARSER_H
 
-#include "../valgrind_global.h"
-
 #include <QObject>
 
 QT_BEGIN_NAMESPACE
@@ -55,7 +53,7 @@ class ParseData;
  * the rest is assumed to be zero."
  *
  */
-class VALGRINDSHARED_EXPORT Parser : public QObject
+class Parser : public QObject
 {
     Q_OBJECT
 
diff --git a/src/libs/valgrind/callgrind/callgrindproxymodel.cpp b/src/plugins/valgrind/valgrind/callgrind/callgrindproxymodel.cpp
similarity index 100%
rename from src/libs/valgrind/callgrind/callgrindproxymodel.cpp
rename to src/plugins/valgrind/valgrind/callgrind/callgrindproxymodel.cpp
diff --git a/src/libs/valgrind/callgrind/callgrindproxymodel.h b/src/plugins/valgrind/valgrind/callgrind/callgrindproxymodel.h
similarity index 96%
rename from src/libs/valgrind/callgrind/callgrindproxymodel.h
rename to src/plugins/valgrind/valgrind/callgrind/callgrindproxymodel.h
index a4967584a5757393b71924aeaaabb86e026d9f9a..c4c99e9e7f53e2bc195318cef4a2e46636bee989 100644
--- a/src/libs/valgrind/callgrind/callgrindproxymodel.h
+++ b/src/plugins/valgrind/valgrind/callgrind/callgrindproxymodel.h
@@ -33,8 +33,6 @@
 #ifndef VALGRIND_CALLGRIND_CALLGRINDPROXYMODEL_H
 #define VALGRIND_CALLGRIND_CALLGRINDPROXYMODEL_H
 
-#include "../valgrind_global.h"
-
 #include <QSortFilterProxyModel>
 
 namespace Valgrind {
@@ -43,7 +41,7 @@ namespace Callgrind {
 class DataModel;
 class Function;
 
-class VALGRINDSHARED_EXPORT DataProxyModel : public QSortFilterProxyModel
+class DataProxyModel : public QSortFilterProxyModel
 {
     Q_OBJECT
 
diff --git a/src/libs/valgrind/callgrind/callgrindrunner.cpp b/src/plugins/valgrind/valgrind/callgrind/callgrindrunner.cpp
similarity index 100%
rename from src/libs/valgrind/callgrind/callgrindrunner.cpp
rename to src/plugins/valgrind/valgrind/callgrind/callgrindrunner.cpp
diff --git a/src/libs/valgrind/callgrind/callgrindrunner.h b/src/plugins/valgrind/valgrind/callgrind/callgrindrunner.h
similarity index 94%
rename from src/libs/valgrind/callgrind/callgrindrunner.h
rename to src/plugins/valgrind/valgrind/callgrind/callgrindrunner.h
index 0a42c3ef493733b82a31ca9b29f78d0959c50efc..fb7da49db464b5cbc1ac15353588231b836afd03 100644
--- a/src/libs/valgrind/callgrind/callgrindrunner.h
+++ b/src/plugins/valgrind/valgrind/callgrind/callgrindrunner.h
@@ -33,8 +33,7 @@
 #ifndef VALGRIND_CALLGRIND_CALLGRINDRUNNER_H
 #define VALGRIND_CALLGRIND_CALLGRINDRUNNER_H
 
-#include <valgrind/valgrindrunner.h>
-#include <valgrind/valgrind_global.h>
+#include <valgrindrunner.h>
 
 #include "callgrindcontroller.h"
 
@@ -44,7 +43,7 @@ namespace Callgrind {
 class Parser;
 class CallgrindController;
 
-class VALGRINDSHARED_EXPORT CallgrindRunner : public ValgrindRunner
+class CallgrindRunner : public ValgrindRunner
 {
     Q_OBJECT
 
diff --git a/src/libs/valgrind/callgrind/callgrindstackbrowser.cpp b/src/plugins/valgrind/valgrind/callgrind/callgrindstackbrowser.cpp
similarity index 100%
rename from src/libs/valgrind/callgrind/callgrindstackbrowser.cpp
rename to src/plugins/valgrind/valgrind/callgrind/callgrindstackbrowser.cpp
diff --git a/src/libs/valgrind/callgrind/callgrindstackbrowser.h b/src/plugins/valgrind/valgrind/callgrind/callgrindstackbrowser.h
similarity index 95%
rename from src/libs/valgrind/callgrind/callgrindstackbrowser.h
rename to src/plugins/valgrind/valgrind/callgrind/callgrindstackbrowser.h
index 637ea213a1966194be6efee079eedfda8c1cdd73..a7b239ef4b74ebb2355b2809f20704cee7eb20aa 100644
--- a/src/libs/valgrind/callgrind/callgrindstackbrowser.h
+++ b/src/plugins/valgrind/valgrind/callgrind/callgrindstackbrowser.h
@@ -33,8 +33,6 @@
 #ifndef CALLGRINDSTACKBROWSER_H
 #define CALLGRINDSTACKBROWSER_H
 
-#include "../valgrind_global.h"
-
 #include <QObject>
 #include <QStack>
 
@@ -43,7 +41,7 @@ namespace Callgrind {
 
 class Function;
 
-class VALGRINDSHARED_EXPORT StackBrowser : public QObject
+class StackBrowser : public QObject
 {
     Q_OBJECT
 
diff --git a/src/libs/valgrind/memcheck/memcheckrunner.cpp b/src/plugins/valgrind/valgrind/memcheck/memcheckrunner.cpp
similarity index 100%
rename from src/libs/valgrind/memcheck/memcheckrunner.cpp
rename to src/plugins/valgrind/valgrind/memcheck/memcheckrunner.cpp
diff --git a/src/libs/valgrind/memcheck/memcheckrunner.h b/src/plugins/valgrind/valgrind/memcheck/memcheckrunner.h
similarity index 93%
rename from src/libs/valgrind/memcheck/memcheckrunner.h
rename to src/plugins/valgrind/valgrind/memcheck/memcheckrunner.h
index 6354ea9b323f141dd154dee10f8671eb88d0320e..9fa59570611b87df1bc7c6c61a68ea30bc2c118a 100644
--- a/src/libs/valgrind/memcheck/memcheckrunner.h
+++ b/src/plugins/valgrind/valgrind/memcheck/memcheckrunner.h
@@ -35,8 +35,7 @@
 #ifndef VALGRIND_PROTOCOL_MEMCHECKRUNNER_H
 #define VALGRIND_PROTOCOL_MEMCHECKRUNNER_H
 
-#include <valgrind/valgrind_global.h>
-#include <valgrind/valgrindrunner.h>
+#include <valgrindrunner.h>
 
 namespace Valgrind {
 
@@ -46,7 +45,7 @@ class ThreadedParser;
 
 namespace Memcheck {
 
-class VALGRINDSHARED_EXPORT MemcheckRunner : public ValgrindRunner
+class MemcheckRunner : public ValgrindRunner
 {
     Q_OBJECT
 
diff --git a/src/plugins/valgrind/valgrind/valgrind.pri b/src/plugins/valgrind/valgrind/valgrind.pri
new file mode 100644
index 0000000000000000000000000000000000000000..73cb4fcdbf0dcf3fdd5e108b3b2b18a55c0df39b
--- /dev/null
+++ b/src/plugins/valgrind/valgrind/valgrind.pri
@@ -0,0 +1,63 @@
+QT *= network
+
+INCLUDEPATH *= $$PWD
+
+HEADERS += \
+    $$PWD/xmlprotocol/frame.h \
+    $$PWD/xmlprotocol/parser.h \
+    $$PWD/xmlprotocol/error.h \
+    $$PWD/xmlprotocol/status.h \
+    $$PWD/xmlprotocol/suppression.h \
+    $$PWD/xmlprotocol/threadedparser.h \
+    $$PWD/xmlprotocol/announcethread.h \
+    $$PWD/xmlprotocol/stack.h \
+    $$PWD/xmlprotocol/errorlistmodel.h \
+    $$PWD/xmlprotocol/stackmodel.h \
+    $$PWD/xmlprotocol/modelhelpers.h \
+    $$PWD/callgrind/callgrindparser.h \
+    $$PWD/callgrind/callgrindparsedata.h \
+    $$PWD/callgrind/callgrindfunction.h \
+    $$PWD/callgrind/callgrindfunction_p.h \
+    $$PWD/callgrind/callgrindfunctioncycle.h \
+    $$PWD/callgrind/callgrindfunctioncall.h \
+    $$PWD/callgrind/callgrindcostitem.h \
+    $$PWD/callgrind/callgrinddatamodel.h \
+    $$PWD/callgrind/callgrindabstractmodel.h \
+    $$PWD/callgrind/callgrindcallmodel.h \
+    $$PWD/callgrind/callgrindcontroller.h \
+    $$PWD/callgrind/callgrindcycledetection.h \
+    $$PWD/callgrind/callgrindproxymodel.h \
+    $$PWD/callgrind/callgrindstackbrowser.h \
+    $$PWD/callgrind/callgrindrunner.h \
+    $$PWD/memcheck/memcheckrunner.h \
+    $$PWD/valgrindrunner.h \
+    $$PWD/valgrindprocess.h
+
+SOURCES += $$PWD/xmlprotocol/error.cpp \
+    $$PWD/xmlprotocol/frame.cpp \
+    $$PWD/xmlprotocol/parser.cpp \
+    $$PWD/xmlprotocol/status.cpp \
+    $$PWD/xmlprotocol/suppression.cpp \
+    $$PWD/xmlprotocol/threadedparser.cpp \
+    $$PWD/xmlprotocol/announcethread.cpp \
+    $$PWD/xmlprotocol/stack.cpp \
+    $$PWD/xmlprotocol/errorlistmodel.cpp \
+    $$PWD/xmlprotocol/stackmodel.cpp \
+    $$PWD/xmlprotocol/modelhelpers.cpp \
+    $$PWD/callgrind/callgrindparser.cpp \
+    $$PWD/callgrind/callgrindparsedata.cpp \
+    $$PWD/callgrind/callgrindfunction.cpp \
+    $$PWD/callgrind/callgrindfunctioncycle.cpp \
+    $$PWD/callgrind/callgrindfunctioncall.cpp \
+    $$PWD/callgrind/callgrindcostitem.cpp \
+    $$PWD/callgrind/callgrindabstractmodel.cpp \
+    $$PWD/callgrind/callgrinddatamodel.cpp \
+    $$PWD/callgrind/callgrindcallmodel.cpp \
+    $$PWD/callgrind/callgrindcontroller.cpp \
+    $$PWD/callgrind/callgrindcycledetection.cpp \
+    $$PWD/callgrind/callgrindproxymodel.cpp \
+    $$PWD/callgrind/callgrindrunner.cpp \
+    $$PWD/callgrind/callgrindstackbrowser.cpp \
+    $$PWD/memcheck/memcheckrunner.cpp \
+    $$PWD/valgrindrunner.cpp \
+    $$PWD/valgrindprocess.cpp
diff --git a/src/libs/valgrind/valgrindprocess.cpp b/src/plugins/valgrind/valgrind/valgrindprocess.cpp
similarity index 97%
rename from src/libs/valgrind/valgrindprocess.cpp
rename to src/plugins/valgrind/valgrind/valgrindprocess.cpp
index c57877cd3dd323d999d23755e14093504f9e914a..b2da5551f2c599d635df1dd95f69870b5ed6edcf 100644
--- a/src/libs/valgrind/valgrindprocess.cpp
+++ b/src/plugins/valgrind/valgrind/valgrindprocess.cpp
@@ -40,6 +40,10 @@
 
 #include <utils/qtcassert.h>
 
+#ifdef Q_OS_WIN
+#    include <QtCore/qt_windows.h>
+#endif
+
 namespace Valgrind {
 
 ValgrindProcess::ValgrindProcess(QObject *parent)
@@ -106,7 +110,11 @@ void LocalValgrindProcess::run(const QString &valgrindExecutable, const QStringL
     m_process.setCommand(valgrindExecutable, arguments);
     m_process.start();
     m_process.waitForStarted();
+#ifdef Q_OS_WIN
+    m_pid = m_process.pid()->dwProcessId;
+#else
     m_pid = m_process.pid();
+#endif
 }
 
 QString LocalValgrindProcess::errorString() const
@@ -119,7 +127,7 @@ QProcess::ProcessError LocalValgrindProcess::error() const
     return m_process.error();
 }
 
-Q_PID LocalValgrindProcess::pid() const
+qint64 LocalValgrindProcess::pid() const
 {
     return m_pid;
 }
@@ -178,7 +186,8 @@ void RemoteValgrindProcess::run(const QString &valgrindExecutable, const QString
                 this, SLOT(connected()));
         connect(m_connection.data(), SIGNAL(error(Utils::SshError)),
                 this, SLOT(error(Utils::SshError)));
-        m_connection->connectToHost();
+        if (m_connection->state() == Utils::SshConnection::Unconnected)
+            m_connection->connectToHost();
     } else {
         connected();
     }
@@ -353,7 +362,7 @@ QString RemoteValgrindProcess::workingDirectory() const
     return m_workingDir;
 }
 
-Q_PID RemoteValgrindProcess::pid() const
+qint64 RemoteValgrindProcess::pid() const
 {
     return m_pid;
 }
diff --git a/src/libs/valgrind/valgrindprocess.h b/src/plugins/valgrind/valgrind/valgrindprocess.h
similarity index 93%
rename from src/libs/valgrind/valgrindprocess.h
rename to src/plugins/valgrind/valgrind/valgrindprocess.h
index 903f931ecd737e88214b7fc2ff93c2d69d4d05f0..f4230bcd5857fc3382a62cc7d0f33e68bc9705f5 100644
--- a/src/libs/valgrind/valgrindprocess.h
+++ b/src/plugins/valgrind/valgrind/valgrindprocess.h
@@ -35,8 +35,6 @@
 #ifndef VALGRIND_RUNNER_P_H
 #define VALGRIND_RUNNER_P_H
 
-#include "valgrind_global.h"
-
 #include <utils/qtcprocess.h>
 #include <utils/ssh/sshremoteprocess.h>
 #include <utils/ssh/sshconnection.h>
@@ -47,7 +45,7 @@ namespace Valgrind {
 /**
  * Abstract process that can be subclassed to supply local and remote valgrind runs
  */
-class VALGRINDSHARED_EXPORT ValgrindProcess : public QObject
+class ValgrindProcess : public QObject
 {
     Q_OBJECT
 
@@ -68,7 +66,7 @@ public:
     virtual QString workingDirectory() const = 0;
     virtual void setEnvironment(const Utils::Environment &environment) = 0;
 
-    virtual Q_PID pid() const = 0;
+    virtual qint64 pid() const = 0;
 
 signals:
     void started();
@@ -80,7 +78,7 @@ signals:
 /**
  * Run valgrind on the local machine
  */
-class VALGRINDSHARED_EXPORT LocalValgrindProcess : public ValgrindProcess
+class LocalValgrindProcess : public ValgrindProcess
 {
     Q_OBJECT
 
@@ -101,7 +99,7 @@ public:
     virtual QString workingDirectory() const;
     virtual void setEnvironment(const Utils::Environment &environment);
 
-    virtual Q_PID pid() const;
+    virtual qint64 pid() const;
 
 private slots:
     void readyReadStandardError();
@@ -109,13 +107,13 @@ private slots:
 
 private:
     Utils::QtcProcess m_process;
-    Q_PID m_pid;
+    qint64 m_pid;
 };
 
 /**
  * Run valgrind on a remote machine via SSH
  */
-class VALGRINDSHARED_EXPORT RemoteValgrindProcess : public ValgrindProcess
+class RemoteValgrindProcess : public ValgrindProcess
 {
     Q_OBJECT
 
@@ -139,7 +137,7 @@ public:
     virtual QString workingDirectory() const;
     virtual void setEnvironment(const Utils::Environment &environment);
 
-    virtual Q_PID pid() const;
+    virtual qint64 pid() const;
 
     Utils::SshConnection::Ptr connection() const;
 
@@ -163,7 +161,7 @@ private:
     QString m_debuggeeArgs;
     QString m_errorString;
     QProcess::ProcessError m_error;
-    Q_PID m_pid;
+    qint64 m_pid;
     Utils::SshRemoteProcess::Ptr m_findPID;
 };
 
diff --git a/src/libs/valgrind/valgrindrunner.cpp b/src/plugins/valgrind/valgrind/valgrindrunner.cpp
similarity index 100%
rename from src/libs/valgrind/valgrindrunner.cpp
rename to src/plugins/valgrind/valgrind/valgrindrunner.cpp
diff --git a/src/libs/valgrind/valgrindrunner.h b/src/plugins/valgrind/valgrind/valgrindrunner.h
similarity index 97%
rename from src/libs/valgrind/valgrindrunner.h
rename to src/plugins/valgrind/valgrind/valgrindrunner.h
index 09563533ca7c1b34dc4f083ec6a2e90bee9a04b4..3b866dfc54494b2b3c1f37596109c552e3954958 100644
--- a/src/libs/valgrind/valgrindrunner.h
+++ b/src/plugins/valgrind/valgrind/valgrindrunner.h
@@ -38,8 +38,6 @@
 #include <QtCore/QProcess>
 #include <utils/outputformat.h>
 
-#include "valgrind_global.h"
-
 namespace Utils {
 class Environment;
 class SshConnectionParameters;
@@ -49,7 +47,7 @@ namespace Valgrind {
 
 class ValgrindProcess;
 
-class VALGRINDSHARED_EXPORT ValgrindRunner : public QObject
+class ValgrindRunner : public QObject
 {
     Q_OBJECT
 
diff --git a/src/libs/valgrind/xmlprotocol/announcethread.cpp b/src/plugins/valgrind/valgrind/xmlprotocol/announcethread.cpp
similarity index 100%
rename from src/libs/valgrind/xmlprotocol/announcethread.cpp
rename to src/plugins/valgrind/valgrind/xmlprotocol/announcethread.cpp
diff --git a/src/libs/valgrind/xmlprotocol/announcethread.h b/src/plugins/valgrind/valgrind/xmlprotocol/announcethread.h
similarity index 96%
rename from src/libs/valgrind/xmlprotocol/announcethread.h
rename to src/plugins/valgrind/valgrind/xmlprotocol/announcethread.h
index c46c90ebc556f88dc519e0cc4a69726b26e708ff..529e798d87baef466454eb4f2b86b0270aebde6b 100644
--- a/src/libs/valgrind/xmlprotocol/announcethread.h
+++ b/src/plugins/valgrind/valgrind/xmlprotocol/announcethread.h
@@ -35,8 +35,6 @@
 #ifndef LIBVALGRIND_PROTOCOL_ANNOUNCETHREAD_H
 #define LIBVALGRIND_PROTOCOL_ANNOUNCETHREAD_H
 
-#include "../valgrind_global.h"
-
 #include <QtCore/QSharedDataPointer>
 
 QT_BEGIN_NAMESPACE
@@ -48,7 +46,7 @@ namespace XmlProtocol {
 
 class Frame;
 
-class VALGRINDSHARED_EXPORT AnnounceThread {
+class AnnounceThread {
 public:
     AnnounceThread();
     AnnounceThread(const AnnounceThread &other);
diff --git a/src/libs/valgrind/xmlprotocol/error.cpp b/src/plugins/valgrind/valgrind/xmlprotocol/error.cpp
similarity index 100%
rename from src/libs/valgrind/xmlprotocol/error.cpp
rename to src/plugins/valgrind/valgrind/xmlprotocol/error.cpp
diff --git a/src/libs/valgrind/xmlprotocol/error.h b/src/plugins/valgrind/valgrind/xmlprotocol/error.h
similarity index 98%
rename from src/libs/valgrind/xmlprotocol/error.h
rename to src/plugins/valgrind/valgrind/xmlprotocol/error.h
index 4275924d4e1ad24cdaa3e0e3edde53458fff71d8..910098809de745f21be360b9cb0b7d5ab0b083c6 100644
--- a/src/libs/valgrind/xmlprotocol/error.h
+++ b/src/plugins/valgrind/valgrind/xmlprotocol/error.h
@@ -35,8 +35,6 @@
 #ifndef LIBVALGRIND_PROTOCOL_ERROR_H
 #define LIBVALGRIND_PROTOCOL_ERROR_H
 
-#include "../valgrind_global.h"
-
 #include <QtCore/QMetaType>
 #include <QtCore/QSharedDataPointer>
 
@@ -94,7 +92,7 @@ enum HelgrindErrorKind
     Misc
 };
 
-class VALGRINDSHARED_EXPORT Error
+class Error
 {
 public:
     Error();
diff --git a/src/libs/valgrind/xmlprotocol/errorlistmodel.cpp b/src/plugins/valgrind/valgrind/xmlprotocol/errorlistmodel.cpp
similarity index 100%
rename from src/libs/valgrind/xmlprotocol/errorlistmodel.cpp
rename to src/plugins/valgrind/valgrind/xmlprotocol/errorlistmodel.cpp
diff --git a/src/libs/valgrind/xmlprotocol/errorlistmodel.h b/src/plugins/valgrind/valgrind/xmlprotocol/errorlistmodel.h
similarity index 96%
rename from src/libs/valgrind/xmlprotocol/errorlistmodel.h
rename to src/plugins/valgrind/valgrind/xmlprotocol/errorlistmodel.h
index e524ab4ce9d70c90a54dd3bcb33a08ddacee10ad..fe758ed01a77a4adf5b1ad084ed1ed87d219b0c4 100644
--- a/src/libs/valgrind/xmlprotocol/errorlistmodel.h
+++ b/src/plugins/valgrind/valgrind/xmlprotocol/errorlistmodel.h
@@ -35,8 +35,6 @@
 #ifndef LIBVALGRIND_PROTOCOL_ERRORLISTMODEL_H
 #define LIBVALGRIND_PROTOCOL_ERRORLISTMODEL_H
 
-#include "../valgrind_global.h"
-
 #include <QtCore/QAbstractItemModel>
 #include <QtCore/QSharedPointer>
 
@@ -46,7 +44,7 @@ namespace XmlProtocol {
 class Error;
 class Frame;
 
-class VALGRINDSHARED_EXPORT ErrorListModel : public QAbstractItemModel
+class ErrorListModel : public QAbstractItemModel
 {
     Q_OBJECT
 public:
diff --git a/src/libs/valgrind/xmlprotocol/frame.cpp b/src/plugins/valgrind/valgrind/xmlprotocol/frame.cpp
similarity index 100%
rename from src/libs/valgrind/xmlprotocol/frame.cpp
rename to src/plugins/valgrind/valgrind/xmlprotocol/frame.cpp
diff --git a/src/libs/valgrind/xmlprotocol/frame.h b/src/plugins/valgrind/valgrind/xmlprotocol/frame.h
similarity index 97%
rename from src/libs/valgrind/xmlprotocol/frame.h
rename to src/plugins/valgrind/valgrind/xmlprotocol/frame.h
index 7bd3ebcedf9d79b163015da6b715f0ccb0832ae7..e7b5cd649ae8c6a5e0a0e105dd771a9ff3090748 100644
--- a/src/libs/valgrind/xmlprotocol/frame.h
+++ b/src/plugins/valgrind/valgrind/xmlprotocol/frame.h
@@ -35,14 +35,12 @@
 #ifndef LIBVALGRIND_PROTOCOL_FRAME_H
 #define LIBVALGRIND_PROTOCOL_FRAME_H
 
-#include "../valgrind_global.h"
-
 #include <QtCore/QSharedDataPointer>
 
 namespace Valgrind {
 namespace XmlProtocol {
 
-class VALGRINDSHARED_EXPORT Frame
+class Frame
 {
 public:
     Frame();
diff --git a/src/libs/valgrind/xmlprotocol/modelhelpers.cpp b/src/plugins/valgrind/valgrind/xmlprotocol/modelhelpers.cpp
similarity index 100%
rename from src/libs/valgrind/xmlprotocol/modelhelpers.cpp
rename to src/plugins/valgrind/valgrind/xmlprotocol/modelhelpers.cpp
diff --git a/src/libs/valgrind/xmlprotocol/modelhelpers.h b/src/plugins/valgrind/valgrind/xmlprotocol/modelhelpers.h
similarity index 94%
rename from src/libs/valgrind/xmlprotocol/modelhelpers.h
rename to src/plugins/valgrind/valgrind/xmlprotocol/modelhelpers.h
index 2792771841ca4602d95406d7e5eb4289b4bcf1ef..6c2a57f155cf2817235bfc9f4c4d95d1e4f45065 100644
--- a/src/libs/valgrind/xmlprotocol/modelhelpers.h
+++ b/src/plugins/valgrind/valgrind/xmlprotocol/modelhelpers.h
@@ -35,7 +35,7 @@
 #ifndef LIBVALGRIND_PROTOCOL_MODELHELPERS_H
 #define LIBVALGRIND_PROTOCOL_MODELHELPERS_H
 
-#include "../valgrind_global.h"
+#include <QtCore/QtGlobal>
 
 QT_BEGIN_NAMESPACE
 class QString;
@@ -46,7 +46,7 @@ namespace XmlProtocol {
 
 class Frame;
 
-VALGRINDSHARED_EXPORT QString toolTipForFrame(const Frame &frame);
+QString toolTipForFrame(const Frame &frame);
 
 } // namespace XmlProtocol
 } // namespace Valgrind
diff --git a/src/libs/valgrind/xmlprotocol/parser.cpp b/src/plugins/valgrind/valgrind/xmlprotocol/parser.cpp
similarity index 100%
rename from src/libs/valgrind/xmlprotocol/parser.cpp
rename to src/plugins/valgrind/valgrind/xmlprotocol/parser.cpp
diff --git a/src/libs/valgrind/xmlprotocol/parser.h b/src/plugins/valgrind/valgrind/xmlprotocol/parser.h
similarity index 96%
rename from src/libs/valgrind/xmlprotocol/parser.h
rename to src/plugins/valgrind/valgrind/xmlprotocol/parser.h
index ca68a0d69fc9e5b81a2ef71d6625907fb90b82c2..0fed01dad9bd86d76fd8e96806e25df5b3276dde 100644
--- a/src/libs/valgrind/xmlprotocol/parser.h
+++ b/src/plugins/valgrind/valgrind/xmlprotocol/parser.h
@@ -35,8 +35,6 @@
 #ifndef LIBVALGRIND_PROTOCOL_PARSER_H
 #define LIBVALGRIND_PROTOCOL_PARSER_H
 
-#include "../valgrind_global.h"
-
 #include <QtCore/QObject>
 
 QT_BEGIN_NAMESPACE
@@ -53,7 +51,7 @@ class Status;
 /**
  * Parser for the Valgrind Output XML Protocol 4
  */
-class VALGRINDSHARED_EXPORT Parser : public QObject
+class Parser : public QObject
 {
     Q_OBJECT
 
diff --git a/src/libs/valgrind/xmlprotocol/stack.cpp b/src/plugins/valgrind/valgrind/xmlprotocol/stack.cpp
similarity index 100%
rename from src/libs/valgrind/xmlprotocol/stack.cpp
rename to src/plugins/valgrind/valgrind/xmlprotocol/stack.cpp
diff --git a/src/libs/valgrind/xmlprotocol/stack.h b/src/plugins/valgrind/valgrind/xmlprotocol/stack.h
similarity index 97%
rename from src/libs/valgrind/xmlprotocol/stack.h
rename to src/plugins/valgrind/valgrind/xmlprotocol/stack.h
index b26d733d7977f698304a1986d8c5d09bdd88c955..72330007f1bab1c59e0d4b69f2390187423e9d57 100644
--- a/src/libs/valgrind/xmlprotocol/stack.h
+++ b/src/plugins/valgrind/valgrind/xmlprotocol/stack.h
@@ -35,8 +35,6 @@
 #ifndef LIBVALGRIND_PROTOCOL_STACK_H
 #define LIBVALGRIND_PROTOCOL_STACK_H
 
-#include "../valgrind_global.h"
-
 #include <QtCore/QSharedDataPointer>
 
 QT_BEGIN_NAMESPACE
@@ -48,7 +46,7 @@ namespace XmlProtocol {
 
 class Frame;
 
-class VALGRINDSHARED_EXPORT Stack
+class Stack
 {
 public:
     Stack();
diff --git a/src/libs/valgrind/xmlprotocol/stackmodel.cpp b/src/plugins/valgrind/valgrind/xmlprotocol/stackmodel.cpp
similarity index 100%
rename from src/libs/valgrind/xmlprotocol/stackmodel.cpp
rename to src/plugins/valgrind/valgrind/xmlprotocol/stackmodel.cpp
diff --git a/src/libs/valgrind/xmlprotocol/stackmodel.h b/src/plugins/valgrind/valgrind/xmlprotocol/stackmodel.h
similarity index 96%
rename from src/libs/valgrind/xmlprotocol/stackmodel.h
rename to src/plugins/valgrind/valgrind/xmlprotocol/stackmodel.h
index e9e6662e3b8e511f74d576adc043d8fafe632ed8..df6574fcd0cfd0410d4086e4079053a6f944d726 100644
--- a/src/libs/valgrind/xmlprotocol/stackmodel.h
+++ b/src/plugins/valgrind/valgrind/xmlprotocol/stackmodel.h
@@ -35,8 +35,6 @@
 #ifndef LIBVALGRIND_PROTOCOL_STACKMODEL_H
 #define LIBVALGRIND_PROTOCOL_STACKMODEL_H
 
-#include "../valgrind_global.h"
-
 #include <QtCore/QAbstractItemModel>
 
 namespace Valgrind {
@@ -44,7 +42,7 @@ namespace XmlProtocol {
 
 class Error;
 
-class VALGRINDSHARED_EXPORT StackModel : public QAbstractItemModel
+class StackModel : public QAbstractItemModel
 {
     Q_OBJECT
 public:
diff --git a/src/libs/valgrind/xmlprotocol/status.cpp b/src/plugins/valgrind/valgrind/xmlprotocol/status.cpp
similarity index 100%
rename from src/libs/valgrind/xmlprotocol/status.cpp
rename to src/plugins/valgrind/valgrind/xmlprotocol/status.cpp
diff --git a/src/libs/valgrind/xmlprotocol/status.h b/src/plugins/valgrind/valgrind/xmlprotocol/status.h
similarity index 96%
rename from src/libs/valgrind/xmlprotocol/status.h
rename to src/plugins/valgrind/valgrind/xmlprotocol/status.h
index bc3def726472c297a6a635a08a6d03b7e3a4688e..1c1089d0e91ee0107c8a806bba303ec5f57f262b 100644
--- a/src/libs/valgrind/xmlprotocol/status.h
+++ b/src/plugins/valgrind/valgrind/xmlprotocol/status.h
@@ -35,15 +35,13 @@
 #ifndef LIBVALGRIND_PROTOCOL_STATUS_H
 #define LIBVALGRIND_PROTOCOL_STATUS_H
 
-#include "../valgrind_global.h"
-
 #include <QtCore/QMetaType>
 #include <QtCore/QSharedDataPointer>
 
 namespace Valgrind {
 namespace XmlProtocol {
 
-class VALGRINDSHARED_EXPORT Status
+class Status
 {
 public:
     enum State {
diff --git a/src/libs/valgrind/xmlprotocol/suppression.cpp b/src/plugins/valgrind/valgrind/xmlprotocol/suppression.cpp
similarity index 100%
rename from src/libs/valgrind/xmlprotocol/suppression.cpp
rename to src/plugins/valgrind/valgrind/xmlprotocol/suppression.cpp
diff --git a/src/libs/valgrind/xmlprotocol/suppression.h b/src/plugins/valgrind/valgrind/xmlprotocol/suppression.h
similarity index 96%
rename from src/libs/valgrind/xmlprotocol/suppression.h
rename to src/plugins/valgrind/valgrind/xmlprotocol/suppression.h
index eb7456a6b99eff5537f900006e706fda8b4ec830..82d781ff765f917ae675f25ef2d851b72c07a5ee 100644
--- a/src/libs/valgrind/xmlprotocol/suppression.h
+++ b/src/plugins/valgrind/valgrind/xmlprotocol/suppression.h
@@ -35,8 +35,6 @@
 #ifndef LIBVALGRIND_PROTOCOL_SUPPRESSION_H
 #define LIBVALGRIND_PROTOCOL_SUPPRESSION_H
 
-#include "../valgrind_global.h"
-
 #include <QtCore/QSharedDataPointer>
 
 QT_BEGIN_NAMESPACE
@@ -47,7 +45,7 @@ QT_END_NAMESPACE
 namespace Valgrind {
 namespace XmlProtocol {
 
-class VALGRINDSHARED_EXPORT SuppressionFrame
+class SuppressionFrame
 {
 public:
     SuppressionFrame();
@@ -76,7 +74,7 @@ private:
 
 typedef QVector<SuppressionFrame> SuppressionFrames;
 
-class VALGRINDSHARED_EXPORT Suppression
+class Suppression
 {
 public:
     Suppression();
diff --git a/src/libs/valgrind/xmlprotocol/threadedparser.cpp b/src/plugins/valgrind/valgrind/xmlprotocol/threadedparser.cpp
similarity index 100%
rename from src/libs/valgrind/xmlprotocol/threadedparser.cpp
rename to src/plugins/valgrind/valgrind/xmlprotocol/threadedparser.cpp
diff --git a/src/libs/valgrind/xmlprotocol/threadedparser.h b/src/plugins/valgrind/valgrind/xmlprotocol/threadedparser.h
similarity index 96%
rename from src/libs/valgrind/xmlprotocol/threadedparser.h
rename to src/plugins/valgrind/valgrind/xmlprotocol/threadedparser.h
index 0cb274fa8dd6b6c3fb292b1e7ba592bcefd80c1a..49d6d115090d7bf62c9083c7ce3962f5d41ebfe2 100644
--- a/src/libs/valgrind/xmlprotocol/threadedparser.h
+++ b/src/plugins/valgrind/valgrind/xmlprotocol/threadedparser.h
@@ -35,8 +35,6 @@
 #ifndef LIBVALGRIND_PROTOCOL_THREADEDPARSER_H
 #define LIBVALGRIND_PROTOCOL_THREADEDPARSER_H
 
-#include "../valgrind_global.h"
-
 #include <QtCore/QObject>
 
 QT_BEGIN_NAMESPACE
@@ -52,7 +50,7 @@ class Status;
 /**
  * ThreadedParser for the Valgrind Output XmlProtocol 4
  */
-class VALGRINDSHARED_EXPORT ThreadedParser : public QObject
+class ThreadedParser : public QObject
 {
     Q_OBJECT
 
diff --git a/src/plugins/valgrind/valgrind_dependencies.pri b/src/plugins/valgrind/valgrind_dependencies.pri
index 04786e9e89c0bdaaa094a6e373a7c44f157792b0..b6b5ec7ed6ed67cdb62c0fb2bf51c9469efc1d52 100644
--- a/src/plugins/valgrind/valgrind_dependencies.pri
+++ b/src/plugins/valgrind/valgrind_dependencies.pri
@@ -2,3 +2,4 @@ include(../../libs/cplusplus/cplusplus.pri)
 include(../../plugins/analyzerbase/analyzerbase.pri)
 include(../../plugins/coreplugin/coreplugin.pri)
 include(../../plugins/texteditor/texteditor.pri)
+include(../../libs/utils/utils.pri)
diff --git a/src/plugins/valgrind/valgrindengine.cpp b/src/plugins/valgrind/valgrindengine.cpp
index e4cddcfd89561678cd03a23a59b1ff41f4f2eca3..3b7279d6fc2ab08f13b5808271635b11c0cf6e01 100644
--- a/src/plugins/valgrind/valgrindengine.cpp
+++ b/src/plugins/valgrind/valgrindengine.cpp
@@ -52,9 +52,9 @@ using namespace Analyzer;
 using namespace Valgrind::Internal;
 using namespace Utils;
 
-ValgrindEngine::ValgrindEngine(const AnalyzerStartParameters &sp,
-                               ProjectExplorer::RunConfiguration *runConfiguration)
-    : IAnalyzerEngine(sp, runConfiguration),
+ValgrindEngine::ValgrindEngine(IAnalyzerTool *tool, const AnalyzerStartParameters &sp,
+        ProjectExplorer::RunConfiguration *runConfiguration)
+    : IAnalyzerEngine(tool, sp, runConfiguration),
       m_settings(0),
       m_progress(new QFutureInterface<void>()),
       m_progressWatcher(new QFutureWatcher<void>()),
@@ -130,7 +130,7 @@ QString ValgrindEngine::executable() const
 
 void ValgrindEngine::handleProgressCanceled()
 {
-    AnalyzerManager::instance()->stopTool();
+    AnalyzerManager::stopTool();
 }
 
 void ValgrindEngine::handleProgressFinished()
diff --git a/src/plugins/valgrind/valgrindengine.h b/src/plugins/valgrind/valgrindengine.h
index 2a790a59ed7660ea22f7bcce01d49a10d846cca2..72901fe6489f9de3c579a9ac02b0e1e9a0b6ccad 100644
--- a/src/plugins/valgrind/valgrindengine.h
+++ b/src/plugins/valgrind/valgrindengine.h
@@ -35,9 +35,6 @@
 #ifndef VALGRINDENGINE_H
 #define VALGRINDENGINE_H
 
-#include "valgrind_global.h"
-
-#include <analyzerbase/ianalyzerengine.h>
 #include <analyzerbase/ianalyzerengine.h>
 
 #include <utils/environment.h>
@@ -56,13 +53,15 @@ class AnalyzerSettings;
 namespace Valgrind {
 namespace Internal {
 
-class VALGRINDTOOLBASE_EXPORT ValgrindEngine : public Analyzer::IAnalyzerEngine
+class ValgrindEngine : public Analyzer::IAnalyzerEngine
 {
     Q_OBJECT
+
 public:
-    explicit ValgrindEngine(const Analyzer::AnalyzerStartParameters &sp,
-                            ProjectExplorer::RunConfiguration *runConfiguration);
-    virtual ~ValgrindEngine();
+    ValgrindEngine(Analyzer::IAnalyzerTool *tool,
+        const Analyzer::AnalyzerStartParameters &sp,
+        ProjectExplorer::RunConfiguration *runConfiguration);
+    ~ValgrindEngine();
 
     void start();
     void stop();
diff --git a/src/plugins/valgrind/valgrindplugin.cpp b/src/plugins/valgrind/valgrindplugin.cpp
index e9f13d02654ddb09e79b338c32964efb5f2b946e..86ac42e97fb13fe1ce5cda6788ec2874a69f8409 100644
--- a/src/plugins/valgrind/valgrindplugin.cpp
+++ b/src/plugins/valgrind/valgrindplugin.cpp
@@ -33,21 +33,171 @@
 **************************************************************************/
 
 #include "valgrindplugin.h"
-#include "valgrindsettings.h"
-#include "callgrindtool.h"
+
 #include "callgrindsettings.h"
-#include "memchecktool.h"
+#include "callgrindtool.h"
 #include "memchecksettings.h"
+#include "memchecktool.h"
+#include "valgrindsettings.h"
 
-#include <analyzerbase/analyzersettings.h>
+#include <analyzerbase/analyzerconstants.h>
 #include <analyzerbase/analyzermanager.h>
+#include <analyzerbase/analyzerrunconfigwidget.h>
+#include <analyzerbase/analyzerruncontrol.h>
+#include <analyzerbase/analyzersettings.h>
+#include <analyzerbase/analyzerstartparameters.h>
+#include <analyzerbase/startremotedialog.h>
+
+#include <projectexplorer/applicationrunconfiguration.h>
+#include <projectexplorer/projectexplorer.h>
+
+#include <remotelinux/linuxdeviceconfiguration.h>
+#include <remotelinux/remotelinuxrunconfiguration.h>
 
+#include <utils/qtcassert.h>
+
+#include <QtCore/QDebug>
 #include <QtCore/QStringList>
 #include <QtCore/QtPlugin>
+#include <QtGui/QAction>
 
 using namespace Analyzer;
 using namespace Valgrind::Internal;
+using namespace ProjectExplorer;
+
+/////////////////////////////////////////////////////////////////////////////////
+//
+// ValgrindRunControlFactory
+//
+/////////////////////////////////////////////////////////////////////////////////
+
+namespace Valgrind {
+namespace Internal {
 
+class ValgrindRunControlFactory : public ProjectExplorer::IRunControlFactory
+{
+    Q_OBJECT
+
+public:
+    ValgrindRunControlFactory(QObject *parent = 0);
+
+    // IRunControlFactory
+    bool canRun(RunConfiguration *runConfiguration, const QString &mode) const;
+    RunControl *create(RunConfiguration *runConfiguration, const QString &mode);
+    QString displayName() const;
+
+    IRunConfigurationAspect *createRunConfigurationAspect();
+    RunConfigWidget *createConfigurationWidget(RunConfiguration *runConfiguration);
+};
+
+ValgrindRunControlFactory::ValgrindRunControlFactory(QObject *parent)
+    : IRunControlFactory(parent)
+{
+    setObjectName(QLatin1String("ValgrindRunControlFactory"));
+}
+
+bool ValgrindRunControlFactory::canRun(RunConfiguration *runConfiguration, const QString &mode) const
+{
+    Q_UNUSED(runConfiguration);
+    return mode.startsWith("Callgrind") || mode.startsWith("Memcheck");
+}
+
+RunControl *ValgrindRunControlFactory::create(RunConfiguration *runConfiguration, const QString &mode)
+{
+    QTC_ASSERT(canRun(runConfiguration, mode), return 0);
+
+    AnalyzerStartParameters sp;
+    if (LocalApplicationRunConfiguration *rc1 =
+            qobject_cast<LocalApplicationRunConfiguration *>(runConfiguration)) {
+        sp.startMode = StartLocal;
+        sp.environment = rc1->environment();
+        sp.workingDirectory = rc1->workingDirectory();
+        sp.debuggee = rc1->executable();
+        sp.debuggeeArgs = rc1->commandLineArguments();
+        sp.displayName = rc1->displayName();
+        sp.connParams.host = QLatin1String("localhost");
+        sp.connParams.port = rc1->qmlDebugServerPort();
+    } else if (RemoteLinux::RemoteLinuxRunConfiguration *rc2 =
+               qobject_cast<RemoteLinux::RemoteLinuxRunConfiguration *>(runConfiguration)) {
+        sp.startMode = StartRemote;
+        sp.debuggee = rc2->remoteExecutableFilePath();
+        sp.debuggeeArgs = rc2->arguments();
+        sp.connParams = rc2->deviceConfig()->sshParameters();
+        sp.analyzerCmdPrefix = rc2->commandPrefix();
+        sp.displayName = rc2->displayName();
+    } else {
+        // Might be S60DeviceRunfiguration, or something else ...
+        //sp.startMode = StartRemote;
+        sp.startMode = StartRemote;
+    }
+
+    IAnalyzerTool *tool = AnalyzerManager::toolFromId(mode.toLatin1());
+    AnalyzerRunControl *rc = new AnalyzerRunControl(tool, sp, runConfiguration);
+    QObject::connect(AnalyzerManager::stopAction(), SIGNAL(triggered()), rc, SLOT(stopIt()));
+    return rc;
+}
+
+QString ValgrindRunControlFactory::displayName() const
+{
+    return tr("Analyzer");
+}
+
+IRunConfigurationAspect *ValgrindRunControlFactory::createRunConfigurationAspect()
+{
+    return new AnalyzerProjectSettings;
+}
+
+RunConfigWidget *ValgrindRunControlFactory::createConfigurationWidget(RunConfiguration *runConfiguration)
+{
+    LocalApplicationRunConfiguration *localRc =
+        qobject_cast<LocalApplicationRunConfiguration *>(runConfiguration);
+    if (!localRc)
+        return 0;
+    AnalyzerProjectSettings *settings = runConfiguration->extraAspect<AnalyzerProjectSettings>();
+    if (!settings)
+        return 0;
+
+    AnalyzerRunConfigWidget *ret = new AnalyzerRunConfigWidget;
+    ret->setRunConfiguration(runConfiguration);
+    return ret;
+}
+
+/////////////////////////////////////////////////////////////////////////////////
+//
+// ValgrindPlugin
+//
+/////////////////////////////////////////////////////////////////////////////////
+
+static void startRemoteTool(IAnalyzerTool *tool, StartMode mode)
+{
+    Q_UNUSED(tool);
+    StartRemoteDialog dlg;
+    if (dlg.exec() != QDialog::Accepted)
+        return;
+
+    AnalyzerStartParameters sp;
+    sp.toolId = tool->id();
+    sp.startMode = mode;
+    sp.connParams = dlg.sshParams();
+    sp.debuggee = dlg.executable();
+    sp.debuggeeArgs = dlg.arguments();
+    sp.displayName = dlg.executable();
+    sp.workingDirectory = dlg.workingDirectory();
+
+    AnalyzerRunControl *rc = new AnalyzerRunControl(tool, sp, 0);
+    //m_currentRunControl = rc;
+    QObject::connect(AnalyzerManager::stopAction(), SIGNAL(triggered()), rc, SLOT(stopIt()));
+
+    ProjectExplorerPlugin::instance()->startRunControl(rc, tool->id());
+}
+
+void ValgrindPlugin::startValgrindTool(IAnalyzerTool *tool, StartMode mode)
+{
+    if (mode == StartLocal)
+        AnalyzerManager::startLocalTool(tool, mode);
+    if (mode == StartRemote)
+        startRemoteTool(tool, mode);
+}
 
 static AbstractAnalyzerSubConfig *valgrindConfigFactory()
 {
@@ -80,14 +230,25 @@ bool ValgrindPlugin::initialize(const QStringList &, QString *)
     AnalyzerGlobalSettings::instance()->registerSubConfigs(&globalCallgrindFactory, &projectCallgrindFactory);
     AnalyzerGlobalSettings::instance()->registerSubConfigs(&globalMemcheckFactory, &projectMemcheckFactory);
 
-    AnalyzerManager::instance()->addTool(new MemcheckTool(this));
-    AnalyzerManager::instance()->addTool(new CallgrindTool(this));
+    StartModes modes;
+#ifndef Q_OS_WIN
+    modes.append(StartMode(StartLocal));
+#endif
+    modes.append(StartMode(StartRemote));
+
+    AnalyzerManager::addTool(new MemcheckTool(this), modes);
+    AnalyzerManager::addTool(new CallgrindTool(this), modes);
+
+    ValgrindRunControlFactory *factory = new ValgrindRunControlFactory();
+    addAutoReleasedObject(factory);
+
     return true;
 }
 
+} // namespace Internal
+} // namespace Valgrind
 
-void ValgrindPlugin::extensionsInitialized()
-{
-}
 
 Q_EXPORT_PLUGIN(Valgrind::Internal::ValgrindPlugin)
+
+#include "valgrindplugin.moc"
diff --git a/src/plugins/valgrind/valgrindplugin.h b/src/plugins/valgrind/valgrindplugin.h
index 6dee7dd5442b4c522e46cf51509bb97d02cd986a..9598572bd3295e60bc0308123b56103eada9e18c 100644
--- a/src/plugins/valgrind/valgrindplugin.h
+++ b/src/plugins/valgrind/valgrindplugin.h
@@ -36,6 +36,7 @@
 #define VALGRINDTOOLBASEPLUGIN_H
 
 #include <extensionsystem/iplugin.h>
+#include <analyzerbase/ianalyzertool.h>
 
 namespace Valgrind {
 namespace Internal {
@@ -48,7 +49,9 @@ public:
     ValgrindPlugin() {}
 
     virtual bool initialize(const QStringList &arguments, QString *errorString);
-    virtual void extensionsInitialized();
+    virtual void extensionsInitialized() {}
+
+    static void startValgrindTool(Analyzer::IAnalyzerTool *tool, Analyzer::StartMode mode);
 };
 
 } // namespace Internal
diff --git a/src/plugins/valgrind/valgrindsettings.h b/src/plugins/valgrind/valgrindsettings.h
index c01fc74595dbac65c262ab1f3d6295c62abf458c..0e4b5dfe38bab6bb398f558b8a202f9fd1a7a785 100644
--- a/src/plugins/valgrind/valgrindsettings.h
+++ b/src/plugins/valgrind/valgrindsettings.h
@@ -35,8 +35,6 @@
 #ifndef ANALYZER_INTERNAL_VALGRINDSETTINGS_H
 #define ANALYZER_INTERNAL_VALGRINDSETTINGS_H
 
-#include "valgrind_global.h"
-
 #include <analyzerbase/analyzersettings.h>
 
 #include <QtCore/QObject>
@@ -48,7 +46,7 @@ namespace Internal {
 /**
  * Generic Valgrind settings shared by all tools.
  */
-class VALGRINDTOOLBASE_EXPORT ValgrindSettings : public Analyzer::AbstractAnalyzerSubConfig
+class ValgrindSettings : public Analyzer::AbstractAnalyzerSubConfig
 {
     Q_OBJECT
 public:
diff --git a/src/plugins/welcome/images/center_frame_header.png b/src/plugins/welcome/images/center_frame_header.png
index 4d840b48f96dabfda3c7e03567c41e2305d94c41..ce88366718d2aee171f88b59ea45f947e482a677 100644
Binary files a/src/plugins/welcome/images/center_frame_header.png and b/src/plugins/welcome/images/center_frame_header.png differ
diff --git a/src/plugins/welcome/welcomeplugin.cpp b/src/plugins/welcome/welcomeplugin.cpp
index 2c6e2b6e6e8cdde7f5efb1cd98b7f75af64b1a34..0196bda8080adc03549295a5ae98013f2172c589 100644
--- a/src/plugins/welcome/welcomeplugin.cpp
+++ b/src/plugins/welcome/welcomeplugin.cpp
@@ -97,6 +97,8 @@ public:
     void initPlugins();
     int activePlugin() const { return m_activePlugin; }
 
+    Q_SCRIPTABLE QString platform() const;
+
 public slots:
     void sendFeedback();
     void newProject();
@@ -182,6 +184,7 @@ void WelcomeMode::initPlugins()
 
     QDeclarativeEngine *engine = m_welcomePage->engine();
     engine->setNetworkAccessManagerFactory(new NetworkAccessManagerFactory);
+    engine->addImportPath(Core::ICore::instance()->resourcePath() + "/welcomescreen");
     foreach (Utils::IWelcomePage *plugin, plugins) {
         plugin->facilitateQml(engine);
         m_pluginList.append(plugin);
@@ -194,6 +197,21 @@ void WelcomeMode::initPlugins()
             QUrl::fromLocalFile(Core::ICore::instance()->resourcePath() + "/welcomescreen/welcomescreen.qml"));
 }
 
+QString WelcomeMode::platform() const
+{
+#if defined(Q_OS_WIN)
+    return QLatin1String("windows");
+#elif defined(Q_OS_MAC)
+    return QLatin1String("mac");
+#elif defined(Q_OS_LINUX)
+    return QLatin1String("linux");
+#elif defined(Q_OS_UNIX)
+    return QLatin1String("unix");
+#else
+    return QLatin1String("other")
+#endif
+}
+
 void WelcomeMode::welcomePluginAdded(QObject *obj)
 {
     if (Utils::IWelcomePage *plugin = qobject_cast<Utils::IWelcomePage*>(obj)) {
diff --git a/src/shared/qrceditor/test/main.cpp b/src/shared/qrceditor/test/main.cpp
index 7d1ce834b8dc8df83ac58b019f18162449629766..964abe9ba840c5fe1293175d9364c2c7c7b91750 100644
--- a/src/shared/qrceditor/test/main.cpp
+++ b/src/shared/qrceditor/test/main.cpp
@@ -26,7 +26,7 @@
 ** 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 qt-info@nokia.com.
+** Nokia at info@qt.nokia.com.
 **
 **************************************************************************/
 
diff --git a/src/shared/qrceditor/test/mainwindow.cpp b/src/shared/qrceditor/test/mainwindow.cpp
index 65936871369bb6462ef6735339c219ab12728b5a..0b52d2ae4b90732ac652da8750baa7c4e92cb398 100644
--- a/src/shared/qrceditor/test/mainwindow.cpp
+++ b/src/shared/qrceditor/test/mainwindow.cpp
@@ -26,7 +26,7 @@
 ** 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 qt-info@nokia.com.
+** Nokia at info@qt.nokia.com.
 **
 **************************************************************************/
 
diff --git a/src/shared/qrceditor/test/mainwindow.h b/src/shared/qrceditor/test/mainwindow.h
index 7b9d5a88df9ad8aa3c127b97dd0f9798e5f42f96..f5555ca99a402944f0ab1d0970a349ed84efcfe3 100644
--- a/src/shared/qrceditor/test/mainwindow.h
+++ b/src/shared/qrceditor/test/mainwindow.h
@@ -26,7 +26,7 @@
 ** 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 qt-info@nokia.com.
+** Nokia at info@qt.nokia.com.
 **
 **************************************************************************/
 
diff --git a/src/shared/qtcreator_gui_pch.h b/src/shared/qtcreator_gui_pch.h
index 07274b2407c4cbf08cf0b1ba6b67964eba97a028..9402640d261bbddb088ccce9f1f6a63c13c103db 100644
--- a/src/shared/qtcreator_gui_pch.h
+++ b/src/shared/qtcreator_gui_pch.h
@@ -26,7 +26,7 @@
 ** 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 qt-info@nokia.com.
+** Nokia at info@qt.nokia.com.
 **
 **************************************************************************/
 
diff --git a/src/shared/qtcreator_pch.h b/src/shared/qtcreator_pch.h
index 56e395ebcb2b5949809601f411fefd5f465c2d2b..6ce7c9c5bec9b08b996d89de9909afd17b4f78eb 100644
--- a/src/shared/qtcreator_pch.h
+++ b/src/shared/qtcreator_pch.h
@@ -26,7 +26,7 @@
 ** 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 qt-info@nokia.com.
+** Nokia at info@qt.nokia.com.
 **
 **************************************************************************/
 
diff --git a/src/shared/qtsingleapplication/qtsinglecoreapplication.cpp b/src/shared/qtsingleapplication/qtsinglecoreapplication.cpp
index f988a62f8affa9b7dced4c795f4ac5e6376a16b2..60dbb66aed89a1db533b6e128e439b62a330aeb3 100644
--- a/src/shared/qtsingleapplication/qtsinglecoreapplication.cpp
+++ b/src/shared/qtsingleapplication/qtsinglecoreapplication.cpp
@@ -26,7 +26,7 @@
 ** 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 qt-info@nokia.com.
+** Nokia at info@qt.nokia.com.
 **
 **************************************************************************/
 
diff --git a/src/shared/qtsingleapplication/qtsinglecoreapplication.h b/src/shared/qtsingleapplication/qtsinglecoreapplication.h
index b51998bb126bde7a0b5c57848812da427d6817f5..d8817749c7ca6069bf16748c2ab218039cab353c 100644
--- a/src/shared/qtsingleapplication/qtsinglecoreapplication.h
+++ b/src/shared/qtsingleapplication/qtsinglecoreapplication.h
@@ -26,7 +26,7 @@
 ** 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 qt-info@nokia.com.
+** Nokia at info@qt.nokia.com.
 **
 **************************************************************************/
 
diff --git a/src/shared/scriptwrapper/interface_wrap_helpers.h b/src/shared/scriptwrapper/interface_wrap_helpers.h
index cee2a4e9b10f56353ead77e8a58e08e827857c12..2ef7e0b66968ed77f315feded6aec52ee92e4c3c 100644
--- a/src/shared/scriptwrapper/interface_wrap_helpers.h
+++ b/src/shared/scriptwrapper/interface_wrap_helpers.h
@@ -26,7 +26,7 @@
 ** 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 qt-info@nokia.com.
+** Nokia at info@qt.nokia.com.
 **
 **************************************************************************/
 
diff --git a/src/tools/examplesscanner/helpextractor.cpp b/src/tools/examplesscanner/helpextractor.cpp
index 7fad8551976d1e55167dda636f88d589a5e8b632..741d3b9cb8cf950834fa2e607e9c169bcb118f9a 100644
--- a/src/tools/examplesscanner/helpextractor.cpp
+++ b/src/tools/examplesscanner/helpextractor.cpp
@@ -1,3 +1,35 @@
+/**************************************************************************
+**
+** 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 "helpextractor.h"
 
 #include <QtGui>
diff --git a/src/tools/examplesscanner/helpextractor.h b/src/tools/examplesscanner/helpextractor.h
index 4210a6635db4b443c640df6326dc3251a6bc9e3b..c81578a8143079b5ef7c2494af8bfc87a80f11f9 100644
--- a/src/tools/examplesscanner/helpextractor.h
+++ b/src/tools/examplesscanner/helpextractor.h
@@ -1,3 +1,35 @@
+/**************************************************************************
+**
+** 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 HELPEXTRACTOR_H
 #define HELPEXTRACTOR_H
 
diff --git a/src/tools/examplesscanner/main.cpp b/src/tools/examplesscanner/main.cpp
index 5c47a9788b08b49ffa80ba91ffc77b7adb7c4b14..b958eadafec21427a89a9bad612aa3e3927b208b 100644
--- a/src/tools/examplesscanner/main.cpp
+++ b/src/tools/examplesscanner/main.cpp
@@ -1,3 +1,35 @@
+/**************************************************************************
+**
+** 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 <QtCore>
 
 #include "helpextractor.h"
diff --git a/src/tools/gen-cpp-ast/generate-ast.cpp b/src/tools/gen-cpp-ast/generate-ast.cpp
index ef50686a5fbef172cba3c0a458f698766354ac2c..012b35cfa90a397077609673925e0a0b82ea1b1f 100644
--- a/src/tools/gen-cpp-ast/generate-ast.cpp
+++ b/src/tools/gen-cpp-ast/generate-ast.cpp
@@ -26,7 +26,7 @@
 ** 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 qt-info@nokia.com.
+** Nokia at info@qt.nokia.com.
 **
 **************************************************************************/
 
diff --git a/src/tools/makespy/main.cpp b/src/tools/makespy/main.cpp
index d4056652cfa4bb01a2f97303b3a654238f731279..55c17b9bfb6b26bf6ff890ed1df98a91b84de2dd 100644
--- a/src/tools/makespy/main.cpp
+++ b/src/tools/makespy/main.cpp
@@ -26,7 +26,7 @@
 ** 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 qt-info@nokia.com.
+** Nokia at info@qt.nokia.com.
 **
 **************************************************************************/
 
diff --git a/src/tools/mkvisitor/main.cpp b/src/tools/mkvisitor/main.cpp
index 7b3b46bb4b2d09a71bd0e1062a08ab50879abdfd..1d61e67bfad9e02da9cbd39f6617648b2753fc3b 100644
--- a/src/tools/mkvisitor/main.cpp
+++ b/src/tools/mkvisitor/main.cpp
@@ -26,7 +26,7 @@
 ** 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 qt-info@nokia.com.
+** Nokia at info@qt.nokia.com.
 **
 **************************************************************************/
 
diff --git a/src/tools/qpatch/qpatch.cpp b/src/tools/qpatch/qpatch.cpp
index 1e3fb49104fcdb33ca9446ad0bec7789af7a2ce6..a4362849d13fcc0ab8a18302285388bcdd1b71ed 100644
--- a/src/tools/qpatch/qpatch.cpp
+++ b/src/tools/qpatch/qpatch.cpp
@@ -26,7 +26,7 @@
 ** 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 qt-info@nokia.com.
+** Nokia at info@qt.nokia.com.
 **
 **************************************************************************/
 
diff --git a/src/tools/qtcreatorwidgets/customwidget.h b/src/tools/qtcreatorwidgets/customwidget.h
index 242e542cd26f80eb2c3e6705961864048475c307..a71ff7448b918075ddfd12af19d6f9bee07f71a0 100644
--- a/src/tools/qtcreatorwidgets/customwidget.h
+++ b/src/tools/qtcreatorwidgets/customwidget.h
@@ -26,7 +26,7 @@
 ** 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 qt-info@nokia.com.
+** Nokia at info@qt.nokia.com.
 **
 **************************************************************************/
 
diff --git a/src/tools/qtcreatorwidgets/customwidgets.cpp b/src/tools/qtcreatorwidgets/customwidgets.cpp
index 266ef52345b03d88af1682a7ec5caee0f4c830f0..ac4f2f68f323c80f383eea4adbffacf30d42ece4 100644
--- a/src/tools/qtcreatorwidgets/customwidgets.cpp
+++ b/src/tools/qtcreatorwidgets/customwidgets.cpp
@@ -26,7 +26,7 @@
 ** 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 qt-info@nokia.com.
+** Nokia at info@qt.nokia.com.
 **
 **************************************************************************/
 
diff --git a/src/tools/qtcreatorwidgets/customwidgets.h b/src/tools/qtcreatorwidgets/customwidgets.h
index 6c62f43c09adb9c18916d6314d043701104a4122..2fbee7448a77806dc2aaa4fb0e20d76f4cc78834 100644
--- a/src/tools/qtcreatorwidgets/customwidgets.h
+++ b/src/tools/qtcreatorwidgets/customwidgets.h
@@ -26,7 +26,7 @@
 ** 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 qt-info@nokia.com.
+** Nokia at info@qt.nokia.com.
 **
 **************************************************************************/
 
diff --git a/src/tools/qtlibspatcher/binpatch.cpp b/src/tools/qtlibspatcher/binpatch.cpp
index ce20038684bca93ad47b71c0ce0ee8bee9e0ebdb..5a6ff176c4eca49d5464e11f77fb446f2d98c2fd 100644
--- a/src/tools/qtlibspatcher/binpatch.cpp
+++ b/src/tools/qtlibspatcher/binpatch.cpp
@@ -26,7 +26,7 @@
 ** 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 qt-info@nokia.com.
+** Nokia at info@qt.nokia.com.
 **
 **************************************************************************/
 
diff --git a/src/tools/qtlibspatcher/binpatch.h b/src/tools/qtlibspatcher/binpatch.h
index 04f2a2b91a9222f48c28a12fc1659a6e759183ad..40e4dad799152d4d5c1f7f815c76381ffe40c757 100644
--- a/src/tools/qtlibspatcher/binpatch.h
+++ b/src/tools/qtlibspatcher/binpatch.h
@@ -26,7 +26,7 @@
 ** 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 qt-info@nokia.com.
+** Nokia at info@qt.nokia.com.
 **
 **************************************************************************/
 
diff --git a/src/tools/qtlibspatcher/qtlibspatchermain.cpp b/src/tools/qtlibspatcher/qtlibspatchermain.cpp
index 41b930aeda70e7869b74457f2358b609a3a36339..c752d937c2d763447abf2326f0b0a4e6076fe15c 100644
--- a/src/tools/qtlibspatcher/qtlibspatchermain.cpp
+++ b/src/tools/qtlibspatcher/qtlibspatchermain.cpp
@@ -26,7 +26,7 @@
 ** 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 qt-info@nokia.com.
+** Nokia at info@qt.nokia.com.
 **
 **************************************************************************/
 
diff --git a/src/tools/qtpromaker/main.cpp b/src/tools/qtpromaker/main.cpp
index 4c6e28cf58d116adb5a683c8f18efaaa5779a655..beed3bd4cad7ec24a1caec25aff0c5289edda9e3 100644
--- a/src/tools/qtpromaker/main.cpp
+++ b/src/tools/qtpromaker/main.cpp
@@ -1,3 +1,34 @@
+/**************************************************************************
+**
+** 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 <QCoreApplication>
 #include <QDebug>
diff --git a/tests/auto/aggregation/tst_aggregate.cpp b/tests/auto/aggregation/tst_aggregate.cpp
index 8126c63552493ffe16ba66dfde64e29c586997cd..d7842346e24716b2119d2202d1cdf1543abd198e 100644
--- a/tests/auto/aggregation/tst_aggregate.cpp
+++ b/tests/auto/aggregation/tst_aggregate.cpp
@@ -26,7 +26,7 @@
 ** 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 qt-info@nokia.com.
+** Nokia at info@qt.nokia.com.
 **
 **************************************************************************/
 
diff --git a/tests/auto/changeset/tst_changeset.cpp b/tests/auto/changeset/tst_changeset.cpp
index 00178e97a1d8be030b8f2c503091eabf65d525df..c8626f51916d6b6e0e2c09326d0c2206327201bf 100644
--- a/tests/auto/changeset/tst_changeset.cpp
+++ b/tests/auto/changeset/tst_changeset.cpp
@@ -26,7 +26,7 @@
 ** 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 qt-info@nokia.com.
+** Nokia at info@qt.nokia.com.
 **
 **************************************************************************/
 
diff --git a/tests/auto/cplusplus/ast/tst_ast.cpp b/tests/auto/cplusplus/ast/tst_ast.cpp
index f5aea49a853c477866c28d3a4be478f6551069d4..35f55e26c199d939d62f8195f581c75d814d8a82 100644
--- a/tests/auto/cplusplus/ast/tst_ast.cpp
+++ b/tests/auto/cplusplus/ast/tst_ast.cpp
@@ -26,7 +26,7 @@
 ** 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 qt-info@nokia.com.
+** Nokia at info@qt.nokia.com.
 **
 **************************************************************************/
 
diff --git a/tests/auto/cplusplus/codeformatter/tst_codeformatter.cpp b/tests/auto/cplusplus/codeformatter/tst_codeformatter.cpp
index 3df75d4f37b4bdcaa71988a064c179a440e3a4f3..1b882e16145d728cf24b801f8431ad8e13b107b5 100644
--- a/tests/auto/cplusplus/codeformatter/tst_codeformatter.cpp
+++ b/tests/auto/cplusplus/codeformatter/tst_codeformatter.cpp
@@ -26,7 +26,7 @@
 ** 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 qt-info@nokia.com.
+** Nokia at info@qt.nokia.com.
 **
 **************************************************************************/
 
@@ -61,9 +61,11 @@ private Q_SLOTS:
     void preprocessorContinuation();
     void cStyleComments();
     void cppStyleComments();
-    void expressionContinuation();
+    void expressionContinuation1();
+    void expressionContinuation2();
     void assignContinuation1();
     void assignContinuation2();
+    void declarationContinuation();
     void classAccess();
     void ternary();
     void objcAtDeclarations();
@@ -113,7 +115,8 @@ private Q_SLOTS:
     void functionBodyAndBraces2();
     void functionBodyAndBraces3();
     void functionBodyAndBraces4();
-    void constructor();
+    void constructor1();
+    void constructor2();
     void caseBody1();
     void caseBody2();
     void caseBody3();
@@ -601,7 +604,7 @@ void tst_CodeFormatter::cppStyleComments()
     checkIndent(data);
 }
 
-void tst_CodeFormatter::expressionContinuation()
+void tst_CodeFormatter::expressionContinuation1()
 {
     QList<Line> data;
     data << Line("void foo() {")
@@ -628,9 +631,27 @@ void tst_CodeFormatter::expressionContinuation()
          << Line("    ~           foo - blah(1)")
          << Line("    ~        << '?'")
          << Line("    ~        << \"\\n\";")
-         << Line("    i += foo(")
+         << Line("}")
+         ;
+    checkIndent(data);
+}
+
+void tst_CodeFormatter::expressionContinuation2()
+{
+    QList<Line> data;
+    data << Line("void foo() {")
+         << Line("    i += abc +")
+         << Line("    ~       foo(,")
          << Line("    ~           bar,")
-         << Line("    ~           2);")
+         << Line("    ~           2")
+         << Line("    ~           );")
+         << Line("    i += abc +")
+         << Line("    ~       foo(,")
+         << Line("    ~           bar(")
+         << Line("    ~               bar,")
+         << Line("    ~               2")
+         << Line("    ~               ),")
+         << Line("    ~           abc);")
          << Line("}")
          ;
     checkIndent(data);
@@ -676,6 +697,18 @@ void tst_CodeFormatter::assignContinuation2()
     checkIndent(data, style);
 }
 
+void tst_CodeFormatter::declarationContinuation()
+{
+    QList<Line> data;
+    data << Line("void foo(")
+         << Line("~       int a,")
+         << Line("~       int b);")
+         << Line("void foo(int a,")
+         << Line("~        int b);")
+         ;
+    checkIndent(data);
+}
+
 void tst_CodeFormatter::classAccess()
 {
     QList<Line> data;
@@ -1048,7 +1081,7 @@ void tst_CodeFormatter::memberInitializer()
          << Line("    Foo()")
          << Line("    ~   : baR(),")
          << Line("    ~     moodoo(barR + ")
-         << Line("    ~         42),")
+         << Line("    ~            42),")
          << Line("    ~     xyz()")
          << Line("    {}")
          << Line("};")
@@ -1732,7 +1765,7 @@ void tst_CodeFormatter::functionBodyAndBraces4()
     checkIndent(data, codeStyle);
 }
 
-void tst_CodeFormatter::constructor()
+void tst_CodeFormatter::constructor1()
 {
     QList<Line> data;
     data << Line("class Foo {")
@@ -1750,6 +1783,42 @@ void tst_CodeFormatter::constructor()
     checkIndent(data, codeStyle);
 }
 
+void tst_CodeFormatter::constructor2()
+{
+    QList<Line> data;
+    data << Line("class Foo {")
+         << Line("    Foo() : _a(0)")
+         << Line("    {")
+         << Line("        _b = 0")
+         << Line("    }")
+         << Line("    int _a;")
+         << Line("    Foo()")
+         << Line("    ~   : _foo(1),")
+         << Line("    ~     _bar(2),")
+         << Line("    ~     _carooooo(")
+         << Line("    ~         foo() + 12),")
+         << Line("    ~     _carooooo(foo(),")
+         << Line("    ~               12)")
+         << Line("    {")
+         << Line("        _b = 0")
+         << Line("    }")
+         << Line("    int _b;")
+         << Line("    Foo()")
+         << Line("    ~   : _foo(1)")
+         << Line("    ~   , _bar(2)")
+         << Line("    ~   , _carooooo(")
+         << Line("    ~         foo() + 12)")
+         << Line("    ~   , _carooooo(foo(),")
+         << Line("    ~               12)")
+         << Line("    {")
+         << Line("        _b = 0")
+         << Line("    }")
+         << Line("};")
+         ;
+    CppCodeStyleSettings codeStyle;
+    checkIndent(data);
+}
+
 void tst_CodeFormatter::caseBody1()
 {
     QList<Line> data;
diff --git a/tests/auto/cplusplus/lookup/tst_lookup.cpp b/tests/auto/cplusplus/lookup/tst_lookup.cpp
index 347ebd4d6deae7c0594f01413482401d02952777..baabd04624d580733b06b2cdf1d74c5d89899cb8 100644
--- a/tests/auto/cplusplus/lookup/tst_lookup.cpp
+++ b/tests/auto/cplusplus/lookup/tst_lookup.cpp
@@ -26,7 +26,7 @@
 ** 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 qt-info@nokia.com.
+** Nokia at info@qt.nokia.com.
 **
 **************************************************************************/
 
diff --git a/tests/auto/cplusplus/semantic/tst_semantic.cpp b/tests/auto/cplusplus/semantic/tst_semantic.cpp
index 5780ac491028bfc57236097362b0a162ffd60347..144b87242a931fb32f4fdabd4a21d8a54eae3e8b 100644
--- a/tests/auto/cplusplus/semantic/tst_semantic.cpp
+++ b/tests/auto/cplusplus/semantic/tst_semantic.cpp
@@ -26,7 +26,7 @@
 ** 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 qt-info@nokia.com.
+** Nokia at info@qt.nokia.com.
 **
 **************************************************************************/
 
diff --git a/tests/auto/cplusplus/simplifytypes/tst_simplifytypestest.cpp b/tests/auto/cplusplus/simplifytypes/tst_simplifytypestest.cpp
index bc1289a28d74af14be97c871fff59a2fd818804d..361a97e47fe28f5af4fb3204db033ec02b4df84c 100644
--- a/tests/auto/cplusplus/simplifytypes/tst_simplifytypestest.cpp
+++ b/tests/auto/cplusplus/simplifytypes/tst_simplifytypestest.cpp
@@ -26,7 +26,7 @@
 ** 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 qt-info@nokia.com.
+** Nokia at info@qt.nokia.com.
 **
 **************************************************************************/
 
diff --git a/tests/auto/cplusplus/typeprettyprinter/tst_typeprettyprinter.cpp b/tests/auto/cplusplus/typeprettyprinter/tst_typeprettyprinter.cpp
index e2cfa8d85ad33b17667b2dbc77c896b89721ce64..1ab85cfd55ef2b6620c1053aaa0dc5fd90bf23ea 100644
--- a/tests/auto/cplusplus/typeprettyprinter/tst_typeprettyprinter.cpp
+++ b/tests/auto/cplusplus/typeprettyprinter/tst_typeprettyprinter.cpp
@@ -26,7 +26,7 @@
 ** 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 qt-info@nokia.com.
+** Nokia at info@qt.nokia.com.
 **
 **************************************************************************/
 
diff --git a/tests/auto/debugger/tst_dumpers.cpp b/tests/auto/debugger/tst_dumpers.cpp
index 0364e70b33a3e15f392f7d31fd1f5a3a8652af84..9471b230bc2bc7342764b362945a0c66924d63e4 100644
--- a/tests/auto/debugger/tst_dumpers.cpp
+++ b/tests/auto/debugger/tst_dumpers.cpp
@@ -26,7 +26,7 @@
 ** 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 qt-info@nokia.com.
+** Nokia at info@qt.nokia.com.
 **
 **************************************************************************/
 
diff --git a/tests/auto/debugger/tst_gdb.cpp b/tests/auto/debugger/tst_gdb.cpp
index 1d2cca0016c9559177525b90bf36c730b4271213..7586540bf0cd3d9cdcb70b449f505644c2241fdf 100644
--- a/tests/auto/debugger/tst_gdb.cpp
+++ b/tests/auto/debugger/tst_gdb.cpp
@@ -26,7 +26,7 @@
 ** 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 qt-info@nokia.com.
+** Nokia at info@qt.nokia.com.
 **
 **************************************************************************/
 
diff --git a/tests/auto/debugger/tst_version.cpp b/tests/auto/debugger/tst_version.cpp
index dee60eedbf059be6509f9dc351830bdb687b4968..75d91a19cdbcd8404432e568a4c511a1f2e02a90 100644
--- a/tests/auto/debugger/tst_version.cpp
+++ b/tests/auto/debugger/tst_version.cpp
@@ -26,7 +26,7 @@
 ** 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 qt-info@nokia.com.
+** Nokia at info@qt.nokia.com.
 **
 **************************************************************************/
 
diff --git a/tests/auto/environment/tst_environment.cpp b/tests/auto/environment/tst_environment.cpp
index bf9a260685c860745442c84d504c9c727eaefc2c..171eab7238f8d1ca40c30ad4422de2c42db1b68e 100644
--- a/tests/auto/environment/tst_environment.cpp
+++ b/tests/auto/environment/tst_environment.cpp
@@ -26,7 +26,7 @@
 ** 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 qt-info@nokia.com.
+** Nokia at info@qt.nokia.com.
 **
 **************************************************************************/
 
diff --git a/tests/auto/extensionsystem/pluginmanager/circularplugins/plugin1/plugin1.cpp b/tests/auto/extensionsystem/pluginmanager/circularplugins/plugin1/plugin1.cpp
index 814fd139aa3c23e0488a1e45bc2a615a8e0f60ae..f116b5c6d32abb5bfad2e3712d443c2fbc3819d4 100644
--- a/tests/auto/extensionsystem/pluginmanager/circularplugins/plugin1/plugin1.cpp
+++ b/tests/auto/extensionsystem/pluginmanager/circularplugins/plugin1/plugin1.cpp
@@ -26,7 +26,7 @@
 ** 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 qt-info@nokia.com.
+** Nokia at info@qt.nokia.com.
 **
 **************************************************************************/
 
diff --git a/tests/auto/extensionsystem/pluginmanager/circularplugins/plugin1/plugin1.h b/tests/auto/extensionsystem/pluginmanager/circularplugins/plugin1/plugin1.h
index 0a6cac614379de4d0e7ad901b39ef3361bdefb3a..529455f888e33213773664451f6db1fb3ae7eeaf 100644
--- a/tests/auto/extensionsystem/pluginmanager/circularplugins/plugin1/plugin1.h
+++ b/tests/auto/extensionsystem/pluginmanager/circularplugins/plugin1/plugin1.h
@@ -26,7 +26,7 @@
 ** 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 qt-info@nokia.com.
+** Nokia at info@qt.nokia.com.
 **
 **************************************************************************/
 
diff --git a/tests/auto/extensionsystem/pluginmanager/circularplugins/plugin2/plugin2.cpp b/tests/auto/extensionsystem/pluginmanager/circularplugins/plugin2/plugin2.cpp
index cd53d96a5de641bc91f3c443d0c57ef9d9a48e46..ee20164a1cb24c3138050f61def0f2dc2d718b6c 100644
--- a/tests/auto/extensionsystem/pluginmanager/circularplugins/plugin2/plugin2.cpp
+++ b/tests/auto/extensionsystem/pluginmanager/circularplugins/plugin2/plugin2.cpp
@@ -26,7 +26,7 @@
 ** 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 qt-info@nokia.com.
+** Nokia at info@qt.nokia.com.
 **
 **************************************************************************/
 
diff --git a/tests/auto/extensionsystem/pluginmanager/circularplugins/plugin2/plugin2.h b/tests/auto/extensionsystem/pluginmanager/circularplugins/plugin2/plugin2.h
index df6aa752e67baea38f83d386157102e75a0b6a04..5ee45d58fe128943e773c063ff822b2bcbbd09cf 100644
--- a/tests/auto/extensionsystem/pluginmanager/circularplugins/plugin2/plugin2.h
+++ b/tests/auto/extensionsystem/pluginmanager/circularplugins/plugin2/plugin2.h
@@ -26,7 +26,7 @@
 ** 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 qt-info@nokia.com.
+** Nokia at info@qt.nokia.com.
 **
 **************************************************************************/
 
diff --git a/tests/auto/extensionsystem/pluginmanager/circularplugins/plugin3/plugin3.cpp b/tests/auto/extensionsystem/pluginmanager/circularplugins/plugin3/plugin3.cpp
index f1da14bd4f64bd8b37222c45a3283411e93b5049..ee7dbec1203b9ef3621cd302486870a4d5de316b 100644
--- a/tests/auto/extensionsystem/pluginmanager/circularplugins/plugin3/plugin3.cpp
+++ b/tests/auto/extensionsystem/pluginmanager/circularplugins/plugin3/plugin3.cpp
@@ -26,7 +26,7 @@
 ** 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 qt-info@nokia.com.
+** Nokia at info@qt.nokia.com.
 **
 **************************************************************************/
 #include "plugin3.h"
diff --git a/tests/auto/extensionsystem/pluginmanager/circularplugins/plugin3/plugin3.h b/tests/auto/extensionsystem/pluginmanager/circularplugins/plugin3/plugin3.h
index 75277b318d818bffa3e05935c70d2ff7618fba04..3ee0d5c3995249580f6dd9c10a8f1a5e5d70b6fe 100644
--- a/tests/auto/extensionsystem/pluginmanager/circularplugins/plugin3/plugin3.h
+++ b/tests/auto/extensionsystem/pluginmanager/circularplugins/plugin3/plugin3.h
@@ -26,7 +26,7 @@
 ** 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 qt-info@nokia.com.
+** Nokia at info@qt.nokia.com.
 **
 **************************************************************************/
 
diff --git a/tests/auto/extensionsystem/pluginmanager/correctplugins1/plugin1/plugin1.cpp b/tests/auto/extensionsystem/pluginmanager/correctplugins1/plugin1/plugin1.cpp
index ff3a35522bc98da4d87baa3b34fb2aedd3951cf8..f146f0ad0f9010a72346c1f4bf5017cea13beade 100644
--- a/tests/auto/extensionsystem/pluginmanager/correctplugins1/plugin1/plugin1.cpp
+++ b/tests/auto/extensionsystem/pluginmanager/correctplugins1/plugin1/plugin1.cpp
@@ -26,7 +26,7 @@
 ** 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 qt-info@nokia.com.
+** Nokia at info@qt.nokia.com.
 **
 **************************************************************************/
 
diff --git a/tests/auto/extensionsystem/pluginmanager/correctplugins1/plugin1/plugin1.h b/tests/auto/extensionsystem/pluginmanager/correctplugins1/plugin1/plugin1.h
index 987196fe948b17566e77086959d37ccfc4525e21..58d9777c236c675195655fc299ddfd4a06b6b780 100644
--- a/tests/auto/extensionsystem/pluginmanager/correctplugins1/plugin1/plugin1.h
+++ b/tests/auto/extensionsystem/pluginmanager/correctplugins1/plugin1/plugin1.h
@@ -26,7 +26,7 @@
 ** 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 qt-info@nokia.com.
+** Nokia at info@qt.nokia.com.
 **
 **************************************************************************/
 
diff --git a/tests/auto/extensionsystem/pluginmanager/correctplugins1/plugin2/plugin2.cpp b/tests/auto/extensionsystem/pluginmanager/correctplugins1/plugin2/plugin2.cpp
index c1c38e3a697931f35d5b53891100cdab04a50315..44e41a02c3e95e54d546d2cce1c17f7bffc666b2 100644
--- a/tests/auto/extensionsystem/pluginmanager/correctplugins1/plugin2/plugin2.cpp
+++ b/tests/auto/extensionsystem/pluginmanager/correctplugins1/plugin2/plugin2.cpp
@@ -26,7 +26,7 @@
 ** 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 qt-info@nokia.com.
+** Nokia at info@qt.nokia.com.
 **
 **************************************************************************/
 
diff --git a/tests/auto/extensionsystem/pluginmanager/correctplugins1/plugin2/plugin2.h b/tests/auto/extensionsystem/pluginmanager/correctplugins1/plugin2/plugin2.h
index 4ba3b35b57e6b84d0926602a6ea1b0625f3720ed..b2e9217517c8dca842b100d8e98233a86567b049 100644
--- a/tests/auto/extensionsystem/pluginmanager/correctplugins1/plugin2/plugin2.h
+++ b/tests/auto/extensionsystem/pluginmanager/correctplugins1/plugin2/plugin2.h
@@ -26,7 +26,7 @@
 ** 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 qt-info@nokia.com.
+** Nokia at info@qt.nokia.com.
 **
 **************************************************************************/
 
diff --git a/tests/auto/extensionsystem/pluginmanager/correctplugins1/plugin3/plugin3.cpp b/tests/auto/extensionsystem/pluginmanager/correctplugins1/plugin3/plugin3.cpp
index b87dfa41aa0d3f06f1dc7dc9e68c56313e1a59d6..a21d83fa8f7af2f1311db72a589cf19d521d71b0 100644
--- a/tests/auto/extensionsystem/pluginmanager/correctplugins1/plugin3/plugin3.cpp
+++ b/tests/auto/extensionsystem/pluginmanager/correctplugins1/plugin3/plugin3.cpp
@@ -26,7 +26,7 @@
 ** 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 qt-info@nokia.com.
+** Nokia at info@qt.nokia.com.
 **
 **************************************************************************/
 
diff --git a/tests/auto/extensionsystem/pluginmanager/correctplugins1/plugin3/plugin3.h b/tests/auto/extensionsystem/pluginmanager/correctplugins1/plugin3/plugin3.h
index 816295a3053cbb8fb8cb9b29e030d1e080be67f5..c6e6a4ef92c326671fa84e83c9efb3441c6dbaf3 100644
--- a/tests/auto/extensionsystem/pluginmanager/correctplugins1/plugin3/plugin3.h
+++ b/tests/auto/extensionsystem/pluginmanager/correctplugins1/plugin3/plugin3.h
@@ -26,7 +26,7 @@
 ** 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 qt-info@nokia.com.
+** Nokia at info@qt.nokia.com.
 **
 **************************************************************************/
 #ifndef PLUGIN3_H
diff --git a/tests/auto/extensionsystem/pluginmanager/tst_pluginmanager.cpp b/tests/auto/extensionsystem/pluginmanager/tst_pluginmanager.cpp
index fc7c2d7ad9da132e05908ffc87effcb965f3695d..697496fdfc0aae3d0520a2ddc9223cda05fdbe9f 100644
--- a/tests/auto/extensionsystem/pluginmanager/tst_pluginmanager.cpp
+++ b/tests/auto/extensionsystem/pluginmanager/tst_pluginmanager.cpp
@@ -26,7 +26,7 @@
 ** 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 qt-info@nokia.com.
+** Nokia at info@qt.nokia.com.
 **
 **************************************************************************/
 
diff --git a/tests/auto/extensionsystem/pluginspec/testplugin/testplugin.cpp b/tests/auto/extensionsystem/pluginspec/testplugin/testplugin.cpp
index acbd4c2f37fb1040322a4d2d459b3ed2864a860b..c8d31230cd674de1b8b73d934433988a7adf9ca6 100644
--- a/tests/auto/extensionsystem/pluginspec/testplugin/testplugin.cpp
+++ b/tests/auto/extensionsystem/pluginspec/testplugin/testplugin.cpp
@@ -26,7 +26,7 @@
 ** 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 qt-info@nokia.com.
+** Nokia at info@qt.nokia.com.
 **
 **************************************************************************/
 
diff --git a/tests/auto/extensionsystem/pluginspec/testplugin/testplugin.h b/tests/auto/extensionsystem/pluginspec/testplugin/testplugin.h
index 1bcc08076e4da77853cbb2781c02e145b7a343b0..0837588b8bee3c25bd5dd38c40ce315f5217ef16 100644
--- a/tests/auto/extensionsystem/pluginspec/testplugin/testplugin.h
+++ b/tests/auto/extensionsystem/pluginspec/testplugin/testplugin.h
@@ -26,7 +26,7 @@
 ** 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 qt-info@nokia.com.
+** Nokia at info@qt.nokia.com.
 **
 **************************************************************************/
 
diff --git a/tests/auto/extensionsystem/pluginspec/testplugin/testplugin_global.h b/tests/auto/extensionsystem/pluginspec/testplugin/testplugin_global.h
index 519867fc0a12a7154b1046ae26ef78e176d0de10..718f530dfbe5c1629563d14b52441cc0580e0be0 100644
--- a/tests/auto/extensionsystem/pluginspec/testplugin/testplugin_global.h
+++ b/tests/auto/extensionsystem/pluginspec/testplugin/testplugin_global.h
@@ -26,7 +26,7 @@
 ** 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 qt-info@nokia.com.
+** Nokia at info@qt.nokia.com.
 **
 **************************************************************************/
 
diff --git a/tests/auto/extensionsystem/pluginspec/tst_pluginspec.cpp b/tests/auto/extensionsystem/pluginspec/tst_pluginspec.cpp
index c1df40de1f4dbb1342537905fbeefa605e25fa2b..123ca6d0b5596fdf049bf8e60e527cb40ec4676f 100644
--- a/tests/auto/extensionsystem/pluginspec/tst_pluginspec.cpp
+++ b/tests/auto/extensionsystem/pluginspec/tst_pluginspec.cpp
@@ -26,7 +26,7 @@
 ** 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 qt-info@nokia.com.
+** Nokia at info@qt.nokia.com.
 **
 **************************************************************************/
 
diff --git a/tests/auto/externaltool/tst_externaltooltest.cpp b/tests/auto/externaltool/tst_externaltooltest.cpp
index 6bee760aa319a0749da47696d77e27715d901dc7..a73e63fd1d4ab7bff2b16e293a15688a9a50af7f 100644
--- a/tests/auto/externaltool/tst_externaltooltest.cpp
+++ b/tests/auto/externaltool/tst_externaltooltest.cpp
@@ -1,3 +1,35 @@
+/**************************************************************************
+**
+** 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 <QtCore/QString>
 #include <QtTest/QtTest>
 
diff --git a/tests/auto/fakevim/tst_fakevim.cpp b/tests/auto/fakevim/tst_fakevim.cpp
index 1192d863e9391b692f357d1e25dbb3b409f064d7..c0bf411f39312bf27d52efb57091bc0217ccf407 100644
--- a/tests/auto/fakevim/tst_fakevim.cpp
+++ b/tests/auto/fakevim/tst_fakevim.cpp
@@ -26,7 +26,7 @@
 ** 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 qt-info@nokia.com.
+** Nokia at info@qt.nokia.com.
 **
 **************************************************************************/
 
diff --git a/tests/auto/filesearch/tst_filesearch.cpp b/tests/auto/filesearch/tst_filesearch.cpp
index 5d8b36c045efe086fb2b9c0d81f197bc0897faeb..080013e04a1d830f24fc1d555855c1bd66989e5a 100644
--- a/tests/auto/filesearch/tst_filesearch.cpp
+++ b/tests/auto/filesearch/tst_filesearch.cpp
@@ -26,7 +26,7 @@
 ** 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 qt-info@nokia.com.
+** Nokia at info@qt.nokia.com.
 **
 **************************************************************************/
 
diff --git a/tests/auto/generichighlighter/highlighterengine/basetextdocumentlayout.h b/tests/auto/generichighlighter/highlighterengine/basetextdocumentlayout.h
index 50ff40f782b3cea27767b37206904bde4aa344d5..ceb7dec1b2d051a393e0d7fa94a256f42672ec09 100644
--- a/tests/auto/generichighlighter/highlighterengine/basetextdocumentlayout.h
+++ b/tests/auto/generichighlighter/highlighterengine/basetextdocumentlayout.h
@@ -26,7 +26,7 @@
 ** 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 qt-info@nokia.com.
+** Nokia at info@qt.nokia.com.
 **
 **************************************************************************/
 
diff --git a/tests/auto/generichighlighter/highlighterengine/formats.cpp b/tests/auto/generichighlighter/highlighterengine/formats.cpp
index 854acf893f4400770deb24e03e3c7fc8db604e40..ec0d8b7109c80598c60b06a97e1ee7c6fdc331b7 100644
--- a/tests/auto/generichighlighter/highlighterengine/formats.cpp
+++ b/tests/auto/generichighlighter/highlighterengine/formats.cpp
@@ -26,7 +26,7 @@
 ** 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 qt-info@nokia.com.
+** Nokia at info@qt.nokia.com.
 **
 **************************************************************************/
 
diff --git a/tests/auto/generichighlighter/highlighterengine/formats.h b/tests/auto/generichighlighter/highlighterengine/formats.h
index 81823697ec1bcce6f666c9f4cdde51f3f66aabc9..dddc7abce762b8590f30c071394437a1b2228c32 100644
--- a/tests/auto/generichighlighter/highlighterengine/formats.h
+++ b/tests/auto/generichighlighter/highlighterengine/formats.h
@@ -26,7 +26,7 @@
 ** 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 qt-info@nokia.com.
+** Nokia at info@qt.nokia.com.
 **
 **************************************************************************/
 
diff --git a/tests/auto/generichighlighter/highlighterengine/highlightermock.cpp b/tests/auto/generichighlighter/highlighterengine/highlightermock.cpp
index a1e5ed8e940df94e677ea5f4f7128bbb1917bae5..078aa3a8f30da7bee0561822790e2decdad1f1f5 100644
--- a/tests/auto/generichighlighter/highlighterengine/highlightermock.cpp
+++ b/tests/auto/generichighlighter/highlighterengine/highlightermock.cpp
@@ -26,7 +26,7 @@
 ** 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 qt-info@nokia.com.
+** Nokia at info@qt.nokia.com.
 **
 **************************************************************************/
 
diff --git a/tests/auto/generichighlighter/highlighterengine/highlightermock.h b/tests/auto/generichighlighter/highlighterengine/highlightermock.h
index de36ba328cdd5385e5dfb6efba252bfefd21ec94..f085c826265e02f2a1c232e71a5f78375560c169 100644
--- a/tests/auto/generichighlighter/highlighterengine/highlightermock.h
+++ b/tests/auto/generichighlighter/highlighterengine/highlightermock.h
@@ -26,7 +26,7 @@
 ** 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 qt-info@nokia.com.
+** Nokia at info@qt.nokia.com.
 **
 **************************************************************************/
 
diff --git a/tests/auto/generichighlighter/highlighterengine/syntaxhighlighter.h b/tests/auto/generichighlighter/highlighterengine/syntaxhighlighter.h
index 00243c13bb00123500a8cee5b056acf7ddad2090..34082947e38978f0f42902991e85e7359378f8f3 100644
--- a/tests/auto/generichighlighter/highlighterengine/syntaxhighlighter.h
+++ b/tests/auto/generichighlighter/highlighterengine/syntaxhighlighter.h
@@ -26,7 +26,7 @@
 ** 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 qt-info@nokia.com.
+** Nokia at info@qt.nokia.com.
 **
 **************************************************************************/
 
diff --git a/tests/auto/generichighlighter/highlighterengine/tabsettings.h b/tests/auto/generichighlighter/highlighterengine/tabsettings.h
index 40f63ee22c6befcdb896bd8011e87aea3a84caf2..9a20f3641a2178a3c1ccd4e75fc022ee74ade7e6 100644
--- a/tests/auto/generichighlighter/highlighterengine/tabsettings.h
+++ b/tests/auto/generichighlighter/highlighterengine/tabsettings.h
@@ -26,7 +26,7 @@
 ** 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 qt-info@nokia.com.
+** Nokia at info@qt.nokia.com.
 **
 **************************************************************************/
 
diff --git a/tests/auto/generichighlighter/highlighterengine/tst_highlighterengine.cpp b/tests/auto/generichighlighter/highlighterengine/tst_highlighterengine.cpp
index 24ae2376bc3cc717cc5e38322bd960f3dbb9041e..2c6a8932d844e1c128e2cb20d6165b3ccd1ac7c6 100644
--- a/tests/auto/generichighlighter/highlighterengine/tst_highlighterengine.cpp
+++ b/tests/auto/generichighlighter/highlighterengine/tst_highlighterengine.cpp
@@ -26,7 +26,7 @@
 ** 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 qt-info@nokia.com.
+** Nokia at info@qt.nokia.com.
 **
 **************************************************************************/
 
diff --git a/tests/auto/generichighlighter/specificrules/tst_specificrules.cpp b/tests/auto/generichighlighter/specificrules/tst_specificrules.cpp
index e5e97f4d6f53328f27921df3252030c9076b8659..e270ee02974be9514f4446977d51014151726461 100644
--- a/tests/auto/generichighlighter/specificrules/tst_specificrules.cpp
+++ b/tests/auto/generichighlighter/specificrules/tst_specificrules.cpp
@@ -26,7 +26,7 @@
 ** 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 qt-info@nokia.com.
+** Nokia at info@qt.nokia.com.
 **
 **************************************************************************/
 
diff --git a/tests/auto/icheckbuild/ichecklib.cpp b/tests/auto/icheckbuild/ichecklib.cpp
index 0d6e186a0a02c239a4fe9e1fabd850a97700e660..22aefc106bb0c3ba35e08d3696abacb79c334ce7 100644
--- a/tests/auto/icheckbuild/ichecklib.cpp
+++ b/tests/auto/icheckbuild/ichecklib.cpp
@@ -25,7 +25,7 @@
 ** 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 qt-info@nokia.com.
+** Nokia at info@qt.nokia.com.
 **
 **************************************************************************/
 
diff --git a/tests/auto/icheckbuild/ichecklib.h b/tests/auto/icheckbuild/ichecklib.h
index ba0f678398ee11a8e8b2a4d4fa712b8c7ee067f6..8c692f9675da39e3aeec8b4b1efe6b82826af08d 100644
--- a/tests/auto/icheckbuild/ichecklib.h
+++ b/tests/auto/icheckbuild/ichecklib.h
@@ -25,7 +25,7 @@
 ** 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 qt-info@nokia.com.
+** Nokia at info@qt.nokia.com.
 **
 **************************************************************************/
 
diff --git a/tests/auto/icheckbuild/ichecklib_global.h b/tests/auto/icheckbuild/ichecklib_global.h
index 6801dd96160aaa680c7e8ae9f03299bafdf19529..d46d22c97b76b58d9ab346960e156aa166b4705c 100644
--- a/tests/auto/icheckbuild/ichecklib_global.h
+++ b/tests/auto/icheckbuild/ichecklib_global.h
@@ -25,7 +25,7 @@
 ** 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 qt-info@nokia.com.
+** Nokia at info@qt.nokia.com.
 **
 **************************************************************************/
 
diff --git a/tests/auto/icheckbuild/parsemanager.cpp b/tests/auto/icheckbuild/parsemanager.cpp
index feda22ae05e0f55836df60e82c660b8705755a78..1ee0769c657c42233c15a1a6389a06c719098194 100644
--- a/tests/auto/icheckbuild/parsemanager.cpp
+++ b/tests/auto/icheckbuild/parsemanager.cpp
@@ -26,7 +26,7 @@
 ** 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 qt-info@nokia.com.
+** Nokia at info@qt.nokia.com.
 **
 **************************************************************************/
 
diff --git a/tests/auto/icheckbuild/parsemanager.h b/tests/auto/icheckbuild/parsemanager.h
index f00154d0ee89773c44879bc029487f31b3c6fce8..ee8cb2b168d753e05a6337fc90341df0de79f0a9 100644
--- a/tests/auto/icheckbuild/parsemanager.h
+++ b/tests/auto/icheckbuild/parsemanager.h
@@ -26,7 +26,7 @@
 ** 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 qt-info@nokia.com.
+** Nokia at info@qt.nokia.com.
 **
 **************************************************************************/
 
diff --git a/tests/auto/icheckbuild/tst_icheckbuild.cpp b/tests/auto/icheckbuild/tst_icheckbuild.cpp
index 0f765b165c607d88ba78e01b7ae27d7d3149d909..7a55da291d467eb7f1d697b652b0d8e7257523c1 100644
--- a/tests/auto/icheckbuild/tst_icheckbuild.cpp
+++ b/tests/auto/icheckbuild/tst_icheckbuild.cpp
@@ -26,7 +26,7 @@
 ** 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 qt-info@nokia.com.
+** Nokia at info@qt.nokia.com.
 **
 **************************************************************************/
 
diff --git a/tests/auto/ioutils/tst_ioutils.cpp b/tests/auto/ioutils/tst_ioutils.cpp
index 91ea659999cc5b3070889906a287063c2f034f84..8783fc32a76b89eeec3b825145f3af132d23bd47 100644
--- a/tests/auto/ioutils/tst_ioutils.cpp
+++ b/tests/auto/ioutils/tst_ioutils.cpp
@@ -26,7 +26,7 @@
 ** 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 qt-info@nokia.com.
+** Nokia at info@qt.nokia.com.
 **
 **************************************************************************/
 
diff --git a/tests/auto/profilewriter/tst_profilewriter.cpp b/tests/auto/profilewriter/tst_profilewriter.cpp
index aad0204acbaadfd810909d75373f9b31d09d2cf4..5d0a374ead420a004f18e4905e0b2ad1aad9fef7 100644
--- a/tests/auto/profilewriter/tst_profilewriter.cpp
+++ b/tests/auto/profilewriter/tst_profilewriter.cpp
@@ -26,7 +26,7 @@
 ** 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 qt-info@nokia.com.
+** Nokia at info@qt.nokia.com.
 **
 **************************************************************************/
 
diff --git a/tests/auto/qml/codemodel/basic/tst_basic.cpp b/tests/auto/qml/codemodel/basic/tst_basic.cpp
index 94df6bbddef557b9364352d9776b26e28ed6e8c2..b9d175dd12466a2bd72de1bd67251aa29424d7ef 100644
--- a/tests/auto/qml/codemodel/basic/tst_basic.cpp
+++ b/tests/auto/qml/codemodel/basic/tst_basic.cpp
@@ -26,7 +26,7 @@
 ** 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 qt-info@nokia.com.
+** Nokia at info@qt.nokia.com.
 **
 **************************************************************************/
 
diff --git a/tests/auto/qml/qmldesigner/bauhaustests/testbauhaus.cpp b/tests/auto/qml/qmldesigner/bauhaustests/testbauhaus.cpp
index 782058f66ab2d70e8664dff8e1ee8b223faea165..c9fca2e652e6075562d39d4a9e0c718771b33c4c 100644
--- a/tests/auto/qml/qmldesigner/bauhaustests/testbauhaus.cpp
+++ b/tests/auto/qml/qmldesigner/bauhaustests/testbauhaus.cpp
@@ -26,7 +26,7 @@
 ** 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 qt-info@nokia.com.
+** Nokia at info@qt.nokia.com.
 **
 **************************************************************************/
 
diff --git a/tests/auto/qml/qmldesigner/bauhaustests/testbauhaus.h b/tests/auto/qml/qmldesigner/bauhaustests/testbauhaus.h
index c4b062fb83d810f0b5b6901b22917634b0ceaba8..8f8d5ad26c505bad90783b27058dc1e54f7146aa 100644
--- a/tests/auto/qml/qmldesigner/bauhaustests/testbauhaus.h
+++ b/tests/auto/qml/qmldesigner/bauhaustests/testbauhaus.h
@@ -26,7 +26,7 @@
 ** 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 qt-info@nokia.com.
+** Nokia at info@qt.nokia.com.
 **
 **************************************************************************/
 
diff --git a/tests/auto/qml/qmldesigner/common/statichelpers.cpp b/tests/auto/qml/qmldesigner/common/statichelpers.cpp
index cd0eb6058ebdce8204221208788f24a888e420b6..287d60221dc40fdcf5b6fb2373dc66505fac45fd 100644
--- a/tests/auto/qml/qmldesigner/common/statichelpers.cpp
+++ b/tests/auto/qml/qmldesigner/common/statichelpers.cpp
@@ -26,7 +26,7 @@
 ** 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 qt-info@nokia.com.
+** Nokia at info@qt.nokia.com.
 **
 **************************************************************************/
 
diff --git a/tests/auto/qml/qmldesigner/coretests/testrewriterview.cpp b/tests/auto/qml/qmldesigner/coretests/testrewriterview.cpp
index f9ddd5fd0387259a7e5038048cfe418759152fb2..f0f96aa571fe1933029930e0589966b1ccb81956 100644
--- a/tests/auto/qml/qmldesigner/coretests/testrewriterview.cpp
+++ b/tests/auto/qml/qmldesigner/coretests/testrewriterview.cpp
@@ -26,7 +26,7 @@
 ** 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 qt-info@nokia.com.
+** Nokia at info@qt.nokia.com.
 **
 **************************************************************************/
 
diff --git a/tests/auto/qml/qmldesigner/coretests/testrewriterview.h b/tests/auto/qml/qmldesigner/coretests/testrewriterview.h
index f142393dbd057a16438f23168db0ffb5bd648b43..1748cdbb64c38190c0c82e2f38c3c5cf2dd4f607 100644
--- a/tests/auto/qml/qmldesigner/coretests/testrewriterview.h
+++ b/tests/auto/qml/qmldesigner/coretests/testrewriterview.h
@@ -26,7 +26,7 @@
 ** 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 qt-info@nokia.com.
+** Nokia at info@qt.nokia.com.
 **
 **************************************************************************/
 
diff --git a/tests/auto/qml/qmldesigner/coretests/tst_testcore.cpp b/tests/auto/qml/qmldesigner/coretests/tst_testcore.cpp
index cef95e1690c694bbb2aed7983850ad92c79acdb8..e60c8b76bdf1ec0af2910899a0dd36314b5892f6 100644
--- a/tests/auto/qml/qmldesigner/coretests/tst_testcore.cpp
+++ b/tests/auto/qml/qmldesigner/coretests/tst_testcore.cpp
@@ -26,7 +26,7 @@
 ** 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 qt-info@nokia.com.
+** Nokia at info@qt.nokia.com.
 **
 **************************************************************************/
 
diff --git a/tests/auto/qml/qmldesigner/coretests/tst_testcore.h b/tests/auto/qml/qmldesigner/coretests/tst_testcore.h
index 61167e75a638cee7c69971810de0fbccf02e893f..5bf79e57ce97d1102ca93e948244d1e5afa35ad9 100644
--- a/tests/auto/qml/qmldesigner/coretests/tst_testcore.h
+++ b/tests/auto/qml/qmldesigner/coretests/tst_testcore.h
@@ -26,7 +26,7 @@
 ** 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 qt-info@nokia.com.
+** Nokia at info@qt.nokia.com.
 **
 **************************************************************************/
 
diff --git a/tests/auto/qml/qmldesigner/data/fx/MyButton.qml b/tests/auto/qml/qmldesigner/data/fx/MyButton.qml
index 3ab43139cb2aed2dac843bf89e1629f5dcefb4f1..f083acad6313f3ac88ae39d9996955d937c09aed 100644
--- a/tests/auto/qml/qmldesigner/data/fx/MyButton.qml
+++ b/tests/auto/qml/qmldesigner/data/fx/MyButton.qml
@@ -1,3 +1,35 @@
+/**************************************************************************
+**
+** 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.
+**
+**************************************************************************/
+
 import Qt 4.7
 
 Rectangle {
diff --git a/tests/auto/qml/qmldesigner/data/fx/TabWidget.qml b/tests/auto/qml/qmldesigner/data/fx/TabWidget.qml
index 26d25b47b58de4e3b030ae3d80f6462a0acb7180..c754d692c89905405cd3c87678dca57524858d76 100644
--- a/tests/auto/qml/qmldesigner/data/fx/TabWidget.qml
+++ b/tests/auto/qml/qmldesigner/data/fx/TabWidget.qml
@@ -1,3 +1,35 @@
+/**************************************************************************
+**
+** 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.
+**
+**************************************************************************/
+
 import Qt 4.7
 
 Item {
diff --git a/tests/auto/qml/qmldesigner/data/fx/attributes.qml b/tests/auto/qml/qmldesigner/data/fx/attributes.qml
index e2d4ed37c412613b1cdbf693eb5f61121921ea37..1ced49f30f795ade9dd3772008fd82f7370a5ca0 100644
--- a/tests/auto/qml/qmldesigner/data/fx/attributes.qml
+++ b/tests/auto/qml/qmldesigner/data/fx/attributes.qml
@@ -1,3 +1,35 @@
+/**************************************************************************
+**
+** 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.
+**
+**************************************************************************/
+
 import Qt 4.7
 
 Item {
diff --git a/tests/auto/qml/qmldesigner/data/fx/bigtest.qml b/tests/auto/qml/qmldesigner/data/fx/bigtest.qml
index d1f886ac80bac6db67c025a1876c0994aabf7dcb..dd08059daa20e111af216f23edc7e56151cce80e 100644
--- a/tests/auto/qml/qmldesigner/data/fx/bigtest.qml
+++ b/tests/auto/qml/qmldesigner/data/fx/bigtest.qml
@@ -1,3 +1,35 @@
+/**************************************************************************
+**
+** 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.
+**
+**************************************************************************/
+
 import Qt 4.7
 
 Item {
diff --git a/tests/auto/qml/qmldesigner/data/fx/components.qml b/tests/auto/qml/qmldesigner/data/fx/components.qml
index add7b94aaab979709835ed17054de07402ddf577..b2db39569134c28dfb042e3793a988699e144f46 100644
--- a/tests/auto/qml/qmldesigner/data/fx/components.qml
+++ b/tests/auto/qml/qmldesigner/data/fx/components.qml
@@ -1,3 +1,35 @@
+/**************************************************************************
+**
+** 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.
+**
+**************************************************************************/
+
 import Qt 4.7
 
 Rectangle {
diff --git a/tests/auto/qml/qmldesigner/data/fx/empty.qml b/tests/auto/qml/qmldesigner/data/fx/empty.qml
index dd9e9ea19308e2bb439e1a4c61b163d862753e97..97ce134d96a45163afd038d3893f8a081f1cc040 100644
--- a/tests/auto/qml/qmldesigner/data/fx/empty.qml
+++ b/tests/auto/qml/qmldesigner/data/fx/empty.qml
@@ -1,3 +1,35 @@
+/**************************************************************************
+**
+** 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.
+**
+**************************************************************************/
+
 import Qt 4.7
 
 Item {
diff --git a/tests/auto/qml/qmldesigner/data/fx/helloworld.qml b/tests/auto/qml/qmldesigner/data/fx/helloworld.qml
index bc17ab1b27d85d324bb58526d268e504e7989654..9e906f58d8af8fa4623194bc95a11be510ab103c 100644
--- a/tests/auto/qml/qmldesigner/data/fx/helloworld.qml
+++ b/tests/auto/qml/qmldesigner/data/fx/helloworld.qml
@@ -1,3 +1,35 @@
+/**************************************************************************
+**
+** 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.
+**
+**************************************************************************/
+
 import Qt 4.7
 
 Rectangle {
diff --git a/tests/auto/qml/qmldesigner/data/fx/image.qml b/tests/auto/qml/qmldesigner/data/fx/image.qml
index b91e557a75ea13102e435a2c4420291e20e1c3ed..45891aed3cde53ab7c4c155a04de4fb0599adfa8 100644
--- a/tests/auto/qml/qmldesigner/data/fx/image.qml
+++ b/tests/auto/qml/qmldesigner/data/fx/image.qml
@@ -1,3 +1,35 @@
+/**************************************************************************
+**
+** 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.
+**
+**************************************************************************/
+
 import Qt 4.7
 
 Rectangle {
diff --git a/tests/auto/qml/qmldesigner/data/fx/imports.qml b/tests/auto/qml/qmldesigner/data/fx/imports.qml
index 5331e595ba7d4b7570518876880a5aeb2fd33dc1..bdef719dbfd04abf657c70b206d58d3be22e5ab0 100644
--- a/tests/auto/qml/qmldesigner/data/fx/imports.qml
+++ b/tests/auto/qml/qmldesigner/data/fx/imports.qml
@@ -1,3 +1,35 @@
+/**************************************************************************
+**
+** 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.
+**
+**************************************************************************/
+
 import Qt 4.7
 import "subitems"
 import QtWebKit 1.0 as Web
diff --git a/tests/auto/qml/qmldesigner/data/fx/properties.qml b/tests/auto/qml/qmldesigner/data/fx/properties.qml
index 12b79f63f8043b108a6cc17355e2ea628fc41070..a937a617123d048b90135ea34c2178e17ec449b5 100644
--- a/tests/auto/qml/qmldesigner/data/fx/properties.qml
+++ b/tests/auto/qml/qmldesigner/data/fx/properties.qml
@@ -1,3 +1,35 @@
+/**************************************************************************
+**
+** 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.
+**
+**************************************************************************/
+
 import Qt 4.7
 
 Item {
diff --git a/tests/auto/qml/qmldesigner/data/fx/selectiontest.qml b/tests/auto/qml/qmldesigner/data/fx/selectiontest.qml
index 6e5b2fbd2989f0f89610a683bf94d085e4c41725..9d8941d3cc04f34d85aa75a4052bc4699bda5267 100644
--- a/tests/auto/qml/qmldesigner/data/fx/selectiontest.qml
+++ b/tests/auto/qml/qmldesigner/data/fx/selectiontest.qml
@@ -1,3 +1,35 @@
+/**************************************************************************
+**
+** 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.
+**
+**************************************************************************/
+
 import Qt 4.7
 
 Item {
diff --git a/tests/auto/qml/qmldesigner/data/fx/states.qml b/tests/auto/qml/qmldesigner/data/fx/states.qml
index 2e50ca9b7be4f11e7593d160b511ad461f54a3ce..932f8c5891837c0c92e96d5abb4eec2689bdbced 100644
--- a/tests/auto/qml/qmldesigner/data/fx/states.qml
+++ b/tests/auto/qml/qmldesigner/data/fx/states.qml
@@ -1,3 +1,35 @@
+/**************************************************************************
+**
+** 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.
+**
+**************************************************************************/
+
 import Qt 4.7
 
 Rectangle {
diff --git a/tests/auto/qml/qmldesigner/data/fx/subitems/SubItem.qml b/tests/auto/qml/qmldesigner/data/fx/subitems/SubItem.qml
index d518e0f84e1eef0ccaf61bf3720d25aa9204853f..297a4e1223d213d5977589b0994f0f15ae95f576 100644
--- a/tests/auto/qml/qmldesigner/data/fx/subitems/SubItem.qml
+++ b/tests/auto/qml/qmldesigner/data/fx/subitems/SubItem.qml
@@ -1,3 +1,35 @@
+/**************************************************************************
+**
+** 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.
+**
+**************************************************************************/
+
 import Qt 4.7
 
 Rectangle {
diff --git a/tests/auto/qml/qmldesigner/data/fx/tabs.qml b/tests/auto/qml/qmldesigner/data/fx/tabs.qml
index fba203cc249decb7affc4d2a53c06fd2df999e3d..c795acbc0b92eb140f36eb5f7876f7ceedde2b29 100644
--- a/tests/auto/qml/qmldesigner/data/fx/tabs.qml
+++ b/tests/auto/qml/qmldesigner/data/fx/tabs.qml
@@ -1,3 +1,35 @@
+/**************************************************************************
+**
+** 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.
+**
+**************************************************************************/
+
 import Qt 4.7
 
 TabWidget {
diff --git a/tests/auto/qml/qmldesigner/data/fx/topitem.qml b/tests/auto/qml/qmldesigner/data/fx/topitem.qml
index 244a7ac6f3e97c671c6000b9cbcdd37f3d45b115..829763bdb7a46ffe06158b7091570605e2fba017 100644
--- a/tests/auto/qml/qmldesigner/data/fx/topitem.qml
+++ b/tests/auto/qml/qmldesigner/data/fx/topitem.qml
@@ -1,3 +1,35 @@
+/**************************************************************************
+**
+** 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.
+**
+**************************************************************************/
+
 import Qt 4.7
 import Qt 4.7 as Qt46
 import "subitems"
diff --git a/tests/auto/qml/qmldesigner/data/fx/usingbutton.qml b/tests/auto/qml/qmldesigner/data/fx/usingbutton.qml
index 553a28cbfabb9faa4620958d684f25a5083cbb53..e479e24f822975dba8a9fd4f83dece2477e6e86a 100644
--- a/tests/auto/qml/qmldesigner/data/fx/usingbutton.qml
+++ b/tests/auto/qml/qmldesigner/data/fx/usingbutton.qml
@@ -1,3 +1,35 @@
+/**************************************************************************
+**
+** 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.
+**
+**************************************************************************/
+
 import Qt 4.7
 import "components" as X
 
diff --git a/tests/auto/qml/qmldesigner/data/fx/usingmybutton.qml b/tests/auto/qml/qmldesigner/data/fx/usingmybutton.qml
index e263cdde127c45c173f91009e4d3e88b5f874d09..6c1685575ad2b3fb0f4cf3092239cea6ba02c113 100644
--- a/tests/auto/qml/qmldesigner/data/fx/usingmybutton.qml
+++ b/tests/auto/qml/qmldesigner/data/fx/usingmybutton.qml
@@ -1,3 +1,35 @@
+/**************************************************************************
+**
+** 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.
+**
+**************************************************************************/
+
 import Qt 4.7
 
 Item {
diff --git a/tests/auto/qml/qmldesigner/data/qwidget/test.qml b/tests/auto/qml/qmldesigner/data/qwidget/test.qml
index 6f0fb82554095842cceea74dd951ae3d773ebab1..88149ff3777bb9d890f05a0eba0f6d43b00e3827 100644
--- a/tests/auto/qml/qmldesigner/data/qwidget/test.qml
+++ b/tests/auto/qml/qmldesigner/data/qwidget/test.qml
@@ -1,3 +1,35 @@
+/**************************************************************************
+**
+** 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.
+**
+**************************************************************************/
+
 <?xml version="1.0" encoding="UTF-8"?>
 <QWidget id="Form" x="300" y="200" width="455" height="376">
         <QPushButton id="pushButton" x="10" y="30" width="75" height="25">
diff --git a/tests/auto/qml/qmldesigner/propertyeditortests/testpropertyeditor.cpp b/tests/auto/qml/qmldesigner/propertyeditortests/testpropertyeditor.cpp
index cb0dd7f1732ed4dba8bbab1bd47683900a8cce3a..1927bf5b27acbf7e2c5d7eb1897e2fde6cd076fb 100644
--- a/tests/auto/qml/qmldesigner/propertyeditortests/testpropertyeditor.cpp
+++ b/tests/auto/qml/qmldesigner/propertyeditortests/testpropertyeditor.cpp
@@ -26,7 +26,7 @@
 ** 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 qt-info@nokia.com.
+** Nokia at info@qt.nokia.com.
 **
 **************************************************************************/
 
diff --git a/tests/auto/qml/qmldesigner/propertyeditortests/testpropertyeditor.h b/tests/auto/qml/qmldesigner/propertyeditortests/testpropertyeditor.h
index 0d041f4630888031765e77dc8495579bc1e3a21a..235fb40fe2209377a30b3a2c0f945353f790ca58 100644
--- a/tests/auto/qml/qmldesigner/propertyeditortests/testpropertyeditor.h
+++ b/tests/auto/qml/qmldesigner/propertyeditortests/testpropertyeditor.h
@@ -26,7 +26,7 @@
 ** 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 qt-info@nokia.com.
+** Nokia at info@qt.nokia.com.
 **
 **************************************************************************/
 
diff --git a/tests/auto/qml/qmldesigner/testview.cpp b/tests/auto/qml/qmldesigner/testview.cpp
index 3851ac77a024790bba084c0dc05dd31f6dec25ce..e445e27cf63a29c364f0cae4be22d75fa049baf4 100644
--- a/tests/auto/qml/qmldesigner/testview.cpp
+++ b/tests/auto/qml/qmldesigner/testview.cpp
@@ -26,7 +26,7 @@
 ** 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 qt-info@nokia.com.
+** Nokia at info@qt.nokia.com.
 **
 **************************************************************************/
 
diff --git a/tests/auto/qml/qmldesigner/testview.h b/tests/auto/qml/qmldesigner/testview.h
index 30c79767e87b6cf15b537b4fe3f34402e96574ed..6039fc2489a6ebc5c9fce6417b06630bf5e8bffe 100644
--- a/tests/auto/qml/qmldesigner/testview.h
+++ b/tests/auto/qml/qmldesigner/testview.h
@@ -26,7 +26,7 @@
 ** 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 qt-info@nokia.com.
+** Nokia at info@qt.nokia.com.
 **
 **************************************************************************/
 
diff --git a/tests/auto/qml/qmleditor/qmlcodeformatter/tst_qmlcodeformatter.cpp b/tests/auto/qml/qmleditor/qmlcodeformatter/tst_qmlcodeformatter.cpp
index d03593fba89150a45a82a3c90a95fd3b9aaae108..f45f35ef68db545cc844cf0f44f7ffb601ce599d 100644
--- a/tests/auto/qml/qmleditor/qmlcodeformatter/tst_qmlcodeformatter.cpp
+++ b/tests/auto/qml/qmleditor/qmlcodeformatter/tst_qmlcodeformatter.cpp
@@ -26,7 +26,7 @@
 ** 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 qt-info@nokia.com.
+** Nokia at info@qt.nokia.com.
 **
 **************************************************************************/
 
diff --git a/tests/auto/qml/qmleditor/qmllookup/data/localIdLookup.qml b/tests/auto/qml/qmleditor/qmllookup/data/localIdLookup.qml
index f3df6cd5e388611ba39c7ed91e6efc3d27115376..21306674dbdd8bc672aa75619cbdf9cc38f5493c 100644
--- a/tests/auto/qml/qmleditor/qmllookup/data/localIdLookup.qml
+++ b/tests/auto/qml/qmleditor/qmllookup/data/localIdLookup.qml
@@ -1,3 +1,35 @@
+/**************************************************************************
+**
+** 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.
+**
+**************************************************************************/
+
 import Qt 4.7
 
 // Try to look up x, y, z, opacity and visible
@@ -44,4 +76,4 @@ Item {
             }
         }
     }
-}
\ No newline at end of file
+}
diff --git a/tests/auto/qml/qmleditor/qmllookup/data/localRootLookup.qml b/tests/auto/qml/qmleditor/qmllookup/data/localRootLookup.qml
index 74562a03e6b56bc86a50effd839978a2e8bfa420..6b74e4e0d03a22e1a02dd4ee14b87f9b9b627a79 100644
--- a/tests/auto/qml/qmleditor/qmllookup/data/localRootLookup.qml
+++ b/tests/auto/qml/qmleditor/qmllookup/data/localRootLookup.qml
@@ -1,3 +1,35 @@
+/**************************************************************************
+**
+** 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.
+**
+**************************************************************************/
+
 import Qt 4.7
 
 // Try to look up prop in child.
diff --git a/tests/auto/qml/qmleditor/qmllookup/data/localScopeLookup.qml b/tests/auto/qml/qmleditor/qmllookup/data/localScopeLookup.qml
index e103232e4b9f1df975966e1c3964a4917a8e65cc..a339300bdb66526d3779198a48f0d1d1650e2c9f 100644
--- a/tests/auto/qml/qmleditor/qmllookup/data/localScopeLookup.qml
+++ b/tests/auto/qml/qmleditor/qmllookup/data/localScopeLookup.qml
@@ -1,3 +1,35 @@
+/**************************************************************************
+**
+** 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.
+**
+**************************************************************************/
+
 import Qt 4.7
 
 // Try to look up prop in all symbol contexts. 
diff --git a/tests/auto/qml/qmleditor/qmllookup/data/localScriptMethodLookup.qml b/tests/auto/qml/qmleditor/qmllookup/data/localScriptMethodLookup.qml
index 9d3f39bef42c262d4c3bb9497996e039fdcbaf7e..a368ab6a5718428569cccd87e8667c20b50ffd4e 100644
--- a/tests/auto/qml/qmleditor/qmllookup/data/localScriptMethodLookup.qml
+++ b/tests/auto/qml/qmleditor/qmllookup/data/localScriptMethodLookup.qml
@@ -1,3 +1,35 @@
+/**************************************************************************
+**
+** 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.
+**
+**************************************************************************/
+
 import Qt 4.7
 
 // Try to look up x, y, z
@@ -29,4 +61,4 @@ Item {
             property variant z: "wrong";
         }
     }
-}
\ No newline at end of file
+}
diff --git a/tests/auto/qml/qmlprojectmanager/fileformat/tst_fileformat.cpp b/tests/auto/qml/qmlprojectmanager/fileformat/tst_fileformat.cpp
index c89018e65c7100e5e1525b8ba356ea9776c7a3f8..ea326182bc8d8db991e9ab55fec71c63db05beff 100644
--- a/tests/auto/qml/qmlprojectmanager/fileformat/tst_fileformat.cpp
+++ b/tests/auto/qml/qmlprojectmanager/fileformat/tst_fileformat.cpp
@@ -26,7 +26,7 @@
 ** 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 qt-info@nokia.com.
+** Nokia at info@qt.nokia.com.
 **
 **************************************************************************/
 
diff --git a/tests/auto/qtcprocess/tst_qtcprocess.cpp b/tests/auto/qtcprocess/tst_qtcprocess.cpp
index 35b0d1343389aed75caa886e5f794823d5c75bc4..d8d9dbb59c2f5220eb7e2940e00e2bcb0cef7846 100644
--- a/tests/auto/qtcprocess/tst_qtcprocess.cpp
+++ b/tests/auto/qtcprocess/tst_qtcprocess.cpp
@@ -26,7 +26,7 @@
 ** 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 qt-info@nokia.com.
+** Nokia at info@qt.nokia.com.
 **
 **************************************************************************/
 
diff --git a/tests/auto/utils_stringutils/tst_stringutils.cpp b/tests/auto/utils_stringutils/tst_stringutils.cpp
index 270e286561dd484050386bdf51d81f245828187e..f6d372f7b902c0a2f5276e6b8f586f18bdc86403 100644
--- a/tests/auto/utils_stringutils/tst_stringutils.cpp
+++ b/tests/auto/utils_stringutils/tst_stringutils.cpp
@@ -26,7 +26,7 @@
 ** 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 qt-info@nokia.com.
+** Nokia at info@qt.nokia.com.
 **
 **************************************************************************/
 
diff --git a/tests/manual/appwizards/helpers.cpp b/tests/manual/appwizards/helpers.cpp
index 1c548b1ded1f76a21683b0ca4f2c2a97234fa596..ddd636df2136bea575cade2e726f90be8aae415d 100644
--- a/tests/manual/appwizards/helpers.cpp
+++ b/tests/manual/appwizards/helpers.cpp
@@ -26,7 +26,7 @@
 ** 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 qt-info@nokia.com.
+** Nokia at info@qt.nokia.com.
 **
 **************************************************************************/
 
diff --git a/tests/manual/appwizards/main.cpp b/tests/manual/appwizards/main.cpp
index 2f8b7c81a8032ed73282f9cef645fc574d8f25a8..f6b1a8a5ba0d1eba44b3e45ba2ca25206186cdf8 100644
--- a/tests/manual/appwizards/main.cpp
+++ b/tests/manual/appwizards/main.cpp
@@ -26,7 +26,7 @@
 ** 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 qt-info@nokia.com.
+** Nokia at info@qt.nokia.com.
 **
 **************************************************************************/
 
diff --git a/tests/manual/appwizards/qmlimportscenario_01/myqmlapp.qml b/tests/manual/appwizards/qmlimportscenario_01/myqmlapp.qml
index a01ab8c41f1e047da48e39cdc76d22dba2b471c7..bc96ad03817f87a696f9333d36c3565c00305419 100644
--- a/tests/manual/appwizards/qmlimportscenario_01/myqmlapp.qml
+++ b/tests/manual/appwizards/qmlimportscenario_01/myqmlapp.qml
@@ -1,3 +1,35 @@
+/**************************************************************************
+**
+** 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.
+**
+**************************************************************************/
+
 import QtQuick 1.0
 
 Rectangle {
diff --git a/tests/manual/appwizards/qmlimportscenario_01/qmlproject01/QmlProject01.qml b/tests/manual/appwizards/qmlimportscenario_01/qmlproject01/QmlProject01.qml
index 58056ec95825ab429eac46ea3a81a3c8f56676f8..005056518a1cfe153744c24d4b292d286f162a9b 100644
--- a/tests/manual/appwizards/qmlimportscenario_01/qmlproject01/QmlProject01.qml
+++ b/tests/manual/appwizards/qmlimportscenario_01/qmlproject01/QmlProject01.qml
@@ -1,3 +1,35 @@
+/**************************************************************************
+**
+** 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.
+**
+**************************************************************************/
+
 import Qt 4.7
 
 Rectangle {
diff --git a/tests/manual/appwizards/qmlimportscenario_01/qmlproject02/QmlProject02.qml b/tests/manual/appwizards/qmlimportscenario_01/qmlproject02/QmlProject02.qml
index 7a348db668f2925a96cc18ad91df3625a0f6153f..e79d4c0b55c3f71e6658501a7044fc1755a15392 100644
--- a/tests/manual/appwizards/qmlimportscenario_01/qmlproject02/QmlProject02.qml
+++ b/tests/manual/appwizards/qmlimportscenario_01/qmlproject02/QmlProject02.qml
@@ -1,3 +1,35 @@
+/**************************************************************************
+**
+** 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.
+**
+**************************************************************************/
+
 import Qt 4.7
 
 Rectangle {
diff --git a/tests/manual/appwizards/qmlimportscenario_02/subfolder1/myqmlapp.qml b/tests/manual/appwizards/qmlimportscenario_02/subfolder1/myqmlapp.qml
index a01ab8c41f1e047da48e39cdc76d22dba2b471c7..bc96ad03817f87a696f9333d36c3565c00305419 100644
--- a/tests/manual/appwizards/qmlimportscenario_02/subfolder1/myqmlapp.qml
+++ b/tests/manual/appwizards/qmlimportscenario_02/subfolder1/myqmlapp.qml
@@ -1,3 +1,35 @@
+/**************************************************************************
+**
+** 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.
+**
+**************************************************************************/
+
 import QtQuick 1.0
 
 Rectangle {
diff --git a/tests/manual/appwizards/qmlimportscenario_02/subfolder2/no/trolltech/QmlModule01/QmlComponent01.qml b/tests/manual/appwizards/qmlimportscenario_02/subfolder2/no/trolltech/QmlModule01/QmlComponent01.qml
index 7fc3078c5aadd8f030c052ce9d834faa70a9f81a..140e7aa8f2b98139a4f7e078d24916d553fa198b 100644
--- a/tests/manual/appwizards/qmlimportscenario_02/subfolder2/no/trolltech/QmlModule01/QmlComponent01.qml
+++ b/tests/manual/appwizards/qmlimportscenario_02/subfolder2/no/trolltech/QmlModule01/QmlComponent01.qml
@@ -1,3 +1,35 @@
+/**************************************************************************
+**
+** 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.
+**
+**************************************************************************/
+
 import Qt 4.7
 
 Rectangle {
diff --git a/tests/manual/appwizards/qmlimportscenario_02/subfolder3/com/nokia/QmlModule02/QmlComponent02.qml b/tests/manual/appwizards/qmlimportscenario_02/subfolder3/com/nokia/QmlModule02/QmlComponent02.qml
index ebbfb45487445eb827803a296b1c386927bb481f..0cefc4c5b9e5206d9ea2a434dd1207bdcaec1fcb 100644
--- a/tests/manual/appwizards/qmlimportscenario_02/subfolder3/com/nokia/QmlModule02/QmlComponent02.qml
+++ b/tests/manual/appwizards/qmlimportscenario_02/subfolder3/com/nokia/QmlModule02/QmlComponent02.qml
@@ -1,3 +1,35 @@
+/**************************************************************************
+**
+** 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.
+**
+**************************************************************************/
+
 import Qt 4.7
 
 Rectangle {
diff --git a/tests/manual/cplusplus-frontend/main.cpp b/tests/manual/cplusplus-frontend/main.cpp
index 464caaf55576858dc41a71a4b4312e9b3fe50a36..8926bff0d617c46adb843fc2843e08af690b3227 100644
--- a/tests/manual/cplusplus-frontend/main.cpp
+++ b/tests/manual/cplusplus-frontend/main.cpp
@@ -26,7 +26,7 @@
 ** 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 qt-info@nokia.com.
+** Nokia at info@qt.nokia.com.
 **
 **************************************************************************/
 
diff --git a/tests/manual/cplusplus-frontend/tests/t1.cpp b/tests/manual/cplusplus-frontend/tests/t1.cpp
index 37a7a6ef871999a839a9b78981d2e925c3f9fb56..c4858a88d6a6bb8578b5d1dd9b9c78aba4810b76 100644
--- a/tests/manual/cplusplus-frontend/tests/t1.cpp
+++ b/tests/manual/cplusplus-frontend/tests/t1.cpp
@@ -26,7 +26,7 @@
 ** 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 qt-info@nokia.com.
+** Nokia at info@qt.nokia.com.
 **
 **************************************************************************/
 
diff --git a/tests/manual/cplusplus-tools/detail/header.h b/tests/manual/cplusplus-tools/detail/header.h
index 99ae65de0e13639b841d4f36dff143b7088b01b9..72a50dd98a99eda23df3a9137beaddcaccf0ee4f 100644
--- a/tests/manual/cplusplus-tools/detail/header.h
+++ b/tests/manual/cplusplus-tools/detail/header.h
@@ -26,7 +26,7 @@
 ** 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 qt-info@nokia.com.
+** Nokia at info@qt.nokia.com.
 **
 **************************************************************************/
 
diff --git a/tests/manual/cplusplus-tools/detail/source.cpp b/tests/manual/cplusplus-tools/detail/source.cpp
index c1edc824d4edee114e9bb5ac8c1b19d596c97bb1..e820a14a2a9c9e09f4733d41c2c68fb76c81c5b8 100644
--- a/tests/manual/cplusplus-tools/detail/source.cpp
+++ b/tests/manual/cplusplus-tools/detail/source.cpp
@@ -26,7 +26,7 @@
 ** 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 qt-info@nokia.com.
+** Nokia at info@qt.nokia.com.
 **
 **************************************************************************/
 
diff --git a/tests/manual/cplusplus-tools/dummy.cpp b/tests/manual/cplusplus-tools/dummy.cpp
index 190bd2e67d5d0ac9bcdc6d6624d4ee30cea84128..e87e4443765e8a65d675e489d657398d72f34f35 100644
--- a/tests/manual/cplusplus-tools/dummy.cpp
+++ b/tests/manual/cplusplus-tools/dummy.cpp
@@ -26,7 +26,7 @@
 ** 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 qt-info@nokia.com.
+** Nokia at info@qt.nokia.com.
 **
 **************************************************************************/
 
diff --git a/tests/manual/cplusplus-tools/dummy.h b/tests/manual/cplusplus-tools/dummy.h
index 421332a1a3b11a5a7fd967f4d832ae04106d03fc..a898f9b66a5d7ef94f9d7d192da559008370aed8 100644
--- a/tests/manual/cplusplus-tools/dummy.h
+++ b/tests/manual/cplusplus-tools/dummy.h
@@ -26,7 +26,7 @@
 ** 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 qt-info@nokia.com.
+** Nokia at info@qt.nokia.com.
 **
 **************************************************************************/
 
diff --git a/tests/manual/cplusplus-tools/main.cpp b/tests/manual/cplusplus-tools/main.cpp
index 75ab889991b239ae130c6b0e4c5609a578b057c2..fddb143a38ceed08816d78ea55155e1881a6064c 100644
--- a/tests/manual/cplusplus-tools/main.cpp
+++ b/tests/manual/cplusplus-tools/main.cpp
@@ -26,7 +26,7 @@
 ** 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 qt-info@nokia.com.
+** Nokia at info@qt.nokia.com.
 **
 **************************************************************************/
 
diff --git a/tests/manual/cppquickfix/completeswitchcasestatement.cpp b/tests/manual/cppquickfix/completeswitchcasestatement.cpp
index fcf173f052c696f3ac92da923b00ffb67b44d7cf..6f8286eed9e2d036649f4327b55369f551734687 100644
--- a/tests/manual/cppquickfix/completeswitchcasestatement.cpp
+++ b/tests/manual/cppquickfix/completeswitchcasestatement.cpp
@@ -26,7 +26,7 @@
 ** 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 qt-info@nokia.com.
+** Nokia at info@qt.nokia.com.
 **
 **************************************************************************/
 
diff --git a/tests/manual/cppquickfix/convertnumericliteral.cpp b/tests/manual/cppquickfix/convertnumericliteral.cpp
index 22576e6781e799a6ecc23a544e2196bd90be72da..55bf4f0e51efa3b602ebc2e2c1724c79161d47c0 100644
--- a/tests/manual/cppquickfix/convertnumericliteral.cpp
+++ b/tests/manual/cppquickfix/convertnumericliteral.cpp
@@ -26,7 +26,7 @@
 ** 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 qt-info@nokia.com.
+** Nokia at info@qt.nokia.com.
 **
 **************************************************************************/
 
diff --git a/tests/manual/dockwidgets/main.cpp b/tests/manual/dockwidgets/main.cpp
index ea305d91e37a364b349ebb7ff5f64508423e02d8..3521ab0458e5bd79ac4768d238d8209ddb1e59bd 100644
--- a/tests/manual/dockwidgets/main.cpp
+++ b/tests/manual/dockwidgets/main.cpp
@@ -26,7 +26,7 @@
 ** 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 qt-info@nokia.com.
+** Nokia at info@qt.nokia.com.
 **
 **************************************************************************/
 
diff --git a/tests/manual/dockwidgets/mainwindow.cpp b/tests/manual/dockwidgets/mainwindow.cpp
index 9b7dfd96b72a09567d7fc8fd573b8b480a29a298..eacd29d05c9fd58664b95f4efe6502ab8b74157f 100644
--- a/tests/manual/dockwidgets/mainwindow.cpp
+++ b/tests/manual/dockwidgets/mainwindow.cpp
@@ -26,7 +26,7 @@
 ** 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 qt-info@nokia.com.
+** Nokia at info@qt.nokia.com.
 **
 **************************************************************************/
 
diff --git a/tests/manual/dockwidgets/mainwindow.h b/tests/manual/dockwidgets/mainwindow.h
index 3e83a3a687ebc6f22c44312fb4b29446510e375a..b146ee3a9680936022be18810bcf21ed4c45fcf7 100644
--- a/tests/manual/dockwidgets/mainwindow.h
+++ b/tests/manual/dockwidgets/mainwindow.h
@@ -26,7 +26,7 @@
 ** 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 qt-info@nokia.com.
+** Nokia at info@qt.nokia.com.
 **
 **************************************************************************/
 
diff --git a/tests/manual/fakevim/main.cpp b/tests/manual/fakevim/main.cpp
index a0f9c7f1aeaff7ed7338cf20c65615a034c178b9..491779d1312f71a9349a2c09fc6d21cfb794e6d4 100644
--- a/tests/manual/fakevim/main.cpp
+++ b/tests/manual/fakevim/main.cpp
@@ -26,7 +26,7 @@
 ** 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 qt-info@nokia.com.
+** Nokia at info@qt.nokia.com.
 **
 **************************************************************************/
 
diff --git a/tests/manual/gdbdebugger/boost/main.cpp b/tests/manual/gdbdebugger/boost/main.cpp
index 5bffac268ee5c98870e475d886a8cedb3debf59f..46f33b9723f2ecd608f911e2e79d254abf55a60e 100644
--- a/tests/manual/gdbdebugger/boost/main.cpp
+++ b/tests/manual/gdbdebugger/boost/main.cpp
@@ -26,7 +26,7 @@
 ** 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 qt-info@nokia.com.
+** Nokia at info@qt.nokia.com.
 **
 **************************************************************************/
 
diff --git a/tests/manual/gdbdebugger/gui/mainwindow.cpp b/tests/manual/gdbdebugger/gui/mainwindow.cpp
index a9aa5895ae632df3bca09850787d1b6991fe8f65..104671b994a928f85e5c4a4f9cb623f4912eeb2a 100644
--- a/tests/manual/gdbdebugger/gui/mainwindow.cpp
+++ b/tests/manual/gdbdebugger/gui/mainwindow.cpp
@@ -26,7 +26,7 @@
 ** 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 qt-info@nokia.com.
+** Nokia at info@qt.nokia.com.
 **
 **************************************************************************/
 
diff --git a/tests/manual/gdbdebugger/gui/mainwindow.h b/tests/manual/gdbdebugger/gui/mainwindow.h
index d46535e587ea292d01bd91d5196339e060ad821d..2a7479e4235f6b5d8718b780b6d525db5a34504c 100644
--- a/tests/manual/gdbdebugger/gui/mainwindow.h
+++ b/tests/manual/gdbdebugger/gui/mainwindow.h
@@ -26,7 +26,7 @@
 ** 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 qt-info@nokia.com.
+** Nokia at info@qt.nokia.com.
 **
 **************************************************************************/
 
diff --git a/tests/manual/gdbdebugger/gui/tst_gui.cpp b/tests/manual/gdbdebugger/gui/tst_gui.cpp
index 27505e9f1e63fc49bd1b6fa5a5502f30b510ac1e..e537b0db97022ec54798dfdb1c7268f40264d524 100644
--- a/tests/manual/gdbdebugger/gui/tst_gui.cpp
+++ b/tests/manual/gdbdebugger/gui/tst_gui.cpp
@@ -26,7 +26,7 @@
 ** 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 qt-info@nokia.com.
+** Nokia at info@qt.nokia.com.
 **
 **************************************************************************/
 
diff --git a/tests/manual/gdbdebugger/helper/main.cpp b/tests/manual/gdbdebugger/helper/main.cpp
index bd2771fdbe87d232e95ee40ee29ce2060429a227..72139b4c27a315a255ec93042a0846b47ef65a75 100644
--- a/tests/manual/gdbdebugger/helper/main.cpp
+++ b/tests/manual/gdbdebugger/helper/main.cpp
@@ -26,7 +26,7 @@
 ** 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 qt-info@nokia.com.
+** Nokia at info@qt.nokia.com.
 **
 **************************************************************************/
 
diff --git a/tests/manual/gdbdebugger/script/math.js b/tests/manual/gdbdebugger/script/math.js
index 28b152876f722f49abcb1d150bfda78d6c88630f..60462b8343d26a0520916718f3634d94c48e2aae 100644
--- a/tests/manual/gdbdebugger/script/math.js
+++ b/tests/manual/gdbdebugger/script/math.js
@@ -26,7 +26,7 @@
 ** 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 qt-info@nokia.com.
+** Nokia at info@qt.nokia.com.
 **
 **************************************************************************/
 
diff --git a/tests/manual/gdbdebugger/simple/deep/deep/simple_gdbtest_app.h b/tests/manual/gdbdebugger/simple/deep/deep/simple_gdbtest_app.h
index 0fe9c7b81e8fb8c115fc573d1d225c421f39c2ee..f3b02d659737a6a9553249610e0bea663eb23df4 100644
--- a/tests/manual/gdbdebugger/simple/deep/deep/simple_gdbtest_app.h
+++ b/tests/manual/gdbdebugger/simple/deep/deep/simple_gdbtest_app.h
@@ -4,30 +4,29 @@
 **
 ** Copyright (c) 2011 Nokia Corporation and/or its subsidiary(-ies).
 **
-** Contact: Nokia Corporation (qt-info@nokia.com)
+** Contact: Nokia Corporation (info@qt.nokia.com)
 **
-** No Commercial Usage
-**
-** This file contains pre-release code and may not be distributed.
-** You may use this file in accordance with the terms and conditions
-** contained in the Technology Preview License Agreement accompanying
-** this package.
 **
 ** GNU Lesser General Public License Usage
 **
-** Alternatively, 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.
+** 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
+** 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 qt-info@nokia.com.
+** Nokia at info@qt.nokia.com.
 **
 **************************************************************************/
 
diff --git a/tests/manual/gdbdebugger/simple/simple_gdbtest_app.cpp b/tests/manual/gdbdebugger/simple/simple_gdbtest_app.cpp
index de4766018e0167f2bd26bb63b89046bed991013e..53ffc7bd27dc305aec3651890230ba1148d2b55e 100644
--- a/tests/manual/gdbdebugger/simple/simple_gdbtest_app.cpp
+++ b/tests/manual/gdbdebugger/simple/simple_gdbtest_app.cpp
@@ -26,7 +26,7 @@
 ** 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 qt-info@nokia.com.
+** Nokia at info@qt.nokia.com.
 **
 **************************************************************************/
 
diff --git a/tests/manual/gdbdebugger/simple/simple_gdbtest_plugin.cpp b/tests/manual/gdbdebugger/simple/simple_gdbtest_plugin.cpp
index d1e8cb03e07464d261ea60afb426d1610e32934a..535a22c40f27f30060bf3b6b4246fad37c48061f 100644
--- a/tests/manual/gdbdebugger/simple/simple_gdbtest_plugin.cpp
+++ b/tests/manual/gdbdebugger/simple/simple_gdbtest_plugin.cpp
@@ -26,7 +26,7 @@
 ** 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 qt-info@nokia.com.
+** Nokia at info@qt.nokia.com.
 **
 **************************************************************************/
 
diff --git a/tests/manual/gdbdebugger/spacy path/app with space.cpp b/tests/manual/gdbdebugger/spacy path/app with space.cpp
index 7b0ee3781de9c8901d74adbbbb2cc1ed7049cea3..f94dd73a46a30298bb3a90bb08df5710ff4094d6 100644
--- a/tests/manual/gdbdebugger/spacy path/app with space.cpp	
+++ b/tests/manual/gdbdebugger/spacy path/app with space.cpp	
@@ -25,7 +25,7 @@
 ** 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 qt-info@nokia.com.
+** Nokia at info@qt.nokia.com.
 **
 **************************************************************************/
 
diff --git a/tests/manual/gdbdebugger/spacy path/plugin with space.cpp b/tests/manual/gdbdebugger/spacy path/plugin with space.cpp
index ea9498d51ee3e784d1eba1826bc1b496642de6d7..4b2b81c0f74e96997f34da3ef07838474f0c4684 100644
--- a/tests/manual/gdbdebugger/spacy path/plugin with space.cpp	
+++ b/tests/manual/gdbdebugger/spacy path/plugin with space.cpp	
@@ -25,7 +25,7 @@
 ** 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 qt-info@nokia.com.
+** Nokia at info@qt.nokia.com
 **
 **************************************************************************/
 
diff --git a/tests/manual/gdbdebugger/spacy-file/app with space.cpp b/tests/manual/gdbdebugger/spacy-file/app with space.cpp
index 7b0ee3781de9c8901d74adbbbb2cc1ed7049cea3..5048b41d187adc7da6f1c012cdc02191d35b3694 100644
--- a/tests/manual/gdbdebugger/spacy-file/app with space.cpp	
+++ b/tests/manual/gdbdebugger/spacy-file/app with space.cpp	
@@ -25,7 +25,7 @@
 ** 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 qt-info@nokia.com.
+** Nokia at info@qt.nokia.com
 **
 **************************************************************************/
 
diff --git a/tests/manual/gdbdebugger/spacy-file/plugin with space.cpp b/tests/manual/gdbdebugger/spacy-file/plugin with space.cpp
index ea9498d51ee3e784d1eba1826bc1b496642de6d7..4b2b81c0f74e96997f34da3ef07838474f0c4684 100644
--- a/tests/manual/gdbdebugger/spacy-file/plugin with space.cpp	
+++ b/tests/manual/gdbdebugger/spacy-file/plugin with space.cpp	
@@ -25,7 +25,7 @@
 ** 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 qt-info@nokia.com.
+** Nokia at info@qt.nokia.com
 **
 **************************************************************************/
 
diff --git a/tests/manual/plain-cplusplus/Preprocessor.cpp b/tests/manual/plain-cplusplus/Preprocessor.cpp
index 180cce83e7b87a5d7bbd8d71d5c2be34cedadb3e..d857a6e2c4e19599514901d6655fd087a8517333 100644
--- a/tests/manual/plain-cplusplus/Preprocessor.cpp
+++ b/tests/manual/plain-cplusplus/Preprocessor.cpp
@@ -26,7 +26,7 @@
 ** 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 qt-info@nokia.com.
+** Nokia at info@qt.nokia.com.
 **
 **************************************************************************/
 
diff --git a/tests/manual/plain-cplusplus/Preprocessor.h b/tests/manual/plain-cplusplus/Preprocessor.h
index e4c1c48e758ca7718ca941a755fc3ecb7fb29030..512f6850cc79cf63491dc11b9b2b17c284a5b944 100644
--- a/tests/manual/plain-cplusplus/Preprocessor.h
+++ b/tests/manual/plain-cplusplus/Preprocessor.h
@@ -26,7 +26,7 @@
 ** 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 qt-info@nokia.com.
+** Nokia at info@qt.nokia.com.
 **
 **************************************************************************/
 #ifndef CPLUSPLUS_PREPROCESSOR_H
diff --git a/tests/manual/plain-cplusplus/main.cpp b/tests/manual/plain-cplusplus/main.cpp
index 443397b65694121c983a926143e7d7c59c6e9524..78039deab36c4a2146ee19dd5f9265ef28b4079e 100644
--- a/tests/manual/plain-cplusplus/main.cpp
+++ b/tests/manual/plain-cplusplus/main.cpp
@@ -26,7 +26,7 @@
 ** 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 qt-info@nokia.com.
+** Nokia at info@qt.nokia.com.
 **
 **************************************************************************/
 
diff --git a/tests/manual/preprocessor/main.cpp b/tests/manual/preprocessor/main.cpp
index 15ef5f5c7156e09ed178dd84eda20dbfc7d3b283..a90ce47f9caf27b52551923682c589972bac4445 100644
--- a/tests/manual/preprocessor/main.cpp
+++ b/tests/manual/preprocessor/main.cpp
@@ -26,7 +26,7 @@
 ** 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 qt-info@nokia.com.
+** Nokia at info@qt.nokia.com.
 **
 **************************************************************************/
 
diff --git a/tests/manual/process/main.cpp b/tests/manual/process/main.cpp
index beecc16b28ab386812533bc0cfa198aa480be27c..bc1bb5e480793d8bf7ff085ab2a25824560cf668 100644
--- a/tests/manual/process/main.cpp
+++ b/tests/manual/process/main.cpp
@@ -26,7 +26,7 @@
 ** 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 qt-info@nokia.com.
+** Nokia at info@qt.nokia.com.
 **
 **************************************************************************/
 
diff --git a/tests/manual/process/mainwindow.cpp b/tests/manual/process/mainwindow.cpp
index 9ed451832b6c26fdcf8293cc14c56f0846a759af..f88ca43b598e5ff3f357f43cd02a65d57f5a9e05 100644
--- a/tests/manual/process/mainwindow.cpp
+++ b/tests/manual/process/mainwindow.cpp
@@ -26,7 +26,7 @@
 ** 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 qt-info@nokia.com.
+** Nokia at info@qt.nokia.com.
 **
 *************************************************************************/
 
diff --git a/tests/manual/process/mainwindow.h b/tests/manual/process/mainwindow.h
index 5cc48432a379e40955c5e3b72871fb1f1df2ae60..e3dacb255075d2aad9d1c132f172f0da779cb96d 100644
--- a/tests/manual/process/mainwindow.h
+++ b/tests/manual/process/mainwindow.h
@@ -26,7 +26,7 @@
 ** 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 qt-info@nokia.com.
+** Nokia at info@qt.nokia.com.
 **
 **************************************************************************/
 
diff --git a/tests/manual/progressmanager/main.cpp b/tests/manual/progressmanager/main.cpp
index a45c87e39e86b6c5548bf5a8c9d24f7127916fa3..83896f55fa143b09a89a2ec5ddd03156089905e0 100644
--- a/tests/manual/progressmanager/main.cpp
+++ b/tests/manual/progressmanager/main.cpp
@@ -26,7 +26,7 @@
 ** 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 qt-info@nokia.com.
+** Nokia at info@qt.nokia.com.
 **
 **************************************************************************/
 
diff --git a/tests/manual/progressmanager/roundprogress.cpp b/tests/manual/progressmanager/roundprogress.cpp
index 22449cbdf109958f5d4482b47bc68cc453b22256..b116c2be7071c2541219fcd5f087278a942c623c 100644
--- a/tests/manual/progressmanager/roundprogress.cpp
+++ b/tests/manual/progressmanager/roundprogress.cpp
@@ -26,7 +26,7 @@
 ** 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 qt-info@nokia.com.
+** Nokia at info@qt.nokia.com.
 **
 **************************************************************************/
 
diff --git a/tests/manual/progressmanager/roundprogress.h b/tests/manual/progressmanager/roundprogress.h
index 43f638e13d768035aa9376e669b1dbb51d7aa927..dbc5d636c551aec050d907878249db497818bb14 100644
--- a/tests/manual/progressmanager/roundprogress.h
+++ b/tests/manual/progressmanager/roundprogress.h
@@ -26,7 +26,7 @@
 ** 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 qt-info@nokia.com.
+** Nokia at info@qt.nokia.com.
 **
 **************************************************************************/
 
diff --git a/tests/manual/proparser/main.cpp b/tests/manual/proparser/main.cpp
index aec7292122459a76f4c4089f47f351b57b65bd4a..fb1543557f35f4148d5e2fc6fb4f0109c84eb4a8 100644
--- a/tests/manual/proparser/main.cpp
+++ b/tests/manual/proparser/main.cpp
@@ -26,7 +26,7 @@
 ** 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 qt-info@nokia.com.
+** Nokia at info@qt.nokia.com.
 **
 **************************************************************************/
 
diff --git a/tests/manual/qml/testfiles/components/MyButton.qml b/tests/manual/qml/testfiles/components/MyButton.qml
index 46daf874e75de4dff8d1f735c1fe2ddad3e5c4fc..64cb9b97009ae6b879a93994888797199dd94220 100644
--- a/tests/manual/qml/testfiles/components/MyButton.qml
+++ b/tests/manual/qml/testfiles/components/MyButton.qml
@@ -1,3 +1,35 @@
+/**************************************************************************
+**
+** 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.
+**
+**************************************************************************/
+
 import Qt 4.7
 
 Rectangle {
diff --git a/tests/manual/qml/testfiles/empty.qml b/tests/manual/qml/testfiles/empty.qml
index a99ada09cdb89e438d938585afb48c03fe9eea6f..5d1706cafd45aaae9a66619beca014f650b87647 100644
--- a/tests/manual/qml/testfiles/empty.qml
+++ b/tests/manual/qml/testfiles/empty.qml
@@ -1,3 +1,35 @@
+/**************************************************************************
+**
+** 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.
+**
+**************************************************************************/
+
 import Qt 4.7
 
 Rectangle {
diff --git a/tests/manual/qml/testfiles/flipable.qml b/tests/manual/qml/testfiles/flipable.qml
index 993a679fc9f28fec671f1e7fdbb79d7cdcad2670..f85aebac83a756fa92945302fa2536fc5dc0b9b7 100644
--- a/tests/manual/qml/testfiles/flipable.qml
+++ b/tests/manual/qml/testfiles/flipable.qml
@@ -1,3 +1,35 @@
+/**************************************************************************
+**
+** 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.
+**
+**************************************************************************/
+
 import Qt 4.7
 
 Flipable {
diff --git a/tests/manual/qml/testfiles/helloworld.qml b/tests/manual/qml/testfiles/helloworld.qml
index bc17ab1b27d85d324bb58526d268e504e7989654..9e906f58d8af8fa4623194bc95a11be510ab103c 100644
--- a/tests/manual/qml/testfiles/helloworld.qml
+++ b/tests/manual/qml/testfiles/helloworld.qml
@@ -1,3 +1,35 @@
+/**************************************************************************
+**
+** 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.
+**
+**************************************************************************/
+
 import Qt 4.7
 
 Rectangle {
diff --git a/tests/manual/qml/testfiles/helloworld_inverted.qml b/tests/manual/qml/testfiles/helloworld_inverted.qml
index 30f9300f1e9c28c3624420afd2110d9c4d0043c0..76dd0537ae43c1b501fc4234be4575cea300f8df 100644
--- a/tests/manual/qml/testfiles/helloworld_inverted.qml
+++ b/tests/manual/qml/testfiles/helloworld_inverted.qml
@@ -1,3 +1,35 @@
+/**************************************************************************
+**
+** 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.
+**
+**************************************************************************/
+
 import Qt 4.7
 
 Rectangle {
diff --git a/tests/manual/qml/testfiles/images.qml b/tests/manual/qml/testfiles/images.qml
index 56a50059152b2a7f1e8c0ac7168ccc6bed096653..4ad6b7e587edf1e66912c3296bed2fed53f34e08 100644
--- a/tests/manual/qml/testfiles/images.qml
+++ b/tests/manual/qml/testfiles/images.qml
@@ -1,3 +1,35 @@
+/**************************************************************************
+**
+** 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.
+**
+**************************************************************************/
+
 import Qt 4.7
 
 Rectangle {
diff --git a/tests/manual/qml/testfiles/listmodel.qml b/tests/manual/qml/testfiles/listmodel.qml
index ea7ef6829ab9c3bc880f04f4a6fd344413d8e36c..b85f678692d2d06a4a9b6204d81e0e5f45584468 100644
--- a/tests/manual/qml/testfiles/listmodel.qml
+++ b/tests/manual/qml/testfiles/listmodel.qml
@@ -1,3 +1,35 @@
+/**************************************************************************
+**
+** 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.
+**
+**************************************************************************/
+
 import Qt 4.7
 
 ListModel {
diff --git a/tests/manual/qml/testfiles/listview.qml b/tests/manual/qml/testfiles/listview.qml
index 9cceba83556232b2c453d06b9d2be556e6a05469..6e302c57ed86152f11bfdd5b13c860483964cc6f 100644
--- a/tests/manual/qml/testfiles/listview.qml
+++ b/tests/manual/qml/testfiles/listview.qml
@@ -1,3 +1,35 @@
+/**************************************************************************
+**
+** 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.
+**
+**************************************************************************/
+
 import QtQuick 1.0
 
 Item {
diff --git a/tests/manual/qml/testfiles/states.qml b/tests/manual/qml/testfiles/states.qml
index 2e50ca9b7be4f11e7593d160b511ad461f54a3ce..932f8c5891837c0c92e96d5abb4eec2689bdbced 100644
--- a/tests/manual/qml/testfiles/states.qml
+++ b/tests/manual/qml/testfiles/states.qml
@@ -1,3 +1,35 @@
+/**************************************************************************
+**
+** 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.
+**
+**************************************************************************/
+
 import Qt 4.7
 
 Rectangle {
diff --git a/tests/manual/qml/testfiles/subcomponent.qml b/tests/manual/qml/testfiles/subcomponent.qml
index 656c54ef7624a888dc89d03422880f9ced2d72f3..584d20beff9e4c50f2b8570cb8f7521dc9869703 100644
--- a/tests/manual/qml/testfiles/subcomponent.qml
+++ b/tests/manual/qml/testfiles/subcomponent.qml
@@ -1,3 +1,35 @@
+/**************************************************************************
+**
+** 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.
+**
+**************************************************************************/
+
 import Qt 4.7
 
 Rectangle {
diff --git a/tests/manual/qml/testfiles/usingbutton.qml b/tests/manual/qml/testfiles/usingbutton.qml
index 553a28cbfabb9faa4620958d684f25a5083cbb53..e479e24f822975dba8a9fd4f83dece2477e6e86a 100644
--- a/tests/manual/qml/testfiles/usingbutton.qml
+++ b/tests/manual/qml/testfiles/usingbutton.qml
@@ -1,3 +1,35 @@
+/**************************************************************************
+**
+** 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.
+**
+**************************************************************************/
+
 import Qt 4.7
 import "components" as X
 
diff --git a/tests/manual/qml/testfiles/webview.qml b/tests/manual/qml/testfiles/webview.qml
index 46fd1b34db9ae797f68697669cd9861ce153becc..e3c42a7c3c7d8b666aa83427c662006e77bfbd60 100644
--- a/tests/manual/qml/testfiles/webview.qml
+++ b/tests/manual/qml/testfiles/webview.qml
@@ -1,3 +1,35 @@
+/**************************************************************************
+**
+** 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.
+**
+**************************************************************************/
+
 import QtWebKit 1.0
 
 // Test loading of import libraries
diff --git a/tests/manual/ssh/errorhandling/main.cpp b/tests/manual/ssh/errorhandling/main.cpp
index c4308c8d0f3101c28bf7fd440d4c7c96a487153f..b67c1b5951c26f9ca15e6c06f267c433f4cfb55d 100644
--- a/tests/manual/ssh/errorhandling/main.cpp
+++ b/tests/manual/ssh/errorhandling/main.cpp
@@ -26,7 +26,7 @@
 ** 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 qt-info@nokia.com.
+** Nokia at info@qt.nokia.com.
 **
 **************************************************************************/
 
diff --git a/tests/manual/ssh/remoteprocess/argumentscollector.cpp b/tests/manual/ssh/remoteprocess/argumentscollector.cpp
index 8ba66d7ea34d396bb2bb7e118b2b1505169557b4..73e348b1e2c0ff14f3ba8fb56db25467ea5eb644 100644
--- a/tests/manual/ssh/remoteprocess/argumentscollector.cpp
+++ b/tests/manual/ssh/remoteprocess/argumentscollector.cpp
@@ -26,7 +26,7 @@
 ** 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 qt-info@nokia.com.
+** Nokia at info@qt.nokia.com.
 **
 **************************************************************************/
 
diff --git a/tests/manual/ssh/remoteprocess/argumentscollector.h b/tests/manual/ssh/remoteprocess/argumentscollector.h
index 473852cefa09fdb786b6f881b3b55612a612d1f4..6efdb0d1a732bfd076623a2efea38c4cfe0a1a75 100644
--- a/tests/manual/ssh/remoteprocess/argumentscollector.h
+++ b/tests/manual/ssh/remoteprocess/argumentscollector.h
@@ -26,7 +26,7 @@
 ** 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 qt-info@nokia.com.
+** Nokia at info@qt.nokia.com.
 **
 **************************************************************************/
 
diff --git a/tests/manual/ssh/remoteprocess/main.cpp b/tests/manual/ssh/remoteprocess/main.cpp
index 89ea6c5c2e8ffd9bc0083f0d97a7dde321ffb97d..747ee32f2b4d1304148226b05eb2b238ef201d13 100644
--- a/tests/manual/ssh/remoteprocess/main.cpp
+++ b/tests/manual/ssh/remoteprocess/main.cpp
@@ -26,7 +26,7 @@
 ** 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 qt-info@nokia.com.
+** Nokia at info@qt.nokia.com.
 **
 **************************************************************************/
 
diff --git a/tests/manual/ssh/remoteprocess/remoteprocesstest.cpp b/tests/manual/ssh/remoteprocess/remoteprocesstest.cpp
index cb1f489ed46be5ec0b26a72ab4378323d3ac9aa4..854caadea294d095e4251002a518c2c6f0032654 100644
--- a/tests/manual/ssh/remoteprocess/remoteprocesstest.cpp
+++ b/tests/manual/ssh/remoteprocess/remoteprocesstest.cpp
@@ -26,7 +26,7 @@
 ** 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 qt-info@nokia.com.
+** Nokia at info@qt.nokia.com.
 **
 **************************************************************************/
 
diff --git a/tests/manual/ssh/remoteprocess/remoteprocesstest.h b/tests/manual/ssh/remoteprocess/remoteprocesstest.h
index 6163f66f000298d68ee09e84b807f158e18e9814..d990379df043deb6ec175929f97679950e6fb036 100644
--- a/tests/manual/ssh/remoteprocess/remoteprocesstest.h
+++ b/tests/manual/ssh/remoteprocess/remoteprocesstest.h
@@ -26,7 +26,7 @@
 ** 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 qt-info@nokia.com.
+** Nokia at info@qt.nokia.com.
 **
 **************************************************************************/
 
diff --git a/tests/manual/ssh/sftp/argumentscollector.cpp b/tests/manual/ssh/sftp/argumentscollector.cpp
index 369f0c6fa40d0a706326cb9efcfd10f1d9a0177d..2bb5972596332c50905da076dc2bdf210b91f4f8 100644
--- a/tests/manual/ssh/sftp/argumentscollector.cpp
+++ b/tests/manual/ssh/sftp/argumentscollector.cpp
@@ -26,7 +26,7 @@
 ** 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 qt-info@nokia.com.
+** Nokia at info@qt.nokia.com.
 **
 **************************************************************************/
 
diff --git a/tests/manual/ssh/sftp/argumentscollector.h b/tests/manual/ssh/sftp/argumentscollector.h
index ad0d44f482bc30516f5133c4eb36c45bacc9bc53..460fe2df52c3b5ff4550bb76dcc4e8e191d0f259 100644
--- a/tests/manual/ssh/sftp/argumentscollector.h
+++ b/tests/manual/ssh/sftp/argumentscollector.h
@@ -26,7 +26,7 @@
 ** 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 qt-info@nokia.com.
+** Nokia at info@qt.nokia.com.
 **
 **************************************************************************/
 
diff --git a/tests/manual/ssh/sftp/main.cpp b/tests/manual/ssh/sftp/main.cpp
index be362916562c617525116b34ca01a0c7a24e67c8..51d5d8a70b7352625d7410c6bdece9d4d8f463b9 100644
--- a/tests/manual/ssh/sftp/main.cpp
+++ b/tests/manual/ssh/sftp/main.cpp
@@ -26,7 +26,7 @@
 ** 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 qt-info@nokia.com.
+** Nokia at info@qt.nokia.com.
 **
 **************************************************************************/
 
diff --git a/tests/manual/ssh/sftp/parameters.h b/tests/manual/ssh/sftp/parameters.h
index 66a364bc3d11cb0e4223c7a595003eced7231598..70372f7ad449cb2f34ebf76d5d359a3b3e76ecb5 100644
--- a/tests/manual/ssh/sftp/parameters.h
+++ b/tests/manual/ssh/sftp/parameters.h
@@ -26,7 +26,7 @@
 ** 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 qt-info@nokia.com.
+** Nokia at info@qt.nokia.com.
 **
 **************************************************************************/
 
diff --git a/tests/manual/ssh/sftp/sftptest.cpp b/tests/manual/ssh/sftp/sftptest.cpp
index 077ddc19c37e88eb2f55f44fb007b9c02aea6f79..aab3cb2e67032341d6b174dfdc61641de05932b2 100644
--- a/tests/manual/ssh/sftp/sftptest.cpp
+++ b/tests/manual/ssh/sftp/sftptest.cpp
@@ -26,7 +26,7 @@
 ** 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 qt-info@nokia.com.
+** Nokia at info@qt.nokia.com.
 **
 **************************************************************************/
 
diff --git a/tests/manual/ssh/sftp/sftptest.h b/tests/manual/ssh/sftp/sftptest.h
index 34c6607c0d33131003789c3f9d7fe935fd367f80..c1a093adc2c116c4bc9c4eeb454f781a34daaf6f 100644
--- a/tests/manual/ssh/sftp/sftptest.h
+++ b/tests/manual/ssh/sftp/sftptest.h
@@ -26,7 +26,7 @@
 ** 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 qt-info@nokia.com.
+** Nokia at info@qt.nokia.com.
 **
 **************************************************************************/
 
diff --git a/tests/tools/codaclient/codaclientapplication.cpp b/tests/tools/codaclient/codaclientapplication.cpp
index 62a55385d4c114dbf0c9e9fe0840462935a5f6a1..b6667b4f1b9a5d888c99844fc6c2b15b322fa8f6 100644
--- a/tests/tools/codaclient/codaclientapplication.cpp
+++ b/tests/tools/codaclient/codaclientapplication.cpp
@@ -26,7 +26,7 @@
 ** 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 qt-info@nokia.com.
+** Nokia at info@qt.nokia.com.
 **
 **************************************************************************/
 
diff --git a/tests/tools/codaclient/codaclientapplication.h b/tests/tools/codaclient/codaclientapplication.h
index 6bed1c99399f80c8f8db5a0a4bcee2eccee1b84b..88beb596b8ff3b4418d06f435f595a206344b017 100644
--- a/tests/tools/codaclient/codaclientapplication.h
+++ b/tests/tools/codaclient/codaclientapplication.h
@@ -26,7 +26,7 @@
 ** 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 qt-info@nokia.com.
+** Nokia at info@qt.nokia.com.
 **
 **************************************************************************/
 
diff --git a/tests/tools/codaclient/main.cpp b/tests/tools/codaclient/main.cpp
index 80487ab5aa0000a2db3e5061e1f5d677ab9d498b..0c6ba42e69ca33c62d3c186e3c1f89fdea321976 100644
--- a/tests/tools/codaclient/main.cpp
+++ b/tests/tools/codaclient/main.cpp
@@ -26,7 +26,7 @@
 ** 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 qt-info@nokia.com.
+** Nokia at info@qt.nokia.com.
 **
 **************************************************************************/
 
diff --git a/tests/tools/cplusplus-dump/dumpers.inc b/tests/tools/cplusplus-dump/dumpers.inc
index c97824eb3d6b8c115c0e4531c0a85109bcde687b..507ef64a5f9561dc0580034c120c571e56adc445 100644
--- a/tests/tools/cplusplus-dump/dumpers.inc
+++ b/tests/tools/cplusplus-dump/dumpers.inc
@@ -26,7 +26,7 @@
 ** 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 qt-info@nokia.com.
+** Nokia at info@qt.nokia.com.
 **
 **************************************************************************/
 
diff --git a/tests/tools/cplusplus-dump/tests/templ01.cpp b/tests/tools/cplusplus-dump/tests/templ01.cpp
index dcabffae59ef410a7e5584fc3a7252d184a084cc..53453b51229b25a389081719fcf3c4a875b5ee55 100644
--- a/tests/tools/cplusplus-dump/tests/templ01.cpp
+++ b/tests/tools/cplusplus-dump/tests/templ01.cpp
@@ -1,3 +1,34 @@
+/**************************************************************************
+**
+** 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.
+**
+**************************************************************************/
 
 struct QString
 {
diff --git a/tests/tools/qtquickappblaster/main.cpp b/tests/tools/qtquickappblaster/main.cpp
index 36e58195064db15deb84391663211814e6654b00..0b235e1942b1b5e9d694cb1705f04f625038d8e8 100644
--- a/tests/tools/qtquickappblaster/main.cpp
+++ b/tests/tools/qtquickappblaster/main.cpp
@@ -26,7 +26,7 @@
 ** 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 qt-info@nokia.com.
+** Nokia at info@qt.nokia.com.
 **
 **************************************************************************/
 
diff --git a/tests/valgrind/callgrind/callgrindparsertests.cpp b/tests/valgrind/callgrind/callgrindparsertests.cpp
index 73a6c8bd4d10f31f73a994dc821212cf5477a8c6..7021e57634d44d75a0e991a56c07aeead72e75f4 100644
--- a/tests/valgrind/callgrind/callgrindparsertests.cpp
+++ b/tests/valgrind/callgrind/callgrindparsertests.cpp
@@ -1,33 +1,32 @@
 /**************************************************************************
 **
-** This file is part of Qt Creator Instrumentation Tools
+** This file is part of Qt Creator
 **
 ** Copyright (c) 2011 Nokia Corporation and/or its subsidiary(-ies).
 **
-** Contact: Nokia Corporation (qt-info@nokia.com)
+** Contact: Nokia Corporation (info@qt.nokia.com)
 **
-** No Commercial Usage
-**
-** This file contains pre-release code and may not be distributed.
-** You may use this file in accordance with the terms and conditions
-** contained in the Technology Preview License Agreement accompanying
-** this package.
 **
 ** GNU Lesser General Public License Usage
 **
-** Alternatively, 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.
+** 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
+** 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 qt-info@nokia.com.
+** Nokia at info@qt.nokia.com.
 **
 **************************************************************************/
 
diff --git a/tests/valgrind/callgrind/callgrindparsertests.h b/tests/valgrind/callgrind/callgrindparsertests.h
index 545c77f4356c78bc885195471c0a9217f41e64ad..56048b537a18de97b00e734688d27451389db462 100644
--- a/tests/valgrind/callgrind/callgrindparsertests.h
+++ b/tests/valgrind/callgrind/callgrindparsertests.h
@@ -1,33 +1,32 @@
 /**************************************************************************
 **
-** This file is part of Qt Creator Instrumentation Tools
+** This file is part of Qt Creator
 **
 ** Copyright (c) 2011 Nokia Corporation and/or its subsidiary(-ies).
 **
-** Contact: Nokia Corporation (qt-info@nokia.com)
+** Contact: Nokia Corporation (info@qt.nokia.com)
 **
-** No Commercial Usage
-**
-** This file contains pre-release code and may not be distributed.
-** You may use this file in accordance with the terms and conditions
-** contained in the Technology Preview License Agreement accompanying
-** this package.
 **
 ** GNU Lesser General Public License Usage
 **
-** Alternatively, 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.
+** 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
+** 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 qt-info@nokia.com.
+** Nokia at info@qt.nokia.com.
 **
 **************************************************************************/
 
diff --git a/tests/valgrind/callgrind/modeltest.cpp b/tests/valgrind/callgrind/modeltest.cpp
index 53030f8c6b31f5abc3eda83253f274cd002591f7..77cf91df7e470f711d876d135a99c49144cbb62a 100644
--- a/tests/valgrind/callgrind/modeltest.cpp
+++ b/tests/valgrind/callgrind/modeltest.cpp
@@ -4,30 +4,29 @@
 **
 ** Copyright (c) 2011 Nokia Corporation and/or its subsidiary(-ies).
 **
-** Contact: Nokia Corporation (qt-info@nokia.com)
+** Contact: Nokia Corporation (info@qt.nokia.com)
 **
-** No Commercial Usage
-**
-** This file contains pre-release code and may not be distributed.
-** You may use this file in accordance with the terms and conditions
-** contained in the Technology Preview License Agreement accompanying
-** this package.
 **
 ** GNU Lesser General Public License Usage
 **
-** Alternatively, 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.
+** 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
+** 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 qt-info@nokia.com.
+** Nokia at info@qt.nokia.com.
 **
 **************************************************************************/
 
diff --git a/tests/valgrind/callgrind/modeltest.h b/tests/valgrind/callgrind/modeltest.h
index 0a6e181c17e3d3358d4778d35bd25d8d5326a7eb..1f93af1aa327ddf3ade96cdc4dbdb4c5d8a786db 100644
--- a/tests/valgrind/callgrind/modeltest.h
+++ b/tests/valgrind/callgrind/modeltest.h
@@ -26,7 +26,7 @@
 ** 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 qt-info@nokia.com.
+** Nokia at info@qt.nokia.com.
 **
 **************************************************************************/
 
diff --git a/tests/valgrind/memcheck/modeldemo.cpp b/tests/valgrind/memcheck/modeldemo.cpp
index a5cf21d24b952e2317ae1d556dd38cf96ec98417..fdaac18046ba14e032f769dd487a684559fc1122 100644
--- a/tests/valgrind/memcheck/modeldemo.cpp
+++ b/tests/valgrind/memcheck/modeldemo.cpp
@@ -28,7 +28,7 @@
 ** 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 qt-info@nokia.com.
+** Nokia at info@qt.nokia.com.
 **
 **************************************************************************/
 
diff --git a/tests/valgrind/memcheck/modeldemo.h b/tests/valgrind/memcheck/modeldemo.h
index 0f6fcb476049affd7bf7f935071d023bd4fad948..135535e3caaedfde2bafc1c3bad8cad1cf6a610c 100644
--- a/tests/valgrind/memcheck/modeldemo.h
+++ b/tests/valgrind/memcheck/modeldemo.h
@@ -28,7 +28,7 @@
 ** 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 qt-info@nokia.com.
+** Nokia at info@qt.nokia.com.
 **
 **************************************************************************/
 
diff --git a/tests/valgrind/memcheck/parsertests.cpp b/tests/valgrind/memcheck/parsertests.cpp
index 9c53c6252ca13ac93fde8ed4c6e2076d3cde30a2..8fb296cd2787ef168133cf845b298bc2c5cfd97c 100644
--- a/tests/valgrind/memcheck/parsertests.cpp
+++ b/tests/valgrind/memcheck/parsertests.cpp
@@ -1,19 +1,13 @@
 /**************************************************************************
 **
-** This file is part of Qt Creator Analyzer Tools
+** This file is part of Qt Creator
 **
-** Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+** Copyright (c) 2011 Nokia Corporation and/or its subsidiary(-ies).
 **
 ** Author: Frank Osterfeld, KDAB (frank.osterfeld@kdab.com)
 **
 ** Contact: Nokia Corporation (info@qt.nokia.com)
 **
-** Commercial Usage
-**
-** Licensees holding valid Qt Commercial licenses may use this file 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
 **
@@ -24,8 +18,17 @@
 ** Public License version 2.1 requirements will be met:
 ** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
 **
-** If you are unsure which license is appropriate for your use, please
-** contact the sales department at http://qt.nokia.com/contact.
+** 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.
 **
 **************************************************************************/
 
diff --git a/tests/valgrind/memcheck/parsertests.h b/tests/valgrind/memcheck/parsertests.h
index a5b08fdb266b526a0bda09a92db7cf36c5083027..b157d0338a34a690d76001a2122fa63d756e1777 100644
--- a/tests/valgrind/memcheck/parsertests.h
+++ b/tests/valgrind/memcheck/parsertests.h
@@ -1,19 +1,13 @@
 /**************************************************************************
 **
-** This file is part of Qt Creator Analyzer Tools
+** This file is part of Qt Creator
 **
-** Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+** Copyright (c) 2011 Nokia Corporation and/or its subsidiary(-ies).
 **
 ** Author: Frank Osterfeld, KDAB (frank.osterfeld@kdab.com)
 **
 ** Contact: Nokia Corporation (info@qt.nokia.com)
 **
-** Commercial Usage
-**
-** Licensees holding valid Qt Commercial licenses may use this file 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
 **
@@ -24,8 +18,17 @@
 ** Public License version 2.1 requirements will be met:
 ** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
 **
-** If you are unsure which license is appropriate for your use, please
-** contact the sales department at http://qt.nokia.com/contact.
+** 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.
 **
 **************************************************************************/
 
diff --git a/tests/valgrind/memcheck/testapps/free1/main.cpp b/tests/valgrind/memcheck/testapps/free1/main.cpp
index 7b847565586793d9ad30328d01b65bcd9bc582b7..c5b7787a90395f155abe8b115ab9b46a98451e0f 100644
--- a/tests/valgrind/memcheck/testapps/free1/main.cpp
+++ b/tests/valgrind/memcheck/testapps/free1/main.cpp
@@ -1,3 +1,35 @@
+/**************************************************************************
+**
+** 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 <cstdlib>
 
 int main()
diff --git a/tests/valgrind/memcheck/testapps/free2/main.cpp b/tests/valgrind/memcheck/testapps/free2/main.cpp
index cb4e295c61c82e616ecfb19d93fef9a0c9bd9410..f624174ed902e5eda8e1471933605dc28ba65661 100644
--- a/tests/valgrind/memcheck/testapps/free2/main.cpp
+++ b/tests/valgrind/memcheck/testapps/free2/main.cpp
@@ -1,3 +1,35 @@
+/**************************************************************************
+**
+** 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 <cstdlib>
 
 int main()
diff --git a/tests/valgrind/memcheck/testapps/invalidjump/main.cpp b/tests/valgrind/memcheck/testapps/invalidjump/main.cpp
index 7c608d40234a5a49a01c47d5ce75c4bd4ce56a1f..08ca68d6e36f35c6107e16f59a49600f536a095e 100644
--- a/tests/valgrind/memcheck/testapps/invalidjump/main.cpp
+++ b/tests/valgrind/memcheck/testapps/invalidjump/main.cpp
@@ -1,3 +1,35 @@
+/**************************************************************************
+**
+** 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.
+**
+**************************************************************************/
+
 void foo() { }
 
 int main()
diff --git a/tests/valgrind/memcheck/testapps/leak1/main.cpp b/tests/valgrind/memcheck/testapps/leak1/main.cpp
index db71561a6bb78be24eeb6fbbba5c4711ea906b9f..4441f4c655bce7796816af87984ea8b1288957c6 100644
--- a/tests/valgrind/memcheck/testapps/leak1/main.cpp
+++ b/tests/valgrind/memcheck/testapps/leak1/main.cpp
@@ -1,3 +1,35 @@
+/**************************************************************************
+**
+** 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 <qglobal.h>
 
 int main()
diff --git a/tests/valgrind/memcheck/testapps/leak2/main.cpp b/tests/valgrind/memcheck/testapps/leak2/main.cpp
index 6a6ec0745bcc59b34d90bee4e610a6c34ee15429..cb7ecc206b1db6369e0ea44fb90261bd45c5c416 100644
--- a/tests/valgrind/memcheck/testapps/leak2/main.cpp
+++ b/tests/valgrind/memcheck/testapps/leak2/main.cpp
@@ -1,3 +1,35 @@
+/**************************************************************************
+**
+** 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 <string.h>
 
 char *lower;
diff --git a/tests/valgrind/memcheck/testapps/leak3/main.cpp b/tests/valgrind/memcheck/testapps/leak3/main.cpp
index 13735b670871a110a64669b811528d3ba06014bd..aeab3e8368f9d11948b1208ceab1fa546af9172a 100644
--- a/tests/valgrind/memcheck/testapps/leak3/main.cpp
+++ b/tests/valgrind/memcheck/testapps/leak3/main.cpp
@@ -1,3 +1,35 @@
+/**************************************************************************
+**
+** 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 <string.h>
 
 char *lower;
diff --git a/tests/valgrind/memcheck/testapps/leak4/main.cpp b/tests/valgrind/memcheck/testapps/leak4/main.cpp
index 79999a5c9ad028a5146f0fb3871100eba2d36b6c..9dadc2cf639fd16f79ab8d388963a23b96228ee3 100644
--- a/tests/valgrind/memcheck/testapps/leak4/main.cpp
+++ b/tests/valgrind/memcheck/testapps/leak4/main.cpp
@@ -1,3 +1,35 @@
+/**************************************************************************
+**
+** 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 <qglobal.h>
 
 struct Foo
diff --git a/tests/valgrind/memcheck/testapps/overlap/main.cpp b/tests/valgrind/memcheck/testapps/overlap/main.cpp
index 0066239a106fd66d4036e2200c7f286e958fb0c3..46c64d8d5b0bd8aea09adee14832536128dca6a8 100644
--- a/tests/valgrind/memcheck/testapps/overlap/main.cpp
+++ b/tests/valgrind/memcheck/testapps/overlap/main.cpp
@@ -1,3 +1,35 @@
+/**************************************************************************
+**
+** 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 <string.h>
 
 int main()
diff --git a/tests/valgrind/memcheck/testapps/syscall/main.cpp b/tests/valgrind/memcheck/testapps/syscall/main.cpp
index 2411cb909ab7d5c478e57eeae4856cc9d79a5e40..70978c2e991e74ae2846967e3519fda8d43162ae 100644
--- a/tests/valgrind/memcheck/testapps/syscall/main.cpp
+++ b/tests/valgrind/memcheck/testapps/syscall/main.cpp
@@ -1,3 +1,35 @@
+/**************************************************************************
+**
+** 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.
+**
+**************************************************************************/
+
 #pragma GCC diagnostic ignored "-Wuninitialized"
 
 int main()
diff --git a/tests/valgrind/memcheck/testapps/uninit1/main.cpp b/tests/valgrind/memcheck/testapps/uninit1/main.cpp
index 301da075fe692889795c76fe16c5809f1b859412..c35672b482b49c687cccf98b8347bb3aa4d563ec 100644
--- a/tests/valgrind/memcheck/testapps/uninit1/main.cpp
+++ b/tests/valgrind/memcheck/testapps/uninit1/main.cpp
@@ -1,3 +1,35 @@
+/**************************************************************************
+**
+** 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.
+**
+**************************************************************************/
+
 #pragma GCC diagnostic ignored "-Wuninitialized"
 
 int main()
diff --git a/tests/valgrind/memcheck/testapps/uninit2/main.cpp b/tests/valgrind/memcheck/testapps/uninit2/main.cpp
index 0deb9566482b44e717a56d29f089f6a2c8d87152..7610d7549c3d161536435bee2f2e530d466d1c01 100644
--- a/tests/valgrind/memcheck/testapps/uninit2/main.cpp
+++ b/tests/valgrind/memcheck/testapps/uninit2/main.cpp
@@ -1,3 +1,35 @@
+/**************************************************************************
+**
+** 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.
+**
+**************************************************************************/
+
 #pragma GCC diagnostic ignored "-Wuninitialized"
 
 int main()
diff --git a/tests/valgrind/memcheck/testapps/uninit3/main.cpp b/tests/valgrind/memcheck/testapps/uninit3/main.cpp
index 5320e6d5f36613944a7f8da5decdd739fb99f3b1..31c5d70b369a1a4146418349476395363336b992 100644
--- a/tests/valgrind/memcheck/testapps/uninit3/main.cpp
+++ b/tests/valgrind/memcheck/testapps/uninit3/main.cpp
@@ -1,3 +1,35 @@
+/**************************************************************************
+**
+** 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.
+**
+**************************************************************************/
+
 #pragma GCC diagnostic ignored "-Wuninitialized"
 
 int main()
diff --git a/tests/valgrind/memcheck/testrunner.cpp b/tests/valgrind/memcheck/testrunner.cpp
index 2618f73924fc6288785abd4274cc8f9d061f242d..c063e5227eb18fa217d4859fc35599169ff444d2 100644
--- a/tests/valgrind/memcheck/testrunner.cpp
+++ b/tests/valgrind/memcheck/testrunner.cpp
@@ -28,7 +28,7 @@
 ** 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 qt-info@nokia.com.
+** Nokia at info@qt.nokia.com.
 **
 **************************************************************************/
 
diff --git a/tests/valgrind/memcheck/testrunner.h b/tests/valgrind/memcheck/testrunner.h
index 3f8efe029ca67d334219e03623dc9f66312536cf..36218c56841b189d4966e039d7a01ca97f3e3927 100644
--- a/tests/valgrind/memcheck/testrunner.h
+++ b/tests/valgrind/memcheck/testrunner.h
@@ -28,7 +28,7 @@
 ** 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 qt-info@nokia.com.
+** Nokia at info@qt.nokia.com.
 **
 **************************************************************************/