| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
All Mac Pros launched since 2019 have AVX512 support (CLX processor) but
the Darwin kernel does not enable the state bits in the XCR0 register
for all processes by default. Instead, it traps the #UD exception and
decodes the instruction to find out if it was an AVX512 instruction. If
so, it adds memory to the thread's context switch space. See [1].
Good solution, but forces us to have OS-specific code to determine if
the OS really supports AVX512. No other OS appears to require this. For
future features (namely, Intel Advanced Matrix Extensions), there's an
official way of implementing this, via the eXtended Feature Disable
register.
Qt has no AVX512 code yet, so this is just being future-proof. Apple has
yet to announce when or if their Mac Pros will switch from Intel Xeon to
ARM.
[1] https://github.com/apple/darwin-xnu/blob/xnu-4903.221.2/osfmk/i386/fpu.c#L174
Change-Id: Ieffc3453b88c4517a1dbfffd162175ead343e622
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
|
|
|
|
|
|
|
|
|
| |
To unlock work while waiting for QISP. QESDP is lacking
a few crucial APIs (isDetached() / isShared() / reset(ptr) / deep
const), so we can't go there right away.
Change-Id: I647eb0db4ea800488a323f3b64661e848998168d
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
|
|
|
|
|
|
|
|
|
| |
Remove their associated enums, too.
All deprecated since 5.9.
Change-Id: Ieefba1a08c221ea7b62500f219baea8a3ccfb7db
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
|
|
|
|
|
| |
Change-Id: I2ddf6901d627677395b39bec34c2c47d27e88d0b
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
|
|
|
|
|
|
|
|
| |
The comment claims it is needed for "the deprecated
QHash::iterator::operator--()", which has been removed already.
Change-Id: I90f5abdcd14e6cac4ed7144e96eb26bf34477391
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
src/corelib/text/qstringconverter.h:160:54: error: no matching constructor for initialization of 'QStringConverterBase::State'
src/corelib/text/qstringconverter.h:72:19: note: candidate constructor not viable: no known conversion from 'QFlags<QStringConverter::Flag>' to 'QFlags<QStringConverterBase::Flag>' for 1st argument
src/corelib/text/qstringconverter.h:75:9: note: candidate constructor not viable: no known conversion from 'QStringConverter::Flags' (aka 'QFlags<QStringConverter::Flag>') to 'QStringConverterBase::State' for 1st argument
src/corelib/text/qstringconverter.h:108:24: note: candidate constructor not viable: no known conversion from 'QStringConverter::Flags' (aka 'QFlags<QStringConverter::Flag>') to 'const QStringConverterBase::State' for 1st argument
src/corelib/text/qstringconverter.h:159:32: warning: constexpr constructor that does not initialize all members is a C++20 extension [-Wc++20-extensions]
src/corelib/text/qstringconverter.h:187:11: note: member not initialized by constructor
src/corelib/kernel/qproperty.h:403:14: error: deduction guide must be declared in the same scope as template 'QProperty'
src/corelib/kernel/qproperty.h:202:7: note: template is declared here
src/corelib/kernel/qproperty.h:403:14: error: deduction guide declaration without trailing return type
src/gui/painting/qregion.h:139:5: error: unknown type name 'HRGN'
src/gui/painting/qregion.h:140:29: error: unknown type name 'HRGN'
Change-Id: I3c195a60ceeb51664368a4aeef90c70c31954fc3
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
Reviewed-by: Paul Wicking <paul.wicking@qt.io>
|
|
|
|
|
|
|
| |
Since 5.14, copy constructor and assignment.
Change-Id: Id569968ee3879caea2f69e373d392881901965f2
Reviewed-by: David Faure <david.faure@kdab.com>
|
|
|
|
|
|
|
|
|
| |
Since 5.0, registerTimer() without a timer type; and filterEvent(void *)
Change-Id: Id50c2daaf7b144ec403351d0fc50111272b34521
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
Reviewed-by: David Faure <david.faure@kdab.com>
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
|
|
|
|
|
|
|
|
|
| |
They've been no-ops since (at least) 5.12.
At the same time, save future readers the need to git blame to find
out how long the other deprecated enum name is.
Change-Id: I2081ba2859c6540651b6f6807cc6bd59890bfce5
Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
|
|
|
|
|
|
|
|
| |
Since 5.8: setHidden(), isHidden()
Part of the QCommandLineParser test also used setHidden().
Change-Id: I05a1c63ff3beb1167ed75632c1b71d7fff17f09e
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
|
|
|
|
|
|
|
| |
Since 5.1: createLocalFile()
Change-Id: I6743df58281d6ba7d90cc6735362e8b654565588
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
|
|
|
|
|
|
|
|
| |
Since 5.0: QUrl's image of the QUrlQuery API
Remove deprecation-suppression from tst_qurl.cpp, too.
Change-Id: Ide826283cb4e177fb34fb4080502f5a4620bd5d7
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
|
|
|
|
|
|
|
|
| |
Since 5.3 joining() and old Joining type
Replaced by JoiningType joiningType()
Change-Id: Iefee50aaf94cec6d67b5fc004b3e68357b2015c5
Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
kernel\qmetaobjectbuilder.cpp(1279): warning C4267: 'initializing': conversion from 'size_t' to 'int', possible loss of data
kernel\qmetaobjectbuilder.cpp(1432): warning C4267: '+=': conversion from 'size_t' to 'int', possible loss of data
sax\qxml.cpp(1275): warning C4267: 'argument': conversion from 'size_t' to 'int', possible loss of data
text\qfontsubset.cpp(920): warning C4267: 'initializing': conversion from 'size_t' to 'int', possible loss of data
text\qfontsubset.cpp(920): warning C4267: 'initializing': conversion from 'size_t' to 'const int', possible loss of data
text\qtextengine.cpp(2664): warning C4267: 'initializing': conversion from 'size_t' to 'int', possible loss of data
text\qtextengine.cpp(2665): warning C4267: 'initializing': conversion from 'size_t' to 'int', possible loss of data
text\qtextengine.cpp(2706): warning C4267: 'initializing': conversion from 'size_t' to 'int', possible loss of data
text\qtextengine.cpp(2707): warning C4267: 'initializing': conversion from 'size_t' to 'int', possible loss of data
itemviews\qbsptree.cpp(60): warning C4334: '<<': result of 32-bit shift implicitly converted to 64 bits (was 64-bit shift intended?)
kernel\qprintengine_win.cpp(1558): warning C4267: 'initializing': conversion from 'size_t' to 'int', possible loss of data
qsql_odbc.cpp(804): warning C4267: 'argument': conversion from 'size_t' to 'SQLINTEGER', possible loss of data
qsql_odbc.cpp(822): warning C4267: 'argument': conversion from 'size_t' to 'SQLINTEGER', possible loss of data
qsql_odbc.cpp(1585): warning C4267: 'initializing': conversion from 'size_t' to 'int', possible loss of data
qsql_odbc.cpp(1602): warning C4267: 'argument': conversion from 'size_t' to 'int', possible loss of data
qwindowsmime.cpp(770): warning C4267: '+=': conversion from 'size_t' to 'int', possible loss of data
windows\qwindowsmime.cpp(770): warning C4267: '+=': conversion from 'size_t' to 'int', possible loss of data
Change-Id: I04fbe17b9782f4c2704933fc005449b1e992475e
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This only arises when the system locale tells us to use its zero as
our zero digit, since no CLDR locale uses it by default. Adapt an
MS-specific QLocale::system() test to use Suzhou numbering, so as to
test this.
While updating the locale-restoration code to also restore the digits
being set in that test, add restore code for the long time format,
where previously only the short time format was restored. Add a
comment to make it less likely one of those shall be missed in future.
Fixes: QTBUG-85409
Change-Id: I343324bb563ee0e455dfe77d4825bf8c3082ca30
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The tests/auto/cmake project can be configured separately as a
standalone project with qt-cmake, or as part of the overall qtbase
standalone tests.
To do that a bunch of things were done
- Ported all Qt5 strings to Qt6
- Replaced in all projects the use of add_definitions and
include_directories with a target based approach, except for 2 tests
where we check that the old-style approach works, otherwise the
tests would file
- Removed some (possibly unneeded) EGL / OpenGL tests
- Fixed some C++ code
- Added setup code to tests/auto/cmake/CMakeLists.txt to figure out
which modules are available and should be tested
- Fixed Qt6CTestMacros.cmake to be loaded by Qt6Core
- Removed the CMake tests to not be run in qmake builds of Qt because
they would fail anyway
- Enabled the CMake tests to be part of standalone tests
- Disabled auto-passing of the C and CXX compiler cache vars when
cross-compiling so that the tests can somewhat pass on boot2qt.
This is the issue we encountered in
e2b2cd9397c76e91ac1ebe493bcac7696767c02e
- Ultimately disabled tests for boot2qt, because the -rpath-link
flag is not generated by CMake for some reason.
- Added code to setup the environment when running an executable that
was built as part of the test, so that the proper Qt libraries are
found. This handles both the standalone tests case and separate
project case.
The remaining unported tests are test_import_plugins which requires
quite a bit of work to get some modules and plugins built that were
done as part of the qmake .pro files, test_plugins that checks
some Network plugins which I'm not sure about, and
test_add_big_resource which doesn't work with namespaced builds
and there's no good way of detecting those at the moment either.
Change-Id: Ic8809c72817d1db81af6c6014c11df6473ad8c75
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
|
|
|
|
|
| |
Change-Id: Ie15f5a43cb97422b30c8be884ff6b0d2d8647ea5
Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
|
|
|
|
|
|
|
|
| |
Make sure to init tagsDone from constructor.
Avoid relying on QXmlStreamReaderPrivate::init().
Change-Id: I40c08dd370b0ad519e2d6ebc23b8a906c836508e
Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
|
|
|
|
|
|
|
| |
Add missing lastAttributeIsCData
Change-Id: I66429d35da0451eefe8d14e031306b16df910d0f
Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
|
|
|
|
|
|
|
| |
Allows defining multiple static plugins in the same translation unit.
Change-Id: I175fd4980b21a461a18c23ed1a62a3cea73e67a0
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
QEasingCurve has a richer variety of curves and curveShape was already
implemented by changing the easingCurve property.
[ChangeLog][QtCore][QTimeLine] Deprecated QTimeLine's curveShape
property in favor of the easingCurve property.
Pick-to: 5.15
Change-Id: I7261c0f24d7e02bc94624f0b74d699df62de1a52
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
Reviewed-by: hjk <hjk@qt.io>
Reviewed-by: Paul Wicking <paul.wicking@qt.io>
|
|
|
|
|
|
|
|
|
|
|
| |
Up to (including) C++11, integral bitfields of unspecified signedness have
implementation dependent signedness.
Detected by LGTM.com static analyzer.
Pick-to: 5.15
Change-Id: Ibaa0fdc6e443495a3cd40330c4573c9cc6ccdf5b
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
|
|
|
|
|
| |
Change-Id: Id32dc567fa0359ad281d34fcf88c46484f87ce2c
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
|
|
|
|
|
|
|
|
|
| |
For types that don't have an operator==(), always trigger the binding
and the changed notification.
Task-number: QTBUG-85578
Change-Id: I41374f6d13c88106f4de83864e82172f3a248150
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
|
|
|
|
|
|
|
|
|
|
|
| |
The compiler apparently doesn't resolve the emplace overload
correctly to the rvalue version, leading to infinite recursion
in the overload that takes a const Key & as argument.
Take a copy to make it explicit.
Change-Id: I22039d6ca1e2176c81e51b181c72f511dab662f7
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
|
|
|
|
|
|
|
|
|
| |
This follows up on commit 5ba66c5622e9e0da87a5037399b375d7e8cee554,
which removed all locale-dependence from QDateTime; I neglected the
doc of the DateFormat enum.
Change-Id: I244db9c6e1ab47892162c7f441c2b4202662e6e4
Reviewed-by: Paul Wicking <paul.wicking@qt.io>
|
|
|
|
|
|
|
|
|
|
| |
Rather than passing an in-out reference parameter and ignoring the
return (of that parameter) use an actual rvalue ref parameter and move
the value through the function, to make it easier for compilers to
see how to optimize it.
Change-Id: Ie239400345da012d8fb8a731394f1687b8b62430
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
QVariant::isNull() shall no longer return true when the variant does
package an object, but that object's isNull() is true, so take care to
catch QString-wrapping returns that contain an empty string, except
where this is a valid return. Generally tidy code processing the
returned value.
At the same time, make the second argument of query() optional, since
it's only used by a subset of the query types.
Change-Id: I3dba9a59260f9f182ca277784c77277e2ea255e2
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
|
|
|
|
|
|
|
|
|
|
|
|
| |
One of the former's overloads was a template; it and its _int variant
took an optional maxlen; no caller passed maxlen, only three callers
didn't over-ride the template's <QString> default return value to
<QVariant>; so eliminate maxlen and have it simply return QVariant,
using .toString() on it where needed.
Change-Id: Icf3ff32f167ee96cfbb6412613ecd7f0886a2fe9
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
|
|
|
|
|
|
|
|
|
|
| |
The reverse iteration API got deprecated in code already in commit
dbb54805f63f9e . Now also fix the documentation.
Fixes: QTBUG-85482
Pick-to: 5.15
Change-Id: I3b575f60dabfe1005b9744d17c257da3e22817c5
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Smart pointers like QSharedPointer<T> do have a value_type, but their
equality does not depend on T being comparable. Therefore, instead of
simply checking for T::value_type, test for a few other container
requirements.
This also required to add an additional check for std::optional, as that
one has an unconstrained operator== on MSVC.
Change-Id: Iefd048f7aa360f4713ecd79f80acd7dae72ee18c
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Read three more values from CLDR and add a byte to the bit-fields at
the end of QLocaleData, indicating the three group sizes. This adds
three new parameters to various low-level formatting functions. At the
same time, rename ThousandsGroup to GroupDigits, more faithfully
expressing what this (internal) option means.
This replaces commit 27d139128013c969a939779536485c1a80be977e with a
fuller implementation that handles digit-grouping in any of the ways
that CLDR supports. The formerly "Indian" formatting now also applies
to at least some locales for Bangladesh, Bhutan and Sri Lanka.
Fixed Costa Rica currency formatting test that wrongly put a separator
after the first digit; the locale (in common with several Spanish
locales) requires at least two digits before the first separator.
[ChangeLog][QtCore][Important Behavior Changes] Some locales require
more than one digit before the first grouping separator; others use
group sizes other than three. The latter was partially supported (only
for India) at 5.15 but is now systematically supported; the former is
now also supported.
Task-number: QTBUG-24301
Fixes: QTBUG-81050
Change-Id: I4ea4e331f3254d1f34801cddf51f3c65d3815573
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
|
|
|
|
|
|
|
|
|
| |
Break out some shared code in the integer formatting to save
duplicating it. Simplify what's left.
Renamed some variables to match Qt style.
Change-Id: I369a013802a267a94725302de0d1d33291c29538
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
|
|
|
|
|
|
|
|
|
|
|
|
| |
Instead of passing lots of instance data around among public static
methods and functions in qlocale_tools, do the work in instance
methods that can access the relevant attributes of the locale when
they need them. Incidentally reduces clutter in the global namespace.
Add a signPrefix() to handle a repeated computation. Keep new internal
methods private.
Change-Id: I9556a960acac9fb645872337c61f509fb902984e
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
During review of a refactor (coming shortly), Thiago wondered what the
magic numbers were. On closer examination, I concluded that they were
wrong and wrote some tests to prove it. This commit adds those tests;
replaces the misguided old code with something that passes them; and
documents the reasons for the various parts of its decisions.
In the process, tidy up QLocaleData::doubleToString() somewhat and
rename some of its variables to conform to Qt coding style.
Change-Id: Ibee43659b1bdb0707639cdb444cfe941c31d409f
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
|
|
|
|
|
|
|
|
|
|
|
|
| |
Use QLocaleData::c()'s instance method, rather than QLocaleData's
static method, to format integers. This avoids the need to duplicate
various arguments as literals, that the C locale provides as default.
It also future-proofs against changes to the static methods.
Change-Id: I5bba407cfc29e3f33d1e9fa878ddf35fff3b113c
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
| |
Task-number: QTBUG-85235
Change-Id: Ibd6c98d952c1bb9916b64715c6430fb0d3fe3843
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
| |
Remove the hand-rolled union used only to achieve alignment.
Change-Id: I8e635fa0d09042f30fd67d589db9bc384c0ec8ef
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
|
|
|
|
|
| |
Change-Id: Id1cef09642ccde701e57e8f0a3a3d0e5fcf47e5c
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
|
|
|
|
|
|
|
| |
Remove casts that truncate a qsizetype or size_t in qstring.cpp
Change-Id: Ibc1515f9906d5a0840254e60e2e7dfca716b63b5
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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>
|