Cocoa: Clear window hash entry in ~QCocoaWindow.

The Cocoa platform plugin maintains a NSWindow->
QCocoaWindow hash.

Hash entries was not properly cleared on QCocoaWindow
destruction. Add call to clear the entry for the
destroyed window. Make QCocoaIntegration remove
the key from the hash in this case instead of
setting it to 0.

Task-number: QTBUG-37597
Change-Id: I3adaeee45069aea1d2ecacd948298302eafe1929
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
Update Copyright year in commercial nag screens

Change-Id: I70420c44c018dbe733a50badb7f9f7f419459f7a
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
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>
QNX: Fix build for QNX 6.5

QNX 6.5 does not have readdir64_r, which is selected by current
qplatformdefs.h. There is only a reentrant version (readdir_r) which
does not support large files and a large file version (readdir64) which
is not reentrant. The reentrant version (readdir_r) will be chosen now.

In summary, the following versions will be used:
QNX 6.5:  readdir_r    (postfix '_r': reentrant version)
QNX 6.6: _readdir_r    (prefix  '_' : extra stat info included)
BB 10:   _readdir64_r  (infix   '64': large file support)

Change-Id: I00739f0e2054a32f52555309d03463a6c52e3d99
Reviewed-by: Wolfgang Bremer <wbremer@blackberry.com>
Reviewed-by: Samuli Piippo <samuli.piippo@digia.com>
Reviewed-by: Sergio Ahumada <sahumada@blackberry.com>
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>
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>
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>
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>
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>
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>
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 72259baa76a0f1faa1983c720621676e9c15e15f.

Task-number: QTBUG-32590
Change-Id: I4d7a9b4c340c2d6a427727ecb8de50c3d199f7a9
Reviewed-by: Andy Shaw <andy.shaw@digia.com>
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>
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>
Ensure that there is no duplication of the output directory in output

When a relative path was specified as the output then it would be in both
Option::output_dir and Option::output. Therefore in that case
Option::output should be just the filename as Option::output_dir has the
correct path to output to.

Task-number: QTBUG-39460
Change-Id: Idc988e6bad94f34b89660fb5e8d6fa3a39dc623b
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
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>
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>
Doc: Added link to SQL example page from main Qt SQL landing page.

Change-Id: I1fe42b6ec72933ea8ba605836e8a56332fd3c691
Reviewed-by: Martin Smith <martin.smith@digia.com>
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>
winrt: do not try to close non existent sockets

Change-Id: I41103db89985f8fbde1faaccaf33c7a76c275f7d
Reviewed-by: Andrew Knight <andrew.knight@digia.com>
winrt: set error if tcp socket initialization fails

Change-Id: I31a2684ffdc864c69fe896829bca860e88c4a6ca
Reviewed-by: Andrew Knight <andrew.knight@digia.com>