Commit Graph

32906 Commits (c8dea4a83337835323111b3372cf645b51d48edd)

Author SHA1 Message Date
Volker Hilsheimer c8dea4a833 Override virtual method in private class instead of downcasting
Move QGraphicsView specific code into reimplementation of now virtual
(and const) canStartScrollingAt.

Remove unhelpful comment.

Change-Id: Ib4799e48ac4f85748c77c52d29511a0490303676
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
2020-04-08 21:58:41 +02:00
Volker Hilsheimer e349f787d5 QGraphicsView: consistently use ranged for and iterators
- replace random access with ranged for
- replace foreach with ranged for
- add qAsConst where possible
- iterate directly over QMap, rather than the keys (address FIXME
  comment)
- add some const to ensure that code has no side effects on
  containers or indices used in different places

Change-Id: I6199fd6edd5e4426c6c7fee0ff64ec9421a64cd5
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
2020-04-08 21:58:41 +02:00
Volker Hilsheimer 6dab2577bf Constify parameter in QGraphicsItem/Object debug streaming operator
Address FIXME comment.

Change-Id: I55b6e458f2aead9baac8ab3bba7009ad993863e6
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
2020-04-08 21:58:41 +02:00
Volker Hilsheimer 6693befcbb Move code from QTabBar::event to mouseDoubleClickEvent override
Address FIXME comment, convert if/else cascade to switch-statement,
and fix coding style in surrounding code.

Change-Id: Ia883b839d2af314f4abe18e4d7cefa21d77ff7c9
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
2020-04-08 21:58:40 +02:00
Joerg Bornemann 48e8f06658 CMake: Add 'opengl' to QT.gui.CONFIG if OpenGL is ON
...like we do in the qmake build.

Change-Id: I1fed28f3294c8556e115c3a86589c98f85554bf8
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
2020-04-08 15:14:09 +02:00
Simon Hausmann 5422fb7948 Allow declaring QProperty<> based Q_PROPERTYies with a notify signal
This requires mostly making moc a bit more permissive, which has the
advantage that it also simplifies the code a little bit.

The newly added test case demonstrates how to connect such a property
with a change signal.

One test case needed to be changed regarding the callback as the
publicProperty member now has a (permanent) observer and therefore
re-assigning the binding will re-evaluate it as the value might have
changed.

Change-Id: Ia7edcec432de830bdd4e07d943c5d4550c175ca4
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
2020-04-08 11:26:39 +02:00
Vitaly Fanaskov 8365322d3d StoredFunctionCall: simplify runFunctor implementation
Task-number: QTBUG-82383
Change-Id: Ib8e196106c80e8f3aba1ff7d0c8b76a547c648da
Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
2020-04-07 17:47:31 +02:00
Laszlo Agocs ec07f83190 rhi: d3d11: Disable DXGI message queue monitoring
We do not benefit from it (don't need Alt+Enter and such). Switching
to DXGI_MWA_NO_WINDOW_CHANGES is also in line with the qtbase/5.14
patch 1430b29 that does the same for ANGLE.

Change-Id: Ie6384aeb2e97130ff439f761a7c166086f04526c
Reviewed-by: Jonas Karlsson <jonas.karlsson@qt.io>
Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
2020-04-06 14:25:12 +02:00
Simon Hausmann 549712830b QProperty: Add support for member function change handlers
When a class has multiple QProperty members to implement functionality,
it is common to have functions in the class that react to changes. For
example to emit a compatibility signal, in case of Qt Quick to mark the
scene graph as dirty, etc. etc.

To faciliate this use-case, this patch adds an internal
QPropertyMemberChangeHandler template that allows connecting a QProperty
field to a member function callback.

At the moment that callback is still 3 * sizeof(pointer). This could in
theory be reduced to 2 by eliminating the back-pointer (prev) as the
observer lives as long as the property. That however belongs into maybe
a future patch.

In order to get a pointer back to the surrounding object that holds the
QProperty as well as provides the callback function, the property system
was changed to pass through the address of the QProperty member at
run-time, and at compile time the delta from the QProperty member to the
beginning of the surrounding class is calculated. Through subtraction we
obtain the pointer to the owning object.

Change-Id: Ia2976357053f474ff44d0d6f60527c3b8e1f613a
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
2020-04-06 14:25:12 +02:00
Marcel Krems bee2bfc6c6 QSqlError: Remove deprecated methods
Change-Id: I4eb9918e65bc7990effb8a643332ba232e975893
Reviewed-by: Andy Shaw <andy.shaw@qt.io>
Reviewed-by: Christian Ehrlicher <ch.ehrlicher@gmx.de>
2020-04-06 14:25:12 +02:00
Mårten Nordheim d8b49e6b51 QtNetwork: Delete bearer management
All remaining pieces are gone, configuration included.

Relevant CMakeLists and configure.cmake were regenerated.

Fixes: QTBUG-76502
Change-Id: I667b5da7e3802830d236d50b5e9190c2ee9c19e2
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
2020-04-05 16:41:08 +02:00
Giuseppe D'Angelo 9121829916 QRegularExpression: rename AnchoredMatchOption to AnchorAtOffsetMatchOption
The name of the option may cause confusion due to the fact
that it's not _fully_ anchoring the match, only anchoring it
at the offset passed to match() -- in other words, it's a
"left" anchoring. Deprecate the old name and introduce
a new one that should explain the situation better.

[ChangeLog][QtCore][QRegularExpression] The AnchoredMatchOption
match option has been deprecated in favor of
AnchorAtOffsetMatchOption, which should better describe
that the match is only anchored at the offset.

Change-Id: Ib751e5e488f2d0309a2da6496378247dfa4648de
Reviewed-by: Samuel Gaist <samuel.gaist@idiap.ch>
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@gmx.de>
2020-04-03 21:49:57 +02:00
Sona Kurazyan 1812830ac3 Fix potential race condition in QtConcurrent blocking methods
QtConcurrent::blocking*() methods are using the ExceptionStore directly,
which is not thread safe. In case if there's an exception thrown from
multiple threads there may be a race condition. Added a lock to avoid
that.

Change-Id: I5de9928f91f5f43951b9bf9c4594694dc0ca0328
Reviewed-by: Vitaly Fanaskov <vitaly.fanaskov@qt.io>
Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
2020-04-03 19:46:04 +02:00
Volker Hilsheimer ab71c9c996 Unexport QWidgetResizeHandler and remove move functionality
Address FIXME comment.

The class is not public, and only used in QtWidgets for the resizing of
docking widgets. The move functionality is unused, and has been
removed.

Change-Id: Id477f36cb7d449b06e124950fed6f5f182aa5721
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
2020-04-03 19:01:57 +02:00
Alexandru Croitor 708d365a64 CMake: Regenerate projects after .pro files were modified
Change-Id: If6aec596bf68b209b42e0728dd6857eec8c261be
Reviewed-by: Leander Beernaert <leander.beernaert@qt.io>
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
2020-04-03 16:05:29 +02:00
Volker Hilsheimer de78425ca0 Make setRange methods in QValidator subclasses non-virtual
As per the FIXME comment. These functions are not called by Qt, so no
reason to have them virtual.

As a drive-by, remove redundant virtual keyword from overrides.

[ChangeLog][QtGui][QValidator] QIntValidator::setRange and
QDoubleValidator::setRange are no longer declared as virtual.

Change-Id: I640646fb18ed50554e384ed67ac85b3f408ea8cc
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
2020-04-03 16:05:04 +02:00
Tor Arne Vestbø 7e9481f1fb Resolve QWidget window handle without depending on QtWidgets
Change-Id: If5b2f17283193d7a1718f476b72f380e9e67d0f0
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
2020-04-02 10:33:29 +02:00
Shawn Rutledge c83ae88faf Remove QTabletEvent::PointerType::XFreeEraser
This is an artifact of pre-Qt 5 Wacom driver implementation, hasn't
been in use during the Qt 5 series, but was kept for source compatibility
with very old sources. Let's hope the usages are all gone by now.

Change-Id: I39dc36699510ea5e51cacd369470264fd8a27b37
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
2020-04-02 10:09:50 +02:00
Alexandru Croitor 3e658d5c70 CMake: Regenerate configure.cmake files
Fixes syntax warning for c++ filesystem check.

Amends 907652e1ed

Change-Id: Ieafee3610b3eea0e6c13df4d78f21ab333f3d3c0
Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
2020-04-02 09:39:24 +02:00
Fabian Kosmale b51218483b QMetaType: Add namespace where necessary
Change-Id: I973522331bec057bcf0ddb72e46776249dff8aa8
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
2020-04-02 09:09:38 +02:00
Mårten Nordheim 4888e3e840 Remove bearermanagement usage inside QNAM and QNetworkProxy
Change-Id: I2c4fdf598b46daf1b69a65848ebe0fd78ef8be24
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
2020-04-01 21:35:12 +01:00
Lars Knoll ab91ac0992 Don't store iterators on QHash while erasing
QHash::erase() in the new QHash will invalidate
all iterators pointing into the hash.

Change-Id: Ia54e8485a947cd7274f832c7c8c624d0aaded4ba
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2020-04-01 21:33:57 +01:00
Lars Knoll 605bda587e Remove QRegExp usage in QNetworkCookie
Changed this to not use capturedTexts(), as it
is slower than required, and behaves slightly
differently than in QRegExp (the returned list
might be shorter than the amount of captures if the
last capture didn't match).

Change-Id: I3f90128af62d784a3d1beb993ab215e0c7d6b826
Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
2020-04-01 22:32:39 +02:00
Sona Kurazyan 0f78e85421 Add support of failure handler callbacks to QFuture
Added QFuture::onFailed() method, which allows attaching handlers for
exceptions that may occur in QFuture continuation chains.

Task-number: QTBUG-81588
Change-Id: Iadeee99e3a7573207f6ca9f650ff9f7b6faa2cf7
Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
2020-04-01 21:51:13 +02:00
Sona Kurazyan 495f958b9a Store QFuture exceptions as std::exception_ptr
Replaced the internal ExceptionHolder for storing QException* by
std::exception_ptr. This will allow to report and store exceptions
of types that are not derived from QException.

Task-number: QTBUG-81588
Change-Id: I96be919d8289448b3e608310e51a16cebc586301
Reviewed-by: Vitaly Fanaskov <vitaly.fanaskov@qt.io>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
2020-04-01 21:51:06 +02:00
Fabian Kosmale 33b1030929 QTableView: remove unused lambda capture
Change-Id: Ifd6994f90d2c4f550d8c1b8443f426006c06af96
Reviewed-by: Christian Ehrlicher <ch.ehrlicher@gmx.de>
2020-04-01 10:29:32 +02:00
Lars Knoll ef0f1429ae Remove QRegExp based API and QRegExp usage from QTextDocument
Change-Id: Ib5cc2d747f215a483585b703f9b4f6415e0d59f7
Reviewed-by: Samuel Gaist <samuel.gaist@idiap.ch>
2020-04-01 10:29:26 +02:00
Lars Knoll 70beac08af Remove all QRegExp dependencies from widgets
QRegExp is deprecated in Qt6 and will get moved to the Qt 5 compat
library. As such we need to remove all API and usages of QRegExp
in Qt.

Change-Id: I33fb56701d3d7c577f98a304c1d4e6f626fcb397
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
2020-04-01 10:29:26 +02:00
Lars Knoll 66f06a930d Make QLocale(QString) explicit
We should not implicitly convert a QString to a QLocale object. It can
easily create unwanted side effects.

Change-Id: I7bd9b4a4e4512c0e60176ee4d241d172f00fdc32
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
2020-04-01 09:29:26 +01:00
Friedemann Kleint 098d2edb07 uic: Generate include statement for QActionGroup
Legacy forms from Qt 3 may still contain QActionGroup,
generate an include statement for them.

Change-Id: I292967f23f798a132ec7e360e437b20a529c3a26
Complements: bcaff2b06f
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
2020-03-31 18:51:57 +02:00
Timur Pocheptsov 44ceb56455 QFuture - add ability to move results from QFuture
QFuture's original design pre-dates C++11 and its
introduction of move semantics. QFuture is documented
as requiring copy-constructible classes and uses copy
operations for results (which in Qt's universe in general
is relatively cheap, due to the use of COW/data sharing).
QFuture::result(), QFuture::results(), QFuture::resultAt()
return copies. Now that the year is 2020, it makes some
sense to add support for move semantics and, in particular,
move-only types, like std::unique_ptr (that cannot be
obtained from QFuture using result etc.). Taking a result
or results from a QFuture renders it invalid.  This patch
adds QFuture<T>::takeResults(), takeResult() and isValid().
'Taking' functions are 'enabled_if' for non-void types only
to improve the compiler's diagnostic (which would otherwise
spit some semi-articulate diagnostic).
As a bonus a bug was found in the pre-existing code (after
initially copy and pasted into the new function) - the one
where we incorrectly report ready results in (rather obscure)
filter mode.

Fixes: QTBUG-81941
Fixes: QTBUG-83182
Change-Id: I8ccdfc50aa310a3a79eef2cdc55f5ea210f889c3
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
2020-03-31 15:28:23 +02:00
Lars Knoll 3af596402a Remove QRegExp usage from QSslCertificate and QSslSocket
Change-Id: I81abe1ab2173af922fa4b5fad58d25fa602c523b
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
2020-03-31 15:28:23 +02:00
Lars Knoll 6a8132c8ee Get rid of QRegExp usage in QFtp
Change-Id: Ia8743467d5b4537fe324a1278b526eb16bf0f732
Reviewed-by: Samuel Gaist <samuel.gaist@idiap.ch>
Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
2020-03-31 15:28:23 +02:00
Lars Knoll ed2e091d0d Don't keep a reference into the hash while modifying it
Change-Id: I8c7e180a3bc640a63c183f460918914265a2a31b
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
2020-03-31 15:28:23 +02:00
Eskil Abrahamsen Blomfeldt 3abacf39de RHI: Fix running with Vulkan on Wayland
When the Wayland client plugin is in use, the capabilities
for the surface may report a minimum image count of 4. The
internal "maximum minimum count" of 3, was arbitrary and
only used for sizing buffers. To be more friendly to different
setups, we remove the restriction and use QVarLengthArrays
instead.

We also set the initial size of the buffers to 4 so that we
can run with Wayland without any resizing, but now the arrays
will also grow to be safe for cases where 4 is not sufficient.

Change-Id: Iba5434e84417d36b70f2655b152e816f04650ce4
Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
2020-03-30 14:04:19 +02:00
Eskil Abrahamsen Blomfeldt adc205631b Android: Update minimum version to 23 again
In 519ea72108, the minimum SDK
version was moved away from the AndroidManifest.xml, and when
the change was merged, we lost parts of the update to set
the minimum version to 23.

This redoes it in the remaining locations.

Change-Id: Iada8188d3c0c8ec0a4801c1d219640ecb3976753
Reviewed-by: BogDan Vatra <bogdan@kdab.com>
2020-03-30 13:04:06 +01:00
Eskil Abrahamsen Blomfeldt a35a7fcb5a Android: Implement MaximizeUsingFullscreenGeometryHint
(This reintroduces c17a5cec19,
which was reverted in Qt 5 because it requires API level 23.)

This flag tells the app to use as much of the screen as possible
while still keeping system UI visible, and can be supported on Android
by using translucent system UI, similar to iOS.

What this does:
1. It changes the current fullscreen/not-fullscreen logic to
allow three states: fullscreen, fullscreen with translucent
decorations and not-fullscreen.

2. In order for it to work, we have to send the actual
screen geometry and available geometry, at least in the case
where the user needs to know the available geometry to
know the safe area of the window. So we get the real screen
metrics and pass these to the QPA plugin (API level 17, so
we can do that now that the minimum version is 21.)

3. Note that getting the insets and calculating the useable
area does not work for non-fullscreen windows, since Android
is quite inconsistent in this respect. So in this case we
just use the window size and origin of 0,0 for the available
geometry.

4. Since we are touching this code anyway, this patch also tries to use
more consistent wording (calling it "available geometry" everywhere
instead of desktop geometry in some places and just geometry in
others, etc.)

[ChangeLog][Android] Qt::MaximizeUsingFullscreenGeometryHint window
flag is now supported, and will make the window fullscreen, but keep
the system UI on-screen, with a translucent background color.

Fixes: QTBUG-74202
Change-Id: I4cc5ef9cc2a3bd22d4d8d2bb767c6ff8a3aa75c0
Reviewed-by: Assam Boudjelthia <assam.boudjelthia@qt.io>
Reviewed-by: Christian Strømme <christian.stromme@qt.io>
2020-03-30 13:03:49 +01:00
Mitch Curtis 3f73995a03 Move undo framework out of Qt Widgets
- Moves QUndo* classes (except QUndoView) from src/widgets/utils to src/gui/utils
- Moves related auto tests from widgets to gui
- Replaces QUndoAction with lambdas that do text prefixing

[ChangeLog][Undo Framework] QUndo* classes (except QUndoView) were moved from Qt
Widgets to Qt GUI.

Done-with: volker.hilsheimer@qt.io
Fixes: QTBUG-40040
Change-Id: I3bd8d4d32c64f8dee548f62159a1df2126da89d8
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
2020-03-30 12:36:29 +02:00
Lars Knoll adc1be3c33 Get rid of QRegExp usage in qfiledialog
and replace with QRegularExpression

Change-Id: Ic692fc0ea24da84dd4b6bb4c8a846c0fcc62c3cb
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
Reviewed-by: Samuel Gaist <samuel.gaist@idiap.ch>
2020-03-30 11:33:11 +01:00
Lars Knoll 3532c0256d Make MatchRegExp an alias to MatchRegularExpression
All matching happens using QRegularExpression now.

Change-Id: I10bfcefbf4d9c79d235242e3e05116cdf7af02d1
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
2020-03-30 11:33:07 +01:00
Lars Knoll 2e0070d42c Remove QRegExp dependencies and mentions
Change-Id: I399f8980f56eda5d60b554aa942bf045ab91e0d6
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
2020-03-30 11:33:02 +01:00
Lars Knoll 3151c510e8 Remove some leftovers of QRegExpValidator
Amends dee55af0a5

Change-Id: I59c02c6c289028abb86cdab1b2f2b3efdcea7821
Reviewed-by: Samuel Gaist <samuel.gaist@idiap.ch>
2020-03-30 11:32:57 +01:00
Martin Storsjö 907652e1ed Extend the configure test for C++17 filesystem
If recent versions of libc++ are built with filesystem support disabled,
the filesystem header still is installed., The std::filesystem::path()
constructor is completely defined inline in that header, making the test
pass on such configurations, despite C++17 filesystem not being
implemented.

Test a call to std::filesystem::copy instead, which requires the actual
library implementation to be available as well (on recent libc++).

Change-Id: Id997ab75f3299d8431b13cad871f2901f4d9f6ed
Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
2020-03-30 13:31:05 +03:00
Volker Hilsheimer b61ea367a5 Fix deprecation warnings in QCocoaCursor
Explicitly use the Qt APIs that return QPixmap and QBitmap by value, and
fix the API taking those to use const references rather than pointers
or const values.

Change-Id: I2bb7ad1edb3b65f806f0475fca383e5b9bdb61f3
Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
2020-03-30 00:11:51 +01:00
Vitaly Fanaskov 5a0d4f3313 QtConcurrent: add fluent interface to configure a task before run
Task-number: QTBUG-82950
Change-Id: I449da938b6b501a7646b3425edde5c880d6ca87e
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Paul Wicking <paul.wicking@qt.io>
Reviewed-by: Mikhail Svetkin <mikhail.svetkin@gmail.com>
2020-03-29 20:44:32 +01:00
Volker Hilsheimer d975ad4ed7 Merge QGuiShortcut and QShortcut again in QtGui
QShortcut has only one widget specific feature, which is whatsThis; that
is just a QString, so the setters and getters can just as well be in
QtGui.

The widgets specific implementation of shortcut matching and of showing
the whatsThis balloon stays in QtWidgets, in the private implementation.
Using virtual functions in the private we can override the empty default
in QtGui, and by adding a virtual factory function in QGuiApplication,
the correct private is instantiated depending on the kind of application
running.

Change-Id: I09ae4a5482f9fb70940c5e2bfe76d3d7fd710afc
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
2020-03-29 19:31:14 +01:00
Volker Hilsheimer bcaff2b06f Remove QGuiAction again and split QAction implementation up instead
Duplicating the number of classes is a high price to pay to be able to
have some QAction functionality behave differently, or be only available
in widgets applications.

Instead, declare the entire API in QtGui in QAction* classes, and
delegate the implementation of QtWidgets specific functionality to
the private. The creation of the private is then delegated to the
Q(Gui)ApplicationPrivate instance through a virtual factory function.

Change some public APIs that are primarily useful for specialized tools
such as Designer to operate on QObject* rather than QWidget*. APIs that
depend on QtWidgets types have been turned into inline template
functions, so that they are instantiated only at the caller side, where
we can expect the respective types to be fully defined. This way, we
only need to forward declare a few classes in the header, and don't
need to generate any additional code for e.g. language bindings.

Change-Id: Id0b27f9187652ec531a2e8b1b9837e82dc81625c
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
2020-03-29 11:18:57 +01:00
Konstantin Ritt e3d0184065 Follow bundled Harfbuzz update
as we raised the minimum requirement for harfbuzz to version 2.6.0:
* use new HB_SCRIPT values instead of tags
* get rid of deprecated (and no-more-used) callbacks
* replace deprecated hb_ot_tags_from_script() usage with a more
  flexible and up-to-date hb_ot_tags_from_script_and_language()

Change-Id: I0eafdd2d2028c353fa3a93f5868efceccd364a70
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
2020-03-28 13:44:19 +03:00
Christian Ehrlicher 8de62d3432 QAbstractItemView::dataChanged(): optimize call to QWidget::update()
When topLeft and bottomRight are different in QAIV::dataChanged(), the
current implementation simply calls QWidget::update() without checking
if the affected cells are visible. This results in a big performance hit
when cells are updated frequently.
Now try to compute the exact update rect by iterating through the
modified indexes.

Fixes: QTBUG-58580
Change-Id: I97de567d494e40ed8cdb1ea1f5b3cf3a2f60455e
Reviewed-by: Samuel Gaist <samuel.gaist@idiap.ch>
2020-03-28 09:03:18 +01:00
Konstantin Ritt b8be5b4002 HB-to-Qt bridge: get rid of stale/dubious safety checks
these aren't needed for quite a long time already

Change-Id: I3a5ce3199cee467d7dfba3c68256d214fee4d83c
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
2020-03-28 04:17:28 +03:00