summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Move eglconvenience to QtGuiFriedemann Kleint2020-07-1366-289/+292
| | | | | | | Task-number: QTBUG-83255 Change-Id: I8a008d8906308dd73a0793db5b88d3a1b6fdaf5c Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
* CMake: Propagate non-qtbase configure args to other repositoriesAlexandru Croitor2020-07-132-3/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Currently configure arguments specified in qt5.git/coin/platform_configs are only used when configuring qtbase itself. Sadly, Coin lacks support for specifying per-repo configure flags. Until Coin gets the feature, the best we can do is to pass all the configure flags to each repo we are configuring. Unfortunately if we pass all of qtbase's configure flags to other repos it will break cross-compiling configurations (because the toolchain argument would be overridden with the initial qtbase provided toolchain instead of the Qt generated chainloading one). We thus have to separate flags that should and shouldn't be passed to other repos. Introduce usage of two new environment variables called NON_QTBASE_CONFIGURE_ARGS and NON_QTBASE_TARGET_CONFIGURE_ARGS. Additional configure arguments can be specified in these variables, and they will be used when configuring repositories, with the exception of qtbase. Ultimately, this is needed to disable detection / usage of certain strawberry perl system libraries in qtimageformats on MinGW. Doing that prevents crashes of the tst_qtiff test. Minor implementation note is that the environment variables have to be explicitly set in qt5.git platform_configs otherwise it breaks the Windows Ninja Multi-Config configuration with the error "The system cannot find the file specified". Supplements 4b4f0be08debcfde62caf4066222b348ce65dea1 from qt5.git. Amends previous revert 946fc92d20e720a82236877a378ce1c883533aa0 Task-number: QTBUG-84886 Task-number: COIN-601 Change-Id: Ie4305c5d799bf4a29da5032a691e797b49c3cf33 Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* Fix passing QDBusUnixFileDescriptors over peer-to-peer connectionsSteffen Kieß2020-07-136-14/+44
| | | | | | | | | | | | | | | | | | | Passing QDBusUnixFileDescriptors over peer-to-peer connections currently does not work, because QDBusConnectionPrivate::setPeer() does not set this->capabilities (unlike QDBusConnectionPrivate::setConnection() which is executed for bus connections). Keep track of whether the connection already has been authenticated, and once the connection does get authenticated, update this->capabilities. Note that sending a message directly after connecting (before any message has been received from the peer) might still fail if the message contains a QDBusUnixFileDescriptor. Pick-to: 5.15 Fixes: QTBUG-85396 Change-Id: Ib83213ebcd3255fb091c6faefb3618745b8d736c Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Fix sporadic build failures of eglfs_kms_vsp2Joerg Bornemann2020-07-131-0/+1
| | | | | | | | | | The eglfs_kms_vsp2 subproject depends on eglfs_kms_support. Add the missing build dependency. Pick-to: 5.15 Fixes: QTBUG-85486 Change-Id: I1110d0f02166d9cdec1d734de679e2d36c6b026a Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
* Make -qtlibinfix affect the names of plugins by defaultJoerg Bornemann2020-07-134-16/+1
| | | | | | | | | | | | | | | | In Qt5, the -qtlibinfix option did not affect the naming of plugins, unless -qtlibinfix-plugins was set. This option was added in 56416509930 to offer a way to have -qtlibinfix affect the plugin names without changing the default behavior. We now remove the -qtlibinfix-plugins option, as the old behavior is not desirable. [ChangeLog][configure] The -qtlibinfix option now affects the names of plugins. The -qtlibinfix-plugins configure option was removed. Task-number: QTBUG-15192 Fixes: QTBUG-85439 Change-Id: I96f5c2577b76274929c431621967df0e9b4631b7 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* QtConcurrent: Get rid of code repetition for RunFunctionTask::run()Jarek Kobus2020-07-132-34/+21
| | | | | | Change-Id: If270982e54d2b11be00c71b9d012af629d181dfe Reviewed-by: Sona Kurazyan <sona.kurazyan@qt.io> Reviewed-by: Andrei Golubev <andrei.golubev@qt.io>
* macOS: Use Cocoa to map key events to possible shortcut key sequencesTor Arne Vestbø2020-07-131-3/+19
| | | | | | | | For now we just verify that the Cocoa API produces the same keymaps as we get from Carbon. Once that's verified we can solidify the code. Change-Id: I0d2aa1bb0a006d29c0149e3ff2fd5299ba922326 Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
* macOS: Modernize QCocoaKeyMapper key mapTor Arne Vestbø2020-07-132-53/+36
| | | | | Change-Id: I3e8a4cfa611b6ae575466c493aac438dc831e89a Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
* CMake: Fix QT_STAGING_PREFIX for repos other than qtbaseJoerg Bornemann2020-07-133-2/+18
| | | | | | | | | | | | | For repositories other than qtbase the QT_STAGING_PREFIX was empty, because it was only determined in qtbase. Also, we save the CMAKE_STAGING_PREFIX in the Qt6BuildInternals package and set this variable if it's not explicitly set by the user. As with CMAKE_INSTALL_PREFIX this behavior can be prevented by defining QT_BUILD_INTERNALS_NO_FORCE_SET_STAGING_PREFIX=ON. Change-Id: I73100abbef24f5d3fb8f82029d0374176edc8048 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* CMake: Fix CMAKE_INSTALL_PREFIX assignment in QtBuildInternalsExtraJoerg Bornemann2020-07-131-1/+1
| | | | | | | | The prefix value must be surrounded by double quotes in case it contains whitespace. Change-Id: I393c57368d7a255f5042e363405071ef042afc18 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* rhi: Allow null resources in srbLaszlo Agocs2020-07-134-68/+330
| | | | | | | | | | In this case the srb represents the layout only, and can still be used to create a pipeline. For setShaderResources() one will then need to use another, layout compatible, srb that references valid resources. Change-Id: I3ea5b63df3be8847540ca4c0c40fbd29dbed8fb7 Reviewed-by: Paul Lemire <paul.lemire@kdab.com> Reviewed-by: Andy Nichols <andy.nichols@qt.io>
* Use numeric_limits instead of hand-coded equivalentsEdward Welbourne2020-07-134-22/+20
| | | | | | | | | | | | | | As a comment noted, the reason for QLocaleData rolling its own values describing the ranges of digits and exponents in a double were all about std::numeric_limits's constants not being constexpr - which they have now been since C++11, so we can do away with our own. One of the constants was used in two places in the same way; so abstract that use out into an inline function in qlocale_tools, to save duplication and give somewhere to document it. Change-Id: I7e3740ece9b499c0ec434de18d70abe69e1fe079 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* tst_QCollator: avoid an unused variable warningEdward Welbourne2020-07-131-0/+2
| | | | | Change-Id: Ib173df3e9b92f06935aa4de5a1d423118877ad22 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Move QRegExp and its remaining mentions out of QtCoreSona Kurazyan2020-07-1331-7906/+5
| | | | | | Task-number: QTBUG-85235 Change-Id: Ibd6c98d952c1bb9916b64715c6430fb0d3fe3843 Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* configurejson2cmake: Use a context manager for file special handlingJoerg Bornemann2020-07-131-13/+21
| | | | | | | | | | | | One can now write with special_cased_file("base/dir", "foo.txt") as fh: do_something(fh) This makes the code of processJson a bit clearer, and it allows us to easily add more files that support the special handling comments. Change-Id: Ia25d0c0d48df1802c5e2123d05345a88b42a2981 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* configurejson2cmake: Generalize special case supportJoerg Bornemann2020-07-132-19/+8
| | | | | | | | | The SpecialCaseHandler supported only two file names: "CMakeLists.txt" and "configure.cmake". Generalize the code to allow for arbitrary file names. We will use this in a subsequent commit. Change-Id: I0adada91409a11a369fd1cf2d6ab21cc8f28ba0f Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* Check returns of hex2int in get_hex_rgbRobert Loehning2020-07-132-0/+5
| | | | | | | | | | Avoids undefined behavior when trying to shift negative values. Fixes: oss-fuzz-21860 Fixes: oss-fuzz-23968 Pick-to: 5.15 5.12 Change-Id: I879c97624e3f8ba9cf01e0a3a682379cd8c4a199 Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
* QtGui: Clean up event headersFriedemann Kleint2020-07-132-3/+12
| | | | | | | | | | - Remove unimplemented QSinglePointEvent() - Remove forward declaration of QTouchEventTouchPointPrivate - Update copyright and add comment to qevent_ph.h Task-number: QTBUG-72173 Change-Id: Ie64b6071f2611001dcd8e3deec2f5ed382bb2312 Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
* QVariant::setValue(): enable move semanticsGiuseppe D'Angelo2020-07-135-27/+41
| | | | | | | | | | | | Given we optimize for the case where the new value is of the same type of the one already stored in the variant, enable move assignment for that case. As a drive-by, avoid a path to detach() for data() if we know we're detached. Change-Id: I9abbdc10637ce77ebb747b49d83e1ef914d997bb Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* QCryptographicHash: explicitly activate the used union memberGiuseppe D'Angelo2020-07-121-7/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | A union member lifetime does not start automatically if one takes a pointer to a union member and writes into the member. Only the subscript syntax in an assignment features such automatic lifetime start [class.union§6]. In the other cases, one is allowed to get a pointer to the storage ([basic.life§6]) but has to start lifetime explicitly via placement new. Hence, do so, or we end up in UB land. We're left with the problem of reset() which may be called multiple times. I think we can actually just create a new object in the same storage without destroying the pre-existing object by exploiting [basic.life§5]: reusing the storage causes lifetime end for the old object. Moreover, since the union is over trivial datatypes (C structs), there's no side effects in the destructor of the old object, so there is no need to call it. Drive by fix, apply some DRY for SHA3. Change-Id: Idc351568635e59d45421311f043956ab3aabf389 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> Reviewed-by: Linus Jahn <lnj@kaidan.im>
* QVLA: use std::aligned_storageGiuseppe D'Angelo2020-07-121-5/+1
| | | | | | | Remove the hand-rolled union used only to achieve alignment. Change-Id: I8e635fa0d09042f30fd67d589db9bc384c0ec8ef Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* QStringView: Remove outdated note about usage with QListLinus Jahn2020-07-121-4/+0
| | | | | Change-Id: Id1cef09642ccde701e57e8f0a3a3d0e5fcf47e5c Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Disable PCRE2 JIT on macOS ARM64Tor Arne Vestbø2020-07-103-2/+13
| | | | | | | | | | | | It's already disabled for many other ARM platforms, and upstream support for Apple Silicon is still pending, so we disable it for now. See: https://bugs.exim.org/show_bug.cgi?id=2618 Fixes: QTBUG-85528 Pick-to: 5.15 Pick-to: 5.12 Change-Id: I42b6e5efaa07c9b832cd05a47436eb86a214e9bf Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Fix buffer overflowRobert Loehning2020-07-103-1/+10
| | | | | | | Fixes: oss-fuzz-23988 Pick-to: 5.15 5.12 Change-Id: I4efdbfc3c0a96917c0c8224642896088ade99f35 Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
* Remove that casts to int/uint that shouldn't be there anymoreLars Knoll2020-07-101-35/+26
| | | | | | | Remove casts that truncate a qsizetype or size_t in qstring.cpp Change-Id: Ibc1515f9906d5a0840254e60e2e7dfca716b63b5 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Clarify relation between Qt::Keys and Unicode rangesTor Arne Vestbø2020-07-101-101/+114
| | | | | | | | | | | | | | The Qt::Keys have been re-ordered and comments added to reflect the layout of the enum values in relation to the Unicode ranges. Bits 0x00200000, 0x00400000, and 0x00800000 have been reserved in case we want to use them for Qt::ModifierKey later on. Doing so would require changing Qt::Key_unknown to not overlap with these bits, or to accept that Modifier + Qt::Key_unknown is not a supported usecase. Change-Id: I580a01b0a47a28948a0f0018c47931395933b8f2 Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* Move all the QProperty related code into one compilation unitLars Knoll2020-07-108-442/+325
| | | | | | | | | | | | | And mark some methods as inline. Performance is critical for our new property system. Compiling it in one unit makes it possible for the compiler to do a much better job at inlining and generating optimized code. Improves performance of binding evaluations by another 20%. Change-Id: I5a2aa93c74d2b68418b0a9d2e34d8199bb71e3ad Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
* Cache whether a property is a booleanLars Knoll2020-07-102-4/+6
| | | | | | | | | We have the space anyway, and this cuts away another couple of percent during binding evaluation to avoid a call that checks whether the type is bool. Change-Id: I41c320f93bf0a33f0cb15962a154c59a2e47fd7a Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
* Significantly improve performance of binding evaluationLars Knoll2020-07-106-55/+81
| | | | | | | | | | | | | | Avoid any QVariant or type dependent code in the cpp files. Instead, let the binding wrapper determine if the value has changed and return true/false accordingly. This required also some reworking of the guard mechanism for notified properties, where the guard function wrapper now calls first the binding evaluation function and then passes the result to the guard. Change-Id: I350d07a508ccc0c5db7054a0efa4f270b6a78ec3 Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
* Separate the error case when evaluating bindingsLars Knoll2020-07-105-45/+25
| | | | | | | | | | | | | | | | | | | | | There's no point in returning a usually empty error when evaluating bindings, adding overhead to the regular code path. Instead, the error can be set on the currently evaluating binding if required. This streamlines the functor used to wrap the binding and should thus expand to less code and execute faster in the regular case. To achieve this, expose a pointer to the currently evaluating binding in the private API (as QtQml needs it to be able to report errors). The error case now requires one additional TLS lookup, but we don't really care about performance in that case anyway. Change-Id: Iecb450e765244930a41d813fcf8eb4013957a6a3 Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
* Cleanup QPropertyBindingErrorLars Knoll2020-07-104-21/+11
| | | | | | | | | | | | Remove location(). The method would always return an empty value. If you need the location, the binding itself has it. Remove setDescription() and require that the description gets passed in the constructor. Never create a d pointer if type is NoError, so we can quickly check for it inline. Change-Id: I7eb8a94786281069d6ea2d82567c09aa50c52ef6 Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
* Refactor pointer event hierarchyShawn Rutledge2020-07-1046-1889/+1410
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Some goals that have hopefully been achieved are: - make QPointerEvent and QEventPoint resemble their Qt Quick counterparts to such an extent that we can remove those wrappers and go back to delivering the original events in Qt Quick - make QEventPoint much smaller than QTouchEvent::TouchPoint, with no pimpl - remove most public setters - reduce the usage of complex constructors that take many arguments - don't repeat ourselves: move accessors and storage upwards rather than having redundant ones in subclasses - standardize the set of accessors in QPointerEvent - maintain source compatibility as much as possible: do not require modifying event-handling code in any QWidget subclass To avoid public setters we now introduce a few QMutable* subclasses. This is a bit like the Builder pattern except that it doesn't involve constructing a separate disposable object: the main event type can be cast to the mutable type at any time to enable modifications, iff the code is linked with gui-private. Therefore event classes can have less-"complete" constructors, because internal Qt code can use setters the same way it could use the ones in QTouchEvent before; and the event classes don't need many friends. Even some read-accessors can be kept private unless we are sure we want to expose them. Task-number: QTBUG-46266 Fixes: QTBUG-72173 Change-Id: I740e4e40165b7bc41223d38b200bbc2b403e07b6 Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
* Tests: Use QVERIFY instead of QCOMPARE for empty listsFriedemann Kleint2020-07-108-15/+15
| | | | | | Pick-to: 5.15 Change-Id: I4da02fa11583eca3844bf42efcdf818b8bbd6a94 Reviewed-by: Jarek Kobus <jaroslaw.kobus@qt.io>
* Polish the settingseditor exampleFriedemann Kleint2020-07-104-107/+227
| | | | | | | | | | | | | | | | | | | | | | | The example is meant to show an item delegate with a line edit with QRegularExpression-based validation depending on type. Unfortunately, this does not work since QSettings mostly return QString types. Fix it to a partially working state by - Making the expressions match from beginning to end which was overlooked in the QRegExp->QRegularExpression change. - Use QCheckBox, QSpinBox for bool/int since it is silly to have a user edit a bool value by typing 'true'/'false'. - Move the expressions out to a separate struct to be able to do some guessing of the type when reading the QSettings, implement for bool and int. - Use a fancy Unicode checkmark for displaying bools. - Fix the garbled display of QByteArray with binary data by displaying them with hex characters and setting them read-only. Change-Id: Iba22dfafc3b813b3fd3d2915ef5210d661049382 Reviewed-by: Paul Wicking <paul.wicking@qt.io>
* Remove unused method QKeyMapper::clearMappings()Tor Arne Vestbø2020-07-104-15/+0
| | | | | | | | | | | The plumbing from QKeyMapper to the platform specific key mappers via QPA was never done, so this method is unused. The code path in QKeyMapper that would trigger it would be changeKeyboard(), but that's already handled in QCocoaKeyMapper, and wouldn't be initiated from the cross platform code in any case. Change-Id: Ibc0c419627fc0430d028945038c1f2fbafe42d4b Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
* macOS: Simplify dead key handlingTor Arne Vestbø2020-07-101-2/+2
| | | | | Change-Id: Ie2e2c6e1b1daf08146fd42f3ce58194ee1918794 Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
* macOS: Simplify Ctrl+LeftMouse->RightMouse handlingTor Arne Vestbø2020-07-101-2/+1
| | | | | Change-Id: I080bfaec273ea45809d72e513add16b7114c7bbb Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
* macOS: Merge keySequenceToKeyEqivalent into call siteTor Arne Vestbø2020-07-101-17/+13
| | | | | Change-Id: Iae33f627ad6abfc9bbba9b098417bd13caee00f8 Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
* macOS: Add QCocoaKeyMapper::toCocoaModifiersTor Arne Vestbø2020-07-104-23/+18
| | | | | Change-Id: I489c64733275260bb041f8df5cc5ff4a571d4e9c Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
* Android: Enable configuring for a single abi architectureAndy Shaw2020-07-105-5/+7
| | | | | | | Fixes: QTBUG-80938 Pick-to: 5.15 Change-Id: Id87202e6b2520b18c6b06b71675157f588a28bd6 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* Mark gradlew with Unix eol endings as it is a scriptAndy Shaw2020-07-101-0/+1
| | | | | | | | | | | | Since this could end up being copied from a Windows machine to another when it is part of a project using Android then we should make sure the line endings are preserved to be on the safe side. This avoids a strange problem when deploying due to gradle failing to run. Change-Id: Ie170461a351c9279092b58d4e8353b81cc8561d3 Pick-to: 5.15 5.12 Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com> Reviewed-by: Assam Boudjelthia <assam.boudjelthia@qt.io>
* Fix one check for AVX2Allan Sandfeld Jensen2020-07-101-1/+1
| | | | | | | | | | | | We should check for the haswell set of features here as well, as we do in the main switch. Not that there are supposed to be any processors with AVX2 without the full set though. Pick-to: 5.15 Change-Id: Ifa648d605a50748cff21ae0a0c75ae47f620d9c0 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Remove the setting of GrowsBackwards from QListAndrei Golubev2020-07-101-4/+0
| | | | | | | | | | | | | | | The flag is practically unused, there is no logic that relies on its existence. From experience of prototyping prepend optimization (where the flag actually makes sense), it is better to temporarily remove it: QList is, in fact, unaware of how to correctly use it at the moment Once GrowsBackwards-using code is implemented at the lower levels, the usage of the flag will be reintroduced to QList along with the changes that ensure correct behavior Task-number: QTBUG-84320 Change-Id: I618adfcd69b15c76ddafd78cca5e9aa0073e4c91 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Rename local variables masking parametersDimitrios Apostolou2020-07-101-6/+6
| | | | | | | As found by LGTM.com. Change-Id: I9a237899dc50009da5643c49c590f3b15bb817bf Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Rename local variable hiding parameterDimitrios Apostolou2020-07-101-2/+2
| | | | | | | As found by LGTM.com. Change-Id: If3024bdaad06cafcd401b4ee04524ad03bd69a97 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Remove unused importsDimitrios Apostolou2020-07-103-3/+0
| | | | | | | As found by LGTM.com. Change-Id: I1704f10f9bab1b11ab22824aca0cfcdcb47fef2f Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
* Rename local variable hiding global one with the same nameDimitrios Apostolou2020-07-101-4/+4
| | | | | | | As found by LGTM.com. Change-Id: Ic4c38c02529e7cc7eb7c79c3936b7d5f030fd84f Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Remove duplicate dict entryDimitrios Apostolou2020-07-101-1/+0
| | | | | | | As found by LGTM.com. Change-Id: I9d41fec8a9f80fe9cb1cae960418032f84646a99 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* Remove local variable masking a global oneDimitrios Apostolou2020-07-101-2/+1
| | | | | | | As found by LGTM.com. Change-Id: Ied926a9eace9044ec9abc859557cd28178e5defb Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Remove dead codeDimitrios Apostolou2020-07-101-28/+0
| | | | | | | Found by LGTM.com. Change-Id: I661e2287a6964b63d5b03c8913bc4b09f21ffdf1 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>