summaryrefslogtreecommitdiffstats
path: root/src/gui/text
Commit message (Collapse)AuthorAgeFilesLines
* 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>
* 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>
* 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>
* 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>
* 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>
| * Hide Harfbuzz from the outer worldKonstantin Ritt2013-03-132-96/+0
| | | | | | | | | | | | | | | | Don't export, don't generate private headers, don't mention HB in API. Change-Id: I048ebd178bf4afaf9fda710a00933b95274cf910 Reviewed-by: Josh Faust <jfaust@suitabletech.com> Reviewed-by: Lars Knoll <lars.knoll@digia.com>
| * Avoid using HB types in QFontEngine APIKonstantin Ritt2013-03-136-55/+81
| | | | | | | | | | | | | | | | | | | | | | This affects HB_Font and HB_Face. As of now, the Hurfbuzz API usage is concentrated in qfontengine(|_ft).cpp and qtextengine.cpp, thus it is a lot easier to switch to Hurfbuzz-NG. Change-Id: Ie06959efd5d6080fe44c407d9f5de0a07dd1c210 Reviewed-by: Lars Knoll <lars.knoll@digia.com> Reviewed-by: Josh Faust <jfaust@suitabletech.com>
| * Replace HB types used in API with Qt analogsKonstantin Ritt2013-03-1210-60/+67
| | | | | | | | | | | | | | | | | | | | hb_uint32 <-> quint32 HB_Glyph <-> glyph_t HB_Fixed <-> QFixed, HB_FixedPoint <-> QFixedPoint HB_GlyphAttributes <-> QGlyphAttributes Change-Id: I4338ec4ce9a9c20ea591606ab10e6ef4f19931b8 Reviewed-by: Lars Knoll <lars.knoll@digia.com>
| * Get rid of qt_determine_writing_systems_from_truetype_bits()Konstantin Ritt2013-03-124-132/+112
| | | | | | | | | | | | | | Move this code to QPlatformFontDatabase and get rid of all dups of it. Change-Id: Idea6c84819039bf3b345b1305305951ade8d1ac4 Reviewed-by: Lars Knoll <lars.knoll@digia.com>
| * Fix selection of fonts that require OpenType featuresKonstantin Ritt2013-03-042-0/+6
| | | | | | | | | | | | | | | | HB_Face's supported_scripts[] expects HB_Script, so QChar::Script should be remapped via script_to_hbscript(). Change-Id: Ib068c35ab76567fe9a61da7d8ab01133a6f58bc0 Reviewed-by: Lars Knoll <lars.knoll@digia.com>
| * Fix path separators in archives created by QZipWriterPavel Mogylevskiy2013-02-201-6/+6
| | | | | | | | | | | | | | | | | | | | | | | | It was not possible to extract data from the archive on OSX which was created on Windows platform because of wrong separators. Archive was created on Windows via QZipWriter and opened on OSX with QZipReader. It consisted of a lots directories and subdirectories with files. The solution is to use '/' separator for internal representation. Change-Id: Ic0837ca184bb6188129d53b587a5df2ec61e4e05 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
| * Merge remote-tracking branch 'origin/stable' into devFrederik Gladhorn2013-02-182-3/+3
| |\ | | | | | | | | | | | | | | | | | | Conflicts: src/widgets/styles/qmacstyle_mac.mm Change-Id: If8326db9e7da3cbf45dbf7475fdff9915c7723b1
| * | Add support for color glyphs (Emoji) on Mac OS X and iOSTor Arne Vestbø2013-02-132-1/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | A new glyph type is added to the glyph caches for ARGB bitmap glyphs, and the raster and OpenGL paint engines have been modified to support this glyph type for drawCachedGlyphs(). The CoreText font engine implements support for these glyphs through the CTFontDrawGlyphs API, since CGContextShowGlyphsWithAdvances does not handle color glyphs. Change-Id: Idad9ce75a911cae130d65aebe59142772a16fc12 Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
| * | Merge "Merge remote-tracking branch 'origin/stable' into dev" into ↵Frederik Gladhorn2013-01-291-2/+2
| |\ \ | | | | | | | | | | | | refs/staging/dev
| | * \ Merge remote-tracking branch 'origin/stable' into devFrederik Gladhorn2013-01-281-2/+2
| | |\ \ | | | | | | | | | | | | | | | Change-Id: I12b4d8b99bdccae53b1a978cd6eb8f4ac6fb3c76
| * | | | Remove QT_{BEGIN,END}_HEADER macro usageSergio Ahumada2013-01-2922-88/+0
| |/ / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The macro was made empty in ba3dc5f3b56d1fab6fe37fe7ae08096d7dc68bcb and is no longer necessary or used. Discussed-on: http://lists.qt-project.org/pipermail/development/2013-January/009284.html Change-Id: Id2bb2e2cabde059305d4af5f12593344ba30f001 Reviewed-by: Laszlo Papp <lpapp@kde.org> Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@digia.com> Reviewed-by: hjk <hjk121@nokiamail.com>
| * | | Merge remote-tracking branch 'origin/stable' into devFrederik Gladhorn2013-01-2288-88/+88
| |\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: src/corelib/io/qsavefile_p.h src/corelib/tools/qregularexpression.cpp src/gui/util/qvalidator.cpp src/gui/util/qvalidator.h Change-Id: I58fdf0358bd86e2fad5d9ad0556f3d3f1f535825
| * | | | Add support for retina glyph-based text drawing in the GL paint-engineTor Arne Vestbø2013-01-211-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Instead of always using a non-transformed glyph-cache we now allow a scaled glyph-cache so that retina-screens can take advantage of this. We take the cache's scale into account when positioning and drawing the glyphs so that the scale is not applied twice. Change-Id: Ia927656f0070df61e78da76e97d2c49de4d856d9 Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
| * | | | Merge remote-tracking branch 'origin/stable' into devFrederik Gladhorn2013-01-161-1/+2
| |\ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: src/widgets/styles/qstyleanimation.cpp Change-Id: Iae570895be6544de80f9c1ec309d1a08c59daff8
| * | | | | Fix regression in perspective-transformed textEskil Abrahamsen Blomfeldt2013-01-111-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Change 8927084d0acfea2bb3fc8a932069c1d5ceb001d0 made a mistake in reversing the boolean logic of the type >= TxProject logic, causing us to try to use the font engine for perspective transformations instead of falling back to QPainterPath. Change-Id: Ideb59751ace23ab83f8ebd4f02dbe6c1724644a5 Reviewed-by: aavit <eirik.aavitsland@digia.com> Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
| * | | | | Refactor paint/font-engine shouldDrawCachedGlyphs and supportsTransformationsTor Arne Vestbø2013-01-102-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Some cruft had built up over time, and this is an attempt at cleaning up the naming and use of these functions, and should not have any behavioral effects. The function supportsTransformations() has been renamed in QPaintEngineEx to reflect its use, which is to decide if QPainter needs to pre-transform the coordinates of the static text before asking the paint-engine to draw it. The new name is requiresPretransformedGlyphPositions(). The OpenGL and CoreGraphics (Mac) paint engines keep their behavior of not needing pre-transformed text, while the raster engine needs this when using cached glyphs. The base-class implementation assumes that all transforms that include a projection will need pre-transform, which is also the case for the raster engine. All decisions in the paint engines about whether or not to use the glyph cache when drawing text are now deferred to the function shouldDrawCachedGlyphs(), which has been refactored for the GL paint engine(s) to share more logic. All implementations call the base class implementation, which ensures that large font sizes will not be cached. The raster engine will in addition ask the font engine whether or not it can produce glyphs for the glyph-cache with the given transform. This is the only remaining instance of the supportsTransformations() function, and will for all font engines except the CoreText engine support affine transformations. The CoreText engine on the other hand only supports translations (for now). Change-Id: I8fb5e43e3de3ef62a526a79a6dfeda7f9546771d Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
| * | | | | Merge "Merge branch 'stable' into dev" into refs/staging/devJędrzej Nowacki2013-01-071-1/+3
| |\ \ \ \ \
| | * \ \ \ \ Merge branch 'stable' into devFrederik Gladhorn2013-01-071-1/+3
| | |\ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: tests/auto/widgets/graphicsview/qgraphicsscene/tst_qgraphicsscene.cpp Change-Id: I6b8d505fc22f052c307ca27f58f7d16f98965f47
| * | | | | | | Get rid of pre-QPA leftoversKonstantin Ritt2013-01-073-240/+1
| |/ / / / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | Change-Id: I61a393baa387f2f90dc652d6a9df1c41c3730611 Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
| * | | | | | Merge branch 'stable' into devFrederik Gladhorn2013-01-046-30/+31
| |\ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: examples/widgets/painting/shared/shared.pri src/corelib/tools/qharfbuzz_p.h src/corelib/tools/qunicodetools.cpp src/plugins/platforms/windows/accessible/qwindowsaccessibility.cpp src/plugins/platforms/windows/qwindowsfontdatabase.cpp Change-Id: Ibc9860abf570e5ce8b052fb88feb73ec35e64bd3
| * | | | | | | Move ForceIntegerMetrics testing out of the loopKonstantin Ritt2013-01-021-2/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Change-Id: I5732999dee63568eb83e5186cf5bf8c63709724e Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
| * | | | | | | Update Qt internals to use QChar::ScriptKonstantin Ritt2012-12-2110-145/+138
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | ...and remove the outdated QUnicodeTables::Script enum. QFontEngineData now has one extra slot that never used (engines[QChar::Script_Inherited]). engines[QChar::Script_Unknown], if accessed, would be set with a Box engine instance, and could be used as a minor optimization some time later. In order to preserve the existing behavior, we map all scripts up to Latin to Common. Change-Id: Ide4182a0f8447b4bf25713ecc3fe8097b8fed040 Reviewed-by: Pierre Rossi <pierre.rossi@gmail.com> Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
* | | | | | | | Fix missing glyphs for large fontsEskil Abrahamsen Blomfeldt2013-03-191-8/+18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | For large fonts, we would get invalid metrics due to the metrics being too large to fit in the signed chars of the cache struct. This in turn would lead to the bounding box reported by the font engine being wrong, and subsequently, the algorithm which decides whether any part of the glyph is visible in the raster engine would make the wrong decision, hiding glyphs that should not be hidden. Task-number: QTBUG-30026 Change-Id: I59b613ce889fcac0bd50ffec9d369728068d0263 Reviewed-by: Samuel Rødal <samuel.rodal@digia.com> Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
* | | | | | | | Remove the usage of undefined QFontDatabase::WritingSystemLiang Qi2013-03-151-8/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | There is no definition for Yi, Tagalog...Braille in QFontDatabase::WritingSystem, see the header file. Change-Id: I0187b0ea23cdb49c4c3306217296d727d4983652 Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
* | | | | | | | Fix size of HB_FontRec in qharfbuzz_copy_p.hJosh Faust2013-03-131-1/+12
| |_|_|_|_|_|/ |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | HB_FontRec was defined in qharfbuzz_copy_p.h as a void* typedef, which is incorrect, and is the wrong size. This caused things accessing QFontEngine data after an HB_FontRec to read from the wrong offset. The visible consequence of this was incorrect text rendering in OpenGL in Linux. Task-number: QTBUG-29966 Change-Id: I71e6a6c5b4ef7b2c8a92631d2b9540537afc56b1 Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
* | | | | | | Doc: Fixed typo "pragraphs" -> "paragraphs"Marcel Krems2013-02-151-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Change-Id: I47e88dbedd3afee4bd53550ef1ce643829aecedb Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
* | | | | | | Fixed crashes when using QImage in combination with QCoreApplication.Samuel Rødal2013-02-141-1/+1
| |_|_|_|_|/ |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | As long as fonts weren't used we supported using QImage in combination with QCoreApplication in 4.x, and there's no reason we can't continue doing so. Task-number: QTBUG-29643 Change-Id: I2cf351d3c93f1c175bbf624e45024d39ab913111 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com> Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com> Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
* | | | | | Doc: Fix module name formatSze Howe Koh2013-01-251-2/+2
| |_|_|_|/ |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Follow the conventions at http://qt-project.org/wiki/Spelling_Module_Names_in_Qt_Documentation QtCore -> Qt Core QtDBus -> Qt D-Bus QtDesigner -> Qt Designer QtGui -> Qt GUI QtImageFormats -> Qt Image Formats QtNetwork -> Qt Network QtPrintSupport -> Qt Print Support QtScript -> Qt Script QtSql -> Qt SQL QtSvg -> Qt SVG QtTest -> Qt Test QtWebKit -> Qt WebKit QtWidgets -> Qt Widgets QtXml -> Qt XML QtConcurrent -> Qt Concurrent (partial) QtQuick -> Qt Quick (partial) Also, distinguish between "module" and "library" Change-Id: Icb8aa695ae60b0e45920b0c8fce4dc763a12b0cd Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>