Commit Graph

25193 Commits

Author SHA1 Message Date
Liang Qi
d0eaa737e1 Merge remote-tracking branch 'origin/5.5' into 5.6
Conflicts:
	qmake/doc/src/qmake-manual.qdoc
	src/corelib/tools/qstring.h
	src/gui/image/qimagereader.cpp
	src/network/access/qnetworkaccessmanager.cpp
	src/tools/qdoc/doc/examples/examples.qdoc
	src/widgets/accessible/qaccessiblewidgetfactory_p.h
	src/widgets/doc/qtwidgets.qdocconf

Change-Id: I8fae62283aebefe24e5ca4b4abd97386560c0fcb
2015-10-02 16:59:55 +02:00
Simon Hausmann
7c0b9e1e8d Fix build without PCH after commit 3ae2387f37
Include errno.h for errno and EEXIST.

Change-Id: Id28d5a08097319eb84b1fe9ef20c9be6ebe575fa
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@theqtcompany.com>
2015-10-02 09:02:21 +00:00
Laszlo Agocs
f191ba9d71 Revamp signal handling in eglfs/linuxfb
Go back to the pipe-based signal handling. signalfd() introduces more harm than good
and is a regression for applications that install their own signal handlers.

Simplify the somewhat overcomplicated suspend (Ctrl+Z) logic too. There is no need for
requiring a callback. Just enable/disable the keyboard and cursor on suspend and resume
and emit the signals. Backends (like kms) may then perform additional steps, if they
choose to do so.

Task-number: QTBUG-48384
Change-Id: Ifd52de89c59915a2e0be6bf5ebc6f2ff1728eb50
Reviewed-by: Louai Al-Khanji <louai.al-khanji@theqtcompany.com>
2015-10-02 06:32:03 +00:00
Tor Arne Vestbø
918f1cd3d8 Xcode: Set DYLD_IMAGE_SUFFIX=_debug when launching Debug configuration
This ensures that we pick up the debug version of the Qt libraries in
a debug and release build.

Change-Id: I7fc1ed72a6f01b138608413954d4b9e45b7782a0
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@theqtcompany.com>
2015-10-01 23:01:46 +00:00
Thiago Macieira
906d92bde4 Fix missing "We mean it" in qtbase private headers
Change-Id: I42e7ef1a481840699a8dffff1408dfd4fd9c8e32
Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
2015-10-01 21:09:05 +00:00
Thiago Macieira
e9365c2c2f Revert "Add support for same-file intrinsics with Clang 3.7"
This reverts commit 39c2b8c5c1. The
feature is not working:

$ clang -c -o /dev/null -msse2 -include tmmintrin.h -xc /dev/null
In file included from <built-in>:316:
In file included from <command line>:1:
/home/thiago/clang3.7/bin/../lib/clang/3.7.0/include/tmmintrin.h:28:2: error: "SSSE3 instruction set not enabled"

For reference:

$ icpc -c -o /dev/null -msse2 -include tmmintrin.h -xc /dev/null; echo $?
0
$ gcc -c -o /dev/null -msse2 -include tmmintrin.h -xc /dev/null; echo $?
0

Change-Id: I42e7ef1a481840699a8dffff140844cb8872ed6e
Reviewed-by: Sérgio Martins <sergio.martins@kdab.com>
2015-10-01 21:08:47 +00:00
Thiago Macieira
a2f501f939 Make -dbus-linked the default on all platforms
[ChangeLog][QtDBus] The QtDBus library now links directly to the
libdbus-1 system library if it was detected at configure time. To force
linking to the library, pass option -dbus-linked to configure; to force
dynamically loading at runtime, use -dbus-runtime.

Task-number: QTBUG-14131
Change-Id: Ie33d1f22f85b465ab0ce166b8f17b8491eae1c21
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
2015-10-01 21:08:34 +00:00
Thiago Macieira
8233e401b1 QLocale: remove (harmless) dead code
On line 92 and on line 146, len == 2 or len == 3, so uc1 and uc2 cannot
be 0, ever.

Found by Coverity, CID 11013 and CID 11012.

Change-Id: I42e7ef1a481840699a8dffff1407edefd3e7aa4f
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
2015-10-01 21:08:25 +00:00
Oswald Buddenhagen
b39cda2ec2 remove QMAKE_<lib>_SUFFIX support
this feature was added with a dubious commit message a decade ago, was
undocumented, and there are no public traces of it being used.

if i had to guess what it was meant for: to be able to consistently use
-lfoo throughout a project and centrally (e.g., in .qmake.cache) choose
to use foo<bar> (bar possibly being "d") instead. however, more explicit
methods are being used instead, including in qt itself.

Change-Id: Ic3a98dc3aec59876f26909fbf9f7aba32baa05bf
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
2015-10-01 16:19:56 +00:00
Oswald Buddenhagen
119cb65017 remove support for CONFIG+=compile_libtool
"why not use libtool?"  -- sam
"srsly dude?!"  -- ossi

[ChangeLog][qmake] Support for CONFIG+=compile_libtool was removed. Use
CONFIG+=create_libtool and/or custom compilers instead.

in addition to its utter insanity and superfluousness, this feature was
apparently quite broken anyway (QTBUG-35745).

Change-Id: I8147a2953f5f065735ae3a2206cd5d33a7c1809a
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
2015-10-01 16:19:53 +00:00
Oswald Buddenhagen
ba9f4942b0 remove questionable libtool "compatibility" code from prl processing
this code would get enabled when *not* compiling with libtool, and would
try to use the real library in .libs/ when one tried to link the .la
file (i.e., it would reproduce libtool's functionality). that directory
structure is found only in build directories, so this code was
apparently meant to support mixed projects. that doesn't sound useful.

on top of that, the other code paths that were supposed to treat .la
files like .prl files were disabled before initial release (because
Somebody (TM) noticed that their code "doesn't behave well"). this code
here did the same thing, but at the wrong abstraction level.

as a side effect, this removes an infinite recursion problem in that
code.

Task-number: QTBUG-46910
Change-Id: If5291f5ff42c1412075c195753162c54598a250e
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
2015-10-01 16:19:51 +00:00
Oswald Buddenhagen
3cd49cb628 remove pointless code path
there is no need to consider the "-framework foo" syntax, as we fully
control the list and insert elements exclusively as "-framework" "foo" a
few lines down.

Change-Id: I95fa8b46f53673ea3df1a67a2a44d11f7d679cc6
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
2015-10-01 16:19:47 +00:00
Oswald Buddenhagen
e0470ba2fe remove pointless code from prl processing
the code had a dead variable assignment and no side effects.

Change-Id: I9add8f1776f23a29c103b46dc725b9f386a4495a
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
2015-10-01 16:19:45 +00:00
Oswald Buddenhagen
efe9c7ddbb remove QMakeMetaInfo::clear()
each instance of the class is used only once.

Change-Id: I33e01537ee3a731c0f9758ec65c74938e4bec28c
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
2015-10-01 16:19:43 +00:00
Oswald Buddenhagen
ffe7f408ea remove bizarre prl substitution code
it appears to have been some weird attempt at back-mapping file names to
-l arguments, which has been made ineffective with the partial #if 0.
i can't even describe what it did at this point.

Change-Id: Ie31cbbe7fab8b21b039bfff5877397af07731f1b
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
2015-10-01 16:19:41 +00:00
Oswald Buddenhagen
d1cebb09b6 make /LIBPATH: deduplication code more like in the unix generator
Change-Id: If7e83a46b1a2ad92723a222daffa687d74636858
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
2015-10-01 16:19:38 +00:00
Oswald Buddenhagen
5df87614e3 remove link_highest_lib_version misfeature
in retrospect, we were too conservative in 925fd32a2d making the
"feature" optional - it simply makes no sense to have qmake
automatically find the highest major (!) version of a library based on
a loosely defined platform-specific convention (not standard, unlike
ELF's .so versioning) with side effects.

Change-Id: Iba92df433b199a9fbff88358f6e0f6835f2e813d
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
2015-10-01 16:19:36 +00:00
Oswald Buddenhagen
cbbeed519b remove magic patching up of libraries specified by file name
the assumption is that if somebody bothers to actually specify a file
name, they'll most probably go all the way to specify the *correct* file
name. otherwise, they'll use -L/-l flags to specify the libs in a
cross-platform way and rely on qmake's magic.

this code was initially added for the purpose of invoking
findHighestVersion() under windows. this has been off by default for a
while now.

at some point, the code did also swap qt for qt-mt and vice versa if the
specified one was missing. this is obviously gone for a while as well.

the unix code was pretty much broken since day one: there was a regex
match on lib<stub>.* against <stub> itself, which obviously could not
have ever succeeded. consequently, the subsequent code ran into a path
that tried the file name with a trailing dot (instead of a new
extension), which never produced anything meaningful.

[ChangeLog][qmake][Important Behavior Changes] The library lookup has
been simplified. It may be necessary to be more explicit in some edge
cases now.

Change-Id: I5804943f1f7a16d38932b31675caabbda33eada7
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
2015-10-01 16:19:33 +00:00
Oswald Buddenhagen
f734599629 unify handling of library prefixes and extensions
make sure that all specs define QMAKE_{PREFIX,EXTENSION}_{SH,STATIC}LIB,
and adjust the code to make halfways consistent use of these variables,
in particular on windows; Win32MakefileGenerator::getLibTarget() is gone
as a result, as is QMAKE_CYGWIN_SHLIB. still, tons of hardcoded "lib"
references remain in the unix generator, because no-one cares.

Change-Id: I6ccf37cc562f6584221c94fa27b2834412e4e4ca
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
2015-10-01 16:19:30 +00:00
Oswald Buddenhagen
3e6d172638 move inclusions of unix.conf (and related files) near the top
that way we can override the values defined there.

Change-Id: Ib9bce596d9fd43875b26a97c5489ee9d0d46b77c
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
2015-10-01 16:19:27 +00:00
Oswald Buddenhagen
d98a23eb7c remove references to $$QMAKE_CYGWIN_EXE
it would cause the unix generator to set TARGET_EXT, but that wasn't
used anywhere. so remove the dead code. if it ever gets re-introduced,
it will be as QMAKE_EXTENSION_EXE.

Change-Id: I44ce3e612651fd229177e37ab6c8879cd8c474b7
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
2015-10-01 16:19:25 +00:00
Oswald Buddenhagen
9db1644165 inline NmakeMakefileGenerator::getPdbTarget()
it was used only once, and virtual for no reason whatsoever.

Change-Id: I99411be3dac93d8a129441f656b2443d09108564
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
2015-10-01 16:19:23 +00:00
Oswald Buddenhagen
6c4d7667e4 remove support for {rvct,arm,ti}_linker
rvct and armcc support are remnants from symbian, while the ti linker
support was never completed in the first place.

Change-Id: I5c9d7f0ce67de24c348cbee4af618a499fe06f16
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
2015-10-01 16:19:20 +00:00
Oswald Buddenhagen
7ab9b0d847 remove unsupported linux-armcc spec
it was experimentally added in 2011. there is no evidence that anyone
actually uses it.

Change-Id: Ie3b131f3783cafe942d180b2623fcc64740d7a73
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
2015-10-01 16:19:18 +00:00
Oswald Buddenhagen
c111e1553e remove overuse of trimmed()
there is no reason to expect the various list elements to be
space-encumbered, or to tolerate it if they were.

Change-Id: I1a2e5c8d30456b640408503334c55f9262792db5
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
2015-10-01 16:19:15 +00:00
Oswald Buddenhagen
34a967abc9 de-duplicate calculation of target base
Change-Id: I546fe454f925dd9ad39ba444fa78455c8dbdfde6
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
2015-10-01 16:19:12 +00:00
Oswald Buddenhagen
e88334e013 don't support arbitrary flags in LIBS on windows
there should be no flags other than /LIBPATH: in LIBS (and the variables
that end up in it) - these belong into QMAKE_LFLAGS.

while not very important, this change enables the use of drive-relative
paths using unix path separators.

note that on unix, arbitrary flags must be supported in LIBS due to GNU
ld's --push-state and related position-dependent flags (-whole-archive
in particular). luckily, on unix, flags start with a dash, not a slash.

Started-by: Dyami Caliri <dyami@dragonframe.com>
Change-Id: Ie5764f14d34ad13020ca010499594eed8c69a4a1
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
2015-10-01 16:19:08 +00:00
Oswald Buddenhagen
8e3e089763 don't overquote library path
Change-Id: I33b91141c79cacd1a46299754937c81a31e665c9
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
2015-10-01 16:19:05 +00:00
Oswald Buddenhagen
a75995124d fix configure bootstrap on mingw with spaces in the builddir
the missing quotes would cause us to misdetect mingw as msys.

Change-Id: I408c0e6bfc3cbfecd02c54904cf96ab79e0b6d88
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
2015-10-01 16:19:01 +00:00
Oswald Buddenhagen
be6758a4de omit trailing /. from relative RPATHs pointing to own directory
Change-Id: Ia4551f5b16f4e66c7ab7fdec82643d9cd8866ccd
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
2015-10-01 16:18:58 +00:00
Oswald Buddenhagen
1ebce824c4 fix place of "qnx" in $$QMAKE_PLATFORM
it must come first, as it is most specific.

an alternative fix would be re-organizing the includes, but that
requires a lot more effort to get right.

Change-Id: I1526a3c966f3dc3f3df1efc00ec271d333ed7ebf
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
2015-10-01 16:18:55 +00:00
Oswald Buddenhagen
939dc77656 more accurate check for presence of target INSTALL
make it match qmake's own rules.

Change-Id: Ia6b9ac12ac08932ac67f100f4638352a214553bd
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
2015-10-01 16:18:52 +00:00
Oswald Buddenhagen
e8dcd5038d "frame" execution of config tests precisely
the purpose is to make build log parsers able to ignore build failures
in verbose configure output.

Change-Id: I01af2e019fd1b055fdfcf6749faeebacb7a39c3f
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@theqtcompany.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2015-10-01 16:18:49 +00:00
Joni Poikelin
4b785eeaa9 Clean up debug code and unused functions from imagegestures example
Change-Id: I0dbbb5c6f3227e8cfe3e0f6eb27b2bf16b5d222b
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
2015-10-01 07:09:53 +00:00
Edward Welbourne
2c5126b9de Purge extraneous execute permissions.
Source files should not be executable.

Change-Id: If9b9eaa6c8c7348ca6f48fa9253f3540e95aca37
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@theqtcompany.com>
Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@theqtcompany.com>
2015-09-30 18:26:21 +00:00
Edward Welbourne
e4d736b6de Fix a #! first line.
An executable .sh file should have its #! be the first two bytes.

Change-Id: I22c9eee6d349df743b02996bef0e093df3f42eb5
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@theqtcompany.com>
Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@theqtcompany.com>
2015-09-30 18:26:06 +00:00
Edward Welbourne
1d6643895d Moved a comment to where it belongs.
There was another function between the comment and the one it documented.

Change-Id: I4e96979261738b1ef264984da0d6a8245f2fb643
Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@theqtcompany.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
2015-09-30 18:25:58 +00:00
Friedemann Kleint
3130f0865a Improve tst_qfile.
- Introduce consistent error messages for failing QFile::open()
  and existence checks to make errors about non-available
  UNC paths on Windows clearer.
- Introduce a guard class to ensure the stdin reader processes
  are terminated properly in case of failures, which currently
  occur for MSVC2015.
- Fix brace coding style and remove unnecessary QString
  conversions.

Task-number: QTBUG-48504
Change-Id: I890b13088558ef05391fb152a6b815276df0fe8c
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
2015-09-30 17:28:49 +00:00
Friedemann Kleint
0bc3983b8a Improve messages in tst_qdir/tst_fileinfo/tst_qfiledialog2.
Introduce error messages showing the path in file existence,
file type and directory entry list tests to make fails related
to missing UNC shares clearer.

Task-number: QTBUG-48504
Change-Id: I5fb401b94cfa8b58562a906b8d9765039e334027
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
2015-09-30 17:27:58 +00:00
Thiago Macieira
32f957ccc6 Don't include <windows.h> in the MinGW qplatformdefs.h
There's no need for it and there's harm in doing so, as it #defines
"interface".

Task-number: QTBUG-48351
Change-Id: I4ca855441b899f3f723a12f673645f3ce7541d9b
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
2015-09-30 11:42:16 +00:00
Edward Welbourne
b86efb1ab9 Initialize QFutureWatcherBasePrivate::finished and test
It's accessed by QFutureWatcherBase::isFinished(), potentially before
anything has set it.  It gets to be initially true until setFuture()
has given it us unfinished future and set it false.

Add a regression test for matching state in future and watcher.

Task-number: QTBUG-12358
Change-Id: Iae7bdaa434ab80f518afe4d7d55df99c391991a4
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@theqtcompany.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@theqtcompany.com>
2015-09-30 08:25:34 +00:00
Friedemann Kleint
0ebebeb983 MSVC2015: Blacklist tests reading from stdin in buffered/text mode.
- tst_QProcess::fileWriterProcess()
- tst_QProcess::readLineStdin()
- [tst_QProcess::readLineStdin_lineByLine()

The test fails apparently due to a bug in its runtime library
(fread() dropping data).

Task-number: QTBUG-48455
Task-number: QTBUG-48504
Change-Id: I972e560e88312cea0d3dbcea9450c59285a15d5a
Reviewed-by: Oliver Wolff <oliver.wolff@theqtcompany.com>
2015-09-30 07:54:58 +00:00
Joni Poikelin
0f48a0ed04 Clean unused parameter warning from QItemSelectionModel test
Change-Id: I6bd40e8de7b44630ef5c7475b8159ab9a0361cb9
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
2015-09-30 06:36:21 +00:00
Louai Al-Khanji
ac0184d608 Add qt_safe_ftok wrapper for ftok
The ftok function unfortunately can return duplicate keys even for different
files if the same project id is used. This is discussed e.g. in Stevens'
"Advanced Programming in the UNIX Environment".

We want the key to be predictable so we cannot just pass a random number as
the project id. To reduce the propability of key collisions we hash the file
name with the project number as seed for a predictable value. This is the same
approach taken e.g. by Apache, but the real fix is to move away from System V
IPC completely once this is feasible on our supported platforms.

Task-number: QTBUG-48375
Change-Id: If1a57f215f7ddd147aa38919907cfb83db07aea0
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2015-09-30 05:35:16 +00:00
Dave Flogeras
813f468a14 Fix for platform socklen_t on other C libraries than glibc.
Rather than treating >=glibc-2 specially, we treat <glibc-2 specially
and all other libc implementations as POSIX.

This was found here http://patchwork.openembedded.org/patch/94947/ and
tested with armv6j-hardfloat-linux-uclibceabi and
armv6j-hardfloat-linux-musleabi.

Change-Id: I3850b1561a2e240f6564afedd80ce39407cc50b6
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2015-09-30 05:04:20 +00:00
Andrew Knight
c1e95c6219 Remove unused font deployment feature
This is a leftover from the unsupported Windows Phone 8.0 mkspec.

Change-Id: Ibcf11e131a3cb098960410dbd683eb5950b0c5ad
Reviewed-by: Maurice Kalinowski <maurice.kalinowski@theqtcompany.com>
Reviewed-by: Oliver Wolff <oliver.wolff@theqtcompany.com>
2015-09-30 04:57:29 +00:00
Vyacheslav Koscheev
0cd7b64a61 qwindowsmime compilation fix
Change-Id: I6ca030ed1333f62da6270c1295a4f489f088334d
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
2015-09-30 04:55:54 +00:00
Friedemann Kleint
a4df9739a2 uic/class_lib_map.h: Fix include path of QValidator-derived classes.
Task-number: QTBUG-48492
Change-Id: I1b43bd955cdb36c564483dfa3d9b416885ada983
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
2015-09-30 04:30:31 +00:00
Friedemann Kleint
a2995c180b tst_qprocess: Improve handling of helpers.
Verify exit status and code where applicable. Avoid unnecessary
data conversions in fileWriterProcess. Improve error handling in
helper processes.

Task-number: QTBUG-47370
Task-number: QTBUG-48455
Change-Id: Ib5c4f546027131db02caaa05154a5880edac5cf7
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2015-09-30 04:29:56 +00:00
Friedemann Kleint
78f9b16d60 Skip tst_QNumeric::addOverflow() for MSVC2015.
The code still produces  Internal Compiler Errors in release mode.

Task-number: QTBUG-46344
Change-Id: I86d3608b13a197a0b65b83829d1512203e1578f8
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@theqtcompany.com>
2015-09-30 04:28:39 +00:00