summaryrefslogtreecommitdiffstats
path: root/src/gui/text
Commit message (Collapse)AuthorAgeFilesLines
...
* | Merge "Merge remote-tracking branch 'origin/stable' into dev" into ↵Sergio Ahumada2013-09-024-53/+310
|\ \ | | | | | | | | | refs/staging/dev
| * | Merge remote-tracking branch 'origin/stable' into devFrederik Gladhorn2013-08-274-53/+310
| |\| | | | | | | | | | | | | | | | | | | Conflicts: examples/widgets/doc/src/addressbook-fr.qdoc Change-Id: Id1196e8e0c6445f1616c3f29234c974d809f8e48
| | * Use custom class for storing distance fields instead of QImage.Yoann Lopes2013-08-272-29/+306
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Distance fields are stored using a one-byte alpha component per pixel, a format that QImage doesn't currently support. The Indexed8 format was used instead, limiting what could be done with the QImage. This patch introduces a new private class, QDistanceField, with a similar API to QImage and using the Alpha8 pixel format. Unlike QImage which aligns scanlines on a 4-byte boundary, QDistanceField tightly packs scanlines together. Task-number: QTBUG-30908 Task-number: QTBUG-32861 Change-Id: Ic273259ea07dfbd2b81a6358c0ca11a2330eb749 Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
| | * Switch back to thumb for android armeabi.BogDan Vatra2013-08-221-0/+4
| | | | | | | | | | | | | | | | | | | | | | | | Add workaround for gcc 4.8 compile bug. Change-Id: Ie7a81ec25a79764989bbd9eb43dd5a8fbf442dfc Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com> Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
| | * Don't use qt_mac_get_fixed_pitch() to resolve fixed pitch fonts on OSXTor Arne Vestbø2013-08-211-24/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The call was resulting in inifinite recursion on OSX 10.9 when Qt was built against the 10.7 SDK, as qt_mac_get_fixed_pitch uses QFontMetrics to resolve the pitch, and we would end up in the font resolver again when asking for the metrics. The CoreText font-database already takes care of resolving whether or not a font family is fixed-pitch, so the code is likely a leftover from the ATSUI-days, and can be removed. Task-number: QTBUG-31803 Change-Id: I37c90fa637927eb4adc16c0fd556c4c46c456034 Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
* | | Fix warning about class/struct mismatchTobias Hunger2013-08-301-2/+3
|/ / | | | | | | | | | | | | Clang does not like this:-) Change-Id: I9c65025d99d31b5ef1314dadf90eef02d23eacb0 Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
* | Get rid of HB dependency in FT font engineKonstantin Ritt2013-08-205-61/+42
| | | | | | | | | | | | | | | | | | Instead of loading HB face in QFreetypeFace::getFace(), defer allocation until the first FT font engine for that face gets initialized; then, QFreetypeFace "reparents" and manages the loaded HB face. Change-Id: I2ac8ead4c6ed25d341af9c9cf0c34dfb979f8390 Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
* | Fix possible crash due to integer overflowKonstantin Ritt2013-08-151-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | QFontEngineMulti::stringToCMap() stores the fallback engine index in a glyph index'es high byte, which means the maximum fallback engine index it can store is 255, so limit the number of tries we're doing to this value. Otherwise we could end up with `fontEngineMulti->engine(glyph >> 24) == 0` after successful stringToCMap() call. Task-number: QTBUG-30412 Change-Id: I06907a39186fd207f3ce4b732a1a54e615744082 Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* | Don't allocate QGlyphLayout data, when possibleKonstantin Ritt2013-08-142-61/+37
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | ...and operate directly on a passed array pointers, without having to copy the input and output data. Calling QFontEngine:: stringToCMap()/recalcAdvances() with partially-constructed QGlyphLayout is completely safe iff `glyphs` and `advances_?` members were initialized. Also get rid of QGlyphLayoutInstance that was used just in a single place and never was really needed. Change-Id: I48fab246fd69fc869f948220a553c3574d93c772 Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* | API-cleanup: Add QPlatformFontDatabase::registerAliasToFontFamily().Friedemann Kleint2013-07-163-1/+16
| | | | | | | | | | | | | | | | Unexport free function qt_registerAliasToFontFamily() and Make it a static member of QPlatformFontDatabase instead. Change-Id: I1df49a8e37a24b3961f92288d67b6f1108a7d520 Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
* | Merge remote-tracking branch 'origin/stable' into devFrederik Gladhorn2013-07-152-1/+14
|\| | | | | | | Change-Id: I0218a1f08b89f2d56757ab35eec06799d2a1492f
| * Windows font database: Resolve aliases for extra fonts.Friedemann Kleint2013-07-112-1/+14
| | | | | | | | | | | | | | | | | | Ensure QFontDataBase::hasFamily() deals with aliases. Task-number: QTBUG-31689 Change-Id: Ia59bfcb93362ac9343c6d30dab1091a4db482dfa Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
* | Merge branch 'stable' into devSergio Ahumada2013-07-112-0/+10
|\| | | | | | | | | | | | | | | | | | | Conflicts: qmake/generators/mac/pbuilder_pbx.cpp src/corelib/json/qjsonwriter.cpp src/corelib/kernel/qeventdispatcher_blackberry.cpp src/plugins/platforms/cocoa/qcocoacolordialoghelper.mm Change-Id: I24df576c4cbd18fa51b03122f71e32bb83b9028f
| * Restore smooth-scaled drawing of 0.5x-2.0x scaled glyphs in the GL engineTor Arne Vestbø2013-07-082-0/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Commit b5922c89ba942 (Add support for retina glyph-based text drawing in the GL engine), and commit 155a20628b91 (Use QPaintEngineEx to decide if font is too big for using the glyph cache) together changed the behavior of drawing scaled cached glyphs in the GL engine, producing blocky text drawing when using the FreeType font engine. Whereas before we would cache all glyphs without any transform, and let the paint engine take care of the transform, commit b5922c added support for a scaled GL glyph cache, resulting in a 2x cache, drawn at 1x for example. The problem was that the FreeType engine claimed to support producing glyphs at 2x, but did that using the QFontEngine baseclass implementations, which use a simple fast-transform to scale up the glyphs. The result was a 2x cache with horrible looking glyphs. The first step in fixing this issue was to have the FreeType engine claim to only support translations. This would then make the paint engine choose path-based drawing for all scaled text, which is slow. To restore the optimization that we would draw 0.5x-2.0x scaled text using a smooth-scale in the GL engine (which was removed in 155a206), we then needed to extend shouldDrawCachedGlyphs() and add a special condition for this, coupled with a bit of logic in drawCachedGlyphs() that ensures we don't propagate the painter scale to the glyph cache if the engine is not able to produce scaled glyphs for it. This means we get the old behavior of the GL engine doing a smooth scale of the 1x glyph in the cache. Finally, since the raster engine also checks if the font engine supports the current transform, but for FreeType then ends up in a separate code path when actually drawing the glyphs (as the FreeType font engine supports internal glyph caching), we need to add a corresponding check for hasInternalCaching() in the shouldDrawCachedGlyphs() function, now that the FreeType engine only reports that it supports translations. Change-Id: Id03de896dec5f29535b281fb235332ef018045d8 Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
* | Add API to let applications integrate with the system fontsAleix Pol2013-07-052-0/+59
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch does 2 things mainly: - Adds a QPlatformTheme font type for fixed fonts. It's important because some OS provide specific monospaced fonts and we want to let our applications to use the preferred fonts by default. - Adds a new method and enum to QFontDatabase that expose the font types that applications might need, so that they can make the applications use the specific fonts that the system recommends. This data was already available within Qt through the QPlatformTheme, but it was not possible to use this data by Qt users. This new method exposes such data. Change-Id: Ic194c1e4bc07a70640672afd82ba756b87606985 Reviewed-by: Jerome Pasion <jerome.pasion@digia.com> Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com> Reviewed-by: David Faure (KDE) <faure@kde.org>
* | Merge remote-tracking branch 'origin/stable' into devFrederik Gladhorn2013-06-122-3/+16
|\| | | | | | | | | | | | | Conflicts: src/plugins/platforms/cocoa/qcocoamenubar.mm Change-Id: I4a699fc8a7f30b2af9de8e496c3d5f027b7495bb
| * Merge remote-tracking branch 'origin/release' into stableFrederik Gladhorn2013-06-102-3/+16
| |\ | | | | | | | | | Change-Id: I89c251999ae2a82522b40471fd13f2e06b00ece8
| | * RecalcAdvances and DoKerning should agree on when to use design metricsAllan Sandfeld Jensen2013-06-072-3/+16
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | QFontEngineFT::recalcAdvances uses design metrics if hinting is disabled or slight. QFontEngine::doKerning only follows the QFontEngine::DesignMetrics flag. This means in some instances the advances will be calculated in subpixels but kerned in full pixels. This patch makes QFontEngineFT decide if it should request design metrics from QFontEngine::doKerning or not. Change-Id: Ia0236efde2d7269623f690a6074afbe26e07c458 Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com> Reviewed-by: Pierre Rossi <pierre.rossi@gmail.com>
* | | Merge remote-tracking branch 'origin/stable' into devFrederik Gladhorn2013-06-042-1/+11
|\| | | | | | | | | | | | | | | | | | | | | | | Conflicts: src/corelib/global/qglobal.h src/plugins/platforms/cocoa/qnsview.mm Change-Id: I6fe345df5c417cb7a55a3f91285d9b47a22c04fa
| * | Make qtbase compile with QT_NO_TEMPORARYFILETasuku Suzuki2013-06-042-1/+11
| |/ | | | | | | | | | | | | | | Change-Id: Ida2f59bb245ef70bf65f7e8944c4c315d5bc2f81 Reviewed-by: David Faure (KDE) <faure@kde.org> Reviewed-by: Jørgen Lind <jorgen.lind@digia.com> Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com> Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
* | Merge remote-tracking branch 'origin/stable' into devFrederik Gladhorn2013-05-235-12/+26
|\| | | | | | | | | | | | | | | | | | | | | Conflicts: src/corelib/io/qdatastream.cpp src/corelib/io/qdatastream.h src/corelib/json/qjsonwriter.cpp src/plugins/platforms/cocoa/qcocoawindow.mm src/plugins/platforms/xcb/qxcbkeyboard.cpp Change-Id: I46fef1455f5a9f2ce1ec394a3c65881093c51b62
| * Fix clipping of QTextList decorators.Leonard Lee2013-05-231-1/+14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | List decorators may be clipped if you set a large font size and/or small indent for a QTextList. This fix is to prevent clipping by moving list decorators and items to left (or to right in case of right to left layouts) so that the list decorator is always painted inside the layout. This commit fixes painting related issue, so auto test is not needed. The manual test program can be used for verification purposes. Task-number: QTBUG-5111 Change-Id: I7fdd92399445d33fe9eaf525a05fe5cd860b57c6 Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com> Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
| * Clean up old PostScript printing codeSze Howe Koh2013-05-123-4/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | PostScript support was removed back in 2011: 34f712e79e97b757b4426e1ffa09e065c9e379a1 - The QPSPrint* classes are gone - The QPrinter::OutputFormat enum only has NativeFormat and PdfFormat constants - QPaintEngine::PostScript is unused now Change-Id: I27d595b92341f41e14bd1e4fd860eac6826d7890 Reviewed-by: Lars Knoll <lars.knoll@digia.com>
| * Doc: Updated the addtional information about elide marksVenu2013-05-101-7/+12
| | | | | | | | | | | | | | | | | | Added the same information for QFontMetricsF::elidedText. Task-number: QTBUG-30865 Change-Id: I57791de21f5721d7a505c3d13f450e5ec6cd2730 Reviewed-by: Jerome Pasion <jerome.pasion@digia.com> Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
* | Merge remote-tracking branch 'origin/stable' into devFrederik Gladhorn2013-04-223-25/+37
|\| | | | | | | Change-Id: I059725e3b7d7ffd5a16a0931e6c17200917172b5
| * QFontEngine: Fix cache_cost might be not initializedKonstantin Ritt2013-04-142-0/+2
| | | | | | | | | | | | Change-Id: I4cf4de5797e6623a71593e8f382496188e3abac8 Reviewed-by: jian liang <jianliang79@gmail.com> Reviewed-by: Lars Knoll <lars.knoll@digia.com>
| * Fix integer overflow for very large fontsKonstantin Ritt2013-04-121-3/+7
| | | | | | | | | | | | | | | | This caused glitches up to unreadable text with i.e. pixelSize 256 and stretch factor 4x /* ((256*4)<<16)<<6 */. Change-Id: Ib6a038a043d820a94bd2019c50390a815a2a8277 Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
| * QFontCache: Make clear() really clear/free cached data it maintainsKonstantin Ritt2013-04-121-22/+28
| | | | | | | | | | | | | | | | | | QFontCache::clear() now frees everything it keeps and resets the cache costs. Change-Id: I23ac2cab5c7c7d70db03f048b6fde151a18f92e1 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com> Reviewed-by: jian liang <jianliang79@gmail.com> Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* | Merge remote-tracking branch 'origin/stable' into devFrederik Gladhorn2013-04-125-27/+27
|\| | | | | | | Change-Id: Iee73c93067c5822d8dd51a8692e6da9df4ba49f5
| * Fix leaking of QFontEngineDataKonstantin Ritt2013-04-123-11/+18
| | | | | | | | | | | | | | | | | | | | | | | | | | QFontCache now references QFontEngineData-s it maintains, so that QFont instances not freed prior to calling ~QFontCache() would destroy QFontEngineData on their own. Task-number: QTBUG-25434 Change-Id: Ia7679d64de436841f09ac7be62ceb570e50cce5b Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com> Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com> Reviewed-by: jian liang <jianliang79@gmail.com>
| * QFreetypeFace: Fix getFace() uses UTF-8 paths on non UTF-8 localesKonstantin Ritt2013-04-111-1/+1
| | | | | | | | | | | | | | | | | | | | QFontEngine::FaceId::filename is intended to be local8Bit-encoded but QFreetypeFace::getFace() always treats it like UTF-8-encoded. Also replace explicit (to|from)Local8Bit and toLatin FaceId::filename conversions with QFile::(en|de)codeName, where appropriate. Change-Id: Ic7beabf0a160f2f02f1667bcb8e6067adaba1c16 Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
| * Fix QFontconfigDatabase unable to fallback to a localized familyKonstantin Ritt2013-04-112-15/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When populating the font database, FcPatternGetString(FC_FAMILY) gets a localized font family name; but, in fallbacksForFamily, it gets a non-localized font family name, so it unable to find the proper font to fallback. Simply register all family name variants as aliases to localized name and make sure they are checked when getting fallback families. Task-number: QTBUG-28806 Task-number: QTBUG-30415 Change-Id: I71c03ae9b51a28736c2576f3442f1bbdb3497c09 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com> Reviewed-by: jian liang <jianliang79@gmail.com> Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
* | Merge remote-tracking branch 'origin/stable' into devFrederik Gladhorn2013-04-032-4/+2
|\| | | | | | | Change-Id: Id96d4076610366a7cc66c8d8382ca25c33eaa71d
| * QTextCharFormat::setFont(): Preserve the font hinting preferenceKonstantin Ritt2013-04-021-0/+1
| | | | | | | | | | | | | | Task-number: QTBUG-22653 Change-Id: I9153486ff7793ba4427b64459896ab1328d51548 Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
| * Fix reporting writing systems for non-TrueType fontsKonstantin Ritt2013-04-011-4/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | According to EnumFontFamExProc docs: > The ENUMLOGFONTEX structure includes the localized name > of the script (character set). lfCharSet ENUMLOGFONT's member must be used instead of comparing these names to non-localized ones. Also, when the font supports more than a single charset, EnumFontFamExProc callback is called for it once per charset; thus, we shouldn't "unsupport" writing systems in a subsequent call. Task-number: QTBUG-30448 Change-Id: I58fcf32958490cf5a3e873db8335e71a39a9c518 Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* | Improve QTextEngine::elidedText() in TextShowMnemonic modeKonstantin Ritt2013-04-021-4/+5
| | | | | | | | | | | | | | | | | | | | Check if the sequence is really a mnemonic and emulate grapheme cluster if so, rather than blindly reset the next character's attributes. This covers cases like "& ", "&<U+034F>", etc. Change-Id: Ibb063a2d258aff6455b9bb41bbe1a58a5036d0d6 Reviewed-by: Lars Knoll <lars.knoll@digia.com> Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
* | Improve shapeTextWithHarfbuzz() logic a bitKonstantin Ritt2013-04-012-85/+63
| | | | | | | | | | | | | | | | | | | | | | * Move non-specific code to shapeText(); * Make shapeTextWithHarfbuzz() re-use variables obtained in shapeText(); * Make shapeTextWithHarfbuzz() return amount of shaped glyphs instead of nothing. Right now, this is not about error reporting, since failed shaping causes assertion/crash in most cases. Change-Id: I2e0c91b9e5de8b19e0bc22ca60add1b1fc6ebdb0 Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* | Replace HB_JustificationClass with QGlyphAttributes::JustificationClassKonstantin Ritt2013-04-012-39/+59
|/ | | | | | | | | | Also move stringToGlyphs() helper closer to shapeTextWithHarfbuzz(), where it is only used. As of now, Harfbuzz-old dependency in QTextEngine can be disabled by simply if-defing a single piece of code. Change-Id: Ic6f7d9b64bf9201d7540c58db46e20f28de8120d Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* Fix font stretching issueKonstantin Ritt2013-03-261-2/+2
| | | | | | | | We're treating fontDef.pixelSize as a box height everywhere but in harfbuzzFont initialization code the logic was opposite. Change-Id: I4eecf7861a6084c7f2dbe1df85a71f2e251da845 Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
* Fix handling of 0x00AD code with symbol fonts (Win/QPA/QPF/fallback)Konstantin Ritt2013-03-261-0/+1
| | | | | | | | | ...by updating HB_Face::isSymbolFont value to make HB know that the font is a symbol font. U+00AD is a Unicode soft hyphen character, which shouldn't be threated like a default ignorable (invisible) when 0x00AD occurred in a symbol font. Change-Id: Idd4760aded644f7f11a1a8d3c03c348abc69a3e4 Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
* Recommit b7b858595e6e2d8dcc9debeb45eb8b9b294b9be6Eskil Abrahamsen Blomfeldt2013-03-211-8/+0
| | | | | | | | This was accidentally removed as part of the merge from dev. Change-Id: I102ff0d67a136b0dbe467d83edccf02880536d7f Reviewed-by: Liang Qi <liang.qi@digia.com>
* Merge branch 'dev' into stableOswald Buddenhagen2013-03-2059-1065/+766
|\ | | | | | | | | | | | | | | | | | | | | | | This starts Qt 5.1 release cycle Conflicts: src/gui/text/qfontdatabase.cpp src/gui/text/qharfbuzz_copy_p.h src/widgets/kernel/qapplication.cpp src/widgets/kernel/qcoreapplication.cpp Change-Id: I72fbf83ab3c2206aeea1b089428b0fc2a89bd62b
| * Fix the font engines leakingKonstantin Ritt2013-03-206-111/+124
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 1. when there were some engines with ref > 1 in the cache, prior to calling QFontDatabase::{add,remove}ApplicationFont()/removeAllApplicationFonts() (QFontCache::clear() has never decreased engine's cache_count); 2. when the QFontEngineData's engine is not in cache i.e. the Box or Test font engine (~QFontEngineData() didn't free engines it keeps). Instead of using the font engine's (external) "cache_count" counter, QFontCache now references a given font engine every time it is inserted to the cache and dereferences exactly that number of times in clear(). Change-Id: I87677ebd24c1f4a81a53526f2e726e596b043c61 Reviewed-by: Lars Knoll <lars.knoll@digia.com>
| * Move QTextEngine implementation details from QTextLayoutKonstantin Ritt2013-03-193-86/+95
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | As of now, we'll have everything related to the additional formats handling just in a single place. Make specialData private to prevent accessing it from outside. This helped in tracking-down several related issues: - in format(const QScriptItem *), the resolvedFormatIndices can not be empty at that point, so the code path is dead; - in resolveAdditionalFormats(), testing if formats has not been indexed yet is not needed since they are indexed just in the setter; - in useRawFont mode, hasFormats() didn't check if QTextEngine really has some formats, which potentially leads to formatting artifacts. Change-Id: Id4b912888fd5a1fa83f01007170134b6386e2879 Reviewed-by: Lars Knoll <lars.knoll@digia.com> Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
| * Make sure that we #include qconfig.h before testing for features.Thiago Macieira2013-03-193-0/+8
| | | | | | | | | | | | | | | | | | | | | | This is mandatory in public headers (qiodevice.h, qopengl*, etc.), but it's a good idea even in private headers, in case someone includes that header first somewhere. In particular, all platformsupport API is private. Change-Id: If287baa5d9ed14e93c1666efa0e6332c4c1cd9a4 Reviewed-by: Lars Knoll <lars.knoll@digia.com> Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
| * Perform kerning in QRawFont::advancesForGlyphIndexesAllan Sandfeld Jensen2013-03-192-7/+74
| | | | | | | | | | | | | | | | | | | | | | | | Being able to calculate advances for series of glyphs include kerning is important to be able get kerning on QGlyphRun. Note this kerning is only truetype kerning, since opentype kerning is performed during shaping. Change-Id: I8d7458066431cbdce699647056fd0d7a76b20aa2 Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com> Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
| * Whitespace cleanup: remove trailing whitespaceAxel Waggershauser2013-03-1612-35/+35
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Remove all trailing whitespace from the following list of files: *.cpp *.h *.conf *.qdoc *.pro *.pri *.mm *.rc *.pl *.qps *.xpm *.txt *README excluding 3rdparty, test-data and auto generated code. Note A): the only non 3rdparty c++-files that still have trailing whitespace after this change are: * src/corelib/codecs/cp949codetbl_p.h * src/corelib/codecs/qjpunicode.cpp * src/corelib/codecs/qbig5codec.cpp * src/corelib/xml/qxmlstream_p.h * src/tools/qdoc/qmlparser/qqmljsgrammar.cpp * src/tools/uic/ui4.cpp * tests/auto/other/qtokenautomaton/tokenizers/* * tests/benchmarks/corelib/tools/qstring/data.cpp * util/lexgen/tokenizer.cpp Note B): in about 30 files some overlapping 'leading tab' and 'TAB character in non-leading whitespace' issues have been fixed to make the sanity bot happy. Plus some general ws-fixes here and there as asked for during review. Change-Id: Ia713113c34d82442d6ce4d93d8b1cf545075d11d Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
| * QTextEngine capitalization doesn't work with QRawFontAllan Sandfeld Jensen2013-03-141-2/+3
| | | | | | | | | | | | | | | | | | The capitalization settings is attempted read via specialData->addFormats, but the QTextCharFormat there is reset when added, and should instead be accessed through specialData->addFormatIndices. Change-Id: I190c419f07c3f7e803ca1d44059e8f538216b9ab Reviewed-by: Pierre Rossi <pierre.rossi@gmail.com>
| * Move Unicode script itemization code from text engine to UnicodeToolsKonstantin Ritt2013-03-141-6/+10
| | | | | | | | | | | | | | | | | | | | | | This is still the same trivial implementation with the only difference in that that it properly handles surrogate pairs and combining marks. This temporarily makes QTextEngine::itemize() insignificatly slower due to using intermediate buffer, until refactoring is done. Change-Id: I7987d6306b0b5cdb21b837968e292dd70abfe223 Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
| * QTextEngine::itemize(): Minor optimizationKonstantin Ritt2013-03-131-1/+1
| | | | | | | | | | | | | | | | | | Avoid using script_to_hbscript() in generateScriptItems()'s loop. This is absolutely unnecessary due to hbscript_to_script(script_to_hbscript(..)) in QTextEngine::itemize(). Change-Id: I44e710d010f8e57043a6c74dd80f3164e95e18e6 Reviewed-by: Lars Knoll <lars.knoll@digia.com>