summaryrefslogtreecommitdiffstats
path: root/src/gui
Commit message (Collapse)AuthorAgeFilesLines
* Merge QPainterPathPrivate and QPainterPathDataVolker Hilsheimer2020-09-043-93/+70
| | | | | | | As per ### Qt 6 comment, and the code that never allocated QPainterPathPrivate. Change-Id: I553e3559fdb2a675f37cdd9855462a2f22ef84c6 Reviewed-by: Eirik Aavitsland <eirik.aavitsland@qt.io>
* Remove deprecated QPrinter and QPagedPaintDevice APIsVolker Hilsheimer2020-09-045-416/+4
| | | | | | | | | | | Adjusting the QPrinter test case - some use cases no longer exist, or are already tested in QPageSize and QPageLayout tests. Adjust examples and manual tests. Change-Id: I01cbc65f3d8031aea2dac86dd942126ba708b111 Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io> Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
* Tighten up QDialogButtonBox::ButtonLayout enumVolker Hilsheimer2020-09-032-11/+0
| | | | | | | | | | ... and the equivalent enum in QPlatformDialogHelper. No need to keep numerical values the same anymore. Remove ### Qt 6 comment. Change-Id: Ib369ea6ca2362f6ab0f71a3a6c90c4adaa7f11cd Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
* Fix build without features.highdpiscalingTasuku Suzuki2020-09-041-2/+2
| | | | | | | Broken since 37d5aaa4b42f9c837f0d27edb9da2185971d02be Change-Id: Id741f23ccae4f619e6a389ee71b3e7fe0c599989 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* rhi: Sanity check the srb in debug buildsLaszlo Agocs2020-09-036-2/+91
| | | | | | | | | | | Instead of cryptic assertions and crashes depending on the backend, show some useful warnings (in debug builds only) when one tries to create an srb with a list where there are duplicated bindings. (a mistake that happens relatively often during the development of frameworks, such as Quick 3D, on top) Change-Id: If1b50a2e8165b001878ad566e048f146e636514f Reviewed-by: Andy Nichols <andy.nichols@qt.io>
* Mark obsolete QPrinter functions as deprecated from 5.15 onVolker Hilsheimer2020-09-033-3/+19
| | | | | | | | | | | Some of the methods are overrides of virtuals in QPagedPaintDevice, so document and mark those as obsolete as well. Adjust code that calls those APIs to use the recommended replacement. Change-Id: I3cd1980609ea20808d17379a5f97ca595e869875 Pick-to: 5.15 Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
* Long live QKeyCombination!Giuseppe D'Angelo2020-09-0313-39/+67
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | C++20 via P1120 is deprecating arithmetic operations between unrelated enumeration types, and GCC 10 is already complaining. Hence, these operations might become illegal in C++23 or C++26 at the latest. A case of this that affects Qt is in key combinations: a QKeySequence can be constructed by summing / ORing modifiers and a key, for instance: Qt::CTRL + Qt::Key_A Qt::SHIFT | Qt::CTRL | Qt::Key_G (recommended, see below) The problem is that the modifiers and the key belong to different enumerations (and there's 2 enumerations for the modifier, and one for the key). To solve this: add a dedicated class to represent a combination of keys, and operators between those enumerations to build instances of this class. I would've simply defined operator|, but again docs and pre-existing code use operator+ as well, so added both to at least tackle simple cases (modifier + key). Multiple modifiers create a problem: operator+ between them yields int, not the corresponding flags type (because operator+ is not overloaded for this use case): Qt::CTRL + Qt::SHIFT + Qt::Key_A \__________________/ / int / \______________/ int Not only this loses track of the datatypes involved, but it would also then "add" the key (with NO warnings, now its int + enum, so it's not mixing enums!) and yielding int again. I don't want to special-case this; the point of the class is that int is the wrong datatype. Everything works just fine when using operator| instead: Qt::CTRL | Qt::SHIFT | Qt::Key_A \__________________/ / Qt::Modifiers / \______________/ QKeyCombination So I'm defining operator+ so that the simple cases still work, but also deprecating it. Port some code around Qt to the new class. In certain cases, it's a huge win for clarity. In some others, I've just added the necessary casts to make it still compile without warnings, without attempting refactorings. [ChangeLog][QtCore][QKeyCombination] New class to represent a combination of a key and zero or more modifiers, to be used when defining shortcuts or similar. [ChangeLog][Potentially Source-Incompatible Changes] A keyboard modifier (such as Qt::CTRL, Qt::AltModifier, etc.) should be combined with a key (such as Qt::Key_A, Qt::Key_F1, etc.) by using operator|, not operator+. The result is now an object of type QKeyCombination, that stores the key and the modifiers. Change-Id: I657a3a328232f059023fff69c5031ee31cc91dd6 Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
* Long live QAIM::multiData!Giuseppe D'Angelo2020-09-022-5/+36
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Views / delegates absolutely *adore* hammering data(). A simple QListView showing a couple of dozens entries can call data() a hundred of times on the first show. Back of the hand calculation, * 2 times per visible item (sizeHint() + paint()), * times 9 roles used by the default delegate, * times 20 visible items = 360 as a bare minimum, assuming the view doesn't redraw twice accidentally. Move the mouse over the view, and that'll cause a full update with certain styles: 360 calls to data() per update. This has an overhead visible in profilers. The model's data() has to re-fetch the index from its data structure and extract the requested field every time. Also, QVariant is used for the data interexchange, meaning anything that won't fit in one is also a memory allocation. This problem will likely be gone in Qt6Variant as that will store sizeof(void*) * 3, meaning QImage/QPixmap and similar polymorphic classes will fit in a QVariant now... So I'm trying to to remove part of that overhead by allowing views to request all the data they need in one go. For now, one index a a time. A view might also store the data returned. The idea is that the same role on different indexes will _very likely_ return variants of the same type. So a model could move-assign the data into the variant, avoiding the memory allocation /deallocation for the variant's private. This patch: 1) Introduces QModelRoleData as a holder for role+data. 2) Introduces QModelRoleDataSpan as a span over QModelRoleData. The idea of a span type is twofold. First and foremost, we are in no position to choose which kind of container a view should use to store the QModelRoleData objects for a multiData() call; a span abstracts any contiguous sequence, leaving the view free to do whatever it wants (statically allocate, use a vector, etc.). It also solves the problem of efficient passing the roles and gathering the returned variants from multiData(). 3) Add multiData(), which populates a span of roles for a given model index. The main advantage here is that a model can fetch all the needed information for a given index just once, then iterate on the span and provide data for each requested role. Cf. this with data(), where every call has to re-fetch the information for the index. A couple of models have been ported to multiData(), as well as QStyledItemDelegate. [ChangeLog][QtCore][QModelRoleData] New class. [ChangeLog][QtCore][QModelRoleDataSpan] New class. [ChangeLog][QtCore][QAbstractItemModel] Added the multiData() function. Change-Id: Icce0d108ad4e156c9fb05c83ce6df5f58f99f118 Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
* Remove last traces of the PostScript paint engineVolker Hilsheimer2020-09-022-2/+0
| | | | | | | Remove enum value, documentation, and another ### Qt 6 comment. Change-Id: I046d9581625d39c8fc8cf75287e8767501aae0cc Reviewed-by: Eirik Aavitsland <eirik.aavitsland@qt.io>
* High-DPI: Remove legacy environment variablesTor Arne Vestbø2020-09-021-35/+2
| | | | | | | | | | | | | QT_DEVICE_PIXEL_RATIO is replaced by QT_SCALE_FACTOR, while QT_AUTO_SCREEN_SCALE_FACTOR is replaced by QT_ENABLE_HIGHDPI_SCALING. Since High-DPI is now always enabled, there's no reason to keep the code path for android.app.auto_screen_scale_factor. Also, based on the original commit message that introduced this code, the value of the property should have been true. Change-Id: Ib34b1deeab46c488c67c4d64f087599b4a54dc55 Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
* Document native interfacesFriedemann Kleint2020-09-0210-9/+511
| | | | | | | | | | | | | | As the private headers are not included by default in the precompiled header QDoc builds for QtGui, create a custom module header for the documentation build and pull in the required headers. Add dummy declarations for Windows-specific types for building docs on non-Windows platforms. Task-number: QTBUG-83252 Change-Id: I225ed08f68cf4f7c1f1d093424070b13ce36aa51 Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
* QTextHtmlParserNode: Fix warnings flood about setting negative pixel sizeFriedemann Kleint2020-09-021-1/+2
| | | | | | | | | | | Exclude the default value (-1) from the check. Amends 0bd770fb875d5391dd78df95542c25bd15051938. Pick-to: 5.12 5.15 5.15.1 Change-Id: Ib98ae166fd5fdab546c5d4212ce78345b5c9b583 Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io> Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
* Remove "fallback session management"Andreas Hartmetz2020-09-015-97/+1
| | | | | | | | | | | | | | With the Qt6 compatibility break, it can finally be removed. Closing windows (which might quit the application with quitOnLastWindowClosed() true, the default) acted contrary to the documentation of the commitDataRequest() signal, which could have been a hint. This removes the workaround API from the fix for QTBUG-49667 and also removes the problematic feature that it worked around. Change-Id: I672be58864ef062df7fb7f2a81658b92c4feedd2 Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
* Doc: compile transform snippetsPaul Wicking2020-09-013-3/+12
| | | | | | | Done-with: Nico Vertriest <nico.vertriest@qt.io> Fixes: QTBUG-81486 Change-Id: Ie35d22469e7f8d9c244b70665af30b39e265766a Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
* Doc: compile separations snippetsPaul Wicking2020-09-015-16/+27
| | | | | | | Done-with: Nico Vertriest <nico.vertriest@qt.io> Task-number: QTBUG-81486 Change-Id: I62294cedd4a0f96ebc2513b5b4179d451bb4b375 Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
* Doc: compile scribe-overview snippetPaul Wicking2020-09-013-17/+23
| | | | | | | Done-with: Nico Vertriest <nico.vertriest@qt.io> Task-number: QTBUG-81486 Change-Id: If760744aba49361d8d9ed51c4a2641b743c35c25 Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
* Doc: compile textobjectinterface snippetPaul Wicking2020-09-013-0/+11
| | | | | | | Done-with: Nico Vertriest <nico.vertriest@qt.io> Task-number: QTBUG-81486 Change-Id: Ibad1ef95b85d5484ee7e9cceee8019d026c10cb9 Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
* Doc: compile qstatustipevent snippetPaul Wicking2020-09-013-2/+11
| | | | | | | Done-with: Nico Vertriest <nico.vertriest@qt.io> Task-number: QTBUG-81486 Change-Id: I44c7b31e0a99009f51f81e2c8d0e736e6eafd535 Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
* Doc: compile qimagewriter snippetPaul Wicking2020-09-013-16/+19
| | | | | | | Done-with: Nico Vertriest <nico.vertriest@qt.io> Task-number: QTBUG-81486 Change-Id: Ibb4087d7035c3061b2980b317ab4280fa38aab50 Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
* Doc: compile qfileopenevent snippetPaul Wicking2020-09-013-1/+10
| | | | | | | Done-with: Nico Vertriest <nico.vertriest@qt.io> Task-number: QTBUG-81486 Change-Id: I28d7e9749b7a8feacd6b82abebcea462010caeba Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
* Doc: compile polygon snippetsPaul Wicking2020-09-013-48/+56
| | | | | | | Done-with: Nico Vertriest <nico.vertriest@qt.io> Change-Id: I29caf1818154df3b0f2b599ac19c966e826f6287 Taks-number: QTBUG-81486 Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
* Doc: compile plaintextlayout snippetPaul Wicking2020-09-013-55/+54
| | | | | | | Done-with: Nico Vertriest <nico.vertriest@qt.io> Task-number: QTBUG-81486 Change-Id: I2bac37fd41703cc4cfb7de3946b31412c4af37b9 Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
* Doc: compile picture snippetsPaul Wicking2020-09-013-25/+31
| | | | | | | Done-with: Nico Vertriest <nico.vertriest@qt.io> Task-number: QTBUG-81486 Change-Id: I9daf8ed8c7d9620cd59feb40677795cbac30c97c Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
* Doc: Remove obsolete snippet filePaul Wicking2020-09-011-150/+0
| | | | | | | | | | QMatrix is gone, remove the snippet file as the content is not referenced anywhere. Done-with: Nico Vertriest <nico.vertriest@qt.io> Task-number: QTBUG-81486 Change-Id: I57040bce50cc51f7a3580af65cc56713567330f9 Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
* Doc: compile image snippetsPaul Wicking2020-09-014-58/+36
| | | | | | | Done-with: Nico Vertriest <nico.vertriest@qt.io> Task-number: 81486 Change-Id: I9860217a80cf94d27542d7e7836fe60fcd60897e Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
* Doc: compile droprectangle snippetsPaul Wicking2020-09-013-43/+17
| | | | | | | Done-with: Nico Vertriest <nico.vertriest@qt.io> Task-number: QTBUG-81486 Change-Id: I0087f7cc0746168bc2223972074fed468c3fba46 Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
* Doc: Compile dropevents snippetsPaul Wicking2020-09-013-5/+32
| | | | | | | Done-with: Nico Vertriest <nico.vertriest@qt.io> Task-number: QTBUG-81486 Change-Id: I8d2eebcd82f47c500a215e310b5828f9b7e303c6 Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
* Doc: Remove unused snippet filesPaul Wicking2020-09-016-418/+0
| | | | | | | Done-with: Nico Vertriest <nico.vertriest@qt.io> Task-number: QTBUG-81486 Change-Id: I7bf5794ffc9f96ca0cb85cc6f58b4400468df439 Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
* Doc: Make snippets Qt Gui compilable - textblock-fragmentsNico Vertriest2020-09-014-9/+19
| | | | | | Task-number: QTBUG-81486 Change-Id: I3a6ee6ef744abb694d1cc7ef409f8bb584854395 Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
* Doc: Remove unused files from snippetPaul Wicking2020-09-013-295/+0
| | | | | | | | | These files aren't referenced from anywhere and duplicates other snippet content. Remove them. Task-number: QTBUG-81486 Change-Id: I48976dae3c095ae38ced682147527f2809a8fef6 Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
* Doc: Make snippets Qt Gui compilable - textblock-formatsNico Vertriest2020-09-013-5/+10
| | | | | | Task-number: QTGUI-81486 Change-Id: I06dd6ce04b4d37c49df07d4b1b47c3ef029ee419 Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
* Doc: Compile droparea snippetPaul Wicking2020-09-014-82/+22
| | | | | | | | | | | droparea.h has been removed. Remove all code that depends on that header except the one snippet that is still used. Add minimal code to allow the snippet to be compiled. Done-with: Nico Vertriest <nico.vertriest@qt.io> Task-number: QTBUG-81486 Change-Id: I58c80d3527c82389ccff97567f4c75c33aec0f5e Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
* Doc: Make Qt Gui snippets compilable - textdocument-texttableNico Vertriest2020-09-013-3/+11
| | | | | | Task-number: QTBUG-81486 Change-Id: If77873649aa10552047e0f89a7fccf55597e73f5 Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
* Doc: Compile textdocument-tables snippetsPaul Wicking2020-09-015-12/+18
| | | | | | | | Minor code cleanup in passing. Task-number: QTBUG-81486 Change-Id: I23f8b3a22f627050582c69c81e5e0b85b5e45768 Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
* Doc: Make Qt Gui snippets compilable - textdocument-selectionsNico Vertriest2020-09-015-18/+21
| | | | | | Task-number: QTBUG-81486 Change-Id: I467ca4d5ecd33f84e44b456a9559748ffd6cc53c Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
* Doc: Make Qt Gui snippets compilable - textdocument-resourcesNico Vertriest2020-09-012-3/+8
| | | | | | Task-number: QTBUG-81486 Change-Id: Ifd3b8d79617532bf16f33f0935f370b956048130 Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
* Doc: Make Qt Gui snippets compilable - textdocument-printingNico Vertriest2020-09-015-14/+26
| | | | | | Task-number: QTBUG-81486 Change-Id: If811ac26eebbd6b3f9fd20e2b3fb29d3be24d1cb Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
* Doc: Make Qt Gui snippets compilable - textdocument-listsNico Vertriest2020-09-013-135/+18
| | | | | | Task-number: QTBUG-81486 Change-Id: I5f8017c7dc7fc735af83279ac340e3dfde68af89 Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
* Doc: Make Qt Gui snippets compilable - textdocument-listitemstylesNico Vertriest2020-09-015-9/+19
| | | | | | Task-number: QTBUG-81486 Change-Id: Ie718f4ae3de3f9ae12702264f5455f23d38bf1fe Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
* Doc: Make Qt Gui snippets compilable - textdocument-listitemsNico Vertriest2020-09-015-9/+22
| | | | | | Task-number: QTBUG-81486 Change-Id: I7bbecd3cbf086243ea3a03fb7822064bde85201c Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
* Doc: Make snippets Qt Gui compilable - textdocument-imagesNico Vertriest2020-09-013-5/+13
| | | | | | Task-number: QTBUG-81486 Change-Id: I98b6d0b498d181931ee0fc2e39cb1fde5208a303 Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
* Doc: Make snippets Qt Gui compilable - textdocument-imageformatNico Vertriest2020-09-013-5/+14
| | | | | | Task-number: QTBUG-81486 Change-Id: I9bf94bb8c82d7751a8615c6e1e3278400e77ce3a Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
* Doc: Make snippets Qt Gui compilable - textdocument-imagedropNico Vertriest2020-09-013-8/+15
| | | | | | Task-number: QTBUG-81486 Change-Id: I80b66fce31ba5ee511690283cf56ce4306702b14 Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
* Doc: Make snippets Qt Gui compilable - textdocument-framesNico Vertriest2020-09-013-7/+12
| | | | | | Task-number: QTBUG-81486 Change-Id: Ia027d2f07e61944e8a2cc40a24ee23b2d8e526b0 Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
* Doc: Make snippets Qt Gui compilable - textdocument-findNico Vertriest2020-09-013-4/+10
| | | | | | Task-number: QTBUG-81486 Change-Id: I97b2b9a9b672776971e4792b713a23272eb653ce Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
* Doc: Make snippets Qt Gui compilable - textdocument-cursorsNico Vertriest2020-09-013-3/+9
| | | | | | Task-number: QTBUG-81486 Change-Id: If02da7248b6c0299909fad83681fd5f08f3e29d9 Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
* Doc: Make snippets Qt Gui compilable - textdocument-cssNico Vertriest2020-09-013-2/+8
| | | | | | Task-number: QTBUG-81486 Change-Id: I4c73a0902bc1c47cd2fa90553941bf8824ba5914 Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
* Doc: Compile GUI vulkan snippetsPaul Wicking2020-09-014-126/+209
| | | | | | | | | Fix minor issues (e.g. whitespace, missing semi-colon) in passing. Change-Id: Ia16a7793b999e7ffd8d387fa3826117a4ade2c41 Done-with: Nico Vertriest <nico.vertriest@qt.io> Task-number: QTBUG-81486 Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
* Doc: Compile GUI util snippetsPaul Wicking2020-09-014-5/+65
| | | | | | | | | Fix minor issues (e.g. whitespace, missing semi-colon) in passing. Change-Id: Ieec8deb8aaf4358ffc35502fae6ea7c043d34672 Done-with: Nico Vertriest <nico.vertriest@qt.io> Task-number: QTBUG-81486 Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
* Doc: Remove unused snippet for removed codePaul Wicking2020-09-011-3/+0
| | | | | | | | | QDesktopServices::DataLocation doesn't exist anymore. Get rid of the snippet. Task-number: QTBUG-81486 Change-Id: Ibc938437c916b3c08ec64d7692a31e69944c1b30 Reviewed-by: Topi Reiniö <topi.reinio@qt.io>