Commit Graph

23143 Commits

Author SHA1 Message Date
Peng Wu
2af77ab826 winrt: remove the dead WP8.0 code from input context
Change-Id: I8db61b4db32052f64833767085f2ebc5f1cc5bcf
Reviewed-by: Andrew Knight <qt@panimo.net>
2015-04-09 10:30:35 +00:00
Friedemann Kleint
f932a85bd9 Windows: Fix dialog close button showing despite ~Qt::WindowCloseButtonHint.
Further restrict the condition under which the special window
flags for QTBUG-2027 apply.

Change-Id: I458c7c6bfb06820992b5a21820c0439fd2ce7d9d
Task-number: QTBUG-2027
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
2015-04-09 10:30:07 +00:00
Paul Olav Tvete
f3e405cb3b Fix logicalDotsPerInch when using devicePixelRatio
Qt does not support having different fontMetrics for different screens

Also add environment variable for overriding logicalDpi

Change-Id: I0baf73026d97fec590597ee304ad9fa119d7a328
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
2015-04-09 10:22:51 +00:00
Laszlo Agocs
2314286883 evdevtouch: Add hotplug support
Follow the exact same structure as evdevmouse and keyboard.

We must do monitoring via device discovery just like we do for keyboards and mice.
Otherwise the usage of touchscreens that connect via USB or can be turned on/off
independently from the board becomes troublesome.

Change-Id: I2de3b519e8d617b0612e5df486e481bbc09b9c8c
Reviewed-by: Andy Nichols <andy.nichols@theqtcompany.com>
2015-04-09 09:58:15 +00:00
Gatis Paeglis
65d2b6b4df Add missing event types in printXcbEvent
And replace Xlib define GenericEvent with
XCB define XCB_GE_GENERIC.

Change-Id: Ie82cb7f58b18fc0d253e4b7fd65495608df0a7d9
Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com>
2015-04-09 09:05:51 +00:00
Michal Klocek
aee9fef7dd Do not hardcode paths in eglfs-brcm test.
Let the specs decide about egl headers and egl lib
location.

Fixes yocto RaspberryPi build without proper
egl support.

Change-Id: I4c8d655673aa0b2043bc376486cfe436afb93e42
Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com>
2015-04-09 08:49:44 +00:00
Erik Verbruggen
24b3d82eff QStateMachine: move QState::finished() emision into method.
By moving the code for QState::finished() emission into a virtual
method which also receives the QFinalState that caused the emission,
subclasses can hook in and do some extra processing.

Change-Id: Id19947c09e196a0df4edb87d71b74b0600c78867
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@theqtcompany.com>
2015-04-09 08:42:06 +00:00
Friedemann Kleint
56d091a4ea QToolButton: Fix popup menu geometry in case of QGraphicsProxyWidget.
QDesktopWidget::availableGeometry(const QWidget *) returns the scene
geometry when the widget is embedded into a QGraphicsProxyWidget.
Work around by using the overload taking a point.

Task-number: QTBUG-38559
Change-Id: Ie630bda57e14648255015587a04e29b0de96bab7
Reviewed-by: Arnaud Bienner <arnaud.bienner@gmail.com>
Reviewed-by: Jørgen Lind <jorgen.lind@theqtcompany.com>
2015-04-09 08:30:12 +00:00
Friedemann Kleint
d984b07221 Guard QWidget::setStyleSheet() against invocation from destructor.
Task-number: QTBUG-45178
Change-Id: I3670d9cd9645155318b595d1324a3b3caf2352f6
Reviewed-by: Jørgen Lind <jorgen.lind@theqtcompany.com>
2015-04-09 08:30:02 +00:00
Thiago Macieira
bc00e6da84 QIconvCodec: fix compilation when NO_BOM is defined.
qiconvcodec.cpp:305:34: error: unused parameter 'cd' [-Werror,-Wunused-parameter]

Change-Id: I27eaacb532114dd188c4ffff13d330b64b4feaa6
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
2015-04-09 06:09:16 +00:00
Alex Trotsenko
7c149dd869 Prevent memory overgrowth while reading from a sequential device
After flushing the internal buffer, QIODevice::readAll() attempts
to read the device incrementally. On each iteration, the result buffer
size is increased by a constant value independently from the number of
read bytes. This lead to unreasonable growth of the buffer if these
additional conditions were met:

 - readData() requests new data from the device on every call;
 - highly loaded device provides at least one byte on each request.

Instead of constant resizing, keep the size of free block to avoid a
possible memory exhaustion.

Task-number: QTBUG-44286
Change-Id: I637e2d0e05bd900a1bb9517af2fe7d8038c75a35
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
2015-04-08 16:35:40 +00:00
Laszlo Agocs
db52d55fba Avoid leaking the QPlatformTextureList
Task-number: QTBUG-45395
Change-Id: I8fbdc5136d7d15b9c131d6b91186a1bf2645e4d4
Reviewed-by: Jørgen Lind <jorgen.lind@theqtcompany.com>
2015-04-08 16:26:37 +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
Allan Sandfeld Jensen
e63752e6bb Remove table of mostly null pointers
The patch moves the initialization of the format to format blend tables
to runtime, so we only have to explicitly set the values that are
not null. This removes most of the lines in qblendfunctions.cpp.

Change-Id: Ie017f380ff11cfb764a631cfea7626786731b5fb
Reviewed-by: Gunnar Sletta <gunnar@sletta.org>
2015-04-08 15:27:53 +00:00
Konstantin Ritt
5b5d25cc41 [QtFontFamily] Get rid of unused member
Change-Id: I8c70995767bfb5fdbd6e9e9464029beeccf41f53
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
2015-04-08 15:17:47 +00:00
Jake Petroules
00540a8345 Remove special handling for (DY)LD_LIBRARY_PATH in QProcess.
This provides the ability to pass a *real* clear environment to a
QProcess, rather than (DY)LD_LIBRARY_PATH always being copied over
from the current environment behind-the-scenes. This is important
to users because passing a truly clear environment is now possible.

[ChangeLog][Important Behavior Changes] (DY)LD_LIBRARY_PATH will
no longer "stick" in the process environment when starting a
QProcess. This means that if a QProcess is started with a clear
environment, it will not specially inherit (DY)LD_LIBRARY_PATH
from the parent process. This should not affect most applications,
but if the old behavior is desired, one can simply pass a clear
QProcessEnvironment with the (DY)LD_LIBRARY_PATH values added, to
the QProcess.

Change-Id: I51d1bc14905c5cc126fb02d91dddc2faade41a3c
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2015-04-08 15:13:27 +00:00
Friedemann Kleint
a21a24ee48 [QFontEngineFT::loadGlyph] Fix reversed condition.
Introduced by 237cb0d082
(Consolidate paths for fetchMetricsOnly cases).

Task-number: QTBUG-45444
Change-Id: Icd642c09490f1cfc5804313d60d467290ae599ba
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com>
2015-04-08 12:10:12 +00:00
Kai Koehne
a60571b370 QSaveFile: Fix permissions on creation
QSaveFile is intended to be a replacement for QFile, and should use the
same permissions for newly created files. QTemporaryFile however creates
new files with 0600 mask by default.

Fix this by making the mode_t argument QTemporaryFileEngine uses
configurable, and using 0666 for QSaveFile (like we do in QFile).

[ChangeLog][Important behavior changes] Files created by QSaveFile do
now have the same rights as files created by QFile. This also fixes a
regression in QSettings: In the Qt 5.4 series, new files created by
QSettings were only readable by the current user.

Task-number: QTBUG-44086
Change-Id: Ie1cc20e9f25c6e72e1bc9176490c419c27c5fc82
Reviewed-by: Leena Miettinen <riitta-leena.miettinen@theqtcompany.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
2015-04-08 07:48:17 +00:00
Laszlo Agocs
a715c6ceb8 Use the default fbo in Qt sense in blitFramebuffer
QOpenGLFramebufferObject::blitFramebuffer() passes 0 when no FBO is specified.
This goes against the rest of the framework where the default fbo is what
QOpenGLContext::defaultFramebufferObject() returns. This becomes significant
with QOpenGLWidget and on iOS.

Task-number: QTBUG-45328
Change-Id: Iaeb82cd3786ad395116679c9626bdcb10e93b4e3
Reviewed-by: Gunnar Sletta <gunnar@sletta.org>
2015-04-08 05:58:27 +00:00
Alex Richardson
f041757d7a Allow overriding ar binary in configure script by setting AR env var
Unlike all the QMAKE_* command variables it requires the arguments "cqs"
to be part of the variable. This means we need to append the arguments
for compatibility with autoconf.

Change-Id: I961e89d506612873ba1f9cbecff97c448e83a5a2
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
2015-04-07 19:35:13 +00:00
Marc Mutz
8780381532 QByteArray: begin()/end() are not \internal
Docs copied from corresponding QString functions.

Change-Id: Ia2b0f0521780246d82003a1fda539c132823b294
Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
2015-04-07 16:34:25 +00:00
Marc Mutz
dc6e964f63 docs: QString contains characters, not items
Change-Id: I479a731780dfce81e138d1aca950385437266763
Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
2015-04-07 16:34:06 +00:00
Thiago Macieira
22dbf6111d Remove unnecessary QDateTime::detach() function
Last commit changed QDateTime::d to be a QSharedDataPointer that
implicitly detaches on non-const operator->() calls. That means we no
longer need to explicitly call detach().

More than that, we should not do it, so we avoid checking the ref count
and try to detach on every use. To do that, in functions where the d
pointer was accessed more than once, I detach at the top and shadow the
"d" variable with a local plain pointer. We don't compile our sources
with -Wshadow, so this should not be a problem.

Change-Id: Ic5d393bfd36e48a193fcffff13b969c281c36d0c
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
2015-04-07 14:48:47 +00:00
Topi Reinio
2a6249c00a Doc: Qt Concurrent: Link to essential usage information
Functions under the QtConcurrent namespace used to be documented
as header files, using the \headerfile command. These documents
have been since converted to standard pages using the \page
command, and the reference documentation for these functions
now live in the namespace page only.

However, the former pages contain useful usage information and
code snippets, but they've not been linked to from anywhere.

This change links to these pages from the module landing page,
as well as from the function reference doc.

Change-Id: Ia750d72d12503cec96ee2c9e202dd561e548cb24
Task-number: QTBUG-28977
Reviewed-by: Venugopal Shivashankar <venugopal.shivashankar@digia.com>
Reviewed-by: Leena Miettinen <riitta-leena.miettinen@theqtcompany.com>
Reviewed-by: Sze Howe Koh <szehowe.koh@gmail.com>
2015-04-07 14:38:29 +00:00
Konstantin Ritt
491b746473 Fix build with -directwrite
There were several issues caught by GCC:
* deleting object of polymorphic class type which has non-virtual
  destructor might cause undefined behaviour
* comparison between signed and unsigned integer expressions
* 'GetUserDefaultLocaleName' was not declared in this scope
  (depends on WINVER >= 0x0600)

Change-Id: I39f2cc0d5e158f4d85377edd55e9f74a512c7303
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@theqtcompany.com>
2015-04-07 13:10:38 +00:00
Konstantin Ritt
3a845e4b4f Use QT_WARNING_.. instead of #pragma GCC diagnostic ..
Change-Id: I0bb55a7f1074f3b8d6fb681b1d4dab5105ae7569
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2015-04-07 13:09:48 +00:00
Konstantin Ritt
237cb0d082 [QFontEngineFT::loadGlyph] Consolidate paths for fetchMetricsOnly cases
Use GlyphInfo as a temporary buffer for storing the glyph metrics
and go through the same code for fetchMetricsOnly and !fetchMetricsOnly.

Change-Id: If8bb85056e5f09588cc3956b43dc51a54d5aecfe
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
2015-04-07 13:09:27 +00:00
Konstantin Ritt
550fb85b65 [QFontEngineFT] Move code around to improve readability (no-op)
Move some variables initialization closer to the usage context.

Change-Id: I0f1de0ddc9f0fbe3ec4a56455ccc14f9e8d94e5a
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
2015-04-07 13:09:00 +00:00
Konstantin Ritt
037ad03182 [QFontEngineFT] Avoid double-negation of info.x
Make it consistent with fetchMetricsOnly path.

Change-Id: I6a2d2568d5579255582217515a4e598722547c60
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
2015-04-07 13:08:02 +00:00
Konstantin Ritt
95d034a14f Introduce QQuaternion::fromDirection()
...which constructs a quaternion using specified forward and upward
directions, so that the resulting Z axis "faces" a given forward direction.

Change-Id: Ib77b8ab5c359a4880b0d946face87026acdc6f0b
Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
Reviewed-by: Michael Krasnyk <michael.krasnyk@gmail.com>
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
2015-04-07 13:07:48 +00:00
Konstantin Ritt
3fb6014ce7 [QFontEngineFT] Guarantee correct metrics for alphamap and its bounding box
...for both cached and non-cached modes, by disabling hinting
for transformed glyphs in loadGlyphFor().

Change-Id: I13766a653ebd72cbed0f5c38ca3536d042aed762
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
2015-04-07 13:07:40 +00:00
Konstantin Ritt
134c6db858 [QFontEngineFT] Consolidate .*lpha.*MapForGlyph() behavior
...and decrease code duplication.

Change-Id: I5eb3c0694dde9030405a3bd3d410ff9784ed7717
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
2015-04-07 13:06:55 +00:00
Marc Mutz
51028d1472 QQueue: unhide QList::swap(int, int)
Task-number: QTBUG-34197
Change-Id: I0b405ab0fabff8852b2705d651848fbff74fc4c2
Reviewed-by: Kai Koehne <kai.koehne@theqtcompany.com>
2015-04-07 13:05:50 +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
Morten Johan Sørvig
f8cb4ee310 Add tests for detach on setDevicePixelRatio()
Change-Id: I414ff0b794e0202a7f8c931b59b973cb1e7dc148

Reviewed-by: Paul Olav Tvete <paul.tvete@theqtcompany.com>
2015-03-24 11:22:36 +00:00
Topi Reinio
b929006513 qdoc: Use the title instead of plain name when listing groups
When listing group nodes, for example, with \annotatedlist command,
QDoc created a link with the plain name (the string that was passed
to \group command as parameter) as the link text.

This change makes QDoc use the group \title, if one exists.

Change-Id: I30b7f9eefc60c12f67b1e579bbc4c5cebe84474b
Task-number: QTBUG-45420
Reviewed-by: Martin Smith <martin.smith@digia.com>
2015-04-07 11:49:13 +00:00
Morten Johan Sørvig
6cd32e218d Add tests for detach on setDevicePixelRatio()
Change-Id: I414ff0b794e0202a7f8c931b59b973cb1e7dc148

Reviewed-by: Paul Olav Tvete <paul.tvete@theqtcompany.com>
2015-03-24 11:22:36 +00:00
Timur Pocheptsov
9b134f4e72 Add Q_UNUSED for parameter (OS X)
Ifdefs exclude the code on OS X, but there is still unused parameter
and annoying compiler (either warning or error, depending on ...).

Change-Id: I913c25b4f96ebe275a6b1d15873bccf4aebe9e7a
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@theqtcompany.com>
2015-04-07 10:39:46 +00:00
Alex Trotsenko
add3c14a28 QAbstractSocket: fix some 64-bit issues in debug code
Change-Id: I78b307b2841353f84b033a815035436ec3eef3b0
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2015-04-07 06:42:42 +00:00
Morten Johan Sørvig
0b6bfe8c44 Add tests for detach on setDevicePixelRatio()
Change-Id: I414ff0b794e0202a7f8c931b59b973cb1e7dc148

Reviewed-by: Paul Olav Tvete <paul.tvete@theqtcompany.com>
2015-03-24 11:22:36 +00:00
Thiago Macieira
9eb0b09abc Removed unused code on QT_STRING_UCS4 macro
This isn't defined or used anywhere else.

Change-Id: I9a75ad8521ae4e5cbbe5ffff13d2356883b82dbc
Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
2015-04-05 19:40:04 +00:00
Morten Johan Sørvig
d9437af198 Add tests for detach on setDevicePixelRatio()
Change-Id: I414ff0b794e0202a7f8c931b59b973cb1e7dc148

Reviewed-by: Paul Olav Tvete <paul.tvete@theqtcompany.com>
2015-03-24 11:22:36 +00:00
Kai Koehne
1db3de6a1e QVLA: Add operator= for initializer lists
Add a dedicated operator=(std::initializer_list) that
first resizes the QCLA, and then replaces the elements
one by one.

This should be usually faster than creating a temporary
QCLA and then copying it, except for the case where the
new array does not fit into the allocated stack - but this
is IMO nothing to optimize for.

Task-number: QTBUG-45041
Change-Id: I147d6d01186b1ca3c635b2c8365d8f6e638ce6fe
GPush-Base: 08de3113051e1289f0de0651ec5647c9ee6feb27
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2015-04-04 15:48:13 +00:00
Allan Sandfeld Jensen
c51240ca75 Optimize fetching pixel values for SSE2 bilinear sampling
Most of the CPU time was spending in fetching pixel values instead of
calculating the bilinear sample. The access to vectors unions turns
out to be very slow, and should be avoided. This patch removes the
uses of vector,int array union in the bilinear sampling for SSE2.

Change-Id: Ie765a80963c4899db59a583ea9a59d15e05f2b13
Reviewed-by: Kai Koehne <kai.koehne@theqtcompany.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2015-04-04 15:42:22 +00:00
Morten Johan Sørvig
22b5e178e5 Add tests for detach on setDevicePixelRatio()
Change-Id: I414ff0b794e0202a7f8c931b59b973cb1e7dc148

Reviewed-by: Paul Olav Tvete <paul.tvete@theqtcompany.com>
2015-03-24 11:22:36 +00:00
David Faure
5aa40e5b00 QComboBox: also adjust size on model reset, with AdjustToContents
When the size adjust policy is QComboBox::AdjustToContents, the combobox
sizeHint was recalculated on dataChanged, rowsInserted, rowsRemoved,
and setModel, but not when the model was reset. This led to truncated
items in the combobox when models are filled asynchronously.

Task-number: QTBUG-5413
Change-Id: I3456c327d680dfffa58d6dcb26c79456c67b2a32
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
2015-04-04 12:24:44 +00:00
Sérgio Martins
ddb0628181 Fix BlackBerry build.
BlackBerry SDK uses gcc 4.6 which supports nullptr, but by default
it uses the dinkum C++ library, which doesn't support nullptr_t.

Change-Id: Ifa95029a9bfa4dc2fc064db5d7a67012e95ac0e2
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2015-04-04 11:55:23 +00:00
Morten Johan Sørvig
558c9caddd Add tests for detach on setDevicePixelRatio()
Change-Id: I414ff0b794e0202a7f8c931b59b973cb1e7dc148

Reviewed-by: Paul Olav Tvete <paul.tvete@theqtcompany.com>
2015-03-24 11:22:36 +00:00
Saytgalin Alexander
1bd07b0293 Always release surfaces when application is suspended or hidden.
It is needed to recreate surfaces and to redraw when application is
resumed because on some devices when the application is suspended
Android destroys the surfaces.

Change-Id: I8934e94af038b4ecf116d93aea223ad040b0bff1
Task-number: QTBUG-45019
Reviewed-by: BogDan Vatra <bogdan@kde.org>
Reviewed-by: Sergey Galin <s.galin@2gis.ru>
2015-04-04 09:12:03 +00:00
Richard Moe Gustavsen
d3277bdf02 QComboBox: open popup on touch release if QStyleHints has setFocusOnTouchRelease()
If we give focus to the combobox on touch release, we need to await opening
the popup until touch release as well. Otherwise we might end up showing
a popup for an unfocused combobox.

Especially on iOS, there is a strong coupling between focus object and
popup menus, which means that we effectively require the combobox to gain
focus before it can show the popup.

Change-Id: Ifb7ba091bb39b77f325cdbf61e00ab3e8ff2e522
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@theqtcompany.com>
2015-04-04 08:47:06 +00:00