summaryrefslogtreecommitdiffstats
path: root/src/gui
Commit message (Collapse)AuthorAgeFilesLines
* Fix some qdoc-warnings for 5.9Friedemann Kleint2017-01-251-1/+1
| | | | | | | | | | | | | | | | | | qtbase/src/corelib/global/qoperatingsystemversion.cpp:119: warning: Cannot find 'QOperatingSystemVersion(...)' in '\fn' QOperatingSystemVersion::QOperatingSystemVersion(int maj, int min, int mic) qtbase/src/corelib/io/qdir.cpp:1852: warning: Unknown command '\p' qtbase/src/corelib/kernel/qabstracteventdispatcher.cpp:482: warning: Cannot find 'registerEventNotifier(...)' in '\fn' bool QAbstractEventDispatcher::registerEventNotifier(QWinEventNotifier *notifier); qtbase/src/corelib/kernel/qabstracteventdispatcher.cpp:495: warning: Cannot find 'unregisterEventNotifier(...)' in '\fn' bool QAbstractEventDispatcher::unregisterEventNotifier(QWinEventNotifier *notifier); qtbase/src/corelib/global/qoperatingsystemversion.cpp:268: warning: Can't link to 'macro()' qtbase/src/corelib/global/qoperatingsystemversion.cpp:296: warning: Can't link to 'typeName()' qtbase/src/corelib/io/qdir.cpp:1845: warning: Undocumented parameter 'filters' in QDir::isEmpty() qtbase/src/corelib/kernel/qobject.cpp:1636: warning: No such parameter 'interval' in QObject::startTimer() qtbase/src/network/bearer/qnetworkconfiguration.cpp:343: warning: Undocumented parameter 'timeout' in QNetworkConfiguration::setConnectTimeout() qtbase/src/gui/kernel/qoffscreensurface.cpp:337: warning: Undocumented parameter 'handle' in QOffscreenSurface::setNativeHandle() qtbase/src/platformheaders/xcbfunctions/qxcbwindowfunctions.qdoc:109: warning: Unknown command '\role' qtbase/src/widgets/util/qundostack.cpp:727: warning: Command '\li' outside of '\list' and '\table' ... Change-Id: I57bff895a8e1afd94b582a6a72a06771514ee27e Reviewed-by: Jake Petroules <jake.petroules@qt.io>
* Enable gamma-correction on a face-by-face basisAllan Sandfeld Jensen2017-01-2410-34/+65
| | | | | | | | | | | Changes how we control if gamma-correction is done, and enables it for the freetype CFF engine when stem-darkening is available. The new code replaces existing hacks to force gamma-correction off when using Freetype on X11 and Windows. Change-Id: Ic703ca6965a3d81b204349e10f406c991b292edd Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
* Align blob start in program binary disk cacheLaszlo Agocs2017-01-241-48/+88
| | | | | | | | | | | | Make INTEGRITY happy. While we are at it, clean up the way the data is composed and accessed and avoid unaligned uint32* accesses on our side as well. Task-number: QTBUG-58183 Change-Id: I357be4b6844e5e8b8d27261a3676e135faea6250 Reviewed-by: Kimmo Ollila <kimmo.ollila@theqtcompany.com> Reviewed-by: Andy Nichols <andy.nichols@qt.io>
* Mirclient: update based on upstream development in lp:qtubuntuGerry Boland2017-01-241-1/+1
| | | | | | | | | | | | | | | | | This is based on revision 360 of lp:qtubuntu. Main features/bugs fixed: - fix QQuickWidget-based app rendering - wire up Qt window types to Mir to enable desktop-based applications to function with a window manager - use QEGLPlatformContext and QEGLPBuffer instead of custom code - correctly populate and update list of QScreens - support for switching keyboard layouts - improve window resizing to fix visual glitching Change-Id: If816a858eb10b6356275d4b80c89a72562b3c29f Reviewed-by: Eirik Aavitsland <eirik.aavitsland@qt.io> Reviewed-by: Matti Paaso <matti.paaso@qt.io>
* Add support for OpenGL 3.2+ core profile contexts in QPainterJulian Thijssen2017-01-235-101/+726
| | | | | | | | | | | | | | | | | | | | | | | This change allows painting via QPainter onto a QOpenGLWindow, QOpenGLWidget or QOpenGLFramebufferObject when an core profile context is in use. This is important on macOS in particular, where compatibility profiles are not available, and so the only way to use modern OpenGL is via a core profile context. Added core profile compatible shaders with moder GLSL keywords. The paint engine binds a VAO and two VBOs from now on, whenever VAOs are supported. Note that this changes behavior also for OpenGL 2.x context that have VAO support via extensions. The Lancelot test suite gains support for core profile contexts. This can be triggered via -coreglbuffer in place of -glbuffer when manually inspecting via 'lance', while tst_lancelot will automatically run core context-based tests whenever supported. Task-number: QTBUG-33535 Change-Id: I6323a7ea2aaa9e111651ebbffd3e40259c8e7a9c Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
* Doc: Fix issues in QStyleHints documentationLeena Miettinen2017-01-191-6/+18
| | | | | | | | | | | | The \c command is not supported within the \brief command. If used, QDoc omits the value and the command. Rewrite briefs to avoid using the \c command in them. Task-number: QTBUG-58212 Change-Id: Ia29eae8b17a5fd46bec39e113aabf22e010217a4 Reviewed-by: J-P Nurmi <jpnurmi@qt.io> Reviewed-by: Nico Vertriest <nico.vertriest@qt.io> Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
* Remove OpenGL dependency from qTriangulateLaszlo Agocs2017-01-183-33/+30
| | | | | | | | | | | | | | | | | | | The original implementation is only suitable as long as the only client is the GL paint engine which will call the function with the GL context current. In other cases this cannot be ensured. For instance, doing triangulation on the gui thread in a Quick application using the threaded render loop will have to deal with not having a current context on that thread at all. Doing triangulation on worker threads has the same problem as well. In addition, in modern Qt versions a -no-opengl build does not imply no accelerated graphics API. Therefore, drop the ElementIndexUint check from qtriangulator.cpp and leave it up to the caller to tell if uint indices are supported or not. Change-Id: I7491d84981ee22d05c5fde08994dbb3a4e2432e9 Reviewed-by: Gunnar Sletta <gunnar@crimson.no>
* Introduce QImage::reinterpretAsFormatAllan Sandfeld Jensen2017-01-182-0/+39
| | | | | | | | | | | | | QImage::reinterpretAsFormat can be used to change the format of an image without converting the data, to correct wrong formats or narrow the format to an opaque one if found to be opaque. [ChangeLog][QtGui][QImage] A new method reinterpretAsFormat is has been added to change the format of a QImage without converting the data. Change-Id: I5e15bc5a1c474a35d3921b06299008ab2effd945 Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io> Reviewed-by: Eirik Aavitsland <eirik.aavitsland@qt.io>
* Add eglfs-viv support for INTEGRITYKimmo Ollila2017-01-181-0/+5
| | | | | | | Change-Id: I5ea23eeac930dcc628047e3322061d543bddb643 Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io> Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io> Reviewed-by: Nikola Velinov <nvelinov@ghs.com>
* Remove support for WinRT 8.1 and Windows Phone 8.1Maurice Kalinowski2017-01-181-3/+0
| | | | | | | | [ChangeLog][QtBase][General] Removed support for WinRT/Windows Phone 8.1. Task-number: QTBUG-57288 Change-Id: Ifd6d6780cbbdb710d99556ba3d2fb2e514d4f789 Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
* Add screen product informationPier Luigi Fiorini2017-01-164-0/+86
| | | | | | | | | | | | | | | | | | | | | Add new methods to QPlatformScreen that platform plugins can reimplement in order to provide more information such as vendor, model and serial number. Expose that information as QScreen properties. A use-case for this feature is a Wayland compositor that maps screens to Wayland outputs hence it needs to replicate the information. This information can also be added to the diagnostic output of qtdiag. [ChangeLog][QtGui][QScreen] Add manufacturer, model and serialNumber properties. Change-Id: Ia6945f41023340602ef9d618e0d833a0c1825ab3 Reviewed-by: Johan Helsing <johan.helsing@qt.io> Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io> Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
* QGradient: add a setStops fast-path for conformant QGradientStopsMarc Mutz2017-01-141-0/+27
| | | | | | | | | | | | | | The setStops() docs state that the stops need to be sorted and the positions must be valid. But the implementation sorts the stops and filters out invalid ones, so we probably need to keep that behavior, which, however, causes memory allocations and, potentially, O(N²) behavior, because setColorAt() uses a form of Insertion Sort with linear scanning... Add a fast-path for the common case that users adhere to the docs and pass valid stops. Change-Id: I93099a57bc4f37d1240a9e9f763618fd5095bc64 Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
* Remove qtypetraits.h's contents altogetherGiuseppe D'Angelo2017-01-122-14/+16
| | | | | | | | | | | | | | | | | So that QFlags can use an (un)signed int matching the underlying type as identified by the compiler and not by us. Requires fixing a few warnings about sign conversion due to QFlags misusages in qtbase that were either plain wrong, or were relying on the enum being backed by an (un)signed int when it wasn't. Keep qtypetraits.h in the source tree in order to prevent source breaks if some downstream #includes it (note however that it did not contain any public API). Change-Id: Ib3a92b98db7031e793a088fb2a3b306eff4d7a3c Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Add support for building for INTEGRITY using GHS toolchainKimmo Ollila2017-01-101-0/+1
| | | | | | | | | | | Initial support for INTEGRITY to build QtBase Change-Id: I18f36b4dea9107f01e1c281e4b62880590c777a1 Reviewed-by: Tuukka Turunen <tuukka.turunen@theqtcompany.com> Reviewed-by: Nikola Velinov <nvelinov@ghs.com> Reviewed-by: Risto Avila <risto.avila@qt.io> Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io> Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* Fix toArgb32 on NEONAllan Sandfeld Jensen2017-01-091-1/+6
| | | | | | | | | | The color components were not correctly shuffled to ARGB host-order form. Discovered and tested with tst_QPainter::blendARGBonRGB on ARM. Change-Id: I2ef9b6129dd83f3c6be0b30c0a5e3684564e6b2f Reviewed-by: Eirik Aavitsland <eirik.aavitsland@qt.io>
* Remove compatibility code paths for macOS < 10.10 and iOS < 8.0Jake Petroules2017-01-091-24/+1
| | | | | Change-Id: I11bec0efc2b4d86adf64a58990260fee70f050ac Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
* Improve mime type filters in QFileDialogElvis Angelaccio2017-01-062-0/+26
| | | | | | | | | | | | | This patch improves the handling of mime type filters in QFileDialog. The main change is in selectMimeTypeFilter(), which was just falling back unconditionally on selectNameFilter(). Instead, mime type filters should have an higher priority than name filters. This patch also adds a new selectedMimeTypeFilter() method, which is used in the unit test. Change-Id: Ice8bb08f5ff46e4a942d539f6001424eca878f74 Reviewed-by: David Faure <david.faure@kdab.com>
* doc: Fix all remaining "Cannot tie" errors in QtBaseMartin Smith2017-01-063-4/+5
| | | | | | | | | | | | Most of these involved moving or removing extraneous aide-memoir comments left by programmers between qdoc comments and their functions. There were also some cases where Q_CLANG_QDOC had to be tested to make something visible to clangqdoc. And there were a few functions that should not have been documented at all. Change-Id: I3bf7c397a9e5ddbffc40cc1fee7f19cad71a1ae7 Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
* Provide default implementation of QPlatformMenuBar::createMenu()Tor Arne Vestbø2017-01-052-1/+6
| | | | | | | Instead of falling back to createPlatformMenu() in client code. Change-Id: Ia257449200f5c71f5e164072adce13d1137b1d87 Reviewed-by: J-P Nurmi <jpnurmi@qt.io>
* Split QPlatformWindow::isEmbedded into isAncestorOf to separate concernsTor Arne Vestbø2017-01-053-9/+30
| | | | | | | | | | | The function was doing two things, both checking window ancestry and whether or the window was a direct child of non-Qt window. The former has now been split of in a QPlatformWindow::isAncestorOf(), which simplifies the code in e.g. QApplicationPrivate::isWindowBlocked(). Change-Id: I259a190e03ef8def23356005474eeeee74c9ae89 Reviewed-by: Miikka Heikkinen <miikka.heikkinen@qt.io> Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
* Split fetchTransformedBilinearARGB32PMAllan Sandfeld Jensen2017-01-051-512/+645
| | | | | | | | | Split out the fast paths of fetchTransformedBilinearARGB32PM, so each can be more easily read on its own, and to prepare for future AVX2 versions. Change-Id: I1e9842a8928689823bf6d7d8a352625ed4b4b6c5 Reviewed-by: Eirik Aavitsland <eirik.aavitsland@qt.io>
* doc: Moved two qdoc commentsMartin Smith2017-01-051-5/+6
| | | | | | | | They were simply not postioned correctly relative to the functions they were meant to document. Change-Id: I6eef94b291ae4ffe343d2728cc32477f55b2a871 Reviewed-by: Martin Smith <martin.smith@qt.io>
* Always instantiate QPlatformAccessibilityFrederik Gladhorn2017-01-041-2/+7
| | | | | | | | | | | | | Instead of returning 0, instantiate QPlatformAccessibility which delegates the handling of accessibilty to accessibilitybridge plugins. This makes it possible to implement entirely custom handling of the accessibility events, making it possible to write for example in-process screen readers. Change-Id: I7bcfd83b769af8ca2689fb38add1345719cf804f Reviewed-by: Jesus Fernandez <jesus.fernandez@qt.io> Reviewed-by: Jan Arve Sæther <jan-arve.saether@qt.io>
* Add new APIs which is useful to upload more than one layer at onceBogDan Vatra2017-01-043-26/+75
| | | | | | | | | It's useful to upload textures storred in .KTX files without dividing the layers. It's also more efficient than uploading layer by layer. Change-Id: I92d93c57514e2a3637d1202cb83bd72b8d277edf Reviewed-by: Sean Harmer <sean.harmer@kdab.com> Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
* Q_ENUMS -> Q_ENUM and Q_FLAGS -> Q_FLAGAlbert Astals Cid2017-01-021-1/+2
| | | | | Change-Id: I3cdc7338354da40ab20bdaeb9d5745264ea27228 Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
* QImageWriter: Do not assume that QIODevice::open() will succeedRobin Burchell2016-12-221-2/+7
| | | | | | | | | For instance, if we are passed a QFile to a path that does not exist, being told "No such file or directory" is significantly more useful than being told "Device not writable". Change-Id: I0cc72322f868f06ae2f77b3d0fac7e2094a1d2c7 Reviewed-by: Eirik Aavitsland <eirik.aavitsland@qt.io>
* QImageWriter: Explain slightly strange looking logic in canWriteRobin Burchell2016-12-221-0/+5
| | | | | Change-Id: Ic0fa4783351144ad8739669f1655b2fb0639a43d Reviewed-by: Eirik Aavitsland <eirik.aavitsland@qt.io>
* Suppress QOpenGLShaderProgram::link() warnings for binariesLaszlo Agocs2016-12-211-1/+1
| | | | | | | | | | No need to pollute the debug output when attempting to load a program binary which then gets rejected, because this is not fatal. We will simply recompile from source then. Change-Id: I762b7c66fc1ccdf8ab73d720ee10a349c287628b Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io> Reviewed-by: Andy Nichols <andy.nichols@qt.io>
* Add QPlatformTheme::standardButtonShortcut()Alexander Volkov2016-12-192-0/+14
| | | | | | | | | | | | It allows to set shortcuts for the standard buttons in QDialogButtonBox. Restore Qt4's behavior for the "Don't Save" button on macOS by setting a shortcut for it (it was Cmd-D before Lion, now it's Cmd-Delete). Change-Id: I6b56f68f37670962178693a8983d9fe550540856 Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
* Merge "Merge remote-tracking branch 'origin/5.8' into dev" into refs/staging/devShawn Rutledge2016-12-1923-150/+295
|\
| * Merge remote-tracking branch 'origin/5.8' into devLiang Qi2016-12-1623-150/+295
| |\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: configure configure.pri examples/widgets/painting/fontsampler/mainwindow.cpp examples/widgets/painting/fontsampler/mainwindow.h mkspecs/features/moc.prf src/corelib/global/qglobal.h src/gui/text/qtextdocument.cpp Change-Id: Ica65512e00871695190a14ccea5c275b0165f787
| | * 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>
* | | | | | touch manual test and TouchPoint qDebug: show horz/vert ellipse diamShawn Rutledge2016-12-161-3/+6
|/ / / / / | | | | | | | | | | | | | | | | | | | | Change-Id: Idb42a732e538f202de1e7310f4ca375fd0420b02 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* | | | | Android: Enable Adoption of ANativeWindow handle as a QOffscreenSurfaceAndy Nichols2016-12-142-0/+40
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is done by adding an API to QOffscreenSurface to enable setting a native handle which can represent a native offscreen surface. When using the TexureView it is necessary to render to SurfaceTexture objects which are exposed as offscreen window surfaces. After wraping a SurfaceTexture in a android.view.Surface object and passing it to C++ via the JNI, it is possible to get the needed ANativeWindow* handle required to pass to eglCreateWindowSurface. So by setting this native handle Qt can then render to this "native" offscreen surface. Change-Id: If7fc5ac7ac588fe6c3a6fb883ea7e439d095470f Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io> Reviewed-by: J-P Nurmi <jpnurmi@qt.io> Reviewed-by: BogDan Vatra <bogdan@kdab.com>