Commit Graph

13494 Commits

Author SHA1 Message Date
Jędrzej Nowacki
1a034ac218 Attempt to fix intel compiler build error.
qtbase/include/QtCore/../../src/corelib/kernel/qobjectdefs_impl.h(625): error #68: integer conversion resulted in a change of sign

Task-number: QTBUG-39678
Change-Id: Ifb175bdcad820aa58cc0a1bcf6985a164376baf5
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2014-06-19 17:25:12 +02:00
Friedemann Kleint
3fd184b663 Use QModelIndex to get the data from underlying model
Change-Id: Ibeb70079afd566c78289168540296b926f36d1af
Initial-patch-by: Irfan Omair <irfan.omair@gmail.com>
Task-number: QTBUG-27597
Reviewed-by: Andy Shaw <andy.shaw@digia.com>
2014-06-19 17:23:30 +02:00
Friedemann Kleint
5af8a46bc1 QGuiApplication: Document -plugin command line argument.
Task-number: QTBUG-38972
Change-Id: Ie4dd6d70e60822a5a3626b10cd90d081897d646d
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2014-06-19 17:23:24 +02:00
Friedemann Kleint
feda990ae8 QEventDispatcherWin32: Use a shared class name for the message window.
Introduce a global-static struct storing atom and class name for
the message window to be shared between threads. This prevents
RegisterWindow()/UnregisterWindow() of different threads (using exec())
from interfering and silently failing.

Task-number: QTBUG-39471
Change-Id: I9bc1106a41f64749c55825a96973921bb831458f
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
2014-06-19 17:23:16 +02:00
Friedemann Kleint
54a2206bba Windows: Mark only mouse events synthesized by touch as such.
Pass on mouse events from pen.

Task-number: QTBUG-39353
Change-Id: I96c4e023ddb1c853d5228d00aa9604941556abb4
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
Reviewed-by: Oliver Wolff <oliver.wolff@digia.com>
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
2014-06-19 17:22:52 +02:00
Thiago Macieira
d88b976858 Fix compilation in under -no-c++11 mode
IndexSetter can't be passed to QObject::connect() since C++98 templates
require global types (they can't be function-local).

Change-Id: I099322f835661d4679140b7810b50dbeb0e4b9e0
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
2014-06-19 17:14:05 +02:00
Thiago Macieira
2de8ef2e49 Fix compilation with the Intel compiler on certain systems
We require the intrinsics from immintrin.h, so include it
unconditioanlly with that compiler.

Change-Id: I4a17676631f9d89e2d22e486f40c9b177ca06c1e
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
2014-06-19 17:08:29 +02:00
Bjoern Breitmeyer
863a8bfab5 Fixes QFontDataBase addApplicationFont on WEC.
AddFontResourceExW was not implemented yet.

Change-Id: Iffa3e49bdbb0176c10324ede6161fcf8b2a63902
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
2014-06-19 17:02:34 +02:00
Konstantin Ritt
302ffa5820 Fix crash when reusing HB_Face in another font engine
After 717d39ac08, if HB_Face was instantiated by QFontEngineFT A
and then used by QFontEngineFT B, whilst A already destroyed,
a crash occurs in hb_getSFntTable() due to accessing a stale pointer.

Task-number: QTBUG-39278
Change-Id: I3428669a311f49cdda1725b778f45219cbcf470d
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
2014-06-18 13:39:42 +02:00
Gabriel de Dietrich
abcea1c5f0 harfbuzz-ng: Pre-allocate enough space for CoreText buffer
This fixes an assert in OS X 10.10 Yosemite, where the pre-
allocated buffer would be too small to hold 3 successive calls
to ALLOCATE_ARRAY.

Task-number: QTBUG-39504
Change-Id: I5a0ae36170636eb97ab21c5903b96674e2a99547
Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
2014-06-18 13:39:37 +02:00
Laszlo Agocs
10ff9d5b6f Handle invalid sample counts gracefully in FBOs
Passing in a sample count of -1 should be treated as 0. This is common
when setting up framebuffer formats from a QSurfaceFormat where the
default, unset value is indicated by a value of -1.

This broke QQuickWidget which was unaware of this limitation of
QOpenGLFramebufferObject and was passing format.samples() as the sample
count without making sure it is 0 or higher.

Task-number: QTBUG-39699
Change-Id: I324b8b006eaa992c15ae932f9df305500fefeb65
Reviewed-by: Paul Olav Tvete <paul.tvete@digia.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
2014-06-18 13:39:32 +02:00
Oswald Buddenhagen
000d98d826 Bump version
Change-Id: I867c3b4aecc82095e65bd7f820e7fe6d14005705
2014-06-18 00:27:55 +02:00
Sergio Ahumada
cf7805d364 Merge "Merge remote-tracking branch 'origin/stable' into 5.3" into refs/staging/5.3 2014-06-17 19:09:21 +02:00
Kai Koehne
bdd60463da Fix animations in static builds
Make sure qRegisterGuiGetInterpolator is called even for static builds.

Task-number: QTBUG-37341
Change-Id: I65735a558d5bbfaa02fa4ec47d55ddf33ca1991a
Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@digia.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
2014-06-17 15:59:29 +02:00
Sergio Ahumada
753be5af04 Merge remote-tracking branch 'origin/stable' into 5.3
Change-Id: Ibf1b8a03c5153895ec03af5844c0b6addc4a0aa0
2014-06-17 13:34:43 +02:00
Martin Pley
c92ece4518 QRasterPlatformPixmap::createPixmapForImage(): Avoid crash when QImage conversion failes
Added some checks to QRasterPlatformPixmap::createPixmapForImage() to avoid
crashes when QImage::convertToFormat() returns a null image.

Change-Id: I573505a1aff7931d9a2fb452d0a83ae93d8de7db
Reviewed-by: Gunnar Sletta <gunnar.sletta@jollamobile.com>
Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
2014-06-16 14:29:13 +02:00
Shawn Rutledge
4038f21dd0 xcb: touch device mode is either Dependent or Direct, not Rel or Abs
Change-Id: Ic0091007c95c4c307485bc2d5d3e1e967b44323e
Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
2014-06-16 14:13:24 +02:00
Lucile Quirion
59d6871ae3 directfb: fix QThread destroyed while running
Commit cf092abdfc introduces a virtual
"void initialize()" in QPlatformIntegration class.

"void initialize()" was already implemented in QDirectFbIntegration
since commit 6534898cc6 allowing
initialization steps to be overridden by QDirectFbIntegrationEGL.

Therefore the QScopePointer "m_input" handling a QThread is reset twice.
The QThread firstly created is forcibly terminated. The application
displays the error message "QThread: Destroyed while thread is still
running" and sometimes crash with a SIGSEGV.

This commit rename QDirectFbIntegration::initialize() into
QDirectFbIntegration::connectToDirectFb() to fix this issue.

Task-number: QTBUG-38710
Change-Id: I3ca07c373af7c47abf08da2b45bbcf7a6cf573ad
Reviewed-by: Holger Freyther <holger+qt@freyther.de>
Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
2014-06-16 13:25:53 +02:00
Martin Gräßlin
a461bb1ff5 Flush xcb connection before EventDispatcher is going to block
The non-threaded QXcbEventReader invokes processXcbEvents when the
EventDispatcher is about to block. This method ensures that the xcb
connection is going to flush. Applications can use low level xcb code
in that case without having to ensure to flush the connection before
going to block again.

With the threaded QXcbEventReader this didn't work and applications
which for example changed a window property and waited for the matching
property notify event were stalled.

This change ensures that also in the threaded case the connection gets
flushed when the EventDispatcher is going to block.

Change-Id: If1dc5eb96e2f1bde10b7a40af550b0608c62f70c
Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
2014-06-16 09:31:46 +02:00
Thiago Macieira
acd0dae3f4 Fix data race in accessing QDBusConnectionPrivate::serviceNames
The trick of creating a copy is not thread-safe. I'd known this since
the moment I wrote that code, but thought "what could go wrong?".

Task-number: QTBUG-39285
Change-Id: If521d4a649c06e6a34926687e85623aa25cb4c35
Reviewed-by: David Faure <david.faure@kdab.com>
2014-06-15 23:04:28 +02:00
BogDan Vatra
66bd87e5c6 Android: REG: Fix crash.
Test if the window has a handle before using it.

Change-Id: I728a129722f8ecd021998d483530a8d1687e5fe3
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
2014-06-15 05:54:11 +02:00
Sergio Ahumada
5721c0811a Merge remote-tracking branch 'origin/stable' into 5.3
Change-Id: Icd073d40ce10ab4733b997036815795dd3fbaac1
2014-06-14 18:11:52 +02:00
Jan Arve Saether
16b90bb683 QFontComboBox sometimes became too wide because of wrong fixed size
The fixed width should not be set on QFontComboBox itself, but on the
popup.

This regressed with commit bfb25c0352,
and caused assistants preferences dialog to become wider than the
desktop.

Change-Id: I2059794fc12d34837cdb7dfded80df57d102a6f0
Reviewed-by: Fabian Bumberger <fbumberger@rim.com>
2014-06-14 11:59:16 +02:00
Eskil Abrahamsen Blomfeldt
fb3f47b638 Android: Report something sensible for screen geometry
We can't get the actual screen geometry on Android, but in Qt 5.3.0
we would always return the screen geometry minus the size of the
status bar. After the available geometry was initialized to 0x0
instead of this arbitrary value, some applications that depended
on this as a constant value would break if they collected the
information before the window surface had been initialized and they
forgot to listen to QScreen::geometryChanged().

To reduce the risk of regressions, this patch makes sure we return
the same thing as before for the screen geometry and that this is
not linked directly to the available screen geometry.

Task-number: QTBUG-39464
Change-Id: Ie63337b3b10d2eb5130e4fece6c5b144e8230164
Reviewed-by: Paul Olav Tvete <paul.tvete@digia.com>
Reviewed-by: Christian Stromme <christian.stromme@digia.com>
2014-06-13 21:54:02 +02:00
Friedemann Kleint
9c80a3be4b Revert "Suppress move/resize events if they are the result of call to move()/resize()."
This reverts commit a1c5198387.

The idea of detecting non-spontaneous events by comparing
against the widget's crect has problems when sequences
of programmatic resizes occur. In  addition, QWindowSystemInterface's
queueing of events is problematic for this.

Task-number: QTBUG-39611
Task-number: QTBUG-32590
Change-Id: I4674d8d5d5d432d938f7226b5790543335665c1f
Reviewed-by: Andy Shaw <andy.shaw@digia.com>
2014-06-13 13:32:45 +02:00
Friedemann Kleint
5da108a4a7 Revert "Revert "Fixed duplicate QMoveEvent generated for each QWidget::move call""
This reverts commit c3e416296a.

The idea of detecting non-spontaneous events by comparing
against the widget's crect has problems when sequences
of programmatic resizes occur. In  addition, QWindowSystemInterface's
queueing of events is problematic for this.

Task-number: QTBUG-39611
Task-number: QTBUG-32590
Change-Id: I9ff8049add147be23e064a513e8645ae04577c6c
Reviewed-by: Andy Shaw <andy.shaw@digia.com>
2014-06-13 13:31:59 +02:00
Thiago Macieira
3ccfc351fd QProcess: Handle spurious socket notifications for stdout and stderr
On Unix systems where the GUI event dispatcher uses a notification
system for socket notifiers that is out of band compared to select(),
it's possible for the QSocketNotifier to activate after the pipe has
been read from. When that happened, the ioctl(2) call with FIONREAD
might return 0 bytes available, which we interpreted to mean EOF.

Instead of doing that, always try to read at least one byte and examine
the returned byte count from read(2). If it returns 0, that's a real
EOF; if it returns -1 EWOULDBLOCK, we simply ignore the situation.

That's the case on OS X: the Cocoa event dispatcher uses CFSocket to get
notifications and those use kevent (and, apparently, an auxiliary
thread) instead of an in-thread select() or poll(). That means the event
loop would activate the QSocketNotifier even though there is nothing to
be read.

Task-number: QTBUG-39488
Change-Id: I1a58b5b1db7a47034fb36a78a005ebff96290efb
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
2014-06-12 17:54:11 +02:00
Thiago Macieira
6ca3ab626a Don't try to read from invalid file descriptors in QProcess
strace reveals that we do ioctl(-1, FIONREAD) and get EBADF. The only
case where this could happen is inside _q_processDied, which calls the
read functions without checking if the pipe is still open.

Change-Id: I67637fc4267be73fc03d40c444fdfea89e1ef715
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
2014-06-12 17:54:11 +02:00
Thiago Macieira
25ef58fe18 QProcessPrivate: merge the functions dealing with stdout and stderr
Simplifies the code.

Change-Id: I4b3a6e725eb245d3531d1d11d959fb3b85862778
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
2014-06-12 17:54:11 +02:00
Thiago Macieira
0f6b3a01e4 Rename QProcessPrivate::destroyChannel to closeChannel
The QProcessPrivate::Channel object contains some structures that may
survive the closing of the pipe, so calling this function "destroy" is
incorrect. Let it be just the closing.

For symmetry, the createChannel() function is renamed to openChannel().

Change-Id: I2899214c6e4c25835390b10ccf3931315a91589e
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
2014-06-12 17:54:11 +02:00
Thiago Macieira
15a0a6e8c5 Move the QProcessPrivate Windows objects into QProcessPrivate::Channel
Similar to the previous commit, this simplifies the code.

Change-Id: Ia02b9b5174b4bc6fd04ec2534231b7db5fc914fa
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
2014-06-12 17:54:11 +02:00
Thiago Macieira
29f92d112a Move the QProcessPrivate channel buffers into QProcessPrivate::Channel
Simplifies the code.

Change-Id: I70b26af69332f364d856042f114c37a70504d66f
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
2014-06-12 17:54:11 +02:00
Allan Sandfeld Jensen
da5dea807f Support hotplugging of input devices with XInput2
Since we only scan for XInput2 devices on application start, we will
currently miss any devices plugged in while the application is running.

This patch makes QXcbConnection listen for XInput2 hierachyChanged
events and use them to trigger a rescan of XInput2 devices.

This fixes a regression in Qt 5.3, where the scroll wheel on hot-
plugged mice does not work until the Qt application is restarted.

Change-Id: I2cdc7ca24d3ab00716cedc4b22355b6e4935b184
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
2014-06-12 14:35:23 +02:00
Zhang Xingtao
02b7b21f9b Doc: correct the format of Q_PLUGIN_METADATA macro in sample codes
Change-Id: I464a0c0a590b0b90cf0fe7ccd448ee9bf704bd4f
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
2014-06-12 14:11:19 +02:00
Lars Knoll
81ba16cad9 Fix case insensitive comparisons using QCollator
In ICU the strength parameter decides whether a comparison is
case sensitive or not.

Fix mac comparison code. It can't have worked before.

Added some basic automated testing for QCollator.

Change-Id: I2646c464fd22ccd3a93c461fa3dba4bd1d4c7b4b
Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
2014-06-12 10:26:07 +02:00
Sergio Ahumada
490e79e39e Merge "Merge remote-tracking branch 'origin/stable' into 5.3" into refs/staging/5.3 2014-06-11 23:06:01 +02:00
David Faure
a6d7e09e89 QWidget: fix documentation for isEnabledTo(0)
It is NOT always the same as isEnabled().
Added a unittest to prove it.

Change-Id: I7717126835923e8c091249bfcdf81767c44fb5f7
Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
2014-06-11 23:06:01 +02:00
David Faure
11aaff3a57 Add missing detach() in QPixmap::convertFromImage()
Task-number: QTBUG-18519
Change-Id: I5d929cf6eda3f34130314edac95487fb00a95db5
Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@digia.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
2014-06-11 23:06:01 +02:00
Sergio Ahumada
7ffbfed7c7 Merge remote-tracking branch 'origin/stable' into 5.3
Change-Id: I147a75ac74bd7b19dbeb99e1ec2836cc5bfc2806
2014-06-11 16:44:33 +02:00
Sérgio Martins
dbe6db192a Windows: Fix maximizing frameless windows on secondary screens.
They would either disappear or be positioned at bogus coordinates.

The MINMAXINFO structure works with coords from the primary screen
then uses an "interesting" algorithm to adjust to secondary screen:

Say you have a primary screen with width=1000 and secondary screen
with width=2000, here's what you get when you set ptMaxSize to:

ptMaxSize.x   | Size window gets in second screen
--------------------------------------------------
    500       |                500
    1000      |               2000
    1001      |               2001
    1100      |               2100

So basically you can't get any value between 1000 and 1999

How many people use the taskbar on a second display and maximimize
a frameless window anyway ?

Task-number: QTBUG-39537
Change-Id: Ic9b3120e7fb5a9a5d97828a2e44be02ae587b92e
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
2014-06-11 16:42:43 +02:00
Coursar
f65333b027 Fix Android: use fbo read back workaround with specific GPUs.
Namely, the Adreno 205. We used to enable this
workaround for Huawei Honor (Adreno 205).

Task-number: QTBUG-33951
Change-Id: Ic92a6913664f2f0954271c700d9ef83d27c238a7
Reviewed-by: Yoann Lopes <yoann.lopes@digia.com>
2014-06-11 16:42:43 +02:00
Gatis Paeglis
d06c6d8a51 Compose key plugin: expand "%L" to full path.
According to [1] "%L" should expand to a full path for the
default (based on system's locale) Compose file.

[1] http://www.x.org/archive/current/doc/man/man5/Compose.5.xhtml

Task-number: QTBUG-35943
Change-Id: Ie803a89742d9c0aa3b2d759bea28ed403dc68c9c
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
2014-06-11 15:01:06 +02:00
Sergio Ahumada
4b43a5d528 Merge "Merge tag 'v5.3.0' into HEAD" into refs/staging/stable 2014-06-11 12:10:04 +02:00
Oswald Buddenhagen
a16818cc3d Merge tag 'v5.3.0' into HEAD
Qt 5.3.0 Release

Conflicts:
	src/plugins/platforms/cocoa/qcocoaintegration.mm

Manually removed call to setWindow in src/plugins/platforms/cocoa/qcocoawindow.mm
to follow 1ac0f953ba.

Change-Id: Ieddedf4cd7b47effce6b6865fb9c48df6c5838a7
2014-06-11 10:41:08 +02:00
Steffen Imhof
641ca1d7cb Fix QT_NO_SETTINGS build in QLibraryInfo.
One reference to QSettings was only guarded by QT_BOOTSTRAPPED.

Change-Id: I2f9761ee88b4a45edb16054fdba3c3f11fec12ff
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
2014-06-10 16:25:22 +02:00
Steffen Imhof
ba9b1b0512 Fix QT_NO_BEARERMANAGEMENT compile of QHttpThreadDelegate.
Re-order the constructor parameters for QHttpNetworkConnection to be consistent with the #ifndef version.

Change-Id: Icd8be4406ff549d468e06d635fac2ddc34826b1c
Reviewed-by: Richard J. Moore <rich@kde.org>
2014-06-10 16:25:22 +02:00
Steffen Imhof
aa4ad43cfd Fix QT_NO_LIBRARY compile in Unix DNS lookup implementation.
The static method QDnsLookupRunnable::query() got an additional parameter for QTBUG-30166, but the #ifdef'd part was not updated.

Change-Id: Ifc317bfae6e02c00936e1922ec77f89fb5faf497
Reviewed-by: Richard J. Moore <rich@kde.org>
2014-06-10 16:25:22 +02:00
Jerome Pasion
857c82f8a4 Doc: Updated Layout examples.
-added links to and from the overviews.
-added information on how to run the example.
-updated copyright.

Task-number: QTBUG-33597
Change-Id: Ib049cb94f136caa6916878959ae830248bd236b5
Reviewed-by: Martin Smith <martin.smith@digia.com>
Reviewed-by: Nico Vertriest <nico.vertriest@digia.com>
2014-06-10 15:56:59 +02:00
Jan Arve Saether
8fa91217bc Make sure we run gracefully below API level 18
Task-number: QTBUG-39508
Change-Id: I023ba7c50de5c95a5514658797125e22016a6543
Reviewed-by: Yoann Lopes <yoann.lopes@digia.com>
Reviewed-by: Christian Stromme <christian.stromme@digia.com>
2014-06-10 14:10:21 +02:00
Simon Hausmann
e3d32bce79 Fix failing qtdeclarativetextedit auto-test
After commit c3baa7c1dc the qtdeclarativetextedit
tests in the qtquick1 module started failing. This was due to commit
852abfca6f4c349dce9b895956922f96d82df579 from 4.8 not being forward-ported from
Qt 4 to Qt 5, hence the comment in c3baa7c1dc
about the missing mousePressEvent line. It was intentionally removed and
instead used further down, which is what this patch adds and therefore acts as
forward-port of 852abfca6f4c349dce9b895956922f96d82df579.

Change-Id: I55978c961002382c1f228bf796c469c10686ba9f
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
2014-06-10 14:09:29 +02:00
Topi Reinio
1a3d149174 qdoc: Revised logic for which example file to open in Qt Creator
qdoc stores the 'files to open' into the example manifest. These
files are opened in Qt Creator's editor when an example is selected
from the Welcome / Examples list.

This change uses the following criteria (case insensitive), in
order of preference:
    - .qml file matching the project name
    - .cpp file matching the project name
    - .h file matching the project name
    - main.qml
    - main.cpp

A 'mainFile = "true"' argument is written for the file that is
preferred to be the top-most file.

Having a main.qml file take precedence over main.cpp ensures that
most Qt Quick examples open into the relevant QML code instead of
the boilerplate C++ used for launching the application.

Task-number: QTBUG-37203
Change-Id: I2ea58a31b1284f4f7d424dd35d49a84a23a88c23
Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
Reviewed-by: Eike Ziller <eike.ziller@digia.com>
Reviewed-by: Martin Smith <martin.smith@digia.com>
2014-06-10 10:16:56 +02:00
Mitch Curtis
7da3228abb Fix typo in QGraphicsTextItem::defaultTextColor() documentation.
Change-Id: I6e255483d63a3024d9cbfe09a12f33d7fddf36c0
Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
2014-06-10 09:12:49 +02:00
Mitch Curtis
8480ddbe60 Remove unnecessary comma in QStackedWidget doc.
Change-Id: Iaa6102ea90c695eb2d81cc5d4fbd00dafc7783f5
Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
2014-06-10 09:06:24 +02:00
Morten Johan Sørvig
360fd4a278 Cocoa: Don't send duplicate close events.
Don't send QCloseEvents to QWidgetWindows during
cmd-q application shutdown, since widgets will
will already have received close events from
QApplication close event handling.

Task-number: QTBUG-39398
Change-Id: I7f6e892b0042361bed7a3bc5fac8518eabfc8e4e
Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
2014-06-10 06:54:11 +02:00
David Faure
29513210df Doc: QAtomicInteger first appeared in Qt 5.3
Change-Id: I900e5b0ec8291d34685cb545540a5a9f54551d05
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2014-06-09 18:44:57 +02:00
Andy Shaw
9a3a3b641a Don't try to draw if there are no points in the path
In some cases, for instance if drawEllipse() was called with a null QRect
then it would still try to draw a QVectorPath without having enough points
in the list. Therefore the point_count should be checked first before
doing any drawing.

Change-Id: I9b8dbb87c73b74e9df9eb10ec790a484d05d4c46
Reviewed-by: Gunnar Sletta <gunnar.sletta@jollamobile.com>
2014-06-09 12:35:02 +02:00
Morten Johan Sørvig
908de0fb8d NSURLConnection: Set http response status code.
Make XMLHttpRequest.status work.

Task-number: QTBUG-38864
Change-Id: Ic691b39a43aeb2ad3cd2e8ffef64c74d02699755
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
2014-06-07 23:14:16 +02:00
John Layt
398ae00e84 QPrinter - Don't use QPrinterInfo::availablePrinters()
The availablePrinters() method can be slow as it gets all info for every
printer which may be slow with many network printers.

Change-Id: I4bc5ef46ed4867326b60b66371178b84204639ce
Reviewed-by: Andy Shaw <andy.shaw@digia.com>
2014-06-07 19:06:26 +02:00
Morten Johan Sørvig
7eba6d039d Cocoa: Re-implement QCocoaScreen::topLevelAt()
The previous implementation used [NSApp orderedWindows]
which does not return NSPanel subclasses, which is
used by Qt dialogs and pops.

Use [NSWidow windowNumberAtPoint:belowWindowWithWindowNumber]
instead, which hit-tests on all window types. This
can potentially include windows from other processes
and non-Qt windows which needs to be filtered out.

Add EXPECT_FAIL to tst_MacGui::nonModalOrder. The
correct topLevelAt() implementation now exposes that
this test is failing.

Task-number: QTBUG-39322
Change-Id: I81afa3da964e08fe682802220d8fe81e9284205e
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
2014-06-06 23:39:12 +02:00
Jan Arve Saether
0af887124a Do not crash with IA2 AT clients.
Make sure all members of the IA2Locale we return are properly
initialized. Only accProbe provoked this bug, and I have no idea why
this haven't crashed earlier.

nvda probably does not query the locale, therefore it was unaffected.

Change-Id: I5a9d98eed5af56fd2a75f6cb7035ed613fd802d5
Reviewed-by: Jan Arve Sæther <jan-arve.saether@digia.com>
2014-06-06 19:58:49 +02:00
Oliver Wolff
7e9f08302c winrt: set error if tcp socket initialization fails
Change-Id: I31a2684ffdc864c69fe896829bca860e88c4a6ca
Reviewed-by: Andrew Knight <andrew.knight@digia.com>
2014-06-06 16:52:24 +02:00
Oliver Wolff
9cd7403801 winrt: do not try to close non existent sockets
Change-Id: I41103db89985f8fbde1faaccaf33c7a76c275f7d
Reviewed-by: Andrew Knight <andrew.knight@digia.com>
2014-06-06 16:52:24 +02:00
Oliver Wolff
7e44e4bb4e Windows: Added Comma to list of possible numpad keys
Some keyboard layouts (German and Czech for example) have comma instead
of period on the numpad, so this key should also be considered when
setting the Qt::KeypadModifer state.

Task-number: QTBUG-38248
Change-Id: I06847a02a9334c21784790eae6fd7e1bc6de4099
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
2014-06-06 16:52:24 +02:00
Jerome Pasion
56a087a1ef Doc: Added link to SQL example page from main Qt SQL landing page.
Change-Id: I1fe42b6ec72933ea8ba605836e8a56332fd3c691
Reviewed-by: Martin Smith <martin.smith@digia.com>
2014-06-06 16:52:24 +02:00
Kai Koehne
7ec4939313 Fix documentation about QStringLiteral
The fallback for QStringLiteral in case C++11 features are not enabled
is QString::fromUtf8(), not QLatin1String().

Also, the result of a QStringLiteral expression _is_ a QString.

Change-Id: Ib9c2f4c13fff237de3acb2e0f64027bacea6271c
Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2014-06-06 13:19:52 +02:00
Richard Moe Gustavsen
bc9423316f iOS: delay callbacks to UITextInput to avoid recursion
If the application calls "reset" or "commit" on the input
method (or forces active focus on some other item) from a text
changed or key pressed handler, iOS will sometimes throw
an exception. It does so because we try to change the state
of UITextInput (by calling textDidChange) while processing a
callback from the same place (insertText).

Optimally this should not happen since we would normally
post such events to Qt, not send them directly. But with
text input we cannot do this since UITextInput expects us
to update immediately upon receiving text input callbacks.
If not, word completion and spell checking will stop working.

This change will guard against recursive callbacks by delaying
callbacks to UITextInput when text/selection/first responder
changes.

Change-Id: I099f30adf1c5aba241fc833a45b423016f4ed8d0
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
2014-06-06 11:21:17 +02:00
Allan Sandfeld Jensen
3441738d5f Remove unfinished NEON version of vectorized rotate sampling
A vectorized codepath for rotating transforms were added in 5.3.0, but
was only properly tested for SSE2. The NEON version remains unfinished.
Since it was never working, this patch reverts the NEON version.

Task-number: QTBUG-39445
Change-Id: Ifbce0e03781d217ad976c6b18ac88381055cba66
Reviewed-by: Gunnar Sletta <gunnar.sletta@jollamobile.com>
2014-06-06 08:48:35 +02:00
Friedemann Kleint
a1c5198387 Suppress move/resize events if they are the result of call to move()/resize().
QWidget::resize() or QWidget::move() set the new size/position values
and send events. The spontaneous events generated by the platform
should be ignored in that case.

Task-number: QTBUG-30744
Task-number: QTBUG-38768
Task-number: QTBUG-32590
Change-Id: I9c0ae38842ed76a8a88ca64fdc9bbe106b2766b7
Reviewed-by: Andy Shaw <andy.shaw@digia.com>
2014-06-06 06:30:44 +02:00
Friedemann Kleint
c3e416296a Revert "Fixed duplicate QMoveEvent generated for each QWidget::move call"
A better fix is to check whether the widget already has the requested
geometry when receiving the spontaneous event from the platform in
QWidgetWindow and to suppress that.

This reverts commit 72259baa76.

Task-number: QTBUG-32590
Change-Id: I4d7a9b4c340c2d6a427727ecb8de50c3d199f7a9
Reviewed-by: Andy Shaw <andy.shaw@digia.com>
2014-06-06 06:30:22 +02:00
Friedemann Kleint
c3baa7c1dc Fix selection by dragging after double click in QWidgetTextControl.
Remove return in mouseMove depending on variable mousePressed which
is not present in Qt 4. The variable was true in Qt versions
before 5.3 due to an additional mouse press event received before
a double click.

Task-number: QTBUG-39023
Task-number: QTBUG-25831
Change-Id: I57ed9284961195c71df9e9b9d697b1cfbad7c228
Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
2014-06-06 06:29:47 +02:00
Friedemann Kleint
a6855cbf40 QPlatformClipboard::emitChanged(): Do not emit signals when closing down.
Prevents a shutdown crash in the Qt Mfc migration solution.

Task-number: QTBUG-39317
Change-Id: I7f0aa40715baed57ff59682a477084347dfd45bc
Reviewed-by: Andy Shaw <andy.shaw@digia.com>
2014-06-06 06:28:57 +02:00
Laszlo Agocs
ab3603d2b5 Fix alpha in no-opengl configuration on xcb
Like the EGL + xcb configuration, the -no-opengl is broken too when
it comes to translucent windows: Requesting an alpha channel is futile
since the xcb_create_window call always uses the root's depth and visual.

This is now corrected by picking a 32-bit visual.

This will make translucent windows and drag pixmaps appear correctly again.

Task-number: QTBUG-35126
Change-Id: I00e7d6e08b5fcc055ef3ea6d822561740a1f5457
Reviewed-by: Gatis Paeglis <gatis.paeglis@digia.com>
2014-06-06 02:51:32 +02:00
Laszlo Agocs
0712b4ff71 Fix visual selection with EGL on xcb
Using a 24-bit visual for 8888 configs is wrong since we loose the
alpha channel. This breaks translucent windows and, among others,
leads to not showing drag pixmaps (that typically have transparent
areas) properly.

Change-Id: I516c84327680b76996b622831e431c29d840471e
Task-number: QTBUG-35126
Reviewed-by: Paul Olav Tvete <paul.tvete@digia.com>
2014-06-06 02:51:32 +02:00
Laszlo Agocs
1b21974f3e Avoid polluting the output with warnings on eglfs
Many windowing functions are not supported (since they do not make sense)
on the embedded platforms. Provide empty implementations for a few more
to avoid showing useless warnings, in particular for widget apps. The
user cannot do anything about it and these are not errors.

Task-number: QTBUG-39081
Change-Id: I29afd981e037d1e6772bcdfc33497e6d0ae02008
Reviewed-by: Paul Olav Tvete <paul.tvete@digia.com>
2014-06-06 02:51:32 +02:00
Laszlo Agocs
d1c0015546 Make multisampling more robust in QOpenGLFramebufferObject
Some drivers are reported to get confused when passing different
sample counts (requested vs. actual) to the color and depth/stencil
attachments. To overcome this, pass the requested sample count to all
the attachments.

Task-number: QTBUG-33406
Change-Id: I17b0e3dbbd78de2ab0f45e95164b4f326d47aeff
Reviewed-by: Paul Olav Tvete <paul.tvete@digia.com>
Reviewed-by: Kimmo Leppälä <kimmo.leppala@digia.com>
2014-06-06 02:51:32 +02:00
Christian Strømme
bbdf6a8039 Android: Use exceptionCheck() function.
This was the only place where we didn't use the exceptionCheck()
function. Besides being more consistent, it's also more verbose if an
exception occurs.

Change-Id: Ib1e3dba82b0730cf189ec725f4da425d7ac85cdc
Reviewed-by: Yoann Lopes <yoann.lopes@digia.com>
2014-06-05 23:23:56 +02:00
Oswald Buddenhagen
939d021813 do not auto-add install dir to index dirs
the install dir may contain indexes from previous builds. a build must
never refer to previous builds.

Change-Id: I67c04df8f3f82bdbebb67e280f70795ed0a76ccf
Reviewed-by: Topi Reiniö <topi.reinio@digia.com>
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
2014-06-05 17:11:35 +02:00
Topi Reinio
d6525a6c10 Doc: Fix undefined variable in QMetaMethod::invoke() documentation
Task-number: QTBUG-38871
Change-Id: I5b7aef58c652d13110aa73b7856927b5ba6fea50
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
2014-06-05 09:48:13 +02:00
David Faure
8636bade17 qfreelist: fix data race on v[at].next
Detected by clang's -fsanitize=thread in tst_qcoreapplication.

Task-number: QTBUG-39024
Change-Id: I60b7cece0384f89dc62ac5128faf39a4084e72e2
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
2014-06-05 09:42:47 +02:00
Christoph Schleifenbaum
958a4c9087 QApp: Method to check for native style usage.
Adds QApplicationPrivate::usesNativeStyle to check whether the
QApplication is using the native platform style.

This can be needed internally to decided whether to let the platform
plugins do stuff or do it interally, style dependent. E.g. letting the
platform plugin popup a QMenu vs. letting the style draw one.

Change-Id: Ibb5e11a4d9d1d2824685ff146786a9354ceef43c
Reviewed-by: BogDan Vatra <bogdan@kde.org>
2014-06-05 09:18:28 +02:00
Lars Knoll
7df8b1ada4 Properly escape bytearray data outside the ascii range when using a codec
Some codecs can't handle the range outside ascii properly and would then
fail to read the data back in correctly.

Task-number: QTBUG-15543
Change-Id: I4c02921e787a939eeec0c7a11603b5896d756aef
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2014-06-04 23:06:16 +02:00
Friedemann Kleint
a149d2f73e Do not clear default button in QMessageBox::setDetailedText().
Store the value of QMessageBoxPrivate::autoAddOkButton
temporarily when automatically adding the "Show Details..."
button.

Task-number: QTBUG-39334
Change-Id: I173c83893548ee83b3d8ea2743f87686c32657e7
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
2014-06-04 14:43:02 +02:00
Eskil Abrahamsen Blomfeldt
91b0b2e1a7 Android: Repaint affected areas when window moves
There are no automatic updates of the window when it moves, since
this is not required on most platforms. This broke drag and drop on
Android, because drag and drop creates a temporary window containing
a pixmap with a snapshot of its content. We need to make sure the old
and new location of the window is repainted when it has moved.

[ChangeLog][Android] Fixed repaint issues in drag and drop.

Task-number: QTBUG-35975
Change-Id: I7b043d728551d9963fb5acec804fb90aec5b50ff
Reviewed-by: Paul Olav Tvete <paul.tvete@digia.com>
2014-06-04 13:56:16 +02:00
Eskil Abrahamsen Blomfeldt
80b6fbc2d9 Android: Support offscreen surfaces on pbuffers
This is pretty much the same thing that eglfs does.

Task-number: QTBUG-38960
Change-Id: Ibf310ca8e3a4e31e5310ab3a3d3e851eae31a4ad
Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
2014-06-04 09:29:50 +02:00
Eskil Abrahamsen Blomfeldt
90808ead98 Android: Fix flashing on startup/shutdown
There were several issues on startup of the application which
were caused by the fact that we would get the wrong
available screen geometry on startup, set this as the
initial surface size and then expose native windows with this
size. This would cause first a flicker of white on the early
expose and the window contents to jump around as the window was
resized to the actual available space on screen.

The fix for this is to postpone the first expose until we have
actually got a proper screen size from the main layout. We use
width,height = 0 as an indicator that the available geometry
is not yet known, and we skip posting any expose events before
this is set by the layout.

In addition, since we removed the surface before we shut down
the application, it was by a white rectangle before the
shutdown transition happens, and this white rectangle will
be animated instead of application contents.

To rectify this, we make sure the last surface in the stack
remains in the layout until it is either replaced by a different
surface or until the application has shut down. This way, the
shutdown animation will work on this surface instead.

[ChangeLog][Android] Fixed regression where there would be flickering
on startup and shutdown of the application.

Task-number: QTBUG-38960
Change-Id: Ia1579ca8c522d8beeab066f78070ad49009d0238
Reviewed-by: Paul Olav Tvete <paul.tvete@digia.com>
2014-06-04 09:29:43 +02:00
Dyami Caliri
ac7bf97f51 Cocoa: clear queued user input events when window is destroyed
QCocoaEventDispatcher stores user input events in a queue in certain
cases. If the target of those events is destroyed, the events are later
sent to the stale window, causing a crash.

Task-number: QTBUG-39211
Change-Id: Ie55d2df5697c742bcb644ebf8c5028015a0b8148
Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
2014-06-03 17:25:36 +02:00
Gabriel de Dietrich
70e4428b6f Cocoa: Adapt to Xcode 6 clang version sudden pickiness
Yes, that means OS X Yosemite fix.

Change-Id: I236f7af7b803de24ff0895e04c9a9253b5cfdb3b
Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
2014-06-03 17:25:36 +02:00
Morten Johan Sørvig
9e02f9cf08 Cocoa: Make QMacNativeWidget event processing work
Don't interrupt the Qt event loop if the Qt event
loop isn't running (meaning processEvents has not/
will not be called). This can happen in the QMacNativeWidget
or plugin case where the native code calls [NSApp run]
and QApplication::exec() is never called.

In Qt 4 this was not necessary since UI event
processing was more direct: QCocoaView would call
QCoreApplication::sendMouseEvent/sendSpontaneousEvent
directly on mouse events.

Task-number: QTBUG-36225
Change-Id: I2894cbbca66a902652c9f8bc916e94ad8ce0e18e
Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
2014-06-03 17:25:36 +02:00
Rafael Roquetto
365cd4adeb QNX: fix race condition when clearing transparent buffer
Block flush until all bits have been flushed. This prevents Qt from trying to
draw over the buffer while it is still being cleared.

Change-Id: I49b90a7653ec3768411a1a94837bb31fec4d44e8
Reviewed-by: Frank Osterfeld <frank.osterfeld@kdab.com>
Reviewed-by: Andreas Holzammer <andreas.holzammer@kdab.com>
Reviewed-by: Bernd Weimer <bweimer@blackberry.com>
2014-06-03 17:25:36 +02:00
Maurice Kalinowski
6b9a9a01e2 remove HSTRING instances
HSTRING needs to be released or handles will be leaked.
Instead use HString which takes care of resource management
on its own.

Task-Number: QTBUG-38115
Change-Id: I2c767776c1f22f45acd8dd77b693f30d63d894b9
Reviewed-by: Andrew Knight <andrew.knight@digia.com>
Reviewed-by: Oliver Wolff <oliver.wolff@digia.com>
2014-06-03 09:55:30 +02:00
Rafael Roquetto
69e2d3b3e9 QNX: Fix compilation when OpenGL is not available
Change-Id: I67a1d095fc3efd58e9520c9cb3fad13e04a4d64f
Reviewed-by: Frank Osterfeld <frank.osterfeld@kdab.com>
Reviewed-by: Bernd Weimer <bweimer@blackberry.com>
2014-06-02 20:12:18 +02:00
Rafael Roquetto
6bd8c3742e QNX: Fix clearing transparent buffer
Testing whether alphaBufferSize() != 0 does not work, because when no alpha
channel is present, alphaBufferSize() can return '-1', which will cause
non-transparent windows to be  wrongly cleared and an artifact will appear.

Change-Id: Id9e985f105c0bb302cc6f53960a5dbae2acdb921
Reviewed-by: Frank Osterfeld <frank.osterfeld@kdab.com>
Reviewed-by: Wolfgang Bremer <wbremer@blackberry.com>
Reviewed-by: Sergio Ahumada <sahumada@blackberry.com>
2014-06-02 20:12:10 +02:00
Maurice Kalinowski
64de8fb29d add Windows 8.1 override
Change-Id: Id8aa549e4ba5d8b550405823e26bb68da9403ced
Reviewed-by: Oliver Wolff <oliver.wolff@digia.com>
2014-06-02 11:22:26 +02:00
Jan Arve Saether
4a7083dd27 QDialogButtonBox does not need TabFocus
It will now share the same behavior as QGroupBox, which has NoFocus
if its not checkable.

This doesn't lure AT clients to stop and read its content (this is the
case for android accessibility) (designer seems to generate a tooltip
for each QDialogButtonBox, which will be read as the name).

Change-Id: I6cfacdd9c01299521222c773634df1e36971d982
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@digia.com>
2014-05-31 14:48:39 +02:00
Jake Petroules
42f9a61608 Fix QSysInfo::macVersion for OS X minor versions greater than 9.
gestaltSystemVersion's encoding only has room for a single version
digit. Thus, OS X 10.10 would previously have been detected as OS X 10.9
(Apple's comments in the header even warn against this).

Change-Id: I41c35b1507d39e2958a9aaffaa8c48ac380f61d9
Reviewed-by: Samuel Gaist <samuel.gaist@edeltech.ch>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2014-05-31 01:27:44 +02:00
Thiago Macieira
2d75c21923 Update the QSignalBlocker docs to show actual behavior
QSignalBlocker resets to the previous state, which might have already
been a blocked signal state.

Task-number: QTBUG-39352
Change-Id: I918cc6ea346755b940e027cee5d6704824fbba32
Reviewed-by: David Faure <david.faure@kdab.com>
2014-05-30 22:16:03 +02:00
Jan Arve Saether
bfc0b27b4b Do not resolve the java functions for each call
Instead do it only once (in registerNatives). This is seems to be the
preferred way of doing it in other parts of the platform plugin.

Change-Id: I361a7862bb5a24b4024c7c6a30ecb14fc515d4ff
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@digia.com>
2014-05-30 13:58:27 +02:00
Jan Kundrát
267ba8b63e QAbstractProxyModel::sibling: treat row/column as offsets within the proxy
Qt5 allows QAIM subclasses to reimplement the sibling() method. Unfortunately,
the default QAbstractProxyModel's reimplementation differs in behavior to what
the Qt4 version was doing. In particular, the Qt4 version used to use the row
and column as positions within the proxy model, while the Qt5 version mistakenly
does this at the level of source model. This is arguably broken; the caller asks
for a sibling of the proxy index, not for a sibling within the proxy model.

This change makes the QAPM::sibling work explicitly in the same way as the Qt4
code behaved.

The reimplementation of QAbstractProxyModel::sibling was introduced in
9dfba89c28. It was subsequently fixed with commit
999109866d not to return indexes from the source
model, but the logic was still different from the Qt4 version.

[ChangeLog][QtCore][QAbstractProxyModel] Fixed QAbstractProxyModel::sibling to
work in the same manner as the Qt4 code used to behave. Previously, Qt5's
implementation would treat the row and column as positions in the source model
instead of a position in the proxy itself.

Followup-to 9dfba89c28 and
999109866d
Change-Id: Ia25027b2ad9e4777ba28de2d2226d48f8cccf587
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
Reviewed-by: Mark Brand <mabrand@mabrand.nl>
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
2014-05-29 11:11:02 +02:00
Eskil Abrahamsen Blomfeldt
909b0de5d1 Windows: Fix another crash when creating QRawFont from invalid data
The sanity check added in d16508a285
didn't actually catch the case where the invalid data is large
enough to contain the offset table and table directory. Added sanity
checks to all the code that accesses the font data now, so this
should fix crashes with partial data as well as invalid data.

Task-number: QTBUG-37190
Change-Id: Ie43f10d8cf0b09007783b9b1c4d91bfed8c6b0f0
Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
2014-05-28 16:52:04 +02:00
Friedemann Kleint
3478ec2949 Move native subwidgets in QWidget::scroll().
Task-number: QTBUG-38999
Change-Id: Ie22dcf61895bbfc575eaae4d1929516a8749de39
Reviewed-by: Jørgen Lind <jorgen.lind@digia.com>
2014-05-28 16:52:04 +02:00