| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Consider the following example:
Item {
width: 100
height: 30
Text {
width: parent ? parent.width : 0
height: parent ? parent.height : 0
elide: Text.ElideRight
text: "wot"
}
}
When setting the Text item's parent to null, its explicit width and
height are set to 0. When restoring its parent (the Item), its
explicit width and height are set to 100 and 30 again, but the text
itself is still not rendered.
The cause can be seen here:
if (!(widthChanged || widthMaximum) && !d->isLineLaidOutConnected()) {
// only height has changed
if (newGeometry.height() > oldGeometry.height()) {
if (!d->heightExceeded) // Height is adequate and growing.
goto geomChangeDone;
heightExceeded was false, because 30 > 12 (or whatever the implicit
height happened to be), so the text was not laid out again, even though
it went from having an explicit height of 0 to an explicit height of
30.
Fix the issue by only executing the goto if the old explicit height
wasn't 0.
Task-number: QTBUG-60328
Task-number: QTBUG-67145
Change-Id: I7f4d2f95bc95c850133ba91ac2d1a02c7ee159b6
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>
|
|
|
|
|
|
|
|
|
|
| |
It currently sounds as if activating kerning would speed up drawing
while the opposite is true.
Change-Id: I7ba8caa82931617213c70570b6b81f82d5b61e52
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io>
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Major performance improvements can be gained if you know for sure
your text does not require any shaping features. This patch adds
Qt Quick support for the QFont::PreferNoShaping flag (though as a
boolean property to work better with property bindings).
[ChangeLog][QtQuick][Text] Added "font.preferShaping" property to
Text, TextEdit and TextInput. This makes it possible to improve
performance at the expense of some cosmetic font features.
Task-number: QTBUG-56728
Change-Id: Ib4e23d5b21b9d4929562df521347285b2586a62e
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
f3446071da8357620d0c8593a04e3b4fbba88f21 introduced a build-time
way to select the default render type of text-like elements.
This patch adds also a way to select it at runtime, via a setter
on QQuickWindow. (QQuickWindow has been chosen as convenience,
rather than adding another namespace/class to just have this
setter.)
Given that QT_QUICK_DEFAULT_TEXT_RENDER_TYPE was never documented,
I've taken the liberty of changing the accepted values for it
(to match the new enumerator names in QQuickWindow, rather than
the ones in QQuickText/QQuickTextEdit/etc.).
[ChangeLog][QtQuick][QQuickWindow] It is now possible to set the
default render type of text-like elements globally via the
QQuickWindow::setTextRenderType() function. If you were using
the (undocumented) QT_QUICK_DEFAULT_TEXT_RENDER_TYPE macro
when building Qt Quick for the same purpose, note that the
macro value needs now to be set to the "NativeTextRendering"
value, instead of "NativeRendering".
Change-Id: Id4b2dc3ec823971486e445ca4173b8be848fb4e3
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@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>
|
|
|
|
|
|
|
|
|
|
|
|
| |
For text where the content is known, it can be handy to be able
to disable the kerning feature in OpenType to improve performance.
[ChangeLog][Qt Quick][Text] Added "kerning" property to the font
type to support disabling kerning on text.
Task-number: QTBUG-56728
Change-Id: I2e447587a066a7e12c5d38967e0845eaad021014
Reviewed-by: Simon Hausmann <simon.hausmann@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>
|
|\
| |
| |
| | |
Change-Id: I71275a2076c3d32ee2896571be882067320a2e9e
|
| |
| |
| |
| |
| | |
Change-Id: I84e363d735b443cb9beefffd14b8c023a37aa489
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
|
|/
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
QQuickTextPrivate::updateSize() emits implicitWidthChanged() and
implicitHeightChanged() to see if anything is connected to the signals
and therefore calls getImplicitWidth() or getImplicitHeight(), which
again call updateSize() recursively. This way it can detect the
recursion and avoid doing the size calculation multiple times.
The problem with emitting the change notifier signals directly is that
item change listeners (QQuickItemChangeListener) do not get notified.
Item change listeners are commonly used by Qt Quick Layouts and Qt
Quick Controls 2. By calling QQuickItemPrivate::implicitWidthChanged()
and implicitHeightChanged() the item change listeners are also called
in addition to emitting the change notifier signals.
Results from qmlbench delegates_buttoncontrol2.qml run with the very
latest dev-branch of qtquickcontrols2:
Before:
Average: 130.2 frames; using samples; MedianAll=130; StdDev=1.92354, CoV=0.0147737
After:
Average: 139.4 frames; using samples; MedianAll=140; StdDev=0.894427, CoV=0.00641626
Task-number: QTBUG-59746
Change-Id: I4461cdf8ddc25f80a38756a1e2b5e3d7d1e84791
Reviewed-by: Robin Burchell <robin.burchell@crimson.no>
|
|
|
|
|
|
|
|
| |
QString::replace(QChar, QChar) was fixed in c12f42e91b146109cc9ee5d050928672776ca1ee
So no need to use pre-condition.
Change-Id: I98eadfc89350194832b229afe061dc0bd01f1bc9
Reviewed-by: J-P Nurmi <jpnurmi@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>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Item views and positioners all have now forceLayout(), so make the
Text element API consistent with them. The old doLayout(), which
sounds more like an internal helper method, is deprecated and marked
for removal in Qt 6.
[ChangeLog][QtQuick][Text] Deprecated doLayout() in favor of
forceLayout().
Change-Id: I051988fca13c4cd84904f7b268d51f6a96f28af3
Reviewed-by: Robin Burchell <robin.burchell@crimson.no>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Now that qmlInfo actually reports info messages, we want to change
existing callers to use warning-level messages to preserve the original
message level.
This was done through:
perl -p -i -e "s/qmlInfo\(/qmlWarning\(/" **/*.{cpp,h,qdoc}
.. with a little care taken to only add the hunks that should be changed.
Change-Id: I511cee11ce0a26ec1048cd2b84c7536b812a0d89
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>
|
|\
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Conflicts:
examples/quick/quickwidgets/quickwidget/main.cpp
src/qml/jsruntime/qv4jsonobject.cpp
src/qml/jsruntime/qv4qobjectwrapper.cpp
src/qml/jsruntime/qv4qobjectwrapper_p.h
src/qml/qml/qqmlengine.cpp
src/qml/qml/qqmlpropertycache.cpp
src/qml/qml/qqmlpropertycache_p.h
src/quick/items/qquickanimatedsprite.cpp
src/quick/items/qquickitem.cpp
src/quick/items/qquickitem.h
src/quick/items/qquickitem_p.h
src/quick/items/qquickview_p.h
src/quick/scenegraph/qsgcontext.cpp
src/quick/scenegraph/qsgdefaultrendercontext.cpp
Change-Id: I172c6fbff97208f21ed4c8b6db3d1747a889f22b
|
| |\
| | |
| | |
| | |
| | |
| | |
| | | |
Conflicts:
tests/auto/quick/qquicktext/tst_qquicktext.cpp
Change-Id: I241cd418bb7e7b95e0a0a2ee4c465d48be2a5582
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
The if statement in QQuickTextPrivate::setupTextLayout() was missing
an OR clause for the case where the line width is neither greater
nor less than the old width/natural width, but has actually changed.
If that sounds confusing, it's because it is. Basically, the outer
layouting loop in that function needs to run twice for this scenario,
so that's what this patch makes it do.
Change-Id: I13777667eb13506d50f05e9766785a1c2c46125c
Task-number: QTBUG-50738
Task-number: QTBUG-50740
Reviewed-by: Liang Qi <liang.qi@qt.io>
|
| | |
| | |
| | |
| | |
| | |
| | | |
Change-Id: I8ec8c8eff41e77225ef42f7bd9e52f4558d00130
Task-number: QTBUG-55779
Reviewed-by: Liang Qi <liang.qi@qt.io>
|
| | |
| | |
| | |
| | |
| | | |
Change-Id: I3493b16a184fc811289db9e98eff37bb987113a3
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
|
|\| |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Conflicts:
src/qml/compiler/qqmltypecompiler.cpp
src/qml/compiler/qv4isel_moth.cpp
src/qml/compiler/qv4ssa_p.h
src/qml/qml/qqmlobjectcreator.cpp
Change-Id: I8bb7fe773d657f908f20ee5e72c2b9bd643f6260
|
| |\|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Conflicts:
src/qml/compiler/qv4isel_moth.cpp
src/qml/compiler/qv4ssa_p.h
tests/benchmarks/qml/qqmlimage/qqmlimage.pro
tests/benchmarks/qml/qqmlimage/tst_qqmlimage.cpp
Change-Id: Iad11ce7fdf0c6d200fdebc16a94081bd8069a87a
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Text elements may contain rich text with embedded links, and
need to accept left clicks to open them. However, setting the
textFormat to PlainText can disable mouse handling entirely,
as it is not required.
Accepting left clicks if there can be nothing to interact with
is unexpected and surprising, and can cause bugs in code that
performs child event filtering and doesn't expect Text elements
to produce child events.
Change-Id: Ibd5b9cf8d06fd30ea26f78b5393cc43e94646e73
Reviewed-by: Marco Martin <mart@kde.org>
Reviewed-by: Kai Uwe Broulik <kde@privat.broulik.de>
Reviewed-by: Robin Burchell <robin.burchell@viroteck.net>
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
|
|\| |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Conflicts:
src/quick/items/qquickflickable_p_p.h
src/quick/items/qquickpathview_p_p.h
tests/auto/qml/qqmltypeloader/tst_qqmltypeloader.cpp
Change-Id: I77664a095d8a203e07a021c9d5953e02b8b99a1e
|
| |\|
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Conflicts:
src/qml/jit/qv4targetplatform_p.h
src/quick/accessible/qaccessiblequickitem_p.h
Change-Id: Ic95075a5fad81ec997a61561bd65979dfa3b9d4d
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Fix horizontal positioning generally, and also address RTL specifically.
Change-Id: I8b75c11bc38e39da5cda302ee9b475bf0dc464e8
Task-number: QTBUG-54075
Reviewed-by: Andrew den Exter <andrew.den.exter@qinetic.com.au>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Tracing is a kind of logging designed specifically for use with
http://code.qt.io/cgit/qt-labs/umlquick.git, to generate UML
Sequence diagrams. Here it is being used to trace the delivery
of hover events. Due to use of the QT_MESSAGE_PATTERN backtrace
directive, and backtrace splicing, it's not necessary to emit
trace messages for every step: it's mainly important to catch
the final destinations of hover processing, where state is
changed and signals emitted.
Change-Id: I5f640732f90990ef9f89767a56f3978b9c28a410
Reviewed-by: Robin Burchell <robin.burchell@viroteck.net>
|
|\| |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Conflicts:
src/qml/jsruntime/qv4engine_p.h
src/qml/jsruntime/qv4runtime_p.h
src/qml/qml/qqmldelayedcallqueue.cpp
src/qml/qml/qqmlvaluetypewrapper.cpp
src/qml/qml/qqmlvmemetaobject.cpp
src/qml/qml/v8/qv8engine_p.h
tests/auto/quick/qquicktext/tst_qquicktext.cpp
Change-Id: I3f0608c7beb88088cbbef4d0db59920f56deaea9
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Works now similarly as with very small text lengths (smaller than
elide characted length).
Change-Id: I0c4aafbcc50343bb0ec8b5f335045e1048a499fd
Task-number: QTBUG-34990
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@theqtcompany.com>
|
|/ /
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
As screen density is rapidly increasing and user interfaces are moving
more and more towards using unhinted text as default, we have to make
it possible to select the hint level from Qt Quick as well. While
this is already partially covered by the unhinted QtRendering render type,
it is still interesting to be able to tweak the native rendering accordingly,
since this is a more precise rasterization. QtRendering also doesn't support
medium hinting.
[ChangeLog][Text] Added "hintingPreference" property to Text, TextEdit and
TextInput.
Change-Id: Ib99dbea24aba082481629deddde88c04cdeb8cdb
Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
Reviewed-by: Simon Hausmann <simon.hausmann@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
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
The whole purpose of native rendering is to optimize precisely for a
given pixel grid.
DPI scaling can change when either settings of the current screen are
changed, or when the window is moved to a different screen.
Details:
- add an ItemDevicePixelRatioHasChanged item change event
- detect DPI scaling changes by watching screen (identity) and screen
config changes
- when DPI scaling changes, recursively send an
ItemDevicePixelRatioHasChanged signal to all items with content
- when a natively renderet TextItem catches such an event, call
updateLayout() which automatically picks up the new logical DPI
Task-number: QTBUG-49019
Change-Id: I9f4f8d1a7f2c172ed26c276294ab143161c4a48b
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@theqtcompany.com>
|
|\|
| |
| |
| | |
Change-Id: Iec1b2de53c275996364c4bab0123ccb3e6e9895e
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This makes only non-functional changes so the next patch can make
mostly functional changes.
QQuickText: rename q_imageLoaded() to q_updateLayout().
Says what it does, not when it is called.
QQuickWindow: split QQuickWindow::forcePolish() into
QQuickWindow::handleScreenChanged() and
QQuickWindowPrivate::forcePolish().
Change-Id: Ief2ae30cd9f27ee8083b2c75765fb5278bde5ea8
Reviewed-by: Gunnar Sletta <gunnar@sletta.org>
|
|\|
| |
| |
| | |
Change-Id: I4af0bf8ec1569097d97f8ce0bb8bf1a0e4a989ec
|
| |\
| | |
| | |
| | | |
Change-Id: Ieb48911638b5c1acdfd4dee8aa19dca9be99a1f6
|
| | |
| | |
| | |
| | |
| | | |
Change-Id: Ie6b085157cebaf06750a30bc050b6bed0c7f6018
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>
|
|\| |
| | |
| | |
| | |
| | |
| | |
| | | |
Conflicts:
tools/qmlprofiler/qmlprofilerclient.cpp
Change-Id: I1de8832fefd0e45fea16ca072b6c7ae44fa376d4
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
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>
|
|/ /
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
QML text rendering elements have a renderType property controlling
whether to use 'Qt' rendering or 'Native' rendering. There is no reason
to mix different types of rendering in one static ui. The element-local
properties may be used to change the rendering type during animation
for example, but otherwise there should be an application-wide rendering
mode for text.
That means that all Text-based elements in QML should default to the
same rendering mode. Additionally, applications wishing to use
NativeRendering, wish to use it for all text-based elements, so they
require changing the defaults of the elements themselves, still allowing
the possibility of changing the rendering mode during animation.
Creating third party wrappers for each of the QML text rendering types
is not a solution because an application requires the same font
rendering for all text.
That is, whether written directly with QML Text* elements, or using
QtQuick controls, or another 3rd party component set, it is necessary to
set the same font rendering mode for all text, except in temporary
execptional cases.
The known options to achieve this are
1) Create an environment variable to set the default rendering.
2) Add C++ API to set the default
3) Add a build-time option to set the default.
The first option is unsatisfying because it is fragile and is easy to
get wrong.
The second option is incomplete because it does not affect qmlscene etc,
so it would require adding a command line argument to qmlscene to change
the default. That is unsatisfying because it is also fragile. It is
necessary for the sanity of developers and designers (and also end
users) that qmlscene use the correct default by default. It must be
easy to create qml files for designers to run with qmlscene and which
look correct.
The third option is the one chosen for this patch. It is most suitable
for environments where the Qt build and settings are contained because a
particular Qt build is shipped with the application using it (This is
the most common way Qt is used). It affects all uses of the text
rendering elements, whether used through qmlscene or through another
entry point, and it allows changing the property in QML code away from
the build-time-determined default.
When building Qt, -DQT_QUICK_DEFAULT_TEXT_RENDER_TYPE=NativeRendering
may be passed to configure to affect the default rendering for the Qt
build.
It also leaves the question why the default text rendering is 'Qt'
instead of being 'Native', given that many of the Qt controls need to
switch to Native anyway (though this depends on the platform and the
style).
Change-Id: Ib0eed61caf4895b29e5c05e0418fad9962779f85
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@theqtcompany.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
When the height changes and the vertical alignment is
center or bottom, we need to call updateSize(), since
this updates the baseline offset. So we need to account
for this case in the geometryChanged() handler.
[ChangeLog][Text] Fixed baseline of Text elements where the
vertical alignment was something other than top.
Change-Id: I738c0603e7bf91e5e7ea1a40d4f925f41f868758
Task-number: QTBUG-43226
Reviewed-by: Lars Knoll <lars.knoll@theqtcompany.com>
|
| |
| |
| |
| |
| |
| |
| | |
Which is used in Label of QtQuick.Controls 2.0.
Change-Id: I1228dba59a2a247c8d9556eed7c9a97782d91668
Reviewed-by: J-P Nurmi <jpnurmi@theqtcompany.com>
|
| |
| |
| |
| |
| |
| | |
Change-Id: Ia3973c9d46a9fe8c511d24e20c9c23a1c7d4660d
Task-number: QTBUG-43810
Reviewed-by: Topi Reiniö <topi.reinio@digia.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>
|