| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
| |
Our stringToCMap implementation for CoreText that bypasses the shaping needs
to have basic support for font cascading / glyph substitution. We now use
CTFontCreateForString to determine the substitute font for missing glyphs.
Task-number: QTBUG-12411
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@nokia.com>
|
|
|
|
|
|
|
|
| |
Implemented the straight string-to-glyph conversion in the core text
font engine, that bypasses the shaping. This is used by the fast text
code path in QtWebKit.
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@nokia.com>
|
|
|
|
|
|
|
| |
On Mac we end up in a code path where logClusters is 0, and the fallback
path for when CoreText fails to shape text didn't take this into account.
Reviewed-by: Simon Hausmann
|
|
|
|
|
|
|
|
| |
QFont::setStretch() would previously have no effect on Mac OS X/Cocoa.
Task-number: QTBUG-10585
Reviewed-by: Eskil
Done-by: Andy
|
|
|
|
|
|
|
| |
As a fallback we assume one glyph per character and manually
build a list of invalid glyphs with zero advance.
Reviewed-and-inspired-by: Simon Hausmann
|
|
|
|
|
|
|
| |
This matches how both the simple and complex paths in WebKit handle
float to integer conversion, and looks much better.
Reviewed-by: Eskil
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Device metrics was turned on for Mac/Carbon to work around a bug
in WebKit that required the font engine to report only integer values.
This in turn caused positioning of glyphs to be slightly off compared
to native applications. The bug has been fixed in WebKit, so now we
can turn off the device metrics flag. Since we are now reporting
fractional values as well, we need to round the numbers when the
ForceIntegerMetrics style strategy flag is set.
Task-number: qtbug-5529
Reviewed-by: Trond
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
WebKit uses integers internally to deal with positioning and sizing of
text objects, but on Mac, Qt uses floating point values. This caused a
discrepancy between the size used by WebKit to position text objects
and the actual size of the objects when rendered by Qt. The problem was
so bad that it has been holding back fixes for other bugs in the mac
font engine since these would make the WebKit bug more visible.
To work around the problem, we introduce a StyleStrategy flag in QFont
which allows you to force the use of integers all over the line. This
makes text rendering slightly different from native applications, but
should fix several issues with WebKit on Mac.
The WebKit-part of this patch will be submitted up-stream.
Reviewed-by: Simon Hausmann
Reviewed-by: Prasanth
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This reverts part of commit e008504b5ec34975e34adf3b1a2b7170d0e4dd38.
The original commit aimed to round up all fractional numbers for the
font to "improve appearance". Rounding up the last advance of a set
of advances in a glyph layout, however, breaks text layout completely,
since the layout of text will be different depending on how many text
lines is used to represent it (since the last glyph in each line will
have a higher advance than the others.) This was e.g. visible in
Qt Creator when turning on whitespace visualization, as all spaces
then created a format change, thus a new text line in the text layout,
and hence an increase of X pixels in the positioning of the text after
the space, where 0.0 < X < 1.0. I see no negative results of removing
the rounding, but if there are any problems, it has to be fixed in the
usage of the advances not in the advances themselves.
Task-number: QTCREATORBUG-381, QTBUG-8791
Reviewed-by: mae
|
|
|
|
| |
Reviewed-by: Trust Me
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Change 04d18b38 fixed the windows and ft font engines so that the height
reported in QFontMetrics is now correct, but this make vertical text
centering one off as the platform defaults is to round down rather than
up when the vertical position of the text is in the middle of a pixel.
When this was fixed in change 1de8a5b, the vertical centering broke on
Mac, since it still reported a too great font height. This patch applies
the same hack to the mac font engines to report the correct font
height.
Task-number: QTBUG-6770
Reviewed-by: joerg
|
|
|
|
|
|
|
|
|
|
|
|
| |
On Mac OS X, Cocoa, we would synthesize italics on the text by slanting
it in the incorrect direction (so it leaned to the left) when generating
a path from the text, e.g. when printing.
The patch makes the text slant the correct way, and the logic now
becomes identical with the synthesized italics in the draw() function.
Task-number: QTBUG-4969
Reviewed-by: Trond
|
|
|
|
|
|
|
|
| |
Make the shapeText function return numGlyphs properly - its not always
the same as length of string.
Task-number: QTBUG-4848
Reviewed-by: Rhys Weatherley
|
|
|
|
|
|
| |
The positioning is still wrong, but now it at least the glyphs are ok
Reviewed-by: msorvig
|
|
|
|
| |
Reviewed-by: Richard
|
|\
| |
| |
| |
| |
| |
| | |
Conflicts:
examples/webkit/formextractor/formextractor.pro
mkspecs/features/qt.prf
src/gui/painting/qpaintengineex.cpp
|
| |
| |
| |
| |
| |
| |
| |
| | |
Revert parts of adf322c514a5781dcb9ec304d44229fa47d5e8b3 to
get this to work as in 4.5.2 again. What the original
patch fixed, we don't really know..
Reviewed-by: Simon Hausmann
|
| |
| |
| |
| | |
Reviewed-by: Trust Me
|
| |
| |
| |
| | |
Reviewed-by: Trust Me
|
|\ \
| |/
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Conflicts:
demos/boxes/glshaders.cpp
demos/boxes/vector.h
demos/embedded/fluidlauncher/pictureflow.cpp
demos/embedded/fluidlauncher/pictureflow.h
doc/src/desktop-integration.qdoc
doc/src/distributingqt.qdoc
doc/src/examples-overview.qdoc
doc/src/examples.qdoc
doc/src/frameworks-technologies/dbus-adaptors.qdoc
doc/src/geometry.qdoc
doc/src/groups.qdoc
doc/src/objecttrees.qdoc
doc/src/platform-notes.qdoc
doc/src/plugins-howto.qdoc
doc/src/qt3support.qdoc
doc/src/qtdbus.qdoc
doc/src/qtdesigner.qdoc
doc/src/qtgui.qdoc
doc/src/qtmain.qdoc
doc/src/qtopengl.qdoc
doc/src/qtsvg.qdoc
doc/src/qtuiloader.qdoc
doc/src/qundo.qdoc
doc/src/richtext.qdoc
doc/src/topics.qdoc
src/corelib/tools/qdumper.cpp
src/gui/embedded/qkbdpc101_qws.cpp
src/gui/embedded/qkbdsl5000_qws.cpp
src/gui/embedded/qkbdusb_qws.cpp
src/gui/embedded/qkbdvr41xx_qws.cpp
src/gui/embedded/qkbdyopy_qws.cpp
src/gui/embedded/qmousebus_qws.cpp
src/gui/embedded/qmousevr41xx_qws.cpp
src/gui/embedded/qmouseyopy_qws.cpp
src/gui/painting/qpaintengine_d3d.cpp
src/gui/painting/qwindowsurface_d3d.cpp
src/opengl/gl2paintengineex/glgc_shader_source.h
src/opengl/gl2paintengineex/qglpexshadermanager.cpp
src/opengl/gl2paintengineex/qglpexshadermanager_p.h
src/opengl/gl2paintengineex/qglshader.cpp
src/opengl/gl2paintengineex/qglshader_p.h
src/opengl/util/fragmentprograms_p.h
src/plugins/kbddrivers/linuxis/linuxiskbdhandler.cpp
src/plugins/mousedrivers/linuxis/linuxismousehandler.cpp
src/script/parser/qscript.g
src/script/qscriptarray_p.h
src/script/qscriptasm_p.h
src/script/qscriptbuffer_p.h
src/script/qscriptclass.cpp
src/script/qscriptclassdata_p.h
src/script/qscriptcompiler.cpp
src/script/qscriptcompiler_p.h
src/script/qscriptcontext.cpp
src/script/qscriptcontext_p.cpp
src/script/qscriptcontext_p.h
src/script/qscriptcontextfwd_p.h
src/script/qscriptecmaarray.cpp
src/script/qscriptecmaarray_p.h
src/script/qscriptecmaboolean.cpp
src/script/qscriptecmacore.cpp
src/script/qscriptecmadate.cpp
src/script/qscriptecmadate_p.h
src/script/qscriptecmaerror.cpp
src/script/qscriptecmaerror_p.h
src/script/qscriptecmafunction.cpp
src/script/qscriptecmafunction_p.h
src/script/qscriptecmaglobal.cpp
src/script/qscriptecmaglobal_p.h
src/script/qscriptecmamath.cpp
src/script/qscriptecmamath_p.h
src/script/qscriptecmanumber.cpp
src/script/qscriptecmanumber_p.h
src/script/qscriptecmaobject.cpp
src/script/qscriptecmaobject_p.h
src/script/qscriptecmaregexp.cpp
src/script/qscriptecmaregexp_p.h
src/script/qscriptecmastring.cpp
src/script/qscriptecmastring_p.h
src/script/qscriptengine.cpp
src/script/qscriptengine_p.cpp
src/script/qscriptengine_p.h
src/script/qscriptenginefwd_p.h
src/script/qscriptextenumeration.cpp
src/script/qscriptextenumeration_p.h
src/script/qscriptextqobject.cpp
src/script/qscriptextqobject_p.h
src/script/qscriptextvariant.cpp
src/script/qscriptfunction.cpp
src/script/qscriptfunction_p.h
src/script/qscriptgc_p.h
src/script/qscriptmember_p.h
src/script/qscriptobject_p.h
src/script/qscriptprettypretty.cpp
src/script/qscriptprettypretty_p.h
src/script/qscriptvalue.cpp
src/script/qscriptvalueimpl.cpp
src/script/qscriptvalueimpl_p.h
src/script/qscriptvalueimplfwd_p.h
src/script/qscriptvalueiteratorimpl.cpp
src/script/qscriptxmlgenerator.cpp
src/script/qscriptxmlgenerator_p.h
tests/auto/linguist/lupdate/testdata/recursivescan/project.ui
tests/auto/linguist/lupdate/testdata/recursivescan/sub/finddialog.cpp
tests/auto/qkeyevent/tst_qkeyevent.cpp
tools/linguist/shared/cpp.cpp
|
| |
| |
| |
| | |
Reviewed-by: Trust Me
|
| |
| |
| |
| | |
Reviewed-by: Trust Me
|
| |
| |
| |
| | |
Reviewed-by: Trust Me
|
|\ \
| |/
| |
| |
| |
| |
| |
| |
| |
| | |
Conflicts:
src/corelib/tools/qsharedpointer.cpp
src/corelib/tools/qsharedpointer_impl.h
src/gui/dialogs/qcolordialog.cpp
src/gui/painting/qwindowsurface_raster.cpp
src/network/access/qnetworkaccessmanager.cpp
tests/auto/qsharedpointer/externaltests.cpp
|
| |
| |
| |
| |
| |
| | |
CFDictionaryAddValue expects a CFNumberRef, not a pointer-to-CFNumberRef.
Reviewed-by: TrustMe
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Priting to PDF would crash for applications built on Leopard when running
on Tiger.
Add the standard runtime version check to QFontEngineMac::faceId().
Task-number: 251791
Reviewed-by: Richard Moe Gustavsen
|
| |
| |
| |
| |
| |
| | |
Removed lots of places where we check for Tiger. Now we can assume it.
Reviewed-by: Morten Sørvig
|
|\ \
| |/
| |
| |
| | |
Conflicts:
src/sql/drivers/psql/qsql_psql.cpp
|
| |
| |
| |
| |
| |
| |
| | |
Re-enable fractional coordinates for text output, to produce the same
output as regular Carbon/ATSUI applications.
Reviewed-by: Norwegian Rock Cat <qt-info@nokia.com>
|
|\ \
| |/ |
|
| |
| |
| |
| | |
Reviewed-by: Trust Me
|
|\ \
| |/ |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
We currently don't support subpixel hinting when drawing text to a
QImage on Mac. The alpha map that is returned by the font engine
is a plain 8 bit gray mask, which means we have to switch off subpixel
hinting when we draw the glyph for caching.
Task-number: 249178
Reviewed-by: Samuel
|
|/
|
|
|
|
|
|
|
|
| |
Implement the alphaRGBMapForGlyph function and make use of it in
the raster engine. The gamma correction is currently hardcoded to 2.0
which looks very good on two separate displays (iMac and MacBook Pro).
Ideally this would be picked from the system settings or computed
dynamically, but as long as 2.0 works, we'll stick to that.
Reviewed-by: Samuel
|
|
|
|
|
|
|
|
|
|
|
|
| |
Apparently CoreText is too good for us and always gives us fractional
information. Which would be food for design metrics, but not good for
drawing to the screen. The upshot of it is that we do the ceiling of
every value we get. This is as stop gap solution for the moment. Things
in Creator should look better now.
Also added the ability to disable kerning.
Reviewed-by: Simon Hausmann
|
|
|