Make QExplicitlySharedDataPointer<T> copy-ctor from QESDP<X> more safe

With "QExplicitlySharedDataPointer::QExplicitlySharedDataPointer( const
QExplicitlySharedDataPointer<X> & other)" implicitly doing an
static_cast<T *>(...) on other.data(), this could lead to dangerous use
of this copy constructor.

Example code:
  QExplicitlySharedDataPointer<Base> base(new Base);
  QExplicitlySharedDataPointer<Derived> derived(base); // that works!

This patchs disables the use of the static_cast, and adds a new define called
QT_ENABLE_QEXPLICITLYSHAREDDATAPOINTER_STATICCAST to re-enable
that code path.

Note, that the other way-around (assigning 'derived' to 'base') still
works as intended.

Other side note: QtXmlPatterns is relying heavily on the hidden
static_cast "feature". The other default Qt modules compile fine with
the static_cast removed.

[ChangeLog][Important Behavior Changes] QExplicitelySharedDataPointer's
copy constructor which performs a static_cast from "X *" to "T *"
(when constructing a QExplicitlySharedDataPointer<T> from
a QExplicitlySharedDataPointer<X>) doesn't perform a static_cast
from "X *" to "T *" any more. Instead, an implicit cast is now
performed. This change will break compilation of code that
relied on the downcast (i.e. cast towards a more derived type) of the
templated type when copy costructing a QExplicitelySharedDataPointer
object. Please refer to the class documentation for more information
about this issue and a workaround to keep old code compiling.

Change-Id: Id32aba6cda4e6d44728d7bc3a5c0c7a20f19adc6
Reviewed-by: Kevin Funk <kevin.funk@kdab.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Mention Qt::ToolButtonFollowStyle in QToolBar/QMainWindow documentation

Improve the existing docu for Qt::ToolButtonFollowStyle in QToolButton
and show the same text in all other widgets that have toolButtonStyle property
(QToolBar and QMainWindow).

Change-Id: I26ff0ed332f8bd10b542a4111c6ae48a963d5667
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@digia.com>
Port qdoc to QCommandLineParser

This will simplify future maintenance of qdoc, adding options being
much easier with QCommandLineParser.

As always, this revealed a number of undocumented options:
-log-progress, debug, -autolink-errors.

Compared generated docs with and without the patch, looked fine,
except that order differs (the qt_qhash_seed thing doesn't work)

Based on initial patch by Laszlo Papp.

Change-Id: I3c851135f2fd573d622d2ed456a11cee34e06054
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Martin Smith <martin.smith@digia.com>
Fix internalFormat in QOpenGLTexture for ES2

Task-number: QTBUG-39856
Change-Id: I005f05c26efb4c81dd017cd4b0f16f6dac3f679e
Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
Use RGBA8888 always in the eglfs backingstore

Do not try to be clever, this format works always.

Using RGBX8888 for windows without alpha buffer was a bad idea because
it broke renderToTexture widgets (QQuickWidget, QOpenGLWidget) which
failed to properly draw the transparent rect with this format.

Change-Id: I295d2f8c17490b59cc5e6b9d81035360da28ab3d
Reviewed-by: Jørgen Lind <jorgen.lind@digia.com>
Avoid calling glGetString on OpenGL 3.0+

To prevent profiling and debugging tools from generating misleading
"errors", call glGetString only for ES and GL < 3.0.

Task-number: QTBUG-35173
Change-Id: I4fe3b048fff4cda948152e2ceeb1347f2b0e4ca5
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
Add missing doc file for cocoa native context

Change-Id: I11938311f648ba63bd9bee2e518c7525871cd0a3
Reviewed-by: Jørgen Lind <jorgen.lind@digia.com>