summaryrefslogtreecommitdiffstats
path: root/src/plugins
Commit message (Collapse)AuthorAgeFilesLines
* Enable tests to turn off Windows Vista animationsVolker Hilsheimer2022-03-162-7/+24
| | | | | | | | | | | | | | | | | Animations in that style depend on the current time, which makes it impossible to run baseline tests. Introduce a dynamic property that allows us to set the time that animations use. This way, tests can turn the animation off, or control which time should be used. To keep performance overhead low, check only once whether the dynamic property is set at all. Change-Id: I9bc57b9867fb0d852e101570eca4c7609e7fe1a8 Reviewed-by: Eirik Aavitsland <eirik.aavitsland@qt.io> (cherry picked from commit 58a14d943353f02bfbee0a65f5e31c40358c8c53) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Android: guard against potential null pointer accessAssam Boudjelthia2022-03-152-18/+24
| | | | | | | | | | | | | androidPlatformIntegration might be called before setAndroidPlatformIntegration() is called, and also all other uses of androidPlatformIntegration is already guarded in our code. Task-number: QTBUG-100470 Change-Id: Ifd7d36ba7f2f3b55652466825d7fd84c87ec5e19 Reviewed-by: Ville Voutilainen <ville.voutilainen@qt.io> (cherry picked from commit 66961346448c72102ba7258eec17b77ca0b7a859) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* vulkan: Try loading libvulkan.so.1 firstLaszlo Agocs2022-03-142-2/+2
| | | | | | | | Change-Id: I876899fbfc126136f2842e9361e21ac10af8f14b Fixes: QTBUG-101592 Reviewed-by: Andy Nichols <andy.nichols@qt.io> (cherry picked from commit 888b75aa12e2cf35ee760bcf5cb1ed60fe0c0770) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Revert "QScreen_win: retrieve user friendly monitor name"Morten Johan Sørvig2022-03-141-15/+4
| | | | | | | | | | | | | | | This made the screen names be non-unique (in my case “28E850”), which causes the code in handleScreenChanges() to think they are the same screen. This reverts commit e9fd1c6aab28f027760da76ebc154f0ff9aefcf8. Change-Id: I97fb76aeb66857b4bf9b3c5b4bd6db6024446798 Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io> Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io> Reviewed-by: Yuhang Zhao <2546789017@qq.com> (cherry picked from commit 851dc581cf9a7672f4fa6a1235e3cd58e7411233) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* wasm: Use % instead of vh for canvas dimensionsAleksandr Reviakin2022-03-141-1/+1
| | | | | | | Fixes: QTBUG-95067 Change-Id: I19e439eb81200728c2b773ab6799bb205caa1231 Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io> (cherry picked from commit 367f96aedf006d23c05dc7c8a565f6d4ad30fa72)
* Fix quick file dialog on androidSamuel Mira2022-03-141-0/+2
| | | | | | | | | | | | | | | | | Patch 13399bd54d084ed837ec061ca9315dbd173f3b48 removed the accept handler on QQuickFileDialog, which was triggering setSelectFiles on android. So changed qandroidplatformfiledialoghelper to also emit currentChanged which will trigger the QQuickFileDialog to setSelectFiles since there is a connect to that signal. Emitting currentChanged signal is also the signal used in others QPlatformFileDialogHelpers. Fixes: QTBUG-101013 Change-Id: I22f2d583f4be26a83e1c19190458fb5011e40095 Reviewed-by: Assam Boudjelthia <assam.boudjelthia@qt.io> Reviewed-by: Mitch Curtis <mitch.curtis@qt.io> (cherry picked from commit 2edc0025fa6d5a0f9c1c0d3811fac4bd8f3831c9) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Fix deprecated uses of QScopedPointerMårten Nordheim2022-03-101-4/+6
| | | | | | | | | | By changing it to unique_ptr. Change-Id: I91abb69445b537d4c95983ae735341882352b29d Reviewed-by: Marc Mutz <marc.mutz@qt.io> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> (cherry picked from commit 034d8898f8166423db085da529787e56204c8e15) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* QNX: Fix compiler warning by adding default return valuePasi Petäjäjärvi2022-03-101-0/+2
| | | | | | | | | | | | In static member function 'static QQnxAbstractVirtualKeyboard::EnterKeyType QQnxAbstractVirtualKeyboard::qtEnterKeyTypeToQnx(Qt::EnterKeyType)': warning: control reaches end of non-void function [-Wreturn-type] Task-number: QTBUG-101382 Change-Id: If3b0eda5d36257b0fbed54fb0a032c3b9d7ff989 Reviewed-by: James McDonnell <jmcdonnell@blackberry.com> (cherry picked from commit f5f6487e80e286df7002ea982f0526f3e7e39aff) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* QNX: Fix compiler warnings by using correct format specifiersPasi Petäjäjärvi2022-03-101-4/+4
| | | | | | | | | | | | | | | | Also change qt_safe_read to use correct return value. warning: format '%d' expects argument of type 'int', but argument 3 has type 'size_t' {aka 'long unsigned int'} [-Wformat=] warning: format '%u' expects argument of type 'unsigned int', but argument 3 has type 'ssize_t' {aka 'long int'} [-Wformat=] Task-number: QTBUG-101382 Change-Id: I1ee42b84a477451a98838c8cea3cca7c73f7cbaa Reviewed-by: James McDonnell <jmcdonnell@blackberry.com> (cherry picked from commit b680ae34423243a69ca48b2db399079080189e79) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* eglfs: QNX uses own QPA plugin and not eglfsPasi Petäjäjärvi2022-03-102-14/+0
| | | | | | | | | | | | | | | | | Remove compilation workarounds to get rid of warnings as those QPA plugins are not supported by QNX. warning: cast from 'void*' to 'EGLNativeDisplayType' {aka 'int'} loses precision [-fpermissive] warning: invalid conversion from 'EGLNativeDisplayType' {aka 'int'} to 'void*' [-fpermissive] Task-number: QTBUG-101382 Change-Id: I515708a8869498eb91df4fcba85a7b751d13a25c Reviewed-by: Rafael Roquetto <rafael.roquetto@qt.io> Reviewed-by: James McDonnell <jmcdonnell@blackberry.com> (cherry picked from commit fc1487878be07a2ead29def1bb35631119eeaa0e) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* QCocoaFileDialogHelper: Always enable symlinks and aliases to directoriesWilliam Jones2022-03-081-1/+6
| | | | | | | | | | | | | | We always enable directories, so that the user can navigate into them, so we should do the same for symlinks and aliases to directories. This is the same behavior the native dialog has when not implementing shouldEnableURL and relying purely on allowedFileTypes. Fixes: QTBUG-28379 Change-Id: I7ae4eb8120aa87cb685f3561d5e1c7257b0c9349 Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io> (cherry picked from commit 87725ee75981ec9ab25456c41acc74681c85ae2e) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* QIOSFileDialog/QIOSDocumentPickerController - handle dismissed view controllerTimur Pocheptsov2022-03-052-1/+18
| | | | | | | | | | | | | | | | | | | When we use a native view controller for selecting documents, we have two methods to implement from UIDocumentPickerDelegate (a file was selected or the selection was cancelled). Unfortunately, swiping a view away was not handled, so neither 'accept' nor 'reject' was called. Depending on the classes using QIOSFileDialog, this may leave them in some incorrect state, not knowing that they are 'closed' anyway. As suggested by Tor Arne, the solution is to implement UIAdaptivePresentationControllerDelegate's method, namely -presentationControllerDidDismiss:, which never gets called if the controller was dismissed programatically (the case of accept/reject). Fixes: QTBUG-93505 Change-Id: I28404aa280465ef8eb0f5c26c8c2e4e4a6c66641 Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io> (cherry picked from commit bb30beb72642bf7c33f502f81e0dc7f4951ba8ec) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Android: terminate argv passed to main() with nullptrAssam Boudjelthia2022-03-051-4/+6
| | | | | | | | | | | | | the char array of argv passed to the app's main() function need to be null terminated [*] and argv to be **char. [*] http://eel.is/c++draft/basic.start.main#2 Fixes: QTBUG-101028 Change-Id: I6e3a685f092a92a94f60d166357b75d2538af74c Reviewed-by: Ville Voutilainen <ville.voutilainen@qt.io> (cherry picked from commit daf7f07c1bb00028d7bce6b030f5ade8c4d0da59) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Android: set all QScreen's geometry-related parameters togetherIvan Solovev2022-03-045-11/+48
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Screen has 3 parameters: - physical size - screen size (or screen geometry) - available geometry Before this patch, they were reported in 3 different methods. Screen size update and available geometry update both were generating the "screen geometry changed" event, that updated the user-visible parameters. As a result, at some point we could end up in an intermediate state, when screen size was already updated, but available geometry was not yet updated. This was specially visible while changing the screen orientation: at some point screen geometry could be reported for the new orientation, while the available geometry - still for old orientation. This patch introduces a new method to set all geometry-related parameters together and generate only one "screen geometry changed" event. This allows to maintain consistency between 'geometry' and 'availableGeometry' properties of QScreen. Task-number: QTBUG-94459 Change-Id: I844f6d0db87df8d5e6e9bcce5d27126384a5a0de Reviewed-by: Assam Boudjelthia <assam.boudjelthia@qt.io> (cherry picked from commit 285ea132861f8b8d1b5d1ea0f966c141da985953) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Android: make sure that orientationChange is reported after resizeIvan Solovev2022-03-043-4/+17
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | On Android orientation changes are reported from the DisplayListener.onDisplayChanged() method, while the screen size changes are reported from QtLayout.onSizeChanged(). In practice these callbacks come in random order, so rotating the screen multiple times might result in inconsistent order of signals and events. This patch makes sure that size change events always happen before orientation changes. This is done by caching the new orientation values and reporting them only when needed. At this point we also need to use QMetaObject::invokeMethod() for orientation change, like it is done for geometry change. Otherwise the orientation update can still be processed earlier than the geometry change. Also note that at some point we might get an orientation change without a size change (for example Qt::LandscapeOrientation -> Qt::InvertedLandscapeOrientation). That is the reason for isSimilarRotation() helper function. As a drive-by: ignore size changes with inconsistent values when window size is reported to have old orientation, while the screen has already been rotated. In such cases a new size change will be triggered shortly with normal value. Task-number: QTBUG-94459 Change-Id: I5c98e526d0370d380344b2297169d5e0c0ee8ea7 Reviewed-by: Assam Boudjelthia <assam.boudjelthia@qt.io> (cherry picked from commit 79fb80152ff29a30faa3f0cce79a602e36cadbeb) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* xdgdesktopportal theme: Implement appearance()Magnus Groß2022-03-042-0/+55
| | | | | | | | | | | | | | | | | | | We can use the new org.freedesktop.appearance color-scheme setting in the XDG Desktop Portal Settings to implement this in a DE-independent way. In the future we can also use the related "SettingChanged" signal in the Desktop portal to support changing the theme during runtime. Useful links: Spec: https://github.com/flatpak/xdg-desktop-portal/blob/d7a304a00697d7d608821253cd013f3b97ac0fb6/data/org.freedesktop.impl.portal.Settings.xml#L33-L45 Blog post: https://blogs.gnome.org/alexm/2021/10/04/dark-style-preference/ Task-number: QTBUG-93955 Change-Id: Ia5df22fb215ee94d68d2787da97a1c9f8f2c6b0c Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io> (cherry picked from commit 3c6b61a6e14962969e7e9dc5909cd746e38f8de7) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Windows QPA: fix window style correction for context help buttonYuhang Zhao2022-03-031-3/+8
| | | | | | | | | | | | | | | According to Microsoft Docs [1][2], WS_MINIMIZEBOX and WS_MAXIMIZEBOX must be accompanied by the WS_SYSMENU style, and the WS_EX_CONTEXTHELP style is not compatible with WS_MINIMIZEBOX and WS_MAXIMIZEBOX. This patch adds additional checks for these situations. [1] https://docs.microsoft.com/en-us/windows/win32/winmsg/window-styles [2] https://docs.microsoft.com/en-us/windows/win32/winmsg/extended-window-styles Change-Id: If32f8b42e25cfc67ffd1e84cc4b061f21a01042a Reviewed-by: André de la Rocha <andre.rocha@qt.io> (cherry picked from commit 7261c811528c4c05e3abbf4e30e8f0ad668921bb) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Windows QPA: Add some offset to the system menu when appropriateYuhang Zhao2022-03-031-1/+23
| | | | | | | | | | | | | | | | | Before this patch, the system menu will always appear on the top-left corner of the window if the window doesn't have the standard window frame. However, this doesn't look very good on most situations, especially when the window has a homemade title bar. This patch adds an extra check for this kind of situations. This patch will automatically apply an appropriate offset for the system menu if the user is trying to use a self-made title bar for their frameless or customized windows. Change-Id: I55e1c4ac26a4051ca48928d4a2ac3456dce117d1 Reviewed-by: André de la Rocha <andre.rocha@qt.io> (cherry picked from commit 77d0ad6657997b24e760f9a510676c08fc952eca) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Windows QPA: Add convenient overload to query window frameYuhang Zhao2022-03-032-0/+11
| | | | | | | | | | | | | To be used in a later commit. As a drive-by, return early in the frameOnPrimaryScreen overload to avoid calling GetWindowLong in cases we don't need them. Change-Id: Ia69f4acbbf3e044073f818f357e614d4c6680d21 Reviewed-by: André de la Rocha <andre.rocha@qt.io> (cherry picked from commit 540745e599517a8c821d0bde2246a3407b95a4ee) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Close WASM popups on non-accepted clicksDavid Skoland2022-03-021-1/+5
| | | | | | | | | | | Generally, all clicks that weren't in a window or weren't handled should trigger a closing of all popups. Fixes: QTBUG-90990 Change-Id: I40e6351b265e95e0570e7c5d42f3d5b222538453 Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io> (cherry picked from commit 0e64165c2e7b14502a578f3508e5544b035e404e) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* macOS: Remove code for handling logical DPI changesTor Arne Vestbø2022-03-022-8/+1
| | | | | | | | | | | The logical (base) DPI is always 72 on macOS. Change-Id: Ibf9894fdc78d2af2d9949b29dd19ae9e8f2201c7 Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io> Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io> Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io> (cherry picked from commit 745893997a4311d45309f0db8eb50de86539bd66) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* png/ico decoder: Don't try reading beyond the fileRobert Löhning2022-03-021-2/+4
| | | | | | | | | | This fixes oss-fuzz issue 44955. Change-Id: Ie74ae037630f83e64fd0678ff2eac579f35d02b8 Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Eirik Aavitsland <eirik.aavitsland@qt.io> (cherry picked from commit 27fae7207fabc5bd5e34beab0cfeedfc8b8ede78) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* xcb: fix a typo for WindowTypesLiang Qi2022-03-021-1/+1
| | | | | | | | Fixes: QTBUG-101306 Change-Id: If02fe4997d27b952886ce664133d1aafc2b41669 Reviewed-by: Liang Qi <liang.qi@qt.io> (cherry picked from commit cfc2e267a4ed8cc724577d1b96f0d12bb45bfbfa) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Android: Fix issue in loading multimedia Android pluginSamuel Mira2022-03-021-13/+2
| | | | | | | | | | | | | | | Qt projects on Android were failing to correctly load the plugin lib. The main reason is missing environment variables when the media integration starts. To make sure that the variables are loaded, I have change the setenv to be done in the java side instead of c++ side. Fixes: QTBUG-100299 Change-Id: Iba0b6af40574be2d88824ebdcfb1626335cecf09 Reviewed-by: Rami Potinkara <rami.potinkara@qt.io> Reviewed-by: Ville Voutilainen <ville.voutilainen@qt.io> Reviewed-by: Assam Boudjelthia <assam.boudjelthia@qt.io> (cherry picked from commit fef455999aa2930289137115ab446761cd4b40db) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* xcb: free a randr monitors pointer after usageLiang Qi2022-03-011-0/+1
| | | | | | | | | | This amends 9a4c98e55659b32db984612e6247ac193812a502. Fixes: QTBUG-101302 Change-Id: Ia7a2f82550843a90a5e101788e3835bf3332f697 Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io> (cherry picked from commit 404c5dc49fca9fdded44df6e7810d3ac8cdd970e) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Windows QPA: Use less magic numberYuhang Zhao2022-03-011-19/+21
| | | | | | | | | | | | | | | | | | | | The correct calculation of the invisible frame margin and the window border width (they are the same thing actually) is the thickness of the size frame plus the thickness of the padded border. When DPI is 96, both of them is 4px and thus the invisible frame margin and window border width is 8px. So previously the empirical magic number can work normally is because the error is very small. It's not a big thing because even on a high DPI screen the error is still very small. For example, on my 4K monitor with 200% scaling, the error is only 2px, human eyes almost can't find the visual difference. But since we now know how to calculate these values correctly, let's use the correct calculation instead. The magic numbers and empirical expressions just make people confused. Change-Id: Ieda4796231935f2ad1b6f28e4aa4af5b5bce2256 Reviewed-by: André de la Rocha <andre.rocha@qt.io> (cherry picked from commit 770ea68588f954b8465276908bdfeeb6bcf550e8) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* QMacStyle: fix tool buttons (in checked mode)Timur Pocheptsov2022-02-281-3/+8
| | | | | | | | | | | | | | | | | | While switching to the 'momentary push in' button type, the old code that shows button as pressed/checked was removed. Since 'square' buttons were sharing this part with rounded push buttons, the change broke checked square buttons. So we retain the old code for this particular case. Also, add a minimal baseline test for this scenario: square button, triggering 'toolbutton' style with/out 'checked' state. Fixes: QTBUG-100802 Change-Id: Ib7b15b13ead834c7bb2cd36de76ccd5bedb07810 Reviewed-by: Axel Spoerl <axel.spoerl@qt.io> Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io> (cherry picked from commit af05f278ed236e0f699e0af79524cf55054ba49f) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Windows QPA: Calculate window frame for frameless windows the same for all ↵Viktor Arvidsson2022-02-252-17/+23
| | | | | | | | | | | | | | | | | | | | | | | code paths When we add the WS_THICKFRAME/WS_CAPTION window flags to a frameless window the return value of AdjustWindowRectEx is no longer 0. This works fine when creating the window since the version of QWindowsGeometryHint::frame used during creation checks the FramelessWindowHint, however later when the window changes screen, the screen change code checks the fullFrameMargins which uses a version of QWindowsGeometryHint::frame that does not early out, causing a missmatch in the geometries of the backing store and platform window. This fixes aero snapping shortcuts for frameless windows on multi monitor setups. Fixes: QTBUG-84466 Change-Id: I2357ea32669e4676645549996a3ac6073f3df15c Reviewed-by: André de la Rocha <andre.rocha@qt.io> (cherry picked from commit cfe421cee2d4f56180280ecd9da8c3da6a980b84) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Windows QPA: More debug enhancementsYuhang Zhao2022-02-251-12/+61
| | | | | | | | Change-Id: Ibf03fa82f14cf704267b85348ce11ee2d505ff24 Reviewed-by: André de la Rocha <andre.rocha@qt.io> Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io> (cherry picked from commit 56fa390d7228b789b84a27ccef05a54ecca6d1d5) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Windows QPA: Highlight the first entry in the system menuYuhang Zhao2022-02-251-1/+9
| | | | | | | | | | This is what native Win32 applications usually do. Change-Id: I19f1170113b4064f1d683dbd13b7de7d263105f0 Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io> Reviewed-by: André de la Rocha <andre.rocha@qt.io> (cherry picked from commit 64d65a645c3f64c6b317aed571366bc049c1cd25) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Protect headers against min/max macrosMarc Mutz2022-02-241-1/+1
| | | | | | | | | | | | ... using the usual pattern, which, being idiomatic, doesn't need a comment explaining it. Change-Id: Id6b12450495a18f89e1f83f2018b6218b03ff6a7 Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io> Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Edward Welbourne <edward.welbourne@qt.io> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> (cherry picked from commit b727f2190fb4878aad5edf1536e875e1b75907ae)
* Remove unused variable which causes compiler errorPiotr Srebrny2022-02-221-1/+0
| | | | | | | Change-Id: I87348370d10d2047e8fa861d7675bc0cd3db080b Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io> (cherry picked from commit 87610786290e4acf1a60014544df6fc4d3a33099) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Install 3rdparty headers for static buildsMichal Klocek2022-02-221-84/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | For static builds we need 3rdparty headers to be installed. Leaf modules like qtwebengine needs 3rdparty libs and header for zlib, freetype, harfbuzz, png, jpeg. Without those the Chromium bundled versions are used, however it might end up badly if qt has already bundled one. Introduce new header only modules with additional arguments for qt_internal_add_module: * EXTERNAL_HEADERS to pick exactly which headers are public * EXTERNAL_HEADERS_DIR to include whole directory preserving the files directory structure Fix qtsync so it keep directory structure for all non-qt modules when syncing headers and do not generate warnings for headers files. Task-number: QTBUG-87154 Task-number: QTBUG-88614 Change-Id: If1c27bf8608791cd4e0a21839d6316a445a96e9f Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io> Reviewed-by: Alexey Edelev <alexey.edelev@qt.io> Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> (cherry picked from commit be2745e4788cecb0d3122081e3328e4b66923609)
* Always include qt_windows header firstVolker Hilsheimer2022-02-224-3/+4
| | | | | | | | | | | qt_windows takes care of setting NOMINMAX, which prevents native headers from defining `min` and `max` as macros, breaking the build. So include that header always as the first header. Change-Id: I82cd8b21d263102000e6e66f135465bc2c126db4 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io> (cherry picked from commit 29a7489769bca59630782061789561fb07d77892) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Make Droid Sans Mono available as fixed font for all Android stylesAndreas Buhr2022-02-221-0/+5
| | | | | | | | Fixes: QTBUG-87405 Change-Id: I54ebc06c82c32acd0383ea5fedf78acce4e11977 Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Assam Boudjelthia <assam.boudjelthia@qt.io> (cherry picked from commit d4561029621a5891f05281560178063104b8f4a2)
* Windows: use QSystemLibrary instead of LoadLibrary directlyAndy Shaw2022-02-182-7/+14
| | | | | | | | | | | | | Using QSystemLibrary ensures that it will only use the expected copy of the system library and not one that has been placed in the application's working directory or elsewhere in the PATH environment variable. Change-Id: Ic4234334f73482b38ee5f06345bf11f8c029edc5 Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> (cherry picked from commit a14f2d59141e05d4c8e116895e918638b920611d) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Fix UI mismatch when QPrinter::setDuplexZhang Hao2022-02-182-3/+9
| | | | | | | | | | | | | | | | | | | Amends fa854f214a3c812e5548ff55d179dd07ef99053b. If user call QPrinter::setDuplex method, the QPrintDialog explicitDuplexMode value won't update. Fix this by: 1) handle device-specific default and value set in QPrinter in QCupsPrintEngine(Private) 2) handle the explicitly user-selected value in QPrintDialog(Private) Done-with: Michael Weghorn <m.weghorn@posteo.de> Fixes: QTBUG-99504 Change-Id: I1a471a8554e83aa4bec8bb95fcc95f9135b0ac8c Reviewed-by: Michael Weghorn <m.weghorn@posteo.de> Reviewed-by: Lars Knoll <lars.knoll@qt.io> (cherry picked from commit 72931f492092a67c39cd7fb124d54e8752ee4933) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Android A11Y: Fix value roundingIvan Solovev2022-02-151-2/+44
| | | | | | | | | | | | | | | | | | | | | | | | QAccessibleInterface stores values as QVariants. When dealing with double values, as a result of some calculation (for example, Slider value update), rounding errors can be introduced. When converting double values to QString using QVariant::toString(), these rounding errors result in strings like 0.30000000000000004 instead of 0.3 or 2.7755575615628914e-17 instead of 0.3 - 3 * 0.1 and similar zeroes. To fix this issue, this patch introduces a custom conversion for floating-point values. The idea is to convert QVariant to double, and then convert double to QString using 'f' format and a suitable precision, determined from the UI element's minimumStepSize(), if it has one, otherwise falling back to QString::number()'s default (which is 6). Task-number: QTBUG-93396 Change-Id: Ia5ca7345812e39629e9c191b6d8b896a8f51de80 Reviewed-by: Edward Welbourne <edward.welbourne@qt.io> Reviewed-by: Assam Boudjelthia <assam.boudjelthia@qt.io> (cherry picked from commit 60799fc14134472913af4b3ab87b6160bd46056d) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Android A11Y: Announce value together with element name when focusedIvan Solovev2022-02-151-3/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | Before this patch when we focus a new element, only its description was announced. For elements like Slider that means that if it had no accessible name or description, its value would be announced (all is fine here). But if the slider is defined like that: Slider { Accessible.name: "int slider" value: 5 from: 0 to: 20 stepSize: 1 } only the name ("int slider") will be announced, but not the actual value. This patch fixes the logic of content description generation. If the element has value, then it is added to the description and announced as well. Task-number: QTBUG-93396 Change-Id: Ia8667149ebd867945c5f57d951fd6ade0f382598 Reviewed-by: Rami Potinkara <rami.potinkara@qt.io> Reviewed-by: Assam Boudjelthia <assam.boudjelthia@qt.io> (cherry picked from commit a374d59abc415eee1866322176b7762158f48abd) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Android A11Y: handle valueChanged eventsIvan Solovev2022-02-155-3/+40
| | | | | | | | | | | | | | | | | | | | | | Before this patch Android A11Y implementation was missing ValueChanged event handling. As a result, no update was given when the element's value was changed. Handling these events allows us to announce value changes on such objects like Slider, SpinBox, etc... This is a universal method of value-change announcement, so it supports all sorts of A11Y gestures. On the Java side a new function was introduced to announce the values, because we need to use the actual element's *value*, not its accessible name or description. Task-number: QTBUG-93396 Change-Id: Ic44abd5f01b9b6f5468962131466edaf6a49d498 Reviewed-by: Assam Boudjelthia <assam.boudjelthia@qt.io> Reviewed-by: Rami Potinkara <rami.potinkara@qt.io> (cherry picked from commit b238f83380dcaa2830999a8f413f4b648db80beb) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Windows QPA: Correct mistake when calculating minmaxinfoViktor Arvidsson2022-02-141-1/+1
| | | | | | | | | | | | | | | | Amends 46e9852a1d04357c98b2c62338e1e2af0de9b486 The previous code would fail if the windows taskbars are placed to the top or left on the screen. The mistake was missed because Windows seems to adjust the window position automatically in case the window handles WM_NCCALCSIZE and returns 0, which was the case for me. Task-number: QTBUG-51327 Change-Id: I38ef974f7518be63a0bacf080f3359c219284078 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io> (cherry picked from commit 7794421bea8550d16ad6209536909931709045bb) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Windows QPA: Fix frameless maximize on secondary screensViktor Arvidsson2022-02-121-13/+11
| | | | | | | | | | | | | | | Frameless windows shouldn't cover the taskbar when maximized. This has been fixed for the main screen in the past but did not work for secondary screens. According to the code the MINMAXINFO is only available for the main screen but I believe this is a misunderstanding of the Windows documentation. Besides we use QScreen::availableGeometry() which seems to be correct. Fixes: QTBUG-51327 Change-Id: Ib2205c480359d1a870dcfcf0312fbe417f650e28 Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io> (cherry picked from commit 46e9852a1d04357c98b2c62338e1e2af0de9b486) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Fix compiling with C++20 on macOSAllan Sandfeld Jensen2022-02-101-2/+2
| | | | | | | | | | | | This code triggers warnings about mixing enums of different types, which breaks compiling with warnings-are-errors. 'bitwise operation between different enumeration types is deprecated' Change-Id: Ib6c19f02f7c7593c9e22da5e648ea1f2f2ae757b Reviewed-by: Marc Mutz <marc.mutz@qt.io> (cherry picked from commit 8d714c0c692d03c312f530c27c336c33a94d6ce0) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Change comparison data type to fix int overflowSivan Nanthiran2022-02-101-3/+3
| | | | | | | | | | | | | | Since the value returned by CGDisplaySerialNumber is uint32_t, comparing it with a long data type can cause overflow when the value is greater than or equal to 2^31. And since this is a serial number, in some machine this value can be greater than 2^31. In those machines, QScreen::name will be empty due to the failed check here. Change-Id: Ia037ba9e7a6d8025cc4b41c1b428eba38455330d Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io> (cherry picked from commit cb9ef46c77e0faf78658831063d0e1cc3255e30c) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* macOS: Prevent recursion when modifying the edit menuVolker Hilsheimer2022-02-091-1/+8
| | | | | | | | | | | | | | Amends d42cfeb84faf154b46f2811b2059946b396fcc12, which would result in infinite recursion when the Edit menu was populated and added to the menubar after the menubar has been shown. Add a macOS-only test case that reproduces the crash without the fix. Fixes: QTBUG-100441 Change-Id: I018a7aa7f01558a3b9732b4d6d96a911dc7fbd19 Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io> (cherry picked from commit 851143eff14dd732fea6be10b96c0bfc798cd629) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Android A11Y: execute C++ code on main Qt threadIvan Solovev2022-02-094-47/+191
| | | | | | | | | | | | | | | | | | | | | | | The C++ code, which is called from Java, was executed on Java thread. However Qt has its own main GUI thread, where all GUI elements and their accessibility instances are created. As a result we have threading issues when accessing A11Y objects from Java thread. This patch uses QMetaObject::invokeMethod calls to dispatch all the critical parts of the C++ code to the main thread. It uses BlockingQueuedConnection, so that Java thread can still use these methods synchronously. The proper context is based on the m_accessibilityContext object, which is created as a child of the base accessibility QObject of the application (which is the QGuiApplication instance in most cases). Task-number: QTBUG-95764 Change-Id: Iff4f3f2645657f6aca426fa19ccc86a2cbe4d4d0 Reviewed-by: Assam Boudjelthia <assam.boudjelthia@qt.io> Reviewed-by: Jarkko Koivikko <jarkko.koivikko@code-q.fi> (cherry picked from commit e0c61193ea8f6462192d2ef7f1d48d8fa3e38c99) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Android: extract parentId for hidden object in advanceIvan Solovev2022-02-093-4/+9
| | | | | | | | | | | | | | | | | | | This commit amends 850a7f1238e84b6960a84e12687e40cf939a44d9. We can't extract the parentId for the hidden object on Java side, because the Java call is executed in a separate thread, so the original hidden object can be destroyed somewhere in the middle of parentId() call. As a workaround, we get the parentId in advance, on C++ side, and pass it as a parameter to JNI function. Task-number: QTBUG-95764 Change-Id: Ied2ab4ab39b947f3f582575cf77cc76fbac9e274 Reviewed-by: Jarkko Koivikko <jarkko.koivikko@code-q.fi> Reviewed-by: Jan Arve Sæther <jan-arve.saether@qt.io> Reviewed-by: Rami Potinkara <rami.potinkara@qt.io> Reviewed-by: Assam Boudjelthia <assam.boudjelthia@qt.io> (cherry picked from commit 6d00aac1092d813446a44fbb234995733233f003) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* QMacStyle::standardIcon - use the real file nameTimur Pocheptsov2022-02-091-1/+1
| | | | | | | | | | | | When converting to cmake, aliases from the (now deleted) qstyle.qrc were omitted and now we have to use the original names. Fixes: QTBUG-100317 Change-Id: Ieb83e95c62f10c0e2193602e4c12c5fc1667e15a Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io> Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io> (cherry picked from commit 8247c0dac3a54c838385c5d10eaabc1a084993ea) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* xcb: Show valuator atom names properly in categorized loggingShawn Rutledge2022-02-091-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | During a touch update, this looked questionable since I don't have any barcode readers or buttonboxes attached: XI2 touch event type 19 seq 1481 detail 193 pos 116.3, 77.8 root pos 6476.3, 2941.8 on window 3e00006 valuator BARCODE value 47796.365791 from range 0.000000 -> 65535.000000 valuator BUTTONBOX value 59504.858830 from range 0.000000 -> 65535.000000 touchpoint 193 state QEventPoint::Updated pos norm QPointF(0.729326,0.907986) area QRectF(... After the fix it's like this: XI2 touch event type 19 seq 1235 detail 201 pos 154.0, 64.3 root pos 6168.0, 2794.3 on window 5000006 valuator Abs MT Position X value 45520.589958 from range 0.000000 -> 65535.000000 valuator Abs MT Position Y value 56519.790001 from range 0.000000 -> 65535.000000 touchpoint 201 state QEventPoint::Updated pos norm QPointF(0.6946,0.862437) area QRectF(... ValuatorClassInfo's QXcbAtom::Atom is a Qt enum, which has to be converted to xcb_atom_t before we can call xcb_get_atom_name_name. Originally in ce2fe90faad84a6e3a976a6f111a0fa4883937d9 vci was of type XIValuatorClassInfo; then 7499d4404f9eb7223674cd0523f35eff1be7c1c9 changed it to our ValuatorClassInfo struct, but didn't add the lookup indirection to this qCDebug. Change-Id: Ib6107f17d6c6c209573e3df54149d6cfffc0b8b6 Reviewed-by: Liang Qi <liang.qi@qt.io> (cherry picked from commit 49d30801553c18a5ec8a671eade2979da5a3aa1b) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* macOS: Use native resize cursors for diagonal resizeViktor Arvidsson2022-02-031-4/+33
| | | | | | | | | | | | | The diagonal resize cursors provided by Qt does not quite look like the ones used everywhere else on macOS, especially for scaled desktops. After some googling this seems to be how everyone else uses the native versions since they are private API. Change-Id: I3461d07638f4e49cd3e25ab65ef5aa65730bb3a6 Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io> (cherry picked from commit 31b8a7e5ed6d480e793082066ca55a4d1a3728e7) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>