Commit Graph

16318 Commits

Author SHA1 Message Date
Stephen Kelly
b7cb0613f0 QMetaType: Fix equality comparison of type-erased iterators.
Task-number: QTBUG-33997

Change-Id: I0d4da562540df0e3732769881ba124cb980f6b82
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
2013-12-13 09:28:38 +01:00
Stephen Kelly
0da7e0fa8f QMetaType: Fix copy of type erased iterator
Behavior differs depending on whether the iterator is a value_type*,
or a different class entirely. Ensure that the correct behavior is
used when copying.

Task-number: QTBUG-33997

Change-Id: Ib6db2a3c4a5aa861b851833a7f0ecb855a3e828f
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
2013-12-13 09:28:30 +01:00
Stephen Kelly
4449148395 QMetaType: Rename template type of type-erased iterator operations.
This struct is a specialization for the case that the const_iterator
is a pointer to the value type. Reflect that in the type name.

Change-Id: I0a4ac03840658056285080860baec8313746c71c
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
2013-12-12 19:12:28 +01:00
Frederik Gladhorn
63611cff87 Merge remote-tracking branch 'origin/release' into stable
Change-Id: I0cd3b1b33e6d9bec729d941b06aeeb3d21851820
2013-12-12 18:01:28 +01:00
Kai Koehne
70c70aef7e Make QTemporaryDir file name more random
qrand() returns a number between 0 and RAND_MAX, which is only
guaranteed to be bigger than 32767. Dividing it repeatedly means
that the last bytes are always 0.

[ChangeLog][QtCore][QTemporaryDir] Fixed bug in QTemporaryDir name generator that dramatically
reduced randomness of the name.

Change-Id: I90613a652e6384296aed827e2714fe63cd8797ee
Reviewed-by: Rafael Roquetto <rafael.roquetto@kdab.com>
Reviewed-by: Tim Jenssen <tim.jenssen@digia.com>
2013-12-12 13:57:01 +01:00
ABBAPOH
4d8a12904a Check if device is opened before trying to create image handler.
Change-Id: I60f1f6890fdd73e489da4aab9928370163f55f58
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: aavit <eirik.aavitsland@digia.com>
2013-12-12 12:02:29 +01:00
Tor Arne Vestbø
37f99502f9 iOS: Fix failing assert in QUIView displayLayer()
In layoutSubviews we take the root viewcontroller position into account
when determening the new QWindow geometry, but we were missing this logic
in displayLayer, and would assert if the in-call statusbar was visible.

Since we don't really need the position of the window in displayLayer,
we change the assert to only check the size of the exposed area, which
is independent of the position of the root viewcontroller.

Change-Id: I774b8d9b075518e729f488a789b3a9e584c3f4d3
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@digia.com>
2013-12-11 13:40:14 +01:00
Marc Mutz
7fef5fe293 Stabilize tst_qabstractitemview
Attempt to fix

 FAIL! : tst_QAbstractItemView::task200665_itemEntered() Compared values are not the same
    Actual (spy.count()): 0
    Expected (1) : 1
    Loc: [tst_qabstractitemview.cpp(1292)]

which might have been introduced by removing the absolute qWait(200) in favor
of qWaitForWindowExposed() in afe8e368, so trying to compensate with a
QTRY_COMPARE.

Change-Id: Id437acd810b54e005daaf66ffffd4dd586075ab6
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
2013-12-11 09:55:39 +01:00
Robin Burchell
2f284d3632 Move notification of layout change up from QApplication to QGuiApplication.
QGuiApplication-using things (like QtQuick) need to know about this, too -- this
makes QGuiApplication::setLayoutDirection actually work.

Task-number: QTBUG-21573
Change-Id: I2d2ac7dc07f11be5c7e501a3575b1d0978d8ac31
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Jan Arve Sæther <jan-arve.saether@digia.com>
2013-12-10 18:36:25 +01:00
Joerg Bornemann
7009843ae3 QProcess/Win: allow child processes to change modes of the stdin pipe
To be able to call SetNamedPipeHandleState on stdin in a child
process, we must create a read-end pipe handle with the
FILE_WRITE_ATTRIBUTES flag set.
This can't be done with CreateNamedPipe but only with CreateFile.
Therefore we're creating the handles for the child process always
with CreateFile now. Besides, it's conceptually cleaner to have the
server handle of the named pipe in the calling process.

[ChangeLog][QtCore][Windows] Fix regression from Qt4 in QProcess.
It wasn't possible anymore to alter pipe modes of stdin in child
processes.

Task-number: QTBUG-35357

Change-Id: I85f09753d0c924bdc8a6cef1ea5dbe6b2299c604
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
2013-12-10 18:36:25 +01:00
Friedemann Kleint
a134b57152 Windows: Show context menu on mouse release.
Introduce a hint to QPlatformTheme to control the behavior.

Task-number: QTBUG-35231

Change-Id: Ia28e153a8dd3f1931321a222d8906ca87166ed62
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
2013-12-10 16:46:22 +01:00
Peter Hartmann
aa3eaf9d2e QUdpSocket auto test: disable Socks5 over UDP for new test server
... because they fail on the new test server. This commit can be
reverted once the Socks5 socket engine is fixed.

Task-number: QTBUG-35490
Change-Id: I85635d4b44d26168d40a56b7a121693297564f0f
Reviewed-by: Tony Sarajärvi <tony.sarajarvi@digia.com>
Reviewed-by: Richard J. Moore <rich@kde.org>
2013-12-10 15:14:22 +01:00
Peter Hartmann
7eecbb0718 SSL: blacklist ANSSI intermediate certificate
... because it was used to operate a man-in-the-middle proxy.

Task-number: QTBUG-35474
Change-Id: Ic7f19708b278b866e4f06533cbd84e0ff43357e9
Reviewed-by: Richard J. Moore <rich@kde.org>
2013-12-10 15:14:22 +01:00
Friedemann Kleint
1171175a56 Add QFileDialog::ShowDirsOnly to manual dialog test.
Task-number: QTBUG-35396

Change-Id: I6ccb59d6bd3857aea66911e03200f28d093e57b4
Reviewed-by: J-P Nurmi <jpnurmi@digia.com>
2013-12-10 15:14:22 +01:00
Dominik Holland
639b4e85ae Disable the eglfs input handlers by Environment variable
Added a Enironment variable to make it possible to disable the
automatic installation of EVDEV input handlers.

This is needed if you want to use your own generic plugin instead,
which also uses evdev

Change-Id: I17d47008c10999bf918db62a22a3b6a38d7abb80
Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
2013-12-10 13:44:31 +01:00
Caroline Chao
cb2549740e Styles: Fix upRule used instead of downRule
Change-Id: Icd157fa522836fab9128322f98b2916cfff35c61
Reviewed-by: J-P Nurmi <jpnurmi@digia.com>
2013-12-10 08:56:39 +01:00
Jürgen Hunold
fed439c243 Add mkspec for clang using libc++ on Linux.
libc++ is an alternative stdlib implementation for clang.
See http://libcxx.llvm.org/ for further details.
The library is enabled by adding -stdlib=libc++ to the command line.

Change-Id: I07d09cbb69b59b579d3754c99d717d2ac6d44d67
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2013-12-09 22:23:59 +01:00
Thiago Macieira
98663a8311 Remove unused -sse (CFG_SSE) option
This is a left-over from the cleanup of MMX/3dNow!/SSE support, which we
no longer have in Qt.

Change-Id: I48388710a499bddb518ae3c2b8a4ad989482f58c
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
2013-12-09 17:28:18 +01:00
Thiago Macieira
a071ba629b Cascade detection of SSE3 support and up
If SSE2 isn't supported, then SSE3 can't be either. Onwards and upwards
for SSSE3, SSE4.1, SSE4.2 and AVX. The test for AVX2 was already there.

Task-number: QTBUG-24773
Change-Id: I005258db52d8abcd407a99b8ebcc23cdea8e3d9f
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
2013-12-09 17:28:18 +01:00
Orgad Shaneh
6d8b84e8d5 GitIgnore updates
* ANGLE artifacts
* qfeatures

Change-Id: I3cb8f78bf02119233f115ec53d536c05dd9776e7
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
2013-12-09 17:28:18 +01:00
Thiago Macieira
e6799c6e33 Remove unused function "quadraticRoots"
qbezier.cpp(122): warning #177: function "quadraticRoots" was declared but never referenced

Change-Id: I590f59ed6e41462d0a14a9239adb8bd0acbeeae4
Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com>
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@digia.com>
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
2013-12-09 17:28:18 +01:00
Marc Mutz
a115fdbe02 QWidgetTextControl: drop some actions when QT_NO_CLIPBOARD
Drop the Cut, Copy, and Copy Link Address actions from the context menu
for QT_NO_CLIPBOARD builds. This mirrors what QWidgetLineControl already
does.

Change-Id: Icd6e92c044a11d336fb8d7fbf54b826712bd240e
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
2013-12-09 15:40:18 +01:00
Marc Mutz
3c7231a980 QMetaStringTable: make ctor explicit
Recent commit 105d10de introduced the QMetaStringTable(QByteArray) constructor,
but failed to mark it as explicit.

The argument, the class' name, is not an equivalent representation of a
string table, so mark the constructor explicit.

Change-Id: I2f141969400b98d3253283bd6fb0b9d18f2d53b3
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
2013-12-09 15:40:18 +01:00
John Layt
bd1a609aef QPrintDialog - Fix Cups printer setup sequence
First set up the selected output format, printer and page size, and then
setup the selected job options.  This ensures all values are correctly
setup for the requested format and printer as not all settings may be
able to persist across the change in output format or printer.

Change-Id: I67f261f4e3be479a9018139633886ee8e570f42a
Reviewed-by: Andy Shaw <andy.shaw@digia.com>
2013-12-09 15:40:18 +01:00
Mitch Curtis
b0f83f2284 Simplify linking to different jpeg libs.
This makes it slightly more obvious which compiler should be used with
which.

Task-number: QTBUG-23119

Change-Id: Ie3e5cf995d686bfa846902a040668716c8b5f526
Reviewed-by: Andy Shaw <andy.shaw@digia.com>
2013-12-09 15:40:18 +01:00
Sérgio Martins
fbc6240cc6 Windows: Fix corner case where frameless windows would cover the taskbar.
In commit 0c936ca83c we fixed the case
where the window was maximized programmatically, but if the window gets
restored by clicking on the taskbar we don't get to set WithinMaximize
flag, since we immediately get the WM_GETMINMAXINFO request from Windows.

To reproduce the problem, run tests/manual/windowflags, remove frames,
maximize, minimize, and restore by clicking on the taskbar.

Task-number: QTBUG-8361

Change-Id: I8a7cf4fccbb2c3dac5f570848501ac1e8d2c2307
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
2013-12-09 15:40:18 +01:00
Joerg Bornemann
29b0a565e9 fix Windows CE comments
Change-Id: Ib42c456c236f59727dddd6a111dfe0946fff1aef
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
2013-12-09 11:57:53 +01:00
Andy Shaw
d9fd2085f9 Reinitialize the printer after changing the custom paper size
Task-number: QTBUG-34276
Change-Id: Ie382c39cb7b7b8307fcd1130702ca97e80e4a4f5
Reviewed-by: John Layt <jlayt@kde.org>
2013-12-08 20:25:48 +01:00
John Layt
1698369924 QPageSetupWidget - Fix copying of printer settings
Don't copy the dialog settings to the QPrinter before the Print button
is pressed, in case the Cancel button is pressed instead.  The settings
already get copied in the right place.

Change-Id: I84d0053b450cf5839bf1a879af013f305a8fd377
Reviewed-by: Andy Shaw <andy.shaw@digia.com>
2013-12-08 16:54:55 +01:00
John Layt
77cd033e44 QPrintDialog - Fix setting of PageOrder
The print dialog was setting the PageOrder on the QPrinter as soon as
the check box was toggled and not when the Print button was pressed,
meaning the change is not forgotten when Cancel is pressed.

Change-Id: I19637b7efacfb5388c70d2e7d9d05a05ecc5b2ea
Reviewed-by: Andy Shaw <andy.shaw@digia.com>
2013-12-08 16:54:43 +01:00
Thiago Macieira
5bf67f5f41 Don't check the Qt version across modules in -developer-build
Instead of enforcing the check, we'll simply trust developers to do the
right thing. For one, it's useful to mix libraries during testing
(regression testing, git bisects, etc.). For another, Qt developers are
faced day-to-day with binary incompatibility issues anyway, so this
check is mostly superfluous.

If there's one commit we could be sure that isn't breaking binary
compatibility, that's the "Bump Qt version" commit. And yet that's the
one that would cause the fatal to trip...

Change-Id: I8965f764a6ca1b2d125b42bce7ac6b27e3afc8ac
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@digia.com>
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
2013-12-07 21:17:40 +01:00
Thiago Macieira
8be546d107 Revert "Move the glxfbconfig configtest to qpa and rename it to glx"
This reverts commit a2d3b7c991. That
commit broke -opengl es2 builds on Linux desktops (when GLX is
available).

/usr/include/GL/gl.h:162:17: error: conflicting declaration ‘typedef double GLdouble’
qopengl.h:97:17: error: ‘GLdouble’ has a previous declaration as ‘typedef GLfloat GLdouble’

Change-Id: Id5f48c05803be1a8c03eeffca139b80e9a85a0eb
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2013-12-07 21:17:07 +01:00
Simon Hausmann
105d10dea9 Fix quadratic behavior in QMetaObjectBuilder when writing string table
QHash::key() is O(n) and we're calling it n times. That can make repeated
calls to the meta object builder very slow, as for example QQmlPropertyMap
when inserting properties repeatedly.

Fortunately this is easy to fix, as the value in the hash map is also the
index, so we can simply iterate over the hash once. With the exception of
the class name, which we have to treat specially to ensure that it is always
the first entry in the string table.

Task-number: QTBUG-32720
Change-Id: Ic954c45c454107feee83216131f601cc69d4c63b
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
2013-12-06 18:18:44 +01:00
Simon Hausmann
313a74cc4a Fix QtDeclarative and QtQml co-existence part three ;(
Unfortunately the QObject destroyed callbacks for QtQml and QtDeclarative can't
be called in sequence, because if the QQmlData has the ownsMemory bit set, then
the destroyed callback will delete the QQmlData, and the sub-sequent call to
the destroyed callback of qml1 will try to dereference the QQmlData's first bit
(ownedByQml1), which is already destroyed.

This patch fixes that by simply sharing the assumption of the first bit
indicating module ownership (QtQml vs. QtDeclarative) also to qtbase and using
it to distinguish between which destroyed callback function to call.

Task-number: QTCREATORBUG-10273

Change-Id: I2773a31a3e9b3a1c22d1c1f33b2f29f3296cb3cf
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
2013-12-06 17:38:26 +01:00
Sérgio Martins
0c936ca83c Windows: Don't cover the taskbar when maximizing frameless windows
Brings Windows QPA on par with other platforms.

[ChangeLog][Windows] Don't cover the taskbar when maximizing
frameless windows.

Task-number: QTBUG-8361
Change-Id: Iba35132f697cb7379650a4c883b616c5c2023d4c
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
2013-12-06 13:52:34 +01:00
Allan Sandfeld Jensen
7972553aca Update ChangeLog with new QImage formats
Change-Id: I4023edc29e81a8c29c3259c6024a5a20eda1aeec
Reviewed-by: Jani Heikkinen <jani.heikkinen@digia.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2013-12-06 11:32:16 +01:00
Friedemann Kleint
7cfe7c1982 Windows command line parsing: Do escape backslash.
This will break network paths passed as command line arguments.

Introduced by 4ff6951550 .

Task-number: QTBUG-35432
Task-number: QTBUG-30628

Change-Id: Ice9ce15275ef69e9e9e82daf5a303e7c56294368
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
2013-12-06 11:32:10 +01:00
Kurt Pattyn
862e11cd19 Correct compiler warnings for sign conversion
qstrlen() returns a uint. When assigned to an int, the compiler warns
about sign conversions. Because these calls are used within templates,
the code appears in user generated code, and hence the warnings cannot
be suppressed by the -isystem directive. Using the -Werror flag, makes
the user code fail.

[ChangeLog][QtCore] Fixed sign conversion warnings in code using QMetaTypeId.

Change-Id: Ib7603679d6526467f8cbb9d7bcf5f56c6af47ceb
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2013-12-06 10:20:19 +01:00
Marc Mutz
03affacaa3 QCommandLineParser: pluck some low-hanging fruit re: exception safety
Make
  QCommandLineParser::add{Help,Version}Option()
  QCommandLineOption::setDefaultValue()
  QCommandLineOptionPrivate::setNames()
have transaction semantics: either they succeed, or they change nothing.
It's trivial to provide this guarantee, so do it.

Add a test for the surprising property that setDefaultValue("") resets
defaultValues() to an empty QStringList instead of one that contains
the empty string.

Change-Id: I61623019de3c7d2e52c24f42cc2e23ec5fddc4da
Reviewed-by: David Faure <david.faure@kdab.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2013-12-06 08:44:31 +01:00
John Layt
689152e7c1 QTimeZone: Fix isValidId()
Fix isValidId() which was failing valid IDs because it was splitting
name parts by \ instead of /.  it was also rejecting offset from UTC
formats names.  Add unit tests.

Task-number: QTBUG-35025
Change-Id: I4d23d2e54f4a9fac9afcc4eff0a02d6f4af21385
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2013-12-06 01:36:09 +01:00
Mitch Curtis
b9c8073230 QSpinBox: allow positive values to be entered with the '+' prefix.
The code was there to do it, but it was using minimumValue instead of
maximumValue to test if the '+' should be allowed.

Task-number: QTBUG-20691

[ChangeLog][QtWidgets][QSpinBox] Entering positive values with the '+'
prefix is now allowed.

Change-Id: Iff62d073e350dc9a33b7e06e4b492048c74437c4
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
2013-12-05 23:57:53 +01:00
Thiago Macieira
eb7b140d6d Fix bad CSS color: O (the letter) is not a valid hex digit
Found by: Tomaz Canabrava <tcanabrava@kde.org>
Change-Id: Ia1b5b00819cf4b145d1384aacbd54ed9a23aa6a3
Reviewed-by: Dirk Hohndel
Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
2013-12-05 23:57:51 +01:00
Thiago Macieira
13673ced44 Replace the qCpuHasFeature function with a macro
We want to make sure that there's a constant propagation from the static
variable that is filled in with the current code-generation options.
With most compilers in debug mode, we'd carry dead code. With MSVC, even
inlining is really bad even in release mode, and it doesn't perform
constant propagation even with __forceinline.

Change-Id: I7a95ff6622b864771243990bb5e205b2df0c33fc
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
2013-12-05 23:57:47 +01:00
Frederik Gladhorn
af47adede0 Merge "Merge remote-tracking branch 'origin/release' into stable" into refs/staging/stable 2013-12-05 19:53:16 +01:00
Frederik Gladhorn
733ace5a7a Merge remote-tracking branch 'origin/release' into stable
Conflicts:
	configure
	mkspecs/macx-ios-clang/features/default_post.prf
	tests/auto/widgets/widgets/qmenu/tst_qmenu.cpp

Change-Id: Iaba97eed2272bccf54289640b8197d40e22f7bf5
2013-12-05 17:42:33 +01:00
Andy Shaw
47efa9213d Protect implementation of QNativeGestureEvent against QT_NO_GESTURES
The definition and usage of QNativeGestureEvent had already been
protected against QT_NO_GESTURES but the implementation had been missed
out before.

Change-Id: Ie039e08257ad5eb7705342e4248b904f6ceca8df
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
2013-12-05 16:40:06 +01:00
David Faure
d270bd8673 QTextEngine: fix layouting of inline objects in right-aligned tabs.
(same thing for center- and delimiter-aligned tabs)

The width of the inline object wasn't taken into account, the code in
QTextEngine::calculateTabWidth only looked at glyph widths.

Change-Id: I303a6561c67870ff2094a685698e642fc1b53b12
Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@digia.com>
2013-12-05 16:40:06 +01:00
Carsten Munk
d443eff5b6 Fix radial gradient shader compilation for OpenGL ES 2.0.
Change highp to mediump. This qualifier is ignored on desktop, and
mediump should be sufficient elsewhere.

Task-number: QTBUG-35353
Change-Id: I79f0ed88717d45dada5dcb781e75b10e72db4bd0
Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com>
2013-12-05 16:40:06 +01:00
Nico Vertriest
eaff48d362 Doc: Moved Books SQL Example documentation
Moved qdoc and image file to correct qdoc folder.
Added brief and ingroup statements to books.qdoc.

Task-number: QTBUG-34749

Change-Id: I5806ffd6f116cccf10238e3e1a9fc627ad0e93a9
Reviewed-by: Topi Reiniö <topi.reinio@digia.com>
2013-12-05 14:56:29 +01:00
Nico Vertriest
998e6386f0 Doc: Fixed broken link to General Qt Requirements
Link fixed for OpenSSL

Task-number: QTBUG-34749
Change-Id: Ic72858c730400124fb3f09d887c827d93500338f
Reviewed-by: Topi Reiniö <topi.reinio@digia.com>
2013-12-05 14:55:56 +01:00