summaryrefslogtreecommitdiffstats
path: root/src/gui
Commit message (Collapse)AuthorAgeFilesLines
* Move QOpenGLVersionProfile to its own filesJohan Klokkhammer Helsing2020-02-227-217/+330
| | | | | | | | Prepare to move it out of QtGui Task-number: QTBUG-74409 Change-Id: Iefde4945ede27cf3c2f6f50e5a693c03625cadf6 Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
* Move QOpenGLBuffer from QtGui to QtOpenGLJohan Klokkhammer Helsing2020-02-225-767/+0
| | | | | | Task-number: QTBUG-74409 Change-Id: I72c839e54f24810b2bde2385c568921c4e4a2869 Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
* Move QOpenGLVertexArrayObject from QtGui to QtOpenGLJohan Klokkhammer Helsing2020-02-216-771/+0
| | | | | | Task-number: QTBUG-74409 Change-Id: I6442693ca2b28b3a66f0f4fb41843e1e404df32b Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
* New QMetaType representationOlivier Goffart2020-02-201-5/+27
| | | | | | | | | | | | | | | | | | | | the QMetaType is represented as a pointer to a "vtable" in the form of a QtPrivate::QMetaTypeInterface* The recomanded use of QMetaType is to construct an object with QMetaType::fromType. This does not require any registration. There is still an id() function which will do some registration for compatibility with Qt5. Also the patch does not really touch the other extra things that can be registered (data stream operator, comparison operator, iteratable, ...) and this still uses the previous system. This is only the change in QMetaType, other changes to use it in QVariant and QMetaObject will follow Change-Id: Iffad20085cf33f33447f58a68236013a8b60fdbf Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* Make bytes-per-line safe for int overflowAllan Sandfeld Jensen2020-02-2014-36/+53
| | | | | | | | Goes through the Qt code and make sure bytes-per-line calculations are safe when they are too big for 32bit integers. Change-Id: I88b2d74b3da82e91407d316aa932a4a37587c0cf Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* Move QOpenGLShaderProgram from QtGui to QtOpenGLJohan Klokkhammer Helsing2020-02-208-4141/+7
| | | | | | Task-number: QTBUG-74409 Change-Id: I20dfafc0c9bf8e2b68b03e171d70c2cb4ad2bfaf Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
* Docs: Remove traces of QGLJohan Klokkhammer Helsing2020-02-201-2/+1
| | | | | | | | | The QGL* classes have been removed and the examples ported to QOpenGL, update the documentation to reflect that. Task-number: QTBUG-74408 Change-Id: Ibb4787cdeedc05a807d673943b61838f19092234 Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
* Prepare QGuiAction::enabled property for declarative useAllan Sandfeld Jensen2020-02-204-23/+48
| | | | | | | | | | | Make the order of visible, group and enabled insignificant, by storing ignored explicit values of enabled. Also adds resetEnabled method QQuickAction has on the enabled property. Change-Id: I9299dec0d1f74fdf655721bb4f72ba565ae85c7a Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io> Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
* Add enabled to QGuiAction debug outputAllan Sandfeld Jensen2020-02-201-0/+1
| | | | | | | It is a rather important property Change-Id: I085031531235b1776faf5d2b52269ed4a05f0704 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* DirectWrite font db: Fix writing system detectionEskil Abrahamsen Blomfeldt2020-02-203-8/+36
| | | | | | | | | | The implementation here was accidentally missing from the first commit. We use the OS/2 table for determining the writing system support as intended by the font designer, and fall back to actually checking the Unicode ranges if the table should be missing. Change-Id: Ibfdf76c27f3a94eda2142b3e269a1ca30d4bc045 Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* Fix sorting of fallback fonts based on writing systemsKonstantin Ritt2020-02-191-41/+26
| | | | | | | | | | This rewrites 243f4b2a8c027ae18c7ffce969c48d1f8d1b5431 in a more complete and optimized manner Task-number: QTBUG-81924 Change-Id: I52105a9ede07ce350fad3d50277dd631df371f06 Reviewed-by: Hikaru Terazono (3c1u) <3c1u@vulpesgames.tokyo> Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
* Update references from QAction to QGuiActionAllan Sandfeld Jensen2020-02-171-13/+13
| | | | | | | A few places were still referring to the old class name. Change-Id: Iab99bdda2184c06ad24cb96419e33d4157bddaff Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* Add major versions to REVISION and Q_REVSION markersUlf Hermann2020-02-171-12/+12
| | | | | | | | Statemachine had major version 1 in Qt5, and window had major version 2. Change-Id: I24cc6de5ca9270c61e0dba7d1ee6a61ef84b3018 Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io> Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
* Move QOpenGLFrameBufferObject from QtGui to QtOpenGLJohan Klokkhammer Helsing2020-02-176-2215/+0
| | | | | | Task-number: QTBUG-74409 Change-Id: I817ea6f052fc61a6465d443450c8017ac5d0c0e9 Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
* Silence another -Werror=class-memaccessGiuseppe D'Angelo2020-02-151-2/+2
| | | | | | | | QDataBuffer when used with non trivally copiable types will try to realloc them, causing GCC to complain. Change-Id: I778d32d00774b0a53b85257be0064f19d9fb2bb9 Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
* Merge remote-tracking branch 'origin/5.15' into devLiang Qi2020-02-1339-169/+466
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: examples/widgets/graphicsview/boxes/scene.h src/corelib/Qt5CoreMacros.cmake src/corelib/Qt6CoreMacros.cmake src/network/ssl/qsslsocket.cpp src/network/ssl/qsslsocket.h src/platformsupport/fontdatabases/windows/qwindowsfontenginedirectwrite.cpp src/testlib/CMakeLists.txt src/testlib/.prev_CMakeLists.txt tests/auto/corelib/tools/qscopeguard/tst_qscopeguard.cpp Disabled building manual tests with CMake for now, because qmake doesn't do it, and it confuses people. Done-With: Alexandru Croitor <alexandru.croitor@qt.io> Done-With: Volker Hilsheimer <volker.hilsheimer@qt.io> Change-Id: I865ae347bd01f4e59f16d007b66d175a52f1f152
| * a11y: Remove a ### Qt6 that doesn't make much senseJan Arve Sæther2020-02-121-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Since the enum names are "the same", the comment seems to suggest to change the enum value of Canvas to 0x401. I don't see any benefit to that really. In addition, we are today using UIA in favor of MSAA, and the closest matching role (controlTypeId) seems to be for a static image (UIA_ImageControlTypeId), which is quite different from the semantic of IA2_ROLE_CANVAS. For the record, here's a list of similar roles for different a11y APIs: IA2: IA2_ROLE_CANVAS An object that can be drawn into and to manage events from the objects drawn into it. Also refer to IA2_ROLE_FRAME, IA2_ROLE_GLASS_PANE, and IA2_ROLE_LAYERED_PANE. MSAA: ROLE_SYSTEM_DIAGRAM The object represents a graphical image that is used to diagram data. UIA: UIA_ImageControlTypeId Identifies the _Image_ control type. atspi: ATSPI_ROLE_CANVAS Object that can be drawn into and is used to trap events. Change-Id: Ic2ead0dc40be0ae2e798f49285eb6a392cc29142 Reviewed-by: André de la Rocha <andre.rocha@qt.io>
| * rhi: vulkan: Fix descriptor update with more objects involvedLaszlo Agocs2020-02-101-7/+21
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Once the number of buffers or images exceeds the QVarLengthArray limit, it moves over to heap-based allocation, and then reallocated to grow as needed. Problem is, if we keep references to the elements, those may get invalidated on every grow. This was not an issue until the element count reached the preallocated (stack) count. So instead, store indices and fill in the pointers in the VkWriteDescriptorSet only before issuing vkUpdateDescriptorSets(). Change-Id: I99f26f5e14cb28107edb1db86a21afa135858589 Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
| * rhi: Add depth bias and slope scaled depth biasLaszlo Agocs2020-02-066-1/+37
| | | | | | | | | | | | | | | | | | Beware of the API terminology: GL 'factor' = 'slope scaled depth bias', GL 'units' = '(constant) depth bias'. Task-number: QTBUG-81843 Change-Id: I03e3618d007cbf7100add0de4950a6163d788cc7 Reviewed-by: Eirik Aavitsland <eirik.aavitsland@qt.io>
| * rhi: d3d: Make DepthClipEnable set to trueLaszlo Agocs2020-02-061-0/+1
| | | | | | | | | | | | | | | | ...which is the natural default, and matches other backends. Task-number: QTBUG-81852 Change-Id: I6d0788b18eb7601661ef646e650114a503a12215 Reviewed-by: Eirik Aavitsland <eirik.aavitsland@qt.io>
| * rhi: metal: Make sure the resources are sorted based on the native bindingsLaszlo Agocs2020-02-061-49/+81
| | | | | | | | | | | | | | | | | | | | | | | | ...before generating batches for the encoder's set* methods. Otherwise there is a chance we end up in an assertion in case the native binding number for a buffer/texture/sampler happens to be smaller than the native binding of the previous. (we pre-sort based on the SPIR-V binding but that is not what the Metal API works with in the end) Task-number: QTBUG-81822 Change-Id: Iddfed168e065e3c7f6a09ad6dd4efdafa891b339 Reviewed-by: Eirik Aavitsland <eirik.aavitsland@qt.io>
| * Rename Qt::ReturnByValue_t -> Qt::ReturnByValueConstantSze Howe Koh2020-02-062-6/+6
| | | | | | | | | | | | | | | | | | Copy the convention of QDeadlineTimer::ForeverConstant Task-number: QTBUG-48701 Change-Id: Ic7760b7ffec630f1cd47361f5adda3f17fffb9f6 Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io> Reviewed-by: Lars Knoll <lars.knoll@qt.io>
| * Merge remote-tracking branch 'origin/5.14' into 5.15Qt Forward Merge Bot2020-02-0412-16/+96
| |\ | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: .qmake.conf examples/widgets/widgets/imageviewer/imageviewer.cpp src/corelib/text/qchar.cpp src/corelib/time/qdatetime.cpp Change-Id: I9762f5c4ff650799219729d6aee79ac07ce9024a
| | * Markdown importer: properly set hyperlinksGiuseppe D'Angelo2020-02-032-2/+78
| | | | | | | | | | | | | | | | | | | | | | | | The "title" in markdown is the tooltip, not the name attribute of a link. Also, tell the char format that it's an anchor. Change-Id: I2978848ec6705fe16376d6fe17f31007cce4b801 Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
| | * Markdown importer: use Unicode decodingGiuseppe D'Angelo2020-02-031-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Given we feed UTF-8 data into the importer, it must be able to cope with Unicode. Build md4c with UTF-8 support, advertise it at usage site, and change a couple of broken decodings. Driveby: the textedit example used the wrong codec to decode a Markdown file. While the Markdown spec doesn't deal with encodings, using the default one for HTML is certainly wrong. Port the loading of both markdown and plaintext to UTF-8, as that what _saving_ via QTextDocumentWriter would use by default. Change-Id: I51c6214cfe45ebfc5a67a7366f7866a5328366ec Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
| | * Fix 'the the' typo in commentsLinus Jahn2020-02-025-8/+8
| | | | | | | | | | | | | | | Change-Id: I00fcb1c2374e7ca168b6240f9d41c0323fb0867c Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
| | * Fix NEON support on Android armeabi-v7aAllan Sandfeld Jensen2020-01-302-2/+2
| | | | | | | | | | | | | | | | | | Task-number: QTBUG-81461 Change-Id: Ic3e8367aee990291fc676204b9299530953fc87a Reviewed-by: BogDan Vatra <bogdan@kdab.com>
| | * Doc: Update out dated QImage::constScanLine documentationJoni Poikelin2020-01-301-1/+3
| | | | | | | | | | | | | | | Change-Id: I0c09a9a6168422c7e41ded289a3e5ba39b84b0ee Reviewed-by: Eirik Aavitsland <eirik.aavitsland@qt.io>
| | * Doc: Add see also link to QScreen::handle()Paul Wicking2020-01-301-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | As the method returns a pointer to a private type (QPA), add see also with link to QPA docs. Fixes: QTBUG-76978 Change-Id: If59670ca0a9a47b42b6441baa23525eb20f92979 Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
| | * Don't use libpng allocated buffer to store ICC profile dataAllan Sandfeld Jensen2020-01-301-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | The data becomes invalid by the next PNG read or write. Fixes: QTBUG-81671 Change-Id: I738f5c2abbeebf2c9080d64fef7e66cc082afe89 Reviewed-by: Eirik Aavitsland <eirik.aavitsland@qt.io>
| * | rhi: Improve isClipDepthZeroToOne() docLaszlo Agocs2020-02-031-9/+24
| | | | | | | | | | | | | | | | | | | | | | | | Quick 3D is now having a use case for calling this directly, so use this opportunity for enhancing the docs to make it clear what this is about. Change-Id: I19ec956ac25175dbfb754192abaad8d65a6eeb0e Reviewed-by: Eirik Aavitsland <eirik.aavitsland@qt.io>
| * | Suppress deprecation warnings for QFont::ForceIntegerMetricsEskil Abrahamsen Blomfeldt2020-02-031-0/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | This flag has been deprecated, but until we remove it completely we need to continue supporting it, so we just suppress the warnings for now. Change-Id: I464e1cce42f78af76d46ec12eeb3e8d53d64d6a3 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
| * | Allow creating a valid QColorSpace one value at a timeAllan Sandfeld Jensen2020-02-011-8/+20
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The change to using setters left a quirk from the previous un-mutable design where you couldn't set values on an invalid color space and create a valid one. This changes that so it works as expected for an imperative API, but is also needed for the declarative QML bindings. Change-Id: I246cfc38b364b156238151c42c1df82a3f1cc9d3 Reviewed-by: Eirik Aavitsland <eirik.aavitsland@qt.io>
| * | rhi: Enable sampler address mode W in the APILaszlo Agocs2020-01-3013-48/+71
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Internally this is already supported by all backends. The frontend was just not exposing addressW, instead defaulting to the (arbitrarily chosen) ClampToEdge. Add the parameter to newSampler(), but make it optional, defaulting to the more natural Repeat (because that's what one would get with OpenGL for WRAP_R by default) Change-Id: I0b991d8b649db37d4da86ac8e98ab7845601cf67 Reviewed-by: Christian Strømme <christian.stromme@qt.io>
| * | Deprecate QImageIOHandler gamma correctionAllan Sandfeld Jensen2020-01-304-0/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | Don't do gamma correction at image decoding time, it can be a whole lot more than just a simple gamma function, so it is better to use QColorSpace and QColorTransform. Change-Id: Iebc960bad6ecdd878240be965699d2df869572ad Reviewed-by: Eirik Aavitsland <eirik.aavitsland@qt.io>
| * | Merge remote-tracking branch 'origin/5.14' into 5.15Qt Forward Merge Bot2020-01-292-2/+4
| |\| | | | | | | | | | Change-Id: I98b1a5a11ece3957a1115c1d9be8841759206ffe
| | * Doc: Fix copy-paste error in QOpenGLTexture::Target docsLeena Miettinen2020-01-281-1/+3
| | | | | | | | | | | | | | | | | | | | | | | | Add a link to https://www.khronos.org/opengl/wiki/Array_Texture. Fixes: QTBUG-49802 Change-Id: Ic740dd758c41a8f3e471a503bd2d02f6d3096f50 Reviewed-by: Paul Wicking <paul.wicking@qt.io>
| | * Merge remote-tracking branch 'origin/5.14.1' into 5.14Liang Qi2020-01-281-1/+1
| | |\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: mkspecs/features/create_cmake.prf Done-With: Artem Pisarenko <artem.k.pisarenko@gmail.com> Change-Id: I2ecb9fdca06fe687be8ab3457a58dd81e5e81c4c
| | | * Merge 5.14 into 5.14.1Kari Oikarinen2020-01-156-20/+70
| | | |\ | | | | | | | | | | | | | | | Change-Id: Ie90edfd16f48e1907fd18288473ac403f62b9032
| | | * | Restore QHighDPIScaling::isActive() 5.13 behaviorMorten Johan Sørvig2020-01-141-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In 5.13, isActive() would become true only if there was a scale factor >1 present. This was accidentally changed in 5.14, where isActive() becomes true whenever e.g. AA_EneableHighDpiScaling is set, no matter the actual scale factor values. Change-Id: Iacbe2010cddbc3b9015ac24004ae2fe417d4f434 Fixes: QTBUG-80967 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
| * | | | Add QWindow::startSystemMove and startSystemResizeJohan Klokkhammer Helsing2020-01-284-20/+85
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This can be used to create custom client side window decorations. Refactors the xcb implementation to use edges instead of corners and we now use the last mouse position for `root_x` and `root_y` in the `_NET_WM_MOVERESIZE` event. Touch has also been changed, so just pick a point that's currently being pressed. The workaround for QTBUG-69716 has now been moved to QSizeGrip, as the comment in the bug report says that it should ideally be fixed at the widget level. On Windows, we no longer abort when GetSystemMenu returns false. I assume this code was added to check whether the window didn't have any decorations and not resize in that case. However, since the point of this patch is to let windows without native decorations resize/move, it makes most sense to remove the check. Adds a manual test, which calls QWindow::startSystemMove and startSystemResize on touch and mouse events. [ChangeLog][QtGui] Added API for starting interactive window resize and move operations handled by the system. Fixes: QTBUG-73011 Change-Id: I7e47a0b2cff182af71d3d479d6e3746f08ea30aa Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io> Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
* | | | | Fix sorting of fallback fonts based on writing systemsHikaru Terazono (3c1u)2020-02-121-6/+40
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Now qt_sort_families_by_writing_system checks all writing systems for sc ript. This makes Japanese text look properly on macOS. Task-number: QTBUG-81924 Change-Id: Id2a149eb84c5992414505b079be4e707f7f8c6c7 Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
* | | | | CMake: Regenenerate projects where recent changes happenedAlexandru Croitor2020-02-113-2/+5
| | | | | | | | | | | | | | | | | | | | | | | | | Change-Id: If86e49d73a45b7cfc494fa48bdc6cb1ba503b112 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* | | | | Merge "Merge remote-tracking branch 'origin/wip/cmake' into dev"Alexandru Croitor2020-02-112-0/+4
|\ \ \ \ \
| * \ \ \ \ Merge remote-tracking branch 'origin/wip/cmake' into devAlexandru Croitor2020-02-102-0/+4
| |\ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | Change-Id: If75ae006db6eb977cf66af4c3d36cb5c8098a1f1
| | * | | | | Regenerate projects to correctly handle private dependenciesAlexandru Croitor2020-02-052-0/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Change-Id: I7d84bc9962bff5c89a90367ae704974c6ce2ec89 Reviewed-by: Qt CMake Build Bot Reviewed-by: Leander Beernaert <leander.beernaert@qt.io> Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* | | | | | | QOpenGLContext: Remove QGL helpersJohan Klokkhammer Helsing2020-02-113-51/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | They were all private, and used only by QGL* (which have been removed) so should be safe to remove. Task-number: QTBUG-74408 Change-Id: Ia7fdff8f0bb963449470dbd8296cbdd8652c50e2 Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
* | | | | | | Remove comments about destructors needing to be emptyJan Arve Sæther2020-02-113-19/+0
|/ / / / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Not important, but removes some ### Qt6 comments from my radar Change-Id: Ifd1bf44c44ece8fa1314d3c7e0e95d1bd37ae0ea Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io> Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
* | | | | | Replace the QMatrix field of QTransform with qreal[3][3]Jarek Kobus2020-02-075-328/+336
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Remove temporarily the reference returned by QTransform::toAffine() since we don't keep the QMatrix object internally anymore. This is done in order to compile the rest of the code. The follow-up patch is going to remove that method completely. Task-number: QTBUG-81628 Change-Id: If7140eedb7582d81ac8da529017cf792174e86ab Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* | | | | | Merge "Merge remote-tracking branch 'origin/wip/cmake' into dev"Alexandru Croitor2020-02-075-207/+2540
|\| | | | |