XCB: silence warnings about possibly undefined shifts

The code shifts "1" by a uint32 number. If that number is >= 32,
we're triggering undefined behavior, and Coverity rightfully complains
about that. Add some asserts to silence those warnings.

Change-Id: Ib91085a279b0a2b7ad37afad05ec1d764c0496b1
Reviewed-by: Uli Schlachter <psychon@znc.in>
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
Android: Don't call requestLayout() when changing the geometry.

requestLayout() is already called when setLayoutParams() is called, so
calling it again is extremely wasteful.

Change-Id: Iddfb488830a6b7277a653a84ffacabf966baf0b5
Reviewed-by: BogDan Vatra <bogdan@kde.org>
Android: null pointer check

Task-number: QTBUG-41680
Change-Id: I740fb2a6df5613a8ee724b59dab08674a3337236
Reviewed-by: Kai Uwe Broulik <kde@privat.broulik.de>
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@theqtcompany.com>
Android: Thread fix/optimization

Do the cheap test before sending an expensive query that might
use a mutex.

Task-number: QTBUG-41369
Change-Id: I78f03c84e5bbf0492f1b7ea18d1baa752a1beff2
Reviewed-by: Christian Stromme <christian.stromme@digia.com>
Android: Support QClipboard::clear()

QClipboard::clear() is implemented by calling
QPlatformClipboard::setMimeData() with a null pointer. Since we
would do nothing in this case on Android, then the clear()
function would have no effect.

[ChangeLog][Android] Added support for QClipboard::clear()

Task-number: QTBUG-41854
Change-Id: Id569b102f2e561e46967b52f89d9b54031d92456
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@digia.com>
Android: Fix memory leak in QClipboard::setMimeData()

The ownership of the object passed into QClipboard::setMimeData()
is documented to be transferred to the clipboard, but we never
deleted it, thus all these objects would leak.

[ChangeLog][Android] Fixed memory leak in QClipboard::setMimeData()

Change-Id: I43e6bad1071be5f56c219cb9341584edba54d2bd
Task-number: QTBUG-41852
Reviewed-by: BogDan Vatra <bogdan@kde.org>
Prevent parsing of SSL certificates from 0-size buffers.

When QSslCertificatePrivate::certificatesFromDer() was passed count ==
-1 to extract unlimied number of certificates from buffer, it also tried
to parse the 0-sized fragment after the last certificate.  This has
caused d2i_X509() to report an error on latest OpenSSL.

Task-number: QTBUG-41774
Change-Id: Ifa36b7ac5b4236bd2fb53b9d7fe53c5db3cb078c
Reviewed-by: Peter Hartmann <phartmann@blackberry.com>
Add information about unsupported SSL protocol when creating context.

When creating SSL context failed due to unsupported protocol being
demanded, no explanation was given. It's because
QSslContext::fromConfiguration() extracted explanation for error message
from OpenSSL, which at that point hasn't even been called yet. This
patch adds explicit message informing that an unsupported protocol was
chosen.

Task-number: QTBUG-41775
Change-Id: I9d2710da4ba314a16837a90afcdc5d9256179bef
Reviewed-by: Peter Hartmann <phartmann@blackberry.com>
Add a warning when using QOpenGLWidget as a native child

Just like it is done for QQuickWidget.

Task-number: QTBUG-41779
Change-Id: I1b27c2ed34ecb2520edf82843b675dbf6b0eab8e
Reviewed-by: Michael Bruning <michael.bruning@digia.com>
Reviewed-by: Paul Olav Tvete <paul.tvete@digia.com>
Print warning when unable to query physical screen size

This warning was removed when re-factoring code in:
328f2f9c35f3cc5e7049a060a608c3f72876484a

Change-Id: I5a9d7fbbf2b78e6e80a79478f4e9fb08ccaec431
Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
Disable tst_qhostinfo on OS X.

Task-number: QTBUG-41847
Change-Id: Idfb4058a50a0baecce1b3e430629ec6b2867550b
Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
Improve threadedqopenglwidget example.

Retrieve vendor/renderer name similar to context info
and exclude renderers that do not support threaded
Open GL (ANGLE/noveau).

Change-Id: I690c2fc277538bf28bf1f6032c2e017ede15e434
Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
Gcc 4.5.* build fix.

Q_COMPILER_DEFAULT_MEMBERS and Q_COMPILER_DELETE_MEMBERS are now set
starting from gcc 4.6. Pre-4.6 compilers implement a non-final snapshot
of N2346, hence default and delete functions are supported only if they
are public. Starting from 4.6, GCC handles final version - the access
modifier is not relevant. Compiler error:

  qsharedpointer_impl.h:717:31: error:
  'QEnableSharedFromThis<T>::QEnableSharedFromThis()' declared with non-public access cannot be defaulted in the class body

Change-Id: If1d3d4696f91912a09ca72bd4aa1fb07f491a0cb
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Android: Support QSysInfo::productVersion()

Gets the user-readable string for the current running Android
version.

Task-number: QTBUG-41764
Change-Id: Iefea4a4f5291bfddc99bbf901676ccd33fbc23d6
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: J-P Nurmi <jpnurmi@theqtcompany.com>
Android: Return empty mime data instead of 0 from empty clipboard

This is consistent with other platforms such as iOS and
XCB, which return a QMimeData with an empty text when the clipboard
is empty.

[ChangeLog][Android] QClipboard::mimeData() now returns an empty
object instead of null pointer from QClipboard when clipboard is
empty for consistency with other platforms.

Change-Id: I17068f0afcb63690cf11048ffa60e19dc9b08691
Task-number: QTBUG-41817
Reviewed-by: Paul Olav Tvete <paul.tvete@digia.com>
Fix memory leak in QClipboard::setMimeData()

The setMimeData() function is documented to take ownership of
the object passed in, but in the case where the platform
plugin did not support the requested mode, we would simply
return without deleting the object nor telling the application,
so it would cause a potential memory leak. We need to honor the
contract, even when we fail to set the mime data.

Test was updated to avoid verifying the leak in cases where
the platform does not support all modes.

[ChangeLog][QtGui][Clipboard] Fixed a memory leak in setMimeData()
when the platform plugin did not support the requested mode.

Task-number: QTBUG-41852
Change-Id: I2112da1613199fe1b56724e7ccf097b9e912c117
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@digia.com>
QMenu: ensure that a menu item's icon can be removed dynamically

Task-number: QTBUG-41348
Change-Id: Iad3b7f000ebce51530f5e196868aefffad2e1eab
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
Fix patching of installation date

Marking qt_eval_expiry_date alone as volatile apparently didn't stop
the compiler from optimizing away the calculation of the expiry date.

Task-number: QTBUG-41612
Change-Id: Ia51fb83f03250346952a76c8a1a641096b4ff9e7
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Kalle Viironen <kalle.viironen@digia.com>
Reviewed-by: Iikka Eklund <iikka.eklund@digia.com>
DPI-scale PM_SubMenuOverlap after all

This actually isn't a magic value and needs to be scaled.

This partially reverts commit be1635e2d6a4e42f3f828e7831e5dbf867ba161d.

Task-number: QTBUG-41864
Change-Id: Ie03c96c8b5343386f55c3ae9b988e79f943f334e
Reviewed-by: Alessandro Portale <alessandro.portale@digia.com>
Android: Make memory handling in QClipboard consistent with iOS

On iOS we do deleteLater() on the mime data instead of deleting
it directly, in case the application should happen to use the
pointer again directly after setting it on the clipboard.
Technically it would be a bug in the application, but using
deleteLater() is safer and it's better to be consistent with
iOS so that a buggy application crashes in the same places in
both.

Change-Id: I2996d6c7816a2f83615a43609f5be207aaa72c86
Task-number: QTBUG-41853
Reviewed-by: BogDan Vatra <bogdan@kde.org>