| Commit message (Collapse) | Author | Age | Files | Lines |
| ... | |
| |
|
|
|
|
|
|
|
|
| |
Adds memory barrier when image/buffer has been written to in a shader.
This is required so that reads and writes are synchronized
between render calls.
Task-number: QTBUG-125121
Change-Id: Ic3b5881d246b451bb83e97f77aa6692513de904c
Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
|
| |
|
|
|
|
|
|
|
| |
As found in laptops, like thinkpads.
And Key_Call for directfb.
Change-Id: I7858f5c81cff43c1550716e4141eef8209e4794f
Reviewed-by: David Edmundson <davidedmundson@kde.org>
|
| |
|
|
|
|
|
|
| |
Without this, a click on a drag object will leave the
application in an inconsistent state.
Change-Id: I78c9a7b044380ae0b84b16c1579583efa6a4810b
Reviewed-by: Lorn Potter <lorn.potter@qt.io>
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The static forces the compiler to allocate storage for the objects in
the executable, either causing relocations on startup, or, on GCC, a
pointless magic static guard:
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=84411
Make them constexpr instead. This allows the compiler to construct
them ad-hoc when one is needed (one lea, one movi).
Amends 8e1ff45e74f529c7f49688242ea0fd25ce2913f3.
Also port to _L1 UDLs, amending
7b6b133746aa8bf23e08753851d7e23cc9d76170.
Pick-to: 6.10 6.8 6.5
Change-Id: I0cce28154f1155a2abee88572424f3c73073efe5
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
|
| |
|
|
|
|
| |
Change-Id: Iaf4169da2c325446a8bc817994333a1f183f622d
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
Reviewed-by: Mate Barany <mate.barany@qt.io>
|
| |
|
|
|
|
|
|
| |
It blocks dragging.
Change-Id: I9a0cdaeac29e96fac35b6e211f3da983fe2f9a6e
Reviewed-by: Lorn Potter <lorn.potter@qt.io>
Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
|
| |
|
|
|
|
|
|
|
| |
Found in API hash tag review.
Amends 8f4adf0948937ff2f0139bb676d064f2b26febc4.
Change-Id: I8c32c4fc2e4c9cd8e32f9d029800364432e5c7dd
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Amends 4eed22e67ed98ec2565be84a4838955af0faf8b0.
The parent control geometry is specified relative to the parent window.
However, currently, the QToolTip passes it in the global coordinate
system.
If you have only one output, it'll work as expected, but with
multi-monitor setups, tooltips will be mispositioned.
The `if (w)` guard was added to let QtWayland compute a better fallback
geometry if no parent widget has been provided to QToolTip::showText().
Change-Id: Ia674c4d41fa00ad341a529268c0bc127e5e182a3
Reviewed-by: David Edmundson <davidedmundson@kde.org>
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
|
| |
|
|
|
|
|
|
| |
It's required by std::random_access_iterator_tag.
Fixes: QTBUG-140181
Change-Id: Icb9c72395ea5c1a26069ac66d969c98fb9a58407
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
|
| |
|
|
|
|
|
|
|
|
|
|
| |
QSpinBox and (editable) QComboBox use a QLineEdit for the edit part.
Therefore the coloring needs to be adjusted and a double painting of the
QLineEdit background must be avoided. Also the geometries have to be
adjusted here.
Pick-to: 6.10
Fixes: QTBUG-142129
Change-Id: I2096323658aefc6ba305432c0daa4b5e445b5ac5
Reviewed-by: Wladimir Leuschner <wladimir.leuschner@qt.io>
|
| |
|
|
|
|
|
|
|
|
|
| |
The subControlRect for SC_ComboBoxEditField can't be used from the base
style as it does not properly takes the PM_MenuButtonIndicator width
into account which makes the lineedit to large.
Pick-to: 6.10
Task-number: QTBUG-142129
Change-Id: Ic3e28cdb29bb9f9e23ac9956b601896af5bebf41
Reviewed-by: Wladimir Leuschner <wladimir.leuschner@qt.io>
|
| |
|
|
|
|
|
|
| |
Use an enum class instead simple defines.
Pick-to: 6.10
Change-Id: Ieb0e14134400d8263afe6e97e636478c9acb9e4e
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
|
| |
|
|
|
|
|
|
| |
[ChangeLog][Third-Party Code] Updated SQLite to v3.51.1
Pick-to: 6.5 6.8 6.10
Change-Id: Ib648ce417abcd376d4d2bbec3825216ef7c8a61d
Reviewed-by: Andy Shaw <andy.shaw@qt.io>
|
| |
|
|
|
|
|
|
|
|
| |
The size must be separated by '-' instead '_'.
Pick-to: 6.10 6.8
Fixes: QTBUG-142139
Change-Id: Ifaeebbf50c9aec80984b99301b0a3f17ae7c8df8
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
Reviewed-by: Wladimir Leuschner <wladimir.leuschner@qt.io>
|
| |
|
|
|
|
|
|
|
| |
They cannot be fixed and have to be replaced by
QVariant::{ConstReference|Reference|ConstPointer|Pointer}.
Task-number: QTBUG-140181
Change-Id: I0b1f5799565a4965eef16bd6c88e6868c748f493
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
|
| |
|
|
|
|
|
|
|
| |
They cannot be fixed and have to be replaced by
QMeta{Association|Sequence}::Iterable.
Task-number: QTBUG-140181
Change-Id: Ic62dcfecb576f8cd11902a245a2ac5422f5011d3
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
|
| |
|
|
|
|
|
|
| |
With this change, variable axes can be saved and loaded from settings.
Task-number: QTBUG-141412
Change-Id: I0744d05cc38ac47d89f3e4314311906c28c0ec63
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
The QMap shouldn't have been used as a sort() replacement, but now
that 'features' is itself a QMap, we can skip this step.
Amends 8fe6ad3eed40a8c851bf5d49e322f9794b9f7dcf.
Task-number: QTBUG-141412
Task-number: QTBUG-142246
Change-Id: Ia40f82a776758a18ce057b49769ac38f3d2fdddb
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
Reviewed-by: Vlad Zahorodnii <vlad.zahorodnii@kde.org>
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Even though the docs try to dismiss any guarantees as to the behavior
of the operator, they do mention it's there to make QFont usable as
keys in QMap. QMap, being a wrapper around std::map, requires the key
type to be sorted using a strict weak ordering.
The current QFont::operator<() is not a strict weak ordering.
In particular, because of the way the `features` QHash is compared
(lexicographically, as far as I can make out), and due to the nature
of QHash as an unordered container, it can easily happen that two
QFont objects compare equal, but one is _also_ less than the other,
according to this operator.
To see this, consider that two QHash objects are equal if their
linearizations are permutations of each other, but that doesn't mean
that these linearizations need to be lexicograpically equal: {{1, 2},
{2, 4}} is a permutation of {{2, 4}, {1, 2}}, but the former is
lexicographically strictly less the latter.
The minimal fix is to use a QMap instead of a QHash. QMaps are
ordered, so their linearizations are stable.
A more comprehensive fix would kick out the QMap for either the
std::map original, which, unlike QMap, already provides operator< that
we could just use, or QFlatMap, depending on how many elements we
expect in this container. Due to the leakage of of these types into
other parts of the code, including public API in QTextFormat, that
would be a larger undertaking, so is left for another day.
I am not, yet, fully convinced that the preceding size() check does
not also break strict-weak-ordering'ness, but at least it will not
cause _equal_ fonts to be reported as strictly less, too. A port to
lexicographical comparison would remove the last doubt, but is left
for a follow-up patch.
Amends 6160ea45b689e9d26795a18f155053ac4dc4dd6b.
Task-number: QTBUG-142246
Pick-to: 6.10 6.8
Change-Id: I3db7b370592e100efaf5148e4c0e91d1d1925830
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
Reviewed-by: Vlad Zahorodnii <vlad.zahorodnii@kde.org>
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
QSequentialIterable and QAssociativeIterable are incapable of providing
operator[] on their iterators because the references used by those
iterators are not actually stable when the iterator is modified.
The only way to fix this in a binary compatible way is to provide a
complete set of new iterables and iterators. These are implemented in
qmeta{association|sequence}.h and exposed through
QMeta{Association|Sequence}::Iterable.
In order to give users a convenient way to include those, we instruct
syncqt to regard qmeta{association|sequence}.h as header to use in order
to provide QMetaSequence and QMetaAssociation. These headers are the
natural choice anyway. qmetacontainer.h still has to hold the (now
incomplete) declarations for QMetaSequence and QMetaAssociation so that
we remain source compatible.
The new iterables offer a more consistent set of accessor methods and
deprecate some of the old accessor methods. It makes little sense to add
or remove a value from/to an iterable at an unspecified place. The new
sequential iterable offers the more familiar append/prepend and
removeFirst/removeLast methods.
Finally, the new iterables warn when taking a slow code path that
synthesizes operations not avaible on the actual container using
iterators. There generally is a reason for those operations to not be
available and we shouldn't second-guess the choices made by the authors
of the container. For now, we have to keep those code paths intact to
remain compatible with QSequentialIterable and QAssociativeIterable.
Task-number: QTBUG-140181
Change-Id: I2f4c32716951fa023ae1fb8028d1a87e4c85c3a0
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
The JObject(Base) types have been around for a while now, and are
heavily used in Qt code. We can be confident that they work. Add
documentation for the JObject helper type.
The JObjectBase type has no public usage, it's just a technicality that
takes care of type-independent implementations. Document it as internal.
Fixes: QTBUG-141156
Change-Id: Ia6567e10dc57a022beb3d3aff0420b2b9b9f6b2f
Reviewed-by: Assam Boudjelthia <assam.boudjelthia@qt.io>
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
I accidentally wrote the code under the assumption that the local certificate will have
some sort of CommonName, but that is not necessarily the case.
This made it impossible to use a certificate without one.
Amends 94f0ff704ead631114ecd2e10ba0839dad1aae10
Pick-to: 6.10 6.8
Fixes: QTBUG-142324
Change-Id: Idfac0b50f3f2abd36b39c7687c9fce2b259c3806
Reviewed-by: Mate Barany <mate.barany@qt.io>
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
|
| |
|
|
|
|
|
|
|
| |
Adding alt texts that were needed for qdoc
Pick-to: 6.10
Change-Id: I0d6a32d3e4368b60016229bf04c24c6978896d9b
Reviewed-by: Kai Köhne <kai.koehne@qt.io>
Reviewed-by: Jerome Pasion <jerome.pasion@qt.io>
|
| |
|
|
|
|
|
|
|
|
|
|
| |
Follow the rule of always guarding compiler versions when working around
bugs; the test actually passes since MSVC 19.40 (at least).
Amends 35878fa924d0598b1cdec5ba358e8488f6774676.
Task-number: QTBUG-138246
Pick-to: 6.10 6.8
Change-Id: Id2d6eed4605ef3568ede1185827556b0ebd08fb5
Reviewed-by: Marc Mutz <marc.mutz@qt.io>
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
If a derived class inherits from the same base class both virtually and
non-virtually, our implementation of the is_virtual_base_of trait cannot
properly detect this due to the ambiguity, and will answer "false". On
the other hand the version shipping in C++26 will correctly answer
"true" (there *is* a virtual inheritance path).
Amend the test to take this into account.
Practically speaking, this behavioral difference isn't a cause of
concern: this trait is used to guard conversions of pointers from
derived classes towards base classes. That implies that the inheritance
is not ambiguous (otherwise the pointer wouldn't be convertible to begin
with).
Amends 35878fa924d0598b1cdec5ba358e8488f6774676.
Task-number: QTBUG-138246
Pick-to: 6.10 6.8
Change-Id: I5b115a826202d1fb6c793678d4660c847c1a7c71
Reviewed-by: Marc Mutz <marc.mutz@qt.io>
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
In 36cee508a088e1570e1d89e060c3ccd14585d3f1 we started showing a
warning when a qtpaths executable or shell wrapper was not found in
the qt prefix.
This warning would appear on all platforms equally, even though in the
end the __QT_DEPLOY_TARGET_QT_PATHS_PATH variable is only used when
deploying a Windows app using windeployqt.
An example of when the warning appears is with a yocto SDK, where the
target qt prefix does not contain a qtpaths executable.
Make sure the warning is only shown when targeting the Windows
platform.
I considered searching for candidate qtpaths also in the host prefix
when available, but such a qtpaths most likely will not show
information for the target platform, and thus deploy the wrong
libraries.
Amends 36cee508a088e1570e1d89e060c3ccd14585d3f1
Pick-to: 6.8 6.10
Fixes: QTBUG-142336
Change-Id: If3df1f61cf1550b7271268c71a5826ed673a62fa
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
|
| |
|
|
|
|
|
|
|
|
|
|
| |
Dead keys are now handled through QWasmInputContext. This removes
the duplicated and previous method of dead key handling.
Remove deadkeytranslator auto test, as it was testing the
dead key translator class being removed.
Change-Id: Ibada7ba873ff109d5ad2837a8d2fba354b7eb8c2
Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
Reviewed-by: Even Oscar Andersen <even.oscar.andersen@qt.io>
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
Because QArrayDataPointer doesn't. QString and QByteArray constructors
do this. resize() already has the macro because it uses
QArrayDataPointer::reallocateAndGrow().
squeeze() is untestable.
Pick-to: 6.10 6.8
Fixes: QTBUG-142345
Change-Id: I8e7898aed09364f20d1efffdc7ed70a2c152005c
Reviewed-by: Marc Mutz <marc.mutz@qt.io>
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The flushWindowSystemEvents() call in flushRequests() was added
in commit 84f1360289a to preserve event order when we had mixed
synchronous and asynchronous expose events. That issue has been
resolved in Qt 6.10 when we were able to make all expose calls synchronous, rendering this unneeded.
Reverts 6ff771b86f7b961a5ff63f148cf69ecb3415dd95
Pick-to: 6.10
Fixes: QTBUG-139425
Fixes: QTBUG-141938
Change-Id: Idcf3dbc54dc9c3e37cdc586f9f872338e63f4f0d
Reviewed-by: David Edmundson <davidedmundson@kde.org>
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This adds a backend for QRandomAccessAsyncFile to use the recently
introduced QIORing.
Since all uses of of QRandomAccessAsyncFile expects signals to be
emitted after returning control to the caller, and QIORing may complete
anything synchronously, we emit signals only after returning to the
event loop. This could probably be optimized later to be a direct
emission when it's not technically needed, but is not a priority right
now.
Task-number: QTBUG-136763
Change-Id: I8acfa7f716e5625da498cc4b6fbe493ebd783f99
Reviewed-by: Ivan Solovev <ivan.solovev@qt.io>
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Linux internally truncates any read and write at a limit of
'MAX_RW_COUNT', which is slightly less than 2 GiB, for a few reasons.
We will work around it by reading or writing some segments at a time,
re-issuing another read/write operation whenever one completes until
completed, EOF if reading, or an error occurs.
Note that this MAX_RW_COUNT also applies to readv and writev, which
means we would need a similar mechanism there to handle this. This is
to be done in a follow-up.
Task-number: QTBUG-136763
Change-Id: I9bcb75587ae5e84cb80ea3950a569f60c4906617
Reviewed-by: Ivan Solovev <ivan.solovev@qt.io>
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Somewhat low level code, intended as a low level
abstraction.
The QIORing interface would also be used for Windows' IORing, developed
at the same time as the io_uring version.
There is some shared code and helper functions, but a lot of the code
in some way touch the platform specifics, so without yet more
abstractions quite some code is left as unique.
The fiveGiBReadWrite test case is currently EXPECT_FAIL because of the
MAX_RW_COUNT limit on Linux (and its inability to report >2GiB results).
Either we have to document this in the public-facing parts, or we need
to work around / iron over the issue. To be done in a follow-up patch.
We only ever notify the kernel of the work to be done after returning to
the event loop, unless the ring is full. Then we notify the kernel right
away in hopes it will manage to clear up some space to queue more.
We, ourselves, are not actually limited by the kernel ring buffers as
we keep a queue (in the form of a std::list) of pending tasks.
The reason why it's a std::list is that it guarantees stable references,
and that lets us use the pointer-to-task as the 'user_data' of the
submitted work, so we can easily access the task again when the kernel
adds it to the completion queue.
Task-number: QTBUG-136763
Change-Id: I9cb80a2b96a49f2a557bef3b0ad6d367d76f5ab8
Reviewed-by: Ivan Solovev <ivan.solovev@qt.io>
|
| |
|
|
|
|
|
|
| |
Amends the start of the public history.
Pick-to: 6.10 6.8 6.5
Change-Id: I6773339a66806b07984fdc4772fa563891d53b0e
Reviewed-by: Paul Wicking <paul.wicking@qt.io>
|
| |
|
|
|
|
|
|
|
| |
MYSQL_OPT_TLS_VERSION is supported since MariaDB C Connector 3.1.10 so
we should enable it also for MariaDB.
Pick-to: 6.10
Change-Id: Iaec42fa83bf6da42295d297455f07436afeae8d3
Reviewed-by: Andy Shaw <andy.shaw@qt.io>
|
| |
|
|
|
|
|
|
|
|
|
|
| |
Existing images are not suitable for use with the dark theme of
the online documentation. SVG files are more versatile and can be
styled for the light and dark themes.
Some hard-coded properties are used to ensure that Assistant's
SVG renderer can display the files in a reasonable way.
Change-Id: Iafb72835937f1e96598993ee61de6f384e68b50b
Reviewed-by: Jerome Pasion <jerome.pasion@qt.io>
|
| |
|
|
|
|
|
|
|
| |
One amending 4207a1664d6901322c19edddad95ec53bdd2a017, the other
amending c1341b7557ce52c681618c77c17687623fc0f3b2.
Pick-to: 6.10
Change-Id: Ib5db1a0728e359499a1a53d12a8157df7c3569e6
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The qt_set01 function had a critical argument quoting flaw. This
happened because CMake removes quotes when calling the function, causing
variable substitution in the condition evaluation. For example, calling
qt_set01(QNX CMAKE_SYSTEM_NAME STREQUAL "QNX") with QNX already set to 1
would evaluate CMAKE_SYSTEM_NAME STREQUAL QNX (where QNX expands to 1)
instead of CMAKE_SYSTEM_NAME STREQUAL "QNX".
This particularly affected users with QNX toolchains that pre-set the
QNX variable, causing configure to fail.
Replace all qt_set01 calls with explicit if/else blocks that properly
preserve string literals and avoid the eval-like behavior. Remove the
qt_set01 function.
The platform detection code is now admittedly more verbose but plain
CMake without argument quoting pitfalls.
Pick-to: 6.8 6.10
Fixes: QTBUG-142267
Change-Id: I642fc8582001b8c7b7b6ff56eae7ccabc89ba565
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
|
| |
|
|
|
|
|
|
| |
Amends dc2521c156fb694f379104191e540a57371b41f0
Change-Id: I2a1e7da5aa5b7015ced25fcc49c1e66275db4bc8
Reviewed-by: Nils Petter Skålerud <nils.petter.skalerud@qt.io>
Reviewed-by: Artem Dyomin <artem.dyomin@qt.io>
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Functions in which owning containers allocate should not be defined
inline, because of the amount of code generated.
Unlike similar changes in the past, this wasn't found by Clang
-ftime-trace, but highlighted by adding GCC -Wnrvo to headersclean.
Instead of rewriting the function, pull it behind the ABI boundary.
Can't pick back, because it adds an exported symbol (on Unix, Windows
already had it, due to the wholesale export of the class), so isn't
forwards-BC.
Change-Id: I0d7ac417e129023f9688028685e818e7ab6ab7e2
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
|
| |
|
|
|
|
|
|
| |
It may be obvious for more exprienced developers, but it's wasn't
obvious for me. So help the next guy figure it out.
Change-Id: Iea0538b4b1efbd4729b132fc1242996bb546a02e
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
|
| |
|
|
|
|
|
|
|
| |
This provides useful links to the reimplemented API documentation.
Pick-to: 6.8 6.10
Task-number: QTBUG-140667
Change-Id: Ia7148b46f349357eae1f1a26a5737487371b88c1
Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
|
| |
|
|
|
|
|
|
| |
-Internal classes should have internal class documentation.
Task-number: QTBUG-141665
Change-Id: I399e0cec51a9308172301a862dcd07e6137e9854
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This enables ADL, which might end up picking up unrelated templates
from user namespaces, and, due to QtPrivate::wrapped_t in
qanystringview.h, breaks TUs (such as -unity-build), where both
headers are included.
Amends the addition of the feature, somewhere before the
bdbe4c8858e378d5b90bed799b67304d452fc0da rename to QRangeModel.
Task-number: QTBUG-142184
Fixes: QTBUG-142182
Pick-to: 6.10
Change-Id: Id41ec4bca1059ab525c5c6bfad052d83572e1d91
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
QLocalSocket internally uses a QTcpSocket that actually operates
on a local socket file descriptor. The forwarding of what that
socket does was missing for the channelReadyRead() and
channelBytesWritten() signals.
[ChangeLog][QtNetwork][QLocalSocket][Unix] Fixed QLocalSocket not
emitting channelReadyRead() and channelBytesWritten() signals
Pick-to: 6.10 6.9 6.8 6.5
Change-Id: Iacf736374e026ddb475522d4a8e8fd8c5b5564bb
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
|
| |
|
|
|
|
|
|
|
|
|
|
| |
.. to use a common vocabulary, and share code.
Amends 900d4bd29f30effbb5dbb0efa96886af03839a15, which introduced
ArrowProxy for use in QKeyValueIterator and QDomNodeList::It. This is
just another user I've overlooked up to now.
Pick-to: 6.10 6.8
Change-Id: I2c1eecc75a209ce552ddd1fdebfc6da784c83a00
Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
|
| |
|
|
|
|
|
|
|
| |
Introduced computeWindowStyles to centralize logic for determining
window class style flags based on window type, surface type, and
properties like drop shadows.
Change-Id: I3c3ddeb89b462f7a25754ae51e605f1fade7cf7f
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
|
| |
|
|
|
|
|
|
| |
Introduced computeHasIcon to centralize logic determining whether a
window class should include an icon, based on window type and flags.
Change-Id: I4702bbb0833e90163382fb318f990c79fc0f93f5
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Says GCC:
qfont.cpp:2202:81: required from here
2202 | fontDescription += comma + tag.toString() + u'=' + QString::number(value);
| ^
qstringbuilder.h:403:37: warning: ‘static void QConcatenable<QByteArray>::appendTo(const QByteArray&, QChar*&)’ is deprecated: Use fromUtf8, QStringLiteral, or QLatin1StringView [-Wdeprecated-declarations]
403 | QConcatenableEx<B>::appendTo(p.b, out);
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~
qstringbuilder.h:372:43: note: declared here
372 | QT_ASCII_CAST_WARN static inline void appendTo(const QByteArray &ba, QChar *&out)
| ^~~~~~~~
This is because Tag::toString() returns QByteArray, not QString.
To fix, wrap the toString() result in QLatin1StringView. This is
safe, because the temporary QByteArray will be kept alive until the
end of the full-expression, so until after op+= has executed.
It does change the serialization vis-a-vis the old code, but a) only
for non-US-ASCII tags, which are not really valid, and b) we make it
more robust now, because each random 4-octet sequence is a valid L1
string, but many are not valid UTF-8, so their interpretation as U8
by the old code (QByteArray → QString assumes U8) depends on
behavior of Qt outside its spec. GIGO applies, of course, but we
don't tend to specify the GO for any given GI, so it's better to use
an algorithm for which no input is "garbage".
Amends 8fe6ad3eed40a8c851bf5d49e322f9794b9f7dcf.
Task-number: QTBUG-141412
Change-Id: Ic45f9147ca54201a33d953da57b768d2a5d115e4
Reviewed-by: Ahmad Samir <a.samirh78@gmail.com>
|
| |
|
|
|
|
|
|
|
|
|
|
| |
It applies extra safety measures for such tag types.
Amends 74a87a329498422db0dea3e469fb84704accbb2b, which ought to have
ported this tag struct, too.
Pick-to: 6.10 6.8
Change-Id: Idd2c116d1045f4218ec74c52f8ddf00324abd59c
Reviewed-by: Ivan Solovev <ivan.solovev@qt.io>
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Detect whether the return type of a call is similar to std::expected.
This indicates that the caller wants to handle exceptions explicitly, so
in case of error, we pass it through the the std::expected-like value.
We still clear the exception state. The caller is responsible for
freeing the jthrowable local reference.
For this to work, we have to propagate errors through to the outer-most
function. This includes allowing QJniObject to create QJniEnvironment
instances that don't implicitly return a clean environment in the
destructor. As long as we can call checkAndClearExceptions() in the
public functions (unless the caller opts in), this should not break any
existing code that expects QJniObject to implicitly clear exceptions.
Add tests for all overloads to make sure that exceptions (from wrong
class or method names, and thrown in methods) are caught.
Add "Impl" helpers that do not handle exceptions if instantiated
accordingly, and call those if we have to maintain compatibility in
public functions while also enabling opt-in handling for modern APIs.
Add tests that show that we can now handle exceptions ourselves for all
public QJniObject APIs. If possible, we build the test with C++23 so
that we can use std::expected; otherwise, try to use tl::expected by
downloading the header-only implementation from github; and failing
that, use a minimal implementation of a type that could be used instead
and makes the test pass.
Fixes: QTBUG-93800
Fixes: QTBUG-119791
Task-number: QTBUG-92952
Change-Id: I1cfac37ac9af8fd421bc0af030a1d448dd0e259e
Reviewed-by: Assam Boudjelthia <assam.boudjelthia@qt.io>
|