diff --git a/doc/src/analyze/qtquick-profiler.qdoc b/doc/src/analyze/qtquick-profiler.qdoc
index fa73ac388b33acd3abad50036ec98843c0314cd9..ef3dd9d415a3953444837b3a58df22c762f7f98e 100644
--- a/doc/src/analyze/qtquick-profiler.qdoc
+++ b/doc/src/analyze/qtquick-profiler.qdoc
@@ -80,8 +80,8 @@
         \li In the \uicontrol Projects mode, select a \l{glossary-buildandrun-kit}
             {kit} with Qt version 4.7.4 or later.
 
-            \note To profile applications on devices, you must install Qt 4.7.4
-            or later libraries on them.
+            \note To profile applications on \l{glossary-device}{devices}, you
+            must install Qt 4.7.4 or later libraries on them.
 
         \li Select \uicontrol {Analyze > QML Profiler} to profile the current
             application.
diff --git a/doc/src/debugger/creator-debugger-setup.qdoc b/doc/src/debugger/creator-debugger-setup.qdoc
index 0e5d9c0261abc0cfaf2f72c002466ebceab74970..18da23ada979b4191c7e45cace5ccffbcbd2bf57 100644
--- a/doc/src/debugger/creator-debugger-setup.qdoc
+++ b/doc/src/debugger/creator-debugger-setup.qdoc
@@ -120,7 +120,7 @@
     or newer.
 
     For remote debugging using GDB and GDB server, the minimum supported version
-    of GDB server on the target device is 7.0.
+    of GDB server on the target \l{glossary-device}{device} is 7.0.
 
     \section2 Supported CDB Versions
 
diff --git a/doc/src/debugger/creator-debugger.qdoc b/doc/src/debugger/creator-debugger.qdoc
index 8812b0a06c3c9e93161fa64e7880df3b80bd6dde..4d3f92284680589ed9cf09d05fe9a6988d56ec0c 100644
--- a/doc/src/debugger/creator-debugger.qdoc
+++ b/doc/src/debugger/creator-debugger.qdoc
@@ -995,8 +995,12 @@
 
     To get started with implementing debugging helpers for your own data types,
     you can put their implementation into the file
-    \c share/qtcreator/debugger/personaltypes.py in your \QC installation. The
-    file contains one example implementation:
+    \c share/qtcreator/debugger/personaltypes.py in your Qt installation or
+    stand-alone \QC installation. On \macos, the file is bundled into the
+    \QC application package, where it is located in the
+    \c Contents/resources/debugger folder.
+
+    The \c personaltypes.py file contains one example implementation:
 
     \quotefromfile ../../share/qtcreator/debugger/personaltypes.py
     \skipto qdump__
@@ -1009,7 +1013,8 @@
         \li Open the \c share/qtcreator/debugger/personaltypes.py file for
             editing. For example, if your Qt installation is located in the
             \c Qt5 directory on Windows, look in
-            \c C:\Qt5\Tools\QtCreator\share\qtcreator\debugger.
+            \c C:\Qt5\Tools\QtCreator\share\qtcreator\debugger. On \macos, look
+            in \c {Qt5/Qt Creator.app/Contents/resources/debugger}.
 
         \li Add your dumper implementation to the end of the \c personaltypes.py
             file.  For more information about implementing debugging helpers,
diff --git a/doc/src/debugger/qtquick-debugging.qdoc b/doc/src/debugger/qtquick-debugging.qdoc
index 53578482d88e2ec2228bba35ef7e1f263e9ea8af..3fbd5356652e7349e392b5580c214bbdd8ef7846 100644
--- a/doc/src/debugger/qtquick-debugging.qdoc
+++ b/doc/src/debugger/qtquick-debugging.qdoc
@@ -75,8 +75,8 @@
         \li Select \uicontrol {Build > Rebuild Project} to clean and rebuild the
             project.
 
-        \li To debug applications on devices, check that Qt 5.0, or later,
-            libraries are installed on the device and
+        \li To debug applications on \l{glossary-device}{devices}, check that
+            Qt 5.0, or later, libraries are installed on the device and
             \l{Running on Multiple Platforms}{select the corresponding kit for the device}
             before you start debugging.
 
diff --git a/doc/src/howto/creator-tips.qdoc b/doc/src/howto/creator-tips.qdoc
index 5401707cddfe5f18d317d3f5bd68a30a1ec43a53..57e2d26c504cf92eec08eada820dd20e5078b929 100644
--- a/doc/src/howto/creator-tips.qdoc
+++ b/doc/src/howto/creator-tips.qdoc
@@ -255,5 +255,6 @@
 
     \QC stores copied text in clipboard history. To retrieve clips from the
     history, press \key {Ctrl+Shift+V} until the clip appears.
+    The number of clips in the history is fixed to 10.
 
 */
diff --git a/doc/src/howto/creator-ui.qdoc b/doc/src/howto/creator-ui.qdoc
index 3e6207a8241f5c298cc70122c9ee8a6c551ae29a..c0b20ffa0b90a3bc321a7d17354038c1376ebde9 100644
--- a/doc/src/howto/creator-ui.qdoc
+++ b/doc/src/howto/creator-ui.qdoc
@@ -378,7 +378,7 @@
             example, information about missing DLLs.
 
        \li \uicontrol Deployment - Errors encountered between building an application
-            successfully and starting it on a device.
+            successfully and starting it on a \l{glossary-device}{device}.
 
         \li \uicontrol {My Tasks} - Entries from a task list file (.tasks) generated
             by \l{Showing Task List Files in Issues Pane}
diff --git a/doc/src/overview/creator-advanced.qdoc b/doc/src/overview/creator-advanced.qdoc
index 3a938c875c8cc6d331a78c0b85f15dd064270d39..7d480e6660d28160aca21b6abae421d5179c92fb 100644
--- a/doc/src/overview/creator-advanced.qdoc
+++ b/doc/src/overview/creator-advanced.qdoc
@@ -55,7 +55,7 @@
         \li \l{Supported Platforms}
 
             You can install and run \QC on several operating systems to create
-            applications for multiple desktop, embedded, and mobile device
+            applications for multiple desktop and \l{glossary-device}{device}
             platforms.
 
         \li \l{Using Other Build Systems}
diff --git a/doc/src/overview/creator-configuring.qdoc b/doc/src/overview/creator-configuring.qdoc
index 7ec9efa4976e9edc7573291f0d66a34a991011b7..f5d5be3267cd1c8dcf9ac5fafc5b76a0e0c6ea8a 100644
--- a/doc/src/overview/creator-configuring.qdoc
+++ b/doc/src/overview/creator-configuring.qdoc
@@ -73,7 +73,8 @@
     For more information, see \l{Adding Kits}.
 
     Each kit consists of a set of values that define one environment, such as a
-    device, compiler, and Qt version. If you know you have installed a Qt
+    \l{glossary-device}{device}, compiler, and Qt version. If you know you have
+    installed a Qt
     version, but it is not listed in \uicontrol Tools > \uicontrol Options >
     \uicontrol {Build & Run} > \uicontrol {Qt Versions}, you must add it.
 
@@ -84,7 +85,7 @@
 
     For more information, see \l{Adding Compilers}.
 
-    You can connect mobile devices to the development PC to run, debug, and
+    You can connect devices to the development PC to run, debug, and
     analyze applications on them from \QC. You can connect the device to the
     development PC via USB. Additionally, you can connect Linux-based devices
     over a WLAN. You must also configure a connection between \QC and the
@@ -93,7 +94,7 @@
     To add devices, select \uicontrol Tools > \uicontrol Options >
     \uicontrol Devices > \uicontrol Add.
 
-    For more information, see \l{Connecting Mobile Devices}.
+    For more information, see \l{Connecting Devices}.
 
     \section1 Changing Keyboard Shortcuts
 
diff --git a/doc/src/overview/creator-deployment-overview.qdoc b/doc/src/overview/creator-deployment-overview.qdoc
index 7fc9fe2c899cc7503665e98babec085e8cad5e9d..a94b1af2de478199a684cba2d351a904f72350e8 100644
--- a/doc/src/overview/creator-deployment-overview.qdoc
+++ b/doc/src/overview/creator-deployment-overview.qdoc
@@ -35,13 +35,13 @@
     \page creator-deployment.html
     \nextpage creator-deploying-android.html
 
-    \title Deploying to Mobile Devices
+    \title Deploying to Devices
 
     Deploy configurations in the \uicontrol Project mode
     \uicontrol {Run Settings} handle the packaging of the application as an
     executable and copying it to a location you want to run the executable at.
     The files can be copied to a location in the file system of the development
-    PC or a mobile device.
+    PC or a \l{glossary-device}{device}.
 
     \list
 
diff --git a/doc/src/overview/creator-glossary.qdoc b/doc/src/overview/creator-glossary.qdoc
index 3ccb302c26b4b3a7db75a61295e1012546c4ed92..cadd780bb455dd253ca972248257e88c990a6229 100644
--- a/doc/src/overview/creator-glossary.qdoc
+++ b/doc/src/overview/creator-glossary.qdoc
@@ -81,15 +81,21 @@
                 \target glossary-deploy-config
             \li Handles the packaging and copying of the necessary files to a
                 location you want to run the executable at. The files can be
-                copied to a location in the file system of the development PC,
-                an embedded device, or a mobile device.
+                copied to a location in the file system of the development PC or
+                a \l{glossary-device}{device}.
+
+        \row
+            \li Device
+                \target glossary-device
+            \li An embedded device or a mobile device. For more information, see
+                \l{Target Platforms}.
 
         \row
             \li Kit
                 \target glossary-buildandrun-kit
             \li \QC groups build and run specific settings as kits to make
                 cross-platform development easier. Each kit consists of a set
-                of values that define one environment, such as a device,
+                of values that define one environment, such as a \l{glossary-device}{device},
                 tool chain, Qt version, and debugger command to use. Configure kits at
                 \uicontrol {Tools > Options > Build & Run > Kits}.
 
@@ -107,8 +113,8 @@
             \li Project
                 \target glossary-project
             \li Groups together a set of source files, forms, and resource files
-                that you can build for, as well as deploy and run on different desktop,
-                embedded, and mobile device platforms, as
+                that you can build for, as well as deploy and run on different
+                desktop and \l{glossary-device}{device} platforms, as
                 specified by a \e {build configuration}, \e {deploy
                 configuration}, and \e {run configuration}.
 
@@ -124,7 +130,8 @@
                 \target glossary-run-config
             \li Starts the application in the location where it was copied by
                 the \e {deploy configuration}. By default, when you run a
-                project, \QC builds it, deploys it to the device specified in the selected
+                project, \QC builds it, deploys it to the
+                \l{glossary-device}{device} specified in the selected
                 \l{glossary-buildandrun-kit}{kit},
                 and runs it there. However, if you have not made any changes to
                 the project since you last built and deployed it, \QC simply
diff --git a/doc/src/overview/creator-mobile-targets.qdoc b/doc/src/overview/creator-mobile-targets.qdoc
index 680a9afd8831d62c10fe76e045e0f234b7cf15f1..2b8d03b44e592ae51b9cc117bbe8b3201bbad0c4 100644
--- a/doc/src/overview/creator-mobile-targets.qdoc
+++ b/doc/src/overview/creator-mobile-targets.qdoc
@@ -35,12 +35,13 @@
     \page creator-connecting-mobile.html
     \nextpage creator-developing-android.html
 
-    \title Connecting Mobile Devices
+    \title Connecting Devices
 
-    You can connect mobile devices to the development PC to run, debug,
+    You can connect \l{glossary-device}{devices} to the development PC to run, debug,
     and analyze applications built for them from \QC. When you install Qt for a
-    target platform, such as Android or QNX, the build and run settings for the
-    development targets might be set up automatically in \QC.
+    target platform, such as Android, QNX, or Universal Windows Platform (UWP),
+    the build and run settings for the development targets might be set up
+    automatically in \QC.
 
     You can connect the device to the development PC using a USB connection.
     Additionally, you can connect Linux-based devices by using a WLAN
@@ -82,13 +83,6 @@
             supported for QNX Neutrino devices, and requires the QNX SDK to be
             installed on the development PC.
 
-        \li \l{Connecting UWP Devices}
-
-            You can build applications for the Universal Windows Platform (UWP)
-            and run them on any Windows 10 devices, such as PC, tablet, or
-            phone. You can install the necessary tool chains as part of Qt 5.9
-            or later.
-
     \endlist
 
 */
diff --git a/doc/src/overview/creator-overview.qdoc b/doc/src/overview/creator-overview.qdoc
index 097c936af6f6537ca18ad0dbdb766bc4c7f07faa..9d2a60c6f72aef5b628b7e77e48df7ec15cc895d 100644
--- a/doc/src/overview/creator-overview.qdoc
+++ b/doc/src/overview/creator-overview.qdoc
@@ -93,8 +93,8 @@
                 and commands used to build the project.
 
                 \QC provides support for running and deploying Qt applications
-                built for the desktop environment as well as embedded and
-                mobile devices. \l{glossary-buildandrun-kit}{Kits}, build,
+                built for the desktop environment or a \l{glossary-device}
+                {device}. \l{glossary-buildandrun-kit}{Kits}, build,
                 run, and deployment settings allow you to quickly switch between
                 different setups and target platforms.
 
diff --git a/doc/src/overview/creator-tech-support.qdoc b/doc/src/overview/creator-tech-support.qdoc
index a179313a46ffe309791b15677c22bf8d7cb09b90..8b8fa53555549601f9a59850962fdc9f9bd76eed 100644
--- a/doc/src/overview/creator-tech-support.qdoc
+++ b/doc/src/overview/creator-tech-support.qdoc
@@ -54,8 +54,7 @@
                 {List of Qt Quick Examples}
 
         \row
-            \li Develop Qt applications for desktop and embedded or mobile
-                devices
+            \li Develop Qt applications for desktop and \l{glossary-device}{devices}
             \li \l{https://www.qt.io/developers/}{Qt Developers}
 
         \row
diff --git a/doc/src/overview/creator-testing.qdoc b/doc/src/overview/creator-testing.qdoc
index 06e34ccc6b9643055a8beb12ddf1d127863ce428..28a8e5d5c09b686b66db76beb3e3aae149d39405 100644
--- a/doc/src/overview/creator-testing.qdoc
+++ b/doc/src/overview/creator-testing.qdoc
@@ -47,7 +47,7 @@
             is installed automatically and you should be ready to start
             debugging after you create a new project. However, you can
             change the setup to use debugging tools for Windows, for
-            example. You can connect embedded or mobile devices to your
+            example. You can connect \l{glossary-device}{devices} to your
             development host and debug processes running on the devices.
 
         \li \l{Analyzing Code}
diff --git a/doc/src/projects/creator-projects-building-running.qdoc b/doc/src/projects/creator-projects-building-running.qdoc
index 0607b09df57fced762fd8a84c2c641ac6753ccac..0bad761ecf2499bd4fa845d3a950503b5c30d074 100644
--- a/doc/src/projects/creator-projects-building-running.qdoc
+++ b/doc/src/projects/creator-projects-building-running.qdoc
@@ -41,9 +41,9 @@
 
     \QC provides support for running and deploying Qt applications built
     for different target platforms, or using different compilers, debuggers, or
-    Qt versions.
-    \l{glossary-buildandrun-kit}{Kits} define the tools,
-    device type and other settings to use when building and running your project.
+    Qt versions. \l{glossary-buildandrun-kit}{Kits} define the tools,
+    \l{glossary-device}{device} type and other settings to use when building and
+    running your project.
 
     \list
         \li \l{Building for Multiple Platforms}
@@ -61,17 +61,17 @@
             if you have not made any changes to the project since you last
             built and deployed it, \QC simply runs it again.
 
-        \li \l{Deploying to Mobile Devices}
+        \li \l{Deploying to Devices}
 
             \e {Deploy configurations} handle the packaging and copying of
             the necessary files to a location you want to run the executable
             at. The files can be copied to a location in the file system of
-            the development PC or a mobile device.
+            the development PC or a device.
 
-        \li \l{Connecting Mobile Devices}
+        \li \l{Connecting Devices}
 
             When you install tool chains for device types as part of a Qt distribution,
-            the build and run settings for mobile device types might be set up
+            the build and run settings for the devices might be set up
             automatically. However, you might need to install and configure some
             additional software on the devices to be able to connect to them
             from the development PC.
diff --git a/doc/src/projects/creator-projects-building.qdoc b/doc/src/projects/creator-projects-building.qdoc
index 3b40ebc28049e7443e513802318348430b2a6622..c737f8b8e88d66b302ef5726d3764328f1f07965 100644
--- a/doc/src/projects/creator-projects-building.qdoc
+++ b/doc/src/projects/creator-projects-building.qdoc
@@ -38,9 +38,8 @@
     \title Building for Multiple Platforms
 
     You can build applications for multiple target platforms, or using different
-    compilers,
-    debuggers or Qt versions. \l{glossary-buildandrun-kit}{Kits} define the tools,
-    device type and other settings to use.
+    compilers, debuggers or Qt versions. \l{glossary-buildandrun-kit}{Kits}
+    define the tools, \l{glossary-device}{device} type and other settings to use.
 
     By default, when you run the application, you
     automatically build and deploy it first.
diff --git a/doc/src/projects/creator-projects-builds-customizing.qdoc b/doc/src/projects/creator-projects-builds-customizing.qdoc
index 456d056a9ea9ae9d8bf2d697cadb2193b98c07ac..a18e7b9dacab2a739f5146a1ecf924706f0563ae 100644
--- a/doc/src/projects/creator-projects-builds-customizing.qdoc
+++ b/doc/src/projects/creator-projects-builds-customizing.qdoc
@@ -31,7 +31,7 @@
 
 /*!
     \contentspage {Qt Creator Manual}
-    \previouspage creator-developing-uwp.html
+    \previouspage creator-developing-qnx.html
     \page creator-build-process-customizing.html
     \nextpage creator-testing.html
 
diff --git a/doc/src/projects/creator-projects-creating.qdoc b/doc/src/projects/creator-projects-creating.qdoc
index 10ba234a3dba3347b9d023b38afdf168653a7b8e..2facd5ad14f1803b71310c11b888191ad130c8c3 100644
--- a/doc/src/projects/creator-projects-creating.qdoc
+++ b/doc/src/projects/creator-projects-creating.qdoc
@@ -68,7 +68,7 @@
     use qmake, Qbs, or CMake. This enables you to use \QC as a code editor and
     to fully control the steps and commands used to build the project.
 
-    You can install tools for mobile devices as part of Qt distributions.
+    You can install tools for \l{glossary-device}{devices} as part of Qt distributions.
     The \l{glossary-buildandrun-kit}{kits} and build and run settings for the
     installed device types are set up automatically. However, you might need to
     install and configure some additional software on the devices to be able to
diff --git a/doc/src/projects/creator-projects-qt-versions.qdoc b/doc/src/projects/creator-projects-qt-versions.qdoc
index 97df5fd6cea44f56b7b7440a4b5c88c39e5e26da..bf0f4181b7eba86e4ca75f23fe17d746efbc2a4f 100644
--- a/doc/src/projects/creator-projects-qt-versions.qdoc
+++ b/doc/src/projects/creator-projects-qt-versions.qdoc
@@ -38,9 +38,9 @@
     \title Adding Qt Versions
 
     \QC allows you to have multiple versions of Qt installed on your development
-    PC and use different versions to build your projects.
-    For example, device manufacturers provide special Qt versions for developing
-    applications for their devices.
+    PC and use different versions to build your projects. For example,
+    \l{glossary-device}{device} manufacturers provide special Qt versions for
+    developing applications for their devices.
 
     \QC automatically detects the Qt versions that are registered by
     your system or by installers. To view detailed information for each Qt
diff --git a/doc/src/projects/creator-projects-running.qdoc b/doc/src/projects/creator-projects-running.qdoc
index c74cc7a54d9fc421463751026a7e7837703f5416..d76a24c140302a1d4396da858378d13971dd1dd5 100644
--- a/doc/src/projects/creator-projects-running.qdoc
+++ b/doc/src/projects/creator-projects-running.qdoc
@@ -39,7 +39,7 @@
 
     By default, running an application also builds it and deploys it to a
     location from where it can be run on the desktop, on a device emulator or
-    simulator, or on an embedded device or a mobile device that is connected to
+    simulator, or on a \l{glossary-device}{device} that is connected to
     the development PC.
 
     To run executable files without deploying them first, select \uicontrol Build >
diff --git a/doc/src/projects/creator-projects-settings-overview.qdoc b/doc/src/projects/creator-projects-settings-overview.qdoc
index 1d7b24d558a05f6dbf3a759c60cab79fa1446118..e9622484afd2c20507cec135b7732bd2a69ae2fb 100644
--- a/doc/src/projects/creator-projects-settings-overview.qdoc
+++ b/doc/src/projects/creator-projects-settings-overview.qdoc
@@ -66,8 +66,8 @@
     information about managing kits, see \l{Adding Kits}.
 
     Each kit consists of a set of values that define one environment, such as a
-    device, compiler, and Qt version. For more information, see
-    \l{Adding Qt Versions}, \l{Adding Compilers}, and \l{Adding Debuggers}.
+    \l{glossary-device}{device}, compiler, and Qt version. For more information,
+    see \l{Adding Qt Versions}, \l{Adding Compilers}, and \l{Adding Debuggers}.
 
     To copy the build and run settings for a kit to another kit, select
     \uicontrol {Copy Steps from Other Kit} in the context menu.
diff --git a/doc/src/projects/creator-projects-settings-run.qdoc b/doc/src/projects/creator-projects-settings-run.qdoc
index 36a2f4307d6bb305a5caab0689f8fd57f996d3bf..ac853f3b162cf70b5346d4a1af7a6e4234ce5cb6 100644
--- a/doc/src/projects/creator-projects-settings-run.qdoc
+++ b/doc/src/projects/creator-projects-settings-run.qdoc
@@ -73,8 +73,8 @@
     \section1 Selecting the Run Environment
 
     \QC automatically selects the environment used for running the application
-    based on the device type. You can edit the environment or select another
-    environment in the \uicontrol {Run Environment} section.
+    based on the \l{glossary-device}{device} type. You can edit the environment
+    or select another environment in the \uicontrol {Run Environment} section.
 
     You can edit existing environment variables or add, reset and unset new
     variables.
diff --git a/doc/src/projects/creator-projects-targets.qdoc b/doc/src/projects/creator-projects-targets.qdoc
index dace3e18a4f666f6a98e45d7643e6672fef0f41a..b327354656d651992ffbd65b10244aae841415a6 100644
--- a/doc/src/projects/creator-projects-targets.qdoc
+++ b/doc/src/projects/creator-projects-targets.qdoc
@@ -38,9 +38,9 @@
     \title Adding Kits
 
     \QC groups settings used for building and running projects as kits
-    to make cross-platform and cross-configuration
-    development easier. Each kit consists of a set of values that define one
-    environment, such as a device, compiler, Qt version, and debugger command
+    to make cross-platform and cross-configuration development easier. Each kit
+    consists of a set of values that define one environment, such as a
+    \l{glossary-device}{device}, compiler, Qt version, and debugger command
     to use, and some metadata, such as an icon and a name for the kit. Once
     you have defined kits, you can select them to build and run projects.
 
diff --git a/doc/src/qnx/creator-developing-qnx.qdoc b/doc/src/qnx/creator-developing-qnx.qdoc
index ede33e87159b05fe122c418bbe6aa5b37c9d8c6d..5eab609be8f0d714477e1a523041cd50a3fcbd83 100644
--- a/doc/src/qnx/creator-developing-qnx.qdoc
+++ b/doc/src/qnx/creator-developing-qnx.qdoc
@@ -32,7 +32,7 @@
     \contentspage {Qt Creator Manual}
     \previouspage creator-developing-ios.html
     \page creator-developing-qnx.html
-    \nextpage creator-developing-uwp.html
+    \nextpage creator-build-process-customizing.html
 
     \title Connecting QNX Devices
 
diff --git a/doc/src/qtcreator-toc.qdoc b/doc/src/qtcreator-toc.qdoc
index 43fa9829b1663a7848c99d463237209c0d800100..a4048aff8f67702b82dc39a6542a69ae2224ced2 100644
--- a/doc/src/qtcreator-toc.qdoc
+++ b/doc/src/qtcreator-toc.qdoc
@@ -143,20 +143,19 @@
         \list
             \li \l{Building for Multiple Platforms}
             \li \l{Running on Multiple Platforms}
-            \li \l{Deploying to Mobile Devices}
+            \li \l{Deploying to Devices}
             \list
                 \li \l{Deploying Applications to Android Devices}
                 \li \l{Deploying Applications to Embedded Linux Devices}
                 \li \l{Deploying Applications to QNX Neutrino Devices}
             \endlist
-            \li \l{Connecting Mobile Devices}
+            \li \l{Connecting Devices}
             \list
                 \li \l{Connecting Android Devices}
                 \li \l{Connecting Bare Metal Devices}
                 \li \l{Connecting Embedded Linux Devices}
                 \li \l{Connecting iOS Devices}
                 \li \l{Connecting QNX Devices}
-                \li \l{Connecting UWP Devices}
             \endlist
             \li \l{Customizing the Build Process}
         \endlist
diff --git a/doc/src/qtcreator.qdoc b/doc/src/qtcreator.qdoc
index 2468f745bd6c6a1ef820eb092c5f1c42c337515c..3740c8e6cb8335fe2a2df640193cee8996639678 100644
--- a/doc/src/qtcreator.qdoc
+++ b/doc/src/qtcreator.qdoc
@@ -96,8 +96,8 @@
                 \list
                     \li \l{Building for Multiple Platforms}
                     \li \l{Running on Multiple Platforms}
-                    \li \l{Deploying to Mobile Devices}
-                    \li \l{Connecting Mobile Devices}
+                    \li \l{Deploying to Devices}
+                    \li \l{Connecting Devices}
                 \endlist
             \li \b {\l{Testing}}
                 \list
diff --git a/doc/src/qtquick/qtquick-components.qdoc b/doc/src/qtquick/qtquick-components.qdoc
index e0b6e8dfb177e27abf6bcd95755ee442e64a5765..81897f0a5ddfbbfbed324d6304a65e26f1160c0d 100644
--- a/doc/src/qtquick/qtquick-components.qdoc
+++ b/doc/src/qtquick/qtquick-components.qdoc
@@ -88,7 +88,7 @@
 
     Since Qt 5.7, \l {Qt Quick Controls 2} replace Qt Quick Controls 1 and
     Qt Labs Controls. They provide lightweight QML types for creating performant
-    user interfaces for embedded and mobile devices.
+    user interfaces for \l{glossary-device}{devices}.
 
     Qt Quick Controls 2 achieve improved efficiency by employing a simplified
     \l {Styling Qt Quick Controls 2}{styling architecture} when compared to
diff --git a/doc/src/qtquick/qtquick-creating.qdoc b/doc/src/qtquick/qtquick-creating.qdoc
index 1a63026fbcedf88e3a0d4e7e301417564ca86c40..c663018498dac8ef524f2a9b5eae369986b7fd40 100644
--- a/doc/src/qtquick/qtquick-creating.qdoc
+++ b/doc/src/qtquick/qtquick-creating.qdoc
@@ -147,7 +147,8 @@
     \list
         \li C++ code
         \li Resource files (.qrc)
-        \li Code needed for deploying applications to mobile or embedded devices
+        \li Code needed for deploying applications to \l{glossary-device}
+            {devices}
     \endlist
 
     To create a Qt Quick UI project:
diff --git a/doc/src/uwp/creator-uwp.qdoc b/doc/src/uwp/creator-uwp.qdoc
deleted file mode 100644
index 0e10785a8889fcd378f7f44c0882fa02041a1846..0000000000000000000000000000000000000000
--- a/doc/src/uwp/creator-uwp.qdoc
+++ /dev/null
@@ -1,76 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the Qt Creator documentation.
-**
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Free Documentation License Usage
-** Alternatively, this file may be used under the terms of the GNU Free
-** Documentation License version 1.3 as published by the Free Software
-** Foundation and appearing in the file included in the packaging of
-** this file. Please review the following information to ensure
-** the GNU Free Documentation License version 1.3 requirements
-** will be met: https://www.gnu.org/licenses/fdl-1.3.html.
-**
-****************************************************************************/
-
-    /*!
-
-    \contentspage {Qt Creator Manual}
-    \previouspage creator-developing-qnx.html
-    \page creator-developing-uwp.html
-    \nextpage creator-build-process-customizing.html
-
-    \title Connecting UWP Devices
-
-    You can build applications for the Universal Windows Platform (UWP) and run
-    them on any Windows 10 devices, such as PC, tablet, or phone.
-
-    \QC uses the integrated \c windeployqt and \c winrtrunner tools to deploy
-    and run applications. You can also run the tools manually from the command
-    line.
-
-    Since 5.3, the Qt installers add the Windows Runtime and Windows Phone Qt
-    versions to \QC and create the necessary kits. In Qt 5.9, the packages were
-    renamed as UWP packages.
-
-    \image creator-uwp-kits.png "UWP kits"
-
-    To connect UWP devices:
-
-    \list 1
-
-        \li Select \uicontrol Help > \uicontrol {About Plugins} > \uicontrol {Device Support} >
-            \uicontrol WinRT to enable the experimental UWP plugin.
-
-        \li Restart \QC to be able to use the plugin.
-
-        \li To specify build settings:
-
-        \list 1
-
-            \li Open a project for an application you want to develop for the
-                device.
-
-            \li Select \uicontrol Projects > \uicontrol {Build & Run} to
-                enable a kit for building applications and running them on UWP
-                devices.
-
-        \endlist
-
-        \li Select \uicontrol Run to specify run settings.
-
-            Usually, you can use the default settings.
-
-    \endlist
-
-*/
diff --git a/src/libs/extensionsystem/optionsparser.cpp b/src/libs/extensionsystem/optionsparser.cpp
index 852df2863d8693e4555444bf5faf02e0413fcf60..9dc6327b65e4bf0d7eb584f0bc3373a530ac3714 100644
--- a/src/libs/extensionsystem/optionsparser.cpp
+++ b/src/libs/extensionsystem/optionsparser.cpp
@@ -91,9 +91,12 @@ bool OptionsParser::parse()
         // probably a file or something
         m_pmPrivate->arguments << m_currentArg;
     }
+    if (PluginManager::testRunRequested()) {
+        m_isDependencyRefreshNeeded = true;
+        forceDisableAllPluginsExceptTestedAndForceEnabled();
+    }
     if (m_isDependencyRefreshNeeded)
-        m_pmPrivate->resolveDependencies();
-    m_pmPrivate->enableOnlyTestedSpecs();
+        m_pmPrivate->enableDependenciesIndirectly();
     return !m_hasError;
 }
 
@@ -260,6 +263,16 @@ bool OptionsParser::checkForUnknownOption()
     return true;
 }
 
+void OptionsParser::forceDisableAllPluginsExceptTestedAndForceEnabled()
+{
+    for (const PluginManagerPrivate::TestSpec &testSpec : m_pmPrivate->testSpecs)
+        testSpec.pluginSpec->d->setForceEnabled(true);
+    for (PluginSpec *spec : m_pmPrivate->pluginSpecs) {
+        if (!spec->isForceEnabled() && !spec->isRequired())
+            spec->d->setForceDisabled(true);
+    }
+}
+
 bool OptionsParser::nextToken(OptionsParser::TokenType type)
 {
     if (m_it == m_end) {
diff --git a/src/libs/extensionsystem/optionsparser.h b/src/libs/extensionsystem/optionsparser.h
index 7b85d9e62a713ed881280916ef8d11a454f89727..a33486e9513be15e2e110caa5849bb85e3cf586a 100644
--- a/src/libs/extensionsystem/optionsparser.h
+++ b/src/libs/extensionsystem/optionsparser.h
@@ -60,6 +60,7 @@ private:
     bool checkForPluginOption();
     bool checkForProfilingOption();
     bool checkForUnknownOption();
+    void forceDisableAllPluginsExceptTestedAndForceEnabled();
 
     enum TokenType { OptionalToken, RequiredToken };
     bool nextToken(TokenType type = OptionalToken);
diff --git a/src/libs/extensionsystem/pluginmanager.cpp b/src/libs/extensionsystem/pluginmanager.cpp
index ad1109ff0f0cfdaaad58cc35cbd98c4855e9d30b..5bd975ceaced75ebe9358525ae3b8b7cc7132bd1 100644
--- a/src/libs/extensionsystem/pluginmanager.cpp
+++ b/src/libs/extensionsystem/pluginmanager.cpp
@@ -1488,6 +1488,7 @@ void PluginManagerPrivate::readPluginPaths()
         pluginSpecs.append(spec);
     }
     resolveDependencies();
+    enableDependenciesIndirectly();
     // ensure deterministic plugin load order by sorting
     Utils::sort(pluginSpecs, &PluginSpec::name);
     emit q->pluginsChanged();
@@ -1495,42 +1496,19 @@ void PluginManagerPrivate::readPluginPaths()
 
 void PluginManagerPrivate::resolveDependencies()
 {
-    foreach (PluginSpec *spec, pluginSpecs) {
-        spec->d->enabledIndirectly = false; // reset, is recalculated below
+    foreach (PluginSpec *spec, pluginSpecs)
         spec->d->resolveDependencies(pluginSpecs);
-    }
-
-    Utils::reverseForeach(loadQueue(), [](PluginSpec *spec) {
-        spec->d->enableDependenciesIndirectly();
-    });
 }
 
-void PluginManagerPrivate::enableOnlyTestedSpecs()
+void PluginManagerPrivate::enableDependenciesIndirectly()
 {
-    if (testSpecs.isEmpty())
-        return;
-
-    QList<PluginSpec *> specsForTests;
-    foreach (const TestSpec &testSpec, testSpecs) {
-        QList<PluginSpec *> circularityCheckQueue;
-        loadQueue(testSpec.pluginSpec, specsForTests, circularityCheckQueue);
-        // add plugins that must be force loaded when running tests for the plugin
-        // (aka "test dependencies")
-        QHashIterator<PluginDependency, PluginSpec *> it(testSpec.pluginSpec->dependencySpecs());
-        while (it.hasNext()) {
-            it.next();
-            if (it.key().type != PluginDependency::Test)
-                continue;
-            PluginSpec *depSpec = it.value();
-            circularityCheckQueue.clear();
-            loadQueue(depSpec, specsForTests, circularityCheckQueue);
-        }
-    }
     foreach (PluginSpec *spec, pluginSpecs)
-        spec->d->setForceDisabled(true);
-    foreach (PluginSpec *spec, specsForTests) {
-        spec->d->setForceDisabled(false);
-        spec->d->setForceEnabled(true);
+        spec->d->enabledIndirectly = false;
+    // cannot use reverse loadQueue here, because test dependencies can introduce circles
+    QList<PluginSpec *> queue = Utils::filtered(pluginSpecs, &PluginSpec::isEffectivelyEnabled);
+    while (!queue.isEmpty()) {
+        PluginSpec *spec = queue.takeFirst();
+        queue += spec->d->enableDependenciesIndirectly(containsTestSpec(spec));
     }
 }
 
diff --git a/src/libs/extensionsystem/pluginmanager_p.h b/src/libs/extensionsystem/pluginmanager_p.h
index f6b1bced362818372b23faaead2465e5d1af8e21..6b7a2cc75bd4c1533c8cdbf700fa41378cd1095c 100644
--- a/src/libs/extensionsystem/pluginmanager_p.h
+++ b/src/libs/extensionsystem/pluginmanager_p.h
@@ -68,7 +68,7 @@ public:
     QList<PluginSpec *> loadQueue();
     void loadPlugin(PluginSpec *spec, PluginSpec::State destState);
     void resolveDependencies();
-    void enableOnlyTestedSpecs();
+    void enableDependenciesIndirectly();
     void initProfiling();
     void profilingSummary() const;
     void profilingReport(const char *what, const PluginSpec *spec = 0);
diff --git a/src/libs/extensionsystem/pluginspec.cpp b/src/libs/extensionsystem/pluginspec.cpp
index 8fd64007a29ea242137cde4cb3ccddb9a74d0bd6..98f1be889260eb43bfd45fa0d7ec9b1058a4d186 100644
--- a/src/libs/extensionsystem/pluginspec.cpp
+++ b/src/libs/extensionsystem/pluginspec.cpp
@@ -917,19 +917,25 @@ bool PluginSpecPrivate::resolveDependencies(const QList<PluginSpec *> &specs)
     return true;
 }
 
-void PluginSpecPrivate::enableDependenciesIndirectly()
+// returns the plugins that it actually indirectly enabled
+QList<PluginSpec *> PluginSpecPrivate::enableDependenciesIndirectly(bool enableTestDependencies)
 {
     if (!q->isEffectivelyEnabled()) // plugin not enabled, nothing to do
-        return;
+        return {};
+    QList<PluginSpec *> enabled;
     QHashIterator<PluginDependency, PluginSpec *> it(dependencySpecs);
     while (it.hasNext()) {
         it.next();
-        if (it.key().type != PluginDependency::Required)
+        if (it.key().type != PluginDependency::Required
+                && (!enableTestDependencies || it.key().type != PluginDependency::Test))
             continue;
         PluginSpec *dependencySpec = it.value();
-        if (!dependencySpec->isEffectivelyEnabled())
+        if (!dependencySpec->isEffectivelyEnabled()) {
             dependencySpec->d->enabledIndirectly = true;
+            enabled << dependencySpec;
+        }
     }
+    return enabled;
 }
 
 /*!
diff --git a/src/libs/extensionsystem/pluginspec_p.h b/src/libs/extensionsystem/pluginspec_p.h
index e0ac647d1434498d8e3b22e7e625ea2df6f0b4af..ee6944bf76ffe3122cc9e796be9e2cc58e923d9d 100644
--- a/src/libs/extensionsystem/pluginspec_p.h
+++ b/src/libs/extensionsystem/pluginspec_p.h
@@ -103,7 +103,7 @@ public:
     static bool isValidVersion(const QString &version);
     static int versionCompare(const QString &version1, const QString &version2);
 
-    void enableDependenciesIndirectly();
+    QList<PluginSpec *> enableDependenciesIndirectly(bool enableTestDependencies = false);
 
     bool readMetaData(const QJsonObject &pluginMetaData);
 
diff --git a/src/libs/utils/fileutils.cpp b/src/libs/utils/fileutils.cpp
index 02065a06ac0ca1756f1fa76658cd1e5cf0d84c57..1ed1365c4519cbf0644794e5f7dc4c80a460eb01 100644
--- a/src/libs/utils/fileutils.cpp
+++ b/src/libs/utils/fileutils.cpp
@@ -29,16 +29,18 @@
 #include "algorithm.h"
 #include "qtcassert.h"
 
+#include <QDataStream>
 #include <QDir>
 #include <QDebug>
 #include <QDateTime>
-#include <QDragEnterEvent>
-#include <QDropEvent>
-#include <QMessageBox>
 #include <QRegExp>
 #include <QTimer>
 #include <QUrl>
 
+#ifdef QT_GUI_LIB
+#include <QMessageBox>
+#endif
+
 #ifdef Q_OS_WIN
 #include <qt_windows.h>
 #include <shlobj.h>
@@ -380,6 +382,7 @@ bool FileReader::fetch(const QString &fileName, QIODevice::OpenMode mode, QStrin
     return false;
 }
 
+#ifdef QT_GUI_LIB
 bool FileReader::fetch(const QString &fileName, QIODevice::OpenMode mode, QWidget *parent)
 {
     if (fetch(fileName, mode))
@@ -388,7 +391,7 @@ bool FileReader::fetch(const QString &fileName, QIODevice::OpenMode mode, QWidge
         QMessageBox::critical(parent, tr("File Error"), m_errorString);
     return false;
 }
-
+#endif // QT_GUI_LIB
 
 FileSaverBase::FileSaverBase()
     : m_hasError(false)
@@ -414,6 +417,7 @@ bool FileSaverBase::finalize(QString *errStr)
     return false;
 }
 
+#ifdef QT_GUI_LIB
 bool FileSaverBase::finalize(QWidget *parent)
 {
     if (finalize())
@@ -421,6 +425,7 @@ bool FileSaverBase::finalize(QWidget *parent)
     QMessageBox::critical(parent, tr("File Error"), errorString());
     return false;
 }
+#endif // QT_GUI_LIB
 
 bool FileSaverBase::write(const char *data, int len)
 {
diff --git a/src/libs/utils/fileutils.h b/src/libs/utils/fileutils.h
index f891e2d15f800a8e2b56703e3d6558e7d311fa4f..633f823da33a6c8588489c37c4c43330603fd38e 100644
--- a/src/libs/utils/fileutils.h
+++ b/src/libs/utils/fileutils.h
@@ -43,7 +43,6 @@ QT_BEGIN_NAMESPACE
 class QDataStream;
 class QDateTime;
 class QDir;
-class QDropEvent;
 class QFile;
 class QFileInfo;
 class QTemporaryFile;
@@ -160,9 +159,11 @@ public:
     bool fetch(const QString &fileName, QIODevice::OpenMode mode, QString *errorString);
     bool fetch(const QString &fileName, QString *errorString)
         { return fetch(fileName, QIODevice::NotOpen, errorString); }
+#ifdef QT_GUI_LIB
     bool fetch(const QString &fileName, QIODevice::OpenMode mode, QWidget *parent);
     bool fetch(const QString &fileName, QWidget *parent)
         { return fetch(fileName, QIODevice::NotOpen, parent); }
+#endif // QT_GUI_LIB
     const QByteArray &data() const { return m_data; }
     const QString &errorString() const { return m_errorString; }
 private:
@@ -182,7 +183,9 @@ public:
     QString errorString() const { return m_errorString; }
     virtual bool finalize();
     bool finalize(QString *errStr);
+#ifdef QT_GUI_LIB
     bool finalize(QWidget *parent);
+#endif
 
     bool write(const char *data, int len);
     bool write(const QByteArray &bytes);
diff --git a/src/libs/utils/hostosinfo.cpp b/src/libs/utils/hostosinfo.cpp
index ff5eb1b469c019afc42b8b263285b150d3bc0042..8a3c0e814d24fe4bb6741aec3e55e1e81b83d46a 100644
--- a/src/libs/utils/hostosinfo.cpp
+++ b/src/libs/utils/hostosinfo.cpp
@@ -25,8 +25,11 @@
 
 #include "hostosinfo.h"
 
-#include <QApplication>
+#include <QCoreApplication>
+
+#if !defined(QT_NO_OPENGL) && defined(QT_GUI_LIB)
 #include <QOpenGLContext>
+#endif
 
 #ifdef Q_OS_WIN
 #undef _WIN32_WINNT
@@ -82,14 +85,14 @@ void HostOsInfo::unsetOverrideFileNameCaseSensitivity()
 
 bool HostOsInfo::canCreateOpenGLContext(QString *errorMessage)
 {
-#ifdef QT_NO_OPENGL
+#if defined(QT_NO_OPENGL) || !defined(QT_GUI_LIB)
     Q_UNUSED(errorMessage)
     return false;
 #else
     static const bool canCreate = QOpenGLContext().create();
     if (!canCreate)
-        *errorMessage = QApplication::translate("Utils::HostOsInfo",
-                                                "Cannot create OpenGL context.");
+        *errorMessage = QCoreApplication::translate("Utils::HostOsInfo",
+                                                    "Cannot create OpenGL context.");
     return canCreate;
 #endif
 }
diff --git a/src/libs/utils/persistentsettings.cpp b/src/libs/utils/persistentsettings.cpp
index de6e88381657450fab478adae021e9e01321ce86..44d741ed1f296399dec8288bc7b4fd5f8bd7900b 100644
--- a/src/libs/utils/persistentsettings.cpp
+++ b/src/libs/utils/persistentsettings.cpp
@@ -36,6 +36,10 @@
 #include <QRegExp>
 #include <QRect>
 
+#ifdef QT_GUI_LIB
+#include <QMessageBox>
+#endif
+
 #include <utils/qtcassert.h>
 
 // Read and write rectangle in X11 resource syntax "12x12+4+3"
@@ -416,18 +420,30 @@ PersistentSettingsWriter::~PersistentSettingsWriter()
     write(m_savedData, 0);
 }
 
-bool PersistentSettingsWriter::save(const QVariantMap &data, QWidget *parent) const
+bool PersistentSettingsWriter::save(const QVariantMap &data, QString *errorString) const
 {
     if (data == m_savedData)
         return true;
+    return write(data, errorString);
+}
 
-    return write(data, parent);
+#ifdef QT_GUI_LIB
+bool PersistentSettingsWriter::save(const QVariantMap &data, QWidget *parent) const
+{
+    QString errorString;
+    const bool success = save(data, &errorString);
+    if (!success)
+        QMessageBox::critical(parent,
+                              QCoreApplication::translate("Utils::FileSaverBase", "File Error"),
+                              errorString);
+    return success;
 }
+#endif // QT_GUI_LIB
 
 FileName PersistentSettingsWriter::fileName() const
 { return m_fileName; }
 
-bool PersistentSettingsWriter::write(const QVariantMap &data, QWidget *parent) const
+bool PersistentSettingsWriter::write(const QVariantMap &data, QString *errorString) const
 {
     QDir tmp;
     tmp.mkpath(m_fileName.toFileInfo().path());
@@ -455,9 +471,12 @@ bool PersistentSettingsWriter::write(const QVariantMap &data, QWidget *parent) c
 
         saver.setResult(&w);
     }
-    bool ok = saver.finalize(parent);
+    bool ok = saver.finalize();
     if (ok)
         m_savedData = data;
+    else if (errorString)
+        *errorString = saver.errorString();
+
     return ok;
 }
 
diff --git a/src/libs/utils/persistentsettings.h b/src/libs/utils/persistentsettings.h
index 661ee8bfe953e48fe948162bf81eb99d93554bc0..3ea7fac904f6cdef896b0edb38f4f27f6b0eb917 100644
--- a/src/libs/utils/persistentsettings.h
+++ b/src/libs/utils/persistentsettings.h
@@ -54,12 +54,15 @@ public:
     PersistentSettingsWriter(const FileName &fileName, const QString &docType);
     ~PersistentSettingsWriter();
 
+    bool save(const QVariantMap &data, QString *errorString) const;
+#ifdef QT_GUI_LIB
     bool save(const QVariantMap &data, QWidget *parent) const;
+#endif
 
     FileName fileName() const;
 
 private:
-    bool write(const QVariantMap &data, QWidget *parent) const;
+    bool write(const QVariantMap &data, QString *errorString) const;
 
     const FileName m_fileName;
     const QString m_docType;
diff --git a/src/libs/utils/utils-lib.pri b/src/libs/utils/utils-lib.pri
index 6143ce7d400dd7e82e7572a46889a0ba07cffcfb..c6d30f4712b138239930ce74f36cc7995e0ea8dc 100644
--- a/src/libs/utils/utils-lib.pri
+++ b/src/libs/utils/utils-lib.pri
@@ -243,7 +243,7 @@ HEADERS += \
     $$PWD/optional.h \
     $$PWD/../3rdparty/optional/optional.hpp \
     $$PWD/qtcfallthrough.h \
-    $$PWD/highlightingitemdelegate.cpp \
+    $$PWD/highlightingitemdelegate.h \
     $$PWD/camelhumpmatcher.h
 
 FORMS += $$PWD/filewizardpage.ui \
diff --git a/src/plugins/baremetal/baremetaldebugsupport.cpp b/src/plugins/baremetal/baremetaldebugsupport.cpp
index 278e018f1cce4719712588efa7f67a4b747259a3..c4615daa6e3f64410ea96d641290abe58d5508d5 100644
--- a/src/plugins/baremetal/baremetaldebugsupport.cpp
+++ b/src/plugins/baremetal/baremetaldebugsupport.cpp
@@ -62,7 +62,14 @@ BareMetalDebugSupport::BareMetalDebugSupport(RunControl *runControl)
         return;
     }
 
-    const GdbServerProvider *p = GdbServerProviderManager::findProvider(dev->gdbServerProviderId());
+    const QString providerId = dev->gdbServerProviderId();
+    const GdbServerProvider *p = GdbServerProviderManager::findProvider(providerId);
+    if (!p) {
+        // FIXME: Translate.
+        reportFailure(QString("No GDB server provider found for %1").arg(providerId));
+        return;
+    }
+
     if (p->startupMode() == GdbServerProvider::StartupOnNetwork) {
         StandardRunnable r;
         r.executable = p->executable();
diff --git a/src/plugins/clangcodemodel/clangassistproposalitem.cpp b/src/plugins/clangcodemodel/clangassistproposalitem.cpp
index 7dba03a45ddd2210d52e86417a11f3428db813a8..e583aa56280eb784ba31601d06505663d86958d3 100644
--- a/src/plugins/clangcodemodel/clangassistproposalitem.cpp
+++ b/src/plugins/clangcodemodel/clangassistproposalitem.cpp
@@ -29,6 +29,7 @@
 
 #include <cplusplus/Icons.h>
 #include <cplusplus/MatchingText.h>
+#include <cplusplus/SimpleLexer.h>
 #include <cplusplus/Token.h>
 
 #include <texteditor/completionsettings.h>
@@ -36,6 +37,8 @@
 
 #include <QTextCursor>
 
+#include <utils/algorithm.h>
+
 using namespace CPlusPlus;
 using namespace ClangBackEnd;
 
@@ -74,6 +77,43 @@ static void moveToPrevChar(TextEditor::TextDocumentManipulatorInterface &manipul
         cursor.movePosition(QTextCursor::PreviousCharacter);
 }
 
+static QString textUntilPreviousStatement(TextEditor::TextDocumentManipulatorInterface &manipulator,
+                                          int startPosition)
+{
+    static const QString stopCharacters(";{}#");
+
+    int endPosition = 0;
+    for (int i = startPosition; i >= 0 ; --i) {
+        if (stopCharacters.contains(manipulator.characterAt(i))) {
+            endPosition = i + 1;
+            break;
+        }
+    }
+
+    return manipulator.textAt(endPosition, startPosition - endPosition);
+}
+
+// 7.3.3: using typename(opt) nested-name-specifier unqualified-id ;
+static bool isAtUsingDeclaration(TextEditor::TextDocumentManipulatorInterface &manipulator,
+                                 int basePosition)
+{
+    SimpleLexer lexer;
+    lexer.setLanguageFeatures(LanguageFeatures::defaultFeatures());
+    const QString textToLex = textUntilPreviousStatement(manipulator, basePosition);
+    const Tokens tokens = lexer(textToLex);
+    if (tokens.empty())
+        return false;
+
+    // The nested-name-specifier always ends with "::", so check for this first.
+    const Token lastToken = tokens[tokens.size() - 1];
+    if (lastToken.kind() != T_COLON_COLON)
+        return false;
+
+    return Utils::contains(tokens, [](const Token &token) {
+        return token.kind() == T_USING;
+    });
+}
+
 void ClangAssistProposalItem::apply(TextEditor::TextDocumentManipulatorInterface &manipulator,
                                     int basePosition) const
 {
@@ -133,6 +173,8 @@ void ClangAssistProposalItem::apply(TextEditor::TextDocumentManipulatorInterface
                 const QChar prevChar = manipulator.characterAt(cursor.position());
                 abandonParen = QString("(;,{}").contains(prevChar);
             }
+            if (!abandonParen)
+                abandonParen = isAtUsingDeclaration(manipulator, basePosition);
             if (!abandonParen) {
                 if (completionSettings.m_spaceAfterFunctionName)
                     extraCharacters += QLatin1Char(' ');
diff --git a/src/plugins/clangcodemodel/clangbackendipcintegration.cpp b/src/plugins/clangcodemodel/clangbackendipcintegration.cpp
index f966ef6ae4039b86aad918837d287455635329fc..8be441b7d6ed08c8b76ed722874af7abc88cce06 100644
--- a/src/plugins/clangcodemodel/clangbackendipcintegration.cpp
+++ b/src/plugins/clangcodemodel/clangbackendipcintegration.cpp
@@ -129,8 +129,10 @@ void IpcReceiver::deleteProcessorsOfEditorWidget(TextEditor::TextEditorWidget *t
     }
 }
 
-QFuture<CppTools::CursorInfo> IpcReceiver::addExpectedReferencesMessage(quint64 ticket,
-                                                                        QTextDocument *textDocument)
+QFuture<CppTools::CursorInfo> IpcReceiver::addExpectedReferencesMessage(
+        quint64 ticket,
+        QTextDocument *textDocument,
+        const CppTools::SemanticInfo::LocalUseMap &localUses)
 {
     QTC_CHECK(textDocument);
     QTC_CHECK(!m_referencesTable.contains(ticket));
@@ -138,7 +140,7 @@ QFuture<CppTools::CursorInfo> IpcReceiver::addExpectedReferencesMessage(quint64
     QFutureInterface<CppTools::CursorInfo> futureInterface;
     futureInterface.reportStarted();
 
-    const ReferencesEntry entry{futureInterface, textDocument};
+    const ReferencesEntry entry{futureInterface, textDocument, localUses};
     m_referencesTable.insert(ticket, entry);
 
     return futureInterface.future();
@@ -244,6 +246,7 @@ CppTools::CursorInfo::Range toCursorInfoRange(const QTextDocument &textDocument,
 
 static
 CppTools::CursorInfo toCursorInfo(const QTextDocument &textDocument,
+                                  const CppTools::SemanticInfo::LocalUseMap &localUses,
                                   const ReferencesMessage &message)
 {
     CppTools::CursorInfo result;
@@ -254,6 +257,7 @@ CppTools::CursorInfo toCursorInfo(const QTextDocument &textDocument,
         result.useRanges.append(toCursorInfoRange(textDocument, reference));
 
     result.useRanges.reserve(references.size());
+    result.localUses = localUses;
 
     return result;
 }
@@ -290,7 +294,7 @@ void IpcReceiver::references(const ReferencesMessage &message)
         return; // Editor document closed or a new request was issued making this result outdated.
 
     QTC_ASSERT(entry.textDocument, return);
-    futureInterface.reportResult(toCursorInfo(*entry.textDocument, message));
+    futureInterface.reportResult(toCursorInfo(*entry.textDocument, entry.localUses, message));
     futureInterface.reportFinished();
 }
 
@@ -730,12 +734,14 @@ QFuture<CppTools::CursorInfo> IpcCommunicator::requestReferences(
         const FileContainer &fileContainer,
         quint32 line,
         quint32 column,
-        QTextDocument *textDocument)
+        QTextDocument *textDocument,
+        const CppTools::SemanticInfo::LocalUseMap &localUses)
 {
     const RequestReferencesMessage message(fileContainer, line, column);
     m_ipcSender->requestReferences(message);
 
-    return m_ipcReceiver.addExpectedReferencesMessage(message.ticketNumber(), textDocument);
+    return m_ipcReceiver.addExpectedReferencesMessage(message.ticketNumber(), textDocument,
+                                                      localUses);
 }
 
 QFuture<CppTools::SymbolInfo> IpcCommunicator::requestFollowSymbol(
diff --git a/src/plugins/clangcodemodel/clangbackendipcintegration.h b/src/plugins/clangcodemodel/clangbackendipcintegration.h
index 6ebbeb2a2dac1fd513d1c7ad990b232f8ff096de..36258667ef3f7194431e0d41eb2a52b875046f9f 100644
--- a/src/plugins/clangcodemodel/clangbackendipcintegration.h
+++ b/src/plugins/clangcodemodel/clangbackendipcintegration.h
@@ -76,8 +76,10 @@ public:
     void addExpectedCodeCompletedMessage(quint64 ticket, ClangCompletionAssistProcessor *processor);
     void deleteProcessorsOfEditorWidget(TextEditor::TextEditorWidget *textEditorWidget);
 
-    QFuture<CppTools::CursorInfo> addExpectedReferencesMessage(quint64 ticket,
-                                                               QTextDocument *textDocument);
+    QFuture<CppTools::CursorInfo>
+    addExpectedReferencesMessage(quint64 ticket,
+                                 QTextDocument *textDocument,
+                                 const CppTools::SemanticInfo::LocalUseMap &localUses);
     QFuture<CppTools::SymbolInfo> addExpectedRequestFollowSymbolMessage(quint64 ticket);
     bool isExpectingCodeCompletedMessage() const;
 
@@ -102,11 +104,14 @@ private:
     struct ReferencesEntry {
         ReferencesEntry() = default;
         ReferencesEntry(QFutureInterface<CppTools::CursorInfo> futureInterface,
-                        QTextDocument *textDocument)
+                        QTextDocument *textDocument,
+                        const CppTools::SemanticInfo::LocalUseMap &localUses)
             : futureInterface(futureInterface)
-            , textDocument(textDocument) {}
+            , textDocument(textDocument)
+            , localUses(localUses) {}
         QFutureInterface<CppTools::CursorInfo> futureInterface;
         QPointer<QTextDocument> textDocument;
+        CppTools::SemanticInfo::LocalUseMap localUses;
     };
     QHash<quint64, ReferencesEntry> m_referencesTable;
 
@@ -155,9 +160,12 @@ public:
     void registerUnsavedFilesForEditor(const FileContainers &fileContainers);
     void unregisterUnsavedFilesForEditor(const FileContainers &fileContainers);
     void requestDocumentAnnotations(const ClangBackEnd::FileContainer &fileContainer);
-    QFuture<CppTools::CursorInfo> requestReferences(const FileContainer &fileContainer,
-                                                    quint32 line,
-                                                    quint32 column, QTextDocument *textDocument);
+    QFuture<CppTools::CursorInfo> requestReferences(
+            const FileContainer &fileContainer,
+            quint32 line,
+            quint32 column,
+            QTextDocument *textDocument,
+            const CppTools::SemanticInfo::LocalUseMap &localUses);
     QFuture<CppTools::SymbolInfo> requestFollowSymbol(const FileContainer &curFileContainer,
                                                       const QVector<Utf8String> &dependentFiles,
                                                       quint32 line,
diff --git a/src/plugins/clangcodemodel/clangeditordocumentprocessor.cpp b/src/plugins/clangcodemodel/clangeditordocumentprocessor.cpp
index 64a91a478c46ed400fab2804638015881b2f5688..593d3cb9c72a1d31ee73614035c394877c1bfff8 100644
--- a/src/plugins/clangcodemodel/clangeditordocumentprocessor.cpp
+++ b/src/plugins/clangcodemodel/clangeditordocumentprocessor.cpp
@@ -36,6 +36,7 @@
 #include <diagnosticcontainer.h>
 #include <sourcelocationcontainer.h>
 
+#include <cpptools/builtincursorinfo.h>
 #include <cpptools/clangdiagnosticconfigsmodel.h>
 #include <cpptools/clangdiagnosticconfigsmodel.h>
 #include <cpptools/compileroptionsbuilder.h>
@@ -334,11 +335,14 @@ ClangEditorDocumentProcessor::cursorInfo(const CppTools::CursorInfoParams &param
 
     const QTextBlock block = params.textCursor.document()->findBlockByNumber(line - 1);
     column += ClangCodeModel::Utils::extraUtf8CharsShift(block.text(), column);
+    const CppTools::SemanticInfo::LocalUseMap localUses
+        = CppTools::BuiltinCursorInfo::findLocalUses(params.semanticInfo.doc, line, column);
 
     return m_ipcCommunicator.requestReferences(simpleFileContainer(),
                                                static_cast<quint32>(line),
                                                static_cast<quint32>(column),
-                                               textDocument());
+                                               textDocument(),
+                                               localUses);
 }
 
 static QVector<Utf8String> prioritizeByBaseName(const QString &curPath,
diff --git a/src/plugins/coreplugin/outputwindow.cpp b/src/plugins/coreplugin/outputwindow.cpp
index 3daacb209c032f840404fed97a3bc98ea7230c83..2d69b09e54a963cc75b7f259a35ee5598bd99fa3 100644
--- a/src/plugins/coreplugin/outputwindow.cpp
+++ b/src/plugins/coreplugin/outputwindow.cpp
@@ -61,7 +61,7 @@ public:
     bool enforceNewline = false;
     bool scrollToBottom = true;
     bool linksActive = true;
-    bool mousePressed = false;
+    Qt::MouseButton mouseButtonPressed = Qt::NoButton;
     bool m_zoomEnabled = false;
     float m_originalFontSize = 0.;
     int maxLineCount = Core::Constants::DEFAULT_MAX_LINE_COUNT;
@@ -134,15 +134,13 @@ OutputWindow::~OutputWindow()
 
 void OutputWindow::mousePressEvent(QMouseEvent * e)
 {
-    d->mousePressed = true;
+    d->mouseButtonPressed = e->button();
     QPlainTextEdit::mousePressEvent(e);
 }
 
 void OutputWindow::mouseReleaseEvent(QMouseEvent *e)
 {
-    d->mousePressed = false;
-
-    if (d->linksActive) {
+    if (d->linksActive && d->mouseButtonPressed == Qt::LeftButton) {
         const QString href = anchorAt(e->pos());
         if (d->formatter)
             d->formatter->handleLink(href);
@@ -150,6 +148,7 @@ void OutputWindow::mouseReleaseEvent(QMouseEvent *e)
 
     // Mouse was released, activate links again
     d->linksActive = true;
+    d->mouseButtonPressed = Qt::NoButton;
 
     QPlainTextEdit::mouseReleaseEvent(e);
 }
@@ -157,7 +156,7 @@ void OutputWindow::mouseReleaseEvent(QMouseEvent *e)
 void OutputWindow::mouseMoveEvent(QMouseEvent *e)
 {
     // Cursor was dragged to make a selection, deactivate links
-    if (d->mousePressed && textCursor().hasSelection())
+    if (d->mouseButtonPressed != Qt::NoButton && textCursor().hasSelection())
         d->linksActive = false;
 
     if (!d->linksActive || anchorAt(e->pos()).isEmpty())
diff --git a/src/plugins/cppeditor/cppcodemodelinspectordialog.cpp b/src/plugins/cppeditor/cppcodemodelinspectordialog.cpp
index d9968f27ef7e7c5cf9904d5113b427727dce8372..fed7c4c8549e114b5aefa56fd804beaf438d51b4 100644
--- a/src/plugins/cppeditor/cppcodemodelinspectordialog.cpp
+++ b/src/plugins/cppeditor/cppcodemodelinspectordialog.cpp
@@ -1775,6 +1775,10 @@ void CppCodeModelInspectorDialog::updateProjectPartData(const ProjectPart::Ptr &
             = part->buildSystemTarget.isEmpty() ? QString::fromLatin1("<None>")
                                                 : part->buildSystemTarget;
 
+    const QString precompiledHeaders = part->precompiledHeaders.isEmpty()
+            ? QString::fromLatin1("<None>")
+            : part->precompiledHeaders.join(',');
+
     KeyValueModel::Table table = {
         {QString::fromLatin1("Project Part Name"), part->displayName},
         {QString::fromLatin1("Project Part File"), part->projectFileLocation()},
@@ -1782,6 +1786,7 @@ void CppCodeModelInspectorDialog::updateProjectPartData(const ProjectPart::Ptr &
         {QString::fromLatin1("Project File"), projectFilePath},
         {QString::fromLatin1("Buildsystem Target"), buildSystemTarget},
         {QString::fromLatin1("Callgroup Id"), callGroupId},
+        {QString::fromLatin1("Precompiled Headers"), precompiledHeaders},
         {QString::fromLatin1("Selected For Building"), CMI::Utils::toString(part->selectedForBuilding)},
         {QString::fromLatin1("Language Version"), CMI::Utils::toString(part->languageVersion)},
         {QString::fromLatin1("Language Extensions"), CMI::Utils::toString(part->languageExtensions)},
diff --git a/src/plugins/cpptools/builtincursorinfo.cpp b/src/plugins/cpptools/builtincursorinfo.cpp
index cd46380e19cab1aa7a2acad4d1813188a7f627f3..6cdf19e5fefc3af9c48fdcf82f2f2773850490da 100644
--- a/src/plugins/cpptools/builtincursorinfo.cpp
+++ b/src/plugins/cpptools/builtincursorinfo.cpp
@@ -47,7 +47,6 @@ using namespace CPlusPlus;
 using SemanticUses = QList<CppTools::SemanticInfo::Use>;
 
 namespace CppTools {
-namespace Internal {
 namespace {
 
 CursorInfo::Range toRange(const SemanticInfo::Use &use)
@@ -186,7 +185,8 @@ private:
     {
         CursorInfo result;
 
-        const CppTools::SemanticInfo::LocalUseMap localUses = findLocalUses();
+        const CppTools::SemanticInfo::LocalUseMap localUses
+                = BuiltinCursorInfo::findLocalUses(m_document, m_line, m_column);
         result.localUses = localUses;
         splitLocalUses(localUses, &result.useRanges, &result.unusedVariablesRanges);
 
@@ -200,16 +200,6 @@ private:
         return result; // OK, result.unusedVariablesRanges will be passed on
     }
 
-    CppTools::SemanticInfo::LocalUseMap findLocalUses() const
-    {
-        AST *ast = m_document->translationUnit()->ast();
-        FunctionDefinitionUnderCursor functionDefinitionUnderCursor(m_document->translationUnit());
-        DeclarationAST *declaration = functionDefinitionUnderCursor(ast,
-                                                                    static_cast<unsigned>(m_line),
-                                                                    static_cast<unsigned>(m_column));
-        return CppTools::LocalSymbols(m_document, declaration).uses;
-    }
-
     void splitLocalUses(const CppTools::SemanticInfo::LocalUseMap &uses,
                         CursorInfo::Ranges *rangesForLocalVariableUnderCursor,
                         CursorInfo::Ranges *rangesForLocalUnusedVariables) const
@@ -365,5 +355,15 @@ QFuture<CursorInfo> BuiltinCursorInfo::run(const CursorInfoParams &cursorInfoPar
     return Utils::runAsync(&FindUses::find, document, snapshot, line, column, scope, expression);
 }
 
-} // namespace Internal
+CppTools::SemanticInfo::LocalUseMap
+BuiltinCursorInfo::findLocalUses(const Document::Ptr &document, int line, int column)
+{
+    AST *ast = document->translationUnit()->ast();
+    FunctionDefinitionUnderCursor functionDefinitionUnderCursor(document->translationUnit());
+    DeclarationAST *declaration = functionDefinitionUnderCursor(ast,
+                                                                static_cast<unsigned>(line),
+                                                                static_cast<unsigned>(column));
+    return CppTools::LocalSymbols(document, declaration).uses;
+}
+
 } // namespace CppTools
diff --git a/src/plugins/cpptools/builtincursorinfo.h b/src/plugins/cpptools/builtincursorinfo.h
index 3e24378bde2f3b0861f78bdd237742817742cccf..3a6ef71628d61d16420cee988d112ddd29e19cac 100644
--- a/src/plugins/cpptools/builtincursorinfo.h
+++ b/src/plugins/cpptools/builtincursorinfo.h
@@ -26,17 +26,21 @@
 #pragma once
 
 #include "cppcursorinfo.h"
+#include "cpptools_global.h"
+
+#include <cplusplus/CppDocument.h>
 
 #include <QFuture>
 
 namespace CppTools {
-namespace Internal {
 
-class BuiltinCursorInfo
+class CPPTOOLS_EXPORT BuiltinCursorInfo
 {
 public:
     static QFuture<CursorInfo> run(const CursorInfoParams &params);
+
+    static CppTools::SemanticInfo::LocalUseMap
+    findLocalUses(const CPlusPlus::Document::Ptr &document, int line, int column);
 };
 
-} // namespace Internal
 } // namespace CppTools
diff --git a/src/plugins/cpptools/builtineditordocumentprocessor.cpp b/src/plugins/cpptools/builtineditordocumentprocessor.cpp
index d5c57003b6bab997f7bed3dbd1f9f6e1bd0b36ee..95f4932e085df662c8d8f43aafdece78570dee4e 100644
--- a/src/plugins/cpptools/builtineditordocumentprocessor.cpp
+++ b/src/plugins/cpptools/builtineditordocumentprocessor.cpp
@@ -257,7 +257,7 @@ bool BuiltinEditorDocumentProcessor::isParserRunning() const
 QFuture<CursorInfo>
 BuiltinEditorDocumentProcessor::cursorInfo(const CursorInfoParams &params)
 {
-    return Internal::BuiltinCursorInfo::run(params);
+    return BuiltinCursorInfo::run(params);
 }
 
 void BuiltinEditorDocumentProcessor::onParserFinished(CPlusPlus::Document::Ptr document,
diff --git a/src/plugins/debugger/debuggerplugin.cpp b/src/plugins/debugger/debuggerplugin.cpp
index 009ce9f3cf8bc897462e53e36455fc9f5cc47e41..d64fd67ebda13f45ae5d33c6c14f45d288be641b 100644
--- a/src/plugins/debugger/debuggerplugin.cpp
+++ b/src/plugins/debugger/debuggerplugin.cpp
@@ -2119,6 +2119,7 @@ void DebuggerPlugin::attachExternalApplication(RunControl *rc)
     rp.startMode = AttachExternal;
     rp.closeMode = DetachAtClose;
     rp.toolChainAbi = rc->abi();
+    rp.languages = CppLanguage;
     if (RunConfiguration *runConfig = rc->runConfiguration()) {
         auto runControl = new RunControl(runConfig, ProjectExplorer::Constants::DEBUG_RUN_MODE);
         (void) new DebuggerRunTool(runControl, rp);
diff --git a/src/plugins/debugger/debuggerruncontrol.cpp b/src/plugins/debugger/debuggerruncontrol.cpp
index 86a5a3b8425c8f1ded7ac5a71bacacc682af942b..7d7d15b1203599a644a5c77852265deebf004b28 100644
--- a/src/plugins/debugger/debuggerruncontrol.cpp
+++ b/src/plugins/debugger/debuggerruncontrol.cpp
@@ -452,16 +452,14 @@ static bool fixupParameters(DebuggerRunParameters &rp, RunControl *runControl, Q
         }
     }
 
-    DebuggerRunConfigurationAspect *debuggerAspect
-            = runConfig->extraAspect<DebuggerRunConfigurationAspect>();
-
-    if (debuggerAspect) {
+    if (auto debuggerAspect = runConfig->extraAspect<DebuggerRunConfigurationAspect>()) {
         rp.multiProcess = debuggerAspect->useMultiProcess();
-        rp.languages = NoLanguage;
-        if (debuggerAspect->useCppDebugger())
-            rp.languages |= CppLanguage;
-        if (debuggerAspect->useQmlDebugger())
-            rp.languages |= QmlLanguage;
+        if (rp.languages == NoLanguage) {
+            if (debuggerAspect->useCppDebugger())
+                rp.languages |= CppLanguage;
+            if (debuggerAspect->useQmlDebugger())
+                rp.languages |= QmlLanguage;
+        }
     }
 
     // This can happen e.g. when started from the command line.
diff --git a/src/plugins/projectexplorer/projectmodels.cpp b/src/plugins/projectexplorer/projectmodels.cpp
index 74a600eb0a9e6631fcaeb9024229df150bbfcf66..867d4acc06f756f33779bfcbe41d120ff822161a 100644
--- a/src/plugins/projectexplorer/projectmodels.cpp
+++ b/src/plugins/projectexplorer/projectmodels.cpp
@@ -359,14 +359,15 @@ void FlatModel::addFolderNode(WrapperNode *parent, FolderNode *folderNode, QSet<
 
 bool FlatModel::trimEmptyDirectories(WrapperNode *parent)
 {
-    if (!parent->m_node->asFolderNode())
+    const FolderNode *fn = parent->m_node->asFolderNode();
+    if (!fn)
         return false;
 
     for (int i = parent->childCount() - 1; i >= 0; --i) {
         if (trimEmptyDirectories(parent->childAt(i)))
             parent->removeChildAt(i);
     }
-    return parent->childCount() == 0;
+    return parent->childCount() == 0 && !fn->showWhenEmpty();
 }
 
 Qt::DropActions FlatModel::supportedDragActions() const
diff --git a/src/plugins/projectexplorer/projectnodes.cpp b/src/plugins/projectexplorer/projectnodes.cpp
index f3755d8492ed676a7f3b2ed37ecf0306b9becb07..91ff23f5facbf081c068ffe9d07ca8947c1e3b3d 100644
--- a/src/plugins/projectexplorer/projectnodes.cpp
+++ b/src/plugins/projectexplorer/projectnodes.cpp
@@ -740,6 +740,11 @@ bool FolderNode::showInSimpleTree() const
     return false;
 }
 
+bool FolderNode::showWhenEmpty() const
+{
+    return false;
+}
+
 /*!
   \class ProjectExplorer::VirtualFolderNode
 
diff --git a/src/plugins/projectexplorer/projectnodes.h b/src/plugins/projectexplorer/projectnodes.h
index f19e746d03a0114efee638794320807ffbca259b..c0cc25a04de1a7e1692d2f50eb23c80942525797 100644
--- a/src/plugins/projectexplorer/projectnodes.h
+++ b/src/plugins/projectexplorer/projectnodes.h
@@ -282,6 +282,8 @@ public:
 
     // determines if node will be shown in the flat view, by default folder and projects aren't shown
     virtual bool showInSimpleTree() const;
+    // determines if node will always be shown when hiding empty directories
+    virtual bool showWhenEmpty() const;
 
     void addNode(Node *node);
     void removeNode(Node *node);
diff --git a/src/plugins/projectexplorer/runconfiguration.cpp b/src/plugins/projectexplorer/runconfiguration.cpp
index 135acec7820b01a31acfa9020a3ef645df59c580..c5e558180693205d336d7927d7752022dc620c9b 100644
--- a/src/plugins/projectexplorer/runconfiguration.cpp
+++ b/src/plugins/projectexplorer/runconfiguration.cpp
@@ -45,6 +45,7 @@
 
 #include <coreplugin/icore.h>
 #include <coreplugin/icontext.h>
+#include <coreplugin/icore.h>
 
 #include <QDir>
 #include <QPushButton>
@@ -947,10 +948,29 @@ void RunControlPrivate::onWorkerFailed(RunWorker *worker, const QString &msg)
     worker->d->state = RunWorkerState::Done;
 
     showError(msg);
-    if (state == RunControlState::Running || state == RunControlState::Starting)
+    switch (state) {
+    case RunControlState::Initialized:
+        // FIXME 1: We don't have an output pane yet, so use some other mechanism for now.
+        // FIXME 2: Translation...
+        QMessageBox::critical(Core::ICore::dialogParent(),
+             QCoreApplication::translate("TaskHub", "Error"),
+             QString("Failure during startup. Aborting.") + "<p>" + msg);
+        continueStopOrFinish();
+        break;
+    case RunControlState::Starting:
+    case RunControlState::Running:
         initiateStop();
-    else
+        break;
+    case RunControlState::Stopping:
+    case RunControlState::Finishing:
+        continueStopOrFinish();
+        break;
+    case RunControlState::Stopped:
+    case RunControlState::Finished:
+        QTC_CHECK(false); // Should not happen.
         continueStopOrFinish();
+        break;
+    }
 }
 
 void RunControlPrivate::onWorkerStopped(RunWorker *worker)
diff --git a/src/plugins/qmakeprojectmanager/qmakeproject.cpp b/src/plugins/qmakeprojectmanager/qmakeproject.cpp
index 67e0181cc1c44d6fb70036881a05a6638a7282a4..2e83b4e55e666cc608d6374b750b65bc7621ba67 100644
--- a/src/plugins/qmakeprojectmanager/qmakeproject.cpp
+++ b/src/plugins/qmakeprojectmanager/qmakeproject.cpp
@@ -1196,6 +1196,7 @@ void QmakeProject::collectLibraryData(const QmakeProFile *file, DeploymentData &
     }
     case Abi::LinuxOS:
     case Abi::BsdOS:
+    case Abi::QnxOS:
     case Abi::UnixOS:
         if (!(isPlugin && config.contains(QLatin1String("no_plugin_name_prefix"))))
             targetFileName.prepend(QLatin1String("lib"));
diff --git a/src/plugins/resourceeditor/resourcenode.cpp b/src/plugins/resourceeditor/resourcenode.cpp
index 48bdac0a9b75c4a827ba6872bb8041d54d0a79b6..4fa45e21848de1d3194bb6fcdb209a584c5c9dae 100644
--- a/src/plugins/resourceeditor/resourcenode.cpp
+++ b/src/plugins/resourceeditor/resourcenode.cpp
@@ -492,6 +492,11 @@ bool ResourceTopLevelNode::showInSimpleTree() const
     return true;
 }
 
+bool ResourceTopLevelNode::showWhenEmpty() const
+{
+    return true;
+}
+
 ResourceFolderNode::ResourceFolderNode(const QString &prefix, const QString &lang, ResourceTopLevelNode *parent)
     : FolderNode(FileName(parent->filePath()).appendPath(prefix)),
       // TOOD Why add existing directory doesn't work
diff --git a/src/plugins/resourceeditor/resourcenode.h b/src/plugins/resourceeditor/resourcenode.h
index 02cb2968053e6e049dd89b29c5e48e58abbf38df..6752eb68559c12ebfec6044cfc12bd8cf268f2b0 100644
--- a/src/plugins/resourceeditor/resourcenode.h
+++ b/src/plugins/resourceeditor/resourcenode.h
@@ -51,6 +51,7 @@ public:
 
     AddNewInformation addNewInformation(const QStringList &files, Node *context) const override;
     bool showInSimpleTree() const override;
+    bool showWhenEmpty() const override;
     bool removeNonExistingFiles();
 
     QString contents() const { return m_contents; }
diff --git a/src/shared/qbs b/src/shared/qbs
index 998c69898058a7917a35875b7c7591bba6cf9f48..22c93d768b01936a341dea50b85a3a3d7484da72 160000
--- a/src/shared/qbs
+++ b/src/shared/qbs
@@ -1 +1 @@
-Subproject commit 998c69898058a7917a35875b7c7591bba6cf9f48
+Subproject commit 22c93d768b01936a341dea50b85a3a3d7484da72
diff --git a/src/tools/clangbackend/ipcsource/clangcodemodelserver.cpp b/src/tools/clangbackend/ipcsource/clangcodemodelserver.cpp
index e18b1e736f825255caa18fe1e985aeb151d2b4e5..5f07f99a06640e5016355c3dabf6d5cefcf506f0 100644
--- a/src/tools/clangbackend/ipcsource/clangcodemodelserver.cpp
+++ b/src/tools/clangbackend/ipcsource/clangcodemodelserver.cpp
@@ -87,6 +87,8 @@ void ClangCodeModelServer::registerTranslationUnitsForEditor(const ClangBackEnd:
 
     try {
         auto createdDocuments = documents.create(message.fileContainers());
+        for (const auto &document : createdDocuments)
+            documentProcessors().create(document);
         unsavedFiles.createOrUpdate(message.fileContainers());
         documents.setUsedByCurrentEditor(message.currentEditorFilePath());
         documents.setVisibleInEditors(message.visibleEditorFilePaths());
@@ -390,7 +392,7 @@ void ClangCodeModelServer::processSuspendResumeJobs(const std::vector<Document>
 void ClangCodeModelServer::processInitialJobsForDocuments(const std::vector<Document> &documents)
 {
     for (const auto &document : documents) {
-        DocumentProcessor processor = documentProcessors().create(document);
+        DocumentProcessor processor = documentProcessors().processor(document);
         processor.addJob(JobRequest::Type::UpdateDocumentAnnotations);
         processor.addJob(JobRequest::Type::CreateInitialDocumentPreamble);
         processor.process();
diff --git a/src/tools/sdktool/operation.cpp b/src/tools/sdktool/operation.cpp
index 8a21983db02d47b189eea39f4d8e0c360de5cc81..c4f823281a9ad112833970181135ce210fa4e6d0 100644
--- a/src/tools/sdktool/operation.cpp
+++ b/src/tools/sdktool/operation.cpp
@@ -126,8 +126,18 @@ bool Operation::save(const QVariantMap &map, const QString &file) const
 
     Utils::PersistentSettingsWriter writer(path, QLatin1String("QtCreator")
                                            + file[0].toUpper() + file.mid(1));
-    return writer.save(map, 0)
-            && QFile::setPermissions(path.toString(),
-                                     QFile::ReadOwner | QFile::WriteOwner
-                                     | QFile::ReadGroup | QFile::ReadOther);
+    QString errorMessage;
+    if (!writer.save(map, &errorMessage)) {
+        std::cerr << "Error: Could not save settings " << qPrintable(path.toString())
+                  << "." << std::endl;
+        return false;
+    }
+    if (!QFile::setPermissions(path.toString(),
+                               QFile::ReadOwner | QFile::WriteOwner
+                               | QFile::ReadGroup | QFile::ReadOther)) {
+        std::cerr << "Error: Could not set permissions for " << qPrintable(path.toString())
+                  << "." << std::endl;
+        return false;
+    }
+    return true;
 }
diff --git a/tests/system/suite_CSUP/tst_CSUP01/test.py b/tests/system/suite_CSUP/tst_CSUP01/test.py
index c8c7064a39092501768ad9a08d3f7c473ce02cb0..5463bd4248bdc0bd1240183403041ee8de55c715 100644
--- a/tests/system/suite_CSUP/tst_CSUP01/test.py
+++ b/tests/system/suite_CSUP/tst_CSUP01/test.py
@@ -76,8 +76,6 @@ def main():
                      "possible to select one of the suggestions.")
 # Step 4: Insert text "voi" to new line and press Tab.
         resetLine(editorWidget)
-        if useClang and JIRA.isBugStillOpen(15639):
-            snooze(2)
         type(editorWidget, "voi")
         try:
             waitForObjectItem(":popupFrame_Proposal_QListView", "void")
diff --git a/tests/system/suite_CSUP/tst_CSUP02/test.py b/tests/system/suite_CSUP/tst_CSUP02/test.py
index aacd96a13d78bf4d96d965dc1c34a3b4b3aeb4d3..f6563d0b7fe68bc8191d962b04f57dd812b66379 100644
--- a/tests/system/suite_CSUP/tst_CSUP02/test.py
+++ b/tests/system/suite_CSUP/tst_CSUP02/test.py
@@ -48,8 +48,8 @@ def main():
         type(editorWidget, "<Return>")
         type(editorWidget, "<Up>")
         type(editorWidget, "class")
-        if useClang and JIRA.isBugStillOpen(15639):
-            snooze(8)
+        if useClang and JIRA.isBugStillOpen(18769):
+            snooze(4)
         if platform.system() == "Darwin":
             type(editorWidget, "<Meta+Space>")
         else:
diff --git a/tests/system/suite_CSUP/tst_CSUP06/test.py b/tests/system/suite_CSUP/tst_CSUP06/test.py
index 7d2a31c39ad0ad64292fd153b42d2569f48aa7c3..2ab54ca4bf48189a86bf5f65b06c5aec4dbf4a09 100644
--- a/tests/system/suite_CSUP/tst_CSUP06/test.py
+++ b/tests/system/suite_CSUP/tst_CSUP06/test.py
@@ -124,8 +124,6 @@ def checkSymbolCompletion(editor, isClangCodeModel):
         missing, expectedSug, expectedRes = args
         symbol = currentLine.lstrip("/").strip()
         timeout = 2500
-        if isClangCodeModel and JIRA.isBugStillOpen(15639):
-            timeout = 5000
         propShown = waitFor("object.exists(':popupFrame_TextEditor::GenericProposalWidget')", timeout)
         test.compare(not propShown, symbol in missing,
                      "Proposal widget is (not) shown as expected (%s)" % symbol)
diff --git a/tests/system/suite_editors/tst_memberoperator/test.py b/tests/system/suite_editors/tst_memberoperator/test.py
index 4582268c7088a77b8c6b997b39bdfc3f7cbd7a85..7efeb4e91f8694887c25dea26ca39fb9cd074775 100644
--- a/tests/system/suite_editors/tst_memberoperator/test.py
+++ b/tests/system/suite_editors/tst_memberoperator/test.py
@@ -43,8 +43,6 @@ def main():
             typeLines(cppwindow, ("<Up>", testData.field(record, "declaration")))
             type(cppwindow, testData.field(record, "usage"))
             snooze(1) # maybe find something better
-            if useClang and JIRA.isBugStillOpen(15639):
-                snooze(1)
             type(cppwindow, testData.field(record, "operator"))
             waitFor("object.exists(':popupFrame_TextEditor::GenericProposalWidget')", 1500)
             found = str(lineUnderCursor(cppwindow)).strip()
diff --git a/tests/system/suite_general/tst_cmake_speedcrunch/testdata/projecttree_speedcrunch_server.tsv b/tests/system/suite_general/tst_cmake_speedcrunch/testdata/projecttree_speedcrunch_server.tsv
index fef18389cf0c92734133a260bc25173c35b7f594..c62854207eeae6bf9b1115ed2c0ad937be55bb22 100644
--- a/tests/system/suite_general/tst_cmake_speedcrunch/testdata/projecttree_speedcrunch_server.tsv
+++ b/tests/system/suite_general/tst_cmake_speedcrunch/testdata/projecttree_speedcrunch_server.tsv
@@ -1,222 +1,159 @@
 "text"	"nestinglevel"
 "CMakeLists.txt"	"0"
 "speedcrunch"	"0"
-"confclean"	"0"
-"<Build Directory>"	"1"
-"CMakeFiles"	"2"
-"confclean"	"3"
-"confclean.rule"	"3"
-"speedcrunch"	"0"
-"<Source Directory>"	"1"
-"core"	"2"
-"book.cpp"	"3"
-"constants.cpp"	"3"
-"evaluator.cpp"	"3"
-"functions.cpp"	"3"
-"numberformatter.cpp"	"3"
-"settings.cpp"	"3"
-"gui"	"2"
-"aboutbox.cpp"	"3"
-"application.cpp"	"3"
-"autohidelabel.cpp"	"3"
-"bookdock.cpp"	"3"
-"constantsdock.cpp"	"3"
-"constantswidget.cpp"	"3"
-"editor.cpp"	"3"
-"functionsdock.cpp"	"3"
-"functionswidget.cpp"	"3"
-"historydock.cpp"	"3"
-"historywidget.cpp"	"3"
-"mainwindow.cpp"	"3"
-"resultdisplay.cpp"	"3"
-"syntaxhighlighter.cpp"	"3"
-"tipwidget.cpp"	"3"
-"variablelistwidget.cpp"	"3"
-"variablesdock.cpp"	"3"
-"math"	"2"
-"floatcommon.c"	"3"
-"floatconst.c"	"3"
-"floatconvert.c"	"3"
-"floaterf.c"	"3"
-"floatexp.c"	"3"
-"floatgamma.c"	"3"
-"floathmath.c"	"3"
-"floatio.c"	"3"
-"floatipower.c"	"3"
-"floatlog.c"	"3"
-"floatlogic.c"	"3"
-"floatlong.c"	"3"
-"floatnum.c"	"3"
-"floatpower.c"	"3"
-"floatseries.c"	"3"
-"floattrig.c"	"3"
-"hmath.cpp"	"3"
-"number.c"	"3"
-"resources"	"2"
-"speedcrunch.qrc"	"3"
-"/"	"4"
-"locale"	"5"
-"ar_JO.qm"	"6"
-"ca_ES.qm"	"6"
-"cs_CZ.qm"	"6"
-"de_DE.qm"	"6"
-"en_GB.qm"	"6"
-"en_US.qm"	"6"
-"es_AR.qm"	"6"
-"es_ES.qm"	"6"
-"et_EE.qm"	"6"
-"eu_ES.qm"	"6"
-"fi_FI.qm"	"6"
-"fr_FR.qm"	"6"
-"he_IL.qm"	"6"
-"hu_HU.qm"	"6"
-"id_ID.qm"	"6"
-"it_IT.qm"	"6"
-"ja_JP.qm"	"6"
-"ko_KR.qm"	"6"
-"lv_LV.qm"	"6"
-"nb_NO.qm"	"6"
-"nl_NL.qm"	"6"
-"pl_PL.qm"	"6"
-"pt_BR.qm"	"6"
-"pt_PT.qm"	"6"
-"ro_RO.qm"	"6"
-"ru_RU.qm"	"6"
-"sv_SE.qm"	"6"
-"tr_TR.qm"	"6"
-"uz_UZ.qm"	"6"
-"vi_VN.qm"	"6"
-"zh_CN.qm"	"6"
-"speedcrunch.png"	"5"
-"speedcrunch.rc"	"3"
-"thirdparty"	"2"
-"binreloc.c"	"3"
-"main.cpp"	"2"
-"<Build Directory>"	"1"
-"core"	"2"
-"moc_book.cxx"	"3"
-"moc_book.cxx.rule"	"3"
-"moc_constants.cxx"	"3"
-"moc_constants.cxx.rule"	"3"
-"moc_evaluator.cxx"	"3"
-"moc_evaluator.cxx.rule"	"3"
-"moc_functions.cxx"	"3"
-"moc_functions.cxx.rule"	"3"
-"gui"	"2"
-"moc_application.cxx"	"3"
-"moc_application.cxx.rule"	"3"
-"moc_autohidelabel.cxx"	"3"
-"moc_autohidelabel.cxx.rule"	"3"
-"moc_bookdock.cxx"	"3"
-"moc_bookdock.cxx.rule"	"3"
-"moc_constantsdock.cxx"	"3"
-"moc_constantsdock.cxx.rule"	"3"
-"moc_constantswidget.cxx"	"3"
-"moc_constantswidget.cxx.rule"	"3"
-"moc_editor.cxx"	"3"
-"moc_editor.cxx.rule"	"3"
-"moc_functionsdock.cxx"	"3"
-"moc_functionsdock.cxx.rule"	"3"
-"moc_functionswidget.cxx"	"3"
-"moc_functionswidget.cxx.rule"	"3"
-"moc_historydock.cxx"	"3"
-"moc_historydock.cxx.rule"	"3"
-"moc_historywidget.cxx"	"3"
-"moc_historywidget.cxx.rule"	"3"
-"moc_mainwindow.cxx"	"3"
-"moc_mainwindow.cxx.rule"	"3"
-"moc_resultdisplay.cxx"	"3"
-"moc_resultdisplay.cxx.rule"	"3"
-"moc_tipwidget.cxx"	"3"
-"moc_tipwidget.cxx.rule"	"3"
-"moc_variablelistwidget.cxx"	"3"
-"moc_variablelistwidget.cxx.rule"	"3"
-"moc_variablesdock.cxx"	"3"
-"moc_variablesdock.cxx.rule"	"3"
-"qrc_speedcrunch.cxx"	"2"
+"core"	"1"
+"book.cpp"	"2"
+"constants.cpp"	"2"
+"evaluator.cpp"	"2"
+"functions.cpp"	"2"
+"numberformatter.cpp"	"2"
+"settings.cpp"	"2"
+"gui"	"1"
+"aboutbox.cpp"	"2"
+"application.cpp"	"2"
+"autohidelabel.cpp"	"2"
+"bookdock.cpp"	"2"
+"constantsdock.cpp"	"2"
+"constantswidget.cpp"	"2"
+"editor.cpp"	"2"
+"functionsdock.cpp"	"2"
+"functionswidget.cpp"	"2"
+"historydock.cpp"	"2"
+"historywidget.cpp"	"2"
+"mainwindow.cpp"	"2"
+"resultdisplay.cpp"	"2"
+"syntaxhighlighter.cpp"	"2"
+"tipwidget.cpp"	"2"
+"variablelistwidget.cpp"	"2"
+"variablesdock.cpp"	"2"
+"math"	"1"
+"floatcommon.c"	"2"
+"floatconst.c"	"2"
+"floatconvert.c"	"2"
+"floaterf.c"	"2"
+"floatexp.c"	"2"
+"floatgamma.c"	"2"
+"floathmath.c"	"2"
+"floatio.c"	"2"
+"floatipower.c"	"2"
+"floatlog.c"	"2"
+"floatlogic.c"	"2"
+"floatlong.c"	"2"
+"floatnum.c"	"2"
+"floatpower.c"	"2"
+"floatseries.c"	"2"
+"floattrig.c"	"2"
+"hmath.cpp"	"2"
+"number.c"	"2"
+"resources"	"1"
+"speedcrunch.qrc"	"2"
+"/"	"3"
+"locale"	"4"
+"ar_JO.qm"	"5"
+"ca_ES.qm"	"5"
+"cs_CZ.qm"	"5"
+"de_DE.qm"	"5"
+"en_GB.qm"	"5"
+"en_US.qm"	"5"
+"es_AR.qm"	"5"
+"es_ES.qm"	"5"
+"et_EE.qm"	"5"
+"eu_ES.qm"	"5"
+"fi_FI.qm"	"5"
+"fr_FR.qm"	"5"
+"he_IL.qm"	"5"
+"hu_HU.qm"	"5"
+"id_ID.qm"	"5"
+"it_IT.qm"	"5"
+"ja_JP.qm"	"5"
+"ko_KR.qm"	"5"
+"lv_LV.qm"	"5"
+"nb_NO.qm"	"5"
+"nl_NL.qm"	"5"
+"pl_PL.qm"	"5"
+"pt_BR.qm"	"5"
+"pt_PT.qm"	"5"
+"ro_RO.qm"	"5"
+"ru_RU.qm"	"5"
+"sv_SE.qm"	"5"
+"tr_TR.qm"	"5"
+"uz_UZ.qm"	"5"
+"vi_VN.qm"	"5"
+"zh_CN.qm"	"5"
+"speedcrunch.png"	"4"
+"speedcrunch.rc"	"2"
+"thirdparty"	"1"
+"binreloc.c"	"2"
+"main.cpp"	"1"
 "testevaluator"	"0"
-"<Source Directory>"	"1"
-"core"	"2"
-"evaluator.cpp"	"3"
-"functions.cpp"	"3"
-"settings.cpp"	"3"
-"math"	"2"
-"floatcommon.c"	"3"
-"floatconst.c"	"3"
-"floatconvert.c"	"3"
-"floaterf.c"	"3"
-"floatexp.c"	"3"
-"floatgamma.c"	"3"
-"floathmath.c"	"3"
-"floatio.c"	"3"
-"floatipower.c"	"3"
-"floatlog.c"	"3"
-"floatlogic.c"	"3"
-"floatlong.c"	"3"
-"floatnum.c"	"3"
-"floatpower.c"	"3"
-"floatseries.c"	"3"
-"floattrig.c"	"3"
-"hmath.cpp"	"3"
-"number.c"	"3"
-"tests"	"2"
-"testevaluator.cpp"	"3"
-"<Build Directory>"	"1"
-"core"	"2"
-"moc_evaluator.cxx"	"3"
-"moc_evaluator.cxx.rule"	"3"
-"moc_functions.cxx"	"3"
-"moc_functions.cxx.rule"	"3"
+"core"	"1"
+"evaluator.cpp"	"2"
+"functions.cpp"	"2"
+"settings.cpp"	"2"
+"math"	"1"
+"floatcommon.c"	"2"
+"floatconst.c"	"2"
+"floatconvert.c"	"2"
+"floaterf.c"	"2"
+"floatexp.c"	"2"
+"floatgamma.c"	"2"
+"floathmath.c"	"2"
+"floatio.c"	"2"
+"floatipower.c"	"2"
+"floatlog.c"	"2"
+"floatlogic.c"	"2"
+"floatlong.c"	"2"
+"floatnum.c"	"2"
+"floatpower.c"	"2"
+"floatseries.c"	"2"
+"floattrig.c"	"2"
+"hmath.cpp"	"2"
+"number.c"	"2"
+"tests"	"1"
+"testevaluator.cpp"	"2"
 "testfloatnum"	"0"
-"<Source Directory>"	"1"
-"math"	"2"
-"floatcommon.c"	"3"
-"floatconst.c"	"3"
-"floatconvert.c"	"3"
-"floaterf.c"	"3"
-"floatexp.c"	"3"
-"floatgamma.c"	"3"
-"floathmath.c"	"3"
-"floatio.c"	"3"
-"floatipower.c"	"3"
-"floatlog.c"	"3"
-"floatlogic.c"	"3"
-"floatlong.c"	"3"
-"floatnum.c"	"3"
-"floatpower.c"	"3"
-"floatseries.c"	"3"
-"floattrig.c"	"3"
-"number.c"	"3"
-"tests"	"2"
-"testfloatnum.c"	"3"
+"math"	"1"
+"floatcommon.c"	"2"
+"floatconst.c"	"2"
+"floatconvert.c"	"2"
+"floaterf.c"	"2"
+"floatexp.c"	"2"
+"floatgamma.c"	"2"
+"floathmath.c"	"2"
+"floatio.c"	"2"
+"floatipower.c"	"2"
+"floatlog.c"	"2"
+"floatlogic.c"	"2"
+"floatlong.c"	"2"
+"floatnum.c"	"2"
+"floatpower.c"	"2"
+"floatseries.c"	"2"
+"floattrig.c"	"2"
+"number.c"	"2"
+"tests"	"1"
+"testfloatnum.c"	"2"
 "testhmath"	"0"
-"<Source Directory>"	"1"
-"math"	"2"
-"floatcommon.c"	"3"
-"floatconst.c"	"3"
-"floatconvert.c"	"3"
-"floaterf.c"	"3"
-"floatexp.c"	"3"
-"floatgamma.c"	"3"
-"floathmath.c"	"3"
-"floatio.c"	"3"
-"floatipower.c"	"3"
-"floatlog.c"	"3"
-"floatlogic.c"	"3"
-"floatlong.c"	"3"
-"floatnum.c"	"3"
-"floatpower.c"	"3"
-"floatseries.c"	"3"
-"floattrig.c"	"3"
-"hmath.cpp"	"3"
-"number.c"	"3"
-"tests"	"2"
-"testhmath.cpp"	"3"
-"uninstall"	"0"
-"<Build Directory>"	"1"
-"CMakeFiles"	"2"
-"uninstall"	"3"
-"uninstall.rule"	"3"
+"math"	"1"
+"floatcommon.c"	"2"
+"floatconst.c"	"2"
+"floatconvert.c"	"2"
+"floaterf.c"	"2"
+"floatexp.c"	"2"
+"floatgamma.c"	"2"
+"floathmath.c"	"2"
+"floatio.c"	"2"
+"floatipower.c"	"2"
+"floatlog.c"	"2"
+"floatlogic.c"	"2"
+"floatlong.c"	"2"
+"floatnum.c"	"2"
+"floatpower.c"	"2"
+"floatseries.c"	"2"
+"floattrig.c"	"2"
+"hmath.cpp"	"2"
+"number.c"	"2"
+"tests"	"1"
+"testhmath.cpp"	"2"
 "<Headers>"	"0"
 "core"	"1"
 "book.h"	"2"
@@ -268,14 +205,7 @@
 "thirdparty"	"1"
 "binreloc.h"	"2"
 "CMake Modules"	"0"
-"<Source Directory>"	"1"
-"cmake_uninstall.cmake.in"	"2"
-"SourceFiles.cmake"	"2"
-"resources"	"2"
-"speedcrunch.qrc"	"3"
-"<Build Directory>"	"1"
-"CMakeFiles"	"2"
-"feature_tests.cxx"	"3"
-"CMakeCCompiler.cmake"	"4"
-"CMakeCXXCompiler.cmake"	"4"
-"CMakeSystem.cmake"	"4"
+"cmake_uninstall.cmake.in"	"1"
+"SourceFiles.cmake"	"1"
+"resources"	"1"
+"speedcrunch.qrc"	"2"
diff --git a/tests/system/suite_general/tst_opencreator_qbs/testdata/projecttree_creator.tsv b/tests/system/suite_general/tst_opencreator_qbs/testdata/projecttree_creator.tsv
index 3381fda054746ab2406f1efa998f49f882621bcb..c67a25307056b220ad23129cc40204349829e6db 100644
--- a/tests/system/suite_general/tst_opencreator_qbs/testdata/projecttree_creator.tsv
+++ b/tests/system/suite_general/tst_opencreator_qbs/testdata/projecttree_creator.tsv
@@ -2,12 +2,10 @@
 "qtcreator.qbs:5"	"0"
 "autotest-runner"	"0"
 "qtcreator.qbs:50"	"1"
-"Generated files"	"1"
 "documentation"	"0"
 "doc.qbs:3"	"1"
 "API doc offline"	"1"
 "doc.qbs:41"	"2"
-"Generated files"	"2"
 "main qdocconf file"	"2"
 "QtcDocumentation.qbs:13"	"3"
 "qtcreator-dev.qdocconf"	"4"
@@ -52,7 +50,6 @@
 "qtcreator-ui-text.qdoc"	"4"
 "API doc online"	"1"
 "doc.qbs:26"	"2"
-"Generated files"	"2"
 "main qdocconf file"	"2"
 "QtcDocumentation.qbs:13"	"3"
 "qtcreator-dev-online.qdocconf"	"4"
@@ -97,7 +94,6 @@
 "qtcreator-ui-text.qdoc"	"4"
 "user doc offline"	"1"
 "doc.qbs:16"	"2"
-"Generated files"	"2"
 "main qdocconf file"	"2"
 "QtcDocumentation.qbs:13"	"3"
 "qtcreator.qdocconf"	"4"
@@ -251,7 +247,6 @@
 "qtcreator.qdoc"	"3"
 "user doc online"	"1"
 "doc.qbs:6"	"2"
-"Generated files"	"2"
 "main qdocconf file"	"2"
 "QtcDocumentation.qbs:13"	"3"
 "qtcreator-online.qdocconf"	"4"
@@ -405,7 +400,6 @@
 "qtcreator.qdoc"	"3"
 "qbs_imports_modules"	"0"
 "qtcreator.qbs:25"	"1"
-"Generated files"	"1"
 "Group 1"	"1"
 "qtcreator.qbs:28"	"2"
 "qbs"	"2"
@@ -436,7 +430,6 @@
 "qtc.qbs"	"5"
 "qmake project files"	"0"
 "qtcreator.qbs:37"	"1"
-"Generated files"	"1"
 "bin"	"1"
 "bin.pro"	"2"
 "doc"	"1"
@@ -1469,7 +1462,6 @@
 "qtcreatordata.pri"	"1"
 "SharedContent"	"0"
 "share.qbs:3"	"1"
-"Generated files"	"1"
 "3rdparty"	"1"
 "share.qbs:32"	"2"
 "alert.xml"	"3"
@@ -2214,7 +2206,6 @@
 "src.qbs:6"	"1"
 "app_version_header"	"1"
 "app_version_header.qbs:4"	"2"
-"Generated files"	"2"
 "Group 1"	"2"
 "app_version_header.qbs:8"	"3"
 "app_version.h.in"	"3"
@@ -2224,7 +2215,6 @@
 "aggregation.qbs:3"	"3"
 "Aggregation"	"3"
 "aggregation.qbs:8"	"4"
-"Generated files"	"4"
 "standard pch file (gui)"	"4"
 "QtcProduct.qbs:51"	"5"
 "qtcreator_gui_pch.h"	"6"
@@ -2236,7 +2226,6 @@
 "aggregation_global.h"	"4"
 "Aggregation dev headers"	"3"
 "aggregation.qbs:6"	"4"
-"Generated files"	"4"
 "Group 1"	"4"
 "QtcDevHeaders.qbs:10"	"5"
 "main.h"	"7"
@@ -2245,7 +2234,6 @@
 "aggregation_global.h"	"6"
 "ClangBackEndIpc"	"2"
 "clangbackendipc.qbs:3"	"3"
-"Generated files"	"3"
 "Group 3"	"3"
 "clangbackendipc.qbs:14"	"4"
 "clangbackendipc_global.h"	"4"
@@ -2359,7 +2347,6 @@
 "cplusplus.qbs:3"	"3"
 "CPlusPlus"	"3"
 "cplusplus.qbs:12"	"4"
-"Generated files"	"4"
 "General"	"4"
 "cplusplus.qbs:95"	"5"
 "AlreadyConsideredClassContainer.h"	"5"
@@ -2541,7 +2528,6 @@
 "TypeVisitor.h"	"6"
 "cplusplus (3rd party) dev headers"	"3"
 "cplusplus.qbs:7"	"4"
-"Generated files"	"4"
 "Group 1"	"4"
 "QtcDevHeaders.qbs:10"	"5"
 "AST.h"	"6"
@@ -2580,7 +2566,6 @@
 "TypeVisitor.h"	"6"
 "CPlusPlus dev headers"	"3"
 "cplusplus.qbs:6"	"4"
-"Generated files"	"4"
 "Group 1"	"4"
 "QtcDevHeaders.qbs:10"	"5"
 "AlreadyConsideredClassContainer.h"	"6"
@@ -2621,7 +2606,6 @@
 "extensionsystem.qbs:3"	"3"
 "ExtensionSystem"	"3"
 "extensionsystem.qbs:8"	"4"
-"Generated files"	"4"
 "standard pch file (gui)"	"4"
 "QtcProduct.qbs:51"	"5"
 "qtcreator_gui_pch.h"	"6"
@@ -2655,7 +2639,6 @@
 "pluginview.h"	"4"
 "ExtensionSystem dev headers"	"3"
 "extensionsystem.qbs:6"	"4"
-"Generated files"	"4"
 "Group 1"	"4"
 "QtcDevHeaders.qbs:10"	"5"
 "extensionsystem_global.h"	"6"
@@ -2675,7 +2658,6 @@
 "flamegraph.qbs:5"	"3"
 "FlameGraph"	"3"
 "flamegraph.qbs:10"	"4"
-"Generated files"	"4"
 "General"	"4"
 "flamegraph.qbs:13"	"5"
 "flamegraph.cpp"	"5"
@@ -2698,7 +2680,6 @@
 "qtcreator_pch.h"	"6"
 "FlameGraph dev headers"	"3"
 "flamegraph.qbs:8"	"4"
-"Generated files"	"4"
 "Group 1"	"4"
 "QtcDevHeaders.qbs:10"	"5"
 "flamegraph.h"	"6"
@@ -2706,7 +2687,6 @@
 "flamegraphattached.h"	"6"
 "GLSL"	"2"
 "glsl.qbs:3"	"3"
-"Generated files"	"3"
 "standard pch file (gui)"	"3"
 "QtcProduct.qbs:51"	"4"
 "qtcreator_gui_pch.h"	"5"
@@ -2746,7 +2726,6 @@
 "languageutils.qbs:3"	"3"
 "LanguageUtils"	"3"
 "languageutils.qbs:8"	"4"
-"Generated files"	"4"
 "standard pch file (gui)"	"4"
 "QtcProduct.qbs:51"	"5"
 "qtcreator_gui_pch.h"	"6"
@@ -2760,7 +2739,6 @@
 "languageutils_global.h"	"4"
 "LanguageUtils dev headers"	"3"
 "languageutils.qbs:6"	"4"
-"Generated files"	"4"
 "Group 1"	"4"
 "QtcDevHeaders.qbs:10"	"5"
 "componentversion.h"	"6"
@@ -2768,7 +2746,6 @@
 "languageutils_global.h"	"6"
 "Modeling"	"2"
 "modelinglib.qbs:3"	"3"
-"Generated files"	"3"
 "Images"	"3"
 "modelinglib.qbs:341"	"4"
 "25x25"	"5"
@@ -3161,7 +3138,6 @@
 "qmldebug.qbs:3"	"3"
 "QmlDebug"	"3"
 "qmldebug.qbs:8"	"4"
-"Generated files"	"4"
 "standard pch file (gui)"	"4"
 "QtcProduct.qbs:51"	"5"
 "qtcreator_gui_pch.h"	"6"
@@ -3195,7 +3171,6 @@
 "qpacketprotocol.h"	"4"
 "QmlDebug dev headers"	"3"
 "qmldebug.qbs:6"	"4"
-"Generated files"	"4"
 "Group 1"	"4"
 "QtcDevHeaders.qbs:10"	"5"
 "baseenginedebugclient.h"	"6"
@@ -3215,7 +3190,6 @@
 "qpacketprotocol.h"	"6"
 "QmlEditorWidgets"	"2"
 "qmleditorwidgets.qbs:3"	"3"
-"Generated files"	"3"
 "Easing Pane"	"3"
 "qmleditorwidgets.qbs:36"	"4"
 "easingpane"	"4"
@@ -3340,7 +3314,6 @@
 "qmljs.qbs:3"	"3"
 "QmlJS"	"3"
 "qmljs.qbs:8"	"4"
-"Generated files"	"4"
 "General"	"4"
 "qmljs.qbs:18"	"5"
 "jsoncheck.cpp"	"5"
@@ -3447,7 +3420,6 @@
 "qtcreator_pch.h"	"6"
 "QmlJS dev headers"	"3"
 "qmljs.qbs:6"	"4"
-"Generated files"	"4"
 "Group 1"	"4"
 "QtcDevHeaders.qbs:10"	"5"
 "parser"	"6"
@@ -3503,7 +3475,6 @@
 "qmljsviewercontext.h"	"6"
 "qtcreator_ctrlc_stub"	"2"
 "process_ctrlc_stub.qbs:3"	"3"
-"Generated files"	"3"
 "standard pch file (gui)"	"3"
 "QtcProduct.qbs:51"	"4"
 "qtcreator_gui_pch.h"	"5"
@@ -3513,7 +3484,6 @@
 "process_ctrlc_stub.cpp"	"3"
 "qtcreator_process_stub"	"2"
 "process_stub.qbs:3"	"3"
-"Generated files"	"3"
 "standard pch file (gui)"	"3"
 "QtcProduct.qbs:51"	"4"
 "qtcreator_gui_pch.h"	"5"
@@ -3522,7 +3492,6 @@
 "qtcreator_pch.h"	"5"
 "qtcreatorcdbext"	"2"
 "qtcreatorcdbext.qbs:6"	"3"
-"Generated files"	"3"
 "standard pch file (gui)"	"3"
 "QtcProduct.qbs:51"	"4"
 "qtcreator_gui_pch.h"	"5"
@@ -3556,7 +3525,6 @@
 "ssh.qbs:4"	"3"
 "QtcSsh"	"3"
 "ssh.qbs:9"	"4"
-"Generated files"	"4"
 "standard pch file (gui)"	"4"
 "QtcProduct.qbs:51"	"5"
 "qtcreator_gui_pch.h"	"6"
@@ -3640,7 +3608,6 @@
 "sshtcpiptunnel_p.h"	"4"
 "QtcSsh dev headers"	"3"
 "ssh.qbs:7"	"4"
-"Generated files"	"4"
 "Group 1"	"4"
 "QtcDevHeaders.qbs:10"	"5"
 "sftpchannel.h"	"6"
@@ -3687,7 +3654,6 @@
 "sshtcpiptunnel_p.h"	"6"
 "Sqlite"	"2"
 "sqlite.qbs:3"	"3"
-"Generated files"	"3"
 "Group 4"	"3"
 "sqlite.qbs:31"	"4"
 "columndefinition.cpp"	"4"
@@ -3751,7 +3717,6 @@
 "timeline.qbs:5"	"3"
 "Timeline"	"3"
 "timeline.qbs:10"	"4"
-"Generated files"	"4"
 "General"	"4"
 "timeline.qbs:14"	"5"
 "README"	"5"
@@ -3835,7 +3800,6 @@
 "runscenegraphtest.h"	"5"
 "Timeline dev headers"	"3"
 "timeline.qbs:8"	"4"
-"Generated files"	"4"
 "Group 1"	"4"
 "QtcDevHeaders.qbs:10"	"5"
 "runscenegraphtest.h"	"6"
@@ -3863,7 +3827,6 @@
 "utils.qbs:4"	"3"
 "Utils"	"3"
 "utils.qbs:9"	"4"
-"Generated files"	"4"
 "ConsoleProcess_unix"	"4"
 "utils.qbs:274"	"5"
 "consoleprocess_unix.cpp"	"5"
@@ -4460,7 +4423,6 @@
 "wizardpage.h"	"4"
 "Utils dev headers"	"3"
 "utils.qbs:7"	"4"
-"Generated files"	"4"
 "Group 1"	"4"
 "QtcDevHeaders.qbs:10"	"5"
 "mimetypes"	"6"
@@ -4596,7 +4558,6 @@
 "android.qbs:3"	"3"
 "Android"	"3"
 "android.qbs:8"	"4"
-"Generated files"	"4"
 "MimeTypes"	"4"
 "QtcPlugin.qbs:58"	"5"
 "Android.mimetypes.xml"	"6"
@@ -4699,7 +4660,6 @@
 "javaparser.h"	"4"
 "Android dev headers"	"3"
 "android.qbs:6"	"4"
-"Generated files"	"4"
 "Group 1"	"4"
 "QtcDevHeaders.qbs:10"	"5"
 "android_global.h"	"6"
@@ -4746,7 +4706,6 @@
 "javaparser.h"	"6"
 "AutoTest"	"2"
 "autotest.qbs:3"	"3"
-"Generated files"	"3"
 "Auto Test Wizard"	"3"
 "autotest.qbs:112"	"4"
 "Google Test framework files"	"3"
@@ -4878,7 +4837,6 @@
 "testtreeview.h"	"3"
 "AutotoolsProjectManager"	"2"
 "autotoolsprojectmanager.qbs:3"	"3"
-"Generated files"	"3"
 "MimeTypes"	"3"
 "QtcPlugin.qbs:58"	"4"
 "PluginMetaData"	"3"
@@ -4921,7 +4879,6 @@
 "makestep.h"	"3"
 "BareMetal"	"2"
 "baremetal.qbs:3"	"3"
-"Generated files"	"3"
 "MimeTypes"	"3"
 "QtcPlugin.qbs:58"	"4"
 "PluginMetaData"	"3"
@@ -4979,7 +4936,6 @@
 "stlinkutilgdbserverprovider.h"	"3"
 "Bazaar"	"2"
 "bazaar.qbs:3"	"3"
-"Generated files"	"3"
 "MimeTypes"	"3"
 "QtcPlugin.qbs:58"	"4"
 "PluginMetaData"	"3"
@@ -5023,7 +4979,6 @@
 "uncommitdialog.ui"	"3"
 "Beautifier"	"2"
 "beautifier.qbs:3"	"3"
-"Generated files"	"3"
 "ArtisticStyle"	"3"
 "beautifier.qbs:40"	"4"
 "artisticstyle"	"4"
@@ -5092,7 +5047,6 @@
 "generalsettings.h"	"3"
 "BinEditor"	"2"
 "bineditor.qbs:3"	"3"
-"Generated files"	"3"
 "MimeTypes"	"3"
 "QtcPlugin.qbs:58"	"4"
 "PluginMetaData"	"3"
@@ -5115,7 +5069,6 @@
 "markup.h"	"3"
 "Bookmarks"	"2"
 "bookmarks.qbs:3"	"3"
-"Generated files"	"3"
 "MimeTypes"	"3"
 "QtcPlugin.qbs:58"	"4"
 "PluginMetaData"	"3"
@@ -5136,7 +5089,6 @@
 "bookmarksplugin.h"	"3"
 "ClangCodeModel"	"2"
 "clangcodemodel.qbs:4"	"3"
-"Generated files"	"3"
 "MimeTypes"	"3"
 "QtcPlugin.qbs:58"	"4"
 "Other files"	"3"
@@ -5238,7 +5190,6 @@
 "clangutils.h"	"3"
 "ClangStaticAnalyzer"	"2"
 "clangstaticanalyzer.qbs:3"	"3"
-"Generated files"	"3"
 "MimeTypes"	"3"
 "QtcPlugin.qbs:58"	"4"
 "Other files"	"3"
@@ -5323,7 +5274,6 @@
 "clangstaticanalyzerutils.h"	"3"
 "ClassView"	"2"
 "classview.qbs:3"	"3"
-"Generated files"	"3"
 "MimeTypes"	"3"
 "QtcPlugin.qbs:58"	"4"
 "PluginMetaData"	"3"
@@ -5358,7 +5308,6 @@
 "classviewutils.h"	"3"
 "ClearCase"	"2"
 "clearcase.qbs:3"	"3"
-"Generated files"	"3"
 "MimeTypes"	"3"
 "QtcPlugin.qbs:58"	"4"
 "ClearCase.mimetypes.xml"	"5"
@@ -5403,7 +5352,6 @@
 "versionselector.ui"	"3"
 "CMakeProjectManager"	"2"
 "cmakeprojectmanager.qbs:3"	"3"
-"Generated files"	"3"
 "MimeTypes"	"3"
 "QtcPlugin.qbs:58"	"4"
 "CMakeProjectManager.mimetypes.xml"	"5"
@@ -5474,7 +5422,6 @@
 "configmodelitemdelegate.h"	"3"
 "CodePaster"	"2"
 "cpaster.qbs:3"	"3"
-"Generated files"	"3"
 "MimeTypes"	"3"
 "QtcPlugin.qbs:58"	"4"
 "PluginMetaData"	"3"
@@ -5529,7 +5476,6 @@
 "coreplugin.qbs:4"	"3"
 "Core"	"3"
 "coreplugin.qbs:9"	"4"
-"Generated files"	"4"
 "Action Manager"	"4"
 "coreplugin.qbs:111"	"5"
 "actionmanager"	"5"
@@ -5875,7 +5821,6 @@
 "testdatadir.h"	"5"
 "Core dev headers"	"3"
 "coreplugin.qbs:7"	"4"
-"Generated files"	"4"
 "Group 1"	"4"
 "QtcDevHeaders.qbs:10"	"5"
 "actionmanager"	"6"
@@ -6030,7 +5975,6 @@
 "windowsupport.h"	"6"
 "cpaster"	"2"
 "frontend.qbs:3"	"3"
-"Generated files"	"3"
 "Frontend Sources"	"3"
 "frontend.qbs:13"	"4"
 "argumentscollector.cpp"	"4"
@@ -6057,7 +6001,6 @@
 "qtcreator_pch.h"	"5"
 "CppEditor"	"2"
 "cppeditor.qbs:4"	"3"
-"Generated files"	"3"
 "MimeTypes"	"3"
 "QtcPlugin.qbs:58"	"4"
 "PluginMetaData"	"3"
@@ -6143,7 +6086,6 @@
 "cpptools.qbs:4"	"3"
 "CppTools"	"3"
 "cpptools.qbs:9"	"4"
-"Generated files"	"4"
 "MimeTypes"	"4"
 "QtcPlugin.qbs:58"	"5"
 "CppTools.mimetypes.xml"	"6"
@@ -6325,7 +6267,6 @@
 "typehierarchybuilder.h"	"4"
 "CppTools dev headers"	"3"
 "cpptools.qbs:7"	"4"
-"Generated files"	"4"
 "Group 1"	"4"
 "QtcDevHeaders.qbs:10"	"5"
 "abstracteditorsupport.h"	"6"
@@ -6408,7 +6349,6 @@
 "typehierarchybuilder.h"	"6"
 "CVS"	"2"
 "cvs.qbs:3"	"3"
-"Generated files"	"3"
 "MimeTypes"	"3"
 "QtcPlugin.qbs:58"	"4"
 "CVS.mimetypes.xml"	"5"
@@ -6445,7 +6385,6 @@
 "debugger.qbs:3"	"3"
 "Debugger"	"3"
 "debugger.qbs:8"	"4"
-"Generated files"	"4"
 "Analyzer"	"4"
 "debugger.qbs:234"	"5"
 "analyzer"	"5"
@@ -6751,7 +6690,6 @@
 "debuggerunittests.qrc"	"5"
 "Debugger dev headers"	"3"
 "debugger.qbs:6"	"4"
-"Generated files"	"4"
 "Group 1"	"4"
 "QtcDevHeaders.qbs:10"	"5"
 "analyzer"	"6"
@@ -6863,7 +6801,6 @@
 "watchwindow.h"	"6"
 "Designer"	"2"
 "designer.qbs:4"	"3"
-"Generated files"	"3"
 "cpp"	"3"
 "designer.qbs:67"	"4"
 "cpp"	"4"
@@ -6937,7 +6874,6 @@
 "gotoslot_test.cpp"	"4"
 "DiffEditor"	"2"
 "diffeditor.qbs:3"	"3"
-"Generated files"	"3"
 "MimeTypes"	"3"
 "QtcPlugin.qbs:58"	"4"
 "PluginMetaData"	"3"
@@ -6979,7 +6915,6 @@
 "unifieddiffeditorwidget.h"	"3"
 "EmacsKeys"	"2"
 "emacskeys.qbs:3"	"3"
-"Generated files"	"3"
 "MimeTypes"	"3"
 "QtcPlugin.qbs:58"	"4"
 "PluginMetaData"	"3"
@@ -6998,7 +6933,6 @@
 "emacskeysstate.h"	"3"
 "FakeVim"	"2"
 "fakevim.qbs:3"	"3"
-"Generated files"	"3"
 "MimeTypes"	"3"
 "QtcPlugin.qbs:58"	"4"
 "PluginMetaData"	"3"
@@ -7024,7 +6958,6 @@
 "fakevimtr.h"	"3"
 "GenericProjectManager"	"2"
 "genericprojectmanager.qbs:4"	"3"
-"Generated files"	"3"
 "MimeTypes"	"3"
 "QtcPlugin.qbs:58"	"4"
 "GenericProjectManager.mimetypes.xml"	"5"
@@ -7063,7 +6996,6 @@
 "genericprojectwizard.h"	"3"
 "Git"	"2"
 "git.qbs:3"	"3"
-"Generated files"	"3"
 "Gerrit"	"3"
 "git.qbs:74"	"4"
 "gerrit"	"4"
@@ -7153,7 +7085,6 @@
 "stashdialog.ui"	"3"
 "GLSLEditor"	"2"
 "glsleditor.qbs:3"	"3"
-"Generated files"	"3"
 "MimeTypes"	"3"
 "QtcPlugin.qbs:58"	"4"
 "GLSLEditor.mimetypes.xml"	"5"
@@ -7184,7 +7115,6 @@
 "glslindenter.h"	"3"
 "HelloWorld"	"2"
 "helloworld.qbs:3"	"3"
-"Generated files"	"3"
 "MimeTypes"	"3"
 "QtcPlugin.qbs:58"	"4"
 "PluginMetaData"	"3"
@@ -7202,7 +7132,6 @@
 "helloworldwindow.h"	"3"
 "Help"	"2"
 "help.qbs:3"	"3"
-"Generated files"	"3"
 "MimeTypes"	"3"
 "QtcPlugin.qbs:58"	"4"
 "PluginMetaData"	"3"
@@ -7280,7 +7209,6 @@
 "qtcreator_pch.h"	"5"
 "ImageViewer"	"2"
 "imageviewer.qbs:3"	"3"
-"Generated files"	"3"
 "MimeTypes"	"3"
 "QtcPlugin.qbs:58"	"4"
 "ImageViewer.mimetypes.xml"	"5"
@@ -7310,7 +7238,6 @@
 "imageviewertoolbar.ui"	"3"
 "Ios"	"2"
 "ios.qbs:3"	"3"
-"Generated files"	"3"
 "MimeTypes"	"3"
 "QtcPlugin.qbs:58"	"4"
 "PluginMetaData"	"3"
@@ -7382,7 +7309,6 @@
 "simulatorcontrol.h"	"3"
 "LogoImages"	"2"
 "logo.qbs:3"	"3"
-"Generated files"	"3"
 "128x128"	"3"
 "logo.qbs:42"	"4"
 "128"	"4"
@@ -7417,7 +7343,6 @@
 "QtProject-qtcreator.png"	"5"
 "Macros"	"2"
 "macros.qbs:3"	"3"
-"Generated files"	"3"
 "MimeTypes"	"3"
 "QtcPlugin.qbs:58"	"4"
 "PluginMetaData"	"3"
@@ -7461,7 +7386,6 @@
 "texteditormacrohandler.h"	"3"
 "Mercurial"	"2"
 "mercurial.qbs:3"	"3"
-"Generated files"	"3"
 "MimeTypes"	"3"
 "QtcPlugin.qbs:58"	"4"
 "PluginMetaData"	"3"
@@ -7505,7 +7429,6 @@
 "srcdestdialog.ui"	"3"
 "ModelEditor"	"2"
 "modeleditor.qbs:5"	"3"
-"Generated files"	"3"
 "MimeTypes"	"3"
 "QtcPlugin.qbs:58"	"4"
 "PluginMetaData"	"3"
@@ -7565,7 +7488,6 @@
 "uicontroller.h"	"3"
 "Nim"	"2"
 "nim.qbs:3"	"3"
-"Generated files"	"3"
 "Editor"	"3"
 "nim.qbs:22"	"4"
 "editor"	"4"
@@ -7654,7 +7576,6 @@
 "sourcecodestream.h"	"5"
 "Perforce"	"2"
 "perforce.qbs:3"	"3"
-"Generated files"	"3"
 "MimeTypes"	"3"
 "QtcPlugin.qbs:58"	"4"
 "Perforce.mimetypes.xml"	"5"
@@ -7698,7 +7619,6 @@
 "projectexplorer.qbs:3"	"3"
 "ProjectExplorer"	"3"
 "projectexplorer.qbs:8"	"4"
-"Generated files"	"4"
 "CustomWizard"	"4"
 "projectexplorer.qbs:189"	"5"
 "customwizard"	"5"
@@ -8155,7 +8075,6 @@
 "windebuginterface.h"	"5"
 "ProjectExplorer dev headers"	"3"
 "projectexplorer.qbs:6"	"4"
-"Generated files"	"4"
 "Group 1"	"4"
 "QtcDevHeaders.qbs:10"	"5"
 "customwizard"	"6"
@@ -8339,7 +8258,6 @@
 "xcodebuildparser.h"	"6"
 "ptracepreload"	"2"
 "ptracepreload.qbs:3"	"3"
-"Generated files"	"3"
 "standard pch file (gui)"	"3"
 "QtcProduct.qbs:51"	"4"
 "qtcreator_gui_pch.h"	"5"
@@ -8349,7 +8267,6 @@
 "ptracepreload.c"	"3"
 "PythonEditor"	"2"
 "pythoneditor.qbs:3"	"3"
-"Generated files"	"3"
 "General"	"3"
 "pythoneditor.qbs:14"	"4"
 "pythoneditor.cpp"	"4"
@@ -8379,7 +8296,6 @@
 "qtcreator_pch.h"	"5"
 "QbsProjectManager"	"2"
 "qbsprojectmanager.qbs:4"	"3"
-"Generated files"	"3"
 "MimeTypes"	"3"
 "QtcPlugin.qbs:58"	"4"
 "PluginMetaData"	"3"
@@ -8445,7 +8361,6 @@
 "qbsrunconfiguration.h"	"3"
 "QmakeAndroidSupport"	"2"
 "qmakeandroidsupport.qbs:3"	"3"
-"Generated files"	"3"
 "MimeTypes"	"3"
 "QtcPlugin.qbs:58"	"4"
 "PluginMetaData"	"3"
@@ -8484,7 +8399,6 @@
 "qmakeprojectmanager.qbs:3"	"3"
 "QmakeProjectManager"	"3"
 "qmakeprojectmanager.qbs:8"	"4"
-"Generated files"	"4"
 "Custom Widget Wizard"	"4"
 "qmakeprojectmanager.qbs:59"	"5"
 "customwidgetwizard"	"5"
@@ -8620,7 +8534,6 @@
 "wizards.qrc"	"6"
 "QmakeProjectManager dev headers"	"3"
 "qmakeprojectmanager.qbs:6"	"4"
-"Generated files"	"4"
 "Group 1"	"4"
 "QtcDevHeaders.qbs:10"	"5"
 "customwidgetwizard"	"6"
@@ -8681,7 +8594,6 @@
 "qmldesigner.qbs:3"	"3"
 "componentsplugin"	"3"
 "componentsplugin.qbs:3"	"4"
-"Generated files"	"4"
 "controls"	"4"
 "componentsplugin.qbs:36"	"5"
 "Controls"	"5"
@@ -8760,7 +8672,6 @@
 "qmldesignerplugin.qbs:4"	"4"
 "QmlDesigner"	"4"
 "qmldesignerplugin.qbs:9"	"5"
-"Generated files"	"5"
 "extension"	"5"
 "qmldesignerplugin.qbs:575"	"6"
 "qmldesignerextension"	"6"
@@ -9346,7 +9257,6 @@
 "shortcutmanager.h"	"5"
 "QmlDesigner dev headers"	"4"
 "qmldesignerplugin.qbs:7"	"5"
-"Generated files"	"5"
 "Group 1"	"5"
 "QtcDevHeaders.qbs:10"	"6"
 "components"	"7"
@@ -9611,7 +9521,6 @@
 "shortcutmanager.h"	"7"
 "qtquickplugin"	"3"
 "qtquickplugin.qbs:3"	"4"
-"Generated files"	"4"
 "images"	"4"
 "qtquickplugin.qbs:21"	"5"
 "images"	"5"
@@ -9710,7 +9619,6 @@
 "quick.metainfo"	"4"
 "QmlJSEditor"	"2"
 "qmljseditor.qbs:3"	"3"
-"Generated files"	"3"
 "MimeTypes"	"3"
 "QtcPlugin.qbs:58"	"4"
 "PluginMetaData"	"3"
@@ -9780,7 +9688,6 @@
 "quicktoolbarsettingspage.ui"	"3"
 "QmlJSTools"	"2"
 "qmljstools.qbs:3"	"3"
-"Generated files"	"3"
 "MimeTypes"	"3"
 "QtcPlugin.qbs:58"	"4"
 "QmlJSTools.mimetypes.xml"	"5"
@@ -9826,7 +9733,6 @@
 "qmljstoolssettings.h"	"3"
 "QmlProfiler"	"2"
 "qmlprofiler.qbs:3"	"3"
-"Generated files"	"3"
 "General"	"3"
 "qmlprofiler.qbs:20"	"4"
 "debugmessagesmodel.cpp"	"4"
@@ -9964,7 +9870,6 @@
 "qmlprofilerconfigwidget_test.h"	"5"
 "QmlProjectManager"	"2"
 "qmlprojectmanager.qbs:3"	"3"
-"Generated files"	"3"
 "File Format"	"3"
 "qmlprojectmanager.qbs:33"	"4"
 "fileformat"	"4"
@@ -10012,7 +9917,6 @@
 "qtcreator_pch.h"	"5"
 "Qnx"	"2"
 "qnx.qbs:3"	"3"
-"Generated files"	"3"
 "MimeTypes"	"3"
 "QtcPlugin.qbs:58"	"4"
 "PluginMetaData"	"3"
@@ -10099,7 +10003,6 @@
 "qtsupport.qbs:3"	"3"
 "QtSupport"	"3"
 "qtsupport.qbs:8"	"4"
-"Generated files"	"4"
 "Getting Started Welcome Page"	"4"
 "qtsupport.qbs:114"	"5"
 "gettingstartedwelcomepage.cpp"	"5"
@@ -10197,7 +10100,6 @@
 "uicgenerator.h"	"4"
 "QtSupport dev headers"	"3"
 "qtsupport.qbs:6"	"4"
-"Generated files"	"4"
 "Group 1"	"4"
 "QtcDevHeaders.qbs:10"	"5"
 "baseqtversion.h"	"6"
@@ -10231,7 +10133,6 @@
 "remotelinux.qbs:3"	"3"
 "RemoteLinux"	"3"
 "remotelinux.qbs:8"	"4"
-"Generated files"	"4"
 "MimeTypes"	"4"
 "QtcPlugin.qbs:58"	"5"
 "PluginMetaData"	"4"
@@ -10344,7 +10245,6 @@
 "uploadandinstalltarpackagestep.h"	"4"
 "RemoteLinux dev headers"	"3"
 "remotelinux.qbs:6"	"4"
-"Generated files"	"4"
 "Group 1"	"4"
 "QtcDevHeaders.qbs:10"	"5"
 "abstractpackagingstep.h"	"6"
@@ -10398,7 +10298,6 @@
 "resourceeditor.qbs:3"	"3"
 "ResourceEditor"	"3"
 "resourceeditor.qbs:8"	"4"
-"Generated files"	"4"
 "General"	"4"
 "resourceeditor.qbs:18"	"5"
 "resource_global.h"	"5"
@@ -10438,7 +10337,6 @@
 "qtcreator_pch.h"	"6"
 "ResourceEditor dev headers"	"3"
 "resourceeditor.qbs:6"	"4"
-"Generated files"	"4"
 "Group 1"	"4"
 "QtcDevHeaders.qbs:10"	"5"
 "qrceditor"	"6"
@@ -10456,7 +10354,6 @@
 "resourcenode.h"	"6"
 "ScxmlEditor"	"2"
 "scxmleditor.qbs:3"	"3"
-"Generated files"	"3"
 "Common"	"3"
 "scxmleditor.qbs:37"	"4"
 "common"	"4"
@@ -10659,7 +10556,6 @@
 "scxmltexteditor.h"	"3"
 "Subversion"	"2"
 "subversion.qbs:3"	"3"
-"Generated files"	"3"
 "MimeTypes"	"3"
 "QtcPlugin.qbs:58"	"4"
 "Subversion.mimetypes.xml"	"5"
@@ -10693,7 +10589,6 @@
 "subversionsubmiteditor.h"	"3"
 "TaskList"	"2"
 "tasklist.qbs:3"	"3"
-"Generated files"	"3"
 "MimeTypes"	"3"
 "QtcPlugin.qbs:58"	"4"
 "TaskList.mimetypes.xml"	"5"
@@ -10718,7 +10613,6 @@
 "texteditor.qbs:3"	"3"
 "TextEditor"	"3"
 "texteditor.qbs:8"	"4"
-"Generated files"	"4"
 "CodeAssist"	"4"
 "texteditor.qbs:152"	"5"
 "codeassist"	"5"
@@ -10973,7 +10867,6 @@
 "typingsettings.h"	"4"
 "TextEditor dev headers"	"3"
 "texteditor.qbs:6"	"4"
-"Generated files"	"4"
 "Group 1"	"4"
 "QtcDevHeaders.qbs:10"	"5"
 "codeassist"	"6"
@@ -11096,7 +10989,6 @@
 "typingsettings.h"	"6"
 "Todo"	"2"
 "todo.qbs:3"	"3"
-"Generated files"	"3"
 "MimeTypes"	"3"
 "QtcPlugin.qbs:58"	"4"
 "PluginMetaData"	"3"
@@ -11150,7 +11042,6 @@
 "todoprojectsettingswidget.ui"	"3"
 "UpdateInfo"	"2"
 "updateinfo.qbs:3"	"3"
-"Generated files"	"3"
 "MimeTypes"	"3"
 "QtcPlugin.qbs:58"	"4"
 "PluginMetaData"	"3"
@@ -11169,7 +11060,6 @@
 "updateinfoplugin.h"	"3"
 "Valgrind"	"2"
 "valgrind.qbs:4"	"3"
-"Generated files"	"3"
 "Callgrind"	"3"
 "valgrind.qbs:45"	"4"
 "callgrind"	"4"
@@ -11293,7 +11183,6 @@
 "threadedparser.h"	"5"
 "VcsBase"	"2"
 "vcsbase.qbs:3"	"3"
-"Generated files"	"3"
 "MimeTypes"	"3"
 "QtcPlugin.qbs:58"	"4"
 "PluginMetaData"	"3"
@@ -11371,7 +11260,6 @@
 "vcsprojectcache.h"	"3"
 "Welcome"	"2"
 "welcome.qbs:3"	"3"
-"Generated files"	"3"
 "MimeTypes"	"3"
 "QtcPlugin.qbs:58"	"4"
 "PluginMetaData"	"3"
@@ -11388,7 +11276,6 @@
 "welcomeplugin.h"	"3"
 "WinRt"	"2"
 "winrt.qbs:3"	"3"
-"Generated files"	"3"
 "MimeTypes"	"3"
 "QtcPlugin.qbs:58"	"4"
 "PluginMetaData"	"3"
@@ -11434,14 +11321,12 @@
 "winrtrunnerhelper.h"	"3"
 "precompiled headers"	"1"
 "pch_files.qbs:4"	"2"
-"Generated files"	"2"
 "Group 1"	"2"
 "pch_files.qbs:8"	"3"
 "qtcreator_gui_pch.h"	"3"
 "qtcreator_pch.h"	"3"
 "ProParser"	"1"
 "proparser.qbs:3"	"2"
-"Generated files"	"2"
 "Group 1"	"2"
 "QtcDevHeaders.qbs:10"	"3"
 "ioutils.h"	"4"
@@ -11460,7 +11345,6 @@
 "apps.qbs:3"	"3"
 "qbs-config"	"3"
 "config.qbs:3"	"4"
-"Generated files"	"4"
 "logging"	"4"
 "QbsApp.qbs:19"	"5"
 "coloredoutput.cpp"	"6"
@@ -11475,7 +11359,6 @@
 "configmain.cpp"	"4"
 "qbs-config-ui"	"3"
 "config-ui.qbs:3"	"4"
-"Generated files"	"4"
 "Group 2"	"4"
 "config-ui.qbs:16"	"5"
 "fgapp.mm"	"5"
@@ -11494,7 +11377,6 @@
 "mainwindow.ui"	"4"
 "qbs-qmltypes"	"3"
 "qbs-qmltypes.qbs:3"	"4"
-"Generated files"	"4"
 "logging"	"4"
 "QbsApp.qbs:19"	"5"
 "coloredoutput.cpp"	"6"
@@ -11504,7 +11386,6 @@
 "main.cpp"	"4"
 "qbs-setup-android"	"3"
 "qbs-setup-android.qbs:3"	"4"
-"Generated files"	"4"
 "logging"	"4"
 "QbsApp.qbs:19"	"5"
 "coloredoutput.cpp"	"6"
@@ -11518,7 +11399,6 @@
 "main.cpp"	"4"
 "qbs-setup-qt"	"3"
 "qbs-setup-qt.qbs:3"	"4"
-"Generated files"	"4"
 "logging"	"4"
 "QbsApp.qbs:19"	"5"
 "coloredoutput.cpp"	"6"
@@ -11535,7 +11415,6 @@
 "setupqt.h"	"4"
 "qbs-setup-toolchains"	"3"
 "qbs-setup-toolchains.qbs:3"	"4"
-"Generated files"	"4"
 "logging"	"4"
 "QbsApp.qbs:19"	"5"
 "coloredoutput.cpp"	"6"
@@ -11553,7 +11432,6 @@
 "xcodeprobe.h"	"4"
 "qbs_app"	"3"
 "qbs.qbs:4"	"4"
-"Generated files"	"4"
 "logging"	"4"
 "QbsApp.qbs:19"	"5"
 "coloredoutput.cpp"	"6"
@@ -11595,12 +11473,10 @@
 "generators.qbs:3"	"4"
 "clangcompilationdbgenerator"	"4"
 "clangcompilationdb.qbs:3"	"5"
-"Generated files"	"5"
 "clangcompilationdbgenerator.cpp"	"5"
 "clangcompilationdbgenerator.h"	"5"
 "visualstudiogenerator"	"4"
 "visualstudio.qbs:3"	"5"
-"Generated files"	"5"
 "MSBuild Object Model"	"5"
 "visualstudio.qbs:53"	"6"
 "msbuild"	"6"
@@ -11684,7 +11560,6 @@
 "visualstudiosolutionwriter.h"	"7"
 "qbscore"	"3"
 "corelib.qbs:4"	"4"
-"Generated files"	"4"
 "api"	"4"
 "corelib.qbs:55"	"5"
 "api"	"5"
@@ -12058,7 +11933,6 @@
 "use_installed_corelib.pri"	"5"
 "qbsqtprofilesetup"	"3"
 "qtprofilesetup.qbs:3"	"4"
-"Generated files"	"4"
 "Public API headers"	"4"
 "qtprofilesetup.qbs:7"	"5"
 "qtenvironment.h"	"5"
@@ -12099,7 +11973,6 @@
 "plugins.qbs:3"	"3"
 "qbs_cpp_scanner"	"3"
 "cpp.qbs:4"	"4"
-"Generated files"	"4"
 "scanner.h"	"5"
 "CPlusPlusForwardDeclarations.h"	"4"
 "cpp_global.h"	"4"
@@ -12110,12 +11983,10 @@
 "Token.h"	"4"
 "qbs_qt_scanner"	"3"
 "qt.qbs:4"	"4"
-"Generated files"	"4"
 "scanner.h"	"5"
 "qtscanner.cpp"	"4"
 "qbs resources"	"2"
 "share.qbs:5"	"3"
-"Generated files"	"3"
 "Examples as resources"	"3"
 "share.qbs:28"	"4"
 "app-and-lib"	"5"
@@ -12333,12 +12204,10 @@
 "xcode.qbs"	"7"
 "qtcjson"	"1"
 "json.qbs:3"	"2"
-"Generated files"	"2"
 "json.cpp"	"2"
 "json.h"	"2"
 "qtcreator"	"1"
 "app.qbs:3"	"2"
-"Generated files"	"2"
 "qtcreator.sh"	"2"
 "app.qbs:52"	"3"
 "qtcreator.sh"	"4"
@@ -12372,7 +12241,6 @@
 "tools.qbs:3"	"2"
 "buildoutputparser"	"2"
 "buildoutputparser.qbs:3"	"3"
-"Generated files"	"3"
 "standard pch file (gui)"	"3"
 "QtcProduct.qbs:51"	"4"
 "qtcreator_gui_pch.h"	"5"
@@ -12384,7 +12252,6 @@
 "outputprocessor.h"	"3"
 "clangbackend"	"2"
 "clangbackend.qbs:3"	"3"
-"Generated files"	"3"
 "Group 3"	"3"
 "clangbackend.qbs:9"	"4"
 "ipcsource"	"4"
@@ -12495,7 +12362,6 @@
 "clangbackendmain.cpp"	"3"
 "iostool"	"2"
 "iostool.qbs:3"	"3"
-"Generated files"	"3"
 "standard pch file (gui)"	"3"
 "QtcProduct.qbs:51"	"4"
 "qtcreator_gui_pch.h"	"5"
@@ -12508,7 +12374,6 @@
 "main.cpp"	"3"
 "qml2puppet"	"2"
 "qml2puppet.qbs:4"	"3"
-"Generated files"	"3"
 "puppet sources"	"3"
 "qml2puppet.qbs:37"	"4"
 "commands"	"5"
@@ -12683,7 +12548,6 @@
 "qtcreator_pch.h"	"5"
 "qtcdebugger"	"2"
 "qtcdebugger.qbs:3"	"3"
-"Generated files"	"3"
 "standard pch file (gui)"	"3"
 "QtcProduct.qbs:51"	"4"
 "qtcreator_gui_pch.h"	"5"
@@ -12695,7 +12559,6 @@
 "main.cpp"	"3"
 "qtcreator_crash_handler"	"2"
 "qtcreatorcrashhandler.qbs:3"	"3"
-"Generated files"	"3"
 "Crash Handler Sources"	"3"
 "qtcreatorcrashhandler.qbs:11"	"4"
 "backtracecollector.cpp"	"4"
@@ -12716,7 +12579,6 @@
 "qtcreator_pch.h"	"5"
 "qtpromaker"	"2"
 "qtpromaker.qbs:3"	"3"
-"Generated files"	"3"
 "standard pch file (gui)"	"3"
 "QtcProduct.qbs:51"	"4"
 "qtcreator_gui_pch.h"	"5"
@@ -12726,7 +12588,6 @@
 "main.cpp"	"3"
 "sdktool"	"2"
 "sdktool.qbs:3"	"3"
-"Generated files"	"3"
 "standard pch file (gui)"	"3"
 "QtcProduct.qbs:51"	"4"
 "qtcreator_gui_pch.h"	"5"
@@ -12770,13 +12631,11 @@
 "settings.h"	"3"
 "valgrind-fake"	"2"
 "valgrindfake.qbs:3"	"3"
-"Generated files"	"3"
 "main.cpp"	"3"
 "outputgenerator.cpp"	"3"
 "outputgenerator.h"	"3"
 "winrtdebughelper"	"2"
 "winrtdebughelper.qbs:3"	"3"
-"Generated files"	"3"
 "standard pch file (gui)"	"3"
 "QtcProduct.qbs:51"	"4"
 "qtcreator_gui_pch.h"	"5"
@@ -12790,7 +12649,6 @@
 "auto.qbs:3"	"2"
 "Aggregation autotest"	"2"
 "aggregation.qbs:3"	"3"
-"Generated files"	"3"
 "standard pch file (gui)"	"3"
 "QtcProduct.qbs:51"	"4"
 "qtcreator_gui_pch.h"	"5"
@@ -12800,7 +12658,6 @@
 "tst_aggregate.cpp"	"3"
 "Algorithm autotest"	"2"
 "algorithm.qbs:3"	"3"
-"Generated files"	"3"
 "standard pch file (gui)"	"3"
 "QtcProduct.qbs:51"	"4"
 "qtcreator_gui_pch.h"	"5"
@@ -12810,7 +12667,6 @@
 "tst_algorithm.cpp"	"3"
 "ChangeSet autotest"	"2"
 "changeset.qbs:3"	"3"
-"Generated files"	"3"
 "standard pch file (gui)"	"3"
 "QtcProduct.qbs:51"	"4"
 "qtcreator_gui_pch.h"	"5"
@@ -12822,7 +12678,6 @@
 "clangstaticanalyzer.qbs:3"	"3"
 "ClangStaticAnalyzerLogFileReader Autotest"	"3"
 "clangstaticanalyzerlogfilereader.qbs:4"	"4"
-"Generated files"	"4"
 "sources from plugin"	"4"
 "clangstaticanalyzerlogfilereader.qbs:7"	"5"
 "clangstaticanalyzerdiagnostic.cpp"	"6"
@@ -12838,7 +12693,6 @@
 "tst_clangstaticanalyzerlogfilereader.cpp"	"4"
 "ClangStaticAnalyzerRunner Autotest"	"3"
 "clangstaticanalyzerrunner.qbs:4"	"4"
-"Generated files"	"4"
 "sources from plugin"	"4"
 "clangstaticanalyzerrunner.qbs:7"	"5"
 "clangstaticanalyzerrunner.cpp"	"6"
@@ -12854,7 +12708,6 @@
 "cplusplus.qbs:3"	"3"
 "C99 autotest"	"3"
 "c99.qbs:4"	"4"
-"Generated files"	"4"
 "Data Files"	"4"
 "c99.qbs:11"	"5"
 "data"	"5"
@@ -12870,7 +12723,6 @@
 "qtcreator_pch.h"	"6"
 "CPlusPlus AST autotest"	"3"
 "ast.qbs:4"	"4"
-"Generated files"	"4"
 "standard pch file (gui)"	"4"
 "QtcProduct.qbs:51"	"5"
 "qtcreator_gui_pch.h"	"6"
@@ -12880,7 +12732,6 @@
 "tst_ast.cpp"	"4"
 "CPlusPlus check symbols autotest"	"3"
 "checksymbols.qbs:4"	"4"
-"Generated files"	"4"
 "standard pch file (gui)"	"4"
 "QtcProduct.qbs:51"	"5"
 "qtcreator_gui_pch.h"	"6"
@@ -12891,7 +12742,6 @@
 "tst_checksymbols.cpp"	"4"
 "CPlusPlus code formatter autotest"	"3"
 "codeformatter.qbs:4"	"4"
-"Generated files"	"4"
 "standard pch file (gui)"	"4"
 "QtcProduct.qbs:51"	"5"
 "qtcreator_gui_pch.h"	"6"
@@ -12901,7 +12751,6 @@
 "tst_codeformatter.cpp"	"4"
 "CPlusPlus fileiterationorder autotest"	"3"
 "fileiterationorder.qbs:4"	"4"
-"Generated files"	"4"
 "standard pch file (gui)"	"4"
 "QtcProduct.qbs:51"	"5"
 "qtcreator_gui_pch.h"	"6"
@@ -12911,7 +12760,6 @@
 "tst_fileiterationorder.cpp"	"4"
 "CPlusPlus find usages autotest"	"3"
 "findusages.qbs:4"	"4"
-"Generated files"	"4"
 "standard pch file (gui)"	"4"
 "QtcProduct.qbs:51"	"5"
 "qtcreator_gui_pch.h"	"6"
@@ -12922,7 +12770,6 @@
 "tst_findusages.cpp"	"4"
 "CPlusPlus lexer autotest"	"3"
 "lexer.qbs:4"	"4"
-"Generated files"	"4"
 "standard pch file (gui)"	"4"
 "QtcProduct.qbs:51"	"5"
 "qtcreator_gui_pch.h"	"6"
@@ -12933,7 +12780,6 @@
 "tst_lexer.cpp"	"4"
 "CPlusPlus lookup autotest"	"3"
 "lookup.qbs:4"	"4"
-"Generated files"	"4"
 "standard pch file (gui)"	"4"
 "QtcProduct.qbs:51"	"5"
 "qtcreator_gui_pch.h"	"6"
@@ -12943,7 +12789,6 @@
 "tst_lookup.cpp"	"4"
 "CPlusPlus miscellaneous autotest"	"3"
 "misc.qbs:4"	"4"
-"Generated files"	"4"
 "standard pch file (gui)"	"4"
 "QtcProduct.qbs:51"	"5"
 "qtcreator_gui_pch.h"	"6"
@@ -12953,7 +12798,6 @@
 "tst_misc.cpp"	"4"
 "CPlusPlus preprocessor autotest"	"3"
 "preprocessor.qbs:4"	"4"
-"Generated files"	"4"
 "Data files"	"4"
 "preprocessor.qbs:11"	"5"
 "data"	"5"
@@ -12997,7 +12841,6 @@
 "qtcreator_pch.h"	"6"
 "CPlusPlus pretty printer autotest"	"3"
 "typeprettyprinter.qbs:4"	"4"
-"Generated files"	"4"
 "standard pch file (gui)"	"4"
 "QtcProduct.qbs:51"	"5"
 "qtcreator_gui_pch.h"	"6"
@@ -13007,7 +12850,6 @@
 "tst_typeprettyprinter.cpp"	"4"
 "CPlusPlus selection changer autotest"	"3"
 "cppselectionchanger.qbs:4"	"4"
-"Generated files"	"4"
 "Data Files"	"4"
 "cppselectionchanger.qbs:12"	"5"
 "testCppFile.cpp"	"5"
@@ -13022,7 +12864,6 @@
 "qtcreator_pch.h"	"6"
 "CPlusPlus semantic autotest"	"3"
 "semantic.qbs:4"	"4"
-"Generated files"	"4"
 "standard pch file (gui)"	"4"
 "QtcProduct.qbs:51"	"5"
 "qtcreator_gui_pch.h"	"6"
@@ -13032,7 +12873,6 @@
 "tst_semantic.cpp"	"4"
 "CPlusPlus translation unit autotest"	"3"
 "translationunit.qbs:4"	"4"
-"Generated files"	"4"
 "standard pch file (gui)"	"4"
 "QtcProduct.qbs:51"	"5"
 "qtcreator_gui_pch.h"	"6"
@@ -13043,7 +12883,6 @@
 "tst_translationunit.cpp"	"4"
 "Cxx11 autotest"	"3"
 "cxx11.qbs:4"	"4"
-"Generated files"	"4"
 "Data Files"	"4"
 "cxx11.qbs:11"	"5"
 "data"	"5"
@@ -13066,7 +12905,6 @@
 "debugger.qbs:3"	"3"
 "Debugger dumpers autotest"	"3"
 "dumpers.qbs:3"	"4"
-"Generated files"	"4"
 "Sources from Debugger plugin"	"4"
 "dumpers.qbs:8"	"5"
 "debuggerprotocol.cpp"	"6"
@@ -13088,7 +12926,6 @@
 "tst_dumpers.cpp"	"5"
 "disassembler autotest"	"3"
 "disassembler.qbs:3"	"4"
-"Generated files"	"4"
 "Sources from Debugger plugin"	"4"
 "disassembler.qbs:7"	"5"
 "disassemblerlines.cpp"	"6"
@@ -13103,7 +12940,6 @@
 "tst_disassembler.cpp"	"5"
 "gdb autotest"	"3"
 "gdb.qbs:3"	"4"
-"Generated files"	"4"
 "Sources from Debugger plugin"	"4"
 "gdb.qbs:6"	"5"
 "debuggerprotocol.cpp"	"6"
@@ -13118,7 +12954,6 @@
 "tst_gdb.cpp"	"5"
 "Name demangler autotest"	"3"
 "namedemangler.qbs:3"	"4"
-"Generated files"	"4"
 "Sources from Debugger plugin"	"4"
 "namedemangler.qbs:8"	"5"
 "demanglerexceptions.h"	"6"
@@ -13139,7 +12974,6 @@
 "tst_namedemangler.cpp"	"5"
 "offsets autotest"	"3"
 "offsets.qbs:3"	"4"
-"Generated files"	"4"
 "standard pch file (gui)"	"4"
 "QtcProduct.qbs:51"	"5"
 "qtcreator_gui_pch.h"	"6"
@@ -13151,7 +12985,6 @@
 "tst_offsets.cpp"	"5"
 "simplifytypes autotest"	"3"
 "simplifytypes.qbs:3"	"4"
-"Generated files"	"4"
 "Sources from Debugger plugin"	"4"
 "simplifytypes.qbs:6"	"5"
 "simplifytype.cpp"	"6"
@@ -13168,7 +13001,6 @@
 "diff.qbs:3"	"3"
 "Differ autotest"	"3"
 "differ.qbs:3"	"4"
-"Generated files"	"4"
 "standard pch file (gui)"	"4"
 "QtcProduct.qbs:51"	"5"
 "qtcreator_gui_pch.h"	"6"
@@ -13178,7 +13010,6 @@
 "tst_differ.cpp"	"4"
 "Environment autotest"	"2"
 "environment.qbs:3"	"3"
-"Generated files"	"3"
 "standard pch file (gui)"	"3"
 "QtcProduct.qbs:51"	"4"
 "qtcreator_gui_pch.h"	"5"
@@ -13192,7 +13023,6 @@
 "pluginspec.qbs:3"	"4"
 "ExtensionSystem pluginspec autotest"	"4"
 "test.qbs:3"	"5"
-"Generated files"	"5"
 "Sources"	"5"
 "test.qbs:7"	"6"
 "tst_pluginspec.cpp"	"6"
@@ -13227,7 +13057,6 @@
 "spec_wrong5.json"	"7"
 "pluginspec_test"	"4"
 "testplugin.qbs:4"	"5"
-"Generated files"	"5"
 "testplugin.cpp"	"5"
 "testplugin.h"	"5"
 "testplugin_global.h"	"5"
@@ -13237,39 +13066,32 @@
 "circularplugins.qbs:3"	"5"
 "circular_plugin1"	"5"
 "plugin1.qbs:4"	"6"
-"Generated files"	"6"
 "plugin1.cpp"	"6"
 "plugin1.h"	"6"
 "circular_plugin2"	"5"
 "plugin2.qbs:4"	"6"
-"Generated files"	"6"
 "plugin2.cpp"	"6"
 "plugin2.h"	"6"
 "circular_plugin3"	"5"
 "plugin3.qbs:4"	"6"
-"Generated files"	"6"
 "plugin3.cpp"	"6"
 "plugin3.h"	"6"
 "ExtensionSystem correct plugins autotests"	"4"
 "correctplugins1.qbs:3"	"5"
 "correct_plugin1"	"5"
 "plugin1.qbs:4"	"6"
-"Generated files"	"6"
 "plugin1.cpp"	"6"
 "plugin1.h"	"6"
 "correct_plugin2"	"5"
 "plugin2.qbs:4"	"6"
-"Generated files"	"6"
 "plugin2.cpp"	"6"
 "plugin2.h"	"6"
 "correct_plugin3"	"5"
 "plugin3.qbs:4"	"6"
-"Generated files"	"6"
 "plugin3.cpp"	"6"
 "plugin3.h"	"6"
 "PluginManager autotest"	"4"
 "test.qbs:3"	"5"
-"Generated files"	"5"
 "standard pch file (gui)"	"5"
 "QtcProduct.qbs:51"	"6"
 "qtcreator_gui_pch.h"	"7"
@@ -13279,7 +13101,6 @@
 "tst_pluginmanager.cpp"	"5"
 "ExternalTool autotest"	"2"
 "externaltool.qbs:3"	"3"
-"Generated files"	"3"
 "Duplicated sources from Core plugin"	"3"
 "externaltool.qbs:8"	"4"
 "externaltool.cpp"	"5"
@@ -13295,7 +13116,6 @@
 "tst_externaltooltest.cpp"	"4"
 "File search autotest"	"2"
 "filesearch.qbs:3"	"3"
-"Generated files"	"3"
 "standard pch file (gui)"	"3"
 "QtcProduct.qbs:51"	"4"
 "qtcreator_gui_pch.h"	"5"
@@ -13309,7 +13129,6 @@
 "testfile.txt"	"5"
 "FlameGraph autotest"	"2"
 "flamegraph.qbs:3"	"3"
-"Generated files"	"3"
 "standard pch file (gui)"	"3"
 "QtcProduct.qbs:51"	"4"
 "qtcreator_gui_pch.h"	"5"
@@ -13321,7 +13140,6 @@
 "generichighlighter.qbs:3"	"3"
 "Generic highlighter specific rules autotest"	"3"
 "specificrules.qbs:3"	"4"
-"Generated files"	"4"
 "Sources from TextEditor plugin"	"4"
 "specificrules.qbs:6"	"5"
 "context.cpp"	"6"
@@ -13343,7 +13161,6 @@
 "tst_specificrules.cpp"	"5"
 "Highlighter engine autotest"	"3"
 "highlighterengine.qbs:3"	"4"
-"Generated files"	"4"
 "Drop-in sources for the plugin"	"4"
 "highlighterengine.qbs:31"	"5"
 "syntaxhighlighter.cpp"	"5"
@@ -13386,7 +13203,6 @@
 "tst_highlighterengine.cpp"	"5"
 "json autotest"	"2"
 "json.qbs:3"	"3"
-"Generated files"	"3"
 "standard pch file (gui)"	"3"
 "QtcProduct.qbs:51"	"4"
 "qtcreator_gui_pch.h"	"5"
@@ -13403,7 +13219,6 @@
 "tst_json.cpp"	"3"
 "ProFileWriter autotest"	"2"
 "profilewriter.qbs:3"	"3"
-"Generated files"	"3"
 "Sources from ProParser"	"3"
 "profilewriter.qbs:6"	"4"
 "ioutils.cpp"	"5"
@@ -13440,7 +13255,6 @@
 "codemodel.qbs:3"	"4"
 "QML code model check autotest"	"4"
 "check.qbs:3"	"5"
-"Generated files"	"5"
 "standard pch file (gui)"	"5"
 "QtcProduct.qbs:51"	"6"
 "qtcreator_gui_pch.h"	"7"
@@ -13450,7 +13264,6 @@
 "tst_check.cpp"	"5"
 "QML code model dependencies autotest"	"4"
 "dependencies.qbs:3"	"5"
-"Generated files"	"5"
 "standard pch file (gui)"	"5"
 "QtcProduct.qbs:51"	"6"
 "qtcreator_gui_pch.h"	"7"
@@ -13460,7 +13273,6 @@
 "tst_dependencies.cpp"	"5"
 "QML code model imports check autotest"	"4"
 "importscheck.qbs:3"	"5"
-"Generated files"	"5"
 "standard pch file (gui)"	"5"
 "QtcProduct.qbs:51"	"6"
 "qtcreator_gui_pch.h"	"7"
@@ -13472,7 +13284,6 @@
 "qmleditor.qbs:3"	"4"
 "QML code formatter autotest"	"4"
 "qmlcodeformatter.qbs:3"	"5"
-"Generated files"	"5"
 "standard pch file (gui)"	"5"
 "QtcProduct.qbs:51"	"6"
 "qtcreator_gui_pch.h"	"7"
@@ -13482,7 +13293,6 @@
 "tst_qmlcodeformatter.cpp"	"5"
 "QML persistenttrie autotest"	"3"
 "persistenttrie.qbs:3"	"4"
-"Generated files"	"4"
 "standard pch file (gui)"	"4"
 "QtcProduct.qbs:51"	"5"
 "qtcreator_gui_pch.h"	"6"
@@ -13493,7 +13303,6 @@
 "tst_testtrie.h"	"4"
 "QML qrc parser autotest"	"3"
 "qrcparser.qbs:3"	"4"
-"Generated files"	"4"
 "standard pch file (gui)"	"4"
 "QtcProduct.qbs:51"	"5"
 "qtcreator_gui_pch.h"	"6"
@@ -13503,7 +13312,6 @@
 "tst_qrcparser.cpp"	"4"
 "QML reformatter autotest"	"3"
 "reformatter.qbs:3"	"4"
-"Generated files"	"4"
 "standard pch file (gui)"	"4"
 "QtcProduct.qbs:51"	"5"
 "qtcreator_gui_pch.h"	"6"
@@ -13513,7 +13321,6 @@
 "tst_reformatter.cpp"	"4"
 "QMLJS simple reader autotest"	"3"
 "qmljssimplereader.qbs:3"	"4"
-"Generated files"	"4"
 "standard pch file (gui)"	"4"
 "QtcProduct.qbs:51"	"5"
 "qtcreator_gui_pch.h"	"6"
@@ -13525,7 +13332,6 @@
 "qmlprojectmanager.qbs:3"	"4"
 "QmlProjectManager file format autotest"	"4"
 "fileformat.qbs:3"	"5"
-"Generated files"	"5"
 "Files from QmlProjectManager"	"5"
 "fileformat.qbs:9"	"6"
 "filefilteritems.cpp"	"7"
@@ -13543,7 +13349,6 @@
 "tst_fileformat.cpp"	"5"
 "QtcProcess autotest"	"2"
 "qtcprocess.qbs:3"	"3"
-"Generated files"	"3"
 "standard pch file (gui)"	"3"
 "QtcProduct.qbs:51"	"4"
 "qtcreator_gui_pch.h"	"5"
@@ -13553,7 +13358,6 @@
 "tst_qtcprocess.cpp"	"3"
 "Run extensions autotest"	"2"
 "runextensions.qbs:3"	"3"
-"Generated files"	"3"
 "standard pch file (gui)"	"3"
 "QtcProduct.qbs:51"	"4"
 "qtcreator_gui_pch.h"	"5"
@@ -13563,7 +13367,6 @@
 "tst_runextensions.cpp"	"3"
 "sdktool autotest"	"2"
 "sdktool.qbs:3"	"3"
-"Generated files"	"3"
 "standard pch file (gui)"	"3"
 "QtcProduct.qbs:51"	"4"
 "qtcreator_gui_pch.h"	"5"
@@ -13577,7 +13380,6 @@
 "timeline.qbs:3"	"3"
 "TimelineAbstractRenderer autotest"	"3"
 "timelineabstractrenderer.qbs:4"	"4"
-"Generated files"	"4"
 "standard pch file (gui)"	"4"
 "QtcProduct.qbs:51"	"5"
 "qtcreator_gui_pch.h"	"6"
@@ -13589,7 +13391,6 @@
 "tst_timelineabstractrenderer.cpp"	"5"
 "TimelineItemsRenderPass autotest"	"3"
 "timelineitemsrenderpass.qbs:5"	"4"
-"Generated files"	"4"
 "standard pch file (gui)"	"4"
 "QtcProduct.qbs:51"	"5"
 "qtcreator_gui_pch.h"	"6"
@@ -13601,7 +13402,6 @@
 "tst_timelineitemsrenderpass.cpp"	"5"
 "TimelineModel autotest"	"3"
 "timelinemodel.qbs:4"	"4"
-"Generated files"	"4"
 "standard pch file (gui)"	"4"
 "QtcProduct.qbs:51"	"5"
 "qtcreator_gui_pch.h"	"6"
@@ -13613,7 +13413,6 @@
 "tst_timelinemodel.cpp"	"5"
 "TimelineModelAggregator autotest"	"3"
 "timelinemodelaggregator.qbs:4"	"4"
-"Generated files"	"4"
 "standard pch file (gui)"	"4"
 "QtcProduct.qbs:51"	"5"
 "qtcreator_gui_pch.h"	"6"
@@ -13625,7 +13424,6 @@
 "tst_timelinemodelaggregator.cpp"	"5"
 "TimelineNotesModel autotest"	"3"
 "timelinenotesmodel.qbs:4"	"4"
-"Generated files"	"4"
 "standard pch file (gui)"	"4"
 "QtcProduct.qbs:51"	"5"
 "qtcreator_gui_pch.h"	"6"
@@ -13637,7 +13435,6 @@
 "tst_timelinenotesmodel.cpp"	"5"
 "TimelineNotesRenderPass autotest"	"3"
 "timelinenotesrenderpass.qbs:5"	"4"
-"Generated files"	"4"
 "standard pch file (gui)"	"4"
 "QtcProduct.qbs:51"	"5"
 "qtcreator_gui_pch.h"	"6"
@@ -13649,7 +13446,6 @@
 "tst_timelinenotesrenderpass.cpp"	"5"
 "TimelineOverviewRenderer autotest"	"3"
 "timelineoverviewrenderer.qbs:4"	"4"
-"Generated files"	"4"
 "standard pch file (gui)"	"4"
 "QtcProduct.qbs:51"	"5"
 "qtcreator_gui_pch.h"	"6"
@@ -13661,7 +13457,6 @@
 "tst_timelineoverviewrenderer.cpp"	"5"
 "TimelineRenderer autotest"	"3"
 "timelinerenderer.qbs:4"	"4"
-"Generated files"	"4"
 "standard pch file (gui)"	"4"
 "QtcProduct.qbs:51"	"5"
 "qtcreator_gui_pch.h"	"6"
@@ -13673,7 +13468,6 @@
 "tst_timelinerenderer.cpp"	"5"
 "TimelineRenderPass autotest"	"3"
 "timelinerenderpass.qbs:5"	"4"
-"Generated files"	"4"
 "standard pch file (gui)"	"4"
 "QtcProduct.qbs:51"	"5"
 "qtcreator_gui_pch.h"	"6"
@@ -13685,7 +13479,6 @@
 "tst_timelinerenderpass.cpp"	"5"
 "TimelineRenderState autotest"	"3"
 "timelinerenderstate.qbs:5"	"4"
-"Generated files"	"4"
 "standard pch file (gui)"	"4"
 "QtcProduct.qbs:51"	"5"
 "qtcreator_gui_pch.h"	"6"
@@ -13697,7 +13490,6 @@
 "tst_timelinerenderstate.cpp"	"5"
 "TimelineSelectionRenderPass autotest"	"3"
 "timelineselectionrenderpass.qbs:5"	"4"
-"Generated files"	"4"
 "standard pch file (gui)"	"4"
 "QtcProduct.qbs:51"	"5"
 "qtcreator_gui_pch.h"	"6"
@@ -13709,7 +13501,6 @@
 "tst_timelineselectionrenderpass.cpp"	"5"
 "TimelineZoomcontrol autotest"	"3"
 "timelinezoomcontrol.qbs:4"	"4"
-"Generated files"	"4"
 "standard pch file (gui)"	"4"
 "QtcProduct.qbs:51"	"5"
 "qtcreator_gui_pch.h"	"6"
@@ -13721,7 +13512,6 @@
 "tst_timelinezoomcontrol.cpp"	"5"
 "TreeViewFind autotest"	"2"
 "treeviewfind.qbs:3"	"3"
-"Generated files"	"3"
 "standard pch file (gui)"	"3"
 "QtcProduct.qbs:51"	"4"
 "qtcreator_gui_pch.h"	"5"
@@ -13733,7 +13523,6 @@
 "utils.qbs:3"	"3"
 "ANSI autotest"	"3"
 "ansiescapecodehandler.qbs:3"	"4"
-"Generated files"	"4"
 "standard pch file (gui)"	"4"
 "QtcProduct.qbs:51"	"5"
 "qtcreator_gui_pch.h"	"6"
@@ -13743,7 +13532,6 @@
 "tst_ansiescapecodehandler.cpp"	"4"
 "FileUtils autotest"	"3"
 "fileutils.qbs:3"	"4"
-"Generated files"	"4"
 "standard pch file (gui)"	"4"
 "QtcProduct.qbs:51"	"5"
 "qtcreator_gui_pch.h"	"6"
@@ -13753,7 +13541,6 @@
 "tst_fileutils.cpp"	"4"
 "StringUtils autotest"	"3"
 "stringutils.qbs:3"	"4"
-"Generated files"	"4"
 "standard pch file (gui)"	"4"
 "QtcProduct.qbs:51"	"5"
 "qtcreator_gui_pch.h"	"6"
@@ -13763,7 +13550,6 @@
 "tst_stringutils.cpp"	"4"
 "TemplateEngine autotest"	"3"
 "templateengine.qbs:3"	"4"
-"Generated files"	"4"
 "standard pch file (gui)"	"4"
 "QtcProduct.qbs:51"	"5"
 "qtcreator_gui_pch.h"	"6"
@@ -13773,7 +13559,6 @@
 "tst_templateengine.cpp"	"4"
 "TreeModel autotest"	"3"
 "treemodel.qbs:3"	"4"
-"Generated files"	"4"
 "standard pch file (gui)"	"4"
 "QtcProduct.qbs:51"	"5"
 "qtcreator_gui_pch.h"	"6"
@@ -13783,7 +13568,6 @@
 "tst_treemodel.cpp"	"4"
 "Translations"	"0"
 "translations.qbs:3"	"1"
-"Generated files"	"1"
 "Group 1"	"1"
 "translations.qbs:9"	"2"
 "qtcreator_cs.ts"	"2"
diff --git a/tests/system/suite_general/tst_openqt_creator/testdata/projecttree_creator.tsv b/tests/system/suite_general/tst_openqt_creator/testdata/projecttree_creator.tsv
index 227494dfbc26fadd13321182b4e485124cf32fb2..7a5b713ebb96d74b722a34f4e94d68e1e3f56f74 100644
--- a/tests/system/suite_general/tst_openqt_creator/testdata/projecttree_creator.tsv
+++ b/tests/system/suite_general/tst_openqt_creator/testdata/projecttree_creator.tsv
@@ -440,7 +440,6 @@
 "tpl_collection.h"	"6"
 "tpl_plugin.pro"	"6"
 "tpl_resources.qrc"	"6"
-"/"	"7"
 "tpl_single.cpp"	"6"
 "tpl_single.h"	"6"
 "tpl_widget.cpp"	"6"
@@ -1088,7 +1087,6 @@
 "tpl_collection.h"	"6"
 "tpl_plugin.pro"	"6"
 "tpl_resources.qrc"	"6"
-"/"	"7"
 "tpl_single.cpp"	"6"
 "tpl_single.h"	"6"
 "tpl_widget.cpp"	"6"