| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Previously there was no way to know what area is occupied by each line
in a QML Text element.
This commit adds new API to expose implicitWidth and isLast
on QQuickTextLine for use in the lineLaidOut signal.
It also adds improved documentation to the lineLaidOut signal and
an example usage of the new API to the text layout example.
An example use case of the new API is eg. to allow embedding
timestamps and indicators within a text paragraph, to enable
creating more efficient layouts.
[ChangeLog][QtQuick][Text] Added new API that exposes implicitWidth,
and isLast on the QQuickTextLine for use in the lineLaidOut signal.
This allows the user to layout other items relative to the lines
of text.
Fixes: QTBUG-78277
Change-Id: Ibc754db17c78efb01468106aba32e30d70d2f4df
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
|
|
|
|
|
|
|
| |
"Markers" (only checkboxes so far) are a new feature too.
Change-Id: I5a0ea337ec6cf8bdadf3b4729caaa579e8b625b5
Reviewed-by: Gatis Paeglis <gatis.paeglis@qt.io>
|
|
|
|
|
|
|
|
|
| |
If we change the content height or content width to the initial one, we
still need to signal the change.
Fixes: QTBUG-71684
Change-Id: Idf6e3f89423eab3d8f5310c164c5acc5108e0d8b
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
When the text element is inside a Qt Quick layout and we set the implicit width,
this can trigger the Layout to resize the width further down in the stack. At
this point, a recursion guard we have in place to protect against binding
loops will cause us to ignore the size update. The end result is that the text
width has changed, but the contents have not been updated to reflect this.
This change detects this case by checking if the width of the text changed
while the recursion guard was in place, and if it was, we call updateSize()
again to make sure everything is up-to-date.
I added a second admittedly ugly recursion guard for this out of paranoia.
I haven't seen any case where this might cause an infinite recursion, but
it seemed better to be on the safe side.
[ChangeLog][Text] Fixed an issue where updating text inside a layout would
not cause it to correctly adapt to its new width.
Task-number: QTBUG-53279
Change-Id: I1e421a7073428fa490a24be36208a2077f5836dd
Reviewed-by: Lars Knoll <lars.knoll@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>
|
|
|
|
|
| |
Change-Id: I176f91a8c51e81a2df3fe91733118261491223ee
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
When you hardcoded the font family of an application font before
the font was actually loaded, the QTextLayout would cache the
glyph indexes from the fallback font, and these would later be
applied to the proper font in the render thread, causing corrupted
text and warnings.
It is easy enough to work around this by binding the font.family
property to the name property of the FontLoader, but to handle the
error case more gracefully, we now check during the polish phase
whether the actual font assignment has changed, and redo the
QTextLayout when we have to.
[ChangeLog][QtQuick][Text] Fixed an issue when the family of
an application font was hardcoded and applied to text before
the font itself was loaded.
Task-number: QTBUG-61984
Change-Id: Ib0e80a78f3b6fe4a3b0188c69516a20d0bf4cb45
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
In order to fix QTBUG-21919, 6ff9ba0 added a QTextLayout::clearFormats()
call to QQuickTextPrivate::updateLayout(). This patch moves that logic
to clearFormats(), called from setText() and setTextFormat() in order to
avoid clearing the formats on every text layout update.
This allows Qt Quick Controls 2 to extend QQuickText with support for
mnenonics by adding a text format range to underline the appropriate
piece of text in the internal QTextLayout.
Task-number: QTBUG-61422
Change-Id: I646d53f0feeeaa3c106db94f187c7accabdc6a61
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This is a step on the way to certain optimization possibilities
for text in Qt Quick. Basically, to allow users the ability to
split text into separate items (so that you can distinguish
dynamic from static, and unshaped from shaped text), we also
need a way to string those items together visually later. The
advance property is required for this.
[ChangeLog][QtQuick][Text] Added "advance" property to Text element.
Task-number: QTBUG-56728
Change-Id: I8e7bf9bac410fa9c5553b48db90956431a2873f6
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This provides a way to determine which font will actually be
used to presenting the text, which can be especially useful when
not using a fixed size font (the font info will then expose the
actual font size used by the Text element.)
[ChangeLog][QtQuick][Text] Added fontInfo property to Text type,
providing a way to query properties of the actual font used
for presenting the text.
Task-number: QTBUG-51133
Change-Id: I5860fb1bd25ac5734713f49c8482428f2d531d22
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
Reviewed-by: Robin Burchell <robin.burchell@crimson.no>
|
|
|
|
|
|
|
|
|
|
|
| |
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:
tests/auto/qml/qml.pro
tools/qmlprofiler/qmlprofilerclient.cpp
Change-Id: Id47f15a5ab38f8ec79f0a26c92805acba62caac4
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
QQuickTextDocumentWithImageResources always tries to load images itself
and not using QTextDocument internal resources. What it should do:
1) Check if QTextDocument already has image resource and use it.
2) If not, try to load resource manually.
Change-Id: Ifc4d919fc4a08b4efae50e06a42f1af7cee67af3
Task-number: QTBUG-32525
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@theqtcompany.com>
|
| |
| |
| |
| |
| |
| |
| |
| | |
Used in Label of QtQuick.Controls 2.0.
Change-Id: I68ce9f5caccc9ef090b4200f3a831eb18d9c692a
Reviewed-by: J-P Nurmi <jpnurmi@theqtcompany.com>
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@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
|
| |
| |
| |
| |
| |
| |
| |
| | |
Only if lineHeight has explicitly been set it will override the block format.
Task-number: QTBUG-45204
Change-Id: I6e0d6dd70460cbf436dda3e5640bb9b1d16d7e5a
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@theqtcompany.com>
|
| |
| |
| |
| |
| |
| | |
Task-number: QTBUG-46529
Change-Id: Ifce670a59c367dc1b211ad2c7e797e3a7808cdb2
Reviewed-by: J-P Nurmi <jpnurmi@theqtcompany.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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>
|
|/
|
|
|
|
|
|
|
| |
[ChangeLog][QtQuick][Text] Added padding, leftPadding, topPadding,
rightPadding and bottomPadding properties.
Task-number: QTBUG-41559
Change-Id: I5aa3a9eaad86de5e49d8e2da2a9f583e9a17222b
Reviewed-by: Alan Alpert <aalpert@blackberry.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
It's only used for external resource loading, which is not the common case.
Note that the case of an unset baseUrl may become a little more pessimised now,
as it has to be looked up from the context which involves a loop to find the
outermost parent context, but again, this is not a common case, so I'd consider
that acceptable.
QQuickTextPrivate now goes from 496 bytes to 488 bytes. ExtraData increases from
72 bytes to 80 on x86_64.
Change-Id: I7e346eeb3b3cefe81912aac2b115e106ec519d1e
Reviewed-by: Gunnar Sletta <gunnar@sletta.org>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
ExtraData.
Given that other data about images is already stored there (e.g.
nbActiveDownloads), it seems curious to not store it all there.
On x86_64, this drops the size of QQuickTextPrivate by 16 bytes (512 -> 496),
and increases the size of ExtraData from 56 bytes to 72 bytes.
Change-Id: Ib0a98199a74f757cf439d4ba276c7704504055b2
Reviewed-by: Gunnar Sletta <gunnar@sletta.org>
|
|
|
|
|
|
|
|
|
| |
Qt copyrights are now in The Qt Company, so we could update the source
code headers accordingly. In the same go we should also fix the links to
point to qt.io.
Change-Id: I61120571787870c0ed17066afb31779b1e6e30e9
Reviewed-by: Iikka Eklund <iikka.eklund@theqtcompany.com>
|
|\
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Conflicts:
.qmake.conf
src/qml/jsruntime/qv4context_p.h
src/qml/jsruntime/qv4debugging.cpp
src/qml/jsruntime/qv4engine.cpp
src/qml/jsruntime/qv4functionobject_p.h
src/qml/jsruntime/qv4qobjectwrapper.cpp
src/quick/scenegraph/shaders/visualization.frag
tests/auto/qml/qjsengine/tst_qjsengine.cpp
Change-Id: I492e8546c278f80a300a2129e9a29d861e144a30
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Text is always aligned to the top of the lineHeight rectangle,
and no offset is added when verticalAlignment is set to AlignVCenter
or AlignBottom. This change adds an offset based on the lineHeight
and font height in those cases.
Task-number: QTBUG-42050
Change-Id: Ibc63c80d4178b0f5c498cc126156df828855fd76
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@theqtcompany.com>
|
|\|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Conflicts:
src/qml/jsruntime/qv4arraydata.cpp
src/qml/jsruntime/qv4context_p.h
src/qml/jsruntime/qv4globalobject.cpp
src/qml/jsruntime/qv4internalclass.cpp
src/quick/items/qquicktext_p.h
src/quick/items/qquicktextedit_p.h
src/quick/items/qquicktextinput_p.h
Change-Id: If07e483e03197cb997ef47a9c647a479cdb09f4c
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
The font caches can only be used from a single thread at a time.
QFontEngineFT for instance, uses a global static thread storage
which is accessed on releasing and creating engines, and this
causes a crash if the font engine is created on one thread and
released on another.
We use the updatePolish() function to make sure the caches are
empty before entering updatePaintNode(), and then we invalidate
the cache again after updatePaintNode() is done.
[ChangeLog][Text] Fixed uncommon crash in text nodes.
Change-Id: I01dbc2ed58aeebd03d77a157c700330334bdb385
Task-number: QTBUG-38800
Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
|
|\|
| |
| |
| |
| |
| |
| |
| |
| | |
Conflicts:
src/quick/items/qquickpainteditem.h
src/quick/items/qquickshadereffectsource.cpp
src/quick/items/qquickshadereffectsource_p.h
Change-Id: If98096443afe85fc4370cef971eace050006a61b
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
- Renamed LICENSE.LGPL to LICENSE.LGPLv21
- Added LICENSE.LGPLv3 & LICENSE.GPLv2
- Removed LICENSE.GPL
Change-Id: I84a565e2e0caa3b76bf291a7d188a57a4b00e1b0
Reviewed-by: Jani Heikkinen <jani.heikkinen@digia.com>
|
|/
|
|
|
| |
Change-Id: I2e64950aef710f943c3bc50bc9bf8a1f7fb58d28
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@digia.com>
|
|
|
|
|
|
|
|
|
| |
QTextDocument::baseUrl was introduced in qtbase commit 1f22c1d. The
ultimate goal is to get rid of QQuickTextDocumentWithImageResources
and eventually make QQuickTextEdit's document interchangeable.
Change-Id: Ibafeecc395b52f7200d8164f809bf76538e5620c
Reviewed-by: Alan Alpert <aalpert@blackberry.com>
|
|
|
|
|
| |
Change-Id: I3750c47640bf21c3567c5fa1c4667e3e2552942e
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
|
|
|
|
|
|
|
|
|
|
|
| |
This is necessary for the QtWebEngine module.
This also adds an empty nokeywords test using the same mechanism
as qtbase/tests/auto/tools/moc/no-keywords.h to find conflicts
at compile time.
Change-Id: I9df541720797dd61f078178c2af68ead18ff8bfe
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
|
|
|
|
|
|
| |
Task-number: QTBUG-30804
Change-Id: I6c6993b152285f4bdf34d6e1aa04f25fa7ca41e0
Reviewed-by: Alan Alpert <aalpert@blackberry.com>
|
|
|
|
|
|
| |
Change-Id: I6c3bd7bebe3d62d1cfd0fa6334544c9db8398c76
Reviewed-by: Akseli Salovaara <akseli.salovaara@digia.com>
Reviewed-by: Sergio Ahumada <sergio.ahumada@digia.com>
|
|
|
|
|
|
|
| |
Change copyrights and license headers from Nokia to Digia
Change-Id: Ie7f5d49ed8235d7a7845ab68f99ad1c220e64d5c
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
|
|
|
|
|
|
|
|
| |
We don't need to relayout in painting thread.
Task-number: QTBUG-26361
Change-Id: Idfad1b90e2772e72411df821d02ea596a094f508
Reviewed-by: Andrew den Exter <andrew.den-exter@nokia.com>
|
|
|
|
|
|
|
|
|
|
| |
For old-style (desktop components) apps using QML 2 on regular density
displays, distance field text will look out of place. We introduce
an option to use the native rasterizer instead if you would rather
have native look and feel than scalable text items.
Change-Id: Idb38e3c89f2deab9ae1963357c6c5fb235ddeab8
Reviewed-by: Jiang Jiang <jiang.jiang@nokia.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Improve checks for geometry changes that don't affect layout, i.e
width increasing when the previous layout didn't wrap or elide.
Set implicit sizes just once during layout rather than setting the
implicit width during and the implicit height after to limit the when
an implicit size change can change geometry.
And if there are multiple layouts of the same text/font combination
re-use cached layout data as much as possible by guarding against
unnecessary property changes on the layout, and not creating a new
layout for calculating the implicit size of truncated text.
Change-Id: Ia05e52e9170e1f5d3364896ab119e00d8a318299
Reviewed-by: Michael Brasser <michael.brasser@nokia.com>
|
|
|
|
|
|
|
|
|
| |
Adjust the mouse position to compensate for any alignment offsets
and test the elided text layout for anchors if none is found in
the normal layout.
Change-Id: Idfda3f7e372d0f2d6c1b7bb5f22d7015d52e8239
Reviewed-by: Yann Bodson <yann.bodson@nokia.com>
|
|
|
|
|
|
|
|
| |
Relic from a prospective change to defer layout of text in more
circumstances.
Change-Id: I75d14e8cb01b86ab36ddbf58da99ba1cde14d801
Reviewed-by: Yann Bodson <yann.bodson@nokia.com>
|
|
|
|
|
|
|
|
|
|
| |
Update the baselineOffset when short cutting layout due to an empty
text property. And allow alterations to the baseline due to images,
font scaling and custom layouts when doing a layout.
Task-number: QTBUG-24303
Change-Id: I5a31a6108cded490fef8b0674e15558ea4e22d6b
Reviewed-by: Michael Brasser <michael.brasser@nokia.com>
|
|\
| |
| |
| | |
Change-Id: Iad2f07b989b25349fd2d4fff010e24dcd5a1688f
|
| |
| |
| |
| |
| |
| | |
Task-number: QTBUG-24521
Change-Id: Idd451d0a8a238a60691386726e34054c0368b658
Reviewed-by: Yann Bodson <yann.bodson@nokia.com>
|
| |
| |
| |
| |
| |
| |
| | |
Move less used members to an extra struct lazily allocated
Change-Id: I87e464af4b9d29303705dd7e766f734309ed7763
Reviewed-by: Andrew den Exter <andrew.den-exter@nokia.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Painting issues in QtQuick1 meant drawing had to be aligned to pixel
boundaries, since this is no longer a problem we should use qreal
everywhere.
Change-Id: I58e88e10270fa603170f1cedf471bfb53bd89b73
Reviewed-by: Yann Bodson <yann.bodson@nokia.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Calculate the font size correctly even when the size is specified
in pixels and update this size when the font changes.
Also make sure that the text layout's font is set before parsing.
Task-number: QTBUG-24458
Change-Id: Ida7723f6e4f4b9fd3a6878076f4beaf5bda8f7f7
Reviewed-by: Andrew den Exter <andrew.den-exter@nokia.com>
|
|/
|
|
|
|
|
|
|
|
|
|
|
| |
Symbols beginning with QDeclarative are already exported
by the quick1 module.
Users can apply the bin/rename-qtdeclarative-symbols.sh
script to modify client code using the previous names of the
renamed symbols.
Task-number: QTBUG-23737
Change-Id: Ifaa482663767634931e8711a8e9bf6e404859e66
Reviewed-by: Martin Jones <martin.jones@nokia.com>
|
|
|
|
|
|
|
|
| |
Remove some unnecessary members, store colors as QRgb values instead
of QColor, and reorder members to minimise alignment padding.
Change-Id: Id3958429008c97a5714734a529250fe881e2161b
Reviewed-by: Yann Bodson <yann.bodson@nokia.com>
|
|
|
|
|
|
|
|
| |
These were used when we were porting from QtQuick 1 to QtQuick 2 but
are no longer necessary.
Change-Id: I0eeb7e13b4affdd6ab6c6dddea760afcdf38ee4f
Reviewed-by: Martin Jones <martin.jones@nokia.com>
|