It was possible to end up with a dangling pointer in m_listStack.
This is now avoided by using QPointer and doing nullptr checks before
accessing any QTextList pointer stored there.
We have 2 specimens of garbage that caused crashes before; now they don't.
But only fuzz20450 triggered the dangling pointer in the list stack.
The crash caused by fuzz20580 was fixed by updating md4c from upstream:
4b0fc03077
Change-Id: I8e1eca23b281256a03aea0f55e9ae20f1bdd2a38
Reviewed-by: Robert Loehning <robert.loehning@qt.io>
\deprecated has to stand on its own - qdoc will ignore anything on the
right side of it.
Change-Id: Ib698aa66826d6430bbafd926a9c64febd5463c5c
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
This reverts commit ccb2cb84f5 and
commit 0f568d0a67.
The patches fix ambiguity between a getter and a signal by changing the
getter name, but we still have to rename the signal to follow the signals
naming convention.
Revert the commits to keep the getter as is and change the signal name instead.
Change-Id: Iddbab7c33eea03826ae7c114a01857ed45bde6db
Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
When iterating, it should only return what is in the specified path and
not the contents of the sub-directories inside the given path in
addition.
Change-Id: Iad56f075c22fdf1c633582e37444e26520c24a73
Reviewed-by: BogDan Vatra <bogdan@kdab.com>
In order for the system to close a menu when clicking outside of it or
outside of the controlling window for the system tray then it needs to be
at the foreground right before the menu is tracked. This makes it act
like other system tray menus then.
Change-Id: I663670c506cfd1e2ba59cd3e75b12e1f8ba17c33
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
Currently, there's no generic way to get the source models as there's only
calls to add or remove them.
Change-Id: I23cdef7c93328b58a80ec4659b44073f8ff05088
Reviewed-by: David Faure <david.faure@kdab.com>
call toLocalFile() only if the returned QUrl::isLocalFile() is true,
otherwise return toString(). Same thing as done for QFileDialog static
functions as in 1576f81baa.
Change-Id: I3f8cab385e32d0943587b3382a636ea3a168d518
Reviewed-by: Andy Shaw <andy.shaw@qt.io>
During a spring forward, a time-zone omits an hour. A QDateTime with
such an hour is invalid, but QDateTimeEdit's handling of this invalid
time was not done correctly.
With this fix, up/down changes of any field that would result in an
invalid date-time corrects the time to be valid, while leaving as
much as possible of the user-entered data unchanged. To do that, we
rely on QDateTime::toMSecsSinceEpoch to return a value even for such
an invalid time, which then can be used to construct a valid
QDateTime.
Edits that would result in an invalid hour are reverted to the
previous when pressing return, if correctionMode is
CorrectToPreviousValue. This change also implements support for
CorrectToNearestValue, which uses the same mechanism as when stepping
over an invalid time.
Include a test that verifies that the various interactions result
in a reasonable value. Since QDateTimeEdit does not respect the
timezone or timespec of the QDateTime it is initialized with, we
have to find the first hour of daylight saving time for a year
that we know works for most time zones. Failing that, we have to
skip the tests. Verified in a wide range of time zones.
Change-Id: I05b906ae3b5f6681891d23704f00f9c10cd479ae
Fixes: QTBUG-79803
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
As per the ### Qt 6 comment. A method visitedPages should, following
the convention of the other QWizard APIs, return a list of QWizardPage
pointers. Since the method returns a list of IDs, visitedIds is the
correct name.
[ChangeLog][QtWidgets][QWizard] visitedPages has been deprecated, use
visitedIds instead.
Change-Id: Ifdb94adf093be14cb48c84cb40818c55ff5189a0
Reviewed-by: Jan Arve Sæther <jan-arve.saether@qt.io>
QStatusBar is 22 years old, and those protected APIs have been around
ever since. There is no good reason to make them private now.
Change-Id: I62624800d8e287e21535967aa6a861b98cae97d5
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
Reviewed-by: Jan Arve Sæther <jan-arve.saether@qt.io>
[ChangeLog][Deprecation Notice] QAbstractSocket::error() (the signal) is deprecated; superseded by errorOccurred()
Change-Id: I11e9c774d7c6096d1e9b37c451cf0b99188b6aad
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
Much of this test case was testing that the machine it runs on didn't
take more than an expected amount of time, which is an assumption that
won't hold in a virtual environment where the hypervisor might decide
to not allocate any CPU time to the machine at certain times.
Instead, take the samples that we want to compare with once, then
use them as reference for further comparisons.
Also, split the test in two, with the comparison operators and msecsTo
test moved into a separate test function.
Change-Id: I7db12b8e02552f4d63af933c1b0fee9d62b591eb
Fixes: QTBUG-58713
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
When asynchronous events are used for notifications about screen changes
it is possible that we run into a race condition where the scale factor
has not yet been updated for the new screen. This results in a wrong
geometry being set for the window that is moved between the screens.
We do not have that problem with synchronous events.
Change-Id: I4eb6d2a7cb49517d271901b479f973e273a0926a
Amends: 7eed1e40d4
Task-number: QTBUG-65580
Fixes: QTBUG-82312
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
This test doesn't test whether window activation works, so there is
no reason to fail the test if it doesn't. Instead, abort the test, so
that we can record it as a skipped test.
Change-Id: Ia44308ef17f110d40c6455d7ee85d90914face4f
Fixes: QTBUG-22455
Reviewed-by: Jan Arve Sæther <jan-arve.saether@qt.io>
Reviewed-by: Levon Sargsyan <levon.sargsyan@qt.io>
Reset the lastETPosition after we changed DirET to DirEN,
to avoid iterating over the same set of characters many times.
Change-Id: Ib4113d0ba87ad70fc6bb386632eb094f943c080d
Reviewed-by: Robert Loehning <robert.loehning@qt.io>
Freetype can give us non empty bounds for zero-width characters,
this change just makes us skip metrics of characters already found to
not contribute to text advance. The coretext and windows
font-engines already uses the already calculated advance.
Change-Id: I82b3521a4fb92614be509be5982cd5ab9c1eb7de
Fixes: QTBUG-58854
Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
Make sure that, if Qt was configured with -debug-and-release, winmain
and user apps are generated by default in debug-and-release mode, too.
This amends 9b4ec1393f .
Change-Id: I0f169d63ca98c9bde41114225004a0844425db33
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
Reproduce:
Show first window in first canvas;
Show second window in second canvas;
After screens are rendered destroy first window in first canvas
Change-Id: Ifbeb4824c1fdedecf24d5d20e58613d15c066420
Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
The C Connector does not appear to be offered as a component in the
MySQL 8.0.19.0 installer.
Task-number: QTBUG-82187
Change-Id: I4b1ef83cca68e7bf6dd032ba35c0784354d7fed3
Reviewed-by: Christian Ehrlicher <ch.ehrlicher@gmx.de>
QLineEdit is unicode, and uses QChar::isLetter and QChar::isNumber to
evaluate whether an input character is valid. There is no test for ASCII
ranges, or converting of input characters to ASCII, so the documentation
was wrong.
[ChangeLog][QtWidgets][QLineEdit] the inputMask property has allowed any
Letter or Number category character for the respective mask characters,
not just ASCII. The documentation has been updated accordingly.
Change-Id: Ied93cf6ddd334ac91bfbc275107a8eb83d231d80
Fixes: QTBUG-82291
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
Reviewed-by: Venugopal Shivashankar <Venugopal.Shivashankar@qt.io>
Flaky fails in this test suggest that the VM on which the
test is executed does not get CPU resources allocated for enough time
to make this test pass. This change makes the test more resilient by
taking the measurements as quickly as possible.
In addition, use a sanity-check based on std::chrono APIs to abort the
test completely if we see that the clock has advanced too far to make
the following tests meaningful.
Change-Id: Ie6ac4ffb52f20e7774014f8222c9cd8f54d8a263
Fixes: QTBUG-64517
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
As per ### Qt 6 comment and pre-existing documentation, one of the
other enum values should be used anyway.
Only usage in QtWidgets is in QFileDialog, replace it there with
appropriate alternative.
[ChangeLog][QtWidgets][QComboBox] the SizeAdjustPolicy value
AdjustToMinimumContentLength is deprecated, use AdjustToContents or
AdjustToContentsOnFirstShow instead.
Change-Id: I22deaa31fbb6c09e87c814e120eb7ee27c177ea9
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
As per ### Qt 6 comment, and the documentation which already suggests
to specify the individual flags instead.
Change-Id: Id236b7b13024a15fc7ad483b9481361b2ac43a02
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
Recursively defined entities can easily exhaust all available
memory. Limit entity expansion to a default of 4096 characters to
avoid DoS attacks when a user loads untrusted content.
Added a setter and getter to allow modifying the expansion limit.
[ChangeLog][QtCore][QXmlStream] QXmlStreamReader does now by default
limit the expansion of entities to 4096 characters. Documents where
a single entity expands to more characters than the limit are not
considered well formed. The limit is there to avoid DoS attacks through
recursively expanding entities when loading untrusted content. The
limit can be changed through the QXmlStreamReader::setEntityExpansionLimit()
method.
Fixes: QTBUG-47417
Change-Id: I94387815d74fcf34783e136387ee57fac5ded0c9
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@gmx.de>
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
http example uses QStandardPaths, on Android permissions might need to
be explicitly requested to write the downloaded file.
Task-number: QTBUG-80717
Change-Id: Icd377254ad77cac661c5ae37e9081e0463493d8b
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
This reverts commit 94b3dd77f2.
The patch fixes ambiguity between a getter and a signal by changing the
getter name, but we still have to rename the signal to follow the signals
naming convention.
Revert the commit to keep the getter as is and change the signal name instead.
Change-Id: I0dd60cf1ae9d1bd95beeb8ad58661ca4b1fb63b9
Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
The new PMF ctors introduced with a4751f8824
created some ambiguities with existing old-style connects. Fix it by
explitly checking if the given pointers are pointers from QObject
derived classes.
Fixes: QTBUG-82415
Change-Id: I70d51a6d50384fe6b5083fa3b94492ab6ed97086
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
If you have deprecation warning version set to 5.15 and the
"disable deprecated before" set to something lower then it will complain
about usage of operator-- inside std::distance which is used in our
generic collection iterator.
This also required changing over to the QT_DEPRECATED_VERSION_5_15 macro
so that the deprecation warning would also be disabled.
This is a possible work-around - change the iterator tag if it would
trigger a warning.
Fixes: QTBUG-82397
Change-Id: I3e0ecae5edebba2a3560e7c3785bd9d1a6d0076d
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Following wg21.link/LWG3228, it was found that a proper variant fix
requires that T* -> bool conversions be treated as narrowing
conversions in subclause wg21.link/dcl.init.lst. wg21.link/P1957R2 was
accepted in Prague 2020 as a DR and retroactively applies to older C++
standards.
Since we hard-code the algorithm of [dcl.init.lst], we can and must
add this manually.
[ChangeLog][QtCore][QObject] For the purposes of
QT_NO_NARROWING_CONVERSIONS_IN_CONNECT, pointer
(incl. pointer-to-member) to bool conversions are now considered
narrowing. This matches the resolution of a defect report in C++
itself.
Change-Id: Ifa9a3724c9c8ccd3dd6614928dbbe37477591dc1
Reviewed-by: Ville Voutilainen <ville.voutilainen@qt.io>
Less \a fun though.
Note using references in this API would just duplicate the API, but
still end up with a copy when creating the QRunnable. By having the
copy apparent directly in the API, we not only save the duplication,
we also hint to the caller to use move if they want to avoid a copy.
Change-Id: If11476d4b38853839c1e87e0339807a1798fc875
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
It's too small to bother with passing by reference.
Change-Id: I793678f5ae352b7f24d2c7e758dc75827c2190df
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
On Windows, the test was leaking a registry key
HKEY_CURRENT_USER\Software\tst_QSettings_trailingWhitespace
Fix by using .ini-Format in the temporary directory created by the test.
Amends e66a878838.
Task-number: QTBUG-22461
Change-Id: If141a9e72e8faebc3fc46b94dab7b4b728a75292
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Renaming the attribute to make it platform-independent, since in spite
of currently being supported only on Windows, it may be eventually
supported on other platforms where it may be useful.
Task-number: QTBUG-76088
Change-Id: Id98ccd7a34e1c43b1f2274efce6ab4b4aff24f03
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
Found in API review. Replacing with the suggested name which is more Qt-ish.
And also preventively fix the name to contain its enum's name to follow the
conventions.
Change-Id: I00b510e36ccc831f107ecc3c79943d617726b4fb
Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
Those enum values are not used by widget code. Exception is
PE_PanelItemViewRow, which is used by all item views, and no replacement
is provided. So removing the ### Qt 6 comment from this value.
Change-Id: Id4371bda5c3b14e3565c87ab233ee621d995f081
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
- QCborError: Classes cannot relate to header files; use \inheaderfile
instead and link to the class from header file documentation.
- QRecursiveMutex: QDoc doesn't allow shared documentation comments
for duplicating \fn docs between the base and deriving classes.
Remove the sharing, the function documentation is available under
'All Members' doc for QRecursiveMutex.
- QMultiMap: unite() and one overload of insert() were not recognized
because their definitions in the same header file interfered with
QDoc - use Q_CLANG_QDOC macro to comment them out, and tag \fn
comments to ensure that the function documentation is matched.
Change-Id: Ic96869904a72d92453e4ffa6901000147571969b
Reviewed-by: Paul Wicking <paul.wicking@qt.io>
Allow deprecation warnings to be controlled with
QT_NO_DEPRECATED_WARNINGS.
Fixes: QTBUG-82424
Change-Id: I6df55ee2abaf4c141ac9b0e7661e46ba3706b20e
Reviewed-by: Lars Knoll <lars.knoll@qt.io>