Commit Graph

28740 Commits

Author SHA1 Message Date
Ulf Hermann
972580accd Call disconnectNotify() when disconnecting a QMetaObject::Connection
In all other forms of disconnecting this is done. We also know the
signal index, so there is no reason not to do this.

Change-Id: Ic8b042cd8f45dbff74b42ee30c384a84bef78b20
Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
2016-07-12 16:53:05 +00:00
Friedemann Kleint
ff11c363b1 Remove SSL includes from qhttpnetworkconnection_p.h
On Windows, qsslcontext_openssl_p.h pulls in an unsanitized
windows.h, causing the infamous min/max macros to be defined,
requiring a #define NOMINMAX in qhttp2protocolhandler.cpp.

This in turn breaks the MinGW developer build since that has
NOMINMAX globally defined:

access\qhttp2protocolhandler.cpp:40:0: error: "NOMINMAX" redefined [-Werror]

Remove the include, adding missing forward declarations and include
directives to the source files.

Change-Id: Ic1c2c711d87599b15ad6e2d87eae7153a44ace47
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@theqtcompany.com>
2016-07-12 12:36:34 +00:00
Robin Burchell
ca9ed9619f Improve performance of Qt::mightBeRichText by using QStringRef
I noted this taking around 1% of QtQuick Text creation with a few simple bindings
which is quite considerable, so hopefully improvements here will add up gradually.

Also add a benchmark measuring changes:

                  Test                 |      From      |       To       |        Details
+--------------------------------------+----------------+----------------+-----------------------+
  mightBeRichText:br-invalidspace      | 14466.00 instr | 10563.00 instr | -26.98% FASTER! :)
  mightBeRichText:br-nospace           | 18581.00 instr | 14635.00 instr | -21.24% FASTER! :)
  mightBeRichText:br-space             | 18470.00 instr | 14377.00 instr | -22.16% FASTER! :)
  mightBeRichText:documentation-header | 16336.00 instr | 12992.00 instr | -20.47% FASTER! :)
  mightBeRichText:empty                | 2618.00 instr  | 2618.00 instr  | more or less the same
  mightBeRichText:invalid closing tag  | 11102.00 instr | 7159.00 instr  | -35.52% FASTER! :)
  mightBeRichText:no tags              | 12503.00 instr | 8581.00 instr  | -31.37% FASTER! :)
  mightBeRichText:simple               | 17316.00 instr | 14074.00 instr | -18.72% FASTER! :)
  mightBeRichText:simple2              | 14394.00 instr | 10745.00 instr | -25.35% FASTER! :)
+--------------------------------------+----------------+----------------+-----------------------+
             Overall result            |                                        -201.81% :)

Change-Id: I1817a69959d176b381bcbf27b72bb751885c3e9b
Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
2016-07-11 12:30:31 +00:00
Gabriel de Dietrich
d737a8ed54 QCoreWlanEngine: Remove calls to deprecated API in macOS
Change-Id: I606c865e980b8ab8a8027c4b6d322c0bbd05c992
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@theqtcompany.com>
Reviewed-by: Lorn Potter <lorn.potter@canonical.com>
2016-07-11 11:30:56 +00:00
Andy Nichols
2e176e3d10 QWidgetBackingStore: Fix build with QT_NO_OPENGL
A define moved out of the #ifndef QT_NO_OPENGL scope.

Change-Id: I41c943b97f165b5171581e01f3a4b2d3fb25747e
Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
2016-07-11 11:28:33 +00:00
Thiago Macieira
cba3378732 Make QDateTime's default constructor not allocate memory on 32-bit
Commit fb498a6519 introduced the short
datetime optimization, but it accidentally removed the optimization from
Qt 5.7 that made QDateTime's default constructor not allocate memory.
Instead of bringing back the Q_GLOBAL_STATIC that was used, let's use
the short date time optimization on 32-bit too.

The CanBeSmall constant remains false on 32-bit systems, but judicious
non-use of that constant in a few functions allows 32-bit systems to use
the optimization. We still say that any date/time value is "unsmall", as
there's no sense in calculating whether the date is between 1970-01-01
and July 14 of the same year.

Change-Id: I413d458307aa46469b80fffd145a9db0325c08cc
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
2016-07-09 02:17:30 +00:00
Thiago Macieira
d16ba63f5c QTimer: add support for <chrono> functions
[ChangeLog][QtCore][QTimer] Added support for std::chrono duration
objects for QTimer methods, like QTimer::singleShot and
QTimer::setInterval.

Change-Id: I87e17314d8b24ae983b1fffd14536e24d5b12424
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
2016-07-09 02:17:17 +00:00
Timur Pocheptsov
b2c0f9713c HTTP2 protocol handler
Add HTTP2 support in QNAM - QHttp2ProtocolHandler + aux. classes.

[ChangeLog][QtNetwork] Added support for HTTP/2 protocol

Task-number: QTBUG-50956
Change-Id: I3a119cfbb1fb3118d9003225f5e54b46ae2829b6
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
2016-07-08 16:22:32 +00:00
Alex Trotsenko
6f61cfc338 QNativeSocketEngine/Win: fetch connection parameters only once
Exclude sections of code that relate to 'Connecting' state from being
executed in 'Connected' state.

Change-Id: I5e7d28b74dcd9c87c37b4871cc90afc200b2dab9
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
2016-07-08 13:50:06 +00:00
Oswald Buddenhagen
0492f4a4c5 rectify opengl configuration under windows
angle is an implementation of es2 and thus autodetected if es2 is
requested.
but this also means that it is actually *not* mutually exclusive
with dynamicgl - quite the opposite. express that sensibly in the
build system. this implies that we will now get sensible messages
from configure if angle is not detected while building with dynamicgl.

furthermore, this simplifies the handling of defaults, removes the
unnecessary case in checkAvailability() (checkAngleAvailability() is
always called directly), fixes the complaint on winrt if gles2 is
disabled, and avoids redundant checks for the purpose of obtaining
an error message.

Change-Id: I3373f0ad7d5484d1bac8dbde3f8ee6fca89ebcb8
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
2016-07-08 13:03:27 +00:00
Lars Knoll
a64d1d5499 Fix log message
Change-Id: I0192d3a3073038d98e72ce7abd3bf1ecae002989
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
2016-07-08 13:03:20 +00:00
Oswald Buddenhagen
4a52b5cb33 fix command line option for avx512
we need to map it to the avx512f feature.

Change-Id: I565b5bd256003aa6f80180b0e06c04bad8ea68af
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
2016-07-08 13:03:13 +00:00
Lars Knoll
a15b9d3910 Fix compile-examples command line option
Map it to the correct feature name.

Change-Id: I7e2128e66a575ae7e562018b766d25f85c64c961
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
2016-07-08 13:03:02 +00:00
Gabriel de Dietrich
c85fdc68d1 Remove qt_mac_execute_apple_script
Not only these functions are never called, one of
them also calls deprecated APIs.

Change-Id: I172043b7059316e029a853e48e7f22f08e2a8b69
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@theqtcompany.com>
2016-07-07 17:35:14 +00:00
Anton Kudryavtsev
e91c412391 QStringRef: add chop()
chop() was missing in the API.

Change-Id: I15af86c8f218cf159b8ce19bbeb2ffa6201f98cf
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
2016-07-07 15:12:27 +00:00
Shawn Rutledge
a13398d0f0 QPointerUniqueId::numeric() is const
Obviously it returns a copy of the number, and anyone who has a
const QPointerUniqueId variable will need this accessor to be const.

Change-Id: Ib224a4dfca5d0f71f2fa4f6f6197b2fb2cdb9410
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
2016-07-07 11:40:25 +00:00
Maurice Kalinowski
753aed83c6 winrt: Fix launch as background task
In case a background task wants to use Qt, winmain is not invoked.
Neither can we create the same objects like winmain do (as in creating a
application view). Instead runOnXamlThread uses the thread pool enabling
the event loop to run successfully.

Task-number: QTBUG-54396
Change-Id: Ia3ba23ed0fd6cd7d2ed8d43675e88073b9aec8b5
Reviewed-by: Andy Shaw <andy.shaw@qt.io>
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
2016-07-06 07:20:16 +00:00
Kevin Funk
bec2fc19fd Windows/QProcess::startDetached(): Don't always create console
Make QProcess::startDetached() behave exactly like QProcess::start() when it
comes to the behavior of whether to create a new console window or not.

Before this patch, QProcess::startDetached() created a new console window
(CREATE_NEW_CONSOLE flag of CreateProcess()) unconditionally. Instead, use the
same rules for deducing whether to show an console window or not as
QProcess::start().

[ChangeLog][QtCore][Platform Specific Changes] QProcess::startDetached()
changed behavior on Windows: it no longer creates a new console window
unconditionally, instead it passes the same creation flags to CreateProcess
as QProcess::start().

Task-number: QTBUG-53833
Change-Id: I0e3d4b161fb5cb94cfbbd21fb4edb8417ab543fd
Reviewed-by: David Faure <david.faure@kdab.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
2016-07-06 07:00:13 +00:00
Thiago Macieira
9e49778380 Fix/adapt the uses of {to,set,from}Time_t in the qtbase source code
Move those to the equivalent {to,set,from}SecsSinceEpoch(), except for
the cases that did QDateTime::currentDateTime{,Utc}().toTime_t. Those
are best implemented with QDateTime::currentSecsSinceEpoch().

Change-Id: Ib57b52598e2f452985e9fffd145a366c92cfda20
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
2016-07-06 06:28:13 +00:00
Mike Krus
829e421ddc UIKit: Handle UIPress events
On tvOS the system will deliver UIPress events for touch gestures on the
remote such as pressing up, down, left, or right, as well as for the
dedicated hardware buttons, such as menu or play/pause. We deliver
these as Qt key events when possible (the siri, volume and home button
can't be handled).

Change-Id: Id4bd4960e3036a7b8b67cf5b9e9d653f233dc4af
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@theqtcompany.com>
2016-07-06 05:34:42 +00:00
Oleksandr Tymoshenko
c9366c10bd Added bsdmouse and bsdkeyboard input plugins for FreeBSD
bsdmouse implements basic and extended level of psm(4) protocol. On
extended level only x and y coordinates are used. Plugin specification
is device filename, default value is /dev/sysmouse.

bsdkeyboard implements keyboard input for raw terminal mode. Plugin
specification is device name, normally /dev/ttyv[0-9], if not provided
STDIN file descriptor is used.

[ChangeLog][Platform Specific Changes] Added bsdmouse and bsdkeyboard
input plugins for FreeBSD.

Change-Id: I3c7b6f5cc22b4f1e405d56efc8b7ef2daa1dac74
Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
2016-07-05 18:28:48 +00:00
Lars Knoll
9a1af81ae1 Remove unused command line options
-embedded is dead since 187ea846a6, and -arch is obsolete since ba6952b28
(both 2012).

Change-Id: Ife107c4f2ea26f62ce675544b7ad5c06630f5631
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
2016-07-05 15:49:07 +00:00
Lars Knoll
0e1efdf549 Remove the -target command line option
This was only used to specify XP as a target which is
not supported on 5.8 anymore. Clean up all associated
special handling in the mkspecs and pro files.

This effectively reverts change 10a0ac75.

Change-Id: I420d73002912989f1a5be961a2d09277ec4a4425
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
2016-07-05 15:49:03 +00:00
Lars Knoll
8ca247e287 Get rid of the qt_no_framework setting in the CONFIG variable
It's only used in one place, where it's actually not required either.

Change-Id: I5766d2b5f0c1083bbd58a9b9fb07cc67bbd46a94
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
2016-07-05 15:48:58 +00:00
Lars Knoll
27be7c764e Make more configure tests work on Windows
Change-Id: I87d775de7b6d790a44bbc3c9598d617ad57d9d4c
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
2016-07-05 15:48:53 +00:00
Lars Knoll
7331d22c6f Add qtsqlglobal.h and qtsqlglobal_p.h
The new modular configuration system requires one global
header per module, that is included by all other files in
this module.

QtSql already had such a header, but its name (qsql.h) was
not in line with what's being used in all other modules. So
add a qtsqlglobal.h header, deprecate qsql.h and turn it
into a a forwarding header to that new global header file.

Change-Id: Ibaeb95b008cf08ba062cbfe8a3f4d3bf79294390
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
2016-07-03 07:56:23 +00:00
Lars Knoll
8af681c107 Add qtnetworkglobal.h and qtnetworkglobal_p.h
The new modular configuration system requires one global
header per module, that is included by all other files in
this module.

That header will later on #include the configuration file
for Qt Network. For now it defines the Q_NETWORK_EXPORT
macro for this library.

Change-Id: I9c45d425baf881c431ed71fd457c7feb2c123855
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
2016-07-03 07:56:17 +00:00
Lars Knoll
e8fe65205c Add qtguiglobal.h and qtguiglobal_p.h
The new modular configuration system requires one global
header per module, that is included by all other files in
this module.

A similar scheme and naming convention is already being used
for many other modules (e.g. printsupport, qml, quick).

That header will later on #include the configuration file
for Qt Gui. For now it defines the Q_GUI_EXPORT macro for
this library.

In addition, add a private global header, qtguiglobal_p.h,
that can later on include the private config header for
Qt Gui for things we don't want to export to the world.

Change-Id: Id9ce2a4f3d2962c3592c35e3d080574789195f24
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
2016-07-03 07:55:57 +00:00
Thiago Macieira
5fa3e2a82e tst_QDBusConnection: add a test for a regular signal connection
Since it's a slot with the same name as an existing one, this test also
verifies that QDBusConnection::connect() can properly distinguish
between overloads.

This test moves the receiver out of the main class, just to be sure that
we don't leave connections behind when tests are run (like
slotsWithLessParameters did).

Change-Id: I87e17314d8b24ae983b1fffd1453ad81952c49aa
Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
2016-07-02 16:38:02 +00:00
Thiago Macieira
169f1beaf5 Move QElapsedTimer to src/corelib/kernel
It's really a kernel functionality, as it implements really low-level
functionality and it's used by the event dispatcher. It was in tools/
only because QTime is.

QDeadlineTimer is also coming to kernel/.

Change-Id: Ifea6e497f11a461db432ffff14491c6d9b839eb0
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
2016-07-02 07:51:45 +00:00
Anton Kudryavtsev
6662919ecd CoreLib: use QStringRef to optimize memory allocation
Replace substring functions that return QString with
corresponding functions that return QStringRef where
it's possible.

Create QString from QStringRef only where necessary.

Change-Id: Id9ea11b16947220cd27787c0b529de62d10b6c26
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
2016-07-02 07:39:06 +00:00
Anton Kudryavtsev
2185b2f054 ItemModel: Extract Method isVariantLessThan()
As noted in comments, QSortFilterProxyModel and QStandardItemModel
duplicate code to compare QVariant; extract this into a separate method
they can share.

Since there is only one common suitable header for both files,
the method was placed in qabstractitemmodel.cpp

Change-Id: I82bb4a2d6084059b8a70a8d556c16f1a29f4f686
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
2016-07-02 07:38:00 +00:00
Lars Knoll
98526119c6 Handle the -[no]make command line arguments in qmake
Change-Id: I979f648b4301152e4a13ffe90aa05d9ded8556c8
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
2016-07-02 06:18:55 +00:00
Lars Knoll
e9ba9609f1 Determine the set of modules to skip in qmake
Change-Id: I421f50e5944962eae41700180ee49a916a2a023d
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
2016-07-02 06:18:48 +00:00
Lars Knoll
c167308c5d Fix handling of -v/-verbose command line flags to configure
This is not a feature that should get propagated to other
configure runs, so simply hardcode support for it.

Change-Id: Ieb1c33243154b3583e91061d3592d7e87c36f402
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
2016-07-02 06:18:40 +00:00
Lars Knoll
3114237877 Call arch test through the new qmake based configure system
Detect host and target architecture from within qmake, and set
QT_ARCH accordingly.

Change-Id: I30255f88c7645d197bd07355a1dff02b377cbbe8
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
2016-07-02 06:18:32 +00:00
Thiago Macieira
d72ac3f35f moc: remove _MSC_EXTENSIONS #define
Because we obviously don't support Microsoft's extensions in C++. This
is required because some MS headers have code that isn't proper C++,
like iso646.h:

 #if !defined(__cplusplus) || defined(_MSC_EXTENSIONS)
  #define and   &&

Change-Id: Ib57b52598e2f452985e9fffd145a3d4ec28e773d
Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
2016-07-02 02:02:34 +00:00
Frederik Gladhorn
5b66f4ba40 Allow passing configure opts with two dashes again
The regexp were capturing too greedy:
$$replace(c, "^--?(.*)", "\\1") changes --developer-build to
-developer-build. Do not accidentally capture the second dash.

Change-Id: I19586a1678fc3bf3f450ec31f5bd7e71e9514b34
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
2016-07-01 21:17:53 +00:00
Liang Qi
200fdd96f0 Merge remote-tracking branch 'origin/5.7' into dev
Conflicts:
	configure
	configure.json

Change-Id: Iba032d9a29c273da2585632bc6e22bbafb961808
2016-07-01 13:21:29 +02:00
Lars Knoll
cb260c6c7f Harmonize directwrite handling between the configures
There is a config test for DirectWrite we should run, so
use that instead of autoDetect=false in the new system.
Also, don't add the feature to the CONFIG variable in
configure.exe, as it's not used that way anyway.

Change-Id: I9266ccda8405adce765eac8f0435d723c6bc6f1f
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
2016-07-01 07:32:12 +00:00
Lars Knoll
9fb56cfaae Correctly detect the MSVC compiler
But without a version number for now.

Change-Id: I0a976ba463cff6812faf85de03a6ad003ea582f5
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
2016-07-01 07:32:07 +00:00
Fredrik de Vibe
2f4ce3b778 Removed needless null check.
The pointer 'receiver' has already been checked and dereferenced at this
point, so a static_cast will not turn it into a null pointer, hence the
check is not needed.

This was caught by Coverity, CID 159389.

Change-Id: I1772110e968c2216dc71d406ddb157b1ae930cb0
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@theqtcompany.com>
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@qt.io>
2016-06-30 19:35:39 +00:00
Andy Nichols
6bdc549abe Remove unused function loadIntegration from EGLFS
There was a leftover function for loading EGLFS device integrations
from the time before device integrations were plugins.

Change-Id: I88606d14f773f4cf9f68e0341044e8281ed86442
Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
2016-06-30 10:53:56 +00:00
Błażej Szczygieł
e2665600c0 xcb: Send expose event while shrinking windows
Send synthesized expose event while shrinking the QWindow. This fixes
the regression which can break some applications which need the paint
events while shrinking the QWindow.

Added auto test.

Task-number: QTBUG-54040
Change-Id: Iaa992abba67f428237fa12c6cae56592b8fcadb0
Reviewed-by: Gatis Paeglis <gatis.paeglis@qt.io>
Reviewed-by: Louai Al-Khanji <louai.al-khanji@qt.io>
2016-06-30 06:51:48 +00:00
Milla Pohjanheimo
699f9ecc20 Blacklisting a flaky imageAt() autotest on RHEL 7.2
tst_QAbstractTextDocumentLayout::imageAt() is flaky and is blacklisted

Task-number: QTBUG-53648
Change-Id: Ia9b0c8934a82d7518ff9d9e1538d995ab73feedb
Reviewed-by: Heikki Halmet <heikki.halmet@qt.io>
2016-06-30 06:33:58 +00:00
Anton Kudryavtsev
25f040820c QAbstractItemView: avoid search through QIndexEditorHash
Search's implicit cast (QModelIndex to QPersistentModelIndex) is slow.
Use cheap pre-test to avoid when we can.

Use method from 1d859ef805

Change-Id: Ic3d06869de717963bad6357abb99f3e025642078
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
2016-06-30 04:57:16 +00:00
Andy Nichols
bd03048aa6 Fix VNC platform plugin building on i386
There was some leftover code that used qt_conv16ToRgb from Qt 4.

Change-Id: If34df00c828ae749d59824ad055e0e82928af9a8
Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
2016-06-29 15:00:17 +00:00
Anton Kudryavtsev
5c9e393117 QString: add some missing overloaded operator+
to keep compatibility with and without
using QT_USE_QSTRINGBUILDER.

Change-Id: If8218fe0693cdb7ad1250beb272e0e7c356bbf4a
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
2016-06-29 14:58:25 +00:00
Liang Qi
592da13664 Merge "Merge remote-tracking branch 'origin/5.6' into 5.7" into refs/staging/5.7 2016-06-29 12:50:54 +00:00
Liang Qi
f27d8b9f57 Merge remote-tracking branch 'origin/5.6' into 5.7
Change-Id: If6ba05867e7c98159e1b94ff71923e8b36bdbccb
2016-06-29 10:10:22 +02:00