| Commit message (Collapse) | Author | Age | Files | Lines |
|\
| |
| |
| |
| |
| | |
Conflicts:
configure
src/network/bearer/bearer.pri
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
QTBUG-6611 implemented the long awaited app font support on Symbian. One
of the problems with the underlying Symbian Api for font loading is that
all fonts go into one system wide font store on fbserv. All fonts are
visible to and accessible by every application. And there is no way to
find out if a font is an app font and whose process' app font it is. If
a font with a certain family name is already loaded on fbserv, no other
application can load its font with the same family name. If two
applications access the same font, bad things can happen (details:
QTBUG-16514).
This patch works around naming collisions on the fbserv. It also
prevents Qt applications from using other Qt applications' app fonts. It
does so by "marking" the name of the temporary ttf file before the file
gets loaded by fbserv. All font name strings in the font's 'name' table
get a marker string appended. The marker is composed by a "Q", the uid3,
and on Symbian^3|PR1&below the pid. The marker length is four characters.
When the QFontDatabase is populated, all own app font names are cleand
from the marker, so that the Qt app can use the original font name. Other
applications' app fonts are detected and filtered out of the own font
database.
Symbian's font Api supports only 24 characters as names for font
families. The name marker reduces the effective characters to 20. The
reduced name length is documented for
QFontDatabase::addApplication[FontFromData] as a note.
Since the app font feature is much safer now, it got re-enabled for
Symbian^1 and below by reverting
25ac59fcf1bb03c9af9a2c967218c96c7c77361a .
Task-number: QTBUG-16514
|
|\ \
| |/
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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
|
|\ \
| |/
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Conflicts:
configure
src/gui/graphicsview/qgraphicslayout.cpp
src/gui/text/qfontengine_s60.cpp
src/opengl/gl2paintengineex/qpaintengineex_opengl2.cpp
src/opengl/qwindowsurface_gl.cpp
src/s60installs/bwins/QtGuiu.def
src/s60installs/eabi/QtGuiu.def
tests/auto/qsortfilterproxymodel/tst_qsortfilterproxymodel.cpp
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
The Symbian Font Table API is a feature from (the former)
Symbian^4 which will be backported into Symbian^3 in a
random minor OS version. In order to keep Qt source and binary
compatible between these minor versions, we cannot decide at
compile time whether or not to use the new Font Table API.
This patch changes many "#ifdef Q_SYMBIAN_HAS_FONTTABLE_API"
into "if (symbianFontTableApiAvailable())". The Font Table
feature is detected at runtime. Currently, CFeatureDiscovery
is not used, because at the time of writing, that feature flag
test would give false positives or false negatives. Instead,
CFont::ExtendedFunction() is called with KFontGetFontTable to
see if the return value is KErrNone, which indicates that the
feature is available. The avalibility information gets cached,
so the hack happens only once per application run.
The font table Api feature comes with helper classes such as
"RFontTable" and "TGetFontTableParam". But we cannot use those,
because we want to stay source and binary compatible across the
Symbian(^3) versions without the Font table API and those with.
So, in Qt, RFontTable is simply not used and TGetFontTableParam
is replicated as "QSymbianTGetFontTableParam". Same for
KFontGetFontTable, KFontReleaseFontTable and later also
FfFontTable.
This patch has been looked at by colleagues, who verified the
overall #ifdef to if() conversion, but did not feel entitled to
give their official Reviewed-By for an obscure topic like Qt
font support on Symbian. (It sucks to be the only creature in
this universe who -kind of- knows how Qt text handling and
Symbian text handling interact)
Task-Number: QTBUG-15515
|
|\ \
| |/
| |
| |
| |
| |
| |
| | |
Conflicts:
src/gui/painting/qpaintengine_raster.cpp
tests/auto/declarative/qdeclarativetext/data/alignments_cb.png
tests/auto/declarative/qdeclarativetext/data/alignments_cc.png
tests/auto/declarative/qdeclarativetext/data/alignments_ct.png
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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
|
|\ \
| |/
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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
|
| |
| |
| |
| | |
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
|
|\ \
| |/
| |
| |
| |
| |
| | |
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
|
|/
|
|
|
|
|
|
|
|
|
| |
With the macro version we get proper debug output (with __FILE__,
__LINE__ annotations) when compiling with -no-exceptions and
!QT_NO_DEBUG.
All changes in this patch affect assignment to local variables, where
the order of assignment versus actual pointer check is not important.
Reviewed-by: Olivier Goffart
|
|\
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Conflicts:
src/3rdparty/webkit/VERSION
src/3rdparty/webkit/WebKit/qt/ChangeLog
src/gui/itemviews/qlistview.cpp
tests/auto/qlistview/tst_qlistview.cpp
tests/auto/qnetworkreply/test/test.pro
tests/auto/qsocks5socketengine/qsocks5socketengine.pro
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Symbian's CFont::FontMaxAscent() returns in some cases an
incorrect value of 0. That usually happens (for some font sizes)
if a stroke based font is the main system font.
We were able to reproduce it on some S60 3.2 devices with a
chinese language pack installed.
This patch will test if CFont::FontMaxAscent() returns 0. And if
so, it alculates an ascent taht makes more sense.
Task-number: QTBUG-8013
Reviewed-by: Liang Qi
|
| |
| |
| |
| |
| |
| |
| |
| | |
This is (supposedly) more efficient as the compiler can optimise it to a
builtin, per Thiago.
Merge-request: 2430
Reviewed-by: Andreas Kling <andreas.kling@nokia.com>
|
| |
| |
| |
| |
| |
| | |
QS60Data::screenDevice() has moved from being process global to being
thread local, therefore it must be accessed through the S60 macro
that returns the thread-local data.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Up until Symbian^4, the Symbian font Api does not provide access to the
vector data of glyphs. In order to make QPainterPath::addText() and
transformed text rendering work, Qt falls back to a workaound: Tracing
the bitmap of a rasterized glyph. That is neither performant nor is the
result of good quality.
Symbian^4 will add Api that returns glyph outlines encoded as SVG paths.
The code in this commit essentially parses the SVG path and returns a
QPainterPath. The parsing part took some ideas from QSvg, and is
implemented in a very reduced way.
Task-number: QT-809
Reviewed-by: Aleksandar Sasha Babic
|
|/
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Qt requires raw access to the font tables of used fonts, for a
variety of reasons.
Until Symbian^4, it is/was not possible to access the font tables of
the fonts which are stored in Symbians Font and Bitmap Server.
That's why Qt for Symbian's FontDataBase created an own TFontStore
where it loaded in all installed fonts. While accessing the font
tables via the own TFontStore it still uses the rasterization and
metrics from the FBS, which has public Api for those things.
However, loading all fonts in the own TFontStore for each Qt Gui
process slows down the program startup. Symbian's future font table
setter Api is very welcome and this implemets it's usage.
This patch lets Qt use the new font API on Symbain^4. The font
tables are retrieved via RFontTable.
Task-number: QT-2746
Reviewed-by: Jason Barron
|
|
|
|
|
|
|
| |
MOpenFontShapingExtension was not used. Cleaning up and reducing delta
between branches
Reviewed-by: Aleksandar Sasha Babic
|
|
|
|
|
|
|
|
| |
That reduces the delta between 4.6/4.7 and a patch that I am pre-
paring for Symbian^4. The renaming will help me a lot when main-
taining font issues on 4.6 and 4.7 and different Symbian versions.
Reviewed-by: trustme
|
|
|
|
| |
Reviewed-by: lars
|
|
|
|
|
|
|
|
|
|
|
| |
For RTL text rendering (Arabic, Hebrew), we need certain characters to
be mirrored, such as brackets.
This patch fixes QFontEngineS60::stringToCMap to use
QChar::mirroredChar for RTL text.
Task-number: QT-3299
Reviewed-by: lars
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
That function was not yet implementing. Its absense caused some
Harfbuzz based shaping not to happen.
See Robert DeWolf's comment on task QTBUG-5857
Since QFontEngineS60 is private implementation and generally not
exported, no symbols need to be added to the .def files for this patch.
Task-number: QTBUG-5857
Reviewed-by: trustme
|
|
|
|
| |
Reviewed-By: Alessandro Portale
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Text rendering in Qt for Symbian looks very bad on a scaled QPainter.
Instead of simply using a Symbian font with the right size it followed
the code path that is usually used for "tricky transformation":
Use the glyph outlines and rasterize them in Qt as QPainterPath.
That's slow and especially ugly on Symbian since we do not (yet)
get the glyph outlines from Symbian.
This patch adds QFontEngineS60::setFontScale() so that QFontEngineS60
has one additional native font handle with the scaled size. The raster
paint engine will call that function in case that the painter is scaled.
Since we already have QFontEngineS60 specific code in the raster paint
engine, this patch did not have to add #ifdefs.
http://bugreports.qt.nokia.com/browse/QTBUG-7614
Task-number: QTBUG-7614
Reviewed-by: Jason Barron
modified: gui/painting/qpaintengine_raster.cpp
modified: gui/text/qfontengine_s60.cpp
modified: gui/text/qfontengine_s60_p.h
|
|\
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
4.6-integration
* '4.6' of scm.dev.nokia.troll.no:qt/oslo-staging-1: (73 commits)
doc: update snippets for QtScript function expressions
Prevent a crash when creating an inputContext from the QApplication dtor.
QNAM HTTP Code: Cache socket state inside ensureConnection()
tst_qhttpnetworkconnection: Test also HEAD in some tests
tst_qhttpnetworkconnection: Relax condition in getMultipleWithPriorities
QNAM HTTP Code: When starting new request, prefer connected sockets.
typo fix
Added the 'framecapture' WebKit example to the default build.
Fix code example
fix typo in qreadwritelock's documentation
QNAM HTTP: Don't call d_func() so often
QNAM HTTP: Fix readBuffer maximum size.
QNAM HTTP: Optimize eatWhitespace()
QNAM HTTP: Check if socket already tries to connect.
network internals: fix build on S60
[syncqt] Make -separate-module work with WebKit's directory structure
doc: Corrected explanation of when append() does nothing.
doc: Added clarification about allocating space for the 0 terminator.
Add a way to access the normalised URL in QUrl.
[syncqt] Make it possible to synchronize headers for a separate module
...
|
| |
| |
| |
| | |
Reviewed-by: Trust Me
|
|/
|
|
|
|
|
|
|
|
| |
times, taking up to 1ms each call.
Use S60->ScreenDevice() to get/release fonts instead of create a new
screen device each time.
Task-number: QTBUG-6408
Reviewed-by: Jason Barron
|
|
|
|
|
|
| |
The word 'module' was missing.
Reviewed-By: TrustMe
|
|
|
|
|
|
|
|
|
| |
This is done to reduce heap consumption and to give
a possibility to share bitmaps across process. QPixmap
maps to Symbian CFbsBitmap which is stored in Symbian
font and bitmap server.
Reviewed-by: Jason Barron
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
There is one actual bug fix, checking for null pointer return.
The exception safety test code now initialises the fonts system.
The S60 fonts system does not survive OOM testing
without this.
Otherwise some duplicate tests are removed and code tidied up.
Reviewed-by: Liang Qi
Reviewed-by: Harald Fernengel
Reviewed-by: Alessandro Portale
|
|
|
|
| |
Reviewed-by: Trust Me
|
|
|
|
| |
Reviewed-by: Trust Me
|
|
|
|
|
|
|
| |
CFontStore deletion crashes if there are any open fonts in it.
These are now all deleted before the store is deleted.
Reviewed-by: aportale
|
|
|
|
| |
RevBy: Trust me
|
|
|
|
| |
due to http://qt-reviews.europe.nokia.com/r/67/
|
|
|
|
| |
RevBy: Trust me
|
|
|
|
| |
RevBy: Trust me
|
|
|
|
|
| |
Contains some smaller fixes and renaming of macros. Looks big,
but isn't scary at all ;)
|
|
|
|
| |
This saves memory and prevents warnings from RVCT.
|
|\ |
|
| | |
|
|/
|
|
| |
bounding rect, before.
|
|
|
|
|
|
|
| |
The OpenVG paint engine uses this value as the escapement of the glyph
and setting this to the vertical advance results in the text being laid
out in a declining staircase fashion. All other font engines seem to
set the vertical advance to zero so do the same here as well.
|