summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* CMake: Fix location of module .pri files for non-prefix buildsJoerg Bornemann2020-04-171-1/+1
| | | | | | | | | In a non-prefix build, the module .pri files must end up in the mkspecs/modules subdirectory of qtbase's build directory. Change-Id: I241f4e274d31de7c1e3c2fa8e5e26fb8747f11c5 Reviewed-by: Leander Beernaert <leander.beernaert@qt.io> Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* CMake: Port the 'cross_compile' featureJoerg Bornemann2020-04-172-1/+7
| | | | | Change-Id: Iccd1d55e95797740a4a8689462ce9ab1e49a62c1 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* CMake: Write QT_BUILD_PARTS to qmodule.priJoerg Bornemann2020-04-172-14/+23
| | | | | Change-Id: I4bddba38b51df3c70780d94f64a31b3040cb0bc8 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* CMake: Write PKG_CONFIG_EXECUTABLE to qmodule.priJoerg Bornemann2020-04-171-5/+11
| | | | | Change-Id: Ide61cc93d44c659740b72d085fb8b15684bc64fa Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* CMake: Generate qmake pri information for building with qmakeAlexandru Croitor2020-04-172-11/+161
| | | | | | | | | Implemented some necessary functionality to generate correct .pri information, so that qmake can build modules. Task-number: QTBUG-75666 Change-Id: I63281adfef3d01385928b1d8c4be0b32ac97c4d7 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* CMake: Generate qmake .prl filesJoerg Bornemann2020-04-174-1/+299
| | | | | | | | This commit also adds a qt_finalize_module function that is called for every Qt module after all link dependencies have been added. Change-Id: I489d188d05e368208a8a62828bb12fb395df54bc Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* configurejson2cmake: Remove mention of the system-xcb featureJoerg Bornemann2020-04-171-2/+1
| | | | | | | This feature was removed in commit 60588e1a. Change-Id: I061410dfab13a2210474014892d1bc828a5b21cf Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* Resolve OpenGL version functions in thread-safe mannerEskil Abrahamsen Blomfeldt2020-04-173-17/+20
| | | | | | | | | | | | | | | | | | | | | | | | | In 73f3f501f331444b3f188b21db7265f723e4f383, the classes were moved out of Qt Gui, and a mechanism to attach them to the QOpenGLContext was implemented using a QMap and a connection on destroyed to delete it. This solution was not thread-safe, so the suggestion was to either add a mutex or to make an opaque pointer for the storage in the (thread-affine) QOpenGLContextPrivate. I decided to go with the latter. A solution using hash lookups and mutexes seems to complex when the only benefit is to avoid forward declarations from Qt Gui to Qt OpenGL in private API. Especially since this dependency already exists with the "textureFunctions", which serve the same purpose, although the destructor is being passed in as an explicit function pointer there, probably because the ambition was to use a forward declaration rather than a superclass. Fixes: QTBUG-82742 Change-Id: I5c6b82c5b33d9cb73ad1ec05d3fc3e87a9eae4cf Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
* CMake: Make sure not to use the Qt prefix for standalone testsAlexandru Croitor2020-04-172-0/+19
| | | | | | | | | We don't want people accidentally installing tests into the Qt prefix. Change-Id: Ic99492559875f753897a83af162253cac846a8a5 Reviewed-by: Leander Beernaert <leander.beernaert@qt.io> Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* CMake: Handle super build non-prefix install prefix correctlyAlexandru Croitor2020-04-172-2/+4
| | | | | | | | | | | | | | | | | The install prefix in such a case is the qtbase build dir, and not the qt6 top-level build dir. This caused issues with certain incorrect paths being generated, including a broken qt-cmake-standalone-test script, as well as upon reconfiguration determining that a non-prefix build should be installed. The fix for a non-prefix build is to check explicitly for the qtbase build dir. This works both for super and non-super builds. Task-number: QTBUG-83496 Change-Id: Ida2393176c4c81da767023ff48159afdedfb0a19 Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io> Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* CMake: Handle automatic rpath embedding correctlyAlexandru Croitor2020-04-176-10/+189
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Instead of using CMAKE_INSTALL_RPATH to embed an absolute path to prefix/libdir into all targets, use the more sophisticated aproach that qmake does. For certain targets (modules, plugins, tools) use relative rpaths. Otherwise embed absolute paths (examples, regular binaries). Installed tests currently have no rpaths. On certain platforms rpaths are not used (Windows, Android, iOS / uikit). Frameworks, app bundles and shallow bundles should also be handled correctly. Additional rpaths can be provided via QT_EXTRA_RPATHS variable (similar to the -R option that configure takes). Automatic embedding can be disabled either via QT_FEATURE_rpath=OFF or QT_DISABLE_RPATH=ON. Note that installed examples are not relocatable at the moment (due to always having an absolute path rpath), so this is a missing feature compared to qmake. This is due to missing information on where examples will be installed, so a relative rpath can not be computed. By default a Qt installation is relocatable, so there is no need to pass -DQT_EXTRA_RPATHS=. like Coin used to do with qmake e.g. -R . Relative rpaths will have the appropriate 'relative base' prefixed to them (e.g $ORIGIN on linux and @loader_path on darwin platforms). There is currently no support for other platforms that might have a different 'relative base' than the ones mentioned above. Any extra rpaths are saved to BuildInternalsExtra which are re-used when building other repositories. configurejson2cmake modified to include correct conditions for the rpath feature. It's very likely that we will need a new qt_add_internal_app() function for gui apps that are to be installed to prefix/bin. For example for Assistant from qttools. Currently such apps use qt_add_executable(). The distinction is necessary to make sure that relative rpaths are embedded into apps, but not executables (which tests are part of). Amends e835a6853b9c0fb7af32798ed8965de3adf0e15b Task-number: QTBUG-83497 Change-Id: I3510f63c0a59489741116cc8ec3ef6a0a7704f25 Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* Move larger code examples in QFuture docs into snippetsSona Kurazyan2020-04-172-72/+81
| | | | | | Change-Id: I77b943124ac9c82f54b0c38e9437b9415604c21a Reviewed-by: Karsten Heimrich <karsten.heimrich@qt.io> Reviewed-by: Vitaly Fanaskov <vitaly.fanaskov@qt.io>
* Add an example of error handling of QFuture without using exceptionsSona Kurazyan2020-04-172-6/+55
| | | | | | | | | Also fixed a few unrelated typos in docs. Task-number: QTBUG-83236 Change-Id: I776cda8f0ef4de6c4a93e94092dc19e94d1884c8 Reviewed-by: Vitaly Fanaskov <vitaly.fanaskov@qt.io> Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io>
* Fix digit grouping when digits are surrogat pairsEdward Welbourne2020-04-172-61/+153
| | | | | | | | | | | | | | | | | | | | | | | This is a follow-up to commit ed2b110b6add650954dc102a0317c14ff826c677 to fix indexing errors. Added the test that should have accompanied that commit, which found some bugs, and refined the Indian number formatting test (on which it's based). Make variable i in the loops that insert grouping characters in a number be consistently a *character* offset - which, when each digit is a surrogate pair, isn't the same as an index into the QString. Apply the needed scaling when indexing with it, not when setting it or decrementing it. Don't assume the separator has the same width as a digit. Differences in index no longer give the number of digits between two points in a string, so actively track how many digits we've seen in a group when converting a numeric string to the C locale. Partially cleaned up the code for that in the process (more shall follow when I sort out digit grouping properly, without special-casing India). Change-Id: I13d0f24efa26e599dfefb5733e062088fa56d375 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Get rid of QT_OPENGL_ES*Eskil Abrahamsen Blomfeldt2020-04-1771-332/+318
| | | | | | | | | | | The QT_OPENGL_ES* macros are leftovers from an earlier, ad hoc configuration system, which has since been replaced by QT_CONFIG. To clean things up in Qt 6, we use the new way instead. Task-number: QTBUG-83467 Change-Id: I578dc7695bff9d5ee303b22e44f60fee22fe0c28 Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* Minor tidying for header guard in qopenglversionfunctions_p.hEskil Abrahamsen Blomfeldt2020-04-171-3/+3
| | | | | | | | | The original was too close to QOPENGLVERSIONFUNCTIONS_H for comfort so to avoid future confusion or errors, just use the convention of matching the file name. Change-Id: I57fcc4da239ddec329f75ac29b254b5909c39bf0 Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
* Clean up memoryLars Knoll2020-04-171-0/+1
| | | | | | | And remove a test failure when compiling with asan enabled. Change-Id: I2b8e676665572adcbbac6a910983d5b209bf6d23 Reviewed-by: Alex Blasche <alexander.blasche@qt.io>
* Simplify signature of untyped property bindingsSimon Hausmann2020-04-173-29/+31
| | | | | | | | | Instead of requiring the implementation to do the compare dance, let's do this in the library. This reduces the amount of duplicated code slightly and makes it easier to generate binding code from qml files. Change-Id: Ia3b16cf9769e74d076b669efe4119ab84af3cdf0 Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
* Make it possible to take bindings from properties without private headersSimon Hausmann2020-04-174-8/+8
| | | | | | | | | | | Passing the QExplicitlySharedDataPointer by reference may lead compilers to wanting to have visibility to the destructor of the contained type (QPropertyBindingPrivate), which is not public. Fortunately QExplicitlySharedDataPointer is safe to use with raw pointers and those can be safely forward declared. Change-Id: I131ab6363eaee10b6dce196fb2c769e09a5c9557 Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
* QEventDispatcherWin32: relax memory ordering on setting wakeUps flagAlex Trotsenko2020-04-171-1/+1
| | | | | | | | | | | | There is no need in 'acquire' operation for the next reasons: - wakeUps is simply used as an atomic boolean that does not require ordering with other loads or stores; - any of testAndSet...() always gets a latest version of wakeUps. Change-Id: Ica38fc62bc181166995946dee9d6887c71d87cec Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* QString::from/toLocal8Bit: Assume locale is utf8 if we don't have codecsLars Knoll2020-04-161-2/+2
| | | | | | | | If there is no text codec support, assume local8bit is utf8, not latin1. This is in line with what 99% of all modern systems do. Change-Id: I35ebcd43ef3572a25f549a8375857dcabcfec4ca Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* Fix compilation with QT_RESTRICTED_CAST_FROM_ASCIILars Knoll2020-04-161-1/+1
| | | | | | | | Fix the QString constructor used for restricted casts from char *. Change-Id: Id7e71f6d0bcd4627bb44b2bd6d6790be2b6ed976 Reviewed-by: Alex Blasche <alexander.blasche@qt.io>
* Remove QString::from/toAscii()Lars Knoll2020-04-163-93/+0
| | | | | | | These methods have been deprecated since 5.0 Change-Id: I3ceed57a364ea59a63ccc51452ab3b4da7140ce4 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* Remove deprecated members from QtWidgets/kernel classesVolker Hilsheimer2020-04-165-86/+1
| | | | | | | | Cleaning up those that are trivial to remove because they have direct replacements. Change-Id: Ie8ac02c3d6273110f1f11e17fdeae496bc66321f Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
* Remove deprecated members from graphics view classesVolker Hilsheimer2020-04-1611-273/+12
| | | | | Change-Id: Ia192de674b1085edcf4a88cdeada6df89b442ddd Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
* Remove deprecated QStyle enum valuesVolker Hilsheimer2020-04-167-129/+24
| | | | | Change-Id: I7eba336017844c06b2976df53d440e167abd7894 Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
* Remove deprecated members from dialog classesVolker Hilsheimer2020-04-1610-512/+4
| | | | | | | And a few cleanups of out-dated comments and dead code. Change-Id: I59c6b9129a21b8953626cb63c3ebbf9b6c49a657 Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
* Remove deprecated QWizard memberVolker Hilsheimer2020-04-162-13/+0
| | | | | Change-Id: If6a0125ab9eba5f1b5040adb2e087003b45f5b3d Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
* Move versioned OpenGL functions from QtGui to QtOpenGLJohan Klokkhammer Helsing2020-04-1676-592/+683
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | The context—which lives in QtGui—now knows nothing about versioned functions. This changes the public API for getting version functions for a context. [ChangeLog][QtGui][OpenGL] QOpenGLContext::versionFunctions() has been removed. QOpenGLVersionFunctionsFactory::get() from the QtOpenGL module should be used instead. Previously one would call context->versionFunctions<QOpenGLFunctions_4_0_Core>(); Which now becomes QOpenGLVersionFunctionsFactory::get<QOpenGLFunctions_4_0_Core>(context); The rest of the API should be identical. Since glgen no longer compiles, and the links to its input (gl.spec and gl.tm) are dead, I've edited the previously generated files manually. If glgen is fixed, it should be quite easy to make it generate the new way. Task-number: QTBUG-74409 Change-Id: I800527e0af16a79005b276eeb74417770193c62f Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
* Run those autotests with cmakeLars Knoll2020-04-152-1/+17
| | | | | | | They seem to work just fine. Change-Id: I8cf3e682e158c67367d76fe68f5829df67d1e449 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* Compile fixes for clang10Lars Knoll2020-04-158-19/+19
| | | | | | | Fix some warnings that are flagged as errors on clang10. Change-Id: I906634c8b2bd94db42d74a7f3d10efb086e373cc Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
* Port QNetworkProxy over to use QRegularExpressionLars Knoll2020-04-152-6/+8
| | | | | | | | The windows and macOS implementations where still using QRegExp in one place. Change-Id: Iaf6c6ead10f7f061ff0edce889abe18751b9d308 Reviewed-by: Alex Blasche <alexander.blasche@qt.io>
* CMake: Add library mapping for xcb-fixesLeander Beernaert2020-04-151-0/+7
| | | | | Change-Id: Ida893674fa0782446acdac4ee5dfec4849d4605f Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* CMake: Update pro2cmake and friend to convert QtVirtualkeyboardLeander Beernaert2020-04-153-0/+6
| | | | | | | | | | | | Expand $$MODULE_BASE_DIR to ${QT_BUILD_DIR}. Add library mappings for Hunspell. Add test mappings for QtVirtualKeyboard regarding 3rdparty Hunspell and T9Write. Change-Id: Ief007456d0471cbcf9a03d819291edec5f63680f Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* QObject: overhaul narrowing detectionGiuseppe D'Angelo2020-04-152-251/+94
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Use P0608's trick to detect convertibility without narrowing; and now that we can depend on C++17, use its features. First, this moves the burden of detecting a narrowing conversion on the compiler, rather than us maintaining a complicated series of checks. Of course, this exposes * bugs in compilers (e.g. GCC < 9 thinks that float->bool is not narrowing; * behavior still not (widely) implemented (pointer to bool conversions are narrowing, P1957); * interesting compiler choices, e.g. GCC 9 thinks that unscoped enumerations are non-narrowing convertible to a datatype big enum to contain all the _enumerators_, even if the underlying type of the enum (and/or its sizeof()) is wider than the target datatype. Second, it allows to detect conversions that have a narrowing conversion as an intermediate step. Given a type like struct Bad { operator double() const; }; then an object of type Bad is implictly convertible to a type like int via a narrowing conversion. Therefore, a connection is possible between a signal carrying a Bad and a slot accepting an int. We can now detect and block this. Tests regarding scoped enumerations have been dropped, for the simple reason that a scoped enumeration is not implictly convertible to an integral type, so we don't have that detection (it would constantly fail). Scoped enumerations do not take part in narrowing conversions anyhow, cf. [dcl.init.list]. [ChangeLog][QtCore][QObject] The detection of narrowing conversions when calling QObject::connect() when QT_NO_NARROWING_CONVERSIONS_IN_CONNECT now takes also into account user-defined implicit conversions that undergo through a narrowing conversion. Change-Id: Ie09d59203fe6283378b36dfbc54de1d58098ef51 Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io> Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* Extend the QRegExp->QRegularExpression porting docLars Knoll2020-04-151-0/+5
| | | | | | | | Mention that . matches newlines in QRegExp, but not by default in QRegularExpression. Change-Id: I9663fe30c7b7e068d673aa8d51884f6828e0ee59 Reviewed-by: Alex Blasche <alexander.blasche@qt.io>
* Move the QRegExp porting docs into the QRegExp class documentationLars Knoll2020-04-154-138/+142
| | | | | | | | | | It used to live in QRegularExpression, but as QRegExp gets removed from Qt Core, the better place for it is to live in the QRegExp docs. Also marked QRegExp as deprecated in the docs. Change-Id: Id5b0e3040e4d46f5d806022b58fbd5b5efd58911 Reviewed-by: Alex Blasche <alexander.blasche@qt.io>
* Remove two leftover references to QRegExp in the docsLars Knoll2020-04-152-2/+1
| | | | | Change-Id: I7e025d6a03827addb61740649a77dd74f7416962 Reviewed-by: Alex Blasche <alexander.blasche@qt.io>
* Remove QRegExp based functionality from QObjectLars Knoll2020-04-152-81/+0
| | | | | | | QRegExp is going away for Qt6. Change-Id: I04d6331379dc769394b160d976eb9f21fe649a22 Reviewed-by: Alex Blasche <alexander.blasche@qt.io>
* Remove QRegExp support from QSortFilterProxyModelLars Knoll2020-04-1511-363/+35
| | | | | | | | Map setFilterWildcard() and setFilterFixedString() to now use QRegularExpression. Change-Id: I2dff2015234decb2badfd306975dcff8553cdd7f Reviewed-by: Alex Blasche <alexander.blasche@qt.io>
* Port example over to QRegularExpressionLars Knoll2020-04-155-26/+44
| | | | | Change-Id: I1e15bfa0a2973aabcad78f3eba4bb4903f8f3f6f Reviewed-by: Alex Blasche <alexander.blasche@qt.io>
* Convert the example to use QRegularExpressionLars Knoll2020-04-152-17/+32
| | | | | | Change-Id: I7a4259ac43e59a8f50ee1c5072a3da5b977d8bfe Reviewed-by: Alex Blasche <alexander.blasche@qt.io> Reviewed-by: Samuel Gaist <samuel.gaist@idiap.ch>
* Don't anchor wildcard patterns twiceLars Knoll2020-04-151-1/+1
| | | | | | | wildcardToRegularExpression anchors the pattern by default. Change-Id: Ic58e09aa526a7e35803703fa5f7582a250927008 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@gmx.de>
* Add WildcardConversionOptions to QRegularExpressionLars Knoll2020-04-152-8/+33
| | | | | | | | | | There are cases, where the conversion from a wildcard pattern to a regular expression should not lead to an anchored pattern. Allow this, but adding an optional second argument to wildcardToRegularExpression, that allows tuning the conversion. Change-Id: Ida7a32d65ee49bf58d5f8d9906c0a0cd8954a02a Reviewed-by: Alex Blasche <alexander.blasche@qt.io>
* Port qfilesystemengine_win.cpp to QRegularExpressionLars Knoll2020-04-151-5/+10
| | | | | | | QRegExp is going away in Qt 6. Change-Id: I282a444b9fdf1c834dcf90d7fd6743781b94643c Reviewed-by: Alex Blasche <alexander.blasche@qt.io>
* Port androidtestrunner to QRegularExpressionLars Knoll2020-04-151-9/+13
| | | | | Change-Id: If135b29996b7036d65472a1b5fa4817cd7907aba Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
* CMake: Fix $ORIGIN rpaths to work when passed on the command lineAlexandru Croitor2020-04-151-6/+10
| | | | | | | | | | | | | | The CMAKE_INSTALL_RPATH cache var had the PATH type, which made CMake transform the value into an absolute path, getting rid of the $ORIGIN value. Fix that by changing the cache var type to STRING. Also clean up the all-caps commands, add a usage example and print the install RPATH. Change-Id: Ibf40cfde4283369ddfcf52609143799cc8e47d68 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* Improve Map|Map-Reduce and Filter|Filter-Reduce implementationKarsten Heimrich2020-04-1414-405/+1344
| | | | | | | | | | | | | * support lambda expressions * remove the need to specify result_type * use std::invoke to apply map|filter function * remove usage of FunctionWrapper* and createFunctionWrapper Task-number: QTBUG-33735 Task-number: QTBUG-82646 Change-Id: Ibcbe4278f0742c29182bd506081db0abb516f85f Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io> Reviewed-by: Sona Kurazyan <sona.kurazyan@qt.io>
* QTaskBuilder::spawn: add an overload that doesn't return a future objectVitaly Fanaskov2020-04-145-0/+55
| | | | | | Fixes: QTBUG-83175 Change-Id: Idf85e47a2732742884272200d5c753805eaa640b Reviewed-by: Sona Kurazyan <sona.kurazyan@qt.io>
* CMake: Enable Moc for 3rdparty librariesLeander Beernaert2020-04-141-0/+2
| | | | | | | | This is required to support QtVirtualKeyboard's third party OpenWnn library. Change-Id: I64b6a2b6b6b0259bea5aa249a8c901def31f916c Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>