summaryrefslogtreecommitdiffstats
path: root/src/corelib
Commit message (Collapse)AuthorAgeFilesLines
* qstorageinfo_unix.cpp: Fix build on BSD and other unicesDmitry Shachnev2014-12-231-3/+4
| | | | | | | | | | | * Include statvfs.h on all non-Linux and non-Solaris systems. * Fix type of stat_buf structure on BSD. Change-Id: I6336503082fafd7f6108cf95c079bdd329d2ea0f Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@theqtcompany.com> Reviewed-by: Lisandro Damián Nicanor Pérez Meyer <perezmeyer@gmail.com> Reviewed-by: Allan Sandfeld Jensen <allan.jensen@theqtcompany.com> Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
* Fix typo in Qt5CoreMacros.cmakeAleix Pol2014-12-231-1/+1
| | | | | | | | | | According to the documentation, the argument is called COPYONLY instead of COPY_ONLY. Fixes warning and ensures it works properly. Change-Id: I643f5ea808aaaf94c3ee666ec39485e84ed38df1 Reviewed-by: Vishesh Handa <vhanda@kde.org> Reviewed-by: Milian Wolff <milian.wolff@kdab.com>
* Simplify use of __has_include in qlogging.cppThiago Macieira2014-12-201-12/+9
| | | | | | | Easier to just #define it to 0 Change-Id: Ife99fdca6564077762fa67c6d7a5becaf48655d8 Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
* Use the GCC and Clang __builtin_bswap intrinsics in qbswapThiago Macieira2014-12-201-13/+13
| | | | | | | | | | | | | | | | Glibc will use the intrinsics for 32- and 64-bit, but didn't for 16-bit (probably because GCC didn't document it until version 4.8), so this commit will make us access the intrinsics directly the intrisincs for all type sizes. Additionally, this will get us access to the compiler intrisics even without Glibc, such as when building against uclibc or Bionic. Another benefit is that both Clang and ICC will use the MOVBE instruction on Atom and Haswell architectures. Change-Id: I39d1891f479887d719d69ebe4ac92ac9bfeda8af Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@theqtcompany.com>
* Make sure we don't try to ask QByteArray to allocate too muchThiago Macieira2014-12-203-2/+14
| | | | | | | | | | | | | | QFile::readAll could be asked to read a file that is over 1 GB in size and thus cause an assertion: ASSERT failure in qAllocMore: "Requested size is too large!", ... The idea behind the existing code was correct, but the value was wrong. It prevented overflow of the integer size request, but didn't prevent overflowing the storage size. Change-Id: I072e6e419f47b639454f3fd96deb0f88d03e960c Reviewed-by: Martin Smith <martin.smith@digia.com>
* Fix QThread::idealThreadCount on Unix if sysconf or sysctl failsThiago Macieira2014-12-201-1/+2
| | | | | | | | | | The BSD4 code (including OS X) calls sysctl and if that fails, it sets cores to -1. Similarly, the generic Unix code calls sysconf() and assigns the returned value to cores, but sysconf can return -1 on failure. Change-Id: I9e521d366e9c42f36c2ba20a37e7a74539ddb8f4 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
* MSVC: Restore 'public' accessibility of QMetaType member functionsAndy Shaw2014-12-191-1/+1
| | | | | | | | | | | | | | They were made 'private' as a side effect of a change enabling support of template friends for MSVC. However, accessibility is part of the MSVC's name mangling and thus BC was broken. [ChangeLog][Important Behavior Changes] Restored binary compatibility with Qt 5.3.2 on Windows when using MSVC 2012 or MSVC 2013. This means that Qt 5.4.1 is no longer binary compatible with Qt 5.4.0 when using either of those compilers. Change-Id: I18679aa15821a7365606dc80fdc8411641573820 Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* Change bugreports.qt-project.org -> bugreports.qt.ioAlex Blasche2014-12-182-2/+2
| | | | | | | The Qt bug tracker URL changes as part of the qt.io transition Change-Id: Icb4ab198943b93639b5e3a8d99262303785c6459 Reviewed-by: Kai Koehne <kai.koehne@theqtcompany.com>
* Fix constant "Qt" LOG_TAG in AndroidAndré Klitzing2014-12-151-2/+2
| | | | | | | | | | | | The LOG_TAG for Android can be set by QCoreApplication::applicationName instead of a constant "Qt" tag. This will avoid that multiple apps will use the same tag. Also it will be easier to filter the logs for different apps instead of "adb logcat -s Qt" for all Qt apps. Change-Id: I422cc3adf8b526634b5daa9a1bb1b90403de5618 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Bump version number to 5.4.1Thiago Macieira2014-12-131-2/+2
| | | | | Change-Id: I54231de422ffc63162e49c587f371c56c3312210 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
* Doc: corrected documentation addOptions()Nico Vertriest2014-12-121-3/+5
| | | | | | Task-number: QTBUG-43259 Change-Id: If27c0658f7abaa4ce01de343ce90c14bd911212f Reviewed-by: Martin Smith <martin.smith@digia.com>
* Fix the Apple build version numbers for ClangThiago Macieira2014-12-121-6/+6
| | | | | | | | A bunch of zeroes were missing. And not to the left. Task-number: QTBUG-43279 Change-Id: I1a710cf572099547b2ade7b2574a7e0a61649758 Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@theqtcompany.com>
* doc: Clarify NOTIFY emission with MEMBER variablesAlejandro Exojo2014-12-101-1/+4
| | | | | | | | Document that NOTIFY signals should be emitted only when really needed, and that such is the case with MEMBER variables. Change-Id: Icc38a0790aa43ffe8f24d124da966b4240a41a6f Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
* Fix warnings by MSVC 64 in qtranslator.cpp.Friedemann Kleint2014-12-051-4/+4
| | | | | | | | | | | | kernel\qtranslator.cpp(880) : warning C4267: 'initializing' : conversion from 'size_t' to 'const uint', possible loss of data kernel\qtranslator.cpp(881) : warning C4267: 'initializing' : conversion from 'size_t' to 'const uint', possible loss of data kernel\qtranslator.cpp(882) : warning C4267: 'initializing' : conversion from 'size_t' to 'const uint', possible loss of data kernel\qtranslator.cpp(975) : warning C4267: 'initializing' : conversion from 'size_t' to 'const int', possible loss of data Task-number: QTBUG-39757 Change-Id: I54f130e1d83ecc1623ab3c7b9b4fb14de6351625 Reviewed-by: Albert Astals Cid <albert.astals@canonical.com> Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
* Doc: corrected autolink issues qalgorithms.qdocNico Vertriest2014-12-051-44/+44
| | | | | | Task-number: QTBUG-40362 Change-Id: Ia609b68b52472342d791a032974a3d866e8d3266 Reviewed-by: Topi Reiniö <topi.reinio@digia.com>
* Merge remote-tracking branch 'origin/5.4.0' into 5.4Simon Hausmann2014-12-051-2/+1
|\ | | | | | | Change-Id: I0cd11cbe95693b78450ea81a0187760f4a6a8b5f
| * FSEvents file system watcher: Do not watch whole parent hierarchies.Eike Ziller2014-12-011-2/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Unfortunately the FSEvents implementation for watching parent hierarchies has the major flaw, that watching a path will then create watches for the whole parent hierarchy even if that hierarchy is already watched. Watching /A/B/C and /A/B/D will create two watches each for /A and /A/B. This leads to an explosion of open file handles. Luckily we do not need to watch the parent hierarchy since this is not a supported usecase of QFileSystemWatcher anyhow, so just don't do it. Task-number: QTCREATORBUG-13531 Change-Id: I9ecb5f08e4be35e4fbd58a7ca3155867fcb1589f Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
* | Don't make invalid assumptions about memcmp()Albert Astals Cid2014-12-041-8/+12
| | | | | | | | | | | | | | | | In qtranslator.cpp match() Task-number: QTBUG-39757 Change-Id: I49e3ccc0ce900564bbe14609bfda47688382d5f3 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
* | Fix placement of QT_{BEGIN,END}_NAMESPACE in qfunctions_winrt.hThiago Macieira2014-12-012-12/+17
| | | | | | | | | | | | | | | | | | | | | | Those functions weren't getting properly namespaced. Even if we're testing WinRT namespaced builds, it wouldn't catch this mistake: those functions would simply all be in the global namespace. I guess we don't have a "namespace cleanliness" test. Change-Id: I2d3d09dc66dad476563dbf51c171683be155ebfd Reviewed-by: Maurice Kalinowski <maurice.kalinowski@theqtcompany.com> Reviewed-by: Andrew Knight <andrew.knight@theqtcompany.com>
* | Un-tighten the WinRT specific code out of qfunctions_winrt.hThiago Macieira2014-12-011-19/+19
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Keep the WinRT specific parts for WinRT only. This commit is a partial reversal of 67c83f329e7fb6fbf5d8e402f42ea8916c34f01c "Tighten Q_OS_WINRT ifdefs in qfunctions_winrt.h", which let the WinRT definitions out too wide. Strictly speaking, the C++ code that uses Microsoft::WRL::ComPtr<IAsyncInfo> without the #include is broken. The forward definition is not enough, but since Visual Studio is also broken, two wrongs made a right... (MSVC does not implement two-stage parsing of template code properly). But if you accidentally tried to compile qfunctions_winrt.h with a non-broken compiler, like GCC (MinGW), it would correctly complain. Change-Id: I7591015861d291a82050afe0f4df0cb18b43e23d Reviewed-by: Andrew Knight <andrew.knight@theqtcompany.com> Reviewed-by: Maurice Kalinowski <maurice.kalinowski@theqtcompany.com>
* | Merge remote-tracking branch 'origin/5.4.0' into 5.4Frederik Gladhorn2014-11-2711-67/+105
|\| | | | | | | | | | | | | | | | | | | Conflicts: dist/changes-5.4.0 7231e1fbe24102f2a93b34dfa70e3dca884440d2 went into 5.4 instead of the 5.4.0 branch, thus the conflict. Change-Id: I70b8597ab52506490dcaf700427183950d42cbd1
| * Doc: corrected autolink errors corelib/ioNico Vertriest2014-11-269-35/+36
| | | | | | | | | | | | | | Task-number: QTBUG-40362 Change-Id: I1cdbde1f6b003556ba4b5e97a49c6d918518da0d Reviewed-by: Venugopal Shivashankar <venugopal.shivashankar@digia.com> Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
| * Android: protect global jni cache.Christian Strømme2014-11-211-25/+58
| | | | | | | | | | | | | | | | | | | | | | This fixes a issue that has been neglected for a while, namely, that the access to the global jni caches where not sufficiently protected for concurrent usage. This change also fixes an issue with the thread-name storage. Task-number: QTBUG-42755 Change-Id: I22f95ae7f44d1f6a13e289e52b050d98ccb9fb28 Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@theqtcompany.com>
| * Fix the %{time} printing to *not* default to the process's timeThiago Macieira2014-11-211-7/+11
| | | | | | | | | | | | | | | | | | | | | | The default should be the actual time of day. Showing the process's time is the optional case. In the future, we'll provide a way to showing the monotonic reference time ("boot") and we should improve the detection of actual application runtime. Change-Id: I41936d77ab9fad2073dc0ce1c97cabe57ec39f16 Reviewed-by: Jan Arve Sæther <jan-arve.saether@theqtcompany.com> Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
* | Fix size miscalculation in QByteArray::toBase64Benjamin Lutz2014-11-271-3/+4
| | | | | | | | | | | | | | | | | | | | | | | | The size calculation in QByteArray::toBase64 overcalculates the size required for the output by up to 3 Bytes. This is fixed, which also implies that truncate() at the end is needed only if OmitTrailingEquals is used. Task-number: QTBUG-32436 Change-Id: I92a893047e7aca027c4aa0a6655bcca514585ff5 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* | Clarify QString::clear()Allan Sandfeld Jensen2014-11-271-2/+2
| | | | | | | | | | | | | | | | QString::clear() sets the string to the null QString, not just an empty one. Change-Id: Ie6f070f9f2e464105a7b87376e6dad90b5e4d2f2 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
* | QJsonArray::(const_)iterator: mark the pointer typedefs as internalGiuseppe D'Angelo2014-11-271-0/+10
| | | | | | | | | | | | | | | | | | Just like the other typedefs; removes the doc warnings. Change-Id: I61142b8db57f4e0cc44cb8c459b1e82e69da3413 Reviewed-by: Frederik Gladhorn <frederik.gladhorn@theqtcompany.com> Reviewed-by: Olivier Goffart <ogoffart@woboq.com> Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@theqtcompany.com>
* | Deprecate implementations of functions deprecated in headersShawn Rutledge2014-11-271-0/+2
| | | | | | | | | | | | | | | | | | If you build with configure -DQT_NO_DEPRECATED this will avoid some build errors. Change-Id: If2b2e57b6919091f3f077ebc2aeca0c3fd2421aa Reviewed-by: Olivier Goffart <ogoffart@woboq.com> Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
* | QAbstractItemView: call canDropMimeData, as one would expect.David Faure2014-11-241-4/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The virtual method was added for 5.0 but never called. The old code (only checking mimetypes) is now the default implementation for canDropMimeData. Model subclasses can now refine this by having index-specific logic instead, or in order to inspect the dropped data (e.g. to accept files and refuse directories, which are all text/uri-list). [ChangeLog][QtWidgets][QAbstractItemView] now calls canDropMimeData in order to decide whether or not to accept the drop. Task-number: QTBUG-30534 Change-Id: Ied3aa964b4025bae6a1a26df89a681bfe61c3faa Reviewed-by: Stephen Kelly <steveire@gmail.com>
* | QAbstractProxyModel: fix canDropMimeData/dropMimeData implementationsDavid Faure2014-11-243-22/+34
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The code in 4696e9dbaa4 was incorrect. It is perfectly valid to call these methods with row=-1 column=1 parent=some_index, this is exactly what happens in QListView and QTableView. Child row/column is only for trees. Move the coordinate mapping from QSortFilterProxyModel into a new mapDropCoordinatesToSource internal method, used by QAbstractProxyModel. Task-number: QTBUG-39549 Change-Id: I3312210473d84b639cbe4c01f70ea36437db3e91 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com> Reviewed-by: Stephen Kelly <steveire@gmail.com>
* | Implement Download folder path retrieval on OS XSamuel Gaist2014-11-243-6/+13
| | | | | | | | | | | | | | | | | | | | | | | | The current implementation returns the DocumentLocation folder. Since now only cocoa is supported, we can use NSFileManager to get the correct path. [ChangeLog][QtCore][OS X] Now QStandardPaths returns the correct path for the DownloadLocation. Change-Id: Ic0ea3ebf8585a1e34a7b43c734df78fd3949d4d4 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* | Put parentheses around "min" to prevent expansion as macroThiago Macieira2014-11-211-1/+2
| | | | | | | | | | | | | | | | | | | | | | | | If you write xxxx::min(), min() might be expanded as a macro on silly environments that follow that poor practice (read: inclusion of <windows.h> without NOMINMAX). However, if you write (min)() or (xxx::min)(), it means the same but prevents the expansion as macro. Task-number: QTBUG-42767 Task-number: QTBUG-31469 Change-Id: If3c93aafd4d0bf63ca15f3d01c2297d58d00f6bc Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
* | Fix coding style in QtCoreThiago Macieira2014-11-211-2/+2
| | | | | | | | | | | | | | | | Never start a line with a comma. Change-Id: Idce1766f2661aa97fd163c02436ef315999985ec Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com> Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* | Merge remote-tracking branch 'origin/5.4.0' into 5.4Frederik Gladhorn2014-11-2123-97/+120
|\| | | | | | | Change-Id: I95f235a66ce2e9b1fa435c0f911c6f7e811755f0
| * Windows: Prevent registration of timers in shutdown phasev5.4.0-rc1Kai Koehne2014-11-202-2/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Do not register new timers after closingDown() has been called. They might call back into QEventDispatcherWin32 after the object has been destructed, leading to crashes on exit. registerSocketNotifier has a similar protection using QCoreApplication::closingDown(). This however does not work in all cases, because QEventDispatcher::closingDown() is called in ~QGuiApplication(), while QCoreApplication::is_app_closing is set in ~QCoreApplication(). In between qt_call_post_routines() is called, which might trigger new timers to be registered. Task-number: QTBUG-42772 Change-Id: I91325fb10e38c117c1cbedfee272d0ab6a5ca8fa Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
| * Doc: Corrected autolink errors corelibNico Vertriest2014-11-205-23/+21
| | | | | | | | | | | | Task-number: QTBUG-40362 Change-Id: I551c2af94bb61fcc2494792761dab92d537e5068 Reviewed-by: Martin Smith <martin.smith@digia.com>
| * Doc: corrected autolink issues itemmodelsNico Vertriest2014-11-202-5/+5
| | | | | | | | | | | | Task-number: QTBUG-40362 Change-Id: I8423643e47d27358dbbce58009cc9039aecb74cf Reviewed-by: Martin Smith <martin.smith@digia.com>
| * iOS: Make sure QStandardPaths::displayName() is definedTor Arne Vestbø2014-11-191-1/+1
| | | | | | | | | | | | | | | | | | | | The file qstandardpaths_ios.mm doesn't have an implementation for this function, only (the wrongly named) qstandardpaths_mac.cpp does. There's no Foundation API to get the directory name, so we fall back to the hard-coded strings like all other platforms. Change-Id: I6dcfeb6a0e5860dd0d4e9a0cd334b2c2181a0004 Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@theqtcompany.com>
| * Doc: correct autolink issues corelib/mimetypeNico Vertriest2014-11-193-8/+9
| | | | | | | | | | | | Task-number: QTBUG-40362 Change-Id: I852151fdbbe0cbc7ba88066984fc7bf83547b215 Reviewed-by: Martin Smith <martin.smith@digia.com>
| * Doc: Added brief statement to group definitionNico Vertriest2014-11-192-0/+2
| | | | | | | | | | | | | | Groups: richtext and sharing. Task-number: QTBUG-42682 Change-Id: I46bd7e5bba0f665519ee4f3c033b971f0836e314 Reviewed-by: Martin Smith <martin.smith@digia.com>
| * Fix wrong qversionnumber header name in tools.priLaszlo Agocs2014-11-171-1/+1
| | | | | | | | | | | | Change-Id: Ie571ca0dc1720bcd04e492697e93f866b1877a5b Reviewed-by: Keith Gardner <kreios4004@gmail.com> Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
| * Doc: Solved link and autolink errs qnamespace.qdocNico Vertriest2014-11-151-11/+12
| | | | | | | | | | | | Task-number: QTBUG-40362 Change-Id: I81166dc3a54427e2d2d81f640162f6c338947849 Reviewed-by: Martin Smith <martin.smith@digia.com>
| * Doc: Corrected brief statement for overview pageNico Vertriest2014-11-141-1/+2
| | | | | | | | | | | | Task-number: QTBUG-42682 Change-Id: I28afbb8b09d5568f3fae29fdfc5a3d15376b72de Reviewed-by: Martin Smith <martin.smith@digia.com>
| * Make QVersionNumber privateThiago Macieira2014-11-132-1/+2
| | | | | | | | | | | | | | | | | | | | We're not ready. [ChangeLog][EDITORIAL] Remove all mentions of QVersionNumber. Change-Id: I03ad95992982eb3177f982c1eeddb6a6bc29336c Reviewed-by: Keith Gardner <kreios4004@gmail.com> Reviewed-by: Lars Knoll <lars.knoll@digia.com>
| * Doc: corrected autolink issue jsonNico Vertriest2014-11-131-1/+1
| | | | | | | | | | | | | | Task-number: QTBUG-40362 Change-Id: I851670eea6af80b0bb463f00b147d7a6ef289046 Reviewed-by: Martin Smith <martin.smith@digia.com> Reviewed-by: Topi Reiniö <topi.reinio@digia.com>
| * QJsonArray::(const_)iterator: add the typedef for the pointer typeGiuseppe D'Angelo2014-11-131-0/+2
| | | | | | | | | | | | | | | | | | Mandatory as per the standard iterator requirements, was causing compilation errors in the STL algorithms. Task-number: QTBUG-41628 Change-Id: Iee12a3b822383f63c07e270244fd0e145a486b95 Reviewed-by: Lars Knoll <lars.knoll@digia.com>
| * Merge remote-tracking branch 'origin/5.4' into 5.4.0Oswald Buddenhagen2014-11-1013-195/+221
| |\ | | | | | | | | | Change-Id: I85e3dfa62f217b76447276dd7cce6b9eac3a144e
| * \ Merge remote-tracking branch 'origin/5.3' into 5.4.0Oswald Buddenhagen2014-11-102-23/+12
| |\ \ | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: src/plugins/platforms/xcb/qxcbwindow.cpp Change-Id: Iad9ef6bf7d6111efba8232a7d9b46bb9974912f5
| | * | Fix QString::sprintf documentationKai Koehne2014-11-052-23/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | QString::sprintf does actually support all length modifiers, including %lld. The format string is also parsed as UTF-8. What's worthwile to mention, though, is that %lc and %ls is at odds with the standard, since wchar_t isn't necessarily 16 bits wide. Change-Id: I30cd22ec5b42035824dd98e3cdcc79d7adcc953a Reviewed-by: Olivier Goffart <ogoffart@woboq.com> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
| * | | direct2d: Use simple event posting to avoid event queue lock upAndrew Knight2014-11-072-20/+39
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In rare cases, the Windows event loop can be spinning inside the inner loop and the message hook is never called. This can be triggered on the Direct2D platform by opening 32+ window handles. The issue can be worked around by using the same approach Windows CE uses: don't rely on the message hook to inform the event loop that the post message has been delivered. Instead, uninstall the hook and let it be called directly by the event loop. Task-number: QTBUG-42428 Change-Id: I10280126dd50729bc260aa5f7029549e2e061c01 Reviewed-by: Louai Al-Khanji <louai.al-khanji@theqtcompany.com> Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>