summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Restructure testlib selftest projectTor Arne Vestbø2020-03-247-143/+84
| | | | | | | | | The use of a single subdirectory only for the test binary, but not the actual source file, just made things harder to discover when looking for the test code. Now all subdirectories are actual sub-tests. Change-Id: Ia3e308ba8d231cc8ead1491b10a34801f76669b0 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* Q{File,FileInfo,Dir}: add std::filesystem::path overloadsMårten Nordheim2020-03-2413-5/+573
| | | | | | | | | | | | | | | | | | | | Add some overloads where (I thought) it makes sense for QDir and QFile to accept std::filesystem::path objects. Currently my thinking is to not add overloads for static functions where std::filesystem can already do the same job, e.g. create directory or file. Template and enable_if is needed due to both QString and std::filesystem::path being able to be constructed from string literals. The common shared code is currently in QFile because QDir had an implicit include of QFile, made explicit in this patch, and QFileInfo has an include to QFile as well. The QT_HAS_STD_FILESYSTEM macro is visible in user-code which I currently take advantage of in the tests, and users could too. Change-Id: I8d05d3c34c6c17e20972a6a2053862b8891d6c3c Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Expect failure in QLabel test for certain conditionEskil Abrahamsen Blomfeldt2020-03-241-1/+11
| | | | | | | | | | | | | | | While investigating QTBUG-80554, it was discovered that a small mismatch in how heights are calculated in QTextDocument and QPainter will cause the tst_QLabel::sizeHint() autotest to fail if ceil(ascent+descent+leading) is higher than ceil(ascent+descent). This is currently blocking the fix for QTBUG-80554, because this exposes the bug by detecting the correct leading for a font where we previously ignored it. Task-number: QTBUG-82954 Change-Id: I99323c8e1a0fa281aa8d754ba71432468fcb2d4c Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* Darwin: get rid of Harfbuzz/CoreText specific codeKonstantin Ritt2020-03-242-58/+7
| | | | | | | | | | once CoreText shaper in Harfbuzz has been disabled, we do not need the hack-ish enablers to support it Follows-up 21c242f9fd27523d0016b821d0a962231c4bafa6 Change-Id: I40d598b2c9b57ca7953716a56e4e119b2fc06a9b Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* Harfbuzz: get rid of Qt-specific patch in CoreText shaper codeKonstantin Ritt2020-03-242-96/+0
| | | | | | | | this code isn't used as of 21c242f9fd27523d0016b821d0a962231c4bafa6 and thus we do not need to keep the patch around Change-Id: Ic3b836c6a68f40b8e450542a39db968ef3b09101 Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
* QTextEngine: stop guessing the same language in a loopKonstantin Ritt2020-03-241-2/+2
| | | | | | Change-Id: I155b9380a4ff412d59c7939c377d20f4783e4730 Reviewed-by: Lars Knoll <lars.knoll@qt.io> Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
* Fix deprecation warnings from NSColor(Space) with macOS 10.14 SDKVolker Hilsheimer2020-03-232-41/+31
| | | | | | | | | | | | | | | | The support for handling color spaces by names is deprecated in recent AppKit versions, and should be replaced by using NSColor.type, and operations on the type-specific properties of the color. Merge the two implementations from qcoregraphics.mm and qcocoacolordialoghelper.mm, which also fixes the inconsistent interpretation of color components as device dependent (in qcoregraphics) or generic (in qcocoacolordialoghelper). We now always populate the QColor with device independent components. Change-Id: Id79c609736ff1962bebe4bd7158781a6d1b4475e Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
* Make QFuture::d privateSona Kurazyan2020-03-231-2/+10
| | | | | | Change-Id: I5820fa1d6d0f003a7cb95db115ef90b32f380a79 Reviewed-by: Vitaly Fanaskov <vitaly.fanaskov@qt.io> Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
* Clean-up the duplicate code in QFuture and QFutureWatcherSona Kurazyan2020-03-233-135/+69
| | | | | | | | | | | | QFuture<void> and QFutureWatcher<void> are specialized to not contain any of result fetching methods, but otherwise they share almost the same implementation with QFuture<T> and QFutureWatcher<T> respectively. This change unifies their implementations to get rid of unnecessary code duplication. Change-Id: I9494ddc58c6db192c66edb988105927da6d61a3b Reviewed-by: Vitaly Fanaskov <vitaly.fanaskov@qt.io>
* Fix memory leakGiulio Camuffo2020-03-231-0/+3
| | | | | | | | | When creating a new QColorSpacePrivate it must be reffed otherwise in the destructor the deref() will bring the count to -1 which is true and will not delete the d_ptr. Change-Id: Id569bae22134b56bf6ad37158d7079b495599fd7 Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
* CMake: "Port" the c89, c99 and c11 featuresJoerg Bornemann2020-03-232-3/+11
| | | | | | | | We can ignore the tests for those features and directly ask CMake whether the compiler supports the respective language version. Change-Id: I31cd35493443fea0c6d0b0a5e641768c3bcbe736 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* CMake: Make sure to install Qt3rdPartyLibraryConfig.cmake.inAlexandru Croitor2020-03-231-0/+1
| | | | | | | | | | Repos like qtshadertools need it when configuring their own bundled libraries. Amends 572c03eb7a583baf1f48e5144d2868e5588d292a Change-Id: I540e99d5bd2938299a10220a1a5e0d97091077b3 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* tst_sqlquery: Skip datetime test if no database drivers are availableLeander Beernaert2020-03-231-0/+3
| | | | | Change-Id: I4a4619f2edc3c82fc37605d54e9bedc36abd7388 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* CMake: pro2cmake: Consider system-assimp for conditionsAlexandru Croitor2020-03-231-0/+1
| | | | | | Change-Id: Idee55dfdd88b04792dc1485a818ab41218fa2707 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io> Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
* CMake: Fix creation of forwarding headers to be at configure timeAlexandru Croitor2020-03-231-2/+3
| | | | | | | | | | | | | | | | | | | | | | | qt_add_module checks for the existence of the following directory include/QtFoo/6.0.0/Foo when deciding whether a private module target should contain that path in its INTERFACE_INCLUDE_DIRECTORIES. There are 2 cases when it's created, when running syncqt, and inside qt_install_injections. If syncqt doesn't create it because there are no private headers (like in qttools/src/global), qt_install_injections created it at generation time (for injected configure headers like qttools-config_p.h) Unfortunately that caused the existence check mentioned above to fail, not exporting the path in the QtToolsPrivate's include directories, and failing the qttools build. To fix that, create the injection files (and directories) at configure time, using qt_configure_file instead of file(GENERATE). Change-Id: Idd9b6ec36e986c4de95d11557170e1c70927211c Reviewed-by: Leander Beernaert <leander.beernaert@qt.io> Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* CMake: Introduce qt_configure_fileAlexandru Croitor2020-03-233-0/+37
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | It has the same kind of signature as file(GENERATE) but creates the files at configure time rather than generation time. CMake provides a few ways to generate files file(WRITE) -> always overrides content configure_file() -> only overrides if content changes, creates file at configure time, can only take a file as input file(GENERATE) -> only overrides if content changes, creats file at generation time, can take a string or file as input Because dealing with an input file is a hassle (need to create one, make sure it's installed, make sure it's used correctly in the various build types like super-build, non-prefix-build, etc) people tend to use file(GENERATE) instead, which can take a string argument, and is thus easier to use. Unfortunately that introduces subtle bugs because the file is created at generation time, but there are existence checks which are done at configuration time. Thus qt_configure_file allows creation of files at configure time, without having to provide an input file. Underneath it uses configure_file(). Once CMake 3.18 is released, the implementation can be switched to use file(CONFIGURE). Change-Id: Ic8f8d88541ef0b25d01af143352c8c9ba390ad5f Reviewed-by: Leander Beernaert <leander.beernaert@qt.io> Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* CMake: Fix metatype file generation not to happen in the source dirAlexandru Croitor2020-03-231-0/+7
| | | | | | | | | | | | | | | | | When building qtdeclarative in a non-prefix configuration, metatypes.json files were created in the source dir. This happened because the default arg_INSTALL_DIR value is relative in qt6_generate_meta_types_json_file, and thus a file(TOUCH) with a relative path creats it in the source dir. The fix is to check if it's relative during a non-prefix build, and make it absolute (relative to the install prefix, which is the qtbase build dir). Change-Id: Ie9abbd5d93a64e79184d77655d8d8399e894fde5 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io> Reviewed-by: Leander Beernaert <leander.beernaert@qt.io> Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
* CMake: Provide script to configure and build one or more testsAlexandru Croitor2020-03-234-26/+95
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Before this patch there were a few ways to build tests - Configure all tests as part of the repo build - Configure all tests as part of the repo build, but don't build tests by default (-DQT_NO_MAKE_TESTS=ON) - Configure all tests as a standalone project in a separate build dir using -QT_BUILD_STANDALONE_TESTS=ON All of the above incur some time overhead due to the necessity of configuring all tests. Sometimes you just want to build ONE test (or a few). To facilitate that use case, a new shell script called bin/qt-cmake-standalone-test(.bat) can now be used to configure and build one or more tests. The script takes one single argument pointing to the desired test project path and configures a generic template project that sets up all the necessary Qt CMake private API, afterwards calling add_subdirectory on the passed in project. Example $ path/to/qt/bin/qt-cmake-standalone-test ./tests/auto/gui/image/qicon or $ path/to/qt/bin/qt-cmake-standalone-test ./tests/auto/gui/image After that, simply run 'ninja && ctest' to build and run the test(s). This is the CMake equivalent of calling qmake on a test .pro file (or on a tests SUBDIRS .pro file) There are 3 details worth mentioning. Due to the add_subdirectory call, the built artifacts will not be in the top-level build dir, but rather in a nested build_dir. The script currently can't handle more than one argument (the path to the project), so you can't pass additional -DFoo=bar arguments. If a test uses a 3rd party library (like Threads::Threads) which was not a public dependency for any of the Qt modules, configuration will fail saying that the target was not found. Perhaps we should consider recording these packages when generating the StandaloneConfig.cmake files. Change-Id: Icde6ecb839341d34f341d9a19402c91196ed5aa0 Reviewed-by: Leander Beernaert <leander.beernaert@qt.io> Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* Fix warning in qsql_odbc.cpp when building with MSVC2017Mitch Curtis2020-03-201-1/+1
| | | | | | | | qsql_odbc.cpp(1589): warning C4267: 'argument': conversion from 'size_t' to 'int', possible loss of data Change-Id: Ib36fda3e3b21bdbc8b343ae5136542dfcf3c1065 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* Change QTaggedPointer API to be more similar to other smart pointers in QtSimon Hausmann2020-03-194-19/+19
| | | | | | | * Rename pointer() to data() Change-Id: I8ef3e552d45c9990fee4b7efa98e2d878ed2cf98 Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
* Fix warnings when building with MSVC2017Mitch Curtis2020-03-192-3/+4
| | | | | | | | | | | qstring.cpp(10210): warning C4267: 'argument': conversion from 'size_t' to 'uint', possible loss of data qcontiguouscache.h(141): warning C4003: not enough arguments for function-like macro invocation 'max' Change-Id: I01f1fc1c85341ea61c86dcffb1b01fe4cde50eea Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* CMake: Regenerate selftest with latest fixesLeander Beernaert2020-03-1912-9/+62
| | | | | Change-Id: I7453c2439a62331cdc2d7ffaeafb05cd831191c6 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* Add documentation for QTaggedPointerSimon Hausmann2020-03-192-8/+214
| | | | | | | | The class remains \internal though, as it has a very narrow use-case for low-level code inside Qt. Change-Id: I9d2b6486ce29b290af7f930a0bfc78590a83cc01 Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
* Use QTaggedPointer in QPropertyObserverSimon Hausmann2020-03-195-81/+73
| | | | | | | | | | This replaces the private tagged pointer and the use of enums for the tag makes the observer handling code more readable. The pointer-to-tagged-pointer class remains in qpropertyprivate.h due to its exoticness. Change-Id: Icc88799136c6839426d994b42368526463265e66 Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
* Add support for explicitly marking a property as dirtySimon Hausmann2020-03-192-0/+9
| | | | | | | | When a binding is backed by old-style property captures, then having this API is needed for Qml. Change-Id: Icf51efe057eaf845969ed2cda52d082dedde677e Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
* Enable generic property bindings to QProperty<T>Simon Hausmann2020-03-195-13/+118
| | | | | | | | | | A generic binding allows implementing the binding function in a way that enables the QML engine to run binding scripts and convert the V4::Value into a QVariant and then assign the value to the property with the help of QMetaType::construct. Change-Id: Id4807be92eee7e3501908e6c5e4c861cfcb7772a Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
* CMake: Skip inclusion of selfcover.priLeander Beernaert2020-03-191-0/+4
| | | | | | | | | Do not process selfcover.pri in the conversion as the output requires a lot of special case fixs ups. Change-Id: Iebee484db887973369b5604344a6d486f4bea20b Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io> Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* CMake: Don't use GUI for tests that use QT += testlib-privateAlexandru Croitor2020-03-191-3/+3
| | | | | | Change-Id: I90cac19928d6e6e30214a6480a5855479a8d4d77 Reviewed-by: Leander Beernaert <leander.beernaert@qt.io> Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
* CMake: Add global / top-level docs targetsAlexandru Croitor2020-03-182-1/+26
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Previously you could use either module-specific or repo-specific 'docs' targets. For example 'ninja html_docs_qtbase' or 'ninja html_docs_Core'. Now there's a global / top-level target called 'docs', so 'ninja docs' works. For super builds it will build the documentation of all configured repositories. For a single repo build, it's equivalent to calling 'ninja docs_repo_name'. Also for consistency, add the "docs_Core" target, which was missing before. So now a 'docs' target exsits for repo names AND targets. New global target names are - docs - prepare_docs - generate_docs - html_docs - qch_docs - install_html_docs_docs - install_qch_docs_docs - install_docs_docs Amends 0095ff4e0659906595d281b37c3b7f89e37250af Change-Id: I686be1e0962e40cbce860e8ac2cabb056b360ac2 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* CMake: Regenerate and fix qtcpsocket testLeander Beernaert2020-03-182-1/+4
| | | | | Change-Id: I1293ee604bd0a61abd7f6a5fa305defc4d6c9ae9 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* CMake: Enable testlib selftestsLeander Beernaert2020-03-1863-342/+369
| | | | | | | | | | | This patch adds the equivalent of testlib's selfcover.pri and is enabled for both testlib and the respective selftests test. This patch also fixes the selftests so that they can run without FEATURE_testlib_selfcover enabled. Change-Id: I15913de2d572ac79804ce3e652cee66de74318f8 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* CMake: Regenerate projects after harfbuzz-ng macOS adjustmentAlexandru Croitor2020-03-183-37/+1
| | | | | | | | Amends 21c242f9fd27523d0016b821d0a962231c4bafa6 Change-Id: I1041d27d2ab764950b574ff729d987b5efe5f2fe Reviewed-by: Simon Hausmann <simon.hausmann@qt.io> Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
* CMake: pro2cmake: Add alternative package installation instructionsMitch Curtis2020-03-181-0/+6
| | | | | | | | | | | I kept getting Ignoring pytest: markers 'python_version >= "3.7"' don't match your environment when using the pip command, but this alternative worked. Change-Id: Ibfc7f36de04153d2247f8f62bd129b0c0c723bf2 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* CMake: Disable two graphicsview testsLeander Beernaert2020-03-181-2/+11
| | | | | | | | Disable tst_qgraphicsproxywidget and tst_qgraphicswiddget as they are never run in coin with the current .pro file. Change-Id: I562fa70e03f7c5e547c52507e3e41f4762c0382a Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* Remove garbageLars Knoll2020-03-181-1/+1
| | | | | Change-Id: Ie0b891b9e9c6d12d8684c85a7717d0828fcf1c0c Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
* Merge "Merge remote-tracking branch 'origin/5.15' into dev"Qt Forward Merge Bot2020-03-188-14/+36
|\
| * Merge remote-tracking branch 'origin/5.15' into devQt Forward Merge Bot2020-03-188-14/+36
| |\ | | | | | | | | | Change-Id: Ia79c2457f20f3428ef1b4358c1094e8dc1bbc33e
| | * Header-review: add Q_DECL_DEPRECATED_X macro to deprecated methodVolker Hilsheimer2020-03-171-1/+1
| | | | | | | | | | | | | | | Change-Id: I486d479b2e07042b397869aab117f44e65539f1e Reviewed-by: Lars Knoll <lars.knoll@qt.io>
| | * Fix docs suggesting that it's possible to draw to the X11 screenSimon Hausmann2020-03-171-2/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | It's not possible anymore, since many years. The desktop's don't use the X11 root window anymore :) Fixes: QTBUG-82880 Change-Id: I923f29f23e61d93640cacb2ac20620c5ddc480b9 Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
| | * Update Unicode license for CLDR and UCDEdward Welbourne2020-03-171-2/+17
| | | | | | | | | | | | | | | | | | Task-number: QTBUG-82747 Change-Id: I6bbecaf3f0a8f8e7e0ad31074d88dea7ec98dff2 Reviewed-by: Paul Wicking <paul.wicking@qt.io>
| | * Fix memory leak on new QThreadPool::tryStart versionAllan Sandfeld Jensen2020-03-171-7/+12
| | | | | | | | | | | | | | | | | | | | | | | | Also documents the ownership of the traditional tryStart better, and remove a redundant check. Change-Id: I06202465b782926724fa33a901d08c1626f87373 Reviewed-by: Sona Kurazyan <sona.kurazyan@qt.io>
| | * Add 'since' tag to documentation of new enum valueVolker Hilsheimer2020-03-171-1/+1
| | | | | | | | | | | | | | | Change-Id: I400dc1f2d3dba0fa50b2bcb5e4efbcfc0ad912fd Reviewed-by: Paul Wicking <paul.wicking@qt.io>
| | * QLocale: Fix test on MinGW 8.1.0 32 bitCristian Adam2020-03-171-0/+1
| | | | | | | | | | | | | | | | | | | | | The call of _control87 would crash because of the previous test. Change-Id: I254efe9c2e9892a473a02663e5ff7016791d5d6d Reviewed-by: Tony Sarajärvi <tony.sarajarvi@qt.io>
| | * Log the possible socket error code for the flaky testSona Kurazyan2020-03-171-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | tst_QSocks5SocketEngine::simpleConnectToIMAP() is flaky. It may be useful to log the socket error, to provide more info in case the test fails again. Change-Id: Ia5518dce13fd9da1fa5bfb3d5cf3a52a908b8698 Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io> Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
| | * QNetworkReply: stabilize sslSessionSharing testMårten Nordheim2020-03-161-0/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Sometimes this test would fail due to the session not actually being reused. The cause of this was that the requests were sometimes being completed 1-by-1, enabling the individual requests to re-use the already-connected socket completely because it stayed connected. Setting the Connection-header to close lets us be sure that the socket cannot be re-used when the request is finished. Fixes: QTBUG-82846 Change-Id: I5da8baa50a3a45fb60f1e1613e500e3e9c034fb0 Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
* | | Add support for exposing public QProperty members in the meta-object systemSimon Hausmann2020-03-189-30/+260
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | At the moment this makes the type as well as the setter/getter available through the meta-call as well as the ability to register observers and bindings. Only QProperty members that are annotated with Q_PROPERTY(type name) are made public through the meta-object. Change-Id: I16b98fd318122c722b85ce61e39975284e0c2404 Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
* | | Add a way to filter only rows or columns in QSortFilterProxyModelGiulio Camuffo2020-03-184-16/+157
|/ / | | | | | | | | | | | | | | | | | | | | | | | | If we want to filter away a column without changing the filtering for the rows calling invalidateFilter() is wasteful because it will call filterAcceptsRow() for all rows even though that is not needed. This commit add two functions, invalidateRowsFilter() and invalidateColumnsFilter() that work the same way as invalidateFilter() except that they will invoke respectively only filterAcceptsRow() and filterAcceptsColumn(). Change-Id: Ib4351cf08c229bd97bbbfee6da92397dca579a84 Reviewed-by: David Faure <david.faure@kdab.com>
* | Don't limit AAT support to Darwin based platformsLars Knoll2020-03-181-2/+0
| | | | | | | | | | | | | | | | Harfbuzz supports this in a cross platform way, so there's no reason not to accept a font with AAT tables on other platforms. Change-Id: I00c38a11dfd4a32e846254c1da9e8841090f5fd9 Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
* | macOS: Disable CoreText shaper in Harfbuzz-NGEskil Abrahamsen Blomfeldt2020-03-171-21/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | On macOS, we have been using a different code path internally in Harfbuzz-NG for shaping, since most fonts on the platform are based on AAT rather than OpenType, and this was not supported by the OT shaper in Harfbuzz before HB 2.0.0. However, AAT support has been added to the main shaper code now, and is in a shape where it is used in both Chrome and Firefox, Since we have upgraded the Harfbuzz in Qt as well as updated the minimum required version for system-harfbuzz, we can also use this code path and avoid another source of platform-specific issues. Change-Id: I5cf4626d986998a0a4614c751183bcac6f4e588d Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* | Make it possible to use QTaggedPointer within classesSimon Hausmann2020-03-172-12/+38
| | | | | | | | | | | | | | | | | | | | | | | | | | | | A common pattern in declarative is to use the unused bits in linked list next pointers for additional information storage. The "next" pointer is typically then a tagged pointer of the containing class, which is not fully defined yet. Therefore alignof() can't be used at tagged pointer instantiation time. This patch delays the calls to alignment, etc. until the corresponding functions are used, as in principle the tagged pointer is just a quintptr and no additional information should be needed until operating on it. Change-Id: I87a3578ee921d471e1b60ed5903b549ef0610b97 Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>