Commit Graph

961 Commits

Author SHA1 Message Date
Alex Trotsenko
e227b8ecf6 Deinline QRingBuffer class
Reduce the size of .text section in QtCore by 4.5KB and in QtNetwork
by 26.5KB.

Change-Id: If7998776166b9681c1e4b24c51d40444aa996d7a
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
2015-05-20 13:49:00 +00:00
Oswald Buddenhagen
6cb495dee3 make QMAKE_FRAMEWORK_VERSION work independently of TEMPLATE
QMAKE_BUNDLE_DATA itself does as well, and it can refer to versioned
resources.

Change-Id: I3d9bf23c2ff81dbb1cd929f3f0e0ce1e67f3258a
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
2015-04-27 18:58:47 +00:00
Joerg Bornemann
fc08ac53a0 remove superfluous method re-implementation
Remove a superfluous implementation of
VcprojGenerator::replaceExtraCompilerVariables.
The implementation in the base class is exactly the same.
Use that instead.

Change-Id: Ie7d995be1b0d55fbefd15ae6b7a992237d97839c
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
2015-04-27 13:25:27 +00:00
Oswald Buddenhagen
3378aa45c2 fix distclean targets
this makes the distclean targets work throughout qt.
the dreaded confclean target is aliased to distclean.

Task-number: QTBUG-8202
Task-number: QTBUG-20566
Change-Id: I7ac8e3b5b0110825dc93e4fa885281db91c6cf83
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
2015-04-23 19:16:57 +00:00
Oswald Buddenhagen
6e2e0e061f automatically distclean internally generated artifacts
specifically, .prl, .pc, and .la files, and QMAKE_SUBSTITUTES outputs.

Change-Id: I27685125668f0ec2aa81a8f003d3605accf2ab36
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
2015-04-23 19:16:54 +00:00
Oswald Buddenhagen
0ce189d20f fix distclean target for plugins under unix
Change-Id: I5ebaba8575dfac9597e1ead92d42955ff626e1b1
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
2015-04-23 19:16:52 +00:00
Oswald Buddenhagen
e8dc128d1d don't fail to fix path separators in extra compilers' clean targets
this affects only files explicitly listed via the .clean member without
placeholders, so more or less a corner case.

Change-Id: I7bd55948130aaee116d1a4bebbad0c445b76197b
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
2015-04-23 09:50:58 +00:00
Oswald Buddenhagen
f228404c24 untangle handling extra compiler .clean member, take 2
fixes clean targets of (most) extra compilers being empty.

amends commit 0812b5b318.

Task-number: QTBUG-45132
Change-Id: I069bca124587df261597a4f8183a4695cd834e29
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
2015-04-23 09:50:54 +00:00
Oswald Buddenhagen
5fb0b71a12 fix {ALL,CLEAN,DISTCLEAN}_DEPS writeout to makefile
it helps enormously to put spaces between target names ...

Task-number: QTBUG-45533
Change-Id: Ic41f8287c6c37761b1be3ad7c383b5c7fb714b12
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
2015-04-23 09:50:51 +00:00
Oswald Buddenhagen
c4d82dbfc0 make diff between aux and app TEMPLATEs smaller
people may use extra compilers which refer to CXXFLAGS & co., so set
them up "as normal".

Change-Id: I858ca63370a7aed66e04f5417da078b896feefc4
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
2015-04-23 09:49:14 +00:00
Joerg Bornemann
3c1cb24fe4 fix extra compilers with indirect outputs in VS projects
Evaluate the .output variable of the extra compiler to determine
the file extension of its output.
The VS project generator needs it to determine the filter that
will contain the output file.

Change-Id: Iab1e154a712342401e17421c08975fad13967a5b
Task-number: QTBUG-45717
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
2015-04-23 09:49:01 +00:00
Oswald Buddenhagen
4c96367410 make fileFixify() calling convention somewhat sane
instead of allowing arbitrary input and output base paths, restrict them
to the project input and output dirs (in any permutation), which are the
only cases ever used anyway.
this permits much clearer call sites, and allows later optimizations.

Change-Id: I48d149a4417af5c858e66ec57c476a5bc6b17f17
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
2015-04-21 12:06:20 +00:00
Oswald Buddenhagen
6234dec41f unhack Xcode shadow building
explicitly use the correct directories instead of temporarily changing
into the output dir. this makes the code less obfuscated.

Change-Id: Ia935987f486151ae556910703cc20945c7610ffc
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@theqtcompany.com>
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
2015-04-21 12:06:17 +00:00
Oswald Buddenhagen
2c0730839b Revert "Use relative path for QMAKE_BUNDLE_DATA"
turns out that a relative path makes some versions of Xcode crash.
so use an absolute path again.
fileFixify() has been fixed for shadow builds to make this possible.

This reverts commit 6ccf0a326e.

Task-number: QTBUG-45424
Change-Id: Ica87c6c29f990f56e42c399b6d9b1c7eacdd13a7
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@theqtcompany.com>
2015-04-21 12:06:13 +00:00
Oswald Buddenhagen
6accf40a14 make fileFixify(FileFixifyAbsolute) pay attention to in_dir
... instead of sheepishly assuming qmake_pwd().
it also canonicalizes consistently with the relative output path now.

Change-Id: I86231f7259179020643405f3c0e696a74031aa4e
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
2015-04-21 12:06:10 +00:00
Oswald Buddenhagen
ed4bdd3eec fileFixify(): remove bizarre canonicalization
it would trigger only if the input file name was already absolute,
matched the native path separator, and some (likely) other conditions.

as this behavior was almost unpredictable, it would be not very useful.
so save ourselves the headache and just remove it.

Change-Id: Ic457f487f6d0ce9f7a5f192859c9efa9c2de2b63
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
2015-04-21 12:06:06 +00:00
Oswald Buddenhagen
b532250237 remove pointless argument to build_args()
it's always empty.

Change-Id: Icd97b5ac5b77c119174fdce2671f69c88c607428
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
2015-04-21 12:06:03 +00:00
Bjoern Breitmeyer
2e18c9af26 Fix incorrect pass by value.
Make sure we don't pass by value, but by const reference.

Change-Id: Ia432e881d2b8116f22a30dfa31186479784ee4a1
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
2015-04-21 11:37:54 +00:00
Bjoern Breitmeyer
60a384cf2f Add QMake support for WEC2013 SDKs
CESDKHandler now retrieves available WEC2013 SDKs from the registry and
assembles a working build environment.

Change-Id: Ifa70f53aca9d1bf2fadf178a331f46c1efca90ff
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
2015-04-21 11:37:48 +00:00
M. Moellney
915768f986 Adding qmake doc details for generating rc files
The qmake documentation was missing details about when rc files
are autogenerated under Windows.

A new section about windows rc files is added in
"Platform Notes".

Some hints are added in section VERSION.
Link to new "Platform Notes" section is added.
The VERSION example is extended, too.

Link to new "Platform Notes" section is added to RC_ICONS as
this is a rc file generator trigger, too.

The section "Building an Application" gets a link to the
"Platform Notes" and the system variable list was shortened
by all entries relevant to windows only rc files.

Many links to VERSION were not resolved by qdoc. Adds
explicit linkage.

Change-Id: Iacbc34d53a6bafa6e7658aaee8c751f32e978177
Reviewed-by: Leena Miettinen <riitta-leena.miettinen@theqtcompany.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
2015-04-15 10:33:25 +00:00
Maurice Kalinowski
50bf54c627 WinPhone: Re-invoke windeployqt in the MSIL directory
Visual Studio copies all files to be deployed into the MSIL directory
and then invokes MDILXapCompile on it, which checks for managed code and
translates it into native code. The problem is that all entries of the
package will be copied into the MSIL directly, losing the subdirectory
structure (for instance for plugins). Hence we recreate the directory
structure manually by invoking windeployqt a second time.

Task-number: QTBUG-41753
Change-Id: I3d99cbc531bbe883f87b45de37ba71d93472c042
Reviewed-by: Oliver Wolff <oliver.wolff@theqtcompany.com>
2015-04-09 11:06:50 +00:00
M. Moellney
fa1b2dc4a0 Fix qmake generating bizarre msvc /VERSION values
The msvc_nmake and msvc_vcproj generators deduced the exe/dll header
version number from the VERSION variable in a "bizarre" way:
VERSION=1.2.3.4567 was converted to /VERSION:1.234567.
But a minor number beyond 65535 is not accepted by the linker.
This fix deduces the major and minor from the major and minor of
VERSION: VERSION=1.2.3.4567 leads to /VERSION:1.2.

In addition, a new variable is introduced: VERSION_PE_HEADER.
With this variable, legacy pro files that rely on the bizarre
behavior can re-create it:
VERSION=1.2.3.45 and VERSION_PE_HEADER=1.2345 lead to the old
result: /VERSION:1.2345 by just taking the VERSION_PE_HEADER to
overrule the new behavior.

Task-number: QTBUG-44823
Change-Id: Ie093ade83290c098fe2b2a429ce5d6ed6dc750ea
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
2015-04-08 15:47:12 +00:00
Oliver Wolff
32849f4997 qmake: Rework dll deployment
QT_INSTALL_LIBS is not the right place to check for Qt dlls, as they
cannot be found there in a non-developer build. In order to be able
to find the dlls and make adding dll locations easier for the user,
QMAKE_DLLS_PATHS was added. On Windows, the variable points to Qt's
bin directory by default.

Task-number: QTBUG-44960
Change-Id: Ie4e5beeaadee798a055599387e842d7c0502c27a
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
2015-04-07 12:55:24 +00:00
Liang Qi
ce9519593a Merge remote-tracking branch 'origin/5.4' into 5.5
Conflicts:
	mkspecs/android-g++/qmake.conf
	qmake/generators/unix/unixmake2.cpp
	src/gui/image/qimage_conversions.cpp

Change-Id: Ib76264b8c2d29a0228438ec02bd97d4b97545be0
2015-03-31 10:03:31 +02:00
Tor Arne Vestbø
94ea7b7132 Add XCTest logger backend to QtTestLib
Will be active when running test apps through Xcode's 'test' action,
and reports QtTestLib test objects and functions to Xcode as XCTest
cases.

This allows running tests on both iOS Simulator and iOS devices from
the command line, through xcodebuild, without relying on any 3rd party
tools. It also integrates Qt test failures and passes into the Xcode
IDE, which may be useful for closer investigation of test failures.

The feature is limited to Xcode 6.x.

Change-Id: I33d39edbabdbaebef48d2d0eb7e08a1ffb72c397
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@theqtcompany.com>
2015-03-27 16:53:43 +00:00
Joerg Bornemann
49217e9657 add DISTFILES support for Visual Studio projects
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>
2015-03-27 13:38:15 +00:00
Maurice Kalinowski
e6602a38e1 WinRT: Fix documentation for manifest capability description
0c7241cc contains the wrong identifier for device capabilities. This has
been updated in a previous commit, but documentation was not properly
updated.

Task-number: QTBUG-45098
Change-Id: I300a2ea19ebdf8a1aaed492a1bdf24b9af2bd60a
Reviewed-by: Leena Miettinen <riitta-leena.miettinen@theqtcompany.com>
Reviewed-by: Andrew Knight <qt@panimo.net>
2015-03-20 10:35:43 +00:00
Tor Arne Vestbø
2094903a14 Xcode: Completely filter out environment variables in build log
17d690952b missed a few instances that should have showEnvVarsInLog = 0.

Change-Id: I8f1106426447670b0057aeb421efc09bf117e969
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@theqtcompany.com>
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@theqtcompany.com>
2015-03-16 10:37:04 +00:00
John Brooks
3f8e3373e1 Fix QMAKE_INFO_PLIST regression with relative paths
In de5553aa, qmake was fixed to resolve QMAKE_INFO_PLIST based on the
current pwd to fix QTBUG-21267. This fix was lost as part of 8c138054
in 5.4.

This fixes the error:

"WARNING: Could not resolve Info.plist ..."

when using qmake for shadow builds on OS X.

[ChangeLog][qmake][OS X/iOS] Fixed QMAKE_INFO_PLIST path resolution
for shadow builds

Change-Id: Icb42b2b3a44856f9b9a86a008081a3353951640d
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
2015-03-13 03:48:29 +00:00
Joni Poikelin
fe59121d24 Remove MSVC created lib file for shared library in distclean target
MSVC creates .lib file when ever dll with exports is built. Remove
this file too in distclean target.

Task-number: QTBUG-44685
Change-Id: I84ecb57626926b5bce06a200ff2b705fd2117686
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
2015-03-12 13:07:26 +00:00
Tor Arne Vestbø
17d690952b iOS: Use Xcode project to filter out environment variables instead of shell
Xcode has a setting for script phases to filter out the environment
variables, so we don't need to use grep.

Change-Id: Ica1c64321385ab3e3b47cf6f8f4d4191bd963540
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@theqtcompany.com>
2015-03-09 13:01:12 +00:00
Oswald Buddenhagen
95d385466d centralize setup of shell-related variables in spec_post.prf
it makes no sense to let every spec do that separately, as it's fixed
by the generator+shell.

putting it into a file which is loaded regardless of the spec also
allows us to remove the hardcoded fallbacks from qmake.

if somebody overrode the values in their spec for some weird reasons,
they'll need to override spec_post.prf.

shell-{unix,win32}.conf are now dummies and print warnings.

Task-number: QTBUG-37269
Change-Id: I66c24fb4072ce4d63fdbfc57618daa2a48fa1d80
Reviewed-by: Jochen Seemann <seemann.jochen@gmail.com>
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
2015-03-06 19:08:40 +00:00
Tor Arne Vestbø
08f6af608a Xcode: Generate scheme manually, instead of letting Xcode do it
A scheme is required to be able to run tests through Xcode, even from the
command line, but Xcode doesn't auto-generate the schemes until launched
as an application. Xcode also auto-generates schemes for all our targets,
but we only need one for the primary application target.

Change-Id: Ia42f3825aba3ffde3be93be55e165d6284434853
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@theqtcompany.com>
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@theqtcompany.com>
2015-03-06 19:01:43 +00:00
Maurice Kalinowski
dce3721f90 WinRT: Update documentation on icon handling
ecf6e34efefcedbff0a457ed4b5e0f4e5d096b37 introduced new values to
specify icons in the manifest.

Change-Id: I8f0cc9790ffd2f50ed2008bc8bab053b3db4965e
Reviewed-by: Leena Miettinen <riitta-leena.miettinen@theqtcompany.com>
Reviewed-by: Topi Reiniö <topi.reinio@digia.com>
2015-03-05 10:28:01 +00:00
Oswald Buddenhagen
9d4641f56e add autotest for qmake parser
Change-Id: Ib3dcb6c1aaac20ca6a3bc0dc564e16ec7bd152db
Reviewed-by: Daniel Teske <daniel.teske@theqtcompany.com>
2015-02-25 13:55:12 +00:00
Oswald Buddenhagen
9113e5677c catch missing closing braces outside any scope as well
it doesn't make a whole lot of sense, but it's possible to create
braced blocks which have no semantic meaning.

Change-Id: Id55dfdee1aa3fade507cbd1eb34bdffcd7eb6bff
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
2015-02-25 13:55:03 +00:00
Oswald Buddenhagen
b7e839fbbd don't make an even number of bangs almost entirely invisible
otherwise we'd silently accept this nonsensical code:
  !!defineTest(foo) {}

Change-Id: I66b59c8a89852c6451ce8d7269a3dc66a53e3b1f
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
2015-02-25 13:55:01 +00:00
Oswald Buddenhagen
73c84fb32b be more strict about bogus operators
we now warn about the pointless ones, and error out in cases that
already were semantically bogus.

Change-Id: Ifd80014af0fc53e3cc42561c4270d1dca234568f
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
2015-02-25 13:54:58 +00:00
Oswald Buddenhagen
7dcc2b3246 make some messages less ambiguous
Change-Id: I6032fdc1c1e6b1fb852da09e47990de03966fa3c
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
2015-02-25 13:54:55 +00:00
Oswald Buddenhagen
bec885380a don't write pointless TokAnd at start of control scopes
a colon after else/for is non-AND-ing, i.e., it's no logical operator,
but "punctuation". therefore, putting an operator into the token stream
is bogus. it didn't hurt execution, so it went unnoticed, but it still
wasted some bytes and cpu cycles.

Change-Id: If5578074257feed299bda1630bf0dfe72eb395ae
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
2015-02-25 13:54:53 +00:00
Oswald Buddenhagen
bb26d1da00 factor out putOperator()
Change-Id: I1b01e36e15dc93fc4e37597b66841d7102fa6b0d
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
2015-02-25 13:54:51 +00:00
Oswald Buddenhagen
d800ac64d3 move parseError() call into bogusTest()
they come always in pairs (with one exception).

Change-Id: Ia2f69a8776bd7146ff2fb18d13cc6bb5b2c71139
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
2015-02-25 13:54:48 +00:00
Oswald Buddenhagen
704aec4623 make all parse errors invalidate the parse result
they have been semi-warnings for a long enough time now.

Change-Id: I3fffd63f7b44b30d2dc18cdcd74221c10e98399d
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
2015-02-25 13:54:46 +00:00
Oswald Buddenhagen
962c7ab6f8 always flush scopes on closing brace
without that, both the lines
  cond1 { cond2: VAR = val }
and
  cond1 { cond2: else: cond3 }
would yield two bogus errors: first an excess brace, and then a missing
one.

Change-Id: I8609106c1ad387577deec2077e2ce13507ac4d3f
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
2015-02-25 13:54:43 +00:00
Oswald Buddenhagen
da1aaed059 don't write pointless TokFuncTerminators into the stream
we are transforming "magic" function calls into other structures. past
that point it's wrong to keep the function argument list terminator in
the token stream. this went unnoticed, because in this context it was
equivalent with the expected value list terminator (which was simply
never reached).

Change-Id: I3dc6719273ce9d663db867f355eba682ba6ccf2c
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
2015-02-25 13:54:40 +00:00
Frederik Gladhorn
34b14a8472 Merge remote-tracking branch 'origin/5.4' into 5.5
Conflicts:
	examples/xml/htmlinfo/simpleexample.html
	examples/xml/rsslisting/rsslisting.cpp
	qmake/generators/win32/msbuild_objectmodel.cpp
	src/3rdparty/harfbuzz-ng/src/hb-private.hh
	src/corelib/global/qlogging.cpp
	src/corelib/io/qstorageinfo_unix.cpp
	src/corelib/thread/qwaitcondition_unix.cpp
	src/gui/kernel/qguiapplication.cpp
	src/plugins/platforms/linuxfb/qlinuxfbintegration.cpp
	src/testlib/doc/src/qt-webpages.qdoc
	tests/auto/other/qaccessibility/tst_qaccessibility.cpp

Change-Id: Ib272ff0bc30a1a5d51275eb3cd2f201dc82c11ff
2015-02-24 21:02:08 +01:00
Oswald Buddenhagen
217f21c479 remove nonsensical path stripping
we strip the path a few lines above already.

Change-Id: If7524b8e744d2f1ab2f5a6920097d25671449829
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
2015-02-17 18:27:54 +00:00
Oswald Buddenhagen
0812b5b318 untangle handling extra compiler .clean member
it's easy when it is a simple list of files (or just absent). however,
it can also contain expandos, and in this case it's definitely not a
good idea to treat it partly (but not really) as a single shell command.

Change-Id: I7ef32a56f276b06579fc7094357c5f7612eaf205
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
2015-02-17 18:27:51 +00:00
Oswald Buddenhagen
6c4d8ee835 fix fixPathToTargetOS() nesting
first replaceExtraCompilerVariables(..., NoShell), then fix the final result.

Change-Id: If8cebeaa59f48d91b33b5a74e6a48a0d2d049643
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
2015-02-17 18:27:49 +00:00
Oswald Buddenhagen
5527411437 remove pointless fixPathToTargetOS() calls
it makes no sense to call it on paths that are fixified right before or
after, as fileFixify() calls it itself.

and verifyExtraCompiler() calls normalizePath() on its file argument.

Change-Id: I8fb21e129fd29428d1855de73483087842bc1bdd
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
2015-02-17 18:27:47 +00:00