Commit Graph

22260 Commits

Author SHA1 Message Date
Rafael Roquetto
86c6804a41 QNX: fix compiler detection.
Short version: fix build on QNX 6.5.0.

C++11 has been included on QNX 6.6.0's libcpp (Dinkum C++11 libs), while
continuing to be unsupported by the older QNX 6.5.0 toolchain.

This patch updates the mechanism for detecting the QNX's libcpp that is being
used during compile time, and also updates the list of C++11 features to be
disabled when QNX C++11 support is not present by adding
Q_COMPILER_UNICODE_STRINGS and Q_COMPILER_NOEXCEPT to it.

Change-Id: Iddb3626206a0d97d7103c1ff17ba0ae953e9a4b9
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
2015-02-12 10:09:37 +00:00
Shawn Rutledge
317c341a66 QWheelEvent on OSX: phase changes to ScrollEnd after momentum phase
The phase changes to ScrollEnd as soon as the user's fingers
are lifted from the trackpad; then the OS can optionally continue
sending scroll events to simulate deceleration, which are translated
into more QWheelEvents with phase ScrollUpdate.  With this patch,
the phase of the final event after the momentum phase will be
ScrollEnd to indicate that the scrolling is completely finished.

[ChangeLog][QtGui][QWheelEvent] on OSX, trackpad wheel event phase
transitions occur in the order ScrollBegin, ScrollUpdate, ...,
ScrollEnd, ScrollUpdate, ..., ScrollEnd, where the second batch of
updates represent momentum events (inertial scrolling).

Change-Id: I7404ed6fbbeaff6b1fa63e226fe1800494986b7b
Reviewed-by: Morten Johan Sørvig <morten.sorvig@theqtcompany.com>
2015-02-12 10:08:22 +00:00
Kai Koehne
cd83859bd6 Network: Fix operator<<(QDebug, ...) operations
Use the

  QDebugStateSaver saver(debug);
  debug.resetFormat().nospace();

idiom to unify the formatting and whitespace handling.

Change-Id: Id346d63b3f589b60ca19e4459271d587f1a0c003
Reviewed-by: Richard J. Moore <rich@kde.org>
2015-02-12 10:08:20 +00:00
Konstantin Ritt
7997e56a2e [QWindowsFont*] Unify HFONT fallbacks
In case CreateFontIndirect() call fails, always fallback to a better
stock font provided by Windows (apparently, it is DEFAULT_GUI_FONT).

Change-Id: Ib78fe0d21ba4fccbba1152b81ed87c010e1220e0
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@theqtcompany.com>
2015-02-12 10:05:27 +00:00
Konstantin Ritt
01203a94b5 Update bundled HarfBuzz to 0.9.39
No significant changes, just stick to a released version.

Change-Id: Ib9c4ce6f7da07727e890a4ac3265fc4574e89821
Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
2015-02-12 10:05:24 +00:00
Marc Mutz
bdf43cac03 QProcess: remove a use of QString::sprintf()
Instead of using QString::sprintf() (and converting the result back to QByteArray),
simply do the conversion from uchar to octal digits ourselves, using QtMiscTools.

Change-Id: I452c085b717c71609cd1a9465e31d90e6a0ba54b
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2015-02-12 09:58:49 +00:00
Marc Mutz
9400295a7c QTzTimeZonePrivate: replace an inefficient QList with QVector (IV)
The QTimeZonePrivate::Data type is larger than void*,
so holding them in QLists is horribly inefficient.

In addition, this type is held elsewhere in QVector,
so do that here, too.

As well as being faster, also saves 1.3K of text size on
optimized AMD64 builds.

Change-Id: I1ecf3ee0d955f6b19d2269204e2febc2ba2a9d9d
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2015-02-12 09:58:45 +00:00
Marc Mutz
a1036990ff QTzTimeZonePrivate: replace an inefficient QList with QVector (III)
The implementation-private QTzType type is larger than void*,
so holding them in QLists is horribly inefficient.

Fix by  holding it in QVector instead (it was already marked
as a primitive type before).

Text size grows by ca. 0.5K, but of course we got rid of all
those pesky heap allocations.

Change-Id: I3b70ed36fa9947b695ffc87c6f6199daa13cb7cd
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2015-02-12 09:58:42 +00:00
Marc Mutz
ad67867d49 QTzTimeZonePrivate: replace an inefficient QList with QVector (II)
The implementation-private QTzTransition type is larger than void*,
so holding them in QLists is horribly inefficient.

Fix by declaring it as a primitive types (it just contains
various integers) and holding it in QVector instead.

Also optimize parseTzTransitions() by preallocating the expected
number of transitions and streaming directly into the container,
resizing to the number of successful read items on error.

Saves roughly 0.5K in text size, too.

Change-Id: Iadec7a7b0721893e477e1778c9fb54afd6e49544
Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2015-02-12 09:58:38 +00:00
Marc Mutz
ddbf5f3c33 QTzTimeZonePrivate: replace some inefficient QLists with QVectors (I)
Both QTzTransitionTime and QTzTransitionRule are larger than void*,
so holding them in QLists is horribly inefficient.

Fix by declaring them as primitive types (they just contains
various integers) and holding them in QVector instead.

While we're at it, make the equality operator for QTzTransitionRule
a constexpr, noexcept non-member, and provide the inequality operator,
too.

As well as being faster, this also saves 1.5K of text size on optimized
AMD64 builds.

Change-Id: I37100522f19556101c334625818dcf8c9a712dd9
Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
2015-02-12 09:58:35 +00:00
Marc Mutz
1355ac5b05 Add Q_DECL_CONST_FUNCTION and Q_DECL_NOTHROW to qPopulationCount
Change-Id: I7602936b7064d6a87cd9fbfc4ab22a8fc881b9e9
Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
2015-02-12 09:58:29 +00:00
Marc Mutz
983fc2aa4a QFileInfoGatherer: fix race condition on fetchedRoot
Though only present in QT_BUILD_INTERNAL builds, accessing an unprotected
global bool is still a data race.

While the intended use of reset flag/start test/check flag is kosher
when it comes to the happens-before relation, this is no longer true when
users use two instances of QFileSystemModel at the same time.

To fix, make the bool an atomic int instead. Relaxed memory ordering
suffices, since the atomic int represents all the data. The races over
which model sets the variable is the job of the test case to resolve,
and doesn't affect other users.

Change-Id: I4d245b93a741e3457c42df6edd5b836a9bdacd83
Reviewed-by: Jason McDonald <macadder1@gmail.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2015-02-12 09:58:24 +00:00
Marc Mutz
08ab00e749 QString: optimize number() and setNum()
Previously, number() was implemented in terms of setNum().

That makes no sense whatsoever. It creates a temporary
value which requires the function to have an exception
table and an unwinding trampoline. It also introduces
a default constructor (in number()) and a copy assignment
(in setNum()), which breaks the chain of RVOs originating
in the QLocaleData functions.

Instead, implement setNum() in terms of number().

This makes setNum() such a premature pessimisation that
it's probably best to deprecate it in the near future.
There are not many users of it in qtbase left, and it
just pollutes the QString interface.

Effects on Linux GCC 4.9 stripped release builds:
 text   -708B
 data    +-0B
 relocs  +-0

Change-Id: I015c9ddb1ba9c98c2c55e38e54ef7894954ac4ca
Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
2015-02-12 09:58:17 +00:00
Marc Mutz
10d3f603f0 QLogging: prevent qt_message from being inlined into each of 14 callers
Effects on Linux GCC 4.9 stripped release builds:
 text  -2024B
 data    +-0B
 relocs  +-0

Change-Id: I1a315eb0f94ade2b40be62770c6ddcfc56da9ec0
Reviewed-by: Kai Koehne <kai.koehne@theqtcompany.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2015-02-12 09:58:13 +00:00
Marc Mutz
bcfb535e82 QLogging: avoid a needless check
QString::vasprintf() deals just fine with a nullptr format string,
so don't check manually.

The main advantage of dropping the check is that in two of three
cases, we can replace assignment with initialization, thus saving
one default ctor and one (move) assignment.

Change-Id: I08dd24111cd0b92f21ef9f1c3e352ede0f66afe0
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2015-02-12 09:58:10 +00:00
Marc Mutz
4b9a0c0a7c QLogging: migrate to QString::(v)asprintf
Change-Id: I63141c258c9409b03ce23cd77b90c4e4bc3487ab
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2015-02-12 09:58:06 +00:00
Marc Mutz
d251cae7b7 Long live QString::asprintf()!
asprintf() is a GNU extension that prints into a string it
allocates internally. Arguably, that's a better name for
QString::sprintf() since it also allocates memory internally.

The main problem with QString::sprintf() isn't that it's
dangerous to use (it is), but that it's not static. It also
returns a reference instead of by-value, breaking RVO.

There is a comment about removing this function completely
in Qt 6.0, but it remains the only printf-style function
in Qt that can allocate the target string, so it's vital
for logging, e.g., and the recommended replacement code
(http://linux.die.net/man/3/vsnprintf) is a nightmare.

So this patch adds static (v)asprintf() methods to replace it.

Further patches will fix up all in-tree callers and finally
deprecate the old (v)sprintf().

Test coverage is provided through the existing tests of
sprintf(), which is implemented in terms of asprintf().

Arguably, the in-tree callers show that QByteArray would
benefit from having an asprintf(), too, as most of the
in-tree code works around its lack with calls
to to{Latin1,Local8Bit}() after using the QString version.

[ChangeLog][QtCore][QString] Added asprintf(), vasprintf().

Change-Id: I8510f8d67c22230653ec0f1c252c01bc95f3c386
Reviewed-by: Kai Koehne <kai.koehne@theqtcompany.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2015-02-12 09:58:00 +00:00
Marc Mutz
63114f4d3c QNetworkInterface: remove a use of (native) sprintf
Instead of using sprintf (and #ifdef'ing our way around Windows warnings),
simply do the conversion from uchar to hex digits ourselves, using
QtMiscUtils.

Also used the Qt::Uninitialized QString ctor, as the result length is
exactly known ahead of time.

Change-Id: Ie42e5f11c608e7719f7dc33d72739c1e41901b3b
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2015-02-12 09:57:56 +00:00
Marc Mutz
575029f09b QtMiscUtils: add to/fromOct
...mirroring to/fromHex.

Change-Id: Ie06bd3cc636b0afbc97606eadb8980079a7677a3
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2015-02-12 09:57:51 +00:00
Marc Mutz
26d94c1ca7 QtMiscUtils: mark hex functions noexcept and fromHex constexpr
Change-Id: Ia5b63afa88a87ec995d76d48ac6c185168773369
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2015-02-12 09:57:46 +00:00
Laszlo Agocs
b436fa590e eglfs: Add the three missing drag cursors
Hand-tuned in an attempt to get something that matches the normal arrow
cursor.

Task-number: QTBUG-44385
Change-Id: Iea2ee309fccb78706f47003fb11b14156fa01a50
Reviewed-by: Andy Nichols <andy.nichols@theqtcompany.com>
2015-02-12 07:13:39 +00:00
Laszlo Agocs
77cb1b8794 Prevent crashing on ES2 SDK - ES3 device scenarios with Android
Making a build with an older NDK having only gl2.h results in crashing
QOpenGLTexture on devices that provide ES 3.0 or 3.1. This is because
immutable storage is supported (based on runtime checks) but the function
pointers are not there (due to ifdef checks).

Fix this like we did in other places: get rid of the ifdef and dlsym the
ES3-only symbols.

Task-number: QTBUG-44397
Change-Id: Ief518ec8c7d532aeea0075ba166baf8d22e66ec5
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
2015-02-12 07:13:23 +00:00
Olivier Goffart
9438da35ab Document that some types need not to be registered with Q_DECLARE_METATYPE
Change-Id: I2f9b119ebe72595620ec40c2c9b95b0a9defa848
Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@theqtcompany.com>
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
2015-02-12 07:12:46 +00:00
Olivier Goffart
3cf8e426f4 QMetaType: Automatic registration of Q_GADGET and Q_ENUM types
Change-Id: If43dcc2b77fea5ae3ec40cc847467fc21fbd2c83
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
2015-02-12 07:11:04 +00:00
Alex Trotsenko
071716f2da QAbstractSocket: remove unneeded cleanup calls and private member
QAbstractSocket::close() always calls QIODevice::close(), which resets
QIODevice's internal read buffer. So it makes no sense to make same calls
from disconnectFromHost(). This made the closeCalled private member
superfluous.

Change-Id: I4ec64e9711490e44e737763e4ed7fb41bffe2556
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2015-02-11 21:19:13 +00:00
André Klitzing
2688725eb7 Use a union for different openssl types
Since the algorithm can only be one the underlying structure can
share the same memory.

Change-Id: Ifeaa1a2d5c4ad3566cbbf847445b805876275260
Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
Reviewed-by: Richard J. Moore <rich@kde.org>
2015-02-11 21:00:04 +00:00
A. Klitzing
2af1277631 CMake: Introduce qt5_add_binary_resources
Optional parameter DESTINATION to set target rcc file

Example:
qt5_add_binary_resources(GenerateFixture "fixture.qrc")

Task-number: QTBUG-41728
Change-Id: I9dc2fe8e7d5e9ad3873b89f75ab84a2a1b9d1d29
Reviewed-by: Stephen Kelly <steveire@gmail.com>
2015-02-11 20:59:35 +00:00
Jani Heikkinen
83a5694dc2 Update copyright headers
Qt copyrights are now in The Qt Company, so we could update the source
code headers accordingly. In the same go we should also fix the links to
point to qt.io.

Outdated header.LGPL removed (use header.LGPL21 instead)

Old header.LGPL3 renamed to header.LGPL3-COMM to match actual licensing
combination. New header.LGPL-COMM taken in the use file which were
using old header.LGPL3 (src/plugins/platforms/android/extract.cpp)

Added new header.LGPL3 containing Commercial + LGPLv3 + GPLv2 license
combination

Change-Id: I6f49b819a8a20cc4f88b794a8f6726d975e8ffbe
Reviewed-by: Matti Paaso <matti.paaso@theqtcompany.com>
2015-02-11 06:49:51 +00:00
Friedemann Kleint
29daa7645b Windows: Reintroduce copy of argv.
Since argc/argv is modified by QCoreApplication-derived classes,
a copy of the original arguments is needed for comparison.

This fixes a crash in Qt Quick 2 tests (which use
the -qmljsdebugger=<port> argument) introduced
by dff18b8e80 .

Task-number: QTBUG-30330
Change-Id: Ic145ac923e0a7c504ab16602c8686268e4fd9700
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
2015-02-10 17:00:05 +00:00
Laszlo Agocs
0866680bd9 Merge "Merge remote-tracking branch 'origin/5.4' into dev" into refs/staging/dev 2015-02-10 16:57:11 +00:00
Sergey Radionov
34ea269b3b Win: fix wrong mouse leave event generation
When Qt runs in process with low integrity level,
and place child QWindow to HWND from less restricted process,
ChildWindowFromPointEx could fail with ERROR_ACCESS_DENIED
and QWindowsScreen::windowAt will return 0 despite mouse is on window.

Task-number: QTBUG-44332
Change-Id: I07e1594b90cbde8a9496f8d53ef247a7c69d8715
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
2015-02-10 16:55:37 +00:00
Frederik Gladhorn
fc35f71434 Merge remote-tracking branch 'origin/5.4' into dev
Conflicts:
	src/3rdparty/harfbuzz-ng/harfbuzz-ng.pro
	src/gui/image/qimage_conversions.cpp
	src/gui/opengl/qopenglextensions_p.h
	src/gui/text/qtextengine.cpp
	src/network/ssl/qsslsocket_openssl.cpp
	src/plugins/platforms/eglfs/qeglfshooks_stub.cpp
	src/plugins/platforms/eglfs/qeglfsscreen.cpp
	src/plugins/platforms/eglfs/qeglfswindow.cpp
	src/plugins/platforms/windows/qwindowsfontdatabase.cpp
	src/plugins/platforms/windows/qwindowsfontdatabase_ft.cpp
	src/plugins/platforms/windows/qwindowsnativeinterface.cpp
	src/plugins/platforms/windows/qwindowsscreen.cpp
	src/plugins/platforms/windows/qwindowswindow.cpp
	src/plugins/platforms/windows/qwindowswindow.h
	src/plugins/platforms/xcb/qxcbdrag.h
	src/widgets/itemviews/qabstractitemview.cpp
	src/widgets/kernel/qwidget.cpp
	src/widgets/util/qsystemtrayicon_p.h
	tests/auto/corelib/itemmodels/qsortfilterproxymodel/tst_qsortfilterproxymodel.cpp

Thanks to Friedemann Kleint for resolving the qwindowsfontdatabase.cpp
conflicts.

Change-Id: I937232c30523d5121c195d947d92aec6f129b03e
2015-02-10 09:42:25 +01:00
Jan Arve Saether
68293395ed Add support for snapping to pixel grid
This enables us to do more intelligent distribution than simply doing the
rounding on each individual items geometry (which often leads to larger
spacings than specified).

Instead of doing the rounding on the output geometries, we now do the
snapping inside the layout engine. This allows us to do more intelligent
distribution of items, and spacings should always be respected.

There are some cases where items with fractional size hints might overlap
with less than a pixel.  This was also the case before this patch. Those
cases are impossible to fix properly, since fractional size hints
conflicts with the snapping in some cases.

(Fractional size hints is normal for Text items.)

Task-number: QTBUG-41216
Change-Id: I01a8bc3529f0b8b028d6eb0a530c751b67ac6f4e
Reviewed-by: Paul Olav Tvete <paul.tvete@theqtcompany.com>
2015-02-09 12:06:34 +00:00
David Morgan
18aae36a90 OpenGL: Add versioned functions support for opengl 4.4 and 4.5
Previous errors in versioned function classes for OpenGL versions
prior to 4.4 have also been fixed to comply with the new OpenGL
xml specification. Such mistakes were due to either bugs in the
old plain text specification files or problems due to the
difficulty in parsing the old spec files.

In some cases this has meant adding in missing functions that were
absent previously.

The other class of problem was when functions were erroneously
included in the versioned function classes when they should not
have been present. That is, some core profile classes incorrectly
had member functions for deprecated functions that should only
be present in the compatibility profile classes. In these cases
these incorrect functions will now trigger a qFatal if
called. This is fine as any applications that called these by mistake
in the past would have been dereferencing a null pointer as the
function pointer resolution would have failed for these functions.

[ChangeLog][QtGui] Add version function classes for OpenGL 4.4 and 4.5
and deprecate some erroneously classified functions.

Task-Id: QTBUG-33671
Task-Id: QTBUG-44364
Change-Id: I224108dcaf4f8b4933bc121827511841e2a41590
Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
2015-02-09 11:39:18 +00:00
Allan Sandfeld Jensen
38aafe1a17 Optimize unpremultiply on SSE4.1
Adds an SSE4.1 optimized version of qUnpremultiply and uses it in the
most drawing conversions methods. This gives a speed-up of little over
2x.

Change-Id: Ieb858a94ada1eb86d7af715ac1a100f1587f360d
Reviewed-by: Gunnar Sletta <gunnar@sletta.org>
2015-02-09 11:36:49 +00:00
Kai Koehne
868201155f QtCore: Use QDebugStateSaver in (almost) all QDebug operator<<
Unify the behavior of the different operator<< by always using
QDebugStateSaver (appending an optional space at exit), and making
sure that the space(), nospace() setting isn't 'leaked'.

Change-Id: I38e4f82fa6f7419d8b5edfc4dc37495af497e8ac
Reviewed-by: Alex Blasche <alexander.blasche@theqtcompany.com>
2015-02-09 11:30:02 +00:00
Shawn Rutledge
6389160f04 D-Bus tray icons: save temp file with size 22px
Gnome Classic on Ubuntu shows this icon but fails to scale it down.
So if we do not pre-scale the icon, it will be too wide, and cropped.

Change-Id: If8cf98de3672deff77b99b17da5491bd6c45cfdb
Reviewed-by: Jørgen Lind <jorgen.lind@theqtcompany.com>
2015-02-08 21:14:28 +00:00
Shawn Rutledge
bf65a58e5a remove stray QGuiApplicationPrivate::wheelEventSource declaration
It is unimplemented and probably unnecessary.  Unintentionally included
in commit 74443d7bbb.

Change-Id: I3a1afb20e673fa0611b602a11ceca1953231ac14
Reviewed-by: Andrew Knight <qt@panimo.net>
2015-02-08 21:14:09 +00:00
Richard J. Moore
31e85dc2a1 Remove unnecessary direct access to SSL_CIPHER struct.
The cipher is always valid here, so this check was never needed anyway.

Change-Id: I22be273d166702926b98f0c9443657a1dde65f6e
Reviewed-by: Daniel Molkentin <daniel@molkentin.de>
2015-02-08 20:47:52 +00:00
Richard J. Moore
9f59341d07 Remove legacy ifdefs for ancient openssl.
There were still ifdefs for openssl 0.9.7 and openssl 0.9.8f.

[ChangeLog][QtNetwork] Some legacy ifdefs for openssl 0.9.7 and openssl 0.9.8f
were removed, Qt will no longer build with these versions. In addition there
is no support for openssl built with NO_TLSEXT.

Change-Id: I9268515c0a125a2f6d79add8ee1cb40768e7e898
Reviewed-by: Daniel Molkentin <daniel@molkentin.de>
2015-02-08 20:47:39 +00:00
Laszlo Agocs
d12f65a66a Add more notes regarding the uniform setters
Having overloads for GLuint that call glUniformNi was a mistake to begin with,
and it has only been made worse when later OpenGL versions introduced unsigned
int support and glUniformNui. Note this in the docs.

Task-number: QTBUG-37012
Change-Id: Icc867221d0fbced8c4ff769deee66effa022f1b5
Reviewed-by: Gunnar Sletta <gunnar@sletta.org>
2015-02-08 16:37:21 +00:00
Maks Naumov
c2f26d6d0b Use prefix instead of postfix for iterators
The postfix increment(decrement) creates a temp copy of *this before the
modification and then returns that copy. It's needed only when using the
old iterator and then incrementing it.

Change-Id: I7f6702de78f5f987cec3556047e76049b4ee063a
Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
2015-02-08 12:25:12 +00:00
Olivier Goffart
163b852951 QtWidgets: use Q_ENUM instead of Q_ENUMS
Change-Id: Id5280c1d9feab95e1506569f3d0eb23eeb74935f
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
2015-02-08 12:19:07 +00:00
Olivier Goffart
e768d96e8b QtGui: use Q_ENUM instead of Q_ENUMS
Change-Id: I92ac2ea218e9134aa36ecb179b8ae790a2dba56a
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
2015-02-08 12:18:52 +00:00
Olivier Goffart
ba7cedb058 QtNetwork: use Q_ENUM instead of Q_ENUMS
Change-Id: I531191fae910354abd2e5ceb7c8ecf0519ccad97
Reviewed-by: Peter Hartmann <peter-qt@hartmann.tk>
2015-02-08 08:48:51 +00:00
Giuseppe D'Angelo
b4bcc50c32 QOpenGLVertexArrayObject: remove a now unnecessary initialize call
Change-Id: I03a14c52dd5a02de0c1cc1c2df5d4529acff9acd
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
2015-02-08 00:22:07 +00:00
Laszlo Agocs
4d19c3a354 Avoid the initializeOpenGLFunctions() call after versionFunctions()
Try making it compatible with QOpenGLContext::functions() which returns
an already initialized QOpenGLFunctions.

Unfortunately we cannot make them 100% compatible because functions()
conveniently requires that the context (or a sharing context) is current.
versionFunctions() has no such requirement and we cannot safely introduce
it anymore.

What we can do is to state that as long as the context is the current one,
the initializeOpenGLFunctions() call can be omitted. If another context (or
no context) is current, the call will still be needed, like it is today.

Also, we require that the exact same context is current. Sharing does not
count since the exact behavior of sharing contexts with different versions
is unknown.

[ChangeLog][QtGui] initializeOpenGLFunctions() no longer needs to be called when
querying a versioned function wrapper object via QOpenGLContext::versionFunctions().

Change-Id: I0b4d1ae1f780da3f5dec9fc8dc67255c13faab6e
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
2015-02-07 20:29:30 +00:00
Laszlo Agocs
b8aeb4a256 Make mipmap levels and texture comparison work with GLES 3.0+
In ES-only builds (-opengl es2) we hit the QT_OPENGL_ES_2 path which
disables all this. Not ideal since all the support is present in GLES 3.0.

Therefore, stop relying on the ifdef and do runtime checks. This also needs
defining the constants manually since they are not available in gl2.h and our
own ES2 extension headers provide some of these with silly silly suffixes.

Change-Id: I8ad7f5091a371bad1e3c6dc4898342a175016274
Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
2015-02-07 20:29:27 +00:00
Giuseppe D'Angelo
773e33af43 QOpenGLWidget/Window: improve docs for the dtor
Remove a typo and add the standard sentence about a dtor.

Change-Id: Ie21ad6d2e83977705ea43fdc872d08f496a32376
Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com>
2015-02-07 20:29:16 +00:00
Richard J. Moore
9aabc62312 Stop accessing the internals of the SSL_CTX structure.
Change-Id: I51733e9a3bb0d5d54dc2f61ac75751d899a84bd1
Reviewed-by: Peter Hartmann <peter-qt@hartmann.tk>
2015-02-07 20:08:02 +00:00