Commit Graph

45269 Commits

Author SHA1 Message Date
Marc Mutz
693c28b9fb examples: avoid int -> QChar conversions
They're being made explicit/deprecated/removed.

Change-Id: I61d8c40dc86035813b85724beb21a65b6f8dffef
Reviewed-by: Paul Wicking <paul.wicking@qt.io>
2020-04-29 10:10:36 +02:00
Volker Hilsheimer
0fda43cf33 Remove deprecated members from QtGui/image classes
Cleaning up those that are trivial to remove because they have direct
replacements.

Change-Id: I4f5c25884a01474fa2db8b369f0d883bd21edd5b
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
2020-04-29 06:20:07 +02:00
Kai Koehne
0303d8ddfa Android: Rename rs locale to se
rs is the country code for Republic of Serbia, but se is the Serbian
Language.

According to the  IANA  subtag registry that is referenced in the error
message, the language subtag for Serbian is se.

  https://www.iana.org/assignments/language-subtag-registry/language-subtag-registry

This fixes an error when uploading some apps to the Google Play Store.

Fixes: QTBUG-83780
Pick-to: 5.15
Change-Id: I532a3082ca954a78343c873246b09a14d7a80a0e
Reviewed-by: BogDan Vatra <bogdan@kdab.com>
2020-04-28 13:34:36 +02:00
Joerg Bornemann
8e63725f40 CMake: Honor INSTALL_MKSPECSDIR when generating qmodule.pri
Change-Id: I3e0cdee30590d6979658ef81978513dd20455516
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
2020-04-27 16:55:38 +02:00
Sona Kurazyan
469e044f06 Port qtbase/tests/auto/gui/painting to CMake
Task-number: QTBUG-78225
Change-Id: Idc1333b119939e65da8f47d8de5333a38701bcb4
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
2020-04-27 14:34:56 +02:00
Sona Kurazyan
7e1dacc27a Port qtbase/tests/auto/corelib/text tests to CMake
Task-number: QTBUG-78220
Change-Id: I497da6ed489854bdee5a1ead9a3f34118c78d001
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
2020-04-27 14:34:51 +02:00
Qt Forward Merge Bot
ceaf23b361 Merge "Merge remote-tracking branch 'origin/5.15' into dev" 2020-04-27 13:56:59 +02:00
Qt Forward Merge Bot
00ee368813 Merge remote-tracking branch 'origin/5.15' into dev
Conflicts:
	src/corelib/text/qstringliteral.h

Change-Id: I1665af3ce537471b249def5e080b39bd4105189e
2020-04-27 13:50:33 +02:00
Jarek Kobus
31ec0c8e71 Fix doc
Change-Id: I0df2a430b451718e2fefdaa1632b81e2d16107cc
Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io>
2020-04-27 13:16:48 +02:00
Marc Mutz
50b3097683 Remove unused qTopLevelDomain()
The last (and only) user was removed in 4f076db3d2.

Change-Id: I59b155017bfd00bbcbfe72dc0e535c92c0384dad
Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
2020-04-27 13:08:45 +02:00
Marc Mutz
7b04e0012b QUnicodeTables: port to charNN_t
This makes existing calls passing uint or ushort ambiguous, so
fix all the callers. There do not appear to be callers outside
QtBase. In fact, the ...BreakClass() functions appear to be
utterly unused.

Change-Id: I1c2251920beba48d4909650bc1d501375c6a3ecf
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
2020-04-27 13:08:41 +02:00
Volker Hilsheimer
1a342b2db1 Remove deprecated QComboBox::SizeAdjustPolicy enum value
Change-Id: Ia8ae2eb11b86bc615e1297d7fabd1afcb821557c
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
2020-04-27 12:22:33 +02:00
Leander Beernaert
6dd90afb76 CMake: Regenerate projects to match updated plugin API
Change-Id: Iafe0a953e74d7f36ec48fa075b3725dd6466c5e3
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
2020-04-27 12:21:29 +02:00
Leander Beernaert
bd24bf740c CMake: Fix wrong arm64 architecture
Due to the wrong string comparison, we were writing out the wrong
architecture for the arm64 builds to the deployment settings json file.
This leads to androiddeployqt tool not being able to locate the
stdlibc++.

Change-Id: I3d13b14c27f043445bf46aaca0e9f862f6ca84e5
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
2020-04-27 12:21:29 +02:00
Volker Hilsheimer
dccf28b7c3 Remove deprecated members from several QtGui classes
Those can be trivially removed as they have direct replacements, or
are completely unused.

The migration path for QCursor::bitmap and QCursor::mask is

QBitmap *pb = c.bitmap(); // up to 5.15, warns in 5.15
QBitmap vb = c.bitmap(Qt::ReturnByValue); // from 5.15, works in 6
QBitmap b = c.bitmap(); // from 6.0 on

Change-Id: I3b3acd1c7f09c4c8414e98b3ce11986f1ecd5eda
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
2020-04-27 12:21:29 +02:00
Marc Mutz
4ba25a0920 QStringIterator: port from uint to char32_t
Change-Id: I0ca47b87216478b28e29b0fa1a118ef13b6d7c84
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
2020-04-26 13:46:18 +02:00
Marc Mutz
19bfcdaa43 Port qIsEffectiveTLD() to QStringView
Also add a piece of documentation that the input needs to be
in lower-case (the implementation uses qt_hash to index into
a table of TLDs, and qt_hash is case-sensitive).

Change-Id: I911c0e2bb0826fc1b0fc01ed60bdfd6e4c0298f2
Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
2020-04-26 11:46:16 +00:00
Volker Hilsheimer
bc205d81e7 QApplication: deliver all wheel events to widget that accepts the first
For kinetic wheel events, Qt tries to make sure that all events in the
stream go to the widget that accepted the first wheel event.

It did so by directing all events from the stream to the widget from
which the spontaneous event was returned as accepted.
However, that widget might have passed the event on to some other
widgets; e.g QScrollArea forwards wheel events from the viewport to the
relevant scroll bar. The event might then have come back accepted only
because parent propagation kicked in (the scrollbar might not accept
the event, so the parents get a chance, and some parent's scrollbar
ultimately accepts the event).

In this scenario, the wheel widget would be the viewport under the
mouse, when it should have been the scrollbar of the parent. The
next events from the stream were then delivered to a widget that didn't
scroll; and parent propagation is not (and should not be) implemented
for the case where Qt has a wheel widget.

Instead, make the first widget that accepts any initial wheel event
the wheel widget, even if the event was not spontaneous. With this
change, all events from the stream are delivered to the widget that
actually handled the event. That has the effect that ie. a viewport
of a scroll area only gets the first event; all following events are
delivered directly to the scrollbar.

The test case added simulates the different scenarios - nesting of
scroll areas, classic wheel events and a stream of kinetic wheel
events.

[ChangeLog][QtWidgets][QApplication] Wheel events from a device that
creates an event stream are correctly delivered to the widget that
accepts the first wheel event in the stream.

Change-Id: I5ebfc7789b5c32ebc8d881686f450fa05ec92cfe
Fixes: QTBUG-79102
Pick-to: 5.15
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
2020-04-25 01:34:04 +02:00
Lars Knoll
f6bd056803 Remove the QTextCodec dependency from the xcb plugin
Change-Id: Ic9f4cec4aa7270b8d9e16c345d060d7d820319d3
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
2020-04-24 23:44:51 +02:00
Lars Knoll
5f013bc10f Move Qt::codecForHtml() to qtextcodec.*
The method should move out of Qt together with QTextCodec in Qt 6.
Qt 6 will in any case always assume utf8 for 8bit encoded HTML.

Change-Id: I68adbc1f0df7e36a82ef6b434ee3771f23e3b790
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
2020-04-24 23:44:50 +02:00
Marc Mutz
26a38db8a2 QUrlIdna: port qt_is_idn_enabed() to QStringView
Change-Id: I3cd8a1da47f660f79760bbde88560693ab505823
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
2020-04-24 23:44:50 +02:00
Volker Hilsheimer
70ad404203 QMainWindow: don't grow memory when modifying tabbed docks while hidden
QMainWindow tries to avoid memory allocations by caching tab bars that
are no longer used. That cache is populated when the layout is
activated.

The layout might never be activated when the main window is never shown,
in which case adding and removing dock widgets at runtime will
continuously allocate more memory for tab bars that are created.

A workaround is to call QMainWindow::layout()->activate() explicitly in
application code, once all dock widgets have been removed. This change
avoids that applications have to do that.

Change-Id: I70eb585d2120f0b7b73f59c3ee65d7242c12ec59
Fixes: QTBUG-83135
Pick-to: 5.15
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
2020-04-24 17:41:02 +02:00
Volker Hilsheimer
ed86a4f253 Don't send QEvent::Hide to an already hidden top level widget
When hiding a popup by clicking outside of its area, a window is closed.
Depending on the platform specific implementation details, this can
result in multiple calls to QWidgetPrivate::setVisible(false). The first
one from the handling of the close event in QWidgetWindow::event; the
second from the destruction of the window in QWindow::event.

Since the first call already sets the Qt::WA_WState_Hidden flag before
calling QWidgetPrivate::hide_helper, we can test if the flag is set
and skip the second call if it is.

The included test does not reproduce the issue, as that issue only
reproduces if the close event is generated by the mouse event handling
in the Cocoa platform plugin (which doesn't call QWidget::close, but
rather sends a native close event to the platform window). However, it
verifies that the fix doesn't introduce any regressions.

Change-Id: Id0eda9326a8adf0cc1f6a3840f9ac0b635ab39a1
Fixes: QTBUG-79134
Pick-to: 5.15
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
2020-04-24 17:40:36 +02:00
Volker Hilsheimer
cc54685b8d Remove deprecated ApplicationAttribute enum values
In the declaration, leave them in as comments so that the gaps in the
numbering of the values doesn't create confusion.

Change-Id: I92ff299416896c471e7c7d80b988cd4642b6b756
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
2020-04-24 17:40:17 +02:00
Volker Hilsheimer
5d32552cf4 Move QMargins operator| into qmargins.h, add equivalent for QMarginsF
Addresses FIXME comment in qwidget.cpp, where the operator is being
used.

Add documentation, make constexpr and add noexcept as for the other
operators.

As a drive-by, remove invalid const from return type in the
documentation of the other operators. They all return a non-const
QMargins object.

Change-Id: I5a9ca82978d38acd02e03ec00ca202fe1b8cf6c1
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
2020-04-24 17:40:09 +02:00
Volker Hilsheimer
fd894fd68e QListWidget/View: Update the selection when moving items within the view
The code for doing that existed in the QListWidget::dropEvent override,
and was only using standard itemview APIs to adjust the selection model.
There is no reason why dropping items internally in a QListView
should not do the exact same thing.

As part of moving the code from QListWidget to QListView, replace QList
with QVector, and other minor optimizations.

[ChangeLog][QtWidgets][QListView] Moving selected items within a list
view by drag'n'drop will maintain the selection of those items.

Change-Id: Ie24bec38234839dcb2f0b0ee0302cc59ca101631
Fixes: QTBUG-83084
Pick-to: 5.15
Reviewed-by: Jan Arve Sæther <jan-arve.saether@qt.io>
2020-04-24 17:40:01 +02:00
Marc Mutz
20cdf807b1 QChar: port low-level functions from uint/ushort to char32/16_t
Now that the standard gives us proper types for UTF-16 and UTF-32
characters, use them. Will eventually make the code much easier to
read than today, where uint could be an index as well as a char32_t.

It also ensures that the result of e.g. QChar::highSurrogate() can
still be implicitly converted to a QChar now that the
QChar(non-characater-integral-types) ctors are being made explicit.

[ChangeLog][QtCore][QChar] All low-level functions
(e.g. highSurrogate()) now take and return char16_t instead of ushort
and char32_t instead of uint.

Change-Id: I9cd8ebf6fb998fe1075dae96c7c4484a057f0b91
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
2020-04-24 12:45:53 +02:00
Marc Mutz
3238445b27 QString: add append, op+=, prepend, insert taking QStringView
[ChangeLog][QtCore][QString] Now supports appending, prepending
and inserting QStringViews.

Change-Id: I7538c050c67590f27d91443eda0b94a4b80b62f2
Reviewed-by: Anton Kudryavtsev <antkudr@mail.ru>
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
2020-04-24 10:45:09 +00:00
Laszlo Agocs
d737db8734 Clarify ResetNotification in QSurfaceFormat a bit
Add some more details to make it a bit easier for advanced users
to grasp what this is about.

Task-number: QTBUG-80257
Pick-to: 5.15
Change-Id: I9969b5b62384a25d5e90b57ef25c83a8a2a6c9c7
Reviewed-by: Andy Nichols <andy.nichols@qt.io>
2020-04-24 10:46:52 +02:00
Marc Mutz
b32fc18381 QUrlIdna: re-enable NRVO
Change-Id: Id4f9b14f4255c661a0313ca18b0c5af5c55880e7
Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
2020-04-24 10:41:59 +02:00
Andy Shaw
dddd197d42 Deprecate QGuiApplication::fontChanged() signal
Rather than have a fontChanged() signal which can be connected to for
tracking when the application font has changed, then it is better to
use the event that is sent to all windows and the application itself.
That way it is easy for a window/widget or item that cares about the
change to the application font to catch it in the event() function.

[ChangeLog][QtGui][QGuiApplication] Deprecated fontChanged() signal in
favor of QEvent::ApplicationFontChanged.

Change-Id: Iae8e832238fc85e385a52305bc04f16e597454b0
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
2020-04-24 10:10:55 +02:00
Kai Koehne
44e8c90ad4 Do not mention Qt XML's SAX API anymore in examples/xml/README
The SAX API in in Qt XML got deprecated, and examples using it
removed in commit 82d02b7b95.

Pick-to: 5.15
Change-Id: I39b71378c0f797e82431c8a0e12255626ed145ed
Reviewed-by: Sona Kurazyan <sona.kurazyan@qt.io>
2020-04-24 09:47:41 +02:00
Kai Koehne
40001d4a53 Doc: Remove mentioning of QXmlSimpleReader from QXmlStreamReader
Pick-to: 5.15
Change-Id: Ieba073c21f666421ab519089e0976880e67ad0b1
Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io>
2020-04-24 09:47:26 +02:00
Lars Knoll
9260662cb1 Fix compilation of thee OCI driver
Amends change befd198c15

Change-Id: I11cc116d31fa1f71acd9579e60a6b265811def1e
Reviewed-by: Samuel Gaist <samuel.gaist@idiap.ch>
2020-04-24 08:42:12 +02:00
Leander Beernaert
43031d98fc CMake: Allow sqldriver plugins to be built as standalone
This patch allows all the sqldrivers to be built as a standalone project.
It is not possible to build each plugin separately due to the configuration
features definition being located in the sqldriver's folder CMakeLists.txt.

In other words, the project needs to be generated from the
src/plugins/sqldrivers/CMakeLists.txt file.

Fixes: QTBUG-82962
Change-Id: If41c7e3827589391830a894a9c998d2e56239562
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
2020-04-24 07:41:13 +02:00
Leander Beernaert
dd7e40b108 CMake: qt_find_package() enable debug behavior by default
Without this behavior enabled by default it is currently not possible to
build QtVirtualKeyboard as a static build. We run into the error where
cmake is trying to promote the targets to be global due the XCB library
already being found by one of the modules in QtBase.

In case we wish to disable this fix, any module can simply specify
QT_FIND_PACKAGE_DISABLE_DEBUG_BEHAVIOR=ON during configuration time.

Change-Id: Id7f2ad12ddea941dda754361660c7606439cd5a4
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
2020-04-24 07:41:11 +02:00
Marc Mutz
35848f2a32 QUrl: fix implicit int->QChar conversion
They're becoming explicit.

Change-Id: I1221ee8fb3b373a991ddedc66a50f5d3b501876f
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
2020-04-23 18:45:38 +02:00
Vitaly Fanaskov
9ba0715f08 QFuture: the result type doesn't have to be a default-constructible
Added asserts to insure the invariant declared in the documentation.
Canceled future object is not valid, hence we don't need to handle
this case separately.

Fixes: QTBUG-83389
Change-Id: Ib0653ef40cd3135574a91740e4ce2c6dc4da8a71
Reviewed-by: Sona Kurazyan <sona.kurazyan@qt.io>
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
2020-04-23 17:09:52 +02:00
Volker Hilsheimer
23b998fa45 QWidget: fix regression when changing focus proxy while it has focus
This follows up on commits 3e7463411e and
947883141d.

The changing of the pointer of QApplicationPrivate does not transfer
focus properly. It updates the pointer, but it doesn't deliver events
or update the widget hierarchy's focus chain. The result is that
multiple line edits might show a blinking cursor.

Instead, use QWidget::setFocus when the focus proxy has changed while
it had focus, and pass OtherFocusReason rather than NoFocusReason.

Add a basic test for QWidget::focusProxy, which exercises this code
path and verifies that pointers are consistent when focus changes as
a side effect of modifying the focusProxy.

Change-Id: I15a4d868bab2b590cfe4a1daa6a3c8cebc9c9ca2
Fixes: QTBUG-83720
Fixes: QTBUG-79707
Pick-to: 5.15
Reviewed-by: David Faure <david.faure@kdab.com>
2020-04-23 16:19:07 +02:00
Edward Welbourne
89dc1a1865 Make t specifier for time-zone only apply to date-time
It previously applied to dates and date-times, but was documented as
applying to times (and date-times then included it by reference).
It's only meaningful for a date-time.

Change-Id: Id9e8e8cb987b03e5ddc77b05c581b9b6944065fc
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2020-04-23 12:11:35 +02:00
Marc Mutz
5c1446e3fa QImage: optimize convertWithPalette()
The old code got a QMap serialized as a QString and parsed it to
re-create the same map.

Just copy the map.

Change-Id: Ic71b9fa9d822eab53fe37dfb4d76223cd69ac057
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
2020-04-23 08:38:49 +00:00
Albert Astals Cid
871e2981dd QStringLiteral: Remove const temporary that may prevent optimization
clang-tidy 10 was complaining about
http://clang.llvm.org/extra/clang-tidy/checks/performance-no-automatic-move.html

Change-Id: Iea5276e401a10f3ead8599e135dec1f0fa63a0dc
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2020-04-23 10:30:44 +02:00
Laszlo Agocs
574898c9eb vkmemalloc: make it compile with macOS 10.15 SDK
Simply rename the function in order to not clash with aligned_alloc()
that is marked as 10.15 only (and thus would need annotation etc.) in
the 10.15 SDK. (note that aligned_alloc is a C11 function which was
presumably not present in earlier SDKs, by renaming our own version
everyone will be happy, hopefully)

Change-Id: Iee400d81df6a0af4fa2129358ed27b049720685b
Pick-to: 5.15
Reviewed-by: Andy Nichols <andy.nichols@qt.io>
2020-04-23 10:20:00 +02:00
Laszlo Agocs
3ef7a760ff rhi: Take mip size into account for render target size
Also extend autotesting, both for rendering into a given mip level
and for rendering into a given cubemap face.

Change-Id: Ida94b71150477ceb50a3b5616d8b7be13174558b
Reviewed-by: Andy Nichols <andy.nichols@qt.io>
2020-04-23 10:19:53 +02:00
Joerg Bornemann
4545eadd3e CMake: Port the 'static_runtime' feature
This feature is Windows-only and must be turned on manually.
For MSVC it sets the MSVC_RUNTIME_LIBRARY target property.
For MinGW it adds the -static linker flag.

Change-Id: I9da3b88d545b34bc34a3a80301b2dd1b5986fa88
Reviewed-by: Leander Beernaert <leander.beernaert@qt.io>
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
2020-04-23 10:09:15 +02:00
Joerg Bornemann
1c7950081f Remove checks for glibc < 2 from qplatformdefs.h files
The last release of glibc 1 was 1995 and can be considered outdated.

Also, the current check prevented building with e.g. musl libc.

Every file that includes common/posix/qplatformdefs.h already has
QT_SOCKLEN_T defined to socklen_t, so remove the definition from those
completely.

This is a continuation of 813f468a and a421e409.

Change-Id: Icf2692a8e814286487662e290a8f844872eefe53
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2020-04-23 06:41:32 +02:00
Qt Forward Merge Bot
8058e11012 Merge "Merge remote-tracking branch 'origin/5.15' into dev" 2020-04-23 01:38:52 +02:00
Gustavo Carneiro
09da7f470e Add .vscode in git ignore list
Add a .vscode line in the .gitignore file to ignore the Visual Studio Code auto generated files.

Add a .vscode line in the .gitignore file to ignore the Visual Studio Code auto generated files.

Change-Id: Ifbcf82a9c23b4ecf35ae9fd84787f7e1e29df47b
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2020-04-22 20:38:52 -03:00
Qt Forward Merge Bot
7f895553ac Merge remote-tracking branch 'origin/5.15' into dev
Change-Id: Iaa439ba7dff19a17e3716b3d30f49f60fa6e38f8
2020-04-23 01:00:36 +02:00
Tor Arne Vestbø
0c6b4dd4ad macOS: Don't optimize out aggressive backingstore flushes when single-buffered
Comparing the layer contents to the backingstore surface doesn't make
sense when we're single buffered since we're always using the same
surface.

And once Core Animation has picked up on the surface it's not enough to
just keep drawing to it, we also need to tell Core Animation that the
contents has changed.

Change-Id: I517a0b7a3ba7e9d96033465c9bd5a192985643ac
Fixes: QTBUG-81071
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
2020-04-22 23:46:44 +02:00