summaryrefslogtreecommitdiffstats
path: root/src/gui/text
Commit message (Collapse)AuthorAgeFilesLines
* Avoid double initialize of platform font databaseJiang Jiang2011-11-081-1/+0
| | | | | | | | | | | Since platform font database will be populated in QFontDatabase::load, no need to do it here in QFont::initialize. The change was in cd781b732ed29b41b5ac18e39cbbba2815fc8f8b but lost in previous merge. Change-Id: Iaa56fea5765d94e4f7b58409654bc218808086cd Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@nokia.com>
* Fix subpixel positioning supportJiang Jiang2011-11-084-7/+11
| | | | | | | | | | | | Move subpixelPositionForX from QTextureGlyphCache to QFontEngine, since some font engines like QFontEngineFT may need a custom implementation or tweak it a little bit. In QRasterPaintEngine::drawCachedGlyphs, do not add aliasedCoodinate to x offset as that will break subpixel positioning. Change-Id: Idbcec617509459b80965220ceb07b17737649bbf Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@nokia.com>
* Fix QQuickTextInput implicit width.Andrew den Exter2011-11-071-1/+2
| | | | | | | | | | QQuickTextInput tries to set the UseDesignMetrics text option on its QLineControl but this is overridden by the options set in updateDisplayText(). Apply the new options in updateDisplayText to the existing options. Change-Id: I6789c3c2d6e496c1594d586bd075473983978f77 Reviewed-by: Martin Jones <martin.jones@nokia.com>
* Allow disabling FreeType internal cacheJiang Jiang2011-11-052-155/+112
| | | | | | | To disable it, set QT_NO_FT_CACHE environment variable to 1. Change-Id: I086aa93c71cbdf86858a41a2bbad5d2db247cdfb Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@nokia.com>
* Fix a warning in QGlyphRun compilationJiang Jiang2011-11-051-0/+1
| | | | | Change-Id: Ic072240193fc8eb5e7fdcd0dada79383398b224b Reviewed-by: Jiang Jiang <jiang.jiang@nokia.com>
* Restore subpixel rendering support with fontconfig and FreeTypeJiang Jiang2011-11-051-1/+2
| | | | | Change-Id: I45cf83374ba5a8b1ae88415950c1e5ab72991598 Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@nokia.com>
* Improve QtGui start-up time and memory use.Samuel Rødal2011-11-041-2/+4
| | | | | | | | The gamma lookup tables can be allocated and computed on demand, as they're not always needed, depending on the platform and the use case. Change-Id: I2d4c2860746366a0e46edb53bd4ecd2778de2464 Reviewed-by: Olivier Goffart <ogoffart@kde.org>
* Do not put cursor at non-stop character positionsJiang Jiang2011-11-041-0/+3
| | | | | | | | | | | When moving cursors, non-stop positions are skipped, however certain input sequences can still lead us there. In such cases we should simply ignore those positions in cursorToX. Task-number: QTBUG-7076 Change-Id: Ia0a25931f4043359f72a6c0c14a74b905e40b93e Reviewed-by: Eskil Reviewed-by: Jiang Jiang <jiang.jiang@nokia.com>
* Release font engine refcount when done using it in QTextEngineJiang Jiang2011-11-043-5/+12
| | | | | | | | | | | | | 5f2b6dd2a50275bc05ae5d7e9dd8902d6d49d9df increased refcounts for font engines in QTextEngine cache, we need to decrease them when the QTextEngine is deallocated. Task-number: QTBUG-21222 Reviewed-by: Eskil (cherry picked from commit 8935a84e18804c7ff4b7336e3cfdf1cd558eaf1c) Change-Id: I079c903d60e1bbcf78f555f8044dde69af82cf0e Reviewed-by: Jiang Jiang <jiang.jiang@nokia.com>
* Renamed QTextLayout member variable for readabilityPekka Vuorela2011-11-032-39/+39
| | | | | | | | | Class complex enough already without int i as member variable. Furthermore, some methods use loop variable with same name, shadowing the member one. Change-Id: Idf2f5e34f130a60eb6121480e596e443f23641dd Reviewed-by: Jiang Jiang <jiang.jiang@nokia.com>
* Documented side-effect of QTextLayout::setPreeditArea()Pekka Vuorela2011-11-031-1/+2
| | | | | | | Invalidates layout and requires layouting again. Change-Id: I1cb954f155e4fc1df4b217478998ac903cc18323 Reviewed-by: Jiang Jiang <jiang.jiang@nokia.com>
* Fix most warnings about assignments of QAtomicInt.Friedemann Kleint2011-10-312-2/+2
| | | | | Change-Id: Ide409d72d2637b68ec2a85aaca4bc783a7e911e7 Reviewed-by: Bradley T. Hughes <bradley.hughes@nokia.com>
* Freetype: Do not unlock face when returning superclass value in ↵Oliver Wolff2011-10-281-1/+0
| | | | | | | | | | lockedAlphaMapForGlyph If the face is unlocked in this case, calling unlockAlphaMapForGlyph after doing the operation will cause an assert. Change-Id: Icb2310a3b139e5bedf24f9c3794bd7d3fd38cfea Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@nokia.com>
* Replace implicit QAtomic* casts with explicit load()/store()Bradley T. Hughes2011-10-278-27/+25
| | | | | Change-Id: Ia7ef1a8e01001f203e409c710c977d6f4686342e Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Fix compiler warnings.Friedemann Kleint2011-10-271-0/+1
| | | | | | | | - Fix gcc 4.6.X warnings about assigned but unused variables - Remove trailing ';' from inline functions (Clang) Change-Id: I8670afd6b149748a740f22c65de137762e9f18e1 Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
* QtGui: Remove Q_WS and qpa.Friedemann Kleint2011-10-255-171/+8
| | | | | | | | | Enable compilation without -qpa. Remove QT_NO_FREETYPE and QT_NO_FONTCONFIG when building. Change-Id: I0e017cc47ee06b885be65deaeb67a449a119b8be Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@nokia.com> Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
* Keep Multi font engine in QFontCacheJiang Jiang2011-10-243-7/+16
| | | | | | | | | | | | | If we only keep single QFontEngineFT in QFontCache, then when we are looking for the MultiQPA next time with the same QFontDef, the FT engine will be returned and we get no font fallback support. That's why we need to keep the Multi engines in QFontCache as well and distinguish them from the single item. Since QPA doesn't use 'screen' field of QFontCache::Key structure, we use it here to indicate that we are caching a multi font engine. Change-Id: Id899d5c5ba52f4bccf134bcd6b1c6386ba22063c Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@nokia.com>
* Multiline editors not to limit anchor position inputMethodQueryPekka Vuorela2011-10-241-1/+1
| | | | | | | | | | | | The queries were limited to current block, because that is the available surrounding text. Input method side, however, cannot then distinguish between anchor being really at start or end of the surrounding text, or beyond it. Without the limitation there at least is a way to know anchor is at unknown territory. Change-Id: I388d33566388344ec816ea7d86662b7e36a3d7d0 Reviewed-by: Lars Knoll <lars.knoll@nokia.com> Reviewed-by: Joona Petrell <joona.t.petrell@nokia.com>
* Fix some compiler warnings on MacSergio Ahumada2011-10-211-1/+1
| | | | | Change-Id: I52b5c1822f9530f75eeebfcafbade6f89062e369 Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com>
* Remove stale documentation.Casper van Donderen2011-10-182-73/+0
| | | | | Change-Id: I85139e0334b648bee0d18129cef9387dcc6c3222 Reviewed-by: Jerome Pasion <jerome.pasion@nokia.com>
* Fix scaled text rendering with the raster paint engine & FreeTypeSimon Hausmann2011-10-171-0/+7
| | | | | | | | | | | | | | | Before commit 070d9c00c488a5ee6811f04170cf488ead79bf80, the raster paint engine used to call loadGlyphs() on the FT engine, which ensures that the glyphs are loaded and (more importantly) that the correct transformation matrix is applied on the freetype face. After commit 070d9c0 lockedAlphaMapForGlyph is called for each glyph, which unfortunately doesn't respect the provided transformation matrix. Therefore when drawing scaled text, it was never actually scaled. This patch applies the combination of the fontengine transform and the requested transform on the freetype face actually used, similarly to loadGlyphs. Change-Id: I0956a9e71784582db6bb90475a001a63800773f4 Reviewed-by: Jiang Jiang <jiang.jiang@nokia.com>
* Add QGlyphRun::SplitLigature flagEskil Abrahamsen Blomfeldt2011-10-143-28/+49
| | | | | | | | | | | | | If the glyph run is generated based on characters which split a ligature glyph, it needs to include the ligature glyph in the run, and when painting, we need to clip the painter to the reported bounding rect of the run in order to avoid painting too much of the ligature. To make it possible to reduce clipping to a minimum, we need a flag to inform of whether the glyph run contains a split ligature or not. Change-Id: Id787e0bec6d6e8e06cc818700ae0fca22cf81e98 Reviewed-by: Jiang Jiang <jiang.jiang@nokia.com>
* Remove commented out reference to QShortcutMapLars Knoll2011-10-141-9/+0
| | | | | | Change-Id: I62ca413c4f5e11e5ba91dcbb05d8088ca1d7a2b9 Reviewed-on: http://codereview.qt-project.org/6582 Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
* Remove Q_WS_ and Q_OS_SYMBIAN from QtGui.Friedemann Kleint2011-10-1323-1243/+2
| | | | | | Change-Id: I2ac3376513c3fbfc81a2e695a73a0d948d2696bc Reviewed-on: http://codereview.qt-project.org/6607 Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
* Don't crash when no usable font is availableJiang Jiang2011-10-111-3/+5
| | | | | | | | | | | | We will fallback to box engine when no usable font is available, and QRawFont (which scenegraph depends on) won't allocate glyph index array on certain occasions. In those cases, QFontEngineBox needs to support GlyphIndicesOnly flag. Change-Id: I408ddd1b2f1a5f7ac2b6681cb7bf531bbbfc68e6 Reviewed-on: http://codereview.qt-project.org/6360 Sanity-Review: Qt Sanity Bot <qt_sanity_bot@ovi.com> Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@nokia.com>
* Remove duplicate check in qtextcontrol cursorMoveKeyEvent()Kent Hansen2011-10-111-3/+0
| | | | | | | | | | No reason to check for QKeySequence::MoveToPreviousLine twice. Task-number: QTBUG-20482 Change-Id: Ib1504be33908fa7cbc27226060f94794c454681c Reviewed-on: http://codereview.qt-project.org/6050 Sanity-Review: Qt Sanity Bot <qt_sanity_bot@ovi.com> Reviewed-by: Kent Hansen <kent.hansen@nokia.com>
* Use freetype font engine on WindowsOlli Werwolff2011-10-102-1/+13
| | | | | | | | | | | | | | | As windows' fontdatabases also uses functionalities from qbasicunixfontdatabase it was renamed to qbasicfontdatabase. But instead of iterating over the font directories' files it uses system calls to obtain the list of fonts and uses registry values to find the according filenames to add. The native font engine was still kept. It can be activated by adding fontengine=native as platformargument. Change-Id: I7197bed5d18b8a33d4aa97ce91bfa1cd281b80ea Reviewed-on: http://codereview.qt-project.org/5839 Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@nokia.com> Sanity-Review: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@nokia.com>
* Clean-up a macro for CocoaMorten Sorvig2011-10-102-6/+2
| | | | | | | | | Remove the usage of Q_MAC_USE_COCOA and Carbon code paths. Change-Id: Ib569ad8c6d9ffe258f454b3c3b06e95294a10112 Reviewed-on: http://codereview.qt-project.org/5100 Reviewed-by: Morten Johan Sørvig <morten.sorvig@nokia.com> Sanity-Review: Morten Johan Sørvig <morten.sorvig@nokia.com>
* Fix QFont::defaultFamily() in the new QPA world.Pierre Rossi2011-10-072-9/+22
| | | | | | | | | | This is so that the results of LayoutTests in WebKit are more in line with what things were like in Qt 4.8. Change-Id: I25962e03bd8e0316cb303c0d94c25ac4e73ea9a8 Reviewed-on: http://codereview.qt-project.org/6162 Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com> Reviewed-by: Jiang Jiang <jiang.jiang@nokia.com>
* Improved logical and physical DPI APIs.Samuel Rødal2011-10-061-6/+2
| | | | | | | | | | | | | | Made physicalSize() return QSizeF instead, to prevent rounding errors. Added logicalSize() as the base to compute font pixel sizes instead, and added convenience functions in QScreen to access the logical and physical sizes and DPI metrics. Task-number: QTBUG-21736 Task-number: QTBUG-21737 Change-Id: Ic705dc98eb3632617659e65a0c9a552673dc0c65 Reviewed-on: http://codereview.qt-project.org/5888 Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com> Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
* Add font family alias resolving to QPAJiang Jiang2011-10-054-1/+18
| | | | | | | | | | | By default it doesn't do anything special, but for fontconfig font db it will do some tricks to convert alias like serif to actualy font family names like Times. Change-Id: I73058d187a5422e6f93bc1b728cecdc0250d5e1e Reviewed-on: http://codereview.qt-project.org/5984 Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com> Reviewed-by: Pierre Rossi <pierre.rossi@gmail.com>
* Rename Qt::escape to QString::toHtmlEscaped, add compat methodDavid Faure2011-09-291-5/+5
| | | | | | | | | Merge-request: 56 Reviewed-by: Frederik Gladhorn <frederik.gladhorn@nokia.com> Change-Id: I46bbb2df10968e88b5eb5ef8dae182a651b622b8 Reviewed-on: http://codereview.qt-project.org/5793 Reviewed-by: Frederik Gladhorn <frederik.gladhorn@nokia.com>
* Move Qt::escape to QtCoreDavid Faure2011-09-292-34/+1
| | | | | | | | | | Merge-request: 56 Reviewed-by: Frederik Gladhorn <frederik.gladhorn@nokia.com> Change-Id: I25c5f46cf53a653db26dbeb92865e61f69980bfd Reviewed-on: http://codereview.qt-project.org/5792 Reviewed-by: Frederik Gladhorn <frederik.gladhorn@nokia.com> Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com>
* Get rid of the last traces of QMimeSourceLars Knoll2011-09-292-2/+1
| | | | | | | | | | | The class has been deprecated since Qt 4.0, but couldn't be removed as QDropEvent inherited from it. Change-Id: I9caa19b30977a319e79255900dee8b2425783f46 Reviewed-on: http://codereview.qt-project.org/5754 Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com> Reviewed-by: Bradley T. Hughes <bradley.hughes@nokia.com>
* Register whether a glyph run goes from RTL or LTREskil Abrahamsen Blomfeldt2011-09-284-37/+116
| | | | | | | | | | | | | | This is needed by scene graph when embedding text objects in RTL text. Since the number of flags required for QGlyphRun is increasing, I've also refactored the underline/overline/strikethrough settings to use a common QFlags interface. Task-number: QTBUG-20917 Change-Id: I070649c014f4a51cfd66a9579d2d221a8f22302f Reviewed-on: http://codereview.qt-project.org/5739 Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com> Reviewed-by: Jiang Jiang <jiang.jiang@nokia.com>
* Make qtbase build with Qt-in-namespace againKent Hansen2011-09-281-0/+2
| | | | | | | Change-Id: I5faa8690a05d6ec352fc69c0b69848539f2ed216 Reviewed-on: http://codereview.qt-project.org/5460 Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com> Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
* Update QLineControl's state correctly with QT_NO_ACCESSIBLITY.Andrew den Exter2011-09-271-2/+2
| | | | | | | | | | | Always call finishChange in setText, not just when QT_NO_ACCESSIBILITY is undefined, otherwise lots of things don't get updated. Task-number: QTBUG-21686 Change-Id: I58b320814fb379b462e39b7e675fe6e9fc41ba8a Reviewed-on: http://codereview.qt-project.org/5594 Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com> Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
* Fix possible assert in QFontEngineFTEskil Abrahamsen Blomfeldt2011-09-261-1/+3
| | | | | | | | | | | This is a regression caused by 070d9c00. If the defaultFormat is set to Format_None, we should default to Format_A8 like before the change. Change-Id: I8ad07abff96fc1dfa03c0c5b49d13beb36b9de70 Reviewed-on: http://codereview.qt-project.org/5540 Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com> Reviewed-by: Jiang Jiang <jiang.jiang@nokia.com>
* Add some enablers to QTextDocumentLayoutEskil Abrahamsen Blomfeldt2011-09-262-1/+43
| | | | | | | | | | | | | | | | Required to access internals used in the layout process, so that we can present the layout in the scenegraph. For instance, the frameBoundingRect() for tables will be the internal bounding rect of the cells. To avoid regressions, I've added a separate function for the outer bounding rect. For now, this is private API, but if it turns out to be useful, the functions can easily be added as virtual to QAbstractTextDocumentLayout. Task-number: QTBUG-20917 Change-Id: I04e07d3850b21f9f0704bf8c8a3ffe97ee5c3fda Reviewed-on: http://codereview.qt-project.org/5539 Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com> Reviewed-by: Jiang Jiang <jiang.jiang@nokia.com>
* Fix possible crash in QFontEngineFTEskil Abrahamsen Blomfeldt2011-09-261-1/+1
| | | | | | | | | | | | | Avoid crash if set pointer is null. Task-number: QTBUG-21647 Reviewed-by: Jiang Jiang (cherry picked from commit e05734987594f0e54f58a2ab3037cdf4956e9036) Change-Id: I49fde194ef6be5485a43c5d09fc43170ab9d4d6b Reviewed-on: http://codereview.qt-project.org/5532 Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@nokia.com> Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com>
* Make sure cursor position doesn't exceed line endJiang Jiang2011-09-231-0/+3
| | | | | | | | | | | | | | If we have trailing spaces at the end of a line, cursor will disappear because the position we returned exceeds line end, thus the widget border. By limiting it within line.width we can make sure it always visible, which is more consistent to the behavior in common platforms. Reviewed-by: Eskil (cherry picked from commit c750afe0e0f043389d30850070889946e4c6e8af) Change-Id: Ifc60b718369639bbb6f5afb35c29a6eb0dccd219 Reviewed-on: http://codereview.qt-project.org/5458 Reviewed-by: Jiang Jiang <jiang.jiang@nokia.com>
* Support adding application fonts with QFontconfigDatabaseJiang Jiang2011-09-235-10/+25
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | QFontDatabaseQPA should be able to reinitialize database and reregister all the fonts when an application font is added, because it will trigger db->invalidate(). Add cloneWithSize support to QFontEngineBox so that even no usable font is found in QFontDatabase, QRawFont::setPixelSize can still work (without making the result rawfont invalid). Register application fonts with QFontconfigDatabase, the code is adapted from QFontDatabaseX11. Reenable QRawFont tests for QPA, these usages are now supported in QPA. Fix QStaticText tests, raster in QPA does support transformations. Translate the text before ZAxix rotation so that it will be visible in canvas. Add back fixedPitch support to QPA, and fix QFontDatabase tests. Fix QGlyphRun tests, ignore non-existence glyphs in alphaMap locking. Fix QFontMetrics tests. Task-number: QTBUG-21415, QTBUG-20754, QTBUG-20977, QTBUG-20976, QTBUG-20760, QTBUG-20759 Change-Id: I24aea7d6ec6b2ac6342134d1f2591327c23a692b Reviewed-on: http://codereview.qt-project.org/5384 Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com> Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@nokia.com>
* Export QTextImageHandler and add accessor for imageEskil Abrahamsen Blomfeldt2011-09-212-3/+11
| | | | | | | | | | | | | To allow optimizations in the scene graph, we export the private QTextImageHandler class and add a function which will fetch a given image when required, or return the cached image in the document resources. Task-number: QTBUG-20917 Change-Id: If45e51b0d9a267bc198623165e7a2cc1fb2b961f Reviewed-on: http://codereview.qt-project.org/5227 Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com> Reviewed-by: Jiang Jiang <jiang.jiang@nokia.com>
* Use QT_MAX_CACHED_GLYPH_SIZE in QFontEngineFTAleksandar Stojiljkovic2011-09-201-2/+6
| | | | | | | | | | | Task-number: QTBUG-21162 - Letters get truncated when font size=72 and set to Italic Reviewed-by: Eskil (cherry picked from commit cd43d6386de6e66379fa23c1ea4ec06141167c86) Change-Id: Ic05f775975d5f21e0274e7b2c3a4903d6a4ae41f Reviewed-on: http://codereview.qt-project.org/5203 Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@nokia.com> Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com>
* Avoid double caching glyphs in raster/QPA/FreeTypeEskil Abrahamsen Blomfeldt2011-09-204-16/+141
| | | | | | | | | | | | | | | | | | | | | Since FreeType has internal caching, it has had a special code path in the raster engine which avoided using Qt's glyph cache, as that would be redundant. However, when compiling with QPA, we want the same behavior without being able to access the QFontEngineFT class. To achieve this, I've made a new abstraction and added it to QFontEngine which allows the FT engine to provide direct pointers into the alpha maps stored by FT. This requires a locking/unlocking mechanism. Yes, the QFontEngine::alphaMap* API is slowly becoming a horrible mess, but due to time constraints, the task of refactoring these functions into a more flexible API needs to wait. I've added a TODO comment for this. Change-Id: I08237403c2967f8fb952258178676f33a87c0353 Reviewed-on: http://codereview.qt-project.org/5155 Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com> Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
* Fix regression causing synthesized oblique glyphs to clipEskil Abrahamsen Blomfeldt2011-09-191-1/+15
| | | | | | | | | | | | | | | | | In 20009ed797fb30952a889df5716aa2399102be58 I introduced a new approach to synthesized oblique. However, while the embolden function in FT alters the glyph metrics accordingly, the oblique function does not, so the glyphs would be clipped to the original, unslanted metrics. So I've implemented the same matrix in the loadGlyph() function and we now apply this to the metrics manually. This will only work as long as the underlying algorithm doesn't change significantly. Task-number: QTBUG-21202 Change-Id: Ic20b2a0fdeac5ce833e95fd06efa12b3b70feee5 Reviewed-on: http://codereview.qt-project.org/5156 Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com> Reviewed-by: Jiang Jiang <jiang.jiang@nokia.com>
* Support synthesized oblique and bold in SceneGraphEskil Abrahamsen Blomfeldt2011-09-192-3/+21
| | | | | | | | | | | | | | | When fetching the outlines we need to synthesize the weight and style of the requested font. This is currently only supported on FreeType versions that have the Embolden and Oblique functions. We also use FreeType's Oblique function for regular text when possible, and only use the matrix approach when that function is unavailable. Task-number: QTBUG-21202 Change-Id: I0656ab66cc3ec70d6a7675b8c78d06632625261c Reviewed-on: http://codereview.qt-project.org/5076 Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com> Reviewed-by: Jiang Jiang <jiang.jiang@nokia.com>
* Treat QTestFontEngine properlyJiang Jiang2011-09-191-1/+1
| | | | | | | | | | Do not try to fill fontDef when it's a test font engine, otherwise it will cause a crash because desc.family is 0. Change-Id: I008b784bae3e60a25c33c285d944442a3616a9a2 Reviewed-on: http://codereview.qt-project.org/5103 Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com> Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@nokia.com>
* Fix trailing spaces problem by not adding it to QScriptLine.lengthJiang Jiang2011-09-173-5/+7
| | | | | | | | | | | | | | | | | | | | | | It seems to be the only sane way to fix it. Previous attempts to fix it by compensating the trailing space width all failed in some cases, one of the trickiest is when we are having embedded LTR text that has trailing spaces in a RTL paragraph. In this patch we leave line.length not including the trailing space length, but saving it to a separated variable, so that we can always add it back when needed (QTextLine::textLength() for instance). It fixed all the problems in different alignments of both RTL and LTR text. And no regression is found yet. Reviewed-by: Eskil (cherry picked from commit 80294c375eca9687d1c34e9ab048294373e7f00c) Change-Id: Id248ab6f54f8cc25ba0e9d1626703463dfefbcea Reviewed-on: http://codereview.qt-project.org/4778 Reviewed-by: Jiang Jiang <jiang.jiang@nokia.com> Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com>
* doc: Fix incorrect enum name in QRawFont::alphaMapForGlyph docsEskil Abrahamsen Blomfeldt2011-09-151-1/+2
| | | | | | | | | | | | | There's no QImage::Format_A8 format. This is a term used in the corresponding QFontEngineGlyphCache enum. Reviewed-by: Jiang Jiang (cherry picked from commit e453fce2731069dce993a94b0c2291307cc7806c) Change-Id: I68a190abdf4446d05231af89ac861380ac79b188 Reviewed-on: http://codereview.qt-project.org/4773 Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@nokia.com> Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com>