This reverts commit 224a60989e.
Turns out that we cannot just untangle the determination of
source root and build root, because this breaks the assumption
that every .qmake.conf results in a separate .qmake.cache in the
build tree. QTBUG-76140 must be fixed differently.
Fixes: QTBUG-76907
Change-Id: I5c0a3719d5e00a0f1cacad51651b47c1f284d22d
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
You can create multiple instances of QBenchmarkGlobalData as the ctor
is public.
The qmltest plugin does create a static one, but only conditionally
assigns it to the singleton pointer. On shutdown the plugin is removed
and the QBenchmarkGlobalData::current should only be reset by the dtor
if it's actually pointing to the same object.
Change-Id: I616c1ccf6f7a00abf1de342094da88481510bc7b
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
The header clean command must not be prefixed by "@echo ...", because it
now starts with "$(CXX)" which already is prefixed.
This amends commit 6fa5dfdd.
Change-Id: I5c2e0d2c2ed91c7232fce0a4a49db0fccfdc005d
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
A blinking white dot could appear on dark backgrounds on Windows 7/8/8.1.
It was caused by a workaround added to trigger the on-screen keyboard
on the Microsoft Surface. This change effectively restricts that
workaround to Windows 10, where the blinking dot was not an issue.
And anyway, impact over the Surface functionality should be minimal,
as all models produced since 2015 only support Windows 10 (and it's
unknown if the workaround was ever necessary for early models running
Windows 8.1).
Fixes: QTBUG-74492
Change-Id: Ic9b9c0f71f23b75212054c56a29796cf0efa109a
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
That code would normally call for QSet::find instead
(Uniform Container Find cannot come soon enough).
Since the code is showcasing a STL algorithm usage,
port it to std::find_if to showcase a real use case.
As a drive-by: fix the usage of endl with std::cout.
(Ok, it's just a variable called "cout", and I'd argue
that in example code "cout" is not the name of a
QTextStream).
Change-Id: I8686178b33c31552eb4d909a4089453d60994b79
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
Use the QSet QWidgetPrivate::allWidgets directly instead of
calling QApplication::allWidgets(), which allocates a QList.
Change-Id: I16d289030cecefae7811d4b2c94f865f46f700d5
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
Reduce our usage of QRegExp in preparation towards deprecating
it. This also brings it in line with QDir that already uses
QRegularExpression for filtering.
Keep the old QRegExp based code around in bootstrapped mode,
since qmake uses this functionality.
Change-Id: I98b9d2875c30e17e406b6711dfe3265ba37624ac
Reviewed-by: Samuel Gaist <samuel.gaist@idiap.ch>
By running dumpcpp if the files do not exist at qmake time we enable
the dependency finder to find these files and set up the dependencies
as appropriate. Since other changes ensure that dumpcpp will be called
at the right time when building if the typelib changes, we no longer
need to have the generated files dependent on the objects. As a
result, we are able to prevent it from unnecessarily rebuilding
everything if certain files are updated.
Change-Id: I334f48c7a980aa8b893c14cb2a4687d3b2b7a4b9
Reviewed-by: Jörg Bornemann <joerg.bornemann@qt.io>
... except for tests, which manually undefine the macro.
Like QT_NO_FOREACH, this is a technical way to keep JSI-free
modules JSI-free going forward.
Change-Id: Icf1342da00a700f42f9e32a253d1cdb94c38dd7e
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
Amends b03385f9cf.
Java-style iterators are scheduled to be deprecated.
The general pattern used in the patch is that instead of copying an
input list, then iterating over the copy with some calls to
it.remove() (which leads to quadratic-complexity loops), we simply
copy conditionally (a la remove_copy_if instead of remove_if).
To make clearer what's going on, rename the outgoing list to
'unhandled'.
To avoid having to touch too much of the loops' structure, which
sometimes is quite convoluted, use qScopeGuard to do the append to
'unhandled', unless the original code removed the element.
Change-Id: I808a939b9c816b329ee87620e0a3461fee6e3e40
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
Replace the identity check with a check for the underlying QHash
objects being shared and replace backwards iteration, which is really
forwards iteration with wrapping at bucket boundaries, with forward
iteration. QSet cannot contain duplicates, so the order in which the
RHS elements are presented to the algorithms does not matter.
Change-Id: Iad8528e3a9501b14cb85601b221a848aad91480c
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
QWidgetPrivate::windowHandle() should not return nullptr from the
WindowHandleMode::Direct branch in case WindowHandleMode::Closest was
passed.
Ameds eed9a8fbd3.
Task-number: QTBUG-62094
Task-number: QTBUG-73231
Change-Id: Ia55fff15f0a499cef9525e53111ddd55b2e012d0
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
The QNetworkReply implementation for Qt for WebAssembly now supports
usage of the QNetworkAccessManager::sendCustomRequest, making it
possible to send requests with custom verbs.
[ChangeLog][QtNetwork][QNetworkAccessManager] Fixed
QNetworkAccessManager::sendCustomRequest for Qt For WebAssembly.
Fixes: QTBUG-76775
Change-Id: I9394ffef110fce4ed2c877893631bedc7631f71e
Reviewed-by: Lorn Potter <lorn.potter@gmail.com>
In some cases, the wheel event coordinates would be incorrect, as the
local coordinates were being determined relative to one window and
the event being sent to another window, possibly incorrect.
Fixes: QTBUG-75820
Change-Id: I4c3c4c6c4688bd9232d67ce4052d24365f6aea3a
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
This seems to be a common use case, and to be expected from pastes
of MSWord documents.
Change-Id: I5849d7f51408e76f15a0b03c2118649f118af1d6
Fixes: QTBUG-66794
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
This reverts commit 9a25d27b9d58316dee5d2305135d2d74ad5d51e7.
The QSKIP is no longer needed as the imap server's certificate
was updated
Task-number: QTBUG-76610
Change-Id: I1007ce50d6f7f6258fdeb8894c66678a660b03ca
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
Because it is. It's just QCoreApplication::postEvent(), which is thread-safe.
It also _has_ to be, because we recommend to use deleteLater() to delete
QObjects that live in another thread:
Quoting the ~QObject() docs:
> Warning: Deleting a QObject while pending events are waiting to be delivered
> can cause a crash. You must not delete the QObject directly if it exists in
> a different thread than the one currently executing. Use deleteLater()
> instead, which will cause the event loop to delete the object after all
> pending events have been delivered to it.
If deleteLater() is not thread-safe, it cannot be used for one of its intended
purposes.
Change-Id: I333d506b42bdfcdff00fe6cefa234c21865625a6
Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
We stopped storing the patch release number of Qt in the plugin metadata
in commit 7bd79b3cff (5.13), to make it
simpler to parse the validity of plugins before decoding the CBOR
payload.
Fixes: QTBUG-76855
Change-Id: I6aed4df6a12e43c3ac8efffd15adbbf83e928866
Reviewed-by: Liang Qi <liang.qi@qt.io>
g_options.buildPath did not have native separators. This caused
INSTALL_ROOT to not have native path separators, which again made
'mingw32-make check' fail to deploy the .apk. (The actual failure was that
mkdir failed because it did not accept paths with forward-slashes, so the
install_target rule failed. For the record, the command of that rule had
the following call to mkdir:
mkdir $(INSTALL_ROOT:@msyshack@%=%)\libs\x86
Change-Id: Id792c36986b52a527546d48aa9f7d9587e7a18d9
Reviewed-by: BogDan Vatra <bogdan@kdab.com>
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@qt.io>
RenderHint::HighQualityAntialiasing and NonCosmeticDefaultPen are
obsolete since Qt5 but not marked as such. Therefore add
Q_DECL_ENUMERATOR_DEPRECATED_X now so those two enumerations can be
removed with Qt6.
[ChangeLog][QtGui][QPainter] HighQualityAntialiasing and
NonCosmeticDefaultPen are marked as deprecated and don't have an effect
anymore
Change-Id: Ib0c966a078a1d23d492d0255288e2066c50e87b6
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
Reviewed-by: Eirik Aavitsland <eirik.aavitsland@qt.io>
Remove the mainW, edit widget member variables from the test and use
widgets instantiated on the stack in the tests.
For the data-driven tests, use a static QScopedPointer, which is
reset by a newly introduced TestEnd action.
The book-keeping logic maintaining a list of shortcuts can then be
removed.
The setupShortcut() helpers are simplified and the special case
TestWidget::SendKeyEvent is replaced by a lambda in
keypressConsumption().
Task-number: QTBUG-76493
Change-Id: I15dfa86dfa0666ed8288b7190e37cdb862c261c8
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
- Use member initialization
- Introduce nullptr
- Use auto where applicable
- Use range-based for
Task-number: QTBUG-76493
Change-Id: Ic4dbee2d76a65be1f8a4c25f4ca7e4f032443579
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@qt.io>
Varying versions of the library may be available depending on build tool
chain or Windows version. Try to dynamically resolve the D3DCompile
function.
Fixes: QTBUG-76845
Change-Id: Ib7eb3b8c454e9c25731eb2ba9ba45e54fe3f1283
Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
This is in preparation of deprecating QLinkedList.
Most is straight-forward, except where operator+ was used on linked-list
iterators. In one case, replaced this with std::next, in the other, with
prefix increments, since the advancement was always equal to the loop
control variable. Since advancing a linked-list iterator is a linear
operation, this removes a source of quadratic complexity.
Another obstacle was the overloaded op< set, which was in the Qt namespace
while the iterator is from std and the payload, as before, was global.
This breaks ADL, so move these operators to namespace std. This violates
the standard, but the functions are tagged with our distinct types, so it
shouldn't cause any trouble.
Change-Id: Ifec0a927bfdabb002838cdf86fb8d23b32a38ff7
Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
This class was introduced to modify the hook handling of
QWindowsGuiEventDispatcher. As the hook handling code is removed now, we
can remove QWindowsDirect2DEventDispatcher entirely.
Change-Id: I56491a67f163784f43b1025225e536d386cead1d
Reviewed-by: Alex Trotsenko <alex1973tr@gmail.com>
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
This is the most flaky-pass test currently.
It fails the first time it is run on MacOS_10_12, but
succeeds all the following times.
This happens extremely often, so disable it until the issue
is resolved.
Task-number: QTBUG-76566
Change-Id: I94359eceb91c3b958930424e6c8b5957fb3f1252
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
QWidgetPrivate::updateIsTranslucent sets the surface format of the
window with the alpha based on the translucency attribute, so we need
to call this function when the attribute value changes. The test can
confirm that the window's requested surface format has changed, we
can't rely on what is actually set, and don't have to rely on
hard-coded values like 8bit alpha.
While WA_NoSystemBackground needs to be set for WA_TranslucentBackground
to have an effect, we can't clear the attribute when clearing
translucency (as it might have been set explicitly).
Change-Id: I238d6930b7e0488397467a4e035b5f530566a1ff
Fixes: QTBUG-60822
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
When calling waitFor{ReadyRead,Disconnected} it will wait for data but
if the data is already received and the read notification has been
queued (and there's no more data coming in) it will return false.
By checking if a read notification has been queued and then handling
this we can easily take care of this scenario.
Fixes some flaky tests which missed the read data in waitForDisconnect
and similar.
Fixes: QTBUG-38385
Change-Id: Ic05d59883c1175783e56ff1822b6636c35aec874
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
If we end up in the connected state then we should pass on any
remaining data immediately instead of waiting until the next time we get
a read notification.
The other `case`s in the switch might be able to do something similar,
but I don't want to introduce that logic now in case it breaks something
else, the Connected branch is small and simple to deal with.
Should severely reduce flakiness with socks proxy in CI under pressure.
Task-number: QTBUG-76367
Change-Id: I0965d4c62a29a25ce6b8dd60862a464279aef0b4
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
Reviewed-by: Ryan Chu <ryan.chu@qt.io>
The main goal of this patch was to port away from Java-style
iterators, to make QtBase QT_NO_JAVA_STYLE_ITERATORS-clean. And this
the patch achieves.
But I couldn't resist a few drive-by fixes, too, to wit:
- Use qDeleteAll() instead of while(!isEmpty()) delete takeFirst()
- Use QMap::last() instead of iterating to the end, remembering the
last-seen value
- Use QMap::contains() instead of QMap::keys().contains()
- Use qExchange() instead of copy+clear
- Make some functions const (requires the mutex member to be marked as
mutable, which is common for mutex members)
I am almost certain that getSsidFromNetworkName() cannot work correctly.
But this patch does not attempt to change the algorithm.
Change-Id: Ifa04d7837bdc0837036c3a7a73f8c51f4e681f42
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
Since commit 6a7cea64 qt_GetMessageHook is effectively a no-op, and
we can remove the complete hook handling code.
Change-Id: I90383c0c09c2b0f1d715872de5f9519a879d9bae
Reviewed-by: Alex Trotsenko <alex1973tr@gmail.com>
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
- Use nullptr
- Fix static method invocations
- Use QString() instead of QString("")
- Use override
- Use member initialization
- Remove unimplemented code related to status bars
- Use Qt 5 connection syntax
- Fix apparent oversights in ambiguousItems() and
unicodeCompare(),where the 2nd shortcut was assigned to the wrong button
- Use Q_ENUM for the enumerations which will output the value in
QCOMPARE and automatically declare them to be a metatype
- Use enums in helper function signature for clarity
Task-number: QTBUG-76493
Change-Id: I0ed6ee7ee8dc2dbb48160a8383e6ed29164c3449
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@qt.io>
- Replaced the usages of:
* QDateTime::toTime_t() -> QDateTime::toSecsSinceEpoch().
* QDateTime::fromTime_t() -> QDateTime::fromSecsSinceEpoch().
* QDate::shortDayName() -> QLocale::system().dayName().
* QTime by QElapsedTimer, where the deprecated methods of QTime
were used.
- Modified the tests for the deprecated methods to be enabled only
when the corresponding methods are enabled: when the deprecated
APIs are disabled, the tests will be also disabled, and the
compilation won't be broken.
Task-number: QTBUG-76491
Change-Id: I4d565db2329e580c567aae511696eb1efe120843
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
Otherwise "QVarLengthArray<Foo> x = {};" gives a warning. Also, some
compilers get confused about "QVarLengthArray()" this way.
Task-number: QTBUG-76199
Change-Id: I4296586c0181d3e6e82ca8b7b79aeb9a21645d1f
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
Like in Qt code itself we should use forward slashes consistently.
This enables the vulkan test to run on Linux for MinGW
cross-compilation.
Task-number: QTBUG-76660
Change-Id: Ifc6dec11bac3c3769d5d06e49da529f66f7b5843
Reviewed-by: Kai Koehne <kai.koehne@qt.io>
This opportunity was missed when adding the QStringView overload of
QStringList::filter() in 2a99f60cfb.
Change-Id: I8d679b92de6cc76c4d59fd54f01a25579ab3488f
Reviewed-by: Anton Kudryavtsev <antkudr@mail.ru>
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
As planned when adding YearRange: now that it's merged up to dev, move
it to QDateTime, since we can add to the API at 5.14.0.
This follows up on commit 82ad4be4a2.
Change-Id: I81b6c2331121a71e2592514781c02c5756e70c52
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
We've not run util/locale_database/cldr2qtimezone.py for a while, so
CLDR has had time to add several more zones. Catch up, inserting the
new entries in order.
Change-Id: I8625548b0f7775958230eccbd89b897d7afed9e9
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
It wasn't mentioned in cldr2qlocalexml.py's instructions, so I didn't
know to run it. The data it used in an illustration was out of date.
Two tests could be combined with no loss.
Change-Id: I26e619e6210ea5b1258326fc4bc2b6aee9d6a999
Reviewed-by: Lars Knoll <lars.knoll@qt.io>