summaryrefslogtreecommitdiffstats
path: root/src
Commit message (Collapse)AuthorAgeFilesLines
* Android: Fix exceptions in ExtractStyle.java on Android LBogDan Vatra2014-08-013-5/+128
| | | | | | | | | Android L adds support for 64 bit (arm and x86) and they did lots of changes that are incompatible with old implementation. Task-number: QTBUG-40120 Change-Id: I69b78a9eed896d2ddabc1bf2a55886faeae47974 Reviewed-by: J-P Nurmi <jpnurmi@digia.com>
* Avoid calling syncWindow with already destroyed platform windowsLaszlo Agocs2014-08-015-7/+58
| | | | | | | | | | | | | Issuing a metacall from swapBuffers is dangerous since the window may get destroyed by the time the slot is invoked. This patch changes it to use an event, which is more efficient anyway, that can be invalidated in case the QXcbWindow is destroy()'ed before the event is delivered. Change-Id: I44618ac1cb8b221aecce001ea39702164dcab6a5 Reviewed-by: Gunnar Sletta <gunnar.sletta@jollamobile.com> Reviewed-by: Uli Schlachter <psychon@znc.in>
* Update QOpenGLFunctions docsLaszlo Agocs2014-08-011-0/+12
| | | | | | | | | | | Mention QOpenGLContext::functions() which is used quite commonly in Qt itself and also some examples. Also, make it clear that new instances do not degrade performance since function resolving is done only once. Change-Id: I74ac194a0b3956a70e5078dd5a1bcdd277b5cc28 Reviewed-by: Gunnar Sletta <gunnar.sletta@jollamobile.com>
* Make QOpenGLWidget publicLaszlo Agocs2014-08-0119-184/+1149
| | | | | | | | | | | | | | | | | | | | | | | | | | | QOpenGLWidget is now public. In addition Qt::WA_AlwaysStackOnTop is introduced to support the special case of semi-transparent QOpenGLWidget or QQuickWidget on top of regular widgets. hellogl_es2 becomes the qopenglwidget example. This example performs painting both via QPainter and native GL commands and has the OpenGL widget combined with other, normal widgets. The widget stack receives some changes when it comes to renderToTexture widgets like QQuickWidget and QOpenGLWidget. Calling update() will now result in a paint event, which is essential for QOpenGLWidget since we want it to behave like a regular widget. The dirty region handling is extended specially for such widgets due to performance reasons. (an OpenGL content update must not result in any backingstore painting, and is thus handled as a different kind of dirtiness) [ChangeLog] Added QOpenGLWidget. This widget serves as a replacement for QGLWidget. Task-number: QTBUG-36899 Task-number: QTBUG-40086 Change-Id: Ibf7f82fea99b39edfffd2fc088e7e0eadbca25cf Reviewed-by: Paul Olav Tvete <paul.tvete@digia.com>
* Fix high DPI icons in menu itemsAllan Sandfeld Jensen2014-08-011-2/+2
| | | | | | | | | The position of high DPI icons is wrong in the Fusion style because the pixel resolution is not taking into account when centering them. Task-number: QTBUG-40277 Change-Id: I3593ed461ea57543c3ddfd473105fdc698789132 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
* Remove pointless debug outputAleix Pol2014-08-011-4/+1
| | | | | | | | | | Removes some debug output that indicates that we're dealing with a dock. It looks like somebody was testing some implementation more than useful output information. Change-Id: I04ebbc1f0f1d29ed2099bab9d9e9fc18c9bf0c86 Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com> Reviewed-by: Frederik Gladhorn <frederik.gladhorn@digia.com>
* Fix linking of the Direct2D platform plugin with dynamic Open GL.Friedemann Kleint2014-07-311-1/+1
| | | | | Change-Id: I0a3272233de7e685c750f001eb45a5e326d0f35b Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
* QTimeZone: optimize QTimeZonePrivate::isValidId()Marc Mutz2014-07-311-18/+29
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This function is used in the named timezone ctor and was using QByteArray::split(), followed by size checks and a linear scan for invalid chars per section. The use of split() resulted in a lot of memory allocations and, unsurprisingly, bad performance. The new code just performs one linear scan through the byte array, calculating section sizes on the fly. Benchmark results (with the test data in tst_QTimeZone::isValidId_data()) show typical speedups of ~10x for valid IDs: RESULT : tst_QTimeZone::isValidId_bench():"minimal middle": - 0.00036 msecs per iteration (total: 95, iterations: 262144) + 0.000035 msecs per iteration (total: 74, iterations: 2097152) Even in the sweet-spot case of the old code---a space character anywhere in the string, checked for before the split---the new code is anywhere between slightly faster and not much slower: RESULT : tst_QTimeZone::isValidId_bench():"invalid char ' ' front": - 0.000011 msecs per iteration (total: 94, iterations: 8388608) + 0.000010 msecs per iteration (total: 86, iterations: 8388608) RESULT : tst_QTimeZone::isValidId_bench():"invalid char ' ' middle": - 0.000014 msecs per iteration (total: 62, iterations: 4194304) + 0.000016 msecs per iteration (total: 69, iterations: 4194304) RESULT : tst_QTimeZone::isValidId_bench():"invalid char ' ' back": - 0.000018 msecs per iteration (total: 79, iterations: 4194304) + 0.000023 msecs per iteration (total: 98, iterations: 4194304) This is not surprising, as the space character was singled out for a fast-exit check before. For any other invalid character, the new version is anywhere from 15x to 35x faster: RESULT : tst_QTimeZone::isValidId_bench():"invalid char ? front": - 0.00034 msecs per iteration (total: 91, iterations: 262144) + 0.000010 msecs per iteration (total: 87, iterations: 8388608) RESULT : tst_QTimeZone::isValidId_bench():"invalid char ? middle": - 0.00036 msecs per iteration (total: 96, iterations: 262144) + 0.000016 msecs per iteration (total: 68, iterations: 4194304) RESULT : tst_QTimeZone::isValidId_bench():"invalid char ? back": - 0.00035 msecs per iteration (total: 94, iterations: 262144) + 0.000021 msecs per iteration (total: 92, iterations: 4194304) If there was a deeper reason to single out the space character, that fast-exit path can easily be restored. This function is often used in conjunction with availableTimeZoneIds(), which currently vastly dominates the runtime of the function calling both, but I'll add another optimization for the common use-case of just checking for a time-zone's existence in a subsequent commit. Change-Id: Ife1d096fcd39464083ea464c23e49ad98fabf345 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Ensure valid data after QImage::invertPixelsAllan Sandfeld Jensen2014-07-311-3/+47
| | | | | | | | | | | | | | | | QImage::invertPixels may produce invalid data after inversions of images with premultiplied alpha, because the inverted colors will be larger than the alpha. This patch converts any image with a premultiplied alpha channel to ARGB32 before inverting the pixels, and then back to the original format after the inversion. Support is added for correct inversion of RGBA8888 and RGB30 formats. Task-number: QTBUG-39901 Change-Id: Ief24c55f495e67ef2ad6429b5b418d02963a64dd Reviewed-by: Gunnar Sletta <gunnar.sletta@jollamobile.com>
* Android: Cleanup androidjnimain.cpp/.h filesBogDan Vatra2014-07-312-54/+44
| | | | | | | | | Remove unused includes Remove unused static vars use Q_NULLPTR insead of 0 or NULL Change-Id: Id8c99c83c64425c9725e441108010f3821bd3b44 Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
* Android: Fix expose region.BogDan Vatra2014-07-312-3/+3
| | | | | | | | It seems that the second parameter of handleExposeEvent function is about the region inside the window, not its position on the screen. Change-Id: I89f5b2b13c9b0993253542823a84547d6a994c31 Reviewed-by: Paul Olav Tvete <paul.tvete@digia.com>
* Android: Release all windows when the application is suspended.BogDan Vatra2014-07-318-22/+83
| | | | | | | | | | | | | | When an application is suspended on Android all its Gl surfaces are destroyed and can't be used to render anymore, so we should release them in order to give back to the system the memory used by them. [ChangeLog] [Android] Release all windows when the application is suspended. Task-number: QTBUG-29069 Change-Id: I038aaa2006da1f3188fccba943ec4ffb3e551cf0 Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
* Android: Really suspend apps that are put in the backgroundBogDan Vatra2014-07-319-8/+282
| | | | | | | | | | | | | | | | | | | The main event loop will be paused when an application is suspended, this is also the normal behavior of any Android application. When an application is suspended on Android all its Gl surfaces are destroyed and can't be used to render anymore. So, we need to pause the main event loop in order to pause all the timers which might trigger drawings. The event loop is resumed immediately after the application is foreground. AndroidManifest.xml contains more info about how to disable this behavior and what might happen if you do it. [ChangeLog][Android][Important Behavior Changes] The main event loop is now stopped when the app is suspended Task-number: QTBUG-36274 Change-Id: I4c0ba5df9d95f348bca67ea5c76865d6d20775e4 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> Reviewed-by: Paul Olav Tvete <paul.tvete@digia.com>
* Add ascii_isspace to replace the locale-dependent isspace(3)Thiago Macieira2014-07-313-10/+37
| | | | | Change-Id: Icee42515179e6f3ddefe0692af69e90054449618 Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* OS X: correct tablet stylus rotation to range -180..180 degreesShawn Rutledge2014-07-311-1/+3
| | | | | | | | | | | | | | When the user holds the Wacom Art Pen straight, rotation is zero; when turning it counter-clockwise, it should have a negative angle, whereas the driver sends a positive angle; when turning it clockwise it should have a positive angle up to 180, whereas the driver sends 360 going downwards towards 180. These corrections make the angle reading consistent between Linux, Windows and OS X. Task-number: QTBUG-39570 Change-Id: I7a57cc1fb56d4f7128ca1add10aff2597f29c507 Reviewed-by: Frederik Gladhorn <frederik.gladhorn@digia.com>
* OS X: add buttons to tablet eventsShawn Rutledge2014-07-311-2/+13
| | | | | | Task-number: QTBUG-39458 Change-Id: I112107e392bf3b55771039b72271fdf887e2e5db Reviewed-by: Frederik Gladhorn <frederik.gladhorn@digia.com>
* OS X: correct tablet airbrush tangentialPressure to range -1..1Shawn Rutledge2014-07-311-1/+1
| | | | | | | | | | The driver sends values in the range 0..1, but we want the "center" value to be 0. This correction makes tangentialPressure consistent between Linux, Windows and OS X. Task-number: QTBUG-40469 Change-Id: Ia4aa777efdf015c2802b945f6ca7a8e442bbf5fc Reviewed-by: Frederik Gladhorn <frederik.gladhorn@digia.com>
* Windows plugin: Refactor input context.Friedemann Kleint2014-07-311-18/+7
| | | | | | | | | - Use static invocation of QGuiApplication accessor. - Use QInputMethod::queryFocusObject(). Task-number: QTBUG-40402 Change-Id: Ic1a7f66389df532acca88ddda37d35d6e7049a53 Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* Micro-optimize QXmlStreamReaderPrivate.Jędrzej Nowacki2014-07-311-3/+3
| | | | | | | Avoid redundant QStringRef to QString conversions. Change-Id: I4a65119e7821206e2f72387a5d02cec5ce39dbfb Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
* Add QString::splitRef functions.Jędrzej Nowacki2014-07-312-0/+75
| | | | | | | | | | | | The functions can be used to optimize code that do not need to use the split results as QString directly. [ChangeLog][QtCore] QString can now split a string to a list of QStringRef. Change-Id: Ic2dc929e1fba82f9a060e37c51068a301cb5b866 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
* Micro-optimize uicJędrzej Nowacki2014-07-311-1/+1
| | | | | | | Avoid redundant QStringRef to QString conversion. Change-Id: I93c4f19798e81515f483371f0cc6fcccc7fe36c7 Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
* Micro-optimize qdocJędrzej Nowacki2014-07-311-3/+3
| | | | | | | Avoid redundant QStringRef to QString conversions. Change-Id: I535e7ba02b4ac5abef6036f631e228205e63f32a Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
* Doc: update the list of typical values for xxxCpuArchitectureThiago Macieira2014-07-311-2/+12
| | | | | | | | | | | | | | | | | If we wanted to make the list exhaustive for buildCpuArchitecture, we'd add alpha, avr32, bfin, s390(x), and sh. I don't want to make it exhaustive because that's cluttering the documentation and we'd have to keep in sync with archdetect.cpp. And we can't make currentCpuArchitecture exhaustive, since it depends on the output from uname(2). You can argue that neither IA-64, POWER, nor SPARC architectures are typical these days... Change-Id: I0a5310770947263e1bafd9443ea59420813c51a8 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com> Reviewed-by: Jake Petroules <jake.petroules@petroules.com> Reviewed-by: Richard J. Moore <rich@kde.org>
* Attempt to add support for Solaris sysinfo callThiago Macieira2014-07-311-3/+24
| | | | | | | | | Totally untested. Change-Id: I2c2347a66cb3fcb71d97782090ac628bef0b247f Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com> Reviewed-by: Richard J. Moore <rich@kde.org> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Use an enum to check that the OS is saving the register stateThiago Macieira2014-07-311-1/+18
| | | | | | | | | | | | It's easier to read AVXState and AVX512State than 6 and 0xe6. Also add a note that where we should have checked whether the SSE state is being saved by the OS. However, we won't do it because it's just a waste of CPU cycles: any OS Qt 5 runs on will enable the proper state-saving. Change-Id: Id87b59fe1388a6cab983c9412341e36a86dd15c5 Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
* QProgressDialog: make the cancel button retranslate on LanguageChangeMarc Mutz2014-07-301-2/+1
| | | | | | | | | | | | | | It is documented to be, and the LanguageChange event is caught and processed. However, retranslateStrings() uses QProgressDialog::setCancelButtonText(), which unconditionally sets useDefaultCancelText=true, blocking any further changes to the button text by subsequent LanguageChange events. The fix is to use extracted QProgressDialogPrivate::setCancelButtonText() which - quite intentionally - doesn't set useDefaultCancelText. Task-number: QTBUG-40504 Change-Id: I6e701deda10c454cb088c0b0778ac2d6adff574a Reviewed-by: David Faure <david.faure@kdab.com>
* QProgressDialog: Extract Method QProgressDialogPrivate::setCancelButtonText()Marc Mutz2014-07-301-7/+14
| | | | | | | | This is in preparation of a fix for the broken online-retranslatability of the cancel button. Change-Id: Ie62540766e50e1f1ec07d251cc56a2ee0745d434 Reviewed-by: David Faure <david.faure@kdab.com>
* QProgressDialog: don't crash when setting the same {bar,button,label} againMarc Mutz2014-07-301-0/+14
| | | | | | | | | | The associated test has unearthed that setBar() fails to make the new bar a child of the progress dialog. This will be fixed in a separate commit. Task-number: QTBUG-40502 Change-Id: I2d09ebb07ae6395449a4efe38a638df831eebdd7 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com> Reviewed-by: David Faure <david.faure@kdab.com>
* Add EglDisplay case to nativeResourceForContext on eglfsAndras Becsi2014-07-301-0/+4
| | | | | | | | | | This is needed to make it possible to use the same interface for retrieving the EGLDisplay on Windows and EGLFS, thus get rid of cluttering ifdefs. Change-Id: I37b848b1017eacbf8a29627cd157b74e22e5f40c Reviewed-by: Michael Bruning <michael.bruning@digia.com> Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
* Allow lower case resource names in native interface on WindowsAndras Becsi2014-07-301-7/+43
| | | | | | | | | | | | | The native interface implementation in QEGLPlatformIntegration lower-cases the resource key strings, where as in the Windows implementation we currently only check for camel-case resource names to retriece the same resources. Make it possible to use lower-case strings on Windows as well by using the same key look-up mechanism as used in the eglfs implementation. Change-Id: Id2a594310df610cadbe420409c090f0abb316474 Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
* Merge "Merge remote-tracking branch 'origin/5.3' into dev" into refs/staging/devFrederik Gladhorn2014-07-3014-16/+47
|\
| * Merge remote-tracking branch 'origin/5.3' into devFrederik Gladhorn2014-07-2914-16/+47
| |\ | | | | | | | | | | | | | | | | | | Conflicts: src/network/ssl/qsslsocket_openssl_symbols.cpp Change-Id: Ic62419fa1fee5f4de6c372459d72e6e16f9a810b
| | * Fix compilation if EC is disabled in OpenSSLJoni Poikelin2014-07-293-0/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | Some Linux distributions disable EC by default which causes compile errors on those platforms. Task-number: QTBUG-40394 Change-Id: If5816d473bd1d64b1d4977860db662704a83310f Reviewed-by: Richard J. Moore <rich@kde.org>
| | * Improve dbus cross compilationBernd Weimer2014-07-283-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Building QtDBus on Linux host for QNX target had two issues: * Configure check failed, because dbus-1 library was not linked in, if target platform doesn't support pkg-config. * Host tools were not built, because pkg-config was not used to locate dbus headers on the host. Task-number: QTBUG-37324 Change-Id: I71d8309599fd40ef2dd8c9e3b44b93a7482019f1 Reviewed-by: Rolf Eike Beer <eb@emlix.com> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
| | * Fix buffer overrun error with some proxy serversArtem Shevchenko2014-07-281-3/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In some cases, depending on the proxy server response, the current implementation of QHttpSocketEngine may write to memory beyond the allocated buffer size. That will trigger undefined behavior on UNIX systems and a buffer overrun exception if compiled with visual studio. Change-Id: I5769d10c56b6a7483d6d94672aa4321287b82651 Reviewed-by: Marc Mutz <marc.mutz@kdab.com> Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
| | * QNAM: Fix CPU load for limited upload QIODeviceMarkus Goetz2014-07-252-0/+23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This fixes high CPU load for upload devices that don't generate a constant stream of data. Their readData() function was called all the time without returning actual data. This was noticed when implementing an upload device that emits data in a limited way for bandwidth limiting. [ChangeLog][QtNetwork][QNetworkAccessManager] Fixed high CPU load when handling POST/upload QIODevice that generates data on readyRead(). Change-Id: Iefbcb1a21d8aedef1eb11761232dd16a049018dc Reviewed-by: Richard J. Moore <rich@kde.org>
| | * Use the stateless UTF-8 encoder in QStringRef::toUtf8Thiago Macieira2014-07-251-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | QString::toUtf8 already does it. I guess I forgot to update this part in d51130cc3a00df8147e2eb0799e06865c901c6e0. Change-Id: I83feafcb0383758f7e64d5142f57a7ae6a2ff351 Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
| | * Doc: corrected autolink errors in qnamespace.qdocNico Vertriest2014-07-231-5/+5
| | | | | | | | | | | | | | | | | | Task-number: QTBUG-40362 Change-Id: Ic2a0740a12c98a60cb1d178c4d42c4ae1c39869c Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
| | * Windows: Fix assignment of margins in QPageSetupDialog.Friedemann Kleint2014-07-221-3/+2
| | | | | | | | | | | | | | | | | | Task-number: QTBUG-40061 Change-Id: Id5c952a7d6280f2ab7180bff01911d6cffe57034 Reviewed-by: Kai Koehne <kai.koehne@digia.com>
| | * QPixmap::fromImage() should detach when changing QImage formatAllan Sandfeld Jensen2014-07-221-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When QPixmap::fromImage() detects an ARGB32 image with only opaque pixels it will do a conversion where it only changes the advertised format of the image. This conversion was lacking a check to see if it the QImage was shared before doing so, which this patch adds. Task-number: QTBUG-40282 Change-Id: I3acf221b76735637cef04c2104a33f87e5f09d54 Reviewed-by: Andreas Löw <andreas@code-and-web.de> Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
| | * Windows: Add Qt Creator PATH update tip for missing SQL client dllsSamuel Gaist2014-07-221-1/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch aims to provide an additional tip for users having trouble with e.g. the MySQL plugin. After a successful build most users are struggling with loading failure due the fact that the client libraries folder is not contained in the PATH environment variable. This tip helps them overcome that in a controlled manner with Qt Creator. Change-Id: I2dc5c9c6d8d8976686d74c369b6e1683c479f35c Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
* | | Accessibility: Top level widgets should only be in the hierarchy onceFrederik Gladhorn2014-07-303-16/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | On Linux for example Orca gets confused when showing a dialog that is a child of another widget since it would show up twice in the hierarchy. Task-number: QTBUG-39444 Change-Id: I84773ecc3d6774a652dbeb29ad201779f5b3191c Reviewed-by: Jan Arve Sæther <jan-arve.saether@digia.com>
* | | Accessibility Linux: Also send meta key as modifierFrederik Gladhorn2014-07-301-0/+2
| | | | | | | | | | | | | | | Change-Id: I0b33bf3d6ad468176e7c7e5a71b3bcba966ffd9f Reviewed-by: Jan Arve Sæther <jan-arve.saether@digia.com>
* | | Fix documented default value of QProgressDialog::maximumMarc Mutz2014-07-301-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | Seems to have been a cut'n'paste from 'minimum'. Change-Id: Ifc3a4441809a9fc75ecac621cff59950235f6bc7 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com> Reviewed-by: David Faure <david.faure@kdab.com>
* | | Support RGB30 formats in OpenGL framebuffers and paint engineAllan Sandfeld Jensen2014-07-302-3/+63
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch adds support for binding RGB30 images as textures, and as internal format of framebuffer objects. Together with the QOpenGLPaintDevice this provides support for rendering to and from RGB30 in full precision. [ChangeLog][QtGui][QOpenGLFramebufferObject] Support 10-bit per color channels formats as the internal framebuffer format, making it possible to render in that precision. Change-Id: I06de2d12dfe1c1adc466d574fdffbc77f88f4f16 Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
* | | Use runtime check instead of ifdef to detect ES3 in QVertexArrayObjectHelperTor Arne Vestbø2014-07-301-6/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The code path in QOpenGLVertexArrayObjectPrivate::create() that triggers the creation of a QVertexArrayObjectHelper is guarded by runtime checks for ES3 or the GL_OES_vertex_array_object extension, but the actual function lookup was ifdef'ed, which broke on iOS where the SDK may support ES3, but an older (supported) runtime target might not. Change-Id: Id578667c1f5aebf53e197f3a79eb2f9273fea487 Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
* | | QOpenGLVAO: refactor the helper class and export itGiuseppe D'Angelo2014-07-303-55/+153
| | | | | | | | | | | | | | | | | | | | | | | | | | | It is useful in other places, for instance in QtQuick, to avoid duplicating the same resolver logic. Change-Id: I9748a420a0abeb07cc84f948965b1e0321a95ca2 Reviewed-by: Marc Mutz <marc.mutz@kdab.com> Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
* | | Don't parse /etc/os-release every time we need to do uname(2)Thiago Macieira2014-07-301-39/+16
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is just an optimization of the code: instead of opening and parsing /etc/os-release every time QSysInfo::kernelType() is called on Linux, do that only in QSysInfo::productType() and productVersion(). Change-Id: I201504934ecf7a51854cb49c790bd9d30eba644b Reviewed-by: Kai Koehne <kai.koehne@digia.com> Reviewed-by: Jake Petroules <jake.petroules@petroules.com> Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com> Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
* | | Fix QByteArray::to{Upper,Lower} when the array contains embedded nullsThiago Macieira2014-07-301-2/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | [ChangeLog][QtCore][QByteArray] Fixed a bug that would cause QByteArray to stop converting toUpper or toLower at the first embedded null character. Change-Id: Ia369037206617813d86a8f1489589243c82aa51b Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
* | | Rework of QSysInfo OS and kernel version functionsThiago Macieira2014-07-303-105/+149
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch splits the OS product from the kernel name and versions. Previously, it was a little confusing. Thus, osType is split in two: kernelType() always returns the kernel type, which includes "linux" for Android, "darwin" for iOS and OS X, "qnx" for BlackBerry, and "windows" for all the Windows OSes. The Linux distribution name and the visible product names are found in productType(), with the respective versions in productVersion(). For an update system, applications probably want to send all four tokens: - for Android, BlackBerry, iOS, OS X and Windows, the relevant information is productType and productVersion - for Linux distributions, in addition to productType and productVersion, the kernelType ("linux") is useful as a fallback and it's important for Debian/kFreeBSD and Debian/GNU - for other Unix systems, the relevant information is kernelType and kernelVersion Change-Id: I66c36d5a4ddfad47babfc6744d752273705e7076 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>