summaryrefslogtreecommitdiffstats
path: root/src/gui
Commit message (Collapse)AuthorAgeFilesLines
...
* rhi: d3d: Save a few cycles in bindShaderResourcesLaszlo Agocs2020-10-113-121/+144
| | | | | Change-Id: Ib11ea33eb695d4599f4f040415d497aaf19cb15b Reviewed-by: Andy Nichols <andy.nichols@qt.io>
* rhi: d3d: Calculate dynamic offset usage upfrontLaszlo Agocs2020-10-112-9/+17
| | | | | | | Also remove an unnecessary buffer type test. Change-Id: I6f8312f03d3fe1729fa9b2eb95f6bfbeeccd0d4f Reviewed-by: Andy Nichols <andy.nichols@qt.io>
* rhi: vk: Avoid shadowing local variableLaszlo Agocs2020-10-111-5/+6
| | | | | Change-Id: I7ad14ff05a1ff10113f5d3985662970d74e68ead Reviewed-by: Andy Nichols <andy.nichols@qt.io>
* rhi: vk: Skip buffer/texture registration on read-after-readLaszlo Agocs2020-10-111-6/+19
| | | | | Change-Id: I22027cfc227d3c09e446d193e6b2903b8df34eb2 Reviewed-by: Andy Nichols <andy.nichols@qt.io>
* rhi: gl: vk: Pre-calculate the flags for dyn.offsetLaszlo Agocs2020-10-114-48/+54
| | | | | | | ...instead of doing a loop in setShaderResources() just for this. Change-Id: Iac8d4517783967c6b8bca4926cceca918f7dcdec Reviewed-by: Andy Nichols <andy.nichols@qt.io>
* rhi: gl: d3d: Reduce the size of the Command structLaszlo Agocs2020-10-115-23/+36
| | | | | | | Copied by value so the size matters. Change-Id: I17eae99212801a4fb390a0e298b361123644d17d Reviewed-by: Andy Nichols <andy.nichols@qt.io>
* rhi: gl: Move some code out of the inner loopsLaszlo Agocs2020-10-111-4/+4
| | | | | Change-Id: I96c71ef45b93ab95250a2a3f0e9c10e8bc86d650 Reviewed-by: Andy Nichols <andy.nichols@qt.io>
* rhi: Add support for full, direct buffer updatesLaszlo Agocs2020-10-1113-6/+160
| | | | | Change-Id: I02c1f8c32c08d39cde9845d20ba8b02541d9d325 Reviewed-by: Andy Nichols <andy.nichols@qt.io>
* Make the named QColorSpace constructor thread-safeAllan Sandfeld Jensen2020-10-101-5/+24
| | | | | | | | | | Avoid accessing the shared pointer table without using atomic. Cleans up the shared table on exit for leak tracking utilities. Pick-to: 5.15 Change-Id: Ia2d6d79dea1c8be02bae2d8111e290f49eedf409 Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
* Fix a compile error on Android in debug buildsLars Knoll2020-10-091-2/+2
| | | | | | | Android uses -Werror,-Wsign-compare. Change-Id: I4e861ebd6ea00914223358629f8e898c2aa67cd0 Reviewed-by: Assam Boudjelthia <assam.boudjelthia@qt.io>
* Avoid double pixel-ratio scaling of dbus tray iconsAllan Sandfeld Jensen2020-10-082-10/+11
| | | | | | | | | | | QIcon::pixmap does automatic scaling to DPR by default, so use QIconEngine API to access internal pixmaps directly instead. Pick-to: 5.15 Task-number: QTBUG-83806 Change-Id: I3ccbed8387811a87bbea3f5d4ad9963e1be28a49 Reviewed-by: Dmitry Shachnev <mitya57@gmail.com> Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
* rhi: gl: Silence incorrect compiler warnings about uninitialized useLaszlo Agocs2020-10-081-3/+3
| | | | | Change-Id: I09bd22f3ccb1231ad4ef123f581459ef5c1ac37c Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* rhi: gl: Drop the unused WRAP_R memberLaszlo Agocs2020-10-082-5/+0
| | | | | | | | If we do not use it for anything, do not spend time on comparing and copying it either. Change-Id: I3632792847010e5b73c48eb1ca88f5806f3ccd45 Reviewed-by: Andy Nichols <andy.nichols@qt.io>
* rhi: gl: Fix missing texture bindingsLaszlo Agocs2020-10-081-5/+7
| | | | | | | | The block to update the cached state needs to be run also when the texture parameters have changed. Change-Id: Ifa80c142c6ff31c95a718a1a900ff3db0bbfe4bc Reviewed-by: Andy Nichols <andy.nichols@qt.io>
* Do not trigger actions disabled directly or on group levelAllan Sandfeld Jensen2020-10-081-2/+5
| | | | | | | | | | | Only allow actions disabled due not being visible to trigger, when enabled is not true. This matches QQuickAction behavior, and doesn't apppear to affect QtGui or QtWidgets. Change-Id: I1a00b80213598ef1560be4c9ee9e65cd6fa6d760 Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
* Another round of replacing 0 with nullptrAllan Sandfeld Jensen2020-10-079-11/+11
| | | | | | | | | This time based on grepping to also include documentation, tests and examples previously missed by the automatic tool. Change-Id: Ied1703f4bcc470fbc275f759ed5b7c588a5c4e9f Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* Rename the new platform APIs from QPlatformInterface to QNativeInterfaceTor Arne Vestbø2020-10-0721-146/+143
| | | | | | | | | | | | We were already using the 'native' nomenclature when referring to these kinds of APIs, e.g. when talking about native handles, or the existing QPlatformNativeInterface on a QPA level. Using 'native' for the user facing APIs also distinguishes them from the 'platform' backend layer in QPA and elsewhere. Change-Id: I0f3273265904f0f19c0b6d62471f8820d3c3232e Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io> Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* Rename Android offscreen surface interfaceTor Arne Vestbø2020-10-072-4/+4
| | | | | | | | The convention for these interfaces is to not have 'platform' in their name. Change-Id: I4af831861b58dcfc2538d4206788231b9ec3a766 Reviewed-by: Assam Boudjelthia <assam.boudjelthia@qt.io>
* CMake: Remove leftover debug outputAlexandru Croitor2020-10-061-2/+0
| | | | | | | Amends 07b6d3367debd8f15974abf0f5cdf48f0fe3a536 Change-Id: I8d5922af13903c6a10f967035bca70a89b19f86f Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* Un-special-case macOS in handling of QKeyEvent::nativeScanCode()Tor Arne Vestbø2020-10-063-7/+3
| | | | | | | | | | | | | | | | | | | | | | | In the porting from Qt 4 to Qt 5 an assumption was made in QKeyMapper that the underlying platform implementation needed the native scan code to be able to resolve the possible keymaps for an event. As a result, the macOS platform plugin started sending key events with a fake native scan code of 1, so that it would still be allowed to map key events. Which in turn led to the documentation of QKeyEvent::nativeScanCode() getting an exception for macOS. Let's clean up this by removing the original assumption, and leave it up to the platforms to decide what information from the key event is needed. QKeyMapperPrivate::possibleKeys() will still call extractKeyFromEvent as a fallback if the platform layer doesn't return any possible keys. Change-Id: I122a45bcec658c45ccc0b2c0671eb264d85d7be6 Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
* Convert a couple of APIs to use viewsLars Knoll2020-10-061-1/+1
| | | | | | | | | | | Try to get rid of APIs that use raw 'const {char, QChar} *, length' pairs. Instead, use QByteArrayView or QStringView. As QStringConverter is a new class, simply change the API to what we'd like to have. Also adjust hidden API in QStringBuilder and friends. Change-Id: I897d47f63a7b965f5574a1e51da64147f9e981f6 Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* CMake: Refactor optimization flag handling and add optimize_fullAlexandru Croitor2020-10-061-0/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Introduce a bunch of helper functions to manipulate compiler flags and linker flags for the CMAKE_<LANG>_FLAGS_<CONFIG> and CMAKE_<LINK_TYPE>_LINKER_FLAGS_<CONFIG> CMake variables. These variables can be assigned and modified either in the cache or for a specific subdirectory scope, which will apply the flags only to targets in that scope. Add qt_internal_add_optimize_full_flags() function which mimics qmake's CONFIG += optimize_full behavior. Calling it will force usage of the '-O3' optimization flag on supported platforms (falling back '-O2' where not supported). Use the function for the Core and Gui subdirectories, to enable full optimization for the respective Qt modules as it is done in the qmake projects. To ensure that the global qmake-like compiler flags are assigned eveywhere, qt_internal_set_up_config_optimizations_like_in_qmake() needs to be called after Qt global features like optimize_size and optimize_full are available. This means that qtbase and its standalone tests need some special handling in regards to when to call that function. Task-number: QTBUG-86866 Change-Id: Ic7ac23de0265561cb06a0ba55089b6c0d3347441 Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* Simplify QAction privatesAllan Sandfeld Jensen2020-10-062-76/+44
| | | | | | | | List primary and alternative key sequences and ids together, making the logic cleaner. Change-Id: I4eb07f9828f2b15dc66c34ceb2c4f800df73e800 Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
* Give QPlatformPlaceholderScreen a DPR of 1Morten Johan Sørvig2020-10-061-1/+0
| | | | | | | | | | | Use the default logicalDpi() implementation, which now returns logicalBaseDpi() and ensures a default device pixel ratio of 1. Change-Id: Idd408261c90b112a093c82695ff9e0078e90ac41 Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io> Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
* QColorSpace: tidiesGiuseppe D'Angelo2020-10-061-1/+1
| | | | | | | | It doesn't actually need Q_DECLARE_PRIVATE (it never uses Q_D), it just needs to give friendship to the private class. Change-Id: I32ac128118a0c319a374e510a18ccf0edf323da7 Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
* QColorSpace: remove a redundant declarationGiuseppe D'Angelo2020-10-061-1/+0
| | | | | | | The same function was declared, as friend, a few lines above. Change-Id: I28368202c68242f2d30d25bd38f2f0e530a60082 Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
* rhi: vk: Reduce memcopies with full dynamic buffer updatesLaszlo Agocs2020-10-051-1/+4
| | | | | Change-Id: Ifc754a639fcdb45a1b1b8721393de9356504342f Reviewed-by: Andy Nichols <andy.nichols@qt.io>
* Remove QPlatformScreen::pixelDensity()Morten Johan Sørvig2020-10-052-20/+0
| | | | | | | | | This function is no longer in use - Qt Gui now computes scale factors based on logicalDpi() and logicalBaseDpi() instead. Change-Id: Ieb4b75ef4e1563694a8e12b7cdd1f60c419d5bf2 Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
* Make the logicalDpi() default implementation return 96Morten Johan Sørvig2020-10-051-10/+5
| | | | | | | | | | | | | Remove the code which calculates physical DPI and call logicalBaseDpi() instead. This will make sure that Qt gets a device pixel ratio of 1.0 by default, for the cases where the platform plugin does not implement logicalDpi() itself. Task-number: QTBUG-87035 Change-Id: I08433c9465be03d27b3decccb0e2e7e5e6aff0ae Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
* Streamline the template specialization of QESDP's dtorGiuseppe D'Angelo2020-10-052-4/+3
| | | | | | | | | | | | | | | | | | | | | Declaring and implementing out of line a specialization for QESDP's destructor is needed if we have an implicitly shared type and we want to provide an inline move constructor for it. The code is however a bit heavy on the eyes, and the full implementation for the destructor must be provided (read: copy and pasted) -- the specialization destructor cannot just "reuse" the one from the primary template. This patch adds a few macros to streamline the above, so that we can start using the same pattern in more places. These macros are completely private for the moment being; we don't want to push this solution for our users. Port QPixmap to the new macros. Change-Id: Ia6a51ad988483e44c9d97c0eca2fb003b6bd21e3 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Use QStringTokenizer instead of QStringView::splitLars Knoll2020-10-051-2/+9
| | | | | | | | | | | This nicely optimizes a hot spot when our HTML parser was loading Qt documentation. This change improves the loading time of the Qt Concurrent overview page by 30%, both over the previous commit and 5.15. Fixes: QTBUG-86354 Change-Id: I4f401c2e6048096444e482c7724e3e3a6c71516e Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
* Don't store QTextHtmlParserNode by value in a QListLars Knoll2020-10-052-29/+34
| | | | | | | | | This is a performance bottleneck as the parse nodes are huge and we don't want to reallocate them all the time. Fixes: QTBUG-86354 Change-Id: Ia437acbb5b2c8af1723932d2cd96ba2ae48a871b Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
* CMake: enable egl_viv pluginsSamuli Piippo2020-10-051-0/+2
| | | | | | | | | Add needed define for egl_viv compile test and generate CMakeLists for the egl_viv plugins. Task-number: QTBUG-77809 Change-Id: I3b354faee36cbb85adcee895430eb5e8998108e1 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* Replace Q_DECL_UNUSED with [[maybe_unused]]Allan Sandfeld Jensen2020-10-032-168/+168
| | | | | | | Use C++17 attribute directly Change-Id: Id853e7a5117065e4adb549f81303c1820fe198ce Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Centralize the implementation of move assignment operatorsGiuseppe D'Angelo2020-10-0322-61/+34
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | At the moment we have two main strategies for dealing with move assignment in Qt: 1) move-and-swap, used by "containers" (in the broad sense): containers, but also smart pointers and similar classes that can hold user-defined types; 2) pure swap, used by containers that hold only memory (e.g. QString, QByteArray, ...) as well as most implicitly shared datatypes. Given the fact that a move assignment operator's code is just boilerplate (whether it's move-and-swap or pure swap), provide two _strictly internal_ macros to help write them, and apply the macros across corelib and gui, porting away from the hand-rolled implementations. The rule of thumb when porting to the new macros is: * Try to stick to the existing code behavior, unless broken * if changing, then follow this checklist: * if the class does not have a move constructor => pure swap (but consider ADDING a move constructor, if possible!) * if the class does have a move constructor, try to follow the criteria above, namely: * if the class holds only memory, pure swap; * if the class may hold anything else but memory (file handles, etc.), then move and swap. Noteworthy details: * some operators planned to be removed in Qt 6 were not ported; * as drive-by, some move constructors were simplified to be using qExchange(); others were outright broken and got fixed; * some contained some more interesting code and were not touched. Change-Id: Idaab3489247dcbabb6df3fa1e5286b69e1d372e9 Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
* Ignore mouse events where globalPos contains NaNSteffen Kieß2020-10-021-0/+5
| | | | | | | | | | | | | | A NaN value in globalPos can cause an endless recursion in QGuiApplicationPrivate::processMouseEvent() when e->enhancedMouseEvent() is true and this is not a move event. When an event contains a NaN in globalPos, print a warning and ignore the event. Pick-to: 5.15 Fixes: QTBUG-86207 Change-Id: I8789e465921789569715e52c98193f91945ea982 Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
* End touch->mouse synthesis when the chosen touchpoint is releasedShawn Rutledge2020-10-021-27/+33
| | | | | | | | | | | | | | | | During delivery of a TouchBegin event, if no widget accepts it, we begin treating the first touchpoint as a synth-mouse, as before. If a second touchpoint is pressed or released in any order, it's irrelevant: the fake mouse button is released as soon as the first touchpoint is released. This fixes the bug that such a scenario caused the mouse release not to be sent, so that a widget could get "stuck" in pressed state. Done-with: Tang Haixiang <tanghaixiang@uniontech.com> Fixes: QTBUG-86253 Pick-to: 5.15 Change-Id: I7fbbe120539d8ded8ef5e7cf712a27bd69391e02 Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
* rhi: Add a note to generateMips docsLaszlo Agocs2020-10-021-0/+7
| | | | | Change-Id: Ib07eef8944367948338075832452fdae6df6078a Reviewed-by: Andy Nichols <andy.nichols@qt.io>
* rhi: vk: Alter command buffer strategyLaszlo Agocs2020-10-023-131/+158
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Reports on the Web have it that there's nothing guaranteeing a driver does any actual freeing of resources then doing vkFreeCommandBuffer for a command buffer from a command pool that does not have VK_COMMAND_POOL_CREATE_RESET_COMMAND_BUFFER_BIT, thus leading to continuously growing resource usage with our current allocate/free pattern. It could be that this is the source of out of memory problems we are seeing on some Android devices. Instead of just going straight for said command pool flag and doing ResetCommandBuffer for the command buffers individually, take one step further and use per-slot (slot being 0 or 1 if QVK_FRAMES_IN_FLIGHT is 2) command pools. The current pool is reset in each beginFrame/beginOffscreenFrame, moving all allocated command buffers to the initial state (while other command buffers with the other pool are not affected). This may be (while impossible to tell from just guessing based on the spec) our best approach to command buffer allocation since a Vulkan implementation can likely just use some simple per pool allocator, knowing that we never want to free or reset individual command buffers, but we rather only reset the whole pool at once. The option of importing an existing VkCommandPool when creating the QRhi instance is now gone, but there was probably no point in offering that in the first place. When it comes to VK_COMMAND_POOL_RESET_RELEASE_RESOURCES_BIT it will not be set unless releaseCachedResources() (in Qt Quick this is hooked into QQuickWindow::releaseResources()) was called. What this does in practice is unknown, but have an option to set it now and then if the application really wants. While we are at it, rename secondaryCbs to activeSecondaryCbStack to indicate what it really is. (it's a stack as each call to beginExternal() pushes a new one, while each endExternal() pops) Change-Id: I2e5c1fad26d794e1f56c778e38f750998d706d84 Reviewed-by: Andy Nichols <andy.nichols@qt.io>
* rhi: gl: Best uniform is no uniformLaszlo Agocs2020-10-022-4/+84
| | | | | | | | | | | | | | | | | Artificial tests with tens of thousands of meshes drawn with the same program (graphics pipeline) and almost the same uniform values (the difference being in the normal and model and view matrices) do benefit - strongly depending on the GL implementation probably - from doing fewer glUniformNf[v] calls. Building on the fact that uniform location values will typically be an int value starting at 0 (not guaranteed of course, we just skip the smartness in that case), we can dedicate a small 16K block to keep track of float/vec3/vec3/vec4 values in the graphics and compute pipeline objects. Change-Id: I217c31ccdeb511b3e8b8286078d7fbde399c8e3b Reviewed-by: Andy Nichols <andy.nichols@qt.io>
* rhi: gl: Stop flooding with glVertexAttribPointersLaszlo Agocs2020-10-021-6/+26
| | | | | | | | | | | Artificial tests like the BechmarkDemo are full of drawing the exact same mesh multiple times in a row. These do not need respecifying anything related to vertex or index data. Also move the buffer binding out from the loop. Change-Id: I0f27a39fecebc7ca8e1fa635c63819f116867e19 Reviewed-by: Andy Nichols <andy.nichols@qt.io>
* rhi: gl: Skip rebinding the same index buffer in the same passLaszlo Agocs2020-10-021-1/+5
| | | | | | | | Already doing the same for GL_ARRAY_BUFFER, follow suit with GL_ELEMENT_ARRAY_BUFFER. Change-Id: I0cf44480abb3a60a44b316af2c09b2235f9f65e7 Reviewed-by: Andy Nichols <andy.nichols@qt.io>
* rhi: Make per-frame flags per-pass where appropriateLaszlo Agocs2020-10-0213-124/+196
| | | | | | | | | | | | | | | | | | | | ExternalContentsInPass becomes a per-pass flag now. Why is this beneficial? Because while Qt Quick has no choice for its render pass, not being able to guess if the application wants to do some native rendering in there, Quick 3D's render passes, all the ones that are under Quick3D's control, do not have native rendering from the application in them, and so using secondary command buffers with Vulkan is not necessary. Introduce something similar for compute and OpenGL. By knowing that none of the resources used in a pass are used with a compute pass (e.g. because we know that there are no compute passes at all) a small amount of time can be saved by skipping tracking buffers and textures because the only purpose of said tracking is to generate barriers that are relevant only to compute. Change-Id: I0eceb4774d87803c73a39db527f5707a9f4d75c1 Reviewed-by: Andy Nichols <andy.nichols@qt.io>
* rhi: gl: Attempt to reduce superfluous texture unit bindingsLaszlo Agocs2020-10-022-16/+58
| | | | | Change-Id: Iccfbe5fe8688245a5ff3f7d46a173638b362a3c8 Reviewed-by: Andy Nichols <andy.nichols@qt.io>
* Do not assert on invalid ICC curv tableAllan Sandfeld Jensen2020-10-012-17/+35
| | | | | | | | Reject invalid table data, do not assert it. Pick-to: 5.15 Change-Id: I1fdda4c735bb97bb93ac8f8654ac4cc5fada5389 Reviewed-by: Eirik Aavitsland <eirik.aavitsland@qt.io>
* Revert "Reimplement non-antialiased cosmetic pen"Allan Sandfeld Jensen2020-10-011-98/+193
| | | | | | | | | This reverts commit 81008ef4b91eac3f8ddcdad0aaf48b51135c4010. Reason for revert: Doesn't handle line-caps correctly. Change-Id: I0c77dbef6671fec326ec27f492ea3214054829ab Reviewed-by: Gatis Paeglis <gatis.paeglis@qt.io>
* Treat a double-click event as an update event with stationary pointShawn Rutledge2020-09-301-4/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | The sequence is still press, release, press, double-click, release. isBeginEvent() should not be true for a double-click event: the second click began with a normal MouseButtonPress, and the MouseButtonDblClick event is a way of sending updated state to tell the recipient that the second click was special, occurring within such spatial and temporal constraints that it can be interpreted as a double-click. It never has a different position either, because MouseButtonDblClick is a synthetic event occurring at the same position as the second press; so we might as well say its QEventPoint is Stationary. Together, these changes fix tst_controls::Basic::DelayButton::test_mouse in Controls 2, without any changes in qtdeclarative. In QQuickWindowPrivate::deliverPointerEvent(), if isBeginEvent() == true, it delivers to all items under the point position(s) first, and then if all _updated_ points were not accepted, it continues delivery to grabbers; whereas if isBeginEvent() == false, it delivers only to grabbers. isBeginEvent() and QEventPoint::state() are important to that algorithm. Amends 6d6ed64d6ca27c1b5fec305e6ed9b923b5bb1037 Task-number: QTBUG-87018 Change-Id: I95def9704652147540df5cc065354a0fe04ed626 Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io> Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
* Get rid of some #ifdef qt6Allan Sandfeld Jensen2020-09-307-38/+2
| | | | | | | | | None of this code is even compiled in qt6. Change-Id: I5891cc9459320083ad3908fcbf646f3ba75b8a4d Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io> Reviewed-by: Sona Kurazyan <sona.kurazyan@qt.io> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* CMake Build: Add direct2d CMake buildCristian Adam2020-09-301-1/+2
| | | | | | | | | Also fixed Direct 2D feature detection test for MinGW. Task-number: QTBUG-83932 Change-Id: I8c89aaa953d34de40fdf7b51e0859c791aeb38ef Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io> Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
* Emit QScreen::geometryChanged when the logical DPI changesFriedemann Kleint2020-09-302-6/+11
| | | | | | | | | | | | | | | | | | | | Add the missing call to QScreenPrivate::emitGeometryChangeSignals() along with an emission of physicalDotsPerInchChanged() since that is calculated from geometry and physical size. Rearrange the code in QGuiApplicationPrivate::processScreenGeometryChange() to prevent duplicate emissions of geometryChanged(), physicalDotsPerInchChanged() which this change would introduce. Amends 5290027e3bab75f14fc0a2b7c206594d9cb91e76. Pick-to: 5.15 Task-number: QTBUG-76902 Task-number: QTBUG-79248 Fixes: QTBUG-86604 Change-Id: I3dc2ec5ccd9c6413e92f9246242f323e8afc5e57 Reviewed-by: David Edmundson <davidedmundson@kde.org>