summaryrefslogtreecommitdiffstats
path: root/src/gui
Commit message (Collapse)AuthorAgeFilesLines
* Use context as glyph cache key in GL paint engineLaszlo Agocs2017-01-241-1/+1
| | | | | | | | | | | | | | | Switch from ctx->shareGroup() to ctx. The original intention to use the same cache instance for sharing GL contexts is reasonable, but can only work when there are only shareable resources involved. The FBO used by QOpenGLTextureGlyphCache is not one of these. Text rendering in Qt Quick already uses the same approach and uses per-context glyph caches. Change-Id: Ie7e521769f28b4902ca714eb029acfbf52814309 Task-number: QTBUG-58276 Reviewed-by: Joni Poikelin <joni.poikelin@qt.io> Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
* Fix MIPS32 processor detectionAllan Sandfeld Jensen2017-01-242-13/+6
| | | | | | | | | | | Gcc defines neither _MIPS_ARCH_MIPS32 nor __mips32 on MIPS32 architectures, instead __mips is defined to 32. This fix exposed bit-rot in qdrawhelper where qt_memfill32 was set as a function pointer despite not being one since Qt4. Change-Id: I87461823e54fa3166223ebf97175fd05d2f2fd16 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Cocoa: fix crash regression in qt_mac_create_nsimage()Oleg Yadrov2017-01-231-0/+2
| | | | | | | | | | | The regression was introduced in d8857f21ac264. The original change was meant to fix support for SVG icons, but failed to take into account a valid QIcon with no sizes, but which is also unable to create a pixmap for the requested size. Task-number: QTBUG-58344 Change-Id: I7ac1dbfaf6e3dab8581fe4b33c814e2517fcdba8 Reviewed-by: Andy Shaw <andy.shaw@qt.io>
* Fix license header of QInputControlEskil Abrahamsen Blomfeldt2017-01-232-24/+36
| | | | | | | | | The license headers here were accidentally copied from Qt 5.6, since the files were targeted for that branch originally. This updates them to the proper LGPLv3 + GPLv2 + commercial. Change-Id: I0623bdbf8fd4475405500b2687ef8dce2f1dbb6b Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* QGuiApplication: Send QEvent::Window(Un)blocked to embedded window, tooFriedemann Kleint2017-01-231-8/+12
| | | | | | | | | | | | | Change 333f641622c795a4b826d2d48aeabd5b5eab6e90 modified QGuiApplication::topLevelWindows() to no longer include embedded windows. This causes the blocked handling in Active Qt to no longer be triggered. Fix this by iterating over the list using the same condition as before, avoiding the construction of a temporary list as a side effect. Task-number: QTBUG-18099 Change-Id: I06a1a4e324fea9f543ceb5274bb064734f8d56af Reviewed-by: Miikka Heikkinen <miikka.heikkinen@qt.io> Reviewed-by: Andy Shaw <andy.shaw@qt.io>
* Fix dereference before null check in QOpenGLExtensionMatcherJesus Fernandez2017-01-231-10/+12
| | | | | | | | QOpenGLContext pointer was dereferenced before checking if it valid. Coverity-Id: 11370 Change-Id: I87d83a87d88ad7c055f3ed32096bfda036224ca9 Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
* Avoid trashing other contexts' VAOs in destroy()Laszlo Agocs2017-01-211-49/+45
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The following is safe: QOpenGLVertexArrayObject *vao = ... vao->create(); switch the current context delete vao; because the QOpenGLVAO dtor recognizes that the wrong context is current, and will temporarily restore the VAO's associated one in order to safely destroy the vao object. However, the following has been problematic: vao.create(); switch the current context vao.destroy(); simply because all the logic was in the dtor and destroy() blindly deleted the vao object in whatever context was current. This can lead to releasing a completely unrelated vao object that happens to have the same name in another context. The expectation is for context-dependent wrappers is that a ctor-create-dtor-ctor-create-dtor-... sequence is equivalent to create-destroy-create-destroy-..., so move the safe cleanup logic from the dtor to destroy(). Change-Id: Ie3bddbf4bfeb8629948c4783cc88422c9df03e65 Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
* fix detection of statically built system-libpngOswald Buddenhagen2017-01-191-2/+2
| | | | | | | | | | it has a dependency on zlib, which needs to be explicitly linked when linking statically. Task-number: QTBUG-56163 Change-Id: I4564844e8a35686db48c429b259e78558d312819 Reviewed-by: Tim Blechmann <tim@klingt.org> Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
* Make sure we call glClearDepth(double) on desktop GLGunnar Sletta2017-01-191-2/+3
| | | | | | | Task-number: QTBUG-56798 Change-Id: I028510c0f75df5c7d2dce539c32ea503009467db Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io> Reviewed-by: Bruno de Oliveira Abinader <brunoabinader@gmail.com>
* Merge remote-tracking branch 'origin/5.7' into 5.8Liang Qi2017-01-181-0/+7
|\ | | | | | | Change-Id: Ifc825f500a2ddc417b43440f36b4192fad0585da
| * add docs for QPlatformTheme::WheelScrollLines, MouseDoubleClickDistance5.7Shawn Rutledge2016-12-131-0/+7
| | | | | | | | | | | | | | | | | | These theme hints were added in fac71528 and 4a2e297b respectively. Change-Id: Ic39f32dae4d0843b1b2398beb27081ad07d75772 Reviewed-by: Jan Arve Sæther <jan-arve.saether@qt.io> (cherry picked from commit 847a152474550e0952d31f15069fb346565938df) Reviewed-by: Simo Fält <simo.falt@qt.io>
* | Fix build without feature.cssparserTasuku Suzuki2017-01-181-2/+4
| | | | | | | | | | Change-Id: Ib751a3d1ad37aae68d6a05aab493833fbcc0b53d Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* | Fix build without feature.imageformatpluginTasuku Suzuki2017-01-171-0/+3
| | | | | | | | | | Change-Id: I28c146bfa1795794ad27d27c458970c5127cca67 Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* | Fully qualify enum arguments in input device manager signalsLaszlo Agocs2017-01-161-1/+1
| | | | | | | | | | | | | | | | Otherwise queued connections may complain about DeviceType not being registered. Change-Id: I1f93f8b34e78919e72ea99000c42da7024b6bdf3 Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
* | Merge remote-tracking branch 'origin/5.8.0' into 5.8Liang Qi2017-01-142-7/+9
|\ \ | | | | | | | | | | | | | | | | | | Conflicts: src/gui/painting/qcoregraphics.mm Change-Id: I4d49535cd75f2cdf0151c1dbff312cce5e159760
| * | Fall back to platform theme in QPlatformSystemTrayIcon::createMenu()Tor Arne Vestbø2017-01-061-6/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Commit 824f08046 introduced QPlatformSystemTrayIcon::createMenu() as a way for platforms to provide a system tray menu independently of the menu created by QPlatformTheme::createPlatformMenu(), which would on some platforms be null. Commit 063997f44ffc then made menu creation lazy, which meant that the logic in QSystemTrayIconPrivate::addPlatformMenu() to create the menu turned from "create menu via QPSTI::createMenu() if QPT::createPlatformMenu() returned null", to "create menu via QPSTI::createMenu() if menu was not created yet". The latter logic relied on each platform having implementations of QPlatformSystemTrayIcon::createMenu() which they didn't, resulting in missing menus for system trays on e.g. macOS. With the new lazy logic, the reasonable approach is for the default implementation of createMenu() to use createPlatformMenu(), which will ensure system tray menus on platforms that implement createPlatformMenu(), while still allowing platforms that don't to override createMenu() for special-casing system tray menus. Task-number: QTBUG-57365 Change-Id: Id393e802ac0435200fc885a7f4436b744962f27f Reviewed-by: J-P Nurmi <jpnurmi@qt.io>
| * | QMacCGContext: Take paint device pixel ratio into accountGabriel de Dietrich2017-01-041-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | This seems to have been omitted in c52bb0309071bed9e040c79d87f764bac6a396b8. Change-Id: If8cde889af75934c85d9b21bd22095b7e5a4bf32 Task-number: QTBUG-57894 Reviewed-by: Jake Petroules <jake.petroules@qt.io>
* | | QGradientCache: fix a new/delete mismatchMarc Mutz2017-01-142-10/+16
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Commit f839f536 fixed a data race in the gradient cache by reference-counting the CacheInfo objects stored in the cache. To this end, QSpanData gained a ref-counted pointer to the CacheInfo whose members it references to keep the object alive for as long as the QSpanData object needs it. However, since CacheInfo is only later defined in qpaintengine_raster.cpp, the counted pointer's payload was chosen as CacheInfo's base class, QSharedData. As it turns out, e.g. in the QPainter test, the data race was real and so QSpanData ends up being the entity that destroys (at least some) CacheInfos, either in its destructor, or in the setup() method. Since QSharedData's destructor is not virtual, and QExplicitlySharedDataPointer<QSharedData> knows nothing of the CacheInfo-ness of its payload, we end up calling the destructor of the base class, and not the CacheInfo one. Fix by using QSharedPointer instead, which stores the correct deleter internally. Ideally, QSpanData would contain a QSharedPointer<const void>, but QSharedPointer's implementation is deficient in that respect and does not compile when instantiated with void, and we can't use std::shared_ptr, yet, so introduce an arbitrary base class, Pinnable, to be used instead. Change-Id: I5573c599d5464278d3a8e4248d887ef9ffcd7b70 Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io> Reviewed-by: Lars Knoll <lars.knoll@qt.io> Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
* | | Make QSimpleDrag work with highDPI scalingPaul Olav Tvete2017-01-131-8/+29
| | | | | | | | | | | | | | | | | | | | | | | | Task-number: QTBUG-57863 Change-Id: I940179a694ce992245dabb77ef6e92e027427524 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io> Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io> Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
* | | Put the features for platform plugins into their own sectionUlf Hermann2017-01-121-0/+7
| | | | | | | | | | | | | | | Change-Id: Icde1555e6093c9d8dd38e0abee40004db85189de Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
* | | Accessibility: make sure childAt calls isValidFrederik Gladhorn2017-01-121-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Generally isValid should be called by the bridge, but in this case, we must verify the validity internally since we derefernce the interface internally. Task-number: QTBUG-52536 Change-Id: I14950118e58d65135bc38d77c23b8a7fed8bf39a Reviewed-by: Jan Arve Sæther <jan-arve.saether@qt.io>
* | | QFont: fix fromString(toString()) when application font has styleNameDavid Faure2017-01-111-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The style name needs to be cleared if not present in the string, otherwise the style name from qApp->font() (which propagates to any default-constructed QFont) remains. Change-Id: I9b6522a39a38526cced8a11ed02ae32582026480 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io> Reviewed-by: Konstantin Shegunov <kshegunov@gmail.com>
* | | Correct initial window size with highDPIPaul Olav Tvete2017-01-101-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | Use the scaling factor when calculating the initial size of the platform window. Change-Id: Ie21f0da14e32ac437efbc304a3fd9722a7f8615e Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io> Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
* | | Restore binary compatibility with pre-5.6 qt_handleMouseEventJan Kundrát2017-01-101-0/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | An internal, private symbol was changed in beef975f92e42143c464d68afa6b8cd4f7ef7389. However, this symbol was being used by some inline functions in QtTest, and this therefore introduced a BIC. This change simple adds back a symbol with the original signature. I recall seeing this in my own work, and the KDE CI system hits this as well: libKF5KDELibs4Support.so.5.25.0: undefined reference to `qt_handleMouseEvent(QWindow*, QPointF const&, QPointF const&, QFlags<Qt::MouseButton>, QFlags<Qt::KeyboardModifier>)' Task-number: QTBUG-52205 Change-Id: I4e85996850cc436b6a31addca3a8f9829c0c5edd Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* | | Doc: removed reference to non-existing snippetNico Vertriest2017-01-091-3/+1
| | | | | | | | | | | | | | | | | | | | | | | | Command \snippet (//! [3])' failed at end of file ../widgets/widgets/charactermap/mainwindow.cpp Change-Id: Ib095053bd4ff3901d7a9cd91aae3d83ec5f60807 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* | | Remove strange, incoherent sentences in QColor docsKavindra Palaraja2017-01-071-6/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | There were some strange sentences that did not add to the documentation of HSL vs. HSV. Task-number: QTBUG-52483 Change-Id: I5f2b8c3bd420fe9cabc74a94af4b78945723b6cf Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io> Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
* | | Fix deleting of QOpenGLVersionFunctionsBackendDavid Faure2017-01-061-6/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Since the destructor is not virtual we need to cast to the proper class when deleting otherwise the wrong destructor is called and the object memory is not entirely freed. Change-Id: Ie4e0e91bfa6e802c7d72fd1f137f5c7f3f31c8a0 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io> Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
* | | Silence maybe_uninitialized warning with gcc -OgAllan Sandfeld Jensen2016-12-211-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | GCC produces false positives for maybe_uninitialized when compiling with -Og in these three places. Simply initialize the variables to silence it. This should be entirely cost-free for normal compilation. Change-Id: Iab778a6ba25993f78f190e928c1fcc2dbd8b2fcd Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* | | macOS: Take DPR into account when creating CGContexts for a QPixmapTor Arne Vestbø2016-12-211-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | Missing logic when refactoring image manipulation methods into QtGui in c52bb030907. Task-number: QTBUG-57723 Change-Id: I7b55d4451d35faf5fd794daa0b80acbd712f30cd Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@qt.io>
* | | Avoid using QRgba64 for buffersAllan Sandfeld Jensen2016-12-201-33/+33
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Benchmarking showed most time rendering in rgb64 mode was spend on memsetting the buffers because they were not declared with a primitive type. This patch changes the buffers to quint64, but leaves refactoring function arguments to a later patch in the dev branch. Change-Id: Iacc81b0d8e9570b1975dffb85c955b0aabb096a7 Reviewed-by: Eirik Aavitsland <eirik.aavitsland@qt.io>
* | | fix typos in "ras[p]berry pi"Oswald Buddenhagen2016-12-201-2/+2
| | | | | | | | | | | | | | | Change-Id: I2d8910df9266d9cbf2426e5f2ba2a88eb2e821ef Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* | | Merge remote-tracking branch 'origin/5.8.0' into 5.8Liang Qi2016-12-1620-142/+279
|\| | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: doc/global/qt-cpp-defines.qdocconf src/plugins/platforms/android/qandroidplatformopenglcontext.h src/plugins/platforms/android/qandroidplatformtheme.h Change-Id: I13d51cc66f708138ff4d667ceea7d515992e58a4
| * | Re-fix build error with ICC 17 on WindowsThiago Macieira2016-12-152-0/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is a repeat of ae880beb7d02141c5097ef61409fa66b2c910dd3, which had fixed the problem for ICC 16. That commit was a repeat of acf80b9a2b913e898ed4c4ed14d4ea79401484fe, which had fixed it for ICC 15. As reported in ae880beb7, ICC doesn't like polymorphic exported classes with inline constructors. That commit added the default constructor, but we forgot the copy constructor. This constructor should have been protected, so users are forced to use the virtual clone() function, but we can't make it so in Qt 5 because MSVC encodes the protection and has exported the inline function in debug builds. qsvgiconengine.obj : error LNK2001: unresolved external symbol "const QIconEngine::`vftable'" (??_7QIconEngine@@6) Change-Id: I427336c52fc342638c74fffd149033b990ea7ade Reviewed-by: Lars Knoll <lars.knoll@qt.io>
| * | Doc: QPointingDeviceUniqueId: Fix documentation warningTopi Reinio2016-12-091-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | Fix the following warning by adding a const qualifier: warning: No documentation for 'QPointingDeviceUniqueId::isValid()' Change-Id: I1ebeda8f45e88efb7cb844b67409352c695e6354 Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
| * | QPointingDeviceUniqueId: remove deprecated numeric() and constructorShawn Rutledge2016-12-081-9/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | Followup to 0484473: this is all new stuff for 5.8 and we don't need to release it with pre-deprecated functions. Task-number: QTBUG-54616 Change-Id: If17a4bec6fc36ca78d87517992374f101ae13b4f Reviewed-by: Jan Arve Sæther <jan-arve.saether@qt.io>
| * | Merge remote-tracking branch 'origin/5.7' into 5.8.0Liang Qi2016-12-0810-73/+73
| |\| | | | | | | | | | Change-Id: I576187a9905802c177ae483e6c29d0f55cf7034d
| | * Merge remote-tracking branch 'origin/5.7.1' into 5.7Liang Qi2016-12-071-10/+21
| | |\ | | | | | | | | | | | | Change-Id: Ic2cdbd0c826bd63f545479495fa095ec666ddd5a
| | | * Fix the JPEG EXIF reader to deal with some broken/corrupt filesv5.7.1Thiago Macieira2016-12-011-10/+21
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We parse the EXIF header in order to get the proper orientation, so let's be a bit more careful in what we accept. This patch adds better handling for reading past the end of the stream, plus it limits the number of IFDs read (to avoid processing too much data) and deals with a pathological case of the EXIF file format: EXIF (due to its TIFF origins) permits the offset to the next IFD to be backwards in the file, which means it could result in a loop or pointing to plain corrupt data. We disallow any backwards pointers, since it seems that's what other decoders do (libexif, for example). Change-Id: Iaeecaffe26af4535b416fffd1489332db92e3888 (cherry picked from 5.6 commit 02150649f95b8f46f826e6e002be3fa0b6d009bc) Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
| | | * Prevent stale QOpenGLContext fbo pointerMorten Johan Sørvig2016-11-112-1/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | There is logic for clearing the qgl_curent_fbo pointer in release(), but it is not always called, causing the pointer to become stale on QOpenGLFramebufferObject deletion. As a last resort, clear the qgl_curent_fbo pointer on the current context if it’s pointing to the object that is being deleted. Change-Id: I0a91d686cec5fcbe4c1520a9ba96cea833bb2249 Task-number: QTBUG-56639 Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
| | * | QtGui: Add missing overrideAlexander Volkov2016-11-2710-73/+73
| | | | | | | | | | | | | | | | | | | | Change-Id: Ief5b0863d7649d5a8d421c05766513276c264776 Reviewed-by: hjk <hjk@qt.io>
| * | | Document 3rd party code in qimagetransform.cppKai Koehne2016-12-073-44/+90
| | | | | | | | | | | | | | | | | | | | Change-Id: I685d3964617e3984b938bd9aafa0626acd75656f Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
| * | | rename QPointerUniqueId -> QPointingDeviceUniqueIdShawn Rutledge2016-12-074-30/+30
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Several people agreed that the name was confusing and that this one is better. Task-number: QTBUG-54616 Change-Id: I31cf057f4bc818332b0551a27d1711599440207c Reviewed-by: Marc Mutz <marc.mutz@kdab.com> Reviewed-by: Sune Vuorela <sune@vuorela.dk>
| * | | Work around ICC compiler bug on template instantiation on ?:Thiago Macieira2016-12-041-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | It doesn't like the access to the template instantiation in the ternary operator. error: operand types are incompatible ("FetchPixelFunc" and "<unnamed>") Intel-Issue-ID: 6000164201 Change-Id: I73fa1e59a4844c43a109fffd148ca452796eebb1 Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io> Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
| * | | QPointerUniqueId: make fit for releaseMarc Mutz2016-12-012-15/+103
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - Declare as Q_MOVABLE_TYPE - Prevent QList<QPointerUniqueId> from being instantiated (use QVector instead) - Add equality relational operators - Add qHash() overload - Replace non-default ctor with named ctor. - Add Q_DECL_NOTHROW. - Add Q_DECL_CONSTEXPR. - Rename numeric() -> numericId(). - Update docs. The extension vector for this class calls for additional properties to be added later, but these are not user- settable. It thus suffices to rely on the only data member, a qint64, which can be reinterpreted to an index into an array or hash with actual objects. This allows to make the class a Trivial Type (ie. no overhead over an int) while still supporting later extension. Cf. QSslEllipticCurve as another example of such a class. The extension has to maintain the following invariants, encoded into user code by way of being used in inline functions: - m_numericId == -1 <=> !isValid() This is trivial to support. An extension could not and still cannot reinterpret the qint64 member as a d-pointer, but a d-pointer is only necessary for user-settable properties where updating a central private data structure would cause too much contention. Add a test. Since this type is used in other modules, keep the existing functions, but mark them as deprecated with the expectation that these compat functions be removed before 5.8.0 final. Task-number: QTBUG-54616 Change-Id: Ia3ede0ecaeeef4cd3ffa94a72b1050bd409713a5 Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
* | | | Touch fix for popups blocked by modal dialogPaul Olav Tvete2016-12-151-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Don't block the event that Qt depends on to close popups. This is the same fix as 5b65698248325576faa03a2bb78d17349a33a194, but for touch this time. Task-number: QTBUG-57292 Change-Id: I47bc19883c2e2b5dc9615c12dc6c198193c055cf Reviewed-by: Frederik Gladhorn <frederik.gladhorn@qt.io>
* | | | doc: Specify which characters are replaced by toPlainText()Eskil Abrahamsen Blomfeldt2016-12-151-0/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Some formatting characters are replaced by ASCII in the output from toPlainText(). Since this is a bit inconsistent, we should document it. Task-number: QTBUG-57552 Change-Id: I46033588d37517056a8d4668d1d16d48c72ee1b5 Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* | | | Q_CHECK_PTR the result of QDataBuffer's allocationsUlf Hermann2016-12-141-4/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We might run out of memory or malloc() or realloc() might fail for any other reason. We want to crash cleanly with a clear message in that case, rather than returning a null pointer. Change-Id: If09c1b9e905fc60a5d9d45e598a418df433cf83b Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* | | | Silence warning about non-void function without return valueThiago Macieira2016-12-141-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Q_UNREACHABLE() isn't enough for some compilers, especially if it expands to nothing. warning #1011: missing return statement at end of non-void function "fetchPixel<bpp>(const uchar={unsigned char} *, int) [with bpp=QPixelLayout::BPPNone]" Change-Id: I3e3f0326f7234a26acf5fffd148fecf0b72ea7e0 Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
* | | | Fix compilation with -no-pchEskil Abrahamsen Blomfeldt2016-12-121-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Q_UNUSED(cursor) was failing to compile when configured with -no-pch. Change-Id: I1da3c95c1636ca06f38a97052ee4360232520a8b Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* | | | Accept ZWNJ, ZWJ and PUA characters in input widgetsEskil Abrahamsen Blomfeldt2016-12-123-2/+162
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Private Use Area characters are quite valid input characters when used in combination with a custom font. Joiners also serve an important language purpose in semitic writing systems. Note that there is a hack where we disregard any character produced using CTRL or CTRL+SHIFT specifically because of German keyboards. I have chosen to keep the hack in this patch to limit the change (though I have made an exception for ZWJ and ZWNJ since both are produced using Ctrl+Shift on Windows), but it will probably have to be reverted. [ChangeLog][QtWidgets][Input] Accept characters in Private Use Area, as well as zero-width joiners and zero-width non-joiners in input in QLineEdit and QTextEdit. Task-number: QTBUG-42074 Task-number: QTBUG-57003 Change-Id: I73f3b7d587a8670de24e902dc52a51f7721dba5a Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>