summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Logging: capture the backtrace closer to the user's entry pointHEADdevThiago Macieira37 hours2-33/+92
| | | | | | | | | | | | | | | Instead of deep inside the processing of the message pattern tokens. This reduces the number of uninlineable functions in release builds to 2. Experimentation shows that even in debug mode our overhead to backtrace() is just 2, despite the debugger's backtrace showing 3 frames -- the debugger is using QtCore's debug symbols and does know about the inlined function. As a nice side-effect, we capture the backtrace only once per message, not once per %{backtrace} token in the QT_MESSAGE_PATTERN. Change-Id: I01ec3c774d9943adb903fffd17b7d6de09167620 Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
* Logging: introduce QInternalMessageLogContext to hold current contextThiago Macieira37 hours4-43/+50
| | | | | | | | | | | | | | QMessageLogContext is a primitive type that may be extended in the future with more fields (it has been at version 2 since commit 6d166c88220ee09821b65fb2b711fa77a5312971, though that did not extend the struct's size). This introduces a QInternalMessageLogContext which is used in before all our calls to qt_message_output(). Currently there's no difference and no way to tell that the internal version is used. Change-Id: I01ec3c774d9943adb903fffd17b7d5abc0052207 Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
* QMenu: clear popup screen after exec()Axel Spoerl38 hours1-0/+1
| | | | | | | | | | | | | | | | 8cd7a3d4723ca414f3fe544704a0ccb752da94b8 remembered the current screen in QMenuPrivate::popupScreen. This QPointer member is not reset, after QMenu:exec(), which makes a re-used menu remember the wrong screen, if its next usage happens on another screen. Reset the member variable at the end of QMenuPrivate::exec(). This amends 8cd7a3d4723ca414f3fe544704a0ccb752da94b8. Fixes: QTBUG-118434 Pick-to: 6.7 6.6 6.5 Change-Id: I7457ca72166346f01cf71b2706ebc20ecd71173c Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* Add the note about data size to QByteArray::operator=(const char*)Alexey Edelev41 hours1-0/+3
| | | | | | | | | | Add the note about the way the str size is determined when using QByteArray::operator=(const char*). Pick-to: 6.7 6.6 6.5 Change-Id: I39b2d0fc2967832622fbf0c11b3ff6c7ff99b8f2 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io>
* QRhiVulkan: fix random values in pipelineCacheData() resultMarc Mutz42 hours1-0/+1
| | | | | | | | | | | | | | | | | | The QVkPipelineCacheDataHeader::reserved field wasn't initializaed by the code, but then memcpy()ed with the struct into the result QByteArray. At best, this contains random data, at worst, it leaks information. Initialize it to zero. Found by Coverity. Amends df0e98d4080f50de7ecacdc4cae079ab31280481. Pick-to: 6.7 6.6 6.5 6.2 Coverity-Id: 444147 Change-Id: I398c9a1e99483f2f9887d768319b20ecc11e2c86 Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
* Hardening: fix _LIBCPP_HARDENING_MODEGiuseppe D'Angelo42 hours1-1/+1
| | | | | | | | | | | | It seems we ended up passing "_LIBCPP_HARDENING_MODE_EXTENSIVE" (quoted), not just _LIBCPP_HARDENING_MODE_EXTENSIVE. Remove the quoting. Amends 9ff1e6d80bbd5b44b9ec4c0a837d9a4c962698e4 Change-Id: Ia396b0ef638d656a9ea947a378d5623c11e5a544 Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* Set the CMP0159 to NEW where applicableAlexey Edelev42 hours2-0/+8
| | | | | | | | | The policy controls the file(STRING ... REGEX) behavior. This suppresses warnings produced by CMake versions >= 3.29. Pick-to: 6.5 6.6 6.7 Change-Id: I6067bb719b7d35aa2464a91ed198399ff9b1c9af Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* Clean up windows accessibility backendMiguel Costa43 hours23-1483/+186
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | What was done: * Removed headers in src/gui/accessible/windows/apisupport: as of v13.1.0, MinGW supports most of the definitions in these headers. Including uiautomation.h should be enough. * Removed the QWindowsUiaWrapper class: it's not meant to be extended or itself instantiated, is an "ultra-thin" layer (it even preserves the "all-caps" Win types of function args), and is in effect only a MinGW-bound "kludge". Instead of this class, use the UI Automation API directly, with the assumption that it's available and fully functional, as specified in the MS docs. Any gaps between this assumption and what is delivered by MinGW are bridged with specific (and explicit) temporary "kludges". * Implemented said specific "kludges" in qwindowsuiautomation. For Windows builds, the header just includes uiautomation.h, and the .cpp is empty. For MinGW, the header contains definitions still missing from uiautomation.h, and the .cpp implements functions of the UI Automation core library through imports from the uiautomationcore DLL. * Windows plugins (and tst_qaccessibility): use the UI Automation API definitions directly, instead of the "ultra-thin" wrapper. * Windows plugin builds: use uiautomationcore library, if found. What's intended: * Unburden Gui of the Windows UI Automation COM interfaces and other definitions that are copied in the uia*.h headers. * Make the Windows plugins independent of MinGW shortcomings. * Remove the QWindowsUiaWrapper class that essentially only hides these shortcomings and the "kludge" code needed to overcome them. * As MinGW adds further support to the UI Automation API over time, make it noticeable which workarounds are no longer needed. The current approach of hiding "kludges" in a wrapper class will also hide the fact that they're no longer needed, if/when that time comes. Change-Id: I0070636817d5de81d0b106e9179e2d0442362e2a Reviewed-by: Wladimir Leuschner <wladimir.leuschner@qt.io> Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
* Consider INSTALL_LIBDIR when calculating various cmake pathsAlexey Edelev48 hours3-19/+79
| | | | | | | Task-number: QTBUG-123039 Change-Id: I111cd612afe64a4f8456ab05d6ff3caf828c4712 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io> Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
* QLibrary/Unix: remove two unused, exported private functionsThiago Macieira48 hours1-14/+0
| | | | | | | | | | | | | | Commit 87362f3f58056e29563936102b29070f3e7e945a added qt_linux_find_symbol_sys(). Given the authors and reviewers, I'm guessing that was used somewhere in qtdeclarative. Indeed, its use was removed in qtdeclarative/67191c2b3213259c6eaf045154e9370faa085868 ("Remove qqmlmemoryprofiler*"). qt_mac_resolve_sys() was never used in the public repository, as far as I can tell. Change-Id: I6818d78a57394e37857bfffd17bbf1fae8688b1a Reviewed-by: Ahmad Samir <a.samirh78@gmail.com>
* configure: Fix -system-zlib and -system-sqlite optionsJoerg Bornemann2 days3-4/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | These options are declared with TYPE enum and a MAPPING that's supposed to control the feature 'system-zlib' or 'system-sqlite'. Since only inputs of type boolean control features now, we need to somehow declare that this non-boolean input controls a feature. We do this by adding the keyword CONTROLS_FEATURE to qt_commandline_option. For example, qt_commandline_option(zlib CONTROLS_FEATURE TYPE enum NAME system-zlib MAPPING system yes qt no ) declares - commandline option "zlib" sets the input "system-zlib", because of the "NAME system-zlib" argument - accepted input values are "system" and "qt", because we have "TYPE enum" and the odd values of MAPPING - those values are translated to yes/no, because of the even values of MAPPING - CONTROLS_FEATURE forces the translated input's type to boolean, and with that it will set the corresponding feature 'system-zlib' Luckily, only qtbase has command line options with MAPPING declared. Change-Id: I82d06cec43ece3b002c8f5dd414c68dc730909af Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* CMake: Bail out on configuration with FEATURE_cxx20 and MSVC 2019Joerg Bornemann2 days1-0/+5
| | | | | | | | | | 45fd36f1480a6229879a4e59236ffa1d1d22dfbf triggers internal compiler errors in MSVC2019 when configuring Qt with -c++std c++20. Bail out early when trying to configure a C++20 build with MSVC 2019. Change-Id: Ic0a49c43e08d3d46221c5c060c0b92628898e26e Reviewed-by: Alexey Edelev <alexey.edelev@qt.io> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* macdeployqt: wait forever for otoolMorten Sørvig2 days0-0/+0
| | | | | | | | | | | The QProcess default wait time of 30s may be too short in e.g. CI environments where processes may be blocked for a longer time waiting for CPU or IO. Task-number: QTBUG-117598 Change-Id: I27dbe83ddbe811ae4ff28767de67cb0ceaab267e Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
* QMake: make it error out if it cannot open output filesGiuseppe D'Angelo2 days2-3/+12
| | | | | Change-Id: I02c979e31f4208cbf9d590e043cf7f03eb4a39d6 Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* Tests: check the output of QFile::openGiuseppe D'Angelo2 days31-102/+94
| | | | | | | | | | Wrap the call in QVERIFY. tst_QTextStream::read0d0d0a was also faulty as it *never* opened the file because of a broken path. Fix it with QFINDTESTDATA. Change-Id: I61a8f83beddf098d37fda13cb3bfb4aaa4913fc5 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Fix potentially unaligned 128-bit store/loadsAllan Sandfeld Jensen2 days1-1/+1
| | | | | | | QColorVector is not forced to 128-bit alignment. Change-Id: Ifacc171296ddddda742d49745372b47585e40802 Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
* Add QColorSpace::isValidTargetAllan Sandfeld Jensen2 days5-15/+47
| | | | | | | | To indicate color spaces that can not be used as a target, but only as a source. Change-Id: Iae79e3533599c112872d171a2f45178029be89dc Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
* qHash: fix compilation of SipHash64 on 32-bit: shift >= 32Thiago Macieira2 days1-2/+2
| | | | | | | | | | Amends aadf1d447cd07a961539c6ab607ca65c3297622a because size_t on 32-bit platforms is 32-bit. qhash.cpp:331:15: error: left shift count >= width of type [-Werror=shift-count-overflow] Change-Id: I5f663c2f9f4149af84fefffd17c0567b17f832ce Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
* QCborMap: add missing comparator to QCborValueConstRefThiago Macieira2 days3-3/+24
| | | | | | | | | And ensure all combination of CBOR types are tested. Amends e5ebb9022ab9e00ab01d0bce527755da77083217 Change-Id: I5f663c2f9f4149af84fefffd17c02d352cd41f3f Reviewed-by: Tatiana Borisova <tatiana.borisova@qt.io>
* QString::arg: apply the Qt 7 Unicode digit semantics to the bootstrapThiago Macieira2 days1-6/+6
| | | | | Change-Id: I01ec3c774d9943adb903fffd17b7ef0a106944ca Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
* qErrnoWarning: downgrade from critical to warningDavid Faure2 days1-2/+2
| | | | | | | | | | | | | | | | | | The name says it's a warning, it's pretty unexpected that it should lead to a critical message. One case where this is a problem is QTBUG-48488 where merely printing with "Microsoft Print To PDF" and canceling the file dialog leads to "QWin32PrintEngine::begin: StartDoc failed" as a *critical* message. Some Windows applications have a message handler that shows a msgbox in case of a critical message, and getting such a msgbox after canceling the file dialog seems very wrong. Task-number: QTBUG-48488 Pick-to: 6.7 Change-Id: I1c842340dd2faf2be6e64e0522f9e2b33547d3cf Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* configure: Fix -c++std and -sanitize optionsJoerg Bornemann2 days2-10/+30
| | | | | | | | | | | | | | | | | This amends commit 110f656da9e9b2511c89679e79b197a3e7b07393. Command line options with a TYPE that denotes a custom command line argument handler cannot set a feature "foo" anymore by just setting INPUT_foo to "yes". Instead, they must use the newly introduced functions qtConfCommandlineEnableFeature and qtConfCommandlineDisableFeature. These functions will set INPUT_foo and augment the input with the information "this input is of boolean type". This information is used when deciding whether to use this input as feature switch. Change-Id: I83c691cc57424159148f059c2a1c8cd72e39ee63 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* configure: Remove the -W argumentJoerg Bornemann2 days1-1/+0
| | | | | | | | | | | This did nothing since the port to CMake, it's undocumented, and we didn't receive any complaints about its brokenness. Use CMAKE_CXX_FLAGS to pass arguments like -Wall to the compiler when building Qt. Change-Id: Id9976167013607a88959416f789754186a7ed121 Reviewed-by: Alexey Edelev <alexey.edelev@qt.io>
* QPolygonF: delegate QDataStream marshalling to QListThiago Macieira2 days2-30/+25
| | | | | | | | | | | | | | Like the QPolygon code. This fixes a mistake in failing to clear the list before de-marshalling in operator>>. Updated most of the QDataStream tests to have data in the objects they're streaming into, to ensure that the stream overwrites everything. Fixes: QTBUG-122684 Task-number: QTBUG-122704 Pick-to: 5.15 6.5 6.6 6.7 Change-Id: I01ec3c774d9943adb903fffd17b6920c72f5042b Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
* QJsonArray iterators: use new comparison helper macrosTatiana Borisova2 days3-47/+165
| | | | | | | | | | | | | | | | New comparison macros are used for following classes: - QJsonArray::iterator - QJsonArray::const_iterator Replace public operators operator==(), operator!=(), operator!<(), etc of classes to friend methods comparesEqual(), compareThreeWay(); Use *_helper methods to have an access to protected members of QCborValueConstRef class from friend functions. Task-number: QTBUG-120300 Change-Id: I9b41b619107ce69d8b6dab4938232fab841aab51 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* QDbusTrayIcon: handle open() failureGiuseppe D'Angelo2 days1-1/+4
| | | | | | | | | | QDbusTrayIcon has a convoluted workaround/hack that consists in putting an icon file in /tmp/ and then using that path as the icon. Opening the icon file may fail, so handle it. Change-Id: I5d1c681e2fe3cfb23e93fd20f6758d4c83fe1578 Reviewed-by: Dmitry Shachnev <mitya57@gmail.com> Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
* QTextStream: discard+comment the possibility of file opening failureGiuseppe D'Angelo2 days1-1/+4
| | | | | | | | | | | | The QTextStream(FILE*) constructor may fail to open the filehandle through QFile (e.g. if the open mode is incompatible). However QTextStream has no error report mechanism for this and still reports status Ok. This is consistent for instance with the QIODevice* constructor, where even passing a closed device sets the status to Ok. Add a comment and discard the return of open(). Change-Id: I430b96fd26e0ebca15a4d9ee640b09895bdd0b03 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Fix 8-bit mAB tablesAllan Sandfeld Jensen2 days1-1/+2
| | | | | | | | We had no examples of this type, and didn't catch the table was parsed as -0.5 to 0.5 instead of 0 to 1. Change-Id: I904937a50deaeecfc89e271bf918eedc521bc8a2 Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
* Remove a duplicated call to QFile::openGiuseppe D'Angelo3 days1-1/+0
| | | | | | | File was opened on the previous line. Change-Id: I418d616a2f82d9241c37224e4c1a0fb12894eb40 Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
* QMainWindowLayout: rewrite validateToolBarArea() to return by valueMarc Mutz3 days1-5/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | Coverity complains that QToolBarAreaLayout's addToolBarBreak(QInternal::DockPosition) could access QToolBarAreaLayout::docks out of bounds if passed QInternal::DockCount. That is correct, but a valid pos seems to be a precondition for this function, judging from its sister functions, e.g. addToolBar(DockPosition, .) or insertItem(DockPosition, .), which also don't validate `pos`. All in-module callers of addToolBarBreak() only pass valid positions, and use validateToolBarArea() to ensure that. So it seems that Coverity doesn't grok the pass-by-in/out -parameter used by that function. That, or it doesn't track back far enough. Before attempting more drastic measures, first try rewriting the function to return-by-value instead, and see what Coverity has to say afterwards. As a drive-by, make validateToolBarArea() constexpr. Pick-to: 6.7 6.6 6.5 6.2 5.15 Coverity-Id: 444141 Coverity-Id: 444135 Change-Id: I5fcc664c3cea608429036cad75c37f5c38059733 Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
* QTextMarkdownWriter: escape all backslashesShawn Rutledge3 days3-10/+208
| | | | | | | | | | | | | | | | | | A literal backslash needs to be doubled so that the parser doesn't treat it as escaping the following character when the markdown is read back. In ca4774131b9b8ee40b4d7f5c1ba296af4700207f we tried to limit it to backslashes that were not already escaped. In case someone really needs a longer series of backslashes, it's more correct to escape them all; but this comes with the risk that if they do not get un-escaped by the markdown parser in some scenario, repeated round-trip saving and loading could multiply them excessively. So we also add a lot of tests to try to verify that this is safe. Task-number: QTBUG-96051 Fixes: QTBUG-122083 Pick-to: 6.7 Change-Id: I64f610d24e99f67ebdc30d5ab5c6cf3985aec5ec Reviewed-by: Axel Spoerl <axel.spoerl@qt.io>
* QStorageInfo: fix use-after-moveMarc Mutz3 days1-2/+3
| | | | | | | | | | | | | | | | | | | | | Coverity complained about a use of the moved-from (in the first line of the loop) `info` object in subsequent lines. This specific instance is harmless, because the field being accesssed is a scalar and the move SMFs are the default ones, so the field isn't actually changed when the struct is moved from. Still, to silence Coverity and to guide other attentive readers of the code, take a copy of the field before moving from the struct, and use the copy's value after the move. Amends ddc39eb3a46d699c23d39f0e914978199eb98cc6. Amends 3e330a79ec8d273630660eefae42995018421c0c. Pick-to: 6.7 Coverity-Id: 444199 Change-Id: I26ea8669f27124fb2567b16d803d47ab439f1e41 Reviewed-by: Ahmad Samir <a.samirh78@gmail.com>
* QJsonObject: use new comparison helper macrosTatiana Borisova3 days4-19/+66
| | | | | | | | | | | | | | | | | Replace public operators operator==(), operator!=() of QJsonObject to friend methods comparesEqual(). Use QT_CORE_REMOVED_SINCE and removed_api.cpp to get rid of current comparison methods and replace them with a friend. Add friend method comparesEqual(QJsonObject, QJsonValue) to the QJsonObject class, to support comparison between QJsonObject and QJsonValue elements, see test-case valueEquals(). Task-number: QTBUG-120300 Change-Id: Ibab0b4b39966205447e31c41e94e7e1a4e31e553 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> Reviewed-by: Ivan Solovev <ivan.solovev@qt.io>
* QWindowsVistaStyle:Revert polishing of QAbstractScrollArea/QGraphicsViewWladimir Leuschner4 days1-12/+0
| | | | | | | | | | Revert the polishing for QAbstractScrollArea and QGraphicsView introduced in a1f12273b2e355033ab2a9478d1e9702210a0733 Fixes: QTBUG-123722 Pick-to: 6.7 6.7.0 Change-Id: I9db9079c672f4bf70ce3401382a5843855df2c4a Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* macdeployqt: wait forever for otoolMorten Sørvig4 days1-1/+1
| | | | | | | | | | | The QProcess default wait time of 30s may be too short in e.g. CI environments where processes may be blocked for a longer time waiting for CPU or IO. Task-number: QTBUG-117598 Change-Id: I27dbe83ddbe811ae4ff28767de67cb0ceaab267e Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
* Fix multiscreen menu popup positioning corner caseMorten Sørvig4 days1-2/+9
| | | | | | | | | | | | | | | | | | | | | A QMenuBar may span multiple screens. Its menus will then open on the screen which the bottom middle of the action rect is at, and will snap to that screen's geometry if needed. However it can happen that the bottomLeft() of the action rect is on a different screen from the selected popup screen, in which case mapping this point to global coordinates can give incorrect coordinates if the screens have different scale factors. The x value will be corrected by the screen snapping if needed. Use the y from the screen test point, which will be correct for the selected screen. Task-number: QTBUG-73231 Change-Id: If9a39f6b832a64f2f701868f2be0d3a6468fe553 Reviewed-by: Axel Spoerl <axel.spoerl@qt.io>
* tst_QWidget::reverseTabOrder remove QApplicationPrivate::setActiveWindoFrédéric Lefebvre4 days1-1/+0
| | | | | | | | | | | 2f6fe3a26843ff68c5d3f9af0a2fc3cce6caac22 has made calls to QApplicationPrivate::setActiveWindow() redundant. Remove redundant calls. Task-number: QTBUG-121488 Change-Id: Ifd2c5dcd1cc3d13f689ffd6400ffec0fcc3a6b93 Reviewed-by: Axel Spoerl <axel.spoerl@qt.io>
* VxWorks: Skip fstack-protector-strongFabian Kosmale4 days1-1/+4
| | | | | | | | | | We do not know yet why it fails exactly to link, and what a proper fix would be. For now, unconditionally disable it so that we can get submodule updates in again. Task-number: QTBUG-123715 Change-Id: I832cc8801c7fcb4b0a755aa4ff0bc65d15bf8230 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* QDebug: fix copy-instead-of-move issuesMarc Mutz4 days1-12/+12
| | | | | | | | | | | | | | | | | | | | | | Coverity correctly complains that we're copying the QDebug object when calling print*Container() when we could have moved it into the helper. So do move it. Pick-to: 6.7 6.6 6.5 Coverity-Id: 406803 Coverity-Id: 407406 Coverity-Id: 408523 Coverity-Id: 408562 Coverity-Id: 418431 Coverity-Id: 424788 Coverity-Id: 425106 Coverity-Id: 426537 Coverity-Id: 427163 Coverity-Id: 428925 Coverity-Id: 444463 Change-Id: Ic80247f315a09fffe9363577dff1d1c781859304 Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
* syncqt: remove dead codeMarc Mutz4 days1-1/+0
| | | | | | | | | | | | | | | | | | | | Either the code in the try {} block - doesn't throw, then the return within the try {} block exits the function, or it - throws fileystem_error, then we rethrow in the catch, or it - throws any other exception, then we leave the function by exception In no case can control reach the trailing 'return {}'. Found by Coverity. Amends 7aecb189d544613ad13c7e7d1207bd7767225a71. Pick-to: 6.7 6.6 6.5 Coverity-Id: 444466 Change-Id: I1c1bf752453076724c2fa9367ea5309e741d84ac Reviewed-by: Alexey Edelev <alexey.edelev@qt.io>
* Android: add core-private to use private permissions APIAssam Boudjelthia4 days1-0/+1
| | | | | | | | | Amends 7fa6d09ca20b27b8350e6e26040372ba70e6244d. Pick-to: 6.7 6.7.0 6.6 6.5 Fixes: QTBUG-123353 Change-Id: If79498d28b890772f23963621e6e7bd263a56aca Reviewed-by: Tinja Paavoseppä <tinja.paavoseppa@qt.io>
* QMap: Use qHash SFINAE workaround with MSVCJøger Hansegård4 days1-2/+2
| | | | | | | | | | | | | | | | | Fixes failure to find qHash functions when building Squish. Here, QMap is used with custom types that do not have any associated qHash functions. It should therefore not require a qHash function to be usable with QMap. There is no indication in the build output where the instantiation came from. There's nothing in the output about the function it should have called, likely because no qHash functions exists. Amends: e1f45ad8187947e243c8247c5cbac2d884d68d55 Fixes: QTBUG-123310 Change-Id: Idb12fb6ffab06ce242c43f2c42ea7a105e8fa0f4 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> Reviewed-by: Marc Mutz <marc.mutz@qt.io>
* tst_QWidget: use focus abstraction instead of focus_next/prevAxel Spoerl6 days1-14/+20
| | | | | | | | | | | | Focus abstraction in QWidgetPrivate makes direct access to QWidget::focus_next and focus_prev an antipattern. Remove usage. Add object names for better diagnostics when debugging focus issues. Task-number: QTBUG-121478 Change-Id: Iecd3bdc824bf77c519951f8f7801eb50b29a6e00 Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
* QJsonValue: use new comparison helper macrosTatiana Borisova7 days4-75/+122
| | | | | | | | | | | | | | | | | | Replace public operators operator==(), operator!=() of QJsonValue/QJsonValueConstRef/QJsonValueRef classes to friend methods comparesEqual(). Use QT_CORE_REMOVED_SINCE and removed_api.cpp to get rid of current comparison methods and replace them with a friend. Delete non-exported public operators operator==(), operator!=() for QJsonValueConstRef/QJsonValueRef classes. Add comparison check to auto-test. Task-number: QTBUG-120300 Change-Id: I01434af4ce5a7589733db4a9b14f54ad42e852ed Reviewed-by: Ivan Solovev <ivan.solovev@qt.io>
* tst_QWidget::tabOrderWithProxy remove QApplicationPrivate::setActiveWindFrédéric Lefebvre7 days1-1/+0
| | | | | | | | | | | 2f6fe3a26843ff68c5d3f9af0a2fc3cce6caac22 has made calls to QApplicationPrivate::setActiveWindow() redundant. Remove redundant calls. Task-number: QTBUG-121488 Change-Id: Id3b9967ddaa7dbb87eef9faaf4681d7cb014ba8c Reviewed-by: Axel Spoerl <axel.spoerl@qt.io>
* tst_QWidget::tabOrderWithProxyDisabled() remove setActiveWindow()Frédéric Lefebvre7 days1-1/+0
| | | | | | | | | | | 2f6fe3a26843ff68c5d3f9af0a2fc3cce6caac22 has made calls to QApplicationPrivate::setActiveWindow() redundant. Remove redundant calls. Task-number: QTBUG-121488 Change-Id: I88d39def0e85e147b3621d98d150ee65463be94f Reviewed-by: Axel Spoerl <axel.spoerl@qt.io>
* tst_QWidget::tabOrderWithCompoundWidgets() remove setActiveWindow()Frédéric Lefebvre7 days1-1/+0
| | | | | | | | | | | 2f6fe3a26843ff68c5d3f9af0a2fc3cce6caac22 has made calls to QApplicationPrivate::setActiveWindow() redundant. Remove redundant calls. Task-number: QTBUG-121488 Change-Id: If805bc0e021625b94edc83d7abccc435c1880bea Reviewed-by: Axel Spoerl <axel.spoerl@qt.io>
* tst_QWidget::tabOrderWithProxyOutOfOrder() remove setActiveWindow()Frédéric Lefebvre7 days1-1/+0
| | | | | | | | | | | 2f6fe3a26843ff68c5d3f9af0a2fc3cce6caac22 has made calls to QApplicationPrivate::setActiveWindow() redundant. Remove redundant calls. Task-number: QTBUG-121488 Change-Id: I7a4b21018216c2b7cced8d4aa5084c527b694f4a Reviewed-by: Axel Spoerl <axel.spoerl@qt.io>
* CMake: Add deployment API to our examplesAlexandru Croitor7 days144-1296/+1461
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Projects were modified using the tool at: https://git.qt.io/alcroito/cmake_refactor A couple of examples had to be adapted manually, due to them including more than one app per example subdirectory. The INSTALL_EXAMPLESDIR and INSTALL_EXAMPLEDIR assignments were removed. The install(TARGETS) calls were modified according to our documentation snippets for qt_generate_deploy_app_script. A qt_generate_deploy_app_script call was added for each executable target. Note that the deployment step will be skipped in the CI for now, because we enable QT_DEPLOY_MINIMAL_EXAMPLES and thus QT_INTERNAL_SKIP_DEPLOYMENT, and also because standalone examples are not enabled yet, and deployment is disabled for in-tree (so no-standalone-example) prefix builds. The install(TARGETS) calls for each example will still run, installing the examples into an installed_examples directory, that will not be archived by the CI. Pick-to: 6.7 Task-number: QTBUG-102056 Task-number: QTBUG-102057 Change-Id: Ida389bbad41710b2ae5da4d95e2d85be9e0cd9ce Reviewed-by: Alexey Edelev <alexey.edelev@qt.io>
* tst_QWidget::tabOrderWithCompoundWidgetsNoFocusPolicy remove setActiveWFrédéric Lefebvre7 days1-1/+0
| | | | | | | | | | | 2f6fe3a26843ff68c5d3f9af0a2fc3cce6caac22 has made calls to QApplicationPrivate::setActiveWindow() redundant. Remove redundant calls. Task-number: QTBUG-121488 Change-Id: Ieb516cc4fd02230c0ec6bb189da049c3741358dd Reviewed-by: Axel Spoerl <axel.spoerl@qt.io>