summaryrefslogtreecommitdiffstats
path: root/qmake/generators/win32/msvc_objectmodel.h
Commit message (Collapse)AuthorAgeFilesLines
* Prefix textstream operators with Qt::Lars Knoll2019-05-021-1/+1
| | | | | | | As the non prefixed variants are deprecated Change-Id: I2ba09d71b9cea5203b54297a3f2332e6d44fedcf Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
* Merge remote-tracking branch 'origin/5.12' into 5.13Qt Forward Merge Bot2019-04-241-0/+1
|\ | | | | | | Change-Id: I26da00aa71b0f0b91c9bfb4a9e8550345ee62875
| * Teach qmake MSVC's compiler options /std:c++[14|17|latest]Joerg Bornemann2019-04-231-0/+1
| | | | | | | | | | | | | | | | | | This fixes the "could not parse compiler option" warning when generating VS project files. Fixes: QTBUG-75275 Change-Id: Idd98ae5fdb8ebf5a4e311cbb6cd3ed1daba74ca4 Reviewed-by: Kai Koehne <kai.koehne@qt.io>
* | Merge remote-tracking branch 'origin/5.12' into 5.13Qt Forward Merge Bot2019-02-151-1/+2
|\| | | | | | | Change-Id: I8cad26f17834dbc9f7151edc0f17786f9e32025d
| * qmake vcxproj generator: Update platform toolset and solution header for VS 2019Joerg Bornemann2019-02-131-1/+2
| | | | | | | | | | Change-Id: Id01f28f2ef3e271fa48dddf5f8ccb6b057180aa0 Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* | Enable users to specify WindowsTargetPlatform[Min]Version in VS projectsJoerg Bornemann2018-11-161-0/+2
|/ | | | | | | | | | | | | | | | | | | | | | [ChangeLog][qmake] Introduced the variables WINDOWS_TARGET_PLATFORM_VERSION and WINDOWS_TARGET_PLATFORM_MIN_VERSION for overriding the default values of WindowsTargetPlatformVersion and WindowsTargetPlatformMinVersion in Visual Studio project files. The code to determine the default values is moved to qmake feature files. A common/windows-desktop.conf file is introduced for variables common to all non-UWP Windows mkspecs. The package_manifest feature uses WINDOWS_TARGET_PLATFORM_VERSION as default value for WINRT_MANIFEST.minVersion, and WINDOWS_TARGET_PLATFORM_MIN_VERSION for WINRT_MANIFEST.maxVersionTested respectively. Task-number: QTBUG-53654 Change-Id: I251ec7f9b804c9bc9f7d571f5b43d52b2a2d99d3 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io> Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
* qmake: Apply modernize-use-overrideAlessandro Portale2018-08-081-17/+17
| | | | | | | Add overrides to functions, except for destructors. Change-Id: I6e4640aa95a5c97d6bd6f6d8692d3290c421344e Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
* Remove support for WinRT 8.1 and Windows Phone 8.1Maurice Kalinowski2017-01-181-1/+1
| | | | | | | | [ChangeLog][QtBase][General] Removed support for WinRT/Windows Phone 8.1. Task-number: QTBUG-57288 Change-Id: Ifd6d6780cbbdb710d99556ba3d2fb2e514d4f789 Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
* Merge remote-tracking branch 'origin/5.8' into devLiang Qi2016-12-131-11/+2
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: configure qmake/Makefile.unix.macos qmake/Makefile.unix.win32 qmake/generators/win32/msvc_vcproj.cpp src/3rdparty/pcre/qt_attribution.json src/corelib/io/qsettings.cpp src/corelib/kernel/qdeadlinetimer.cpp src/platformsupport/kmsconvenience/qkmsdevice.cpp src/platformsupport/kmsconvenience/qkmsdevice_p.h src/plugins/platforms/eglfs/deviceintegration/eglfs_kms/qeglfskmsgbmscreen.cpp src/plugins/platforms/eglfs/deviceintegration/eglfs_kms_egldevice/qeglfskmsegldeviceintegration.cpp src/plugins/platforms/eglfs/deviceintegration/eglfs_kms_egldevice/qeglfskmsegldevicescreen.cpp src/plugins/platforms/eglfs/deviceintegration/eglfs_kms_support/qeglfskmsdevice.cpp src/plugins/platforms/eglfs/deviceintegration/eglfs_kms_support/qeglfskmsscreen.h tests/manual/qstorageinfo/printvolumes.cpp tools/configure/configureapp.cpp Change-Id: Ibaabcc8e965c44926f9fb018466e8b132b8df49e
| * Do not write empty custom build tool on VCConfiguration levelJoerg Bornemann2016-12-021-1/+0
| | | | | | | | | | | | | | | | This is superfluous. Change-Id: Iac96938c6a7e899244534747a2f8a60bdbbdeb62 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io> Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
| * Remove superfluous VCFilterFile::operator==Joerg Bornemann2016-12-021-5/+0
| | | | | | | | | | | | | | The default-generated operator is fine. Change-Id: I9acb310aaf551d8da3c0fd9aea65d77ee62a45b4 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
| * Remove unused VCFilterFile::additionalFileJoerg Bornemann2016-12-021-5/+1
| | | | | | | | | | Change-Id: I67716404d38f41ee4f558dc5d82c9ae80a6956f1 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
| * Merge remote-tracking branch 'origin/5.7' into 5.8Liang Qi2016-11-241-1/+2
| |\ | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: src/network/socket/qnativesocketengine_winrt.cpp tools/configure/configureapp.cpp tools/configure/environment.cpp Change-Id: Ieae6f2ee004a87f041751852b687484f91ee4480
| | * Merge remote-tracking branch 'origin/5.6' into 5.7Liang Qi2016-11-231-1/+2
| | |\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This also reverts commit 0d2f0164f45cb626c40a7c95026ba00fa56ac249. Conflicts: header.BSD-NEW qmake/Makefile.win32 src/openglextensions/qopenglextensions.cpp src/openglextensions/qopenglextensions.h src/winmain/qtmain_win.cpp src/winmain/qtmain_winrt.cpp tools/configure/configureapp.cpp util/glgen/qopenglextensions.cpp.header util/glgen/qopenglextensions.h.header Change-Id: If26c6f4111b342378dd88bbdc657e322d2ab6ad8
| | | * Add support for Visual Studio 2017Oliver Wolff2016-11-221-1/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Tested with RC Task-number: QTBUG-57086 Change-Id: I21f56edca3852b52edd2c5fdcce76817141e8d4a Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* | | | Merge remote-tracking branch 'origin/5.8' into devLiang Qi2016-11-171-0/+5
|\| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: mkspecs/features/mac/default_post.prf mkspecs/features/uikit/default_post.prf Change-Id: I2a6f783451f2ac9eb4c1a050f605435d2dacf218
| * | | Merge remote-tracking branch 'origin/5.7' into 5.8Liang Qi2016-11-161-0/+5
| |\| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: mkspecs/common/linux-android.conf src/gui/opengl/qopengl.h src/network/socket/qnativesocketengine_winrt.cpp src/network/socket/qnativesocketengine_winrt_p.h src/plugins/platforms/cocoa/qcocoawindow.mm src/plugins/platforms/eglfs/api/qeglfsintegration.cpp src/plugins/platforms/linuxfb/qlinuxfbintegration.cpp sync.profile Change-Id: If70aaf2c49df91157b864cf0d7d9513546c9bec4
| | * | Merge remote-tracking branch 'origin/5.6' into 5.7Liang Qi2016-11-151-0/+5
| | |\| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: configure src/plugins/platforms/eglfs/qeglfsintegration.cpp src/plugins/platforms/linuxfb/qlinuxfbintegration.cpp Change-Id: Id2da7c775439adb62646d5b741ee7c638042b34b
| | | * vcxproj generator: Support the /DEBUG:FASTLINK option of VS 2015Joerg Bornemann2016-11-041-0/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Make qmake understand the /DEBUG:FASTLINK option in QMAKE_LFLAGS, and write the corresponding value correctly to VS 2015 project files. Task-number: QTBUG-55591 Change-Id: I670375ed1523a5ab96bb3cce28635785564edba8 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io> Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io> Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* | | | Remove wondrous VS version detection logicJoerg Bornemann2016-11-141-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Replace which_dotnet_version with a simple function that converts the value of MSVC_VER to its corresponding enum value in the VS project generator. This reduces the maintenance burden when adding support for a new VS version, because we do not need to update the registry keys in which_dotnet_version anymore. The which_dotnet_version function implemented the following logic: - find all installed VS versions via registry - select the "best matching one" - if there is no best match, select the VS that's in PATH - create a project for that VS installation The usefulness of this whole stunt is questionable as the VS version of Qt's mkspec must match the version of a project using that Qt anyway. Change-Id: I9fb9a099ee5ddb5fc4c450be4f68f41f2b406b9a Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io> Reviewed-by: Oliver Wolff <oliver.wolff@qt.io> Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* | | | Remove superfluous includes from VS generatorJoerg Bornemann2016-11-101-1/+0
|/ / / | | | | | | | | | | | | Change-Id: I1756323760dca4413a98a43889aace569c91d0bd Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
* | | qmake: don't hold VCFilter in QListMarc Mutz2016-08-161-1/+1
| | | | | | | | | | | | | | | Change-Id: Ib10539187e0c8e4ffa2000dcad75715a7b931701 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
* | | qmake: remove pointless ~VCProjectSingleConfig()Marc Mutz2016-08-161-3/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | It's empty, but non-trivial, thus preventing move special member functions from being generated by the compiler (now that qmake is compiled as C++11, too). The default ctor was also empty - removed, too. Change-Id: I714db524f681f1fc250d21926245757e97351e87 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
* | | qmake: mark VCProjectSingleConfig as movableMarc Mutz2016-08-161-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | Has a few too many fields for defining a member-swap (which would be required to mark it shared). Change-Id: Iecbeec9e60a9884cb4a984c58cb192918cef799d Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
* | | qmake: remove pointless ~VCConfiguration()Marc Mutz2016-08-151-1/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | It's empty, but non-trivial, thus preventing move special member functions from being generated by the compiler (now that qmake is compiled as C++11, too). Change-Id: I7e4b6d7f604020dd5e6da81f7a046202c8b78e09 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
* | | qmake: remove pointless ~VCFilter()Marc Mutz2016-08-151-1/+0
|/ / | | | | | | | | | | | | | | | | It's empty, but non-trivial, thus preventing move special member functions from being generated by the compiler (now that qmake is compiled as C++11, too). Change-Id: I9431311d24da802f147ce10e475936838bb85d41 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
* | qmake: remove some empty user-defined dtorsMarc Mutz2016-02-151-13/+8
| | | | | | | | | | | | | | | | They prevent move special member functions from being synthesized by the compiler. Change-Id: I90c4a6e286734ef3906ee833826bd3bfbdad3874 Reviewed-by: Lars Knoll <lars.knoll@theqtcompany.com>
* | Updated license headersJani Heikkinen2016-01-211-17/+12
|/ | | | | | | | | | | | | From Qt 5.7 -> tools & applications are lisenced under GPL v3 with some exceptions, see http://blog.qt.io/blog/2016/01/13/new-agreement-with-the-kde-free-qt-foundation/ Updated license headers to use new GPL-EXCEPT header instead of LGPL21 one (in those files which will be under GPL 3 with exceptions) Change-Id: I42a473ddc97101492a60b9287d90979d9eb35ae1 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> Reviewed-by: Lars Knoll <lars.knoll@theqtcompany.com>
* WinRT: Add qmake support for Windows 10Maurice Kalinowski2015-05-261-1/+2
| | | | | | | | | | | | | | | | | | This allows creation of applications for - x86 - x64 - arm While the arm build theoretically also allows to launch on a mobile, it currently asserts on runtime. Either we will create a new mkspec for Windows 10 Mobile in the future, or do runtime checks for the environment. That also depends on whether there will be a separate SDK by Microsoft. Change-Id: I510bfc88410a5b5a1eb7c37f7f43888d1e5dda0d Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com> Reviewed-by: Oliver Wolff <oliver.wolff@theqtcompany.com> Reviewed-by: Andrew Knight <andrew.knight@intopalo.com>
* add DISTFILES support for Visual Studio projectsJoerg Bornemann2015-03-271-0/+1
| | | | | | | | | | Files in DISTFILES are placed into a "Distribution Files" folder under the project node. Task-number: QTBUG-43162 Change-Id: Ib75aacf1010d9ea63af89d4a9cc92275d714b3cb Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com> Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
* Update copyright headersJani Heikkinen2015-02-111-7/+7
| | | | | | | | | | | | | | | | | | Qt copyrights are now in The Qt Company, so we could update the source code headers accordingly. In the same go we should also fix the links to point to qt.io. Outdated header.LGPL removed (use header.LGPL21 instead) Old header.LGPL3 renamed to header.LGPL3-COMM to match actual licensing combination. New header.LGPL-COMM taken in the use file which were using old header.LGPL3 (src/plugins/platforms/android/extract.cpp) Added new header.LGPL3 containing Commercial + LGPLv3 + GPLv2 license combination Change-Id: I6f49b819a8a20cc4f88b794a8f6726d975e8ffbe Reviewed-by: Matti Paaso <matti.paaso@theqtcompany.com>
* remove unsupported winrt mkspecsAndrew Knight2014-12-161-1/+1
| | | | | | | | | These mkspecs are not supported and no longer compile. Related support in qmake has also been removed. Change-Id: I7706dcfa5471e55e2ae3d580d65e9371e2c652d5 Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com> Reviewed-by: Oliver Wolff <oliver.wolff@theqtcompany.com>
* qmake vcxproj generator: write PrimaryOutputExtension valueJoerg Bornemann2014-10-221-0/+1
| | | | | | | | | | | | | Second attempt. MSVCPROJ_TARGET contains the resolved target name, including version number and target extension. We're splitting this value into PrimaryOutput and PrimaryOutputExtension. PrimaryOutputExtension is only written if it contains a non-default value. Task-number: QTBUG-26782 Change-Id: I4b828dc5dd47322f653585aee1a5767f0cf8bd48 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
* introduce VCFilter::findFileJoerg Bornemann2014-09-291-0/+1
| | | | | | | | Move common code into a function and exit early from simple search loop. Change-Id: I88d1227653e28badc213fbe4ebe1e2a19f6e5793 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
* remove unused member VCFilter::CustomBuildJoerg Bornemann2014-09-291-8/+0
| | | | | Change-Id: I2b57f0ac020ad1b85ffeb76a214b9cf2f48cb6d3 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
* uncopy & -pastify codeJoerg Bornemann2014-09-241-2/+2
| | | | | | | | Make use of the mythical C++ feature "function" to soothe the brain ache of anyone who looks into this part of the code. Change-Id: I740e29f1777d91d3b34a61fa62a5c23c222334b9 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
* Update license headers and add new license filesMatti Paaso2014-09-241-18/+10
| | | | | | | | | - Renamed LICENSE.LGPL to LICENSE.LGPLv21 - Added LICENSE.LGPLv3 - Removed LICENSE.GPL Change-Id: Iec3406e3eb3f133be549092015cefe33d259a3f2 Reviewed-by: Iikka Eklund <iikka.eklund@digia.com>
* make it possible to suppress warnings of the vcxproj generatorJoerg Bornemann2014-09-171-0/+1
| | | | | | | | | | When the user adds a compiler option that qmake doesn't understand, a warning message is printed. One can suppress these warnings now by adding CONFIG+=suppress_vcproj_warnings to the project file. Task-number: QTBUG-37520 Change-Id: Ieb7ad2c900329e76636047dff85824ea0456f608 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
* Add build support for Windows Phone 8.1Andrew Knight2014-05-221-2/+2
| | | | | | | | Tweak qmake, add mkspecs for emulator and device, adjust the manifest template for WP8.1, and add missing icons. Change-Id: I7a6405fa85297ae4cc8522015274e65fb7a315a6 Reviewed-by: Oliver Wolff <oliver.wolff@digia.com>
* move platform toolset retrieval to VcprojGeneratorJoerg Bornemann2014-04-031-0/+1
| | | | | | | | In a subsequent commit we will need access to more information of the project object. This is merely a refactoring. Change-Id: I40e501d037eb7d0295e1057e7b86e404e88e6ca3 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
* qmake: Provide feature for windeployqtAndrew Knight2014-02-111-0/+20
| | | | | | | | | | | | | | windeployqt is a tool that aids in the deployment of Qt libraries and other files on Windows. This feature (CONFIG+=windeployqt) adds automatic invocation of windeployqt for qmake projects as a post-link action. For Visual Studio projects, windeployqt is added as a custom target which runs after linking, automatically adding the output as deployment items. Task-number: QTBUG-35630 Change-Id: I4cdcb1a7f70cedccb4a4e17be5eb9f5de35a4d66 Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* expand tabs and related whitespace fixes in *.{cpp,h,qdoc}Oswald Buddenhagen2014-01-131-1/+1
| | | | | | | | the diff -w for this commit is empty. Started-by: Thiago Macieira <thiago.macieira@intel.com> Change-Id: I77bb84e71c63ce75e0709e5b94bee18e3ce6ab9e Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* qmake vcproj: Support setting the SDK versionAndrew Knight2014-01-071-0/+2
| | | | | | | | | | | This adds the required members to allow setting the SDK version, and uses them when creating WinRT projects. Task-number: QTBUG-35328 Change-Id: I500ea77c41e27cbcc850462034c0eba8c5d1f124 Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com> Reviewed-by: Oliver Wolff <oliver.wolff@digia.com>
* fix /SAFESEH linker option for VS >= 2010Joerg Bornemann2013-10-291-0/+1
| | | | | | | | | | In VS 2010 and newer the /SAFESEH linker option is not passed as additional option but is represented by the property ImageHasSafeExceptionHandlers. Task-number: QTBUG-34392 Change-Id: I3bd19078e695716050dd20736b6bc589bcb1cefd Reviewed-by: Andy Shaw <andy.shaw@digia.com>
* qmake: added file deployment support for winrt and winphone targetsKamil Trzcinski2013-09-151-0/+1
| | | | | | | | | | | | | The user needs to specify the DEPLOYMENT variable. The syntax is the same as previously used for DEPLOYMENT. For more info please refer to the qmake documentation. The change adds a new itemgroup, "Deployment Files". All files in this itemgroup are marked as DeploymentContent and are then packaged with the application either as XAP or the WinRT specific file format. Change-Id: Icf85887287c1c97eb782704340eaa3f8dde6719e Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* qmake: added support for WindowsMetadataFileKamil Trzcinski2013-09-151-0/+4
| | | | | | | | | In order to be able to use the linker's /WINMD and /WINMDFILE options Change-Id: I2673e20aa073c6b807e8c9f191fd408c7976efc4 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com> Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* qmake: added CompileAsWinRT switch to the VCCLCompilerTool (the cl /ZW option)Kamil Trzcinski2013-09-151-0/+1
| | | | | | Change-Id: I2a67779bcb38af85a2c43d3e9a15aa3ba45b4788 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com> Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* qmake: added WinRT and WinPhone configuration switchKamil Trzcinski2013-09-151-0/+1
| | | | | | | | | qmakespec for either WinRT or WinPhone have to specify QMAKE_PLATFORM with winrt and/or winphone. Change-Id: I87e0063881e6edd65de14adb006949247ce49904 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com> Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* add support for Visual Studio 2013Joerg Bornemann2013-07-041-1/+2
| | | | | | | | | | Add mkspec win32-msvc2013 and make VS 2013 known to configure and qmake. Change-Id: I6e63a4d679727a8a3f068f377956185996d72bce Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com> Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com> Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* basic manifest tool support in vc(x)proj generatorJoerg Bornemann2013-06-251-0/+12
| | | | | | | | | | | The removal of embed_manifest_dll or embed_manifest_exe from CONFIG now disables the embedding of manifests in VS project files. Task-number: QTBUG-5301 Change-Id: I031318883edca6f9b63a7981ef6c44e3f123f6fd Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com> Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>