Commit Graph

16237 Commits

Author SHA1 Message Date
Tor Arne Vestbø
9b782dca45 iOS: Update screen properties when we trigger statusbar changes on iOS7
Ideally we'd have a callback from iOS when this happens, so we can also
react to changes done outside of Qt, but willChangeStatusBarFrame and
friends do not seem to give us what we want.

Change-Id: I686ce7950395a83c4257372363c773a95c3935ed
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@digia.com>
2013-11-29 09:55:14 +01:00
Tor Arne Vestbø
c5b19f2521 iOS: Forward [UIApplicationDelegate handleOpenURL:] to QDesktopServices
The user may use QDesktopServices::setUrlHandler() in combination with
the appropriate Info.plist keys (CFBundleURLTypes, CFBundleURLSchemes)
to react to URL requests from other applications.

This is among other things useful for handling OAuth authentication from
applications such as Dropbox. See:

  https://www.dropbox.com/developers/core/start/ios

We protect against recursive URL opening, but an application may still
redirect a request to open a URL by opening another URL, eg a website.

Task-number: QTBUG-35201
Change-Id: I9f1d246206c5594b1b65bb11fa98c6bcdefc443e
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@digia.com>
2013-11-29 09:55:05 +01:00
Marc Mutz
bedc5a3ae2 Update ChangeLog for 5.2.0 [QtWidgets II]
Second batch of changes.

Change-Id: I5b3add1df19bcad195f8b9286337de9fe926337c
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2013-11-29 09:54:57 +01:00
Simon Hausmann
7c029e83a3 Fix invalid memory read when shutting down QML applications
As the last line in the QObject destructor, we call setParentHelper(0) to
remove ourselves from the parent. In the process of that we also initiate the
QML parentChanged callback. The first thing that parentChanged callback used to
do (but now does it too late, after 26350b5ceafa0ade1328037f6234a7d288eb8f48 in
qtdeclarative) is to check if the object was deleted and then return. We could
re-introduce the check there, but I think it's cleaner to not bother calling
the callback on a dead object in the first place.

Change-Id: Ia4d43b65a9b3744a451b4c312a2d6f9c0e3b67dc
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
2013-11-29 09:54:47 +01:00
Liang Qi
d55db6dd53 Cocoa: avoid a crash in QCocoaDrag
NSEvent needs to be copied.

Reference:
http://lists.apple.com/archives/cocoa-dev/2007/Dec/msg00678.html

Task-number: QTBUG-33533
Change-Id: I73709545573e59aab6875a8c3dd903cb171e858f
Reviewed-by: Jake Petroules <jake.petroules@petroules.com>
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
2013-11-29 08:49:06 +01:00
Konstantin Ritt
ad684ff2a7 Add QSystemSemaphore::release() auto-tests
Change-Id: I4c48f9ad8c60307e4b922d6a6b82e03e455f14d9
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
2013-11-28 20:33:56 +01:00
Konstantin Ritt
ed9e954f4b QSystemSemaphore: Clear error after successful operation
Change-Id: I5c1021b2329439e3aefaa1c0d9c0b8a298d285de
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2013-11-28 16:54:22 +01:00
Friedemann Kleint
6aa496c366 Streamline font match() function.
Determine writing system before executing the loop.

Change-Id: I6c462bdef4d70860e76c7cc9d939e3e92983b173
Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
2013-11-28 16:25:03 +01:00
Friedemann Kleint
cb6c51f026 Remove unused variable in font match() function.
Change-Id: I0752901556a44c3b7fb4440e3ba0ca88559c1fe2
Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
2013-11-28 14:25:10 +01:00
Jorgen Lind
a2d3b7c991 Move the glxfbconfig configtest to qpa and rename it to glx
We require glx version 1.3 which is where fbconfig is first defined.
Also make use of the configure test and report the glx status.
GLX support should always take precedence when compiling the
xcb backend

Change-Id: Ie46834210bf5cd2ac4006ff08379e0d3434ffa2b
Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
2013-11-28 12:57:33 +01:00
Andrew Knight
d34cae51fa Add new configure parameter for Xcb-Xlib
This adds a new configuration parameter, xcb-xlib, which allows
overriding the configure test for that existing configuration option.

The use of xcb-xlib in the xcb platform plugin becomes the preferred path
for non-OpenGL ES 2 builds, while the EGL codepath is used otherwise.
This has the advantage that EGL can be used with Desktop OpenGL if Qt is
configured with -no-xcb-xlib.

Change-Id: I5018e31fe0399b94f020c671eff9414d00431c44
Reviewed-by: Jørgen Lind <jorgen.lind@digia.com>
2013-11-28 12:57:33 +01:00
Jorgen Lind
75c9a058b3 Remove stale xcb_dri2 code in QXcbNativeInterface
Change-Id: Ifc8dc8d84fc60b70f8a49282dfe32cd248bef9ba
Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com>
2013-11-28 11:21:44 +01:00
Frederik Gladhorn
dccacf13db Merge "Merge remote-tracking branch 'origin/release' into stable" into refs/staging/stable 2013-11-28 11:21:44 +01:00
Friedemann Kleint
f29e38f9a4 Fix font lookup.
Change match() to return an index and use that to reintroduce
the blacklist bookkeeping for fonts for which font engine
creation fails (for example, due to missing open type support).
Change the algorithm to retry search if that happens.
Add empty string as fallback for non-common scripts indicating
'try to find any font matching the script' as is done in Qt 4.

Task-number: QTBUG-34908
Change-Id: I9ac81ff1c275ebb635675dc26b52394789fca60c
Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
2013-11-28 11:21:44 +01:00
Samuel Gaist
dc80838a37 Improve digitToCLocale sign char handling
This patch adds more char tests for the plus and minus signs to
ensure that e.g. number input widgets can be used with the locale
and the known sign chars.

[ChangeLog][QtCore] Fixed a bug that caused negative number input
using '-' to be rejected because the current locale uses e.g. 0x2212.
QIntValidator and QDoubleValidator now accepts both signs as well as
the locale minus sign.

Task-number: QTBUG-35069
Change-Id: I857105ca38b1d3826e27eb64645fef07149d74bc
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2013-11-28 09:33:57 +01:00
Simon Hausmann
83d36c3ff8 Merge remote-tracking branch 'origin/release' into stable
Change-Id: I860404a1ef18c88a968a9eded405bb67967047b9
2013-11-28 09:19:24 +01:00
Tobias Koenig
9e64fc9e1c Fix sub-second handling in SQLite driver
Use explicit format string, that contains milliseconds, when
converting an QDateTime/QTime to a SQLite field content.

Task-number: QTBUG-24200
[ChangeLog][QtSql][QSQLITE] Fix sub-second handling
Change-Id: Ib89152b7c3dd780b57a8826beff8b6b118e9d3d6
Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
Reviewed-by: Mark Brand <mabrand@mabrand.nl>
2013-11-28 00:21:56 +01:00
Tobias Koenig
7216387370 Fix sub-second handling in MySQL driver
As stated in http://dev.mysql.com/doc/refman/5.7/en/c-api-prepared-statement-data-structures.html
the content of MYSQL_TIME.second_part field is supposed to be
in microseconds not milliseconds.

Task-number: QTBUG-31124
[ChangeLog][QtSql][QMYSQL] Fix sub-second handling
Change-Id: I5718868029bdedab9508213e800d2dcf3da9be9a
Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
Reviewed-by: Mark Brand <mabrand@mabrand.nl>
2013-11-28 00:21:56 +01:00
Christian Strømme
e82951611c Fix problem with QNetworkAddressEntry returning a invalid netmask.
The ip address should be set before the netmask. The reason for this is
that QNetworkAddressEntry::setNetmask() compares the protocol of the
netmask and the ip, if they don't match the netmask won't be set.

Task-number: QTBUG-33911
Change-Id: Ic344b3653c5dfdc5df912dee16e4dbe069d57d24
Reviewed-by: Peter Hartmann <phartmann@blackberry.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2013-11-27 22:40:14 +01:00
Kurt Pattyn
76580659e6 tests: fix tst_QSettings on Mac
* Add a check for the case sensitivity of the file system, so that
unit tests can determine whether names of preference files with
different case should generate an error or not.
* Add check for OS X native file format in rainersSyncBugOnMac().

Task-number: QTBUG-32655
Done-with: Liang Qi <liang.qi@digia.com>
Change-Id: I76821653dd4ebc00e20abdbb5b79c1a80290dece
Reviewed-by: Liang Qi <liang.qi@digia.com>
2013-11-27 22:40:14 +01:00
John Layt
73ef64fb5f QPrinter - Make PDF support required for QPrinter
Most of QPrinter assumes that QPdf is available as the fall back engine
in case either the plugin fails to load or there are no real printers
configured. Make this assumption explicit in the feature configure and
remove the two places where QT_NO_PDF is actually checked.

Change-Id: Ibb1bdf3bafa5809fbc844c84d7127911a1685506
Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com>
2013-11-27 21:06:30 +01:00
Jorgen Lind
dc03e0c429 Return the xcb_screen_t and not the QPlatformScreen
from QXcbNativeInterface. The QPlatformScreen is available from
QScreen::handle()

Change-Id: If81daf34c07f4a49c85c43d3755d1a9167626d6d
Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com>
Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
2013-11-27 18:50:36 +01:00
Louai Al-Khanji
b8ff073c0d Fix directwrite font engine compile
Add missing comma that prevented compilation.

Change-Id: If771366adf3a31427c2beefa09c0206653f8ec84
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
2013-11-27 16:43:41 +01:00
Zeno Albisser
ca73f493a1 Allow resetting Qt::WindowFullscreenButtonHint
Currently Qt::WindowFulscreenButtonHint is only
respected on window creation. But flags
can also be adjusted later on.
Further setWindowShadow can be removed from
within createNSWindow, as it operates on a Nil
object in that case. It is however called by
recreateWindow / setWindowFlags subsequently.

Change-Id: I507d6fde5ad2f0ee5b9db322325ede99b70e151e
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
2013-11-27 15:10:36 +01:00
Stephen Kelly
82a2d28d84 CMake: Parse the output of new CMake versions.
As of CMake 3.0, the output of `cmake --version` now has a second line
showing that it is maintained by Kitware. Change the version parsing to
look only at the first line of output.

Change-Id: I347de4c376e0bde25a43a38d59587d9b63f6b43a
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
2013-11-27 13:56:02 +01:00
Albert Astals Cid
95ffd606f8 Do not disable egl on desktop gl automatically
desktop opengl and egl are not incompatible with eachother, so there
is no need to disable egl when on desktop opengl

Task-number: QTBUG-34949

Change-Id: I757c38674a480910d1cb23853c255eb993e107ff
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Reviewed-by: Andrew Knight <andrew.knight@digia.com>
Reviewed-by: Jørgen Lind <jorgen.lind@digia.com>
2013-11-27 13:14:26 +01:00
Gabriel de Dietrich
1aa4ac61f9 QCocoaFileDialogHelper: Cache directory until delegate has been created
Task-number: QTBUG-34393

Change-Id: Idee9e879e586afe25fd099d157ed7af88c17c4a3
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
2013-11-27 11:46:28 +01:00
hjk
75f22e219e Fix coding style in QLabel example code
Change-Id: I13838c1759b14089ba9f4daf442048fb5c8da738
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
2013-11-27 11:46:28 +01:00
Laszlo Agocs
94f1b85cf7 Check the thread in QOffscreenSurface
The QWindow-based fallback will not work when the QOffscreenSurface is
created outside the main thread. Show a warning in this case.

Note that it is fine to use the QOffscreenSurface instance in another
thread. It is just the creation that must happen on the main thread.

Change-Id: If80da39e610813755b9ba2f6831b187b258b8266
Reviewed-by: Yoann Lopes <yoann.lopes@digia.com>
Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com>
2013-11-27 09:38:22 +01:00
Laszlo Agocs
09466a942e windows: Set forward compatibility bit properly
The bit should be set when QSurfaceFormat::DeprecatedFunctions is
_not_ specified. The documentation was correct, the implementation
was not.

Change-Id: If7202d3a59d5336fff255a290b65fb4bfa7b79c9
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com>
2013-11-27 09:38:17 +01:00
Yoann Lopes
4fbe50e77a Revert "Store the font's scalability in QFontEngine."
This reverts commit 65b12fbdb1.

QFontEngine is not always loaded from QFontDatabase, resulting in
the flag not being set.

Change-Id: I39bc5bd4a8dea153d191cfc55f4324195f75f64c
Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
Reviewed-by: Mitch Curtis <mitch.curtis@digia.com>
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
2013-11-27 08:25:25 +01:00
Frank Osterfeld
94c17dce04 QNX: Fix retrieving the window group name
The code assumes that there is a root window, and crashed
otherwise.

Task-number: QTBUG-35121
Change-Id: Idbf0e0bfc03cd427f0aab81db88b34fe94228c81
Reviewed-by: Rafael Roquetto <rafael.roquetto@kdab.com>
2013-11-27 08:25:15 +01:00
Stephen Kelly
f03fd0d82a Remove leading '/' from target paths.
This is inappropriate on Windows, and breaks non-prefix builds there.

This is only needed when we calculate a relative path from a sysroot,
so only add it in that case.

Task-number: QTBUG-34880
Change-Id: I0e3b3d977a7b56649e4ba0077ac574aabf1dc915
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
2013-11-27 08:24:50 +01:00
Andrew Knight
1c2be58fec Fix test compilation on WinRT
Tweak a handful of tests which didn't compile on this platform.

Change-Id: I208d9eb289dfb226746c6d0163c3ea752485033b
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@digia.com>
2013-11-26 20:29:09 +01:00
Friedemann Kleint
75a7562491 QCoreApplication: Add static setter for application file path.
In cases where QGuiApplication is instantiated by a library
embedded into another application via some plugin mechanism
(for example, Active X controls built using Qt), the QPA platform plugin
and other plugins cannot be found next to the application executable.
In this case, the library should set the application file path to
its deployment location such that plugin paths are set accordingly,
the directory is added to the path and qt.conf is found, should it exist.

Task-number: QTBUG-34989

Change-Id: I4a53104b5121a8d26751129912f999228be45dfd
Reviewed-by: Robin Burchell <robin+qt@viroteck.net>
2013-11-26 20:29:09 +01:00
John Layt
db4afbef7d QPrinterInfo - Fix isNull() by fixing constructors
The QPrinterInfo copy and QPrinter constructors and the assignment
operator were not taking the shared_null into account, and so any use
of them resulted in a new null QPrinterInfo different to shared_null,
which lead to isNull() always returning true in anything other than
the simplest use case. While fixing this also make the shared_null a
Q_GLOBAL_STATIC.

Task-number: QTBUG-21087

Change-Id: I0beb24088208e9ed58d21ca26b0c8d00b02e5b8f
Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com>
2013-11-26 18:45:10 +01:00
John Layt
42fa59b151 QPrintDialog - Fix casting print engine
We want to cast the print engine, not the paint engine.

Change-Id: Ia8f11f0215fa066417118fbfbcc921a60282d713
Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com>
2013-11-26 18:44:50 +01:00
Friedemann Kleint
0da841bc33 Windows: Close handle to thread checking for adopted threads.
Task-number: QTBUG-34840

[ChangeLog][QtCore][QThread][Windows][QTBUG-34840] Fix handle leak.

Change-Id: I537c1c81a43907f01a81be740746582266969c6f
Reviewed-by: Andy Shaw <andy.shaw@digia.com>
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
2013-11-26 11:29:54 +01:00
Joerg Bornemann
58f0a9ba5a do not embed manifests into Qt plugins by default
For plugins that are built with a different (but binary compatible)
MSVC runtime than Qt is built with, the plugin's embedded manifests
prevent a successful loading of the plugin.
There's no need for having the plugins tied to a certain CRT version
as they are bound to Qt's CRT version.

Task-number: QTBUG-1297
Change-Id: I6ae4cadd99ee4657e613b07a40141a7bae08424f
Reviewed-by: Oliver Wolff <oliver.wolff@digia.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
2013-11-26 11:22:17 +01:00
Erik Verbruggen
b84072a431 Fix compiler warnings.
As seen with Xcode 5.0.2.

qmacclipboard.mm:108:30: warning: cast to 'void *' from smaller integer type 'int' [-Wint-to-void-pointer-cast]
        promiseKeeper(paste, (PasteboardItemID)promise.itemId, flavor, this);
                             ^
qmacclipboard.mm:316:56: warning: cast to 'void *' from smaller integer type 'int' [-Wint-to-void-pointer-cast]
                        PasteboardPutItemFlavor(paste, (PasteboardItemID)itemID, QCFString(flavor), 0, kPasteboardFlavorNoFlags);
                                                       ^

Change-Id: I94b8ea2ff32d606d4cab28981b26c2ef516035dc
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
2013-11-26 11:05:36 +01:00
Gabriel de Dietrich
08f3177fdf CoreWLan: Fix potential unhandled exception assert
-[QNSListener notificationHandler:] was declared as not taking any parameter,
but used as taking a single NSNotification. This would lead to an 'unrecognized
selector' exception raised by Cocoa.

Task-number: QTBUG-26844
Change-Id: I56d03a7738c2a1b9dcf3cdecc696b01e65d7b233
Reviewed-by: Liang Qi <liang.qi@digia.com>
2013-11-26 10:58:32 +01:00
Eskil Abrahamsen Blomfeldt
939a001c3a Android: Remove invalid error message
All usage of context menus prints out an error message because
onContextMenuClosed() is called more than once. We just return
silently instead if the method is called after the menu has
already been closed.

Change-Id: Ifa27ed42d188fdf670f09c4b1450b9fec0d5941f
Reviewed-by: BogDan Vatra <bogdan@kde.org>
2013-11-26 10:58:18 +01:00
Simon Hausmann
e903b5cdda Fix for co-existence of QtDeclarative and QtQml
As a follow-up to commit 2f87fde9bb, we also need
to change "hack" in the QGraphicsItem and QWidget destructor for early item
destruction to support the _qml1 variant of the QObject destroyed callback.

Task-number: QTBUG-35006

Change-Id: I65e37b1e9ddd8d14267aaba024408611b8cd3d77
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
2013-11-26 10:57:54 +01:00
Frederik Gladhorn
3061dc4abd Merge remote-tracking branch 'origin/release' into stable
Change-Id: I83ff8f4d7dffd7385013a1bd8a1732a89ee20d56
2013-11-26 10:51:34 +01:00
Olivier Goffart
9b8570c4e9 Fix deadlock when disconnecting connections made with function pointers
The regression was introduced in 5885b8f775

QMetaObjectPrivate::disconnectHelper may unlock the sender mutex. And
while relocking it, we need to make sure to lock the sender and receiver
mutex in the right order.  So don't lock the receiver mutex in advance, but
re-lock it for each connection.

Change-Id: I4f6d19791cdcce3693d7f45e7beb6b564fd69277
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
2013-11-26 08:29:41 +01:00
Thiago Macieira
df449d4f86 Fix formatting in the platform-specific changes part of the ChangeLog
No need to have the "Qt for" part of the platform. This was used back
in the Qt 4 days when we referred to "Qt for Embedded Linux" or
"QtopiaCore" before that.

This also fixes the duplicated "Windows" and "Qt for Windows" sections.

Change-Id: Ia04172d0f322079f667b64a90c5f23d03588d0db
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
2013-11-26 08:24:44 +01:00
Thiago Macieira
10ac0bb2b8 Reflow the ChangeLog part for QtNetwork
Wrap to column 76, add a space before the dash and remove the
line between entries with no sub-bullets.

Change-Id: Ibba86161659ccad9fe98dd37a9eba57e807aa3ac
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
2013-11-26 08:24:41 +01:00
Thiago Macieira
c9857bdeef Update ChangeLog for 5.2.0 [QtDBus]
Change-Id: I8b58ea636eac2be4da967c18057c38990bc9178f
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
2013-11-26 08:24:37 +01:00
Olivier Goffart
f805020410 Fix a race that occurred as we unlock the mutex to destroy the functor in ~QObject
When we unlock the mutex, we need to take in account that the Connection
pointed by 'node' may be destroyed in another thread while it is unlocked
Doing  'node->prev = &node'  will make sure that 'node' is actually
updated when it is destroyed.

Setting isSlotObject under the mutex is safer and ensure that no other
thread will attempt to deref the object.

The regression was introduced in 5885b8f775

tst_qobjectrace was updated to catch races arising when we are
connecting with function pointers.

Change-Id: Ia0d11ae8df563dad97eb86993a786b579b28cd03
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@digia.com>
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
2013-11-26 08:24:25 +01:00
Allan Sandfeld Jensen
25b2b682d6 Evdev keyboard handler emits keyevents with QString(0xffff)
Key events that have no text representation are by the evdevkeyboard
emitted as a QString(0xffff). Other keyboard event handlers appear to
all emit key events with null strings for these events.

Change-Id: If6b5c61a8cb76a6843238f834ce4feb4b73aa199
Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com>
2013-11-26 00:13:36 +01:00