Some tests, particularly the asynchronous ones that depend on the
QTRY_*() macros, have call-backs in which a test can fail, but the
macro used to test for failure only returns from the call-back, so the
test doesn't know to fail.
Make sure the QTRY_*() macro gives up if that happens, so that the
test function at least gets control back and can notice that it's
failed. Even if they don't check, they'll fail sooner, where they
might otherwise have been stuck in a loop that would never exit until
the watchdog timer shoots the test down (and Coin ends up with a
debugger back-trace and no output from later tests).
Change-Id: I622a53117de5e97d23dd22e04e5cd20361a54651
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
QTime() is invalid. Only the seconds and milliseconds are optional,
for valid times. Use startOfDay() for zoned times, QTime(0, 0) for
fixed-offset ones.
Change-Id: I3b65d5c3733ac83dc3a6c214859c3f56a480bb94
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
With 6e8985e357 merged we can now use
generic erase logic provided by array operations. This commit aligns
QString with QList/QByteArray
Task-number: QTBUG-84320
Change-Id: I83e9349e2461afd98737df25613aa2d0fd817a71
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Nothing used defDateTime(), nothing but it used defTime(). The only
other use of defDate() were from one test, which might as well make it
a local variable.
QDateTime's default is invalid, making invalidDateTime() redundant,
and the invalidDate() and invalidTime() it called had no other users.
Change-Id: I0e07ee58478bfe8ba680eafb52e2f73a962edd33
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
The QFlags constructor taking a plain zero literal was deprecated in
commit af2daafde7.
Pick-to: 5.15
Fixes: QTBUG-86585
Change-Id: I2fc68c725ba649218bd9fffd1633d6251649d2bd
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
Apparently these APIs don't have any replacements that we
can use, so we have to continue to depend on them for now.
Silence the compiler warnings related to them, to avoid
unnecessary noise.
Change-Id: I1838e3c82bedd31529fdad8debc577dca17613e5
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Avoids using compiler builtins, and can in future replace them.
Change-Id: I3f0afe7d28b6ba05bcd1c1132b44a8db7b182d8a
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Since an EXECUTE BLOCK statement can have a mix of ? and :var syntax
then a special case for this needs to be added so that it does not try
to convert the :var parts into positional placeholders as they need to
kept as-is when preparing such a statement.
Pick-to: 5.15
Fixes: QTBUG-83152
Change-Id: Iff891207ad6dea1681a1b3a335acbbbb668b465d
Reviewed-by: Christian Ehrlicher <ch.ehrlicher@gmx.de>
qWait() and qWaitFor() have one subtle difference in behavior,
where qWait passes the remaining time to processEvents() and
qWaitFor() does not. This lead to instability on timing
sensitive tests on macOS.
Amends 1abea5f5f1
Change-Id: I20f516813ca67d9e86de468c4403e475f08edc26
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
This reverts commit 58c1c6ee5c.
This lead to configuration errors on some machines, blocking
development.
Change-Id: I744f6cc95fbaa273519ab8fc8fb492b87f5729b8
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
This reverts commit a3cb002511.
This lead to configuration errors on some machines, blocking
development.
Change-Id: Ibb785c96c7d85692a6e22a73e086119eb571df71
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
This reverts commit 3685483c4b.
This lead to configuration errors on some machines, blocking
development.
Change-Id: I309cdd55a8ef64899afcbeca54458d1c6d686951
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
The last 4 cmake changes broke configuring qtbase on at least
Volkers and my machine (Ubuntu 20.04)
Revert the changes, to unblock development of qtbase and
other modules.
This reverts commit 16aa8c8f4d.
Change-Id: Id562bdac1915dba429ae4a0af6054d3e5e5e5d12
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
Fix our API, so that QStringList and QList<QString> are the
same thing.
This required a bit of refactoring in QList and moving the
indexOf(), lastIndexOf() and contains() method into
QListSpecialMethods. In addition, we need to ensure that
the QStringList(const QString&) constructor is still available
for compatibility with Qt 5.
Once those two are done, all methods in QStringList can be moved
into QListSpecialMethods<QString>.
Change-Id: Ib8afbf5b6d9df4d0d47051252233506f62335fa3
Reviewed-by: Andrei Golubev <andrei.golubev@qt.io>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Simply use qcontainerfwd.h, instead of declaring those manually.
Change-Id: I6d87bf14b60469b457e8e9335868f8cdb0303817
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
As per ### Qt6 comment. Also rename the LibraryLocation enum
to LibraryPath.
Change-Id: I556025a19c5bcdf2ff52598eaba32269522d4128
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
We were starting to run out of space for builtin core types.
Remap the type id's to create lots of additional space.
We now reserve the first 64k id's for Qt, and have 16k id's for
Qt Core. That should hopfully be enough for a while ;-)
Fixes: QTBUG-85914
Change-Id: I0dab6bf23652e46a9557d9b38af7990b68c572b6
Reviewed-by: Alex Blasche <alexander.blasche@qt.io>
Refer to QMetaType, not QVariant::Type
Change-Id: I3e9284742b332095a26c03c68580ad0f6d4f9be7
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
Vulkan cannot be a required public dependency of QtGui, because a
vulkan-enabled build of Qt will fail on a machine where the vulkan
headers are not installed. We cannot make the vulkan dependency private,
because we have public Qt headers that include vulkan headers.
The vulkan dependency is now marked as optional, meaning consuming
projects will try to find it, but there will be no error on failure.
Task-number: QTBUG-86421
Change-Id: I30edfd3eaa603048f4274e77036c54d90789d3c9
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
Every public dependency of a Qt module results in a find_package call in
the consuming project. But not all public dependencies are mandatory.
For example, vulkan is only needed if the user project actually uses Qt
classes that pull in vulkan headers.
This patch adds the option MARK_OPTIONAL to qt_find_package.
Dependencies that are marked as optional will not produce an error on
find failure.
Task-number: QTBUG-86421
Change-Id: Ia767e7f36991e236582c7509cbd37ea3487bb695
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
...in code. The actual number of calls at runtime does not change.
The reason for this stunt is that we want to replace find_dependency
with find_package at runtime for optional dependencies, and this will
reduce the diff size of the next commit.
Change-Id: I304fdf09c69fea7b6d4adabf515712eb097f8c86
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
The find_dependency() macro calls return() on failure, meaning any code
after it will be ignored, thus checking any XXX_FOUND variables after
find_dependency() is pointless.
Fix the places where we use find_dependency() and set the "failed" state
before the call and the "success" state afterwards.
Change-Id: Ia5239c704f02a9bec972210374ffed7808b14055
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
They were disabled in ad0e3e26fa,
but that was probably accidental.
Change-Id: Ia9cbccfbeecfe84768c3465f5699ed44b7f932a5
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
Be a little bit more specific what needs to be done when compiling the
sql driver without compiling the whole Qt
Change-Id: I3e8010d4cc84a83108340e525e620abf6b6e89c1
Pick-to: 5.15
Reviewed-by: Paul Wicking <paul.wicking@qt.io>
This change partially reverts change
a0e0b51001.
Replacing the QTest specific sleep function with QThread::msleep()
was not a good idea. The reason is that QThread::msleep() will force
the thread to sleep to x mseconds, even if a signal woke the thread
in the meantime.
This would cause qWaitFor() to not call processEvents(), in some cases,
leading to flakyness and test failures in tests that rely on timing,
such as the animation tests in Qt Qml.
Change-Id: I0ad132cdf32be5813b2e73552d772251fe1d7f89
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
Provide functionality to add and remove values, so that you can use a
sequential iterable as stack or queue if the underlying container
supports this. To this end, provide a way to specify whether the
value should be added or removed at the beginning or the end of the
iterable.
Change-Id: If63d302f3ca085e56d601116ce4dfaa6b94a0c4f
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
For completeness' sake we should expose this. The iterators provided by
QIterable and friends will check the category at runtime, and should give
sensible feedback.
Change-Id: I778894f340c862f79a18c6c5607bcbba98dd7598
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
pageLayout().pageOrientation() does not exist, but pageLayout().orientation() does.
Pick-to: 5.15
Change-Id: I17a667b18aba284b91972422e604568e2fdbda05
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
This change should have no impact on Widgets, since style names
there are case-insensitive. But for QtQuick controls the style
names are case sensitive. So in order to use the style hint
from the platform theme for controls, we need to return
the name with an uppercase "F".
Change-Id: I360f43f174938202b0ef2cdfcde6daf39c9f39bb
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
A QAbstractSpinBox has a spinClickThresholdTimer that is detecting
if the user is doing a press'n'hold on one of the spin buttons, to
activate auto-repeat.
But if the valueChanged() handler in the application spends too much
time before it returns, the spinClickThresholdTimer will fire before
we get a chance to cancel it from the pending mouseRelease event.
The result is that the spinbox will think that the user is doing a
press'n'hold, and increment the value once more.
To avoid this, we start the timer _after_ the call to
valueChanged() instead.
Pick-to: 5.15
Fixes: QTBUG-86483
Change-Id: Iff5de4f8da562738e02848c98bc1fbc9fe227748
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
The special members do nothing that the compiler-generated default
doesn't do, so remove them.
Remove the comment introduced in d06b4ca9a1 about
QBitmap inherting QPixmap being a problem. It which wasn't followed
up on for Qt 6, and making QBitmap a QPaintDevice rather than a
QPixmap subclass (as implied in the commit message) would result in
significant code duplication.
Change-Id: I8d5032062f95ab19b38eb97d17191a9b13af870f
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
and obsolete itemDelegate(index), which the new function replaces.
This allows itemviews to override the item delegate per index. The
existing APIs to set delegates for rows and columns doesn't work for
tree views, or other views where the delegate should depend on the
parent index as well.
Adjust all itemview code that accessed the QAIVPrivate's relevant
data structures directly to go through the virtual function.
[ChangeLog][QtWidgets][QAbstractItemView] The
itemDelegate(QModelIndex) member function has been made obsolete,
and has been replaced by a new virtual
itemDelegateForIndex(QModelIndex) member function that can be
overridden to give subclasses control over which item delegate
should be used for an index.
Change-Id: Ib03529c38797386d3a1d4cf3c5646e911d95daf5
Reviewed-by: Samuel Gaist <samuel.gaist@idiap.ch>
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
Reviewed-by: Christian Ehrlicher <ch.ehrlicher@gmx.de>
CentOS it seems not only backported some OpenSSL 3 functions,
but also raised the default security level to 2, making some of
our keys (and MDs?) 'too weak' and failing auto-tests here and
there as a result. For our auto-test we lower the level to 1,
as it is expected to be.
Fixes: QTBUG-86336
Pick-to: 5.15
Change-Id: I7062a1b292e8b60eb9c2b2e82bd002f09f9da603
Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
There is no reason to use double precision for colors. We at most have
16 significant bits anyway.
Change-Id: I8b402cd978675b8ba7248176976d934363212ff1
Reviewed-by: Christian Ehrlicher <ch.ehrlicher@gmx.de>
This is needed for qtwayland, where QtWaylandCompositor package should
call find_package(QtWaylandScanner) in the 'Tools' section of the
ModuleDependencies.cmake file, rather than the regular 'Qt' section.
This takes care of handling host path prefixes, to ensure that a host
package is found even when tools have also been cross-compiled via the
QT_BUILD_TOOLS_WHEN_CROSSCOMPILING option.
Task-number: QTBUG-83968
Change-Id: I4725a630214d053105fb6d2a0f7c5ff6128d13f9
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
qt_apply_rpaths takes into account properties like MACOSX_BUNDLE. This
property might not yet be set when qt_internal_add_app is called, but
later.
To handle that, move the call of qt_apply_rpaths to
qt_internal_finalize_app.
As a result, the installed apps will have 2 rpaths, the $ORIGIN style
relocatable one, and an absolute path one pointing to the Qt
prefix/lib. The last one might be unnecessary.
Fixes: QTBUG-86514
Change-Id: I25e0d695c78c8b5703e94c99cc2457f772721456
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
Add virtual hooks that can make it possible in Qt6 to implement paint
device specific pixmaps.
Change-Id: Ib1d1d7b5e32d9430203f718534344b25c0ead744
Reviewed-by: Eirik Aavitsland <eirik.aavitsland@qt.io>
Test data for QDateTime unit tests was constructed in system's local
time, which made unit test outcome dependent on the time zone of the
system running the tests.
This led to failing unit tests on systems with libc6 version
2.31 or newer. A QDateTime in a timezone, which has daylight saving
time, was created and then used in Hawaii's time zone,which has no
daylight saving time. Newer glibc checks this and returns errors.
This patch changes the behavior to create the test data in a
specified time zone setting.
Task-number: QTBUG-80441
Change-Id: I0330b647fa011be99141dde09001ff2d58bd3a5f
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
We can't unexport the class, as it's being used by the
OpenGL paint engine in QtOpenGL.
Change-Id: I74c1bef0e4720a82679a329462e80571f0583a84
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>