Commit Graph

7734 Commits (fa8d021fa6fcb040fb702b6ffd2deee52a3b748a)

Author SHA1 Message Date
Volker Hilsheimer 85b0335c41 Tighten up QDialogButtonBox::ButtonLayout enum
... 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>
2020-09-03 18:51:41 +02:00
Tasuku Suzuki 21de5aa1ac Fix build without features.highdpiscaling
Broken since 37d5aaa4b4

Change-Id: Id741f23ccae4f619e6a389ee71b3e7fe0c599989
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
2020-09-04 00:33:50 +09:00
Laszlo Agocs f6802a5aac rhi: Sanity check the srb in debug builds
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>
2020-09-03 14:18:30 +02:00
Volker Hilsheimer 6bbf3f0257 Mark obsolete QPrinter functions as deprecated from 5.15 on
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>
2020-09-03 07:00:36 +02:00
Giuseppe D'Angelo 25351dcc54 Long live QKeyCombination!
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>
2020-09-03 07:00:31 +02:00
Giuseppe D'Angelo 39e07ebf64 Long live QAIM::multiData!
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>
2020-09-02 22:51:42 +02:00
Volker Hilsheimer e3c08da307 Remove last traces of the PostScript paint engine
Remove enum value, documentation, and another ### Qt 6 comment.

Change-Id: I046d9581625d39c8fc8cf75287e8767501aae0cc
Reviewed-by: Eirik Aavitsland <eirik.aavitsland@qt.io>
2020-09-02 22:44:26 +02:00
Tor Arne Vestbø 233b6534a7 High-DPI: Remove legacy environment variables
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>
2020-09-02 19:00:18 +02:00
Friedemann Kleint a494da3b20 Document native interfaces
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>
2020-09-02 05:29:44 +02:00
Friedemann Kleint d23c118fd4 QTextHtmlParserNode: Fix warnings flood about setting negative pixel size
Exclude the default value (-1) from the check.

Amends 0bd770fb87.

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>
2020-09-02 00:13:24 +02:00
Andreas Hartmetz 7f878c6217 Remove "fallback session management"
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>
2020-09-01 10:16:15 +02:00
Paul Wicking 98f41552e4 Doc: compile transform snippets
Done-with: Nico Vertriest <nico.vertriest@qt.io>
Fixes: QTBUG-81486
Change-Id: Ie35d22469e7f8d9c244b70665af30b39e265766a
Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
2020-09-01 06:13:22 +02:00
Paul Wicking 614ca8ec4a Doc: compile separations snippets
Done-with: Nico Vertriest <nico.vertriest@qt.io>
Task-number: QTBUG-81486
Change-Id: I62294cedd4a0f96ebc2513b5b4179d451bb4b375
Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
2020-09-01 06:13:20 +02:00
Paul Wicking 7e571c3927 Doc: compile scribe-overview snippet
Done-with: Nico Vertriest <nico.vertriest@qt.io>
Task-number: QTBUG-81486
Change-Id: If760744aba49361d8d9ed51c4a2641b743c35c25
Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
2020-09-01 06:13:20 +02:00
Paul Wicking ad654870cb Doc: compile textobjectinterface snippet
Done-with: Nico Vertriest <nico.vertriest@qt.io>
Task-number: QTBUG-81486
Change-Id: Ibad1ef95b85d5484ee7e9cceee8019d026c10cb9
Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
2020-09-01 06:13:19 +02:00
Paul Wicking 319e22cb4a Doc: compile qstatustipevent snippet
Done-with: Nico Vertriest <nico.vertriest@qt.io>
Task-number: QTBUG-81486
Change-Id: I44c7b31e0a99009f51f81e2c8d0e736e6eafd535
Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
2020-09-01 06:13:18 +02:00
Paul Wicking 5ee39fc7c9 Doc: compile qimagewriter snippet
Done-with: Nico Vertriest <nico.vertriest@qt.io>
Task-number: QTBUG-81486
Change-Id: Ibb4087d7035c3061b2980b317ab4280fa38aab50
Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
2020-09-01 06:13:18 +02:00
Paul Wicking 45211e947a Doc: compile qfileopenevent snippet
Done-with: Nico Vertriest <nico.vertriest@qt.io>
Task-number: QTBUG-81486
Change-Id: I28d7e9749b7a8feacd6b82abebcea462010caeba
Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
2020-09-01 06:13:17 +02:00
Paul Wicking 87eb059ed3 Doc: compile polygon snippets
Done-with: Nico Vertriest <nico.vertriest@qt.io>
Change-Id: I29caf1818154df3b0f2b599ac19c966e826f6287
Taks-number: QTBUG-81486
Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
2020-09-01 06:13:17 +02:00
Paul Wicking 47e0309ea8 Doc: compile plaintextlayout snippet
Done-with: Nico Vertriest <nico.vertriest@qt.io>
Task-number: QTBUG-81486
Change-Id: I2bac37fd41703cc4cfb7de3946b31412c4af37b9
Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
2020-09-01 06:13:16 +02:00
Paul Wicking d46eed31a0 Doc: compile picture snippets
Done-with: Nico Vertriest <nico.vertriest@qt.io>
Task-number: QTBUG-81486
Change-Id: I9daf8ed8c7d9620cd59feb40677795cbac30c97c
Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
2020-09-01 06:13:15 +02:00
Paul Wicking 91ab585147 Doc: Remove obsolete snippet file
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>
2020-09-01 06:13:15 +02:00
Paul Wicking fd8132b8ae Doc: compile image snippets
Done-with: Nico Vertriest <nico.vertriest@qt.io>
Task-number: 81486
Change-Id: I9860217a80cf94d27542d7e7836fe60fcd60897e
Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
2020-09-01 06:13:14 +02:00
Paul Wicking 65fb72d302 Doc: compile droprectangle snippets
Done-with: Nico Vertriest <nico.vertriest@qt.io>
Task-number: QTBUG-81486
Change-Id: I0087f7cc0746168bc2223972074fed468c3fba46
Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
2020-09-01 06:13:13 +02:00
Paul Wicking 4dd53a40aa Doc: Compile dropevents snippets
Done-with: Nico Vertriest <nico.vertriest@qt.io>
Task-number: QTBUG-81486
Change-Id: I8d2eebcd82f47c500a215e310b5828f9b7e303c6
Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
2020-09-01 06:13:12 +02:00
Paul Wicking 88e3bdb6e6 Doc: Remove unused snippet files
Done-with: Nico Vertriest <nico.vertriest@qt.io>
Task-number: QTBUG-81486
Change-Id: I7bf5794ffc9f96ca0cb85cc6f58b4400468df439
Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
2020-09-01 06:13:12 +02:00
Nico Vertriest e1915cd83e Doc: Make snippets Qt Gui compilable - textblock-fragments
Task-number: QTBUG-81486
Change-Id: I3a6ee6ef744abb694d1cc7ef409f8bb584854395
Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
2020-09-01 06:13:11 +02:00
Paul Wicking 37fbffee81 Doc: Remove unused files from snippet
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>
2020-09-01 06:13:11 +02:00
Nico Vertriest b6043dc34e Doc: Make snippets Qt Gui compilable - textblock-formats
Task-number: QTGUI-81486
Change-Id: I06dd6ce04b4d37c49df07d4b1b47c3ef029ee419
Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
2020-09-01 06:13:10 +02:00
Paul Wicking 03887ab8a3 Doc: Compile droparea snippet
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>
2020-09-01 06:13:09 +02:00
Nico Vertriest e596f15a45 Doc: Make Qt Gui snippets compilable - textdocument-texttable
Task-number: QTBUG-81486
Change-Id: If77873649aa10552047e0f89a7fccf55597e73f5
Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
2020-09-01 06:13:09 +02:00
Paul Wicking b16b7d8879 Doc: Compile textdocument-tables snippets
Minor code cleanup in passing.

Task-number: QTBUG-81486
Change-Id: I23f8b3a22f627050582c69c81e5e0b85b5e45768
Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
2020-09-01 06:13:08 +02:00
Nico Vertriest e81383eb09 Doc: Make Qt Gui snippets compilable - textdocument-selections
Task-number: QTBUG-81486
Change-Id: I467ca4d5ecd33f84e44b456a9559748ffd6cc53c
Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
2020-09-01 06:13:07 +02:00
Nico Vertriest b5a1e7ac5c Doc: Make Qt Gui snippets compilable - textdocument-resources
Task-number: QTBUG-81486
Change-Id: Ifd3b8d79617532bf16f33f0935f370b956048130
Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
2020-09-01 06:13:07 +02:00
Nico Vertriest 69b622cb3d Doc: Make Qt Gui snippets compilable - textdocument-printing
Task-number: QTBUG-81486
Change-Id: If811ac26eebbd6b3f9fd20e2b3fb29d3be24d1cb
Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
2020-09-01 06:13:06 +02:00
Nico Vertriest fcea9d4b72 Doc: Make Qt Gui snippets compilable - textdocument-lists
Task-number: QTBUG-81486
Change-Id: I5f8017c7dc7fc735af83279ac340e3dfde68af89
Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
2020-09-01 06:13:06 +02:00
Nico Vertriest fec48857e8 Doc: Make Qt Gui snippets compilable - textdocument-listitemstyles
Task-number: QTBUG-81486
Change-Id: Ie718f4ae3de3f9ae12702264f5455f23d38bf1fe
Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
2020-09-01 06:13:05 +02:00
Nico Vertriest 29949cc0f7 Doc: Make Qt Gui snippets compilable - textdocument-listitems
Task-number: QTBUG-81486
Change-Id: I7bbecd3cbf086243ea3a03fb7822064bde85201c
Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
2020-09-01 06:13:05 +02:00
Nico Vertriest 38653f1633 Doc: Make snippets Qt Gui compilable - textdocument-images
Task-number: QTBUG-81486
Change-Id: I98b6d0b498d181931ee0fc2e39cb1fde5208a303
Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
2020-09-01 06:13:04 +02:00
Nico Vertriest 935ce5e41d Doc: Make snippets Qt Gui compilable - textdocument-imageformat
Task-number: QTBUG-81486
Change-Id: I9bf94bb8c82d7751a8615c6e1e3278400e77ce3a
Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
2020-09-01 06:13:04 +02:00
Nico Vertriest 2be708b801 Doc: Make snippets Qt Gui compilable - textdocument-imagedrop
Task-number: QTBUG-81486
Change-Id: I80b66fce31ba5ee511690283cf56ce4306702b14
Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
2020-09-01 06:13:03 +02:00
Nico Vertriest 6283f447cd Doc: Make snippets Qt Gui compilable - textdocument-frames
Task-number: QTBUG-81486
Change-Id: Ia027d2f07e61944e8a2cc40a24ee23b2d8e526b0
Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
2020-09-01 06:13:02 +02:00
Nico Vertriest b28870b2cc Doc: Make snippets Qt Gui compilable - textdocument-find
Task-number: QTBUG-81486
Change-Id: I97b2b9a9b672776971e4792b713a23272eb653ce
Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
2020-09-01 06:13:02 +02:00
Nico Vertriest d76d37fd1a Doc: Make snippets Qt Gui compilable - textdocument-cursors
Task-number: QTBUG-81486
Change-Id: If02da7248b6c0299909fad83681fd5f08f3e29d9
Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
2020-09-01 06:13:01 +02:00
Nico Vertriest 0f1c8d437f Doc: Make snippets Qt Gui compilable - textdocument-css
Task-number: QTBUG-81486
Change-Id: I4c73a0902bc1c47cd2fa90553941bf8824ba5914
Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
2020-09-01 06:13:00 +02:00
Paul Wicking 1ca85a2fd1 Doc: Compile GUI vulkan snippets
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>
2020-09-01 06:11:50 +02:00
Paul Wicking 4074c54270 Doc: Compile GUI util snippets
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>
2020-09-01 06:11:46 +02:00
Paul Wicking 323d2b57e0 Doc: Remove unused snippet for removed code
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>
2020-09-01 06:11:42 +02:00
Peng Wenhao f0ae973244 Qpagedpaintdevice: Use marginsF instead of internal struct margins
resolve remaining Qt6 TODOs

Change-Id: Iad659a09ddfe136bdc545bc0635b4c695540c58b
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
2020-09-01 04:57:48 +08:00
Tor Arne Vestbø 90358f6042 Deprecate and remove uses of AA_DisableHighDpiScaling
Change-Id: Ibadce68775858c524b998aacad310905ba2c2e8e
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
2020-08-31 19:14:55 +02:00
Tor Arne Vestbø 8028474e62 Remove unused exported functions from QWSI
Change-Id: If85231373bc0ec9a9259f628cd0c62a3a75b813b
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
2020-08-31 14:29:01 +02:00
Tor Arne Vestbø ef854c0bba Remove QWSIPrivate::EventType::FrameStrutMouse
Change-Id: I66eb05ae7ed58ff3375b756c29a96d5067251cc3
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
2020-08-31 14:29:01 +02:00
Tor Arne Vestbø 2dc46c0902 Deprecate and remove all uses of AA_UseHighDpiPixmaps
High-DPI pixmaps are always enabled, and cannot be disabled.

Change-Id: I01a006b404e5431582b64ef812974c1c022b39ae
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
2020-08-31 14:29:01 +02:00
Nico Vertriest 860c68522b Doc: Make snippets Qt Gui compilable - textdocument-charformats
Task-number: QTBUG-81486
Change-Id: I460917c979eb9bd90b9ab7694c0928ab252adae9
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
2020-08-31 07:12:44 +02:00
Nico Vertriest 886cc0e442 Doc: Make snippets Qt Gui compilable - textdocument-blocks
Task-number: QTBUG-81486
Change-Id: I663c53d11e4bd3086c4afee0c994d00ecc0c7cad
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
2020-08-31 07:12:40 +02:00
Paul Wicking bbbbd642d5 Doc: Remove obsolete/removed snippet code
Task-number: QTBUG-81486
Change-Id: Ifc6ac9203a046b6b5da6140931c59875f0dc08c3
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
2020-08-31 07:12:37 +02:00
Paul Wicking 52abab1b42 Doc: rename qfontdatabase snippet project file
The project isn't included as a subdir of the parent because
the project file name doesn't follow proper convention. Fix
by renaming the project file.

Task-number: QTBUG-81486
Change-Id: Ie32aaa587cdaa6802644588d6631b14e61558ae2
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
2020-08-31 07:12:33 +02:00
Nico Vertriest 5e566d004e Doc: Make Qt Gui snippets compilable - clipboard
Task-number: QTBUG-81486
Change-Id: I41b0c5f021ea9fbbe384f224443608f4397dec24
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
2020-08-31 07:12:21 +02:00
Laszlo Agocs 8641d5d729 rhi: gl: Correctly report WideLines for OpenGL
In core profile contexts a line width other than 1 may not work
as expected since it is deprecated in the core profile.

Change-Id: I3fc33cf90c65156aa87d04f08518c9ddcfb62625
Reviewed-by: Andy Nichols <andy.nichols@qt.io>
2020-08-30 17:45:02 +02:00
Laszlo Agocs 67faf0641d rhi: vulkan: Enable features on the device
The silly fine-grained enabling of features on the VkDevice
seems to be ignored in practice by the implementations, but
wideLines becomes relevant because the validation layers warns
if a line width is set on the pipeline without enabling the feature
on the device. So to play nice, enable the features we care about.

Change-Id: I0c64a0d10a8279fe43d899118b0d6f0e4f875d41
Reviewed-by: Andy Nichols <andy.nichols@qt.io>
2020-08-30 17:44:59 +02:00
Laszlo Agocs fb4760bb21 rhi: gl: Also try GLSL 140 and 130
Change-Id: I21e3ca92d62f20f3ec608bef54c68f9bd09a207f
Reviewed-by: Andy Nichols <andy.nichols@qt.io>
2020-08-30 16:17:16 +02:00
Eskil Abrahamsen Blomfeldt cba147d359 Fix text issues when using typographic names
By default, only the legacy family names are populated on Windows,
since we are using GDI to do the population.

The actual typographic names are added later as aliases when
the font is loaded.

This can cause us to fail matching a font against its typographic
name before it has been loaded and e.g .in Qt Quick we will cache
the glyph indexes for a fallback font instead. If the font is later
loaded and aliases are populated, we will use the cached glyph
indexes and get seemingly random glyphs displayed.

We reuse the mechanism invented for CoreText to do lazy population
of aliases. The population will now happen when the first non-match
occurs, and a second attempt will be made after we populate aliases.

[ChangeLog][Windows] Fixes an issue where fonts would sometimes not
fail to work when selected using typographic names.

Fixes: QTBUG-84786
Pick-to: 5.15
Change-Id: Ic7b65cde26ddcbf1a257f1673b9af37154660c2f
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
2020-08-30 01:57:37 +02:00
Paul Wicking e1b1dd7917 Doc: Remove obsolete snippet code
Obsolete code that is unused/not referenced from
documentation - get rid of it.

Task-number: QTBUG-81486
Change-Id: I82ee65b6e827666f88fa8ecf6d87ae736c893cc3
Reviewed-by: Paul Wicking <paul.wicking@qt.io>
2020-08-29 14:23:04 +02:00
Nico Vertriest 80cc233c59 Doc: Make Qt Gui snippets compilable - draganddrop
Task-number: QTBUG-81486
Change-Id: I0a10e4d353f864e295833ff7d4f47950c5199a21
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
2020-08-29 14:22:49 +02:00
Paul Wicking 5596344100 Doc: Make Qt Gui snippets compilable - brush
Remove unused code in snippet files not referenced from anywhere.

Task-number: QTBUG-81486
Change-Id: I80b46c013bde99e1aea86311d3579ccc922b8fd7
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
2020-08-29 14:22:42 +02:00
Paul Wicking 5bf7ceb4d4 Doc: rename snippet project file
The project file name is wrong, so the project won't become
part of the parent subdirs project. Rename the project file
to correct this.

Task-number: QTBUG-81486
Change-Id: I069004caa5e7bdeecc0550fafe78f8977fbf7a87
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
2020-08-29 14:22:36 +02:00
Morten Johan Sørvig 1719be99a7 Deprecate QIcon API which take a QWindow pointer
- pixmap(QWindow * ...)
    Use pixmap(size, dpr) instead
- actualSize(QWindow *, ...)
    Use actualSize(size) instead

Task-number: QTBUG-85885
Change-Id: Ia2d73eec9f040cd659f39c854463e3cd3ba72b93
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
2020-08-29 10:32:54 +00:00
Morten Johan Sørvig 4a0140832d QPixmapIconEngine: port to new virtual functions
Add availableSizes() override function and move the
implementation out of virtual_hook().

Task-number: QTBUG-85885
Change-Id: Ida3575b25e9bca6167b5be97d6a8f0f624559602
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
2020-08-29 10:03:23 +02:00
Morten Johan Sørvig 6486102595 QIconLoader: port to use new virtual functions
Add override functions and move the implementation
out of virtual_hook().

Task-number: QTBUG-85885
Change-Id: I35ed81a3483dd85d49474b78572d5302b0e5b608
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
2020-08-29 10:03:10 +02:00
Edward Welbourne 1aa412987f Remove QUnicodeTools::DefaultOptionsCompat
Used in only one place, declared in a private header with a comment
saying to remove it. All callers of the one function that had it as
default parameter value are passing a value for the parameter.

Task-number: QTBUG-85700
Change-Id: Ic72e4df730740a4023b0a43be6bf7acf33a3166b
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2020-08-28 21:29:45 +02:00
Joerg Bornemann 8dbb70f44d Remove fxc configure test
This was used for ANGLE, which was removed in 752497910b.

Change-Id: I29bad031b296fddc425145cd206a372baf650267
Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
2020-08-28 20:09:31 +02:00
Tor Arne Vestbø dce106c77c High-DPI: Remove usage of Qt::AA_EnableHighDpiScaling
This attribute is now on by default.

Change-Id: I7c9d2e3445d204d3450758673048d514bc9c850c
Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
2020-08-28 20:08:43 +02:00
Laszlo Agocs 7819574c4c rhi: d3d: Allow compiling source shaders with debug at run time
Relevant for Qt Quick 3D. As in many cases Quick3D will rely on runtime
generated shader code, the translated HLSL will be compiled via
D3DCompile() at run time. To make such shaders debuggable, the necessary
flag (D3DCOMPILE_DEBUG) should be requestable somehow.

Change-Id: I4d5c3b57bf58df8d46556eebb5cf6fb75e9d0afe
Reviewed-by: Andy Nichols <andy.nichols@qt.io>
2020-08-28 15:24:50 +02:00
Robert Loehning e0da5159dc Avoid overflows in variantHash()
Fixes: oss-fuzz-24702
Pick-to: 5.12 5.15
Change-Id: I876bac9e2c276693e59802dfeeea2229a873ee34
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2020-08-28 15:20:17 +02:00
Robert Loehning 0bd770fb87 QTextHtmlParserNode: Avoid extreme values for font's pixelsize
They currently cause an integer-overflow in variantHash().

Fixes: oss-fuzz-24702
Pick-to: 5.12 5.15
Change-Id: Ibee4413ca766c8ade9aeff2f2052b82cb9f7d213
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2020-08-28 13:19:56 +00:00
Morten Johan Sørvig 89e1289b2a High-DPI: Don’t round scale factors in Qt 6
Set HighDpiScaleFactorRoundingPolicy to PassThough
by default. This makes Qt track the system UI setting
accurately, and is overall the least confusing option.

Historically, Qt has rounded the scale factor (for example,
Windows 175% -> DPR 2) due to faulty handling of fractional
scale factors in Qt Widgets and with the native Windows
style.

Other areas of Qt such as Qt Quick have had few issues
with fractional scale factors and support this well.

Qt has never rounded the scale factor on the Android
platform.

Support for fractional scale factors in Qt Widgets and
the windows style has improved, which makes changing
the default for Qt 6 viable.

Task-number: QTBUG-83068
Change-Id: I38b60f621f95be8ebb6cb84a07d3370fec19ab92
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
2020-08-28 13:00:17 +02:00
Morten Johan Sørvig 080a8285eb High-DPI: Enable scaling by default in Qt 6
Enable high-DPI support for all platforms which use
QHighDpiScaling. This changes the default behavior
of Qt applications on X11, Windows, and Android.

Qt::AA_EnableHighDpiScaling is now effectively on by
default, and Qt 6 applications do not have to set
this application attribute. Opting out is possible by
setting the Qt::AA_DisableHighDpiScaling attribute.

Task-number: QTBUG-83068
Change-Id: Ia2bd3e6f490130afcacd3a951bc50dbb40a79d7f
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
2020-08-28 13:00:08 +02:00
Paul Wicking da9a57a1e6 Doc: Compile text snippets
Fix minor issues (e.g. whitespace, missing semi-colon) in passing.

Change-Id: Ib39bb66a724542dcac4ca70072628b9bfcaf200d
Done-with: Nico Vertriest <nico.vertriest@qt.io>
Task-number: QTBUG-81486
Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
2020-08-28 12:38:17 +02:00
Paul Wicking ea85f77a07 Doc: Compile QOpenGLShader snippets
Fix minor issues (e.g. whitespace, missing semi-colon) in passing.

Change-Id: Id5a3d0fe540e94ce0e44062efeacff5f317bc886
Done-with: Nico Vertriest <nico.vertriest@qt.io>
Task-number: QTBUG-81486
Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
2020-08-28 12:33:43 +02:00
Paul Wicking 4853cff109 Doc: Compile painting snippets
Fix minor issues (e.g. whitespace, missing semi-colon) in passing.

Change-Id: I223cb257539d2ac4cb0a1ea209f0c3cebddb3d54
Done-with: Nico Vertriest <nico.vertriest@qt.io>
Task-number: QTBUG-81486
Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
2020-08-28 12:32:22 +02:00
Paul Wicking 176e7d4d8c Doc: Remove unused snippet file
These snippets aren't used anywhere.
Remove the file.

Change-Id: Ie9fc9d73a20757d51c24e2e4fca8581f44d2e9d2
Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
2020-08-28 12:26:03 +02:00
Paul Wicking ef5b4a9891 Doc: Compile OpenGL snippets
Fix minor issues (e.g. whitespace, missing semi-colon) in passing.

Change-Id: I022ac0382ae1068a75246964c37532e7e15417b0
Done-with: Nico Vertriest <nico.vertriest@qt.io>
Task-number: QTBUG-81486
Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
2020-08-28 12:25:34 +02:00
Allan Sandfeld Jensen ea70c3c9f9 Add rgb64 inplace generic conversion
Can avoid having direct conversions between all high precision formats.

Change-Id: I36dd223d028cfda1b6f4116b38ca79cdb7bc5243
Reviewed-by: Eirik Aavitsland <eirik.aavitsland@qt.io>
2020-08-28 12:18:03 +02:00
Paul Wicking 28f31002c4 Doc: Compile QQuaternion snippets
Change-Id: Ica53a7307c3e77abeffa616db15c8e8ec39fce8f
Done-with: Nico Vertriest <nico.vertriest@qt.io>
Task-number: QTBUG-81486
Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
2020-08-28 12:16:20 +02:00
Paul Wicking ed3f50507a Doc: Compile GUI kernel snippets
Fix minor issues (e.g. whitespace, missing semi-colon) in passing.

Change-Id: I103a81a1a5acbfa1ece083a467d23a8544cf647a
Done-with: Nico Vertriest <nico.vertriest@qt.io>
Task-number: QTBUG-81486
Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
2020-08-28 12:08:23 +02:00
Paul Wicking 3dda54c02d Doc: drop obsolete snippet
QApplication::setColorSpec is obsolete. Drop the unused snippet
to avoid clutter when compiling snippet file (multiple main
entry points, etc.)

Change-Id: I5e34cc69aa6f1ccae248f625caa1528e70cb836e
Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
2020-08-28 12:07:03 +02:00
Paul Wicking 4845a0de2e Doc: Compile standard item model snippets
Fix minor issues (e.g. whitespace, missing semi-colon) in passing.

Done-with: Nico Vertriest <nico.vertriest@qt.io>
Task-number: QTBUG-81486
Change-Id: I46301d37112bddcd38dbff9940d0c22eaae74208
Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
2020-08-28 12:06:11 +02:00
Paul Wicking ebabbd0264 Doc: Compile image snippets
Fix minor issues (e.g. whitespace, missing semi-colon) in passing.
Update documentation to use same snippet to avoid duplication of
snippets across snippet files. Remove offending snippet.

Done-with: Nico Vertriest <nico.vertriest@qt.io>
Task-number: QTBUG-81486
Change-Id: Ia45549d50e8f4e22ce72667a19c38132306d38b3
Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
2020-08-28 12:05:49 +02:00
Paul Wicking 186eb6d50f Doc: Compile coordinate system snippets
Fix minor issues (e.g. whitespace, missing semi-colon) in passing.

Change-Id: I8b765c2d2889cae91543c865f3b9df845ef6205b
Done-with: Nico Vertriest <nico.vertriest@qt.io>
Task-number: QTBUG-81486
Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
2020-08-28 12:01:01 +02:00
Paul Wicking f0fb5eac85 Doc: Compile more GUI snippets
Compile snippets from snippets/code.
Fix minor issues (e.g. whitespace, missing semi-colon) in passing.

Done-with: Nico Vertriest <nico.vertriest@qt.io>
Task-number: QTBUG-81486
Change-Id: Ifbdd5c3152e84c608a6562f4061075b61331a5d6
Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
2020-08-28 12:00:07 +02:00
Paul Wicking 6454d227fa Doc: Remove unused snippet
The snippet isn't used anywhere. Remove it.

Change-Id: I56fdadaeb115e4e865476cf2b40e355f753dddf7
Done-with: Nico Vertriest <nico.vertriest@qt.io>
Task-number: QTBUG-81486
Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
2020-08-28 11:59:17 +02:00
Paul Wicking 2c7d57259c Doc: Remove unused snippet
Change-Id: Ie7a904fac93ea991820795852cd4dcf175bffe21
Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
2020-08-28 11:59:06 +02:00
Paul Wicking ab6a007a4c Doc: Compile rich text code snippets
Extend GUI snippet compilation by adding rich text snippets
from /code sub-directory.

Done-with: Nico Vertriest <nico.vertriest@qt.io>
Task-number: QTBUG-81486
Change-Id: I4f3c978cc1c9042767fda9e33719042e18fd4bee
Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
2020-08-28 11:58:45 +02:00
Paul Wicking 8ff63383e4 Doc: Compile textdocument-end snippets
* Extend GUI snippet compilation with textdocument-end snippet.
* Rename the snippet file and replace main() with wrapper().
* Dedent the snippet itself.
* Update documentation that includes the snippet.

Done-with: Nico Vertriest <nico.vertriest@qt.io>
Task-number: QTBUG-81486
Change-Id: Id5e5b284587da1e7fdfd00baa9c899626832a113
Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
2020-08-28 11:58:25 +02:00
Paul Wicking 2870c201dc Doc: Compile qfontdatabase snippets
* Extend GUI snippets by adding the qfontdatabase project.
* Rename the snippet file and replace main() with wrapper().
* Minor adjustments of the snippet itself.
* Update documentation that includes the snippet.

Done-with: Nico Vertriest <nico.vertriest@qt.io>
Task-number: QTBUG-81486
Change-Id: Id23aff01a4c919c5264f7059971cb63398c2298c
Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
2020-08-28 11:58:17 +02:00
Paul Wicking b5a0baa061 Doc: Add skeleton project for GUI snippets
Done-with: Nico Vertriest <nico.vertriest@qt.io>
Task-number: QTBUG-81486
Change-Id: I4bd1f2f56561298573ae57adb149d77e374d8449
Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
2020-08-28 11:58:10 +02:00
Topi Reinio 239982901b Doc: Fix documentation warnings for Qt GUI
* Drop deprecation warnings for now-dropped items
* Use the 'qt6' define and a new \nothing doc macro to conditionally
  document items on Qt 6
* Add a custom module header for docs that pulls in also Vulkan headers
* Add \internal command for internal classes/functions
* Move QtGUI-related code snippets from widgets to gui docs

Change-Id: Ieb386b96631a49568d09059906d307c45c01d93a
Reviewed-by: Paul Wicking <paul.wicking@qt.io>
2020-08-28 11:37:35 +02:00
Jonas Karlsson 174154bcac Remove "internal" parameter in QTextLine::draw()
The method is split up into a private and public version, where the
parameter is moved into the private method.

Fixes: QTBUG-84210
Change-Id: I79e9e02c9b4cc25d31db066e5a9567fdb9bc9fd0
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
2020-08-28 07:27:27 +02:00
Jonas Karlsson 3558704ed5 Use OpenType font weights
Task-number: QTBUG-42248
Change-Id: Icdb301b27d6699c2b842c4563fbef9df73c23cbc
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
2020-08-28 07:26:54 +02:00
Morten Johan Sørvig 462b36c3de QIconEngine: move away from virtual_hook usage
Upgrade existing functions to be virtual functions:
  - virtual QString iconName()
  - virtual bool isNull()
  - virtual QPixmap scaledPixmap(...)
  - virtual QList<QSize> availableSizes(...)

Make all of them non-const and remove the const_casts in
the implementation. Keep the default implementation
which calls virtual_hook(), for compatibility.

Note: availableSizes was already virtual, but now loses
the “const”. Port two overrides in the platform themes.

Keep virutal_hook() around for future expansion.

Task-number: QTBUG-85885
Change-Id: I76d0c9f75bfd6ca870c669047d4ef18b82c692e5
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
2020-08-27 22:47:33 +02:00
Assam Boudjelthia fc4a73aa54 Add QOffScreenSurface platform API abstraction
This follows the work done in 6ff79478a4.

The API is available by including qoffscreensurface.h, scoped in
the QPlatformInterface namespace. The namespace
exposes platform specific type-safe interfaces that provide:

 a) Factory functions for adopting native contexts, e.g.

    QAndroidPlatformOffscreenSurface::fromNative(ANativeWindow);

 b) Access to underlying native handles, e.g.

    surface->platformInterface<QAndroidPlatformOffscreenSurface>()
                ->nativeSurface()

Fixes: QTBUG-85874
Change-Id: I29c459866e0355a52320d5d473e8b147e050acb3
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
2020-08-27 23:35:16 +03:00
Lars Knoll 50661a9558 Change QByteArray to handle large arrays
Use qsizetype throughout.

Change-Id: I787af7fcfa17e1be87decb64c41c609cc24be117
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2020-08-27 18:58:20 +02:00
Morten Johan Sørvig ffde7e8995 QIcon: Add pixmap() overload which take devicePixelRatio
Add new QIcon::pixmap() overload:

  QPixmap pixmap(const QSize &size, qreal devicePixelRatio, ...)

This function replaces the existing pixmap() function which
take a QWindow pointer, and should be more convenient in use.

Task-number: QTBUG-85885
Change-Id: Ie4ca96a266d9278864678dc61bdfc2836cabdb93
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
2020-08-27 12:13:08 +02:00
Morten Johan Sørvig fded035b1c Make QPaintDevice::devicePixelRatio() return qreal
For historical reasons Qt 5 has:

  int QPaintDevice::devicePixelRatio()
  qreal QPaintDevice::devicePixelRatioF()

Change the int to qreal so that Qt 6 will have

  qreal QPaintDevice::devicePixelRatio()
  qreal QPaintDevice::devicePixelRatioF() [to-be-removed]

Change-Id: Ie904e02ec490cbcd2acb5dcecb193e9af4cb90f0
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
2020-08-26 20:09:51 +00:00
Volker Hilsheimer 02d4495115 Remove ### Qt 6 comment
Adding the role that changed to the itemChanged signal is
computationally expensive for the general case. Not going to be done,
at least not for Qt 6.0.

Change-Id: I3e6fca6a5c7b517c3c035477ce5d23d8870bad57
Reviewed-by: David Faure <david.faure@kdab.com>
2020-08-26 18:32:19 +02:00
Volker Hilsheimer 556511f9f3 Move the QPalette::resolveMask into the private
With 64bits, the mask is exhausted with the 21 colors x 3 color groups
we have right now.

In order to support accent colors, we need more palette entries. By
moving the mask into the d-pointer, we can extend QPalette within
the Qt 6 series, without breaking binary compatibility.

The resolveMask/setResolveMask methods that take integers are
documented as internals, so we can change those signatures after
Qt 6.0 as well.

As a side effect, setting the resolve mask on a QPalette detaches now.
Setting a mask is in most cases done on the result of
QPalette::resolve, which is usually detached already. And the QPalette
default constructor will have to detach from the global application
palette if that palette has any colors set explicitly.

Task-number: QTBUG-82925
Change-Id: I1e70f1c4d0dd98303e353b91df5dba2b1fe8ba01
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
2020-08-26 18:03:09 +02:00
Volker Hilsheimer 70f7c484c3 Merge QOffscreenSurface constructor overloads
Address ### Qt 6 comment

Change-Id: I4ca9085266f9008b769bb164e6169439adadb12f
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
2020-08-26 18:02:50 +02:00
Tor Arne Vestbø b5f972361a Introduce QWindow::paintEvent with QPA plumbing
The explicit paint event on QtGui and QPA level allows us to untangle
the expose event, which today has at least 3 different meanings.

It also allows us to follow the platform more closely in its semantics
of when painting can happen. On some platforms a paint can come in
before a window is exposed, e.g. to prepare the first frame. On others
a paint can come in after a window has been de-exposed, to save a
snapshot of the window for use in an application switcher or similar.

The expose keeps its semantics of being a barrier signaling that the
application can now render at will, for example in a threaded render
loop.

There are two compatibility code paths in this patch:

  1. For platform plugins that do not yet report the PaintEvents
     capability, QtGui will synthesize paint events on the platform's
     behalf, based on the existing expose events coming from the platform.

  2. For applications that do not yet implement paintEvent, QtGui will
     send expose events instead, ensuring the same behavior as before.

For now none of the platform plugins deliver paint events natively,
so the first compatibility code path is always active.

Task-numnber: QTBUG-82676
Change-Id: I0fbe0d4cf451d6a1f07f5eab8d376a6c8a53ce8c
Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
2020-08-26 16:44:53 +02:00
Tor Arne Vestbø c3555fc33d Add note about use of receivedExpose member in QGuiApplication
Change-Id: I221586a4fac394a9110d28905a898ab9688c1183
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
2020-08-26 16:44:49 +02:00
Jordi Pujol Foyo 560117351c Allow arbitrary baseline shift in QTextCharacterFormat
Added 6 new methods in QTextFormat and QTextDocument to
allow setting/getting specific % positioning for baseline and super/
subscript. Modified QTextLayout to honor those new settings.

[ChangeLog][QtGui][QTextLayout,QTextFormat,QTextDocument] Allow text
layout modification based on baseline offset and super/subscript % height
positioning

Fixes: QTBUG-18260
Change-Id: I0796f18224aac8df6baf8359c35022fd98fe64ef
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
2020-08-26 16:40:10 +02:00
Shawn Rutledge 5449bddb04 Rename QTabletEvent::m_zTilt to m_z
This is a z coordinate unrelated to tilt, AFAIK.
Amends ea2ae140e9

Change-Id: If165df3af290fbe7c2e5bfa94d578175debd53cd
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
2020-08-26 05:21:30 +02:00
Marcel Krems 8dd50ef206 Remove deprecated qGenericMatrix{To,From}Matrix4x4 functions
Change-Id: I3b43d48f5324f3a1f2fff8e22bb4f9563d3ea997
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2020-08-26 01:49:24 +02:00
Volker Hilsheimer 872e37b2ff Implement QAbstractFileIconProvider to use theme and mime databases
This doesn't give useful defaults on all platforms; icon themes are not
provided on platforms other than Linux, and the mime database doesn't
always return user-friendly names based on file names.

However, both icon themes and the mime database can be customized by
application developers by shipping a data file side-by-side with the
application, without the need for reimplementing the provider class.

Change-Id: Ie4b18ac1b861e2da64f01d1f209986b27fbe6bd5
Task-number: QTBUG-66177
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
2020-08-26 01:13:19 +02:00
Lars Knoll acbf9a858b Cleanup QTypeInfo
Remove QTypeInfo::isStatic, as that's not used anymore in Qt 6.
Also remove sizeOf, it's unused, and we have QMetaType for that if
required.
Remove all typeinfo declaractions for trivial types, as the default
template covers them correctly nowadays.

Finally set up a better default for isPointer, and do some smaller
cleanups all over the place.

Change-Id: I6758ed37dfc701feaaf0ff105cc95e32da9f9c33
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2020-08-26 01:03:22 +02:00
Kai Koehne db21bad936 Port headersclean check to CMake
Configure Qt with -DQT_FEATURE_headersclean=ON to enable the
check. There will be separate target for each module include
(e.g. QtCore_header_check), but the check will also be done
when the module is built for the first time.

There are notable differences to the qmake version:
- the build does not pick up anymore default defines or flags from
  the module, or Qt. Instead options like -fPIC they have to be listed
  explicitly. Also for this reason, we have to skip the vulkan-related
  headers from the check, since vulkan/vulkan.h is not necessarily
  in the compiler's default search path.
- some checks for nowadays unsupported compiler versions are
  removed.
- -Wdouble-promotion -Wshorten-64-to-32 is not added for clang
  builds; the qmake code path did never enforce that on CI
  machines (it was non-Apple clang only), and the check currently
  fails on these configurations.

Fixes: QTBUG-82615
Change-Id: I1cd303677b1472116910b6c27748f96436feb35e
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
2020-08-25 21:13:08 +02:00
Ulf Hermann 561e38f799 Port QSet to qsizetype
Change-Id: I70ad8fb6908ce3837a723e9a095bee5c166739e4
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
2020-08-25 17:59:10 +02:00
Volker Hilsheimer 869ab57c99 Document the QAbstractFileIconProvider::IconType enum
Follow language from the icon naming specification on freedesktop.org at

https://specifications.freedesktop.org/icon-naming-spec/icon-naming-spec-latest.html

Change-Id: I740842a39a9cd56152a799698a648ad6a6e274e5
Reviewed-by: Paul Wicking <paul.wicking@qt.io>
2020-08-25 17:59:10 +02:00
Volker Hilsheimer b77a3f47c9 Rename confusingly named QFont/QPalette::resolve overloads
Having three methods with the same name doing different things is
unnecessarily confusing, so follow the standard naming convention in
Qt and call the getter of the resolve mask resolveMask, and the setter
setResolveMask. These methods were all documented as internal.

The publicly documented resolve() method that merges two fonts and
palettes based on the respective masks remains as it is, even though
'merge' would perhaps be a better name.

Change-Id: If90b1ad800834baccd1dbc38fc6b861540d6df6e
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
2020-08-25 17:59:10 +02:00
Marcel Krems 311d7a609c QTextLayout: Remove deprecated methods
Change-Id: I7991428fb3526e48c0ceda0dcc46ea8a0918cb95
Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
2020-08-25 06:48:03 +02:00
Shawn Rutledge c7f7279969 Introduce QEvent::isPointerEvent()
This makes high-level event dispatching easier: for example in Qt Quick,
all pointer events should eventually be delivered to items in a similar way.

Implemented in a similar way as d1111632e2.

Change-Id: I2f0c4914bab228162f3b932dda8a88051ec2a4d7
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
2020-08-25 06:34:01 +02:00
Volker Hilsheimer fb9ec8ad44 Move QFileSystemModel into QtGui
This requires a QAbstractFileIconProvider in QtGui, as the standard
QFileIconProvider depends on QStyle, and cannot be moved out of
QtWidgets.

QAbstractFileIconProvider returns strings for file types, but returns
no icons yet. Support for a default icon set might be added in a
follow-up commit.

Change-Id: Ib9d095cd612fdcf04db62f2e40709fcffe3dc2b7
Fixes: QTBUG-66177
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
2020-08-25 06:33:44 +02:00
Karsten Heimrich a735038376 Move QStateMachine from QtCore to QtScxml
Task-number: QTBUG-80316
Change-Id: I2ee74110fd55e94d86321d3b3dc5bb8297424ed4
Reviewed-by: Maurice Kalinowski <maurice.kalinowski@qt.io>
2020-08-24 20:10:25 +02:00
Shawn Rutledge 38806273e5 Remove QEventPoint::event() in favor of device()
event()->device() was the most common use case anyway.

The idea that the "parent" of a QEventPoint is the QPointerEvent
interferes with the ability to copy and move event objects: the parent
pointers are dangling unless we use the QPointerEvent subclass
destructors to set the points' parents to null.  Since there is no move
constructor, even returning a QEventPoint from a function by value
results in destroying the temporary instance and copying it to the
caller's space.  So the parent pointer is often useless, unless we do
even more work to maintain it when the event moves.

If we optimize to avoid copying QEventPoints too much (and perhaps
enable exposing _mutable_ points to QML) by storing reusable instances in
QPointingDevice (which is the current plan), then the actual parent will
no longer be the event.  Events are usually stack-allocated, thus
temporary and intended to be movable.

Change-Id: I24b648dcc046fc79d2401c781f1fda6cb00f47b0
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
2020-08-24 13:50:55 +02:00
Eskil Abrahamsen Blomfeldt f70b955ce8 Remove the QPF2 font engine
The QPF2 font engine has been kept around for compatibility
reasons in Qt 5.x, and it is time for it to retire for now. If
we want something like this in the future, we can revive it with
hardware acceleration / Qt Quick as one of the primary use cases,
but for now, it seems that Freetype and our existing caching is
sufficient also for low-end use cases.

[ChangeLog][QtGui][Text] Removed support for the legacy QPF2 font
format as well as the makeqpf tool used to generate those files.

Change-Id: Id43039c92fe5bd95b628cd769e045c029f39a350
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
2020-08-24 07:08:45 +02:00
Lars Knoll 0161f00e50 Use QMetaType in QMetaCallEvent
And don't use int based type mapping anymore.

Change-Id: I456e76d1933ef646a7bd39ce565886b89e938a44
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2020-08-24 00:19:36 +02:00
Lars Knoll 369cb1470d Clean up int based convert() API
Pass QMetaType instances instead.

Change-Id: I07366cea566fdebf5bb793aa8087f8109216ec0c
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2020-08-24 00:19:24 +02:00
Lars Knoll e7e7540aec Deprecate int based convert/canConvert
Better to provide the correct meta type to convert to.

Change-Id: I8e0d46e4ba482186201c157e302c03874bd38e7b
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2020-08-24 00:19:18 +02:00
Lars Knoll 1697fbdf05 Deprecate the static int based API in QMetaType
And remove one of the type id to name mapping that still
existed in QMetaType. QMetaTypeInterface can provide that,
so there's no need to have a second copy of the data.

qMetaTypeTypeInternal() can still map all the names of all
builtin types to ids. That functionality is for now still
required by moc and can't be removed yet.

Change-Id: Ib4f8e9c71e1e7d99d52da9e44477c9a1f1805e57
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
2020-08-24 00:19:05 +02:00
Lars Knoll 1d7a9fc9b4 Add a metatype helper class for Qt Core
This helps get better symmetry with the other modules,
and to unify the code paths for both conversion and
retrieving the interface for static types.

Change-Id: Icbd20de2563f36e3de20d826323acd057734abfb
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2020-08-24 00:17:19 +02:00
Lars Knoll 73fd7f2efc Use QMetaTypeModuleHelper as the interface to do type conversions
Move the type conversions from QVariant::Helper to QMetaType. Only do
this for Qt Gui in a first step.

This makes it possible to completely remove the Handler struct in
QVariant, and now allows QMetaType to also convert Gui types.

Moving the conversion of Core types into QMetaType will require
further work.

Change-Id: I061f789deca1b595d92bb29227eb54b8e71a3ee3
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2020-08-24 00:17:05 +02:00
Lars Knoll 7f009b648f Get rid of the additional bool * parameter to the internal convert method
That parameter is duplicating the return value, get rid of it.

Change-Id: I8d6ecee8aca90aecaf08e6d0072d83e9a08ce3d6
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2020-08-24 00:17:04 +02:00
Lars Knoll fc4a08cee7 Remove some dead code
This code is now unused, as streaming operators are
registered automatically.

Change-Id: I0e48944c33a92cf1f2f158fb2dc0ca49256d7938
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2020-08-24 00:17:03 +02:00
Lars Knoll ef6c5f29ab Get rid of the custom debug stream handling in QVariant
Use the builtin support in QMetaType instead.

Change-Id: Ifc0e88719a384aa7fb525652bada22b6f7ee1c45
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
2020-08-24 00:17:03 +02:00
Joerg Bornemann f9efe046a7 Remove the deprecated -qpa-platform-guard argument
Change-Id: I0bde5552c8801660e2be57531d64b6d2b499bb32
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
2020-08-23 11:05:14 +02:00
Paul Wicking 55d0bcaf92 Ignore clang-format for GUI snippets
Among other things, this allows for ignoring proper indentation
of code that's contained in a wrapper function which serves the
purpose of compiling the snippet only. This is useful because
the extra indentation is included in the output generated by QDoc.

Task-number: QTBUG-84470
Change-Id: I3d702e82169a87447939f357cbee15cb0f74a391
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
2020-08-23 05:30:38 +00:00
Marcel Krems be83b626d7 QPixelFormat: Fix warning about mixing different enums
warning: C5054: operator '+': deprecated between enumerations of different types

Pick-to: 5.15
Change-Id: If111b076914667fb149e62e051f52f408db9a338
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2020-08-23 02:34:56 +02:00
Gatis Paeglis 7318328c2d qwsi: revert parts of 00ae1e6b7b
We actually do not need this "mode" in qwsi API. I think while
writing the patch from 00ae1e6b7b I got confused by focusing
on my test application. We can't know what the native event
filter will filter out, therefore it makes sense that we
unconditionally do filtering at qwsi level as well for user input
vs other events in QWindowSystemInterface::sendWindowSystemEvents().

Pick-to: 5.15
Pick-to: 5.12
Change-Id: Idb23152a24bf3ba3b91804427a6e78f991969c29
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
2020-08-23 01:18:25 +02:00
Andy Shaw 37c68503cb QFont: Extend the string description to include the missing elements
This extends to/fromString to include style strategy, capitalization,
letter and word spacing and stretch. QFont::fromString() keeps
compatibility with strings from earlier versions as well.

Fixes: QTBUG-67687
Change-Id: I5e95a58f1cd850214af2a7d8906a214facd4e661
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
2020-08-22 22:21:35 +00:00
Edward Welbourne 16e546e32f Properly deprecate Qt::MidButton in favor of Qt::MiddleButton
MidButton had its // ### Qt 5: remove me
upgraded to Qt 6 at 5.0; but it dates back to 4.7.0

Replace the many remaining uses of MidButton with MiddleButton in the
process.

Pick-to: 5.15
Change-Id: Idc1b1b1816673dfdb344d703d101febc823a76ff
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
2020-08-22 21:47:36 +02:00
Nicolas Guichard 4b1ffab8ad QGuiApplication: fix handling of spontaneous events' modifiers
QtQuickTest synthetized events can have modifiers, but those modifiers
were not accessible globally, from QGuiApplication::keyboardModifiers
for instance.
eg. calling QML's TestCase::mouseClick with modifiers triggering a call
to QGuiApplication::keyboardModifiers did not give the expected result.

QtTest synthesised events can also have modifiers and those were
correctly handled by QApplication to set modifiers globally.

This fix moves the handling code from QApplication::notify to
QGuiApplicationPrivate::maybeSimulateModifiers and calls this function
from QGuiApplication::notify too.

The definite fix would be to do as suggested in the comment attached to
the moved code:
> Qt Test should not call qapp->notify(), but rather route the events
> through the proper QPA interface. This is required to properly
> generate all other events such as enter/leave etc.

Pick-to: 5.15 5.12
Change-Id: I734e5bbc82232b13828b1a1f82e06ee8eb695417
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
2020-08-20 17:57:55 +02:00
Friedemann Kleint 92d4d490fe Fix a number of qdoc warnings
- Remove obsolete functions and enumeration values
- Remove QObject * parameter from QMetaProperty accessors
- Fix renamed enumerations in QSsl
- Fix list items to be \li
- Fix function signatures and variable names

Change-Id: I37c7e6bf2c8ff92bc7b82620bae0a27796f866ab
Reviewed-by: Paul Wicking <paul.wicking@qt.io>
2020-08-20 07:51:05 +02:00
Laszlo Agocs 2da2e24bbc rhi: d3d11: Enable setting xxxColor as an alpha src/dst blend factor
Fixes: QTBUG-86111
Pick-to: 5.15
Change-Id: Iabcf1708ea65e9f05f39caf9df9b45c25ac5dbb8
Reviewed-by: Andy Nichols <andy.nichols@qt.io>
2020-08-19 18:23:52 +02:00
Morten Johan Sørvig 733b653844 Update QHighDpiScaling on DPI change
Make sure Qt reacts correctly to DPI changes while the
application is running, also when going from “standard-dpi”
to “high-dpi” (like Windows 100% to 200%).

Call QHighDpiScaling::upateHighDpiScaling() on DPI
change and update the m_usePixelDensity flag from there.

Fixes: QTBUG-85384
Pick-to: 5.15
Change-Id: I8ca83e4eea76cc8ba701a18e1f8c535b9953918f
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
2020-08-19 15:01:45 +02:00
Morten Johan Sørvig e93ec716bf High-DPI: Use correct DPI for QT_USE_PHYSICAL_DPI
Setting the QT_USE_PHYSICAL_DPI environment variable
will make Qt use physical DPI when determining the
screen scale factor, instead of logical DPI.

However, the code was using QScreen::physicalDotsPerInch(),
Whose return value is itself scaled by the device
pixel ratio. (See QTBUG-62649 for further discussion).

Use QPlatformScreen API instead and calculate the DPI
based on geometry() and physicalSize().

Pick-to: 5.15
Change-Id: Ifa29065c447b0d3431e0f14aacb5aafce61051c2
Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
2020-08-19 15:01:45 +02:00
Allan Sandfeld Jensen 041f655c01 Use [[nodiscard]] with clang in C++17 mode
It is only broken in C++11/c++14 mode.

We do need to fix the order of visibility-attributes and this
C++ attribute.

Change-Id: I41e4367f1aaa9241fec4e336c39e58b798336b2c
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2020-08-18 22:32:20 +02:00
Paul Lemire 6a2c89c043 rhi: sanityCheckGraphicsPipeline handle no vertex attributes
It is a valid use case to have a vertex shader with no
vertex attributes. Using gl_VertexID or gl_InstanceID
is enough to generate vertex data out of thin air.

Change-Id: If7689914624a84723923fd2d7aef355bda592e24
Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
2020-08-18 07:58:50 +02:00
Volker Hilsheimer d1111632e2 Introduce QEvent::isInputEvent
This makes it easier to reliably maintain input-event related states
in widgets, in particluar the state of keyboard modifiers. Instead of
testing for all possible event types, code can just test the flag before
safely static_cast'ing to QInputEvent to access the modifiers.

Simplify the code in QAbstractItemView accordingly.

Task-number: QTBUG-73829
Change-Id: Idc7c08e2f3f1e8844f5c6693c195153038ee6490
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
2020-08-17 21:54:34 +02:00
Volker Hilsheimer b39685d4c2 Make QCursor constructor explicit to prevent comparison of QPixmap
QPixmap doesn't implement operator==, but QCursor had a non-explicit
constructor from a QPixmap, which the compiler would use if two pixmaps
get compared.

Making that QCursor constructor explicit prevents that implicit
conversion, at the cost of potential (but trivially resolved) source
incompatibility.

Also, make QCursor's comparison operators into hidden friends to avoid
any other implicit conversions, and allow only QCursor object to be
compared.

In addition, delete operator== and operator!= in QPixmap so that the
compiler generates a useful error message, rather than a screen full
of global operator== candidates.

Delete these operators in QIcon as well for consistency.

Change-Id: I9b3f770da5718360ecc41c35cf327ef4f60d169b
Fixes: QTBUG-85993
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
2020-08-17 15:08:39 +02:00
Volker Hilsheimer c54a5b8380 Introduce QWidget::setScreen
Follows the QWindow semantics, and is a replacement for creating
a QWidget with a QDesktopScreenWidget as the parent.

We can now remove much of the special handling of QDesktopWidget and
the Qt::Desktop window type, and get rid of QDesktopScreenWidget.

Add a manual test that allows local testing. Our CI environments
only have a single screen, and no multi-head display server setup
which is the primary case where QWidget::setScreen is interesting.
For the more common case of a virtual desktop, QWidget::setScreen
has no real impact (just as QWindow::setScreen doesn't).

Change-Id: Id0099e069d316741bacd8c795c396ccad37be297
Fixes: QTBUG-85483
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
2020-08-17 15:08:39 +02:00
Kai Koehne 8c9482cd30 Add missing 'We mean it' header to qwindowsmime_p.h
Change-Id: Ia0085b75b9127d99b10518768cecbb79a4286c8e
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
2020-08-17 12:21:37 +02:00
Jonas Karlsson f095dc7af1 Remove 'less than' comparison method
Change-Id: Ief52da4f9176216ba45d4dc9df5bb341987cb585
Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
2020-08-17 10:05:01 +02:00
Paul Lemire 77a985a876 rhi: QRhiGles2 use proper texture target for multisampled textures
Change-Id: I6e92a66f2758599626e7bdfbb2e149bb69192479
Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
2020-08-17 08:10:33 +02:00
Joerg Bornemann 584d4be174 CMake: Re-implement configure/qmake's command line handling in CMake
We extend configurejson2cmake to read the "commandline"
information from configure.json. This data is then translated to CMake function
calls and written it into commandline.cmake files.

We extend QtProcessConfigureArgs.cmake to pick up those commandline.cmake
files to feed our command line handling code, which is a
re-implementation of the command line handling in qt_configure.prf.

The command line handler sets INPUT_xxx variables, similar to
configure/qmake's config.input.xxx variables. The INPUT_xxx values are
translated
- to -DFEATURE_xxx=ON/OFF arguments if the input represents a feature,
- to corresponding CMake variables if such a variable is known,
- or to -DINPUT_xxx=yyy CMake arguments.

Configure arguments that have an entry in
cmake/configure-cmake-mapping.md are actually implemented. Other
arguments are likely to need more work.

Task-number: QTBUG-85373
Change-Id: Ia96baa673fc1fb88e73ba05a1afb473aa074b37d
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
2020-08-17 08:08:20 +02:00
Lars Knoll f741a12de1 Disentangle QIODevice dependencies
Move the QIODevice::OpenMode enum into a base class, so that
we can remove the full QIODevice (and thus QObject) dependency
from qdatastream.h and qtextstream.h.

This is required so that we can include QDataStream in qmetatype.h
without getting circular dependencies.

As a nice side effect, QDataStream and QTextStream can now inherit
QIODeviceBase and provide the OpenMode enum directly in their
class scope.

Change-Id: Ifa68b7b1d8d95687ed032f6c9206f92e63bfacdf
Reviewed-by: Paul Wicking <paul.wicking@qt.io>
Reviewed-by: Maurice Kalinowski <maurice.kalinowski@qt.io>
2020-08-15 20:55:31 +02:00
Lars Knoll 8929c0a355 Remove QVariant(int type, void *data, ...) constructor
It was marked internal anyway. Use the constructor taking a
QMetaType instead.

Change-Id: I15b9cd0911aac063a0f0fe0352fa2c84b7f7c691
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
2020-08-15 10:56:29 +02:00
Allan Sandfeld Jensen 6f0df02d00 Replace Qt CONSTEXPR defines with constexpr
Both normal and relaxed constexpr are required by our new minimum of
C++17.

Change-Id: Ic028b88a2e7a6cb7d5925f3133b9d54859a81744
Reviewed-by: Sona Kurazyan <sona.kurazyan@qt.io>
2020-08-14 15:52:58 +02:00
Allan Sandfeld Jensen d4a73d4255 Another round of using noexcept instead of pre-C++11 defines
A few new files were added with old-school defines.

Change-Id: Ieb2c71e094e55102f3f39fb9551823f36863f5f4
Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
2020-08-13 19:58:40 +02:00
Lars Knoll 048debe8f9 Restrict QVariant::isNull() behavior
isNull() would forward to the contained type and check that type's
isNull() method for some of the builtin types. Remove that behavior
and only return true in isNull(), if the variant is invalid, doesn't
contain data or contains a null pointer.

In addition, implement more consistent behavior when constructing
a QVariant using the internal API taking a copy from a void *.
isNull() should return true in both cases. This mainly changes behavior
for some corner cases and when using our internal API.

[ChangeLog][Important Behavior Changes] QVariant::isNull()
no longer returns true when the variant contains an object of some
type with an isNull() method, that returns true for the object;
QVariant::isNull() now only returns true when the variant contains
no object or a null pointer.

Change-Id: I3125041c4f8f8618a04aa375aa0a56b19c02dcf5
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
2020-08-13 08:48:32 +02:00
Lars Knoll 50c96c17b6 Use the new support for comparisons in QMetaType for QVariant
Remove the compare method in the QVariant::Handler struct. Rely
on the generic support provided by QMetaType instead.

[ChangeLog][Important Behavior Changes][QVariant] QVariant will now use builtin support in
QMetaType to compare its content. This implies a behavioral change
for some graphical types like QPixmap, QImage and QIcon that will
never compare equal in Qt 6 (as they do not have a comparison
operator).

Change-Id: I30a6e7116c89124d11ed9052537cecc23f78116e
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
2020-08-13 08:48:03 +02:00
Konstantin Ritt 95946222e6 QtFontStyle: Add missing const to non-mutable operators
and once I touch these lines anyways, either add noexcept ;)
Fixes-up 8bdbb7f226

Change-Id: Ibfaedcff82c041293220408ab7ae739b3cbd2a4f
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
2020-08-12 16:13:15 +03:00
Eirik Aavitsland 4db44bc32f Allow smooth curve stroking for very wide lines
The earlier limit set on the curve threshold turned out to be too
strict, leading to visibly bad rendering in reasonable use cases.
Ref. 5322998a0b

As a drive-by, add a missing fixed-to-real conversion. (This is a
no-op in a default build, where qfixed==qreal.)

Fixes: QTBUG-85193
Pick-to: 5.15 5.12
Change-Id: I7cc3543d7aa4e90643b275686372400879decef2
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
2020-08-12 07:10:23 +02:00
Paul Wicking 7bd965258e Doc: Remove outdated documentation
We don't have this class in Qt anymore.
Drop the related snippet as well.

Pick-to: 5.15
Change-Id: I5149e2f9da483b9ad678a6d414a278cb7e107f10
Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
2020-08-12 05:04:56 +02:00
Laszlo Agocs a99cee1c7b Remove old CBOR-based format from QShader
We only support version 4 and 5 in Qt 6.0. 1 and 2 are already gone
(due to being based on binary JSON), now we remove 3 as well.

Task-number: QTBUG-81346
Change-Id: I3627dcc0587f1e36f11e93edf7172889e911d64e
Reviewed-by: Andy Nichols <andy.nichols@qt.io>
2020-08-11 13:45:09 +02:00
Alexandru Croitor ecc72bc63d CMake: pro2cmake: Specify library versions for 3rd party libs part 2
Embed package versions into the qt_find_package calls for various
Linux specific packages.

Task-number: QTBUG-82917
Change-Id: I5d1cb623f81932dfae4658b8a3a89eedb71ea3af
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
2020-08-10 11:56:54 +02:00
Alexandru Croitor 3c52f8af9d CMake: pro2cmake: Specify library versions for 3rd party libraries
If certain 3rd party libraries have a version that's not suitable for
Qt, the configure summary should say so, rather than use them and fail
at build time.

With the current situation, we have to duplicate the version
information from the configure.json files in helper.py, by assigning
the version number as an extra find_package variable.

Rerunning configurejson2cmake then embeds this version info into the
qt_find_package calls in configure.cmake.

Some of the Find modules are rewritten to take the  specified version
into account when looking for the libraries.
This involves moving around the code for creating a target, after
calling find_package_handle_standard_args() so we know if a good
enough version was found.

Task-number: QTBUG-82917
Change-Id: I139748d8090e0630cda413362760034dc3483e11
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
2020-08-10 11:56:54 +02:00
Allan Sandfeld Jensen cabc248667 Avoid UB in 64bit compositions
Multiplying 65535 by 65535 would exceed the precision of an int, so
use 65535U instead.

Change-Id: I066e552fb7db03ce867bcbfbd0b555ac98ca4bbf
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2020-08-08 19:08:07 +02:00
Robert Loehning 7fa5fdae5c QBezier: Don't try calculating a unit vector when length is null
It's undefined and causes a division by zero.

Fixes: oss-fuzz-24273
Pick-to: 5.12 5.15
Change-Id: I3d34d5c43cccff9255abaf87af265ddea3fe6d95
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
2020-08-07 16:21:16 +00:00
Giuseppe D'Angelo 3f6afac6b1 QPolygon: streamline constructors and special member functions
Employ RO0; inherit the constructors from the base class; and
do some code tidies as a drive by.

The inherited constructors bring in goodies like initializer_list
support.

Change-Id: Ia00a3f9b0ccbf182bf837bc65ba2305110c8dc60
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
2020-08-07 15:01:26 +02:00
Paul Lemire 3f64d77003 rhi: QRhiGles2 fix leak BlitFromRenderbuffer
Leaked FBO otherwise lead to massive runtime memory consumption increases.

Change-Id: Ic8ffad4917c11294e6c83cdae0b36114d661b251
Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
2020-08-07 13:02:35 +02:00
Allan Sandfeld Jensen 9a900dfb07 Update qgrayraster.c
In particular switching the SUBPIXELS macro with FRACT makes the logic
valid for all 24dot8 fixed point values.

Change-Id: I4e58df94f8cf3c557f670c5d3088942e9b8efa6d
Reviewed-by: Eirik Aavitsland <eirik.aavitsland@qt.io>
2020-08-06 19:15:39 +02:00
Giuseppe D'Angelo 14090760a8 Long Live QMap as a refcounted std::map!
... and QMultiMap as std::multimap.

Just use the implementation from the STL; we can't really claim that
our code is much better than STL's, or does things any differently
(de facto they're both red-black trees).

Decouple QMultiMap from QMap, by making it NOT inherit from
QMap any longer. This completes the deprecation started in 5.15:
QMap now does not store duplicated keys any more.

Something to establish is where to put the
QExplictlySharedDataPointer replcement that is in there as an
ad-hoc solution. There's a number of patches in-flight by Marc
that try to introduce the same (or very similar) functionality.

Miscellanea changes to the Q(Multi)Map code itself:

* consistently use size_type instead of int;
* pass iterators by value;
* drop QT_STRICT_ITERATORS;
* iterators implictly convert to const_iterators, and APIs
  take const_iterators;
* iterators are just bidirectional and not random access;
* added noexcept where it makes sense;
* "inline" dropped (churn);
* qMapLessThanKey dropped (undocumented, 0 hits in Qt, 1 hit in KDE);
* operator== on Q(Multi)Map requires operator== on the key type
  (we're checking for equality, not equivalence!).

Very few breakages occur in qtbase.

[ChangeLog][Potentially Source-Incompatible Changes] QMap does not
support multiple equivalent keys any more. Any related functionality
has been removed from QMap, following the deprecation that happened
in Qt 5.15. Use QMultiMap for this use case.

[ChangeLog][Potentially Source-Incompatible Changes] QMap and
QMultiMap iterators random-access API have been removed. Note that
the iterators have always been just bidirectional; moving
an iterator by N positions can still be achieved using std::next
or std::advance, at the same cost as before (O(N)).

[ChangeLog][Potentially Source-Incompatible Changes] QMultiMap does
not inherit from QMap any more. Amongst other things, this means
that iterators on a QMultiMap now belong to the QMultiMap class
(and not to the QMap class); new Java iterators have been added.

Change-Id: I5a0fe9b020f92c21b37065a1defff783b5d2b7a9
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
2020-08-06 19:15:39 +02:00
Eirik Aavitsland 6f909a5178 Avoid potential ub in corrupt bmp file
biHeight may be int_min, in which case qAbs<int>() will not work.

Fixes: oss-fuzz-22997
Pick-to: 5.15 5.12
Change-Id: Ic07d5aa0b4e4f2b6395e1a12d742e31b5282fdfc
Reviewed-by: Robert Loehning <robert.loehning@qt.io>
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
2020-08-06 13:35:12 +02:00
Shawn Rutledge a95d4f68ee Add qt.pointer.grab logging in QEventPoint
Add the logging category qt.pointer.grab, which generalizes the
qt.quick.pointer.grab category in Qt 5 (and is almost always needed
for troubleshooting Qt Quick pointer-handling bugs).

Change-Id: I10b4f43aa60e8717d92ac43384d8fdeefd41d836
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
2020-08-06 12:53:37 +02:00
Eskil Abrahamsen Blomfeldt 76068d0114 Make QFontDatabase member functions static
QFontDatabase is a singleton and all instances would share
a single, mutex-protected global data pointer. But some functions
were implemented as non-static functions. This caused a lot
of code on the form

	QFontDatabase().families(...)

since there was no static access. Other functions were implemented
as static.

To consolidate, we make all functions static. This should be
source-compatible, but not binary compatible.

[ChangeLog][QtGui][Fonts] Some functions in QFontDatabase were in
principle static, but previously not implemented as such. All
member functions have now been made static, so that constructing
objects of QFontDatabase is no longer necessary to access certain
functionality.

Fixes: QTBUG-83284
Change-Id: Ifd8c15016281c71f631b53387402c942cd9c43f6
Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
2020-08-06 11:43:24 +02:00
Shawn Rutledge 6d6ed64d6c Add QPointerEvent::is[Press|Update|Release]Event accessors
QQuickPointerEvent had them, so despite how trivial they look,
it's very convenient to keep using them in QQuickWindow rather than
duplicating these kinds of checks in various places, and for multiple
event types too.

Change-Id: I32ad8110fd2361e69de50a679ddbdb2a2db7ecee
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
2020-08-06 10:23:56 +02:00
Shawn Rutledge b9873b7dde Add QEventPoint::pressTimestamp() and priv setPressTimestamp()
There was no good reason for QEventPoint::pressTimestamp() to be
missing.  The case for QEventPoint::timestamp() is a bit dubious
because it's redundant with QInputEvent::timestamp(); but for now,
we keep m_timestamp, in anticipation that Qt Quick may need to keep
copies of eventpoints between events, thus they need to avoid depending
on their shorter-lived parent events too much.

Change-Id: Iec38acfdfaa2afb3dc77d5cd1b95baa8d301c0fd
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
2020-08-06 10:23:17 +02:00
Thiago Macieira 9f4c9529f6 MSVC: remove the extern template
The problem was that QtCore exported those classes deriving from
containers, which caused applications to try and import those same
functions from QtCore, depending on whether they saw the #include or
not.

Now we don't need the hack anymore.

Change-Id: I0a103569c81b4711a649fffd14ec9282454a1fdc
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
2020-08-05 21:51:24 -07:00
Joni Poikelin de3b2541de Clear old triangulated vertex data when a path is completely clipped
Old data was held in buffers which caused OpenGL paint engine to
re-render previous shape again with current settings if the current path
was completely clipped.

Pick-to: 5.15
Fixes: QTBUG-35513
Change-Id: I0cd448e0b18d199af11e82d79b1ab72d0f89c79e
Reviewed-by: Eirik Aavitsland <eirik.aavitsland@qt.io>
2020-08-05 12:08:46 +03:00
Samuli Piippo c8db3115a2 Define unix platform interfaces also without opengl
Fix build without opengl.

Change-Id: I691fd4112d69b16690915fcf33f5ae30ca2d7a93
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
2020-08-05 09:34:58 +03:00
Michal Klocek 4886514fc3 Fix compiler issues when qreal is float
Change-Id: Ide3b5a3b0f2d93708409edac8aa999eb25c3ab54
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
2020-08-05 07:24:14 +02:00
Oliver Wolff f4093d02ff Fix "rectange" typos in qtbase
Pick-to: 5.15
Change-Id: If064fae5eaaeb2e53e3dd05cb9dc1cdf49ad1f04
Reviewed-by: Rainer Keller <Rainer.Keller@qt.io>
2020-08-05 05:13:30 +00:00
Michal Klocek 3d89fa97cc Remove InfoFlag from docs
It seem to be a leftover after 4e400369.

Change-Id: I1c12bfa70cb3716d5cd9d1306db23242b58f3096
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
2020-08-04 07:12:32 +02:00
Tor Arne Vestbø a00ad95137 Remove last remaining bits of QtPlatformHeaders
Task-number: QTBUG-84220
Change-Id: I951e04bfe9358a99951d1d61ff47b675584b7f81
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
2020-08-04 07:12:32 +02:00
Topi Reinio fddb0c895f Doc: Document QGradient::Preset enum values
Pick-to: 5.15
Fixes: QTBUG-85749
Change-Id: Ie77145e851ff64d4c88fce7211135d66e9b94a84
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
Reviewed-by: Paul Wicking <paul.wicking@qt.io>
2020-08-03 16:47:31 +02:00
Laszlo Agocs 3f2251994d Fix doc signature in QOpenGLContext
Just T makes qdoc's clang parsing fail, it needs template<typename T>.

Also, the return type is T*, not T.

Change-Id: I210676aff3122b432888c3d79d9967e249ac88e1
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
2020-08-03 09:41:33 +02:00
Laszlo Agocs f0c5802a5c Add more doc fixes for Vulkan types
Add dummy typedefs just for qdoc, this way the types show up in
the generated docs.

Change-Id: I408eeb5c4c1cbbb8cd7df8ca3c9c6b7c64b0ca88
Reviewed-by: Andy Nichols <andy.nichols@qt.io>
2020-08-03 09:41:22 +02:00
Edward Welbourne a6b3a1e459 Remove deprecated binary json feature
Deprecated in 5.15 in favor of CBOR.

Fixes: QTBUG-81239
Change-Id: I711d4bd7dd1247f58e77ac9fa53304cbe5028918
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
2020-07-31 17:12:48 +02:00
Mitch Curtis 46ec92dad0 Fix build with MSVC2019
The error was:

src\virtualkeyboard\qvirtualkeyboardinputcontext_p.cpp(305): error C2678:
binary '!=': no operator found which takes a left-hand operand of type
'QList<QInputMethodEvent::Attribute>' (or there is no acceptable conversion)

This patch fixes the issue by manually defining an operator== for
QInputMethodEvent::Attribute.

Change-Id: Idb283cf7b6ff4388a38ea7780c3d5c1c5f77038d
Fixes: QTBUG-85789
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2020-07-31 16:54:10 +02:00
Paul Lemire c95fc0f662 rhi: QRhiGLes2::gatherUniforms fix gathering in struct
In the case we don't have an array of structs, structPrefix needs to be
suffixed with a dot to get the proper uniform names.

Change-Id: I50ed54c2f7c3cc4556ed1854419bc4fe3a2989f7
Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
2020-07-31 15:43:20 +02:00
Allan Sandfeld Jensen 5747f31392 Another round of 0->nullptr cleanup
Change-Id: Ic8db7dc252f8fea46eb5a4f334726d6c7f4645a6
Reviewed-by: Sona Kurazyan <sona.kurazyan@qt.io>
2020-07-31 12:56:50 +02:00
Alexander Volkov 2b781fd678 Revert "Add missing override" for 3rdparty vk_mem_alloc.h
This partially reverts 9bad3508fc.
Disable -Wsuggest-override for gcc when including the header
instead.

Change-Id: Id2507ce731da62bbd64aa6477b181735ba62adc1
Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
2020-07-29 15:35:01 +03:00
Shawn Rutledge c13ce05482 Export the QMutable* event classes
They are needed often in Qt Quick.

Change-Id: I8f68798042dd7440958c8bc2b8fe7021af8ec34d
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
2020-07-28 17:32:14 +02:00
Friedemann Kleint 964f5757ea Windows QPA: Move some internal functions to the new interface
Move createMessageWindow(), the GPU detection for qtdiag and the async
expose setting (used by Active Qt) from QWindowsNativeInterface to
QWindowsApplication.

Remove unused registerWindowClass() and use logFontToQFont() directly from
the font database.

Task-number: QTBUG-83252
Change-Id: I9c72351970b47457d08125557c2580016c66e586
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
2020-07-28 13:21:10 +02:00
Friedemann Kleint 2405aa9d67 Windows QPA: Move mime-type related classes to the new interface
Move QWindowsMime (which was a public class in Qt 4 and moved to the QPA
plugin in Qt 5) to the platform namespace and add register functions to the
native application.

Move in test code from QtWinExtras.

Task-number: QTBUG-83252
Change-Id: Iaac440e2d5cb370110919921b1eeb779600b5b65
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
2020-07-28 13:20:23 +02:00
Allan Sandfeld Jensen f26147b493 Replace Q_ALWAYS_INLINE with static inline
Static inline on functions serves the same purpose of keeping non-
inlined instances from different binaries from being mixed, and has the
benefit of being available across compilers.

Change-Id: I12467f6d887471d8fd70ff4623c473c2a5a45664
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2020-07-28 08:39:42 +02:00
Robert Loehning 188501fe27 Sanitize lengthValue in CSS parser
Limit the LengthData to the integer range before rounding it, taking
into account that qRound() substracts 1 from negative values.

Fixes: oss-fuzz-23220
Pick-to: 5.15 5.12
Change-Id: I1b4383f3c33aac22746831002b2c74fc134faf77
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
2020-07-27 12:29:55 +02:00
Friedemann Kleint 6d4b3582ad Windows QPA: Move dark mode handling to the new interface
Move options to new interface, making them settable from
code on this occasion.

Task-number: QTBUG-83252
Change-Id: Idd80667c502a8cde5d7c66d7e597ea34c22738e7
Reviewed-by: André de la Rocha <andre.rocha@qt.io>
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
2020-07-25 21:59:37 +02:00
Friedemann Kleint f06dfb60b9 QtGui: Add Windows conversion functions for to QImage
Add conversions from/to HBITMAP, HICON to QImage. Split the pixmap
conversion functions apart to use them.

Task-number: QTBUG-81876
Change-Id: Ic0c41a402a1f6e9bec572fc4d691357bd48e6423
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
2020-07-24 22:51:46 +02:00
Tang HaiXiang b4aee30692 Fix under non-integer scaling incorrect update area
Given some decimal scaling, the clipping of the QRegion/QRect passed to the QRegion/QRect done inside paintEvent cannot handle the decimal scaling.
Solved by only converting QRect to a certain QRectF and calling QRectF overload instead of QRect.

Fixes: QTBUG-82601
Fixes: QTBUG-64854
Pick-to: 5.15
Change-Id: I0d8f4193aabfc0d917612db68d2a39ebb726fa2f
Reviewed-by: Eirik Aavitsland <eirik.aavitsland@qt.io>
2020-07-25 02:02:23 +08:00
Friedemann Kleint ff97e083ed Windows QPA: Move window properties to the new interfaces
Affects the custom margin used by QWizard.

Task-number: QTBUG-83252
Change-Id: Iffda043f106282f682e119ec955fa2b2eb0f259e
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
2020-07-24 17:26:51 +02:00