| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Actually it just reverts 4db31cbd4e29cf5387f4332537f8ea9e0e9f62ae.
When calculating a position for a decoration, we should just apply the
decoration's offset to the line's baseline (line.y + line.ascent).
The regression was introduced by 54b5287adf4f5b004fcf47840c7f2e1e561a90c1
in Qt 5.6, when we switched from prepending leading to the baseline
of text and started appending it instead.
Pick-to: 5.15 6.2 6.4 6.5
Fixes: QTBUG-96700
Fixes: QTBUG-97594
Change-Id: I7f816b71859ffcb6b1c641f0c8b8e1d810bfc525
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This is a semantic patch using ClangTidyTransformator as in
qtbase/df9d882d41b741fef7c5beeddb0abe9d904443d8:
auto QtContainerClass = anyOf(
expr(hasType(cxxRecordDecl(isSameOrDerivedFrom(hasAnyName(classes))))).bind(o),
expr(hasType(namedDecl(hasAnyName(<classes>)))).bind(o));
makeRule(cxxMemberCallExpr(on(QtContainerClass),
callee(cxxMethodDecl(hasAnyName({"count", "length"),
parameterCountIs(0))))),
changeTo(cat(access(o, cat("size"), "()"))),
cat("use 'size()' instead of 'count()/length()'"))
a.k.a qt-port-to-std-compatible-api with config Scope: 'Container',
with the extended set of container classes recognized.
Change-Id: Idb1f75dfe2323bd1d9e8b4d58d54f1b4b80c7ed7
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
| |
Replace the current license disclaimer in files by
a SPDX-License-Identifier.
Files that have to be modified by hand are modified.
License files are organized under LICENSES directory.
Pick-to: 6.4
Task-number: QTBUG-67283
Change-Id: I63563bbeb6f60f89d2c99660400dca7fab78a294
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
If some parent item (such as Flickable, or QQuickRootItem) is acting
as a viewport, QQuickTextNodeEngine::addTextBlock() will skip any
block that is completely outside the viewport.
The result is that Flickable { Text { } } works OK for a viewer of
large rich text documents (such as HTML or Markdown).
Task-number: QTBUG-60491
Task-number: QTBUG-90734
Change-Id: I6a7f20d2ac0e8d0f4da1a2ebf43cbbeb1e05cea0
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
|
|
|
|
|
|
|
|
| |
The right and bottom edges were off by the border width.
Fixes: QTBUG-74335
Change-Id: I9d28c26f7c523031cfaee929c7d541978fa106a2
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The rule is just a line drawn with the same thickness as an underline:
it gets thicker as DPR increases.
A horizontal rule can be created via <hr/> in RichText.
In markdown it's called a "thematic break," and a line with
- - -
is one way to create it: https://spec.commonmark.org/0.30/#thematic-breaks
<hr width=70/> or <hr width=70%> set the width in pixels, and percent
of the text width, respectively; the rule will be centered within the
line's bounding box in that case, as in QTextEdit etc.
The color can come from QTextFormat::BackgroundBrush if it's set
on the QTextBlockFormat, but otherwise falls back to the text color.
This can be done with CSS styling: <hr style="background-color:green;"/>
[ChangeLog][QtQuick][Text] Horizontal rules (thematic breaks in markdown)
are now rendered as simple horizontal lines, either in the same color
as the text, or as specified via CSS background-color.
Fixes: QTBUG-74342
Task-number: QTBUG-81306
Change-Id: I64f9daf28994225d1a8383d8e2e01e611a0a0237
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
|
|
|
|
|
|
|
|
|
|
|
| |
While the static analyzer doesn't see in 727c503c234d162fb8d62b1aadf328de
that node must never be nullptr when i == 0, the statement doesn't have
to be executed at all if the previous block wasn't run as well to assign
node.
Pick-to: 6.1
Change-Id: I2edd901674e7603a317ebdf98dd4800b768a0a5b
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
When a QSyntaxHighlighter calls setUnderlineColor(), TextEdit will use
that color for underline, overline and strikeout rendering. Likewise
when Text has textFormat: Text.RichText and the HTML contains CSS styling
specifying text-decoration-color, it will be applied (depending on the
css support in QTextHtmlParser to call setUnderlineColor()).
Added a manual test.
[ChangeLog][QtQuick][TextEdit] When a QSyntaxHighlighter calls
QTextFormat::setUnderlineColor(), or CSS style contains
text-decoration-color, Text and TextEdit will now use that color for
underline, overline and strikeout rendering.
Task-number: QTBUG-87260
Task-number: QTBUG-74572
Task-number: QTBUG-39617
Change-Id: Ia2b564d5366ff67bb5df4f6c9e68ff5773ca5d6a
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
|
|
|
|
|
|
|
|
|
|
| |
This reverts commit 02c6e7bc3aca42a188b772aa9794b919e60017e7. It broke text
selection, the currentClipNode pointer must not be reset to nullptr even if
ownership is transferred to a node.
Pick-to: 6.1 6.0 5.15
Change-Id: Ia66f7ed4be17916f3725bd3cb2cbd0e7c9d6327a
Reviewed-by: Eirik Aavitsland <eirik.aavitsland@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The clang static analyzer warns in 3df1fff15a10a64372ed4f92ba05271f about
a potential memory leak. While that particular claim is a false positive
(the loop is always entered if sortedIndex is not empty), the re-use of
the currentClipNode variable makes it hard to follow the object ownership,
and there might still be a potential memory leak.
Use std::unique_ptr to force explicit transfer of ownership, and get
implicit destruction of objects not owned at the end of the scope.
Pick-to: 6.1 6.0 5.15
Change-Id: If826e1d81b92f1da60aae2262b628dcaaa2e592a
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
|
|
|
|
|
|
|
| |
Fixup the signature and improve qHashMulti.
Change-Id: I701a0f43ff0533269964334767dc220b8fd48188
Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
|
|
|
|
|
|
|
|
|
|
| |
Try to align with the HTML standard as much as possible.
AlignMiddle is between AlignTop and AlignBottom.
Fixes: QTBUG-84981
Pick-to: 5.15
Change-Id: Ie99aef0d09a6ece751883492748630526c4a1195
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
|
|
|
|
|
|
|
|
| |
And workaround hash issue for now by using qHashMulti
Also, fix test build failure
Change-Id: Ia6b696b2531149206c73e7a5a958d7fba74a0f19
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
|
|
|
|
|
|
|
|
|
|
| |
It is not necessary to render selection color which is transparent.
Pick-to: 5.15
Fixes: QTBUG-83819
Change-Id: I45c086652e194192619aad025121e6064ab37a58
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
|
|
|
|
|
|
|
|
| |
Else on Windows there's a warning:
conversion from 'size_t' to 'uint', possible loss of data
Change-Id: Ifed4899409a13fed31c206ae1e0f195280ee2925
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Main goals of these changes:
1) Add an ability to work with disabled and inactive palettes from QML
2) Eliminate massive code duplication in qtquickcontrols2 module
3) Provide easily extensible architecture for this piece of
functionality
Architectural part.
Palette
It was decided to not change existing QPalette, but add thin wrappers
around it to provide all required functionality. These wrappers are
highly coupled with QPalette class because of using some enum values
from it.
There are two new classes QQuickPalette and QQuickColorGroup.
QQuickPalette class inherits QQuickColorGroup class and represents
Active/All color group. QQuickPalette also provides an access to three
color groups: Active, Inactive, and Disabled.
In order to access colors the special class QQuickPaletteColorProvider
is used. This is a wrapper around QPalette that provides some
convenience functions.
Interface
The private property "palette" should be exposed.
Implementation
All private parts of classes that implement
QQuickAbstractPaletteProvider have to inherit
QQuickPaletteProviderPrivateBase class. This template class implement
all functionality: create palette, resolve dependencies, connect objects
etc. This is important to mention that related data is lazily
allocatable on demand only. Hence, there is no memory overhead for
regular items.
Change-Id: I911424b730451b1ad47f68fd8007953b66eddb28
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The glyphs between two text blocks that have different text format
will be rendered twice, and in this case the rich text will be display
incorrectly.(e.g., the first text block is a superscript and the
second is a normal text)
Fixes this by reduce the redundant rendering of glyphs between two
differently formatted text blocks
Fixes: QTBUG-80759
Change-Id: I51ca3f7df1ad368d28df9beb6124a87bf50f0e01
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
|
|
|
|
|
|
|
|
|
| |
Use it in fully scoped form, and treat it as int in qDebug.
Unfortunately since QTextBlockFormat is not a QObject, we can't easily
use Q_ENUM to have moc translate the enum values to strings.
Change-Id: I2eb605e8f2756ce62dcbaffa6bfed237ada4021d
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
|
|
|
|
|
|
|
|
|
| |
mostly add const &, a few std::move and in particular case, remove const
so the std::move being done over the variable actually has effect
Change-Id: Id611cd31bc012f219d7a17d4626b1c2a5fbddd66
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
|
|\
| |
| |
| |
| |
| |
| |
| |
| | |
Conflicts:
src/qml/jit/qv4baselinejit.cpp
src/qml/jsruntime/qv4vme_moth.cpp
tests/auto/qml/qqmlecmascript/tst_qqmlecmascript.cpp
Change-Id: Iec7cd27ddad0281bd3b7833fb6b252f66a6ae5d6
|
| |\
| | |
| | |
| | | |
Change-Id: I6472cd72b27c69257efe54376e428274ebf68050
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
If the alpha value for the background color of a text element is 0,
we don't need to create a rectangle node to represent it, as the
rectangle will be invisible anyway.
[ChangeLog][QtQuick][QQuickTextNodeEngine] don't create a new
rectangle node as the background of text, when the alpha of it is
0
Fixes: QTBUG-76137
Change-Id: I40c624ee8f61740fd07e7d3751a78b6224882913
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
|
|\ \ \
| |/ /
| | |
| | | |
Change-Id: I9ce3eee3d6f88783b9e20110a2814bee805291a4
|
| |\ \
| | |/
| | |
| | | |
Change-Id: I042df89ddd381c7fbb944b7ff49d5b45b764fd47
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
An image inside at the end of a text block which did not start at text
position 0 would resolve to an invalid QTextLine, since we passed
the document position to lineForTextPosition(), which expects the
relative block position. If the image was aligned to top or
bottom, so that the extracted QTextLine was actually accessed,
this would cause a crash.
[ChangeLog][QtQuick][Text] Fixed a bug where aligning an image
to "top" or "bottom" could cause a crash under certain circumstances.
Task-number: QTBUG-77217
Change-Id: Iaa239ba482f2a765703656e4116cbebb8435a66e
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
|
|/ /
| |
| |
| |
| |
| |
| | |
"Markers" (only checkboxes so far) are a new feature too.
Change-Id: I5a0ea337ec6cf8bdadf3b4729caaa579e8b625b5
Reviewed-by: Gatis Paeglis <gatis.paeglis@qt.io>
|
|\ \
| |/
| |
| |
| |
| |
| |
| | |
Conflicts:
src/qml/compiler/qv4codegen.cpp
src/qml/animations/qsequentialanimationgroupjob.cpp
Change-Id: I8b76e509fd7c8599d4cef25181d790ee28edab54
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
QQuickTextNodeEngine::addTextBlock() was noticing the background color of
text fragments, including those within table cells (and adding to the
colorChanges vector for rendering), but not rendering a rectangle for the
background of the entire table cell. So while the color was correct, it
only took up as much space as the text itself.
Also, QTextDocumentLayout needs to be told how much width is available
so that QTextDocumentLayoutPrivate::layoutTable() will allocate cell width
appropriately in case width is given as a percentage, e.g. <td width="20%">.
This is done by calling QTextDocument::setPageSize() with correct width in
pixels rather than zero.
Fixes: QTBUG-72457
Change-Id: I5c8f861829f76d1cf4044fccd1142c3817bb33bc
Reviewed-by: Andy Shaw <andy.shaw@qt.io>
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Replace the deprecated functions with it successors:
- QFontMetrics::width() -> horizontalAdvance()
- QLayout::setMargin() -> setContentsMargins()
Change-Id: I2a2557cdb2eaec40e2c9955a0082372c582ec6b8
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
Reviewed-by: Jan Arve Sæther <jan-arve.saether@qt.io>
|
|\ \
| |/
| |
| | |
Change-Id: I57e4b762dcccf2f7f6e4b659f6fc8c40465d3322
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
The vertical alignment was not calculated correctly in all cases,
this should fix it by retrieving the height and baseline for the
current text line and doing the calculation correctly in all cases.
Change-Id: I5bb650ede46dc03d51bf0f64b77dc4ca77d30fd2
Fixes: QTBUG-59310
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
Reviewed-by: Igor Bugaev <freedbrt@gmail.com>
|
|/
|
|
|
|
|
|
|
|
|
|
| |
In QTextDocumentLayout inline objects are skipped if they have a frame
and the frame-style isn't inflow. That inverted should be to only render
it if it doesn't have a frame or is the frame-style is inflow.
Fixes: QTBUG-32525
Fixes: QTBUG-70748
Change-Id: I259281ea45c9ba7295c6b3e116a941314ada22e5
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
From now on we prefer nullptr instead of 0 to clarify cases where
we are assigning or testing a pointer rather than a numeric zero.
Also, replaced cases where 0 was passed as Qt::KeyboardModifiers
with Qt::NoModifier (clang-tidy replaced them with nullptr, which
waas wrong, so it was just as well to make the tests more readable
rather than to revert those lines).
Change-Id: I4735d35e4d9f42db5216862ce091429eadc6e65d
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
|
|
|
|
|
|
|
|
| |
Instead use QT_CONFIG(foo). This change actually detected a few
mis-spelled macros and invalid usages.
Change-Id: I06ac327098dd1a458e6bc379d637b8e2dac52f85
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
If the block is right-to-left and starts with a text object, it
should be aligned to the right edge of the QTextLine instead
of the left one.
[ChangeLog][QtQuick][Text] Fixed placement of flowing text objects
in the start of a right-to-left block.
Task-number: QTBUG-43133
Change-Id: Id790e88f3464280f124c38b4260386b84cac8826
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
|
|
|
|
|
|
|
| |
Move decorations to QQuickTextNodeEngine, as the only place that uses them.
Change-Id: I7d0b2bf8979bf5d7e447beac02c3419da4edb759
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@qt.io>
|
|\
| |
| |
| |
| |
| |
| | |
Conflicts:
src/plugins/qmltooling/qmldbg_profiler/qqmlprofilerservice.cpp
Change-Id: I26d6435a29cac3840bb567ade5149c2562a94bf9
|
| |\
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Part of 0e053528 was reverted in the merge, about lastTimestamp. It
will be applied later in separate commit.
qmltest::shadersource-dynamic-sourceobject::test_endresult() was
blacklisted on linux.
Conflicts:
.qmake.conf
tests/auto/qml/debugger/qqmlprofilerservice/tst_qqmlprofilerservice.cpp
tests/auto/qmltest/BLACKLIST
tests/auto/qmltest/qmltest.pro
Task-number: QTBUG-53590
Task-number: QTBUG-53971
Change-Id: I48af90b49a3c7b29de16f4178a04807f8bc05130
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
As Coverity (CID 22302) points out, qobject_cast<> can return NULL; if
we don't get a document layout, then we have no frame decorations to
add to it.
Change-Id: I2cd428456b3a3b24a28a5dd18ce948a8e95d21cb
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Use the transformed QRectF of otherNode instead of the untransformed
boundingRect of the QGlyphRun.
Change-Id: Ie2a97cccee45e2b924c2f599d8d3855aa85a4713
Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com>
|
|/ /
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
QGlyphRun has the behavior that it will calculate it's boundingRect
based on the united rects of its contained glyphs unless a boundingRect
has been previously set. In the case of QQuickTextNodeEngine the
QGlphyRuns are coming from lines in a QTextDocument which would have
already had setBoundingRect called. For the QGlyphRun that results from
the merging of text nodes to have the correct boundingRect we would need
set the united boundingRects of the nodes merged.
This could go overlooked with the default renderer because it doesn't
need to know the boundingRect of the QGlyphRun to render accurately.
However this detail is important for partial update support with Qt
Quick 2D Renderer.
Change-Id: I4a5bd20afcfadf6cb0ad0659f9a797a980b47a81
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@theqtcompany.com>
|
|\ \
| |/
| |
| |
| |
| |
| |
| |
| | |
Conflicts:
src/quick/items/qquickitem.cpp
tests/auto/quick/qquickgridview/tst_qquickgridview.cpp
tests/auto/quick/qquicklistview/tst_qquicklistview.cpp
Change-Id: I3cf47faa2fe567d62fffd985aeecbefe5811cc42
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This was found while researching QTBUG-49596. The selection
ranges in the QGlyphRun are inclusive, so the length needs
to be end - start + 1. For a node of 1 glyph with either
preceding or succeeding node, we would detect an overlap
always, since the initial rangeLength would be 0. This
is reproduced by the textinput_selected_fallback_font.qml
test, but the bug was hidden by a different bug in
QTextLayout.
Change-Id: I65d70b1223eebeb5cfbb277fade7f4753465364f
Reviewed-by: Lars Knoll <lars.knoll@theqtcompany.com>
Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
|
|/
|
|
|
|
|
|
|
|
|
| |
From Qt 5.7 -> LGPL v2.1 isn't an option anymore, see
http://blog.qt.io/blog/2016/01/13/new-agreement-with-the-kde-free-qt-foundation/
Updated license headers to use new LGPL header instead of LGPL21 one
(in those files which will be under LGPL v3)
Change-Id: Ic36f1a0a1436fe6ac6eeca8c2375a79857e9cb12
Reviewed-by: Lars Knoll <lars.knoll@theqtcompany.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
QQuickTextDocumentWithImageResources was autotest-exported in b63185.
The problem is that the QQuickLabel in qtquickcontrols2 inherits
QQuickText, and therefore includes the private header. An autotest-
exported class with Q_OBJECT macro leads to a linking error:
qquickcontrol.obj : error LNK2019: unresolved external symbol "public: static struct TestNamespace::QMetaObject const TestNamespace::QQuickTextDocumentWithImageResources::staticMetaObject" (?staticMetaObject@QQuickTextDocumentWithImageResources@TestNamespace@@2UQMetaObject@2@B) referenced in function "public: static class TestNamespace::QString __cdecl TestNamespace::QQuickTextDocumentWithImageResources::tr(char const *,char const *,int)" (?tr@QQuickTextDocumentWithImageResources@TestNamespace@@SA?AVQString@2@PBD0H@Z)
qquicklabel.obj : error LNK2001: unresolved external symbol "public: static struct TestNamespace::QMetaObject const TestNamespace::QQuickTextDocumentWithImageResources::staticMetaObject" (?staticMetaObject@QQuickTextDocumentWithImageResources@TestNamespace@@2UQMetaObject@2@B)
..\..\lib\Qt5LabsTemplatesTestInfix.dll : fatal error LNK1120: 1 unresolved externals
Change-Id: I7e8731973c4ad67fca40f87bf009dc55336c3d6f
Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
|
|\
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Conflicts:
src/qml/debugger/qv4debugservice.cpp
src/qml/jsruntime/qv4value_inl_p.h
src/qml/jsruntime/qv4value_p.h
src/qml/memory/qv4mm.cpp
src/qml/memory/qv4mm_p.h
src/qml/qml/qqmlnotifier_p.h
src/qml/qml/qqmlproperty.cpp
src/quick/items/qquickflickable.cpp
src/quick/items/qquicktextedit.cpp
tests/auto/quick/qquickwindow/BLACKLIST
The extra changes in qqmlbinding.cpp are ported from changes to
qqmlproperty.cpp that occurred in parallel with writeBinding() being
moved to qqmlbinding.cpp.
Change-Id: I16d1920abf448c29a01822256f52153651a56356
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
The fix for QTBUG-46829 revealed a bug in the code to handle
selecting part of ligatures. The ranges were assumed to be
[start, end], while they are in fact [start, end>. This would
cause the engine to assume the previous node overlapped completely
with the selected node and that the node had thus already been
added to the graph.
Due to the bug in QTBUG-46829, this accidentally worked before,
but when that bug was fixed, this bug appeared.
Change-Id: I517d260de9f58db4504dd4320b7113fbbe305a81
Reviewed-by: Gunnar Sletta <gunnar@sletta.org>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Due to the way itemization is currently done in Qt,
Cyrillic text (and other writing systems) separated by
spaces will become separate items because the spaces
are itemized as Script_Common. In the Scenegraph's text
node engine, we should merge these items into a single node
as long as the same font is used for all the text. But
a bug in the engine caused this to fail when the text
was selected. The symptom of this was that in some rare
cases one of the items would vanish if it were in the
middle of a selection.
In order to support the bearing of selected text leaning outside
the selection rect, I previously added a hack which would add
all selected text as unselected text as well in
b0783c21fb54b939f07ddf5658cc51113b8014e6. This was an awkward
way of doing it and caused said regression. A less intrusive way
is just to add the text to the scene graph twice, as this does not
interfere with the logic needed to support selecting part of
ligatures nor the engine's ability to merge nodes correctly.
[ChangeLog][Text] Fixed regression with selections spanning
different scripts.
Task-number: QTBUG-46829
Change-Id: I0faed76fb2cd1ac0b2e5cc54b81008b5e2550733
Reviewed-by: Gunnar Sletta <gunnar@sletta.org>
|
|/
|
|
|
|
|
|
|
| |
QTextLayout::additionalFormats setters and getters using QList<FormatRange> have
been deprecated; port to the QVector versions.
Change-Id: I6702430c09b30aa033fe4e34f39a9aa3350e471b
Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Change 11a595e30615943cd6c63f08cc44cde7861112eb introduced a
regression where selected text might disappear randomly because
we changed the order the nodes were added to the list. The
order is significant in cases where there is overlap, such as
for painting selections.
Instead of iterating over the hash and thus getting the regular
nodes in random order, we make the first node with any given
key the primary node, add this to the list immediately, and then
just do a look up in the hash for the nodes that should be
merged with it.
Change-Id: Id2208ab672294aa3dd2bc9741e6c6697c2c66746
Task-number: QTBUG-45133
Reviewed-by: aavit <eirik.aavitsland@theqtcompany.com>
|