| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
| |
Task-number: QTBUG-74391
Change-Id: I8cd8371e820efbe90d486aef4a68e17c92fd93ea
Reviewed-by: Paul Wicking <paul.wicking@qt.io>
|
|
|
|
|
|
|
|
| |
While Gimp's Registry no longer exists, the SpriteSheet plugin is still there.
Fixes: QTBUG-76844
Change-Id: I3f96ef654f6b64cb2919fe011467f2fa85433eaf
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
|
|\ |
|
|/|
| |
| |
| | |
Change-Id: I47735445e4d31ba47d596d964b3f050e263bd1d9
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Due to the way the area allocator is used, where one area spans
all the textures, it is possible to have the situation where part
of a glyph is allocated to a texture N and the rest to N+1, i.e.
the split happens inside the glyph. In a case like this, the
cache would grow the texture in question to accommodate the glyph,
which would in turn cause the height of the texture to be too
large.
For most systems, this would not happen, since a single texture would
be enough for a font, but when it does the texture creation may fail.
The fix is to reduce the height of the area allocated to each texture
by one row height, so that if the glyph does happen to hit the border
between two and the texture needs to extend, it will still not exceed
the actual maximum height.
[ChangeLog][Text] Fixed a bug when displaying many characters from the
same font on a system with a low maximum texture size.
Task-number: QTBUG-76528
Change-Id: I1e559aaf90552afe8531872264186daa5ee61939
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
The allocated area for each texture has to have its origin at (0,0)
otherwise the actual required height of the cache is too low. When
using the texture upload workaround, this would crash, and when not
it would lead to missing glyphs.
Note that this is because the texture may contain a bit of empty
space at the top, since the area allocator may allocate this area
to a glyph which actually belongs to the previous texture (we use
a single area allocator for the entire cache and some glyphs may
overlap the limit between two textures).
[ChangeLog][Text] Fixed missing glyphs and in some cases crashes
when large character sets were being used on system with a low
maximum texture size.
Task-number: QTBUG-76528
Change-Id: I710ebbdd2feba4567505393fb12f89b5dd8501f1
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Consider a non-QML project that puts .js files in a Qt resource file.
The qtquickcompiler feature will pull those files out of the resource
and generate QML-specific code, which will lead to build errors.
Yield an error message on qmake-time.
Fixes: QTBUG-73669
Change-Id: I6bec22f758d884ce4e1c50fca48f452c5f86ce74
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Otherwise the path might get interpreted as some other part of the URL,
for example the host name.
Fixes: QTBUG-76441
Change-Id: I3edde96153403962db4576e5af794419c21b49a8
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
|
| |
| |
| |
| |
| | |
Change-Id: I177ea278b5039688923fc23425a1377522412d08
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Avoid a crash when setData or create are
called after a user mistakenly used the internal constructor of
QQmlComponent which does not take an engine.
Fixes: QTBUG-55407
Change-Id: Ia4295d1b044723efce1a95607349561d4f1640da
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
|
|\ \ |
|
|/| |
| |/
| |
| |
| |
| |
| | |
Conflicts:
.qmake.conf
Change-Id: Icd05d016de5b4cf9af5234cb47b5c3fd0f6a053e
|
| |
| |
| |
| |
| |
| |
| |
| | |
The allocation might run the garbage collector and that might delete the
object before we ref it.
Change-Id: I13cb74ab011a4eabc8df136023958791a2183df0
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Setting the KeyNavigation.up property of an item to another item will
implicitly set the reverse (KeyNavigation.down) property on that other
item pointing back to the item. Once the item is destroyed, you will
have an invalid pointer stored in the other item pointing to the
destroyed item.
Using QPointer<> instead of raw pointers fixes that issue, because
they will become null on QObject's destruction.
Added QQuickItem test that verifies the issue is solved.
Fixes: QTBUG-75399
Change-Id: Ibb3e976c4eb9fcd81604bcc2eb757257d3653930
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Commit 7cb6dce1f3e140ea68d6b05281950f212fc99d38 introduced an
optimization to remove bindings that after their initial evaluation had
no dependencies or errors (such as when accessing properties not set
yet). However when accessing a context property in a silent way -- using
typeof -- then no error state is set and the binding is removed. Any
later change of the context property results therefore in no binding
re-evaluation. This patch skips the optimization on bindings that are
associated with a context that has unresolved names. This fixes the
concrete bug at the expense of disabling further optimizations in the
context if other bindings access unresolved context properties. However
since context properties are discouraged anyway, this may be an
acceptable price to pay.
Change-Id: I95e120a4f71e8ebe0ec1fc44e8703c75f920dd28
Fixes: QTBUG-76796
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
|
| |
| |
| |
| | |
Change-Id: Ib85af4ea4a4c139fdc0e909ab22fcc5951da0c46
|
| |
| |
| |
| |
| |
| |
| | |
Change-Id: I2745d3df4fca77483313c70e5433339c444c7fd4
Fixes: QTBUG-76627
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
|
| |
| |
| |
| | |
Change-Id: Id2f9131cfb073f9f9e64f4330ed60214f39c36da
|
| |
| |
| |
| |
| |
| |
| | |
Binary compatibility files added.
Change-Id: I3c8b0055db550c3e72713c2de6f13ee541271e5e
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
|
|\ \ |
|
|/| |
| |/
| |
| | |
Change-Id: I59343fe228ca6b823b61577e5a0907e7381899c2
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
The refill() method would bail out early on an empty model. Make sure
that it at least updates the header and footer in such situations.
Fixes: QTBUG-31677
Change-Id: I1f3a1848ff263a8f7f9ccfc3b20f16b61348f57b
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
The cause was that fast flicking kicked items in and out of viewport,
while in transition, they would abruptly having tracking data structure
, i.e. releasePendingTransition of QQuickItemViewPrivate, got iterator
invalidated. This also helps to resolve QTBUG-44308.
Fixes: QTBUG-76433
Fixes: QTBUG-44308
Change-Id: If14533d3f6b1acd7b6ca0c5c723347c0cb3f54dc
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Just like resolving the lookup initially, we need to set the base also
when hitting the cached lookup code path. The base is then used as this
object.
Fixes: QTBUG-76656
Change-Id: I6f6be05bc9875ddccc6e112e91176a0fa24a8fa1
Reviewed-by: Michael Brasser <michael.brasser@live.com>
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
At the point the plugin is actually unloaded the hook turns into a
dangling pointer.
Fixes: QTBUG-71387
Change-Id: Ib8ccee3f9a86d4700fbea7e87c666cd8f30f71e4
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
|
| |
| |
| |
| |
| |
| | |
Fixes: QTBUG-76603
Change-Id: I2977117dcaf45345c14599e0b38cb4a242ee449b
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
|
| |
| |
| |
| |
| |
| | |
Task-number: QTBUG-76652
Change-Id: I46cd17a925f61585c65199f88342ea872a4a371a
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
|
| |
| |
| |
| |
| |
| |
| | |
Missing \endcode commands caused malformed output and linking issues.
Change-Id: Idaf3cf998c2c0f4352a738b21b66abe5e89c197d
Reviewed-by: Paul Wicking <paul.wicking@qt.io>
|
|\ \ |
|
|/| |
| | |
| | |
| | | |
Change-Id: I55353d8cee5420e0c9f59c3b3a387b461f1abf99
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Scan for files on the main thread instead of using
a dedicated thread. Use a zero-timer to preserve the
async behavior where initiating a scan is fast.
This should work well for use cases like a handful
of files stored as resources.
Task-number: QTBUG-74537
Change-Id: I7bf1b6c7f9dfba69fe4fc2ea1b2dd2f256d66c2c
Reviewed-by: Lorn Potter <lorn.potter@gmail.com>
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
|
| | |
| | |
| | |
| | |
| | |
| | | |
Change-Id: I51689758616808c0fad5d3f5c79e12dd59c0bd85
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Disable isThisThread asserts: there is only going to
be one thread.
Add a no-thread implementation for internalCalMethodInMain(),
which calls the message immediately, similar to the
current internalCallMethodInThread() implementation.
Change-Id: I554cacf572b5f47c9921d247773cc3d9127b8203
Reviewed-by: Lorn Potter <lorn.potter@gmail.com>
|
|\ \ \ |
|
|/| | |
| | |/
| |/|
| | |
| | |
| | |
| | |
| | |
| | | |
Conflicts:
.qmake.conf
src/imports/sharedimage/qsharedimageloader.cpp
src/quick/items/qquickitemviewfxitem_p_p.h
Change-Id: I12ce7c32788f4a394188a934e689b4ebac78138b
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
The root cause was that the QAbstractAnimationJob::finished() might delegate its
destruction to change.listener->animationFinished(this), and the original author
was aware of that and provided a RETURN_IF_DELETE macro to return early if itself
got deleted. In the bug's case, change.listener->animationFinished(this)
dispatched to QQuickItemViewPrivate::animationFinished() which called
QQuickItemViewPrivate::release() and deleted the QAbstractAnimationJob object
itself in the end.
However, any objects derived from QAbstractAnimationJob, or holding a pointer
to a QAbstractAnimationJob, may potentially fall into the code path calling
QAbstractAnimationJob::finished(). Any QAnimationJobChangeListener that directly
or indirectly deletes QAbstractAnimationJob should be very suspicious to this
kind of "heap-use-after-free" bug. Should ensure that the QAbstractAnimationJob
won't be referenced after deletion.
In the bug's case, within the code path triggered by ListView displacement
animation, the other affected classes by QAbstractAnimationJob are:
QQuickItemViewFxItem, QQuickItemViewTransitionableItem, QQuickTransitionManager.
To fix this, a new SelfDeletable class is factored out to simplify the self-deletion
test logic. Any affected classes are made to have a public member m_selfDeletable.
Any code paths that finally reach QAbstractAnimationJob::finished() are
wrapped with related util macro.
Change-Id: Idd33fc3f2d529fd7d8bb088c329101b1e70dd6c0
Task-number: QTBUG-44308
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
`Q_INIT_RESOURCE` cannot be used from within a Qt namespace. so we
move the `Q_INIT_RESOURCE` call to static function defined on the global
namespace
Change-Id: I9eed7699e969369f861b95cdf3f7376ade73c1b3
Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
We need to repaint everything on devicePixelRatio change,
like we do on size change.
Task-number: QTBUG-66810
Change-Id: I6b2c2ae92335a0aca731a4b0e7621cf7d08881e3
Reviewed-by: Andy Nichols <andy.nichols@qt.io>
|
| |\ \ |
|
| |/| |
| | | |
| | | |
| | | | |
Change-Id: I98c22efa5292fa34d8055928e6b2d85fec8023b3
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Change-Id: I6980ffaed4da941fbcd56af36bba7e5abf3dd878
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
|
| | | |
| | | |
| | | |
| | | | |
Change-Id: I0810ede89313a6ee3ee31a352fda620835dfb055
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
If the size of the texture changes, but subrect stays the same, the
geometry changed and is now dirty.
Change-Id: I5a4de88fd3f788a686fb2186185da2a0a3faad82
Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
|
| | | |
| | | |
| | | |
| | | |
| | | | |
Change-Id: Ia118e5885886605f7364d15d30ac67fdb01a5562
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
|
|\ \ \ \ |
|
|/| | | |
| |/ / /
| | | |
| | | |
| | | |
| | | |
| | | | |
Conflicts:
src/qml/jsruntime/qv4memberdata.cpp
Change-Id: I4e9ffc89d65279a42516f5547e93fb47fb571834
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Task-number: QTBUG-73964
Change-Id: Ic789839de12e046cc1d8fced75ffa0c93960c165
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
We don't use the accumulator in that method. It could contain any random
value.
Fixes: QTBUG-75642
Change-Id: I41f958c1174cce76d0d77e14d5617d441aaf1e11
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
QVariants are commonly passed around between threads and QVariants can
wrap QJSValues. Therefore we need to allow this. The persistent value is
freed immediately if we're still in the same thread. Otherwise a
message is passed to the QJSEngine that owns it. If there is no
QJSEngine we assume that we can free the value immediately. As such a
thing can only happen via private API we can make sure this assumption
holds.
Fixes: QTBUG-75939
Change-Id: I14c09fd5d6ef7ba689f66656f2bcbb5c88bacf89
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
When iterating over the cache in QQmlDelegateModel::_q_itemsInserted(),
_q_itemsRemoved, _q_itemsMoved, _q_modelReset() and _q_itemsMoved,
updating some of the item's modelIndex can trigger layout change in
the view, which might in turn remove a QQmlDelegateModelItem from
the cache, causing us to dereference an already deleted pointer.
To prevent a crash, we always check whether the item is still valid in
the original cache and skip it if it has been removed in the meanwhile.
This fix is similar to 5df747fc but reduces runtime impact by performing
the lookup only when d->m_cache has detached from the loop's copy.
Fixes: QTBUG-76254
Change-Id: I9d7e0118e64e9ec7d8efae04e6ae319804f31981
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
|