| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
| |
Strict aliasing is violated here, so just silence the compiler (GCC)
by using an extension.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The QStaticTextItem held an uncounted reference to QFontEngine. The
pointer would dangle in some cases where there was no font object
referencing the engine and the cache was cleaned out (e.g. when a
new application font is added.) Properly count the reference, and also
add reference counting to userData to make it harder to shoot yourself
in the foot, since the QStaticTextItem class is now being used in
different places,
Task-number: QTBUG-14446
Reviewed-by: Martin Jones
|
| |
|
|
|
|
|
|
|
|
| |
The pixelSize ends up being 0 unless these changes are applied. Must be
a compiler bug in GCC 4.3.x, fixed in GCC 4.4.1.
Reviewed-by: Prasanth
Reviewed-by: Olivier Goffart
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
On some Symbian versions (apparently <= Symbian^1),
CFont::GetCharacterData() returns 8-bit data with gray values
0x00, 0x10 ... 0xe0, 0xf0 due to a bug. The glyphs are nowhere
perfectly opaque, which is bad for blitting.
This has been however been fixed for Symbian^3.
The funny thing about this tweak was that it was only executed
on Symbian^3 (with the OpenVG/OpenGL paintengines). On Symbian^1
and below (rasterpaintengine), QFontEngineS60::alphaMapForGlyph()
does not get called at all, anymore.
Therefore, the removal of this tweak should not be noticable
anywhere, except that on Symbian^3, quite a few CPU cycles are
now saved.
See the attachments in QTBUG-14419 for details.
Task-Number: QTBUG-14419
Reviewed-By: TrustMe
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
(Addition to ab057be7228d20d909246183505b72e821cc440f)
Instead of using a glyph_metrics_t (which gets filled with
data from a TOpenFontCharMetrics), we use a
TOpenFontCharMetrics, directly.
Also, the advances_y gets set to 0. Like on the other
platforms.
These change increases the Fps in
qt\tests\manual\textrendering\textperformance "Latin" from 16.5 to
16.6 Fps on an XM5800. I am sure that I can construct a benchmark
where the speed gain is bigger.
Task-number: QTBUG-14378
Reviewed-by: TrustMe
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Some glyph position tweaks during the shaping phase require
the "Units per Em" information for the font. QFontEngineS60
did not reimplement emSquareSize(), therefore, some combined
glyphs were rendered incorrectly (see QTBUG-10725)
This patch implements QFontEngineS60::emSquareSize()
Since Symbian does not provide the "Units per Em" via public
Api, we have to pick that out of the 'head' font table.
The value is cached per font.
Task-Number: QTBUG-10725
Reviewed-by: Eskil Abrahamsen Blomfeldt
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
QFontEngineS60::boundingBox_const(): The metrics that
CFont::getCharacterData() returns is equivalent to what
TOpenFontCharMetrics::GetHorizBounds() returns. So, remove
the use of TRect glyphBounds, and
TOpenFontCharMetrics::GetHorizBounds().
Implementation of TOpenFontCharMetrics::GetHorizBounds():
http://developer.symbian.org/oss/API_REF/Public_API/file/837f303aceeb/epoc32/include/openfont.h#l1352
QRasterPaintEngine::drawGlyphsS60(): The metrics that
QFontEngineS60::getCharacterData() returns are equivalent to
what QFontEngineS60::boundingBox() returns. So, remove the
use of glyph_metrics_t metrics, and QFontEngineS60::boundingBox().
These changes increase the Fps in
qt\tests\manual\textrendering\textperformance "Latin" from 16.2 to
16.5 Fps on an XM5800. And they do that by removing code :)
Task-number: QTBUG-14378
Reviewed-by: Jason Barron
|
|
|
|
|
|
|
|
|
|
|
| |
An "Open()"ed RGlyphOutlineIterator needs to be "Close()"d
before destroying the iterator. Otherwise some allocated
memory does not get freed. The RGlyphOutlineIterator
destructor does not close an open iterator.
Task-Number: QTBUG-14408
Done-by: Colleague from Nokia, Oulu
Reviewed-by: Alessandro Portale
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
| |
It is only used by the fontengines. This is one of the steps to make it
easier to make fontengines build outside of QtGui.
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@nokia.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
QFontMetrics::lineWidth() and ::underlinePos() return value 1
regardless of the font size if the size was defined in points
(instead of pixels).
(On Symbian) QFontMetrics::lineWidth() calls
QFontEngine::lineThickness() which uses its fontDef.pixelSize in
order to come up with a suitable line width. If the QFont size
was defined in points, Qt needs to make sure that fontDef.pixelSize
is set accordingly. This patch adds the code to make sure that
QFontEngine::fontDef always has a valid pixel size.
tst_QFontMetrics::lineWidth() was added, wich failed before and
passes after this patch.
Task-Number: QTBUG-13009
Autotest: Passes
Reviewed-By: Eskil
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
An implementation of QFont::lastResortFont() is still(!) missing
in Qt 4.7.0. I only became aware of QTBUG-6921, lately.
This patch...
1) implements QFont::lastResortFont() in qfont_s60.cpp by first
trying to get the lastResortFamily() and then falling back to a
hardcoded font.
2) updates the .def files with one additional entry
3) adds an autotest which verifies that lastResortFamily() does
return a non-empty string. In the firt place, that autotest makes
sure that lastResortFamily() is implemented and exported, so that
something like this issue will not go unnoticed in the next
Qt port.
Task-number: QTBUG-6921
Reviewed-by: Eskil
|
|
|
|
|
|
|
|
| |
QTextControl should no longer inherit the layout direction of
parent widget as its default text direction.
Reviewed-by: Eskil Abrahamsen Blomfeldt
Reviewed-by: Lars Knoll
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
The document layou will call setPen() with the PaintContext's text
color. If this is different from the current painter settings, the pen
will be passed on to the paint engine. The result was that, on X11 using
the raster (or opengl) engine, QStaticText would record the pen as
changed even when it hadn't explicitly been changed by the document.
Task-number: QTBUG-13740
Reviewed-by: Samuel
|
|
|
|
|
| |
Task-number: QT-1212
Reviewed-by: David Boddie
|
|\ |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
While drawText() will use the path fallback for large fonts, and never
hit this problem, QStaticText will draw the large fonts into the glyph
cache. This broke when the freetype (or any other font engine) falls
back to the generic implementation of alphaMapForGlyph() which uses
path drawing. The problem was that alphaMapForGlyph() is not supposed
to contain the bearing of the glyph, only the actual pixels. Since
QFontEngine did not honor this contract, we would sample the wrong
area in the glyph cache to get the glyph image.
Task-number: QTBUG-12540
Reviewed-by: Gunnar
|
|\ \
| |/ |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Originally, QFontEngineMultiWin does not set its cache_cost according to
the regular font engines it refers to, which makes cache management in
QFontCache useless because cache_cost is always 0, and garbage
collecting timerEvent can hardly be triggered. This patch solve part of
the problem by using cache_cost of the first font engine for
QFontEngineMultiWin.
However, if a font engine is loaded by QFontEngineMulti::loadEngine, the
cost is still not counted.
Task-number: QTBUG-12562
Reviewed-by: Eskil Abrahamsen Blomfeldt
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
The assumption that the output glyph array and input glyph array is
of equal size is wrong when unprintable characters are used (and
discarded in getGlyphPositions())
Task-number: QTBUG-12614
Reviewed-by: Jiang Jiang
|
|\ \
| |/ |
|
| |
| |
| |
| |
| |
| | |
Preparations for Application font support on Symbian
Task-Number: QTBUG-6611
|
| |
| |
| |
| |
| |
| | |
Preparations for Application font support on Symbian
Task-Number: QTBUG-6611
|
| |
| |
| |
| |
| |
| | |
Preparations for Application font support on Symbian
Task-Number: QTBUG-6611
|
| |\
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Conflicts:
qmake/Makefile.win32
src/corelib/io/qfsfileengine_win.cpp
src/corelib/kernel/qeventdispatcher_win.cpp
src/gui/dialogs/qfiledialog_win.cpp
src/gui/inputmethod/qcoefepinputcontext_s60.cpp
src/gui/text/qfontdatabase_win.cpp
src/gui/util/qsystemtrayicon_win.cpp
src/script/utils/qscriptdate.cpp
tests/auto/qinputcontext/tst_qinputcontext.cpp
tests/auto/qscriptengine/tst_qscriptengine.cpp
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
This was a security hole that has been there for a while, but the
public awareness have recently rised so the threat is more imminent
now.
The solution is to fix all places where we dynamically load system
libraries. More specifically, we now load all system libraries with
an absolute path that points to a library in the system directory
(usually c:\windows\system32).
We therefore introduce a small class named QSystemLibrary that only loads
libraries located in the system path. This shares some of the API with
QLibrary (in order to make the patch as small as possible).
We don't fix QLibrary due to risk of regressions. In
addition, applications can fix the code that calls QLibrary themselves.
The problem does not apply to Windows CE, since the search order is
documented as not searching in the current directory.
However, it touches some CE-specific code - therefore QSystemLibrary
is sometimes used on WinCE (however, it will just do a normal
LoadLibrary() since its safe anyway).
This change does not affect the testability plugin (it is not clearly
documented where that plugin is located, and the plugin should never
be used in production code anyway)
Loading OpenSSL libraries
The ssl libraries are handled specially, and searched in this order
(we cannot expect them to always be in the system folder):
1. Application path
2. System libraries path
3. Trying all paths inside the PATH environment variable
Task-number: QT-3825
Reviewed-by: Thiago Macieira
Reviewed-by: Peter Hartmann
|
|\ \ \
| |/ / |
|
| |\ \
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
4.7-integration
* '4.7' of scm.dev.nokia.troll.no:qt/oslo-staging-1: (25 commits)
Recognize @, #, $ and ` as word separators
rebuild configure.exe
Fix dependencies so JOM will handle parallellization properly
Symbian: Disable IPv6 for now
Doc: Fixed namespaced Qt build breakage in the model/view tutorial.
Doc: Fixing links on index page and corecting HTML in the template.
Accept empty authority segments in QUrl as different from not-present
Doc: Adds line about non-support for Webkit on Solaris
protect nil dictionary from release.
Fix potential KERN-EXEC 0 on Symbian.
Ukrainian translation updated
Fix remote crash in delivering D-Bus calls with too few arguments
Ensure that OpenGL contexts are attached to an NSView before first paint
Doc: Updating the 3rd party lib used in Qt - including JQuery
Doc: Changed the default URL to avoid a Flash plugin crash on x86-64.
Reduce memory consumption of QtScript/JSC on Symbian
Doc: Updated Supported Platforms page. Finished
New binary of configure.exe with -mp/-no-mp option
Turn Makefile.win32 into batch-mode, enable /MP and PCH
Add option to enable -MP compile option for MSVC
...
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
The behavior of Qt with these characters was different than other
toolkits, which annoys some people.
Task-number: QTCREATORBUG-2241
Reviewed-by: mae
|
| |/ /
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
The text option property of QStaticText was not copied in the copy
constructor, so when the text was detached, the property would be
reset to the default.
Task-number: QTBUG-13368
Reviewed-by: Gunnar
|
|\ \ \
| |/ / |
|
| |\ \
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
4.7-integration
* '4.7' of scm.dev.nokia.troll.no:qt/qt-s60-public:
Symbian: return better default font for SansSerif style hint
Removing a left over #if 1..#endif construct
Fixed a few warnings.
Fixed a bug where passwords would not be committed when confirming.
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
The latest QtWebkit will use QFont::defaultFamily() with style
hints to ask for the appropriate default fonts on a system.
This patch makes sure thath "Nokia Sans S60" and "Series 60 Sans"
are prioritized for QFont::SansSerif, if they are present.
Task-Number: QTBUG-12611
|
| | | | |
|
| | | |
| | | |
| | | |
| | | | |
Reviewed-by: Liang Qi
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Mirrored character subsitution should be used in right-to-left text
direction unless the font is a symbol font. This patch will keep
this behavior consistent between FreeType, QPF and S60 font engines.
For Mac font engines, the shaping process is delegated to Core Text
or ATSUI, so we don't do mirrored char handling by ourselves.
Task-number: QTBUG-3852
Reviewed-by: Lars Knoll
|
| |/ /
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
For fonts that have an AppleRoman name table, *isSymbolFont failed to
return correct value even if they have a symbol table. This patch
corrected this behavior by using symbolTable variable to detect that
instead of checking if score == Symbol.
Also prefer symbol table over AppleRoman table to make generic CMap
decoding consistent with QFontEngineFT (which will use the symbol table
whenever its available).
Task-number: QTBUG-3852
Reviewed-by: Lars Knoll
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
FT_GlyphSlot_Embolden was introduced since FreeType 2.1.10 and we
started using it since 4.7. Some systems (including RHEL/CentOS 4) only
provide earlier versions will get a compiling error if they use
-system-freetype to build Qt. This patch fix it by providing a graceful
degradation when the function is not available.
Task-number: QTBUG-13274
Reviewed-by: Eskil
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
... 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
|
|\ \ \
| |/ /
|/| | |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
QML signal handler.
Reviewed by: David Boddie
Tasks:QTBUG-13243, QTBUG-11779
|
| | |
| | |
| | |
| | |
| | | |
Tasks: QTBUG-13271, QTBUG-13212, QTBUG-12321
Reviewer: David Boddie
|
|/ /
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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
|
|\ \ |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
LayoutDirectionChange should no longer affect text direction in 4.7, by
ignoring this event in QTextControl, we make the behavior consistent
with QLineEdit.
Reviewed-by: Lars Knoll
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
This fixes a regression against 4.6 where setting the
default layout direction for rich text got ignored
Task-number: QT-3566
Reviewed-by: Jiang Jiang
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Neither of the Mac font engines have implemented minimum right bearing,
which will cause them to return 0 for the minimum value. This will
cause the right bearing to never be calculated prior to breaking
and thus never be a part of the breaking width. Since actually
implementing the functions is too time consuming for right now, we
will disable the optimization for the time being.
Reviewed-by: Olivier
|