| Commit message (Collapse) | Author | Age | Files | Lines |
|\
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
master-integration
* 'master' of scm.dev.nokia.troll.no:qt/qt-fire-staging:
Move separator skipping to proper place
Skip shaping for hidden line/paragraph separators
Support interface orientation for uikit.
Add support for opening LinuxInput devices exclusively ('grabbing').
Fixed regression in compilerwarnings.
Properly quit the input event thread in the directfb platform plugin.
Apply 57993ba7 properly to 4.8
Deprecate some QPixmap functions (marked as obsolete already).
Deprecate some functions in QImage (that have been obsolete since 4.1).
Add QLocale::toUpper/Lower
Fix warning for uninitialized variable
|
| |
| |
| |
| |
| |
| | |
So that it won't crash some places that requires shaping results.
Reviewed-by: TrustMe
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Since we are not going to draw them in QTextLine::draw either,
and shaping them here will cause performance issue on certain
systems like Mac OS X 10.7 (most fonts don't have glyph for U+2028,
while font fallback handling in Core Text slowed down a bit).
Task-number: QTBUG-20252
Reviewed-by: Eskil
|
| |
| |
| |
| |
| |
| |
| | |
Because we have moved alignLine from qtextlayout.cpp to QTextEngine,
this patch has to be applied manually.
Reviewed-by: TrustMe
|
| |
| |
| |
| | |
Reviewed-by: Eskil
|
|\ \
| |/
|/|
| |
| |
| | |
Conflicts:
src/s60installs/bwins/QtGuiu.def
src/s60installs/eabi/QtGuiu.def
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Since the attributes() call might resize the layout and therefore
delete the previous data, the logClusters pointer might be dangling
at this point. We need to reget it to make sure it's valid.
Task-number: QTBUG-20310
Reviewed-by: Jiang Jiang
|
| |
| |
| |
| |
| | |
Reviewed-by: TrustMe
(cherry picked from commit 244620438700464a862ceab7c881974a5b1d1fea)
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
So that if these font engines are deallocated elsewhere (by
QFontCache for instance), we can still access them in QTextEngine.
Task-number: QTBUG-17603
Reviewed-by: Eskil
(cherry picked from commit 6e23fb69e441871829765ff512e90fed17b6798d)
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
When laying out text, a significant amount of time was being spent
querying for the font engine. This patch:
* changes the layout to only query for the engine when a new script item
is encountered.
* adds an internal cache of the previous result to
QTextEngine::fontEngine(). This catches the important case of multiline
text with few font engine changes.
With these changes layout costs are now approximately 60% of what they
were previously, as measured by the text layout benchmarks.
Reviewed-by: Eskil Abrahamsen Blomfeldt
(cherry picked from commit 0c56bef89b6e3fe4c9fb32eb8b51a6ea316a89fa)
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Loading app fonts will clear the application font cache, but
QFontPrivate::engineWithScript will try to load the font again,
in Mac the font engine used here must be the one used for shaping,
because subsequent sub font engines may be added to it during the
shaping process (QCoreTextFontEngineMulti::stringToCMap). That is
why we need to fetch the font engine directly from QTextEngine's
fontEngine cache instead of QFontCache.
Task-number: QTBUG-20250
Reviewed-by: Eskil
(cherry picked from commit 1f90ae36cff8acf581d1624bf011fe3a55c623c0)
|
| |
| |
| |
| |
| |
| |
| | |
Clicking at the edge of a glyph means lookup for the left glyph.
Reviewed-by: TrustMe
(cherry picked from commit 31110bf84bb06d57983501fa65fe0db3f7c61927)
|
| |
| |
| |
| | |
Reviewed-by: TrustMe
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
We need to find out the closest element in the ligature to
the point we clicked (or tapped), currently we do this by
dividing the width of that ligature glyph evenly by the number
of characters it covered. We only support Common and Greek script
at this point, ligatures in other scripts are still handled as a
whole.
Task-number: QTBUG-19260
Reviewed-by: Eskil
|
| |
| |
| |
| |
| |
| |
| | |
Updated version of LGPL and FDL licenseheaders.
Apply release phase licenseheaders for all source files.
Reviewed-by: Trust Me
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
So that it can take trailing space width into account when
doing right aligned text drawing.
Backported from master.
Task-number: QTBUG-18303
Reviewed-by: Eskil
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
(Backport from master)
Currently we only pass the num_glyphs for the run to
HB_ShapeItem, but it can be less then the string length
for this run because of Unicode surrogates. Thus, we need
to pass at least the length of that run as num_glyphs to
HB (given that we have enough space allocated because for
the entire string), if that's still not enough, we will
do ensureSpace again according to the num_glyphs returned
by HB and move remaining glyphs backwards.
Task-number: QTBUG-15679
Reviewed-by: Lars Knoll
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Loading app fonts will clear the application font cache, but
QFontPrivate::engineWithScript will try to load the font again,
in Mac the font engine used here must be the one used for shaping,
because subsequent sub font engines may be added to it during the
shaping process (QCoreTextFontEngineMulti::stringToCMap). That is
why we need to fetch the font engine directly from QTextEngine's
fontEngine cache instead of QFontCache.
Task-number: QTBUG-20250
Reviewed-by: Eskil
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
According to UAX #9, bidiItemize should act as if those characters
don't exist. If we don't, dir and status.eor here may become
QChar::DirBN, thus interfere the result of bidiItemize.
Task-number: QTBUG-19949
Reviewed-by: Lars Knoll
|
| |
| |
| |
| |
| |
| | |
enableHarfbuzz() should only be defined on Mac.
Reviewed-by: Eskil
|
|\ \
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Conflicts:
src/plugins/platforms/wayland/qwaylandclipboard.cpp
src/plugins/platforms/wayland/qwaylandclipboard.h
src/plugins/platforms/wayland/qwaylanddisplay.cpp
src/s60installs/eabi/QtOpenGLu.def
|
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Updated version of LGPL and FDL licenseheaders.
Apply release phase licenseheaders for all source files.
Reviewed-by: Trust Me
|
| | |
| | |
| | |
| | |
| | |
| | | |
Clicking at the edge of a glyph means lookup for the left glyph.
Reviewed-by: TrustMe
|
| | |
| | |
| | |
| | | |
Reviewed-by: TrustMe
|
|/ /
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
We need to find out the closest element in the ligature to
the point we clicked (or tapped), currently we do this by
dividing the width of that ligature glyph evenly by the number
of characters it covered. We only support Common and Greek script
at this point, ligatures in other scripts are still handled as a
whole.
Task-number: QTBUG-19260
Reviewed-by: Eskil
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
When shaping a QScriptItem with a multi font engine, currently we
only take the ascent/descent/leading from the primary (first) font
engine in that multi font engine, however, subsequent engines used
during shaping may have larger ascent/descent/leading, disregarding
them may cause clipping issues in some cases.
It's fixed by checking each font engine used in the shaping process
and take the maximum value instead of the first one. On ATSUI we
merely make it compile.
Task-number: QTBUG-16719
Reviewed-by: Eskil
|
| |
| |
| |
| |
| |
| | |
Otherwise accessing that through QTextEngine::alignLine may cause crash.
Reviewed-by: Samuel Rødal
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
When painting horizontally centered RTL text and selection with
trailing spaces, we need to take that space width into account
because line.textAdvance doesn't include it.
Task-number: QTBUG-18612
Reviewed-by: Eskil
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
It's possible to enable HarfBuzz text layout on Mac by either:
- Set QT_ENABLE_HARFBUZZ environment variable when running a Qt
app.
- configure with -harfbuzz to build Qt, then HarfBuzz support
will be turned on by default.
HarfBuzz will only be used when the font explicitly requested
is supported by HarfBuzz (aka. TrueType/OpenType font), other
fonts (AAT fonts) will still be handled by Core Text.
Using HarfBuzz for text layout will hopefully solve most tricky
complex text shaping bugs on Mac.
Task-number: QTBUG-17728
Reviewed-by: Eskil
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Bidi input can in some contexts be more intuitive if the cursor
works in visual way: pressing left arrow key always make cursor
move one character to the left regardless the language of text,
pressing right arrow key always make cursor move to the right.
It is also the behavior of Mac OS X. Based on the above reason
and requests from Symbian we implemented this support for visual
movement in BIDI text. 3 public properties are added to
QTextDocument, QTextLayout and QLineEdit respectively:
- QTextDocument::defaultCursorMoveStyle can be used to control
the cursor behavior in all widgets based on QTextDocument,
like QTextEdit, QPlainTextEdit, etc. When set to QTextCursor::
Visual, it will enable visual movement for all the cursors in
the corresponding text edit. Default is QTextCursor::Logical.
- QTextLayout::cursorMoveStyle is used for low-level cursor
manipulation. When set to Visual, it will enable visual movement
behavior for all the cursor related methods, including cursorToX,
xToCursor and drawCursor. Default is Logical.
- QLineEdit::cursorMoveStyle is used to control cursor movement
behavior in QLineEdit. Default is Logical.:
Task-number: QTBUG-13859
Reviewed-by: Eskil
|
| |
| |
| |
| | |
Reviewed-by: Samuel Rødal
|
| |
| |
| |
| |
| |
| |
| |
| | |
In this case we can't use line width to align the text, we have to
use the rectangle width given in QPainter::drawText for alignment
instead.
Reviewed-by: Eskil
|
| |
| |
| |
| | |
Reviewed-by: TrustMe
|
| |
| |
| |
| |
| |
| |
| |
| | |
So that if these font engines are deallocated elsewhere (by
QFontCache for instance), we can still access them in QTextEngine.
Task-number: QTBUG-17603
Reviewed-by: Eskil
|
|\ \
| |/
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Conflicts:
examples/webkit/imageanalyzer/imageanalyzer.h
examples/webkit/imageanalyzer/mainwindow.h
mkspecs/unsupported/qws/linux-x86-openkode-g++/qplatformdefs.h
src/corelib/io/qfsfileengine_iterator_unix.cpp
src/corelib/io/qfsfileengine_iterator_win.cpp
src/corelib/kernel/qcoreapplication.cpp
src/network/access/qnetworkaccessdatabackend.cpp
src/plugins/bearer/connman/qconnmanservice_linux.cpp
src/plugins/platforms/openvglite/qwindowsurface_vglite.h
src/s60installs/bwins/QtCoreu.def
src/s60installs/eabi/QtCoreu.def
src/s60installs/s60installs.pro
tools/assistant/tools/assistant/helpviewer_qwv.h
tools/qdoc3/test/qt-html-templates.qdocconf
|
| |
| |
| |
| | |
Reviewed-by: Trust Me
|
| |\
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
4.7-integration
* '4.7' of scm.dev.nokia.troll.no:qt/oslo-staging-2:
Fixes crash in QGraphicsItem's destructor.
Doc: Fixing typo
|
| | | |
|
| |/
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
operator[]
Improves scrolling in testfile content.xml attached to QTBUG-9549.
According to callgrind, the improvement is nearly 35% (comparing total incl. cost of QTextEngine::setBoundary)
total incl cost / calls to setBoundary =
before: 6.0883269E9 / 46520 = approx. 130875.47
after: 2.4834313E9 / 29370 = approx. 84556.733
in relation this gives us: 84556.733 / 130875.47 = approx. 0.64608542
Merge-request: 975
Reviewed-by: Harald Fernengel <harald.fernengel@nokia.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Currently we only pass the num_glyphs for the run to
HB_ShapeItem, but it can be less then the string length
for this run because of Unicode surrogates. Thus, we need
to pass at least the length of that run as num_glyphs to
HB (given that we have enough space allocated because for
the entire string), if that's still not enough, we will
do ensureSpace again according to the num_glyphs returned
by HB and move remaining glyphs backwards.
Task-number: QTBUG-15679
Reviewed-by: Lars Knoll
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
A single digit after RTL text will be considered as RTL because it
was treated as Other Neutral (DirON), it can be solved by changing
it to DirAN.
Task-number: QTBUG-2795
Reviewed-by: Lars Knoll
|
|\ \
| |/ |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
If the Arabic text is for some reason undisplayable, e.g. because of
QTBUG-13132, the font engine will be unable to find the tatweel character
and the kashida width may be returned as 0. This would potentially cause
an infinite loop, as "need" would remain >= minKashida forever because
x - 0 is still >= 0.
Task-number: QTBUG-13130
Reviewed-by: Lars
|
|\ \
| |/
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Conflicts:
bin/syncqt
demos/declarative/snake/content/snake.js
demos/declarative/snake/snake.qml
doc/src/development/qmake-manual.qdoc
src/corelib/plugin/plugin.pri
src/gui/kernel/qapplication_win.cpp
src/gui/kernel/qdesktopwidget_win.cpp
src/gui/painting/qdrawhelper.cpp
tests/auto/qdir/tst_qdir.cpp
tools/qdoc3/test/assistant.qdocconf
tools/qdoc3/test/designer.qdocconf
tools/qdoc3/test/linguist.qdocconf
|
| |
| |
| |
| |
| |
| |
| |
| | |
The behavior of Qt with these characters was different than other
toolkits, which annoys some people.
Task-number: QTCREATORBUG-2241
Reviewed-by: mae
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
... on re-allocation failure. So, let's actually check the returned
pointer and fail, instead of using Q_CHECK_PTR.
Task-number: QT-3785
Reviewed-by: Peter Hartmann
Reviewed-by: Samuel Rødal
|
|\ \
| |/
| |
| |
| |
| |
| | |
Conflicts:
qmake/generators/win32/msbuild_objectmodel.cpp
qmake/generators/win32/msvc_vcxproj.cpp
tests/auto/qnetworkreply/tst_qnetworkreply.cpp
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Commit 07880542ecc479807c23c5646d263135240822ff introduced regression to
QFontMetrics::boundingRect and QTextEngine::boundingBox on FT, XLFD and
QPF font engine. Because on these platforms, rightBearing of the last
glyphs is already removed from the width returned in glyph_metrics_t.
Subtracting that rightBearing twice will cause the resulting boundingBox
smaller than expected.
This patch fix this by removing last right bearing accounting code from
generic QTextEngine::boundingBox, instead, we put it into font engines
that need them: QFontEngineWin, QCoreTextFontEngine, QFontEngineMac,
QFontEngineS60 and QFontEngineQWS. So that the resulting width should be
correct on all platforms without introducing any performance penalties.
Task-number: QTBUG-6854, QTBUG-12950
Reviewed-by: Eskil
|
| |
| |
| |
| |
| | |
Task: http://bugreports.qt.nokia.com/browse/QTBUG-231
Reviwed-by: Eskil
|
|\ \
| |/
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Conflicts:
src/gui/painting/qpainter.cpp
src/gui/text/qtextengine.cpp
tests/auto/qimage/tst_qimage.cpp
tests/auto/qpainter/tst_qpainter.cpp
tools/qdoc3/test/assistant.qdocconf
tools/qdoc3/test/designer.qdocconf
tools/qdoc3/test/linguist.qdocconf
tools/qdoc3/test/qmake.qdocconf
tools/qdoc3/test/qt-build-docs.qdocconf
tools/qdoc3/test/qt-html-templates.qdocconf
tools/qdoc3/test/qt-html-templates_zh_CN.qdocconf
tools/qdoc3/test/qt.qdocconf
|