Commit Graph

20804 Commits

Author SHA1 Message Date
Thiago Macieira
6336ae831d Enable the latest versions of GCC, Clang and ICC with -Werror
Tested with GCC 4.9, Clang from XCode 5.1 and ICC 15 beta.

Clang 3.5 (pre-release) cannot compile qtdeclarative yet with -Werror
due to invalid C++ code there that calls member functions on null
pointers.

Change-Id: Ic2845371a1899716985bc0813dfb820fa418e207
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2014-10-31 19:18:01 +01:00
Tor Arne Vestbø
8cce08fbf9 iOS: Make sure we update hints and platform data on IM enable/disable
Change-Id: If4d9c9c769b598a3194a7cd5bbe5c74e7650694b
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@digia.com>
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
2014-10-31 14:42:55 +01:00
Olivier Goffart
08b1afc8f4 Mark QMetaMethod and related constructor as constepxr
qtdelcarative's qquickaccessibleattached.cpp contains now some static
instance of QMetaMethod.  Marking the constructor as constexpr,
let GCC to remove call to the constructor at load time.

Change-Id: Ic5ab7db0d06caa08f15d65d3bb5f22a34a111fee
Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@digia.com>
2014-10-31 14:14:27 +01:00
Jędrzej Nowacki
f0b7abf2ef Lower QVariant::userType call count
We know that type id can't be changed, let pass this information to the
compiler.

Change-Id: I105b460417288b84250a954571c247608976f8f7
Reviewed-by: Stephen Kelly <steveire@gmail.com>
2014-10-31 13:39:33 +01:00
Friedemann Kleint
e76b0c05f2 Windows: Create touch device in initialization.
Previously, the device was delay-created, which is a problem
if its type is to be used for determinining the pan gesture type.

Task-number: QTBUG-40461
Change-Id: I2dee3d7a3786a0fdf0a9b2b9e174dd121697ab44
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
2014-10-31 13:26:36 +01:00
Allan Sandfeld Jensen
7245599a8c Handle mounts under /run
We shouldn't excluded all volumes under /run since some distos will
mount filesystems there. Instead we should exclude all filesystems with
the type "tmpfs" that /run has, and rpc_pipefs that is mounted below
/run. Tmpfs" is excluded for all UNIX systems since the BSDs have
a similarly named filesystem.

Change-Id: I03fdac515c0bfb1b824b2e3eae1022dd699c0998
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2014-10-31 13:26:27 +01:00
Timur Pocheptsov
85ea2434b1 Cocoa plugin - fix a resource leak
The patch 916dfcb827 while fixing one problem,
introduced another - leaking CGImage.

Change-Id: I08db6ea9fa97ae3489a0bfa1f93e0d18f3671885
Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
2014-10-31 13:05:37 +01:00
Giuseppe D'Angelo
41ba4b3956 QShapedPixmapWindow: do not leak the backing store
Change-Id: Id7cc8cbbcd62c546055d525473f90d2bad0c144a
Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
2014-10-31 06:15:32 +01:00
Thiago Macieira
c28045b118 Fix warnings about size conversion in QList
Because difference_type is 64-bit on 64-bit systems, there's a
downconversion warning from MSVC and possibly other compilers when it
gets passed to functions taking simply int.

Task-number: QTBUG-41092
Change-Id: I46a710810f4a57b8b84c4933f419a1f1fdf6bb5a
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2014-10-31 03:57:30 +01:00
Thiago Macieira
5368e44a86 Autotest: synchronize with the peer before emitting more signals
Several of the unit tests request that the peer emit more than one
signal, but only handle one. The rest of the signals stay queued in the
socket and will be delivered at the next test, causing it to fail often.

This doesn't happen in the tests with the bus. There, we don't receive
the extraneous signals due to AddMatch/ReceiveMatch on each signal
individually and the synchronous nature of the emission (the signals
have already been emitted by the next AddMatch and cannot match it).

Task-number: QTBUG-42145
Change-Id: I743a0553074972042fca46b76db5d9e7b3209620
Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@digia.com>
2014-10-31 03:57:24 +01:00
Thiago Macieira
d0ed6dc146 Report the system error on why chmod(2) failed in XDG_RUNTIME_DIR
This is a very rare occurrence: if the user is the owner of the
directory, the user can chmod(2), and we already checked that the user
is the owner. However, chmod(2) can still fail on read-only fs and on
hardened systems.

Task-number: QTBUG-41735
Change-Id: I8f8bac763bf5a6e575ed59dac55bd265e5b66271
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
Reviewed-by: David Faure <david.faure@kdab.com>
2014-10-31 03:57:19 +01:00
Thiago Macieira
fc2fcacfcc Don't always chmod the XDG_RUNTIME_DIR
Since the current user is the owner of the dir, we'll get 0x7700 as
permissions, not just 0x700. With the wrong check, we were always doing
an unnecessary chmod.

Task-number: QTBUG-41735
Change-Id: Ib1fc258fef4bf526baa9c71201f9b78d36f5454f
Reviewed-by: David Faure <david.faure@kdab.com>
2014-10-31 03:57:02 +01:00
Thiago Macieira
85da1625e4 Attempt to make QFile I/O 64-bit safe
Use qint64 wherever possible. The linear buffer is never requested to
allocate that much memory (always limited), but at least we ensure we're
not dropping bits where we shouldn't.

Windows's POSIX compatibility layer is never largefile enabled, so it is
always necessary to chunk large reads and writes. On Unix, this will
be rare, unless someone passed -no-largefile to configure, for some
weird reason.

Unfortunately, this is not testable, unless we can allocate a buffer
with 4 GB or more in size. The test for this would be to open a file we
know to be small, then try to read 4 GB + 1 byte. If everything works
correctly, we'll read the full file; if there was a truncation, we'd
read one byte.

Change-Id: If3ee511bf1de17e0123c85bbcaa463b9972746ce
Reviewed-by: Kai Koehne <kai.koehne@theqtcompany.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2014-10-31 03:56:11 +01:00
Jørgen Lind
f91b81ca39 Remove executable mode on qwidget_window.pro
Change-Id: Ibb522af33e8490719010af441cce712bdc7a71bf
Reviewed-by: Paul Olav Tvete <paul.tvete@digia.com>
2014-10-31 02:23:56 +01:00
Thiago Macieira
9150e04b17 Import the FreeBSD strtoXX functions
Obtained from:
http://freebsd.googlecode.com/git-history/4658f9721d395818ba760a79b1cb0b54957d4576/lib/libc/stdlib/strtoull.c
http://freebsd.googlecode.com/git-history/4658f9721d395818ba760a79b1cb0b54957d4576/lib/libc/stdlib/strtoll.c

Changes:
 - remove the #includes and the SCCSID
 - rename from strtoxx_l to qt_strtoxx (merging the two functions)
 - remove __restrict
 - remove the locale_t parameter and use ascii_isspace instead of isspace_l

Change-Id: I1e522e12da90eb35eefcf4025102dc11b22c60a5
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
2014-10-30 22:49:51 +01:00
Friedemann Kleint
0630c82bd0 Add manual test for touch events.
Unlike qtouchevents, this provides a touch area which logs its
events and devices.

Task-number: QTBUG-40461
Change-Id: Iaaa3589dd692caf8c7078f5ed2ff1e8b2322a369
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
2014-10-30 21:35:44 +01:00
J-P Nurmi
4387c5d6af QWindowsStyle: fix CE_ComboBoxLabel text color
CE_ComboBoxLabel was relying on a font color / painter pen set
by CC_ComboBox. This change ensures that CE_ComboBoxLabel has
correct color when CC_ComboBox and CE_ComboBoxLabel are drawn
independently.

Change-Id: Id548d831fdde5885bc7c157d55de6235ef3f0a56
Task-number: QTBUG-41702
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
2014-10-30 21:29:45 +01:00
Dyami Caliri
f3fb787a32 OS X: fix CFString leaks in mime classes
Some CFStringRefs created with CFStringCreate* methods were not being
released. Using the QCFString helper class to perform auto release.

Change-Id: I36d15c0d35118524089e99ea3cd53c41342d6308
Reviewed-by: Jake Petroules <jake.petroules@petroules.com>
2014-10-30 21:23:37 +01:00
Dyami Caliri
dd6876f3fd QCocoaPrintDevice: fix bad CFRelease
CFRelease should be called IFF PMPrinterCopyDescriptionURL succeeds

Change-Id: Id289aea3a4e3da397dae4062319256a043538597
Reviewed-by: Jake Petroules <jake.petroules@petroules.com>
2014-10-30 21:23:10 +01:00
Fawzi Mohamed
af5f6e35b6 xcodegenerator: use a copy resource phase if possible
Since commmit 0127962e47 the
PBXResourcesBuildPhase is used only for ICONS, because the old
behavior of using it when target path is not given differed from
the documentation and behavior of the makefile generator by using
Contents/Resources as target directory when targeting osx.

The PBXResouceBuildPhase optimizes png, compiles xib or asset catalogs
and copies the rest.
The advantage is that it makes it easy to add resources to the bundle,
the only problem is that the target directory is always the resource
directory.

The copy operation currently used does not compile resources, which
makes adding .xib (for the Launch File required to support iphone 6)
and asset catalogs difficult.

So we restore the old 5.3 behavior for ios, and use the build
resources phase when possible on osx (target Contents/Resources).

On osx this still implies a difference between the makefile
generator and the xcode generator: only the latter compiles resources.

Change-Id: Id1853693e88fc46562b044efdea2bf5f9da2c98c
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
2014-10-30 14:03:50 +01:00
Lars Knoll
1487a93e46 Fix a possible use after free
Found by coverity. The cachedIcon can be deleted
when being inserted into the icon cache (in QCache::insert).
So copy it to icon before trying to insert it into the cache.

Change-Id: I5ed13c0c7ecb8f8f13285ca5d06237493dbea479
Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
2014-10-30 13:46:42 +01:00
Laszlo Agocs
848d29cca3 Raspi: default platform plugin is eglfs
Not wayland. Use the default of eglfs coming from linux_device_pre.conf.

Qt 5.4 includes QtWayland and the platform plugin from there may get built
unexpectedly. The result is that the Pi setup that worked with 5.3 and eglfs
stops functioning.

Task-number: QTBUG-40538
Change-Id: If894c7ddd7b40a22272797d94ce1a545b7ab43f2
Reviewed-by: Louai Al-Khanji <louai.al-khanji@theqtcompany.com>
Reviewed-by: Andy Nichols <andy.nichols@digia.com>
2014-10-30 13:44:29 +01:00
Kai Koehne
a5c624622b Fix compiler warning in securesocketclient example
The warning was introduced in a133cea2 .

Change-Id: Ia8180b6c7d83f57cba79519bf4c0e3bf97966c16
Reviewed-by: Richard J. Moore <rich@kde.org>
2014-10-30 10:52:51 +01:00
Kai Koehne
68d4eec30b Use exising host / port for securesocketclient example
Change-Id: I321622b393ea1f452805299d74a28d12270b2238
Reviewed-by: Richard J. Moore <rich@kde.org>
2014-10-30 10:52:42 +01:00
Kai Koehne
6c58c9b3ec clang: Fix compilation with -openssl-linked
Fixes errors like

qsslsocket_openssl_symbols.cpp:111:6: error:
      unused function 'qsslSocketUnresolvedSymbolWarning'
      [-Werror,-Wunused-function]
void qsslSocketUnresolvedSymbolWarning(const char *functionName)
     ^
1 error generated.

Change-Id: I164518de583f080724ab9a7165c885602a1c6231
Reviewed-by: Richard J. Moore <rich@kde.org>
2014-10-30 10:52:32 +01:00
Kai Koehne
51ec20d93e Load default codecs even if custom QTextCodec has been registered
Task-number: QTBUG-40378
Change-Id: I33f1e92127972e1346993aa4e07731bf4b697667
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
2014-10-30 10:52:11 +01:00
Gabriel de Dietrich
c9b49612ff QMacStyle: Several fixes for QtQuick Controls on Yosemite
Some offsets differ between QWidgets and Controls. Therefore, we need
drawNSViewInRect() to know about the origin of the call.

Change-Id: I3bd165f94731f2b37423d86ed5d3c302a17d5ef5
Task-number: QTBUG-42067
Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
2014-10-30 10:49:30 +01:00
Gabriel de Dietrich
3f3955fec5 QMacStyle: Fix QCombobox offsets in Yosemite
Task-number: QTBUG-40833
Change-Id: Id3c3f4fd4f5c72cba844bf23f2e79ce0ea2b4a95
Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
2014-10-30 10:49:22 +01:00
Albert Astals Cid
a860500f8e Adapt the names in the documentation to the names used in the header
This is needed since the names of the header are the ones you have to use in the QML signal handlers to access the variables

Change-Id: I507e2ccc05a1fd2c5efd0bf4bef92ed33a186d95
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
2014-10-30 09:52:04 +01:00
Samuel Gaist
6ee73677b2 Correct QStandardPaths::DataLocation return value for iOS
Currently DataLocation returns the same value as DocumentsLocation which
doesn't fit the purpose for what should go in this directory. This patch
aims to correct that. On a side note, it will also be more inline with
OS X current behavior

[ChangeLog][QtCore][iOS] Fixed path to QStandardPaths::DataLocation.
Until now DataLocation was pointing to the Document directory. With this
patch, it will return the more accurate Library/Application Support.
Application making use of DataLocation should move these data to the new
location. This can be done using the path provided by DocumentLocation as
source path.

Task-number: QTBUG-42276
Change-Id: I35415643cf8cc7a60528f9b0fb5028ada5deace0
Reviewed-by: Jake Petroules <jake.petroules@petroules.com>
Reviewed-by: David Faure <david.faure@kdab.com>
2014-10-30 09:38:23 +01:00
John Brooks
136ccaa276 Ignore alert on an active window
When QWindow::alert() is called with a duration of 0, it calls
QPlatformWindow::setAlertState(true), and expects the alert state to be
reset when the window is next activated. Other calls to alert are
ignored while alertState is still true.

If alert was called for an active window, it would remain in the alert
state until deactivated and activated again, and on some platforms calls
to alert would be broken while deactivated.

Alerting doesn't make sense for active windows, so we can simply ignore
it, which was the behavior with Qt 4 on some platforms.

Change-Id: Ia3324da4c89db711b63eb31cddf0bf742bb4e3b8
Found-By: Jan Noertemann <jan.noertemann@uni-dortmund.de>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Martin Gräßlin <mgraesslin@kde.org>
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
2014-10-29 21:11:58 +01:00
Shawn Rutledge
0b49ce2f8e Android: QtActivitiyDelegate: extras can be null
Change-Id: I3b31cc499067540e6ad7b6d05df75d9ba0e1e615
Reviewed-by: BogDan Vatra <bogdan@kde.org>
2014-10-29 21:10:59 +01:00
Laszlo Agocs
ec103617c2 eglfs: Remove unused member variable
Change-Id: I45cdf79c14b823b3e93ed0e0923cb687a0ea17c7
Reviewed-by: Louai Al-Khanji <louai.al-khanji@theqtcompany.com>
2014-10-29 20:46:13 +01:00
Kai Koehne
c99b93e55c QTextCodec: Fix source code indentation
Change-Id: Ia9a79e659e028eb6173a7adef12d4973f78c32e9
Reviewed-by: Liang Qi <liang.qi@theqtcompany.com>
2014-10-29 16:09:34 +01:00
Shawn Rutledge
824f01af8f fontconfig: do not assume the path to a font file is Latin1-encoded
Task-number: QTBUG-42249
Change-Id: Ie5d41ed26a69103991a5189c4f42aa37ac73de26
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@theqtcompany.com>
Reviewed-by: Liang Qi <liang.qi@theqtcompany.com>
2014-10-29 10:49:56 +01:00
Shawn Rutledge
3d5fb54eda Cocoa: Handle Qt::WA_MacAlwaysShowToolWindow
Forward the flag to QWindow by setting the _q_macAlwaysShowToolWindowproperty
on the window in QWidgetPrivate::create_sys(). Test
for the property when creating the window.

Task-number: QTBUG-29816
Done-with: Morten Sørvig
Change-Id: Id810dda98d02deb0902192cce1783d8b16b04d04
Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
2014-10-29 10:33:44 +01:00
Liang Qi
933fab137d Cocoa: Fix regression in key handling
The text should be empty when Cmd key is in modifiers.

Task-number: QTBUG-36281
Change-Id: Ic71e532695ad4a947c86e8d21ae864d70f9afa4c
Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
2014-10-29 10:14:15 +01:00
Alexander Volkov
100ed0c01d xcb: Fix getting the primary screen from QXcbConnection::screens()
Currently getting QXcbScreen* for primary screen is too messy and it
wrongly uses QXcbConnection::primaryScreen() as an index in
QXcbConnection::screens() although QXcbConnection::screens() returns
the primary screen as the first item in the list since
3c8eb40487.

So to clear the API rename primaryScreen() to primaryScreenNumber(),
add QXcbConnection::primaryScreen() that returns correct QXcbScreen*
and use it directly.

Change-Id: Icb7391aa3e82b32ca48f2bda764dcf7ffd89cc47
Reviewed-by: Uli Schlachter <psychon@znc.in>
Reviewed-by: Jørgen Lind <jorgen.lind@digia.com>
2014-10-29 10:03:55 +01:00
Morten Johan Sørvig
6c38a82aa8 Cocoa: Send obscure events on OcclusionStateHidden
This disables animations for windows that are
completely obscured by other windows.

On examples/quick/animation, obscured CPU usage goes
from 10% to 1%. There has been reports of 100% CPU
usage with Qt before this patch.

Change-Id: Iefea43ed8c1cfaa2df13f1f5a4e4450146ade522
Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@theqtcompany.com>
2014-10-29 09:39:31 +01:00
Jørgen Lind
14e51127cf Add qobject_cast template specialisation for QWindow
greatly improving the performance of qobject_cast<QWindow *>

Change-Id: If5a1afa6e41f4676f4838ea3ff80f1d89e396dfc
Reviewed-by: Gunnar Sletta <gunnar@sletta.org>
2014-10-29 09:39:23 +01:00
Oswald Buddenhagen
87eb3ea190 work around MSVC2010 ICE
Task-number: QTBUG-42064
Change-Id: Ifffcc0cf9109b76d79f603a13792d7fd9979761c
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
2014-10-29 09:37:17 +01:00
Oswald Buddenhagen
e1ff27ca28 add support for explicitly declaring the module master header
when a module delegates to another module (as the activeqt ones do), it
doesn't have a master header to be included. we could derive the real
master header by doing a transitive dependency resolution and some
filtering, but that seems unnecessarily complex.

Task-number: QTBUG-41892
Change-Id: Ie7ce51a837ac06e929b204ec734206c11b3ae241
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
2014-10-29 09:37:08 +01:00
Oswald Buddenhagen
4b491334cf Merge "Merge remote-tracking branch 'origin/5.3' into 5.4" into refs/staging/5.4 2014-10-29 10:55:33 +01:00
Bjoern Breitmeyer
7ebc151bcf Fix X86 Wince builds.
Windows CE does not have all _BitScanReverse
intrinsics, so disable those for Q_OS_WINCE.

Change-Id: I34a3c02c6ffdfff2a209b2c9c1b80bef4566ee39
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
2014-10-29 09:26:37 +01:00
Allan Sandfeld Jensen
a0bdbc1442 Fix QWidget::scroll during painting
Calling scroll during painting fails in cases where the scroll is
attempted accelerated. This is easily fixed by not using accelerated
scrolling during painting.

Task-number: QTBUG-41615
Change-Id: I38d2428d5679c242f13d53793a3dc3b8e01b538f
Reviewed-by: Jørgen Lind <jorgen.lind@digia.com>
2014-10-29 09:25:12 +01:00
Marc Mutz
11e09a440b tst_qvariant: automate testing of forward_list
...using the SD-6 __has_include macro.

Change-Id: I629e2ad1c8090aba9e86ab9febf6d09a504219f9
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
2014-10-29 09:18:21 +01:00
Lars Knoll
38c2e3d104 Properly detect UTF-8 BOM markers in ini files
If we detect a utf8 BOM mark at the beginning of the .ini
file, skip the marker and set the iniCodec to utf8.

Task-number: QTBUG-23381
Change-Id: I1b37fc4f1638a48e4f3ee71ab165e2989bc592f1
Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@digia.com>
2014-10-29 08:58:31 +01:00
Alexander Volkov
ad1ec8b57d xcb: Fix setting the alert state for a window
Send a _NET_WM_STATE client message to the root window
instead of changing the window property.

Task-number: QTBUG-41310
Change-Id: I864af0158ec55796bb3cbc123469709b2be54ec8
Reviewed-by: Martin Gräßlin <mgraesslin@kde.org>
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
2014-10-29 08:29:45 +01:00
BogDan Vatra
3203601315 Fix QLocalServer, create a temp path as small as possible.
If requestedServerName is a full path e.g. "/tmp/some/long/path" the
temp path will end up "/tmp/some/long/path.balblabla/tmp/some/long/path"
and it might fail because it doesn't fit in addr.sun_path.

Change-Id: I6a138fd92be9e0b3b432ab9ac977d04cb330f3fd
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
2014-10-28 21:30:18 +01:00
Allan Sandfeld Jensen
23553cccda Fix justification in multi fontengine glyphruns
QTextLine::glyphRuns was not handling justification when splitting
glyphRuns due to multiple font-engines. This patch adds the missing
justification.

Task-number: QTBUG-41901
Change-Id: I02d24218630506da21531a6499784dff2eecdf6f
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@theqtcompany.com>
2014-10-28 21:03:39 +01:00