summaryrefslogtreecommitdiffstats
path: root/src/gui/text
Commit message (Collapse)AuthorAgeFilesLines
* Better handling of invalid font tablesHEAD4.8Eskil Abrahamsen Blomfeldt2015-10-2310-85/+198
| | | | | | | | | | | | | | | Specifically when reading files with broken cmap tables, we could get some undeterministic results. We handle this more gracefully by verifying that the offsets are sane and bailing out early if not. This replaces the current pattern throughout the font engine for consistency. This is a back-port of 4a1e5dbade4bab55f39bd368480dcca9a11e4b38 from Qt 5. Change-Id: If4172b9ef0808801c8e27ffaad962535afe572ed Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> Reviewed-by: Lars Knoll <lars.knoll@theqtcompany.com>
* Update copyright headersAkseli Salovaara2015-03-31117-1522/+1522
| | | | | | | | | Qt copyrights are now in The Qt Company, so we could update the source code headers accordingly. In the same go we should also fix the links to point to qt.io. Change-Id: I7e3e96183e073877b46bc8071b2ccae19e69426b Reviewed-by: Jani Heikkinen <jani.heikkinen@theqtcompany.com>
* Added check if fontEngine is still in the cache.David Weisgerber2015-01-291-1/+1
| | | | | | Task-number: QTBUG-22942 Change-Id: I9e4ac72168886769993cb19fac7a370c377ff3af Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
* Fix bugs generating PDF on CocoaJames Turner2015-01-292-3/+67
| | | | | | | | | | Provide real implementations of: properties(), faceId() and getUnscaledGlyph Task-number: QTBUG-10094 Change-Id: Ib84a7a5c9e29e4d634b47bc2856787b2482048da (cherry picked from qtbase/517fb9026896f7ac20376f253babae5a7c57721d) Reviewed-by: Morten Johan Sørvig <morten.sorvig@theqtcompany.com>
* Use metrics returned by GetGlyphOutline in GGO_METRICS modelasconic2014-12-161-3/+26
| | | | | | | | | | | | | | | GetGlyphOutline Windows API returns wrong values when used with an OpenType PS font and in GGO_NATIVE mode. It causes problem when exporting to PDF. The fix changes the GetGlyphOutline call to use GGO_METRICS instead. Task-number: QTBUG-12799 Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com> Change-Id: I38ca46d50e490e3b704a89d08b1a8697bca5f079 (cherry picked from qtbase/4aba2d07d2fe67beaf544a4b38c5b9aa8b8ec39b) Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com> Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com> Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@theqtcompany.com>
* Fix OpenType fonts with cmap tables on WindowsJosh Faust2014-12-132-3/+11
| | | | | | | | Task-number: QTBUG-31656 Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com> Reviewed-by: Lars Knoll <lars.knoll@digia.com> Change-Id: If941bddb6173b6bd93117ba5bd35fa4050f29e3d (cherry picked from qtbase/0a170be576153b84ee6249f1a2b7cbce1ef10d84)
* Make distance fields rendering work with Opentype CFF fontsEskil Abrahamsen Blomfeldt2014-12-132-1/+14
| | | | | | | | | | | | | | If the font has a CFF table, GDI will not label it as TMPF_TRUETYPE, however, we can still use GetFontData to get the SFNT tables. This is required to get the maxp table which contains the glyph count, which is required to use the font with the distance-field renderer. Task-number: QTBUG-28746 Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com> Change-Id: I1e084f7e9dbd0bccb9b1ff4de2eaf65d6a5f9f1e (cherry picked from qtbase/dde09c429ae8b7ad0df4e4b36b8459d2b85a1219) Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
* fix glyph's CMAP index might be corruptedKonstantin Ritt2014-12-131-1/+1
| | | | | | | | | | | when SMP sybmol is present in the font. this is a simple typo fix, actually Change-Id: I34fc01171f2893d36d36cc929b4f1a789a5f36db Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@nokia.com> (cherry picked from qtbase/51998eb4f65b92640176973ba0e0ed14adee561d) Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com> Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
* Fix font cache check in QFontEngineFT::recalcAdvances()Miikka Heikkinen2014-09-091-1/+3
| | | | | | | | | | | | | | Cached font was used regardless of the format, resulting in incorrect advance in some cases when default format differed from the cached format. Task-number: QTBUG-24188 Change-Id: I39e4156bd9ba743afa7e106e934c90227fbf2b8b Reviewed-by: Jiang Jiang <jiang.jiang@nokia.com> (cherry picked from qtbase/2ea976c3a713535c2419d936d575e0b24545f0fa) Reviewed-by: Miikka Heikkinen <miikka.heikkinen@digia.com> Reviewed-by: Lisandro Damián Nicanor Pérez Meyer <perezmeyer@gmail.com> Reviewed-by: Jiang Jiang <gzjjgod@gmail.com>
* Memory and file descriptor leak in QFontCacheSimon Yuan2014-05-146-84/+55
| | | | | | | | | | | | Make the cache also use the ref counts Make everyone who decrements a ref count check for 0 and delete Move all cache logic to the cache Same idea as 36cb3f3 and b3dae68 in Qt 5 without the extra stuff Task-number: QTBUG-38035 Change-Id: I27bea376f4ec0888463b4ec3ed1a6bef00d041f8 Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com> Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
* Updated year in copyright headerKai Koehne2014-03-26117-117/+117
| | | | | | | | | | | | | | | | | | find . -path '*/3rdparty/*' -prune -o -type f -print | xargs -L1 sed -i -E 's/Copyright(.*) 2013 Digia/Copyright\1 2014 Digia/g' Manually patched files: demos/spectrum/3rdparty/fftreal/fftreal_wrapper.h demos/spectrum/3rdparty/fftreal/fftreal_wrapper.cpp src/3rdparty/s60/eiksoftkeyimage.h tools/qdoc3/test/qt-project.qdocconf tests/auto/qsharedpointer/nontracked.h tests/auto/qsharedpointer/nontracked.cpp Change-Id: I3f9074923b4d6bd4666258ab04f01476cc6e901c Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> Reviewed-by: Sergio Ahumada <sahumada@blackberry.com> Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* Use the correct system font on OS X Mavericks.Jake Petroules2013-11-112-2/+10
| | | | | | | Task-number: QTBUG-32789 Change-Id: I7b1988d5f74e5becd2e02274fae4d2bcc8140901 Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
* Keep web fontdata alive as long as CG uses itAllan Sandfeld Jensen2013-10-311-2/+10
| | | | | | | | | | | With OS X 10.9 font decoding appears to happen lazily, this means we have to ensure the data we provide CG is kept alive until CG dereferences it itself. Backport of 89ab2671051671ecf440ba480caf0b6b6768b1a9 Change-Id: I29d5bf9d6efac4668ea2c85fa5393ed1c1e621b5 Reviewed-by: Erik Verbruggen <erik.verbruggen@digia.com>
* Fix misaligned selection region with text when centeredJonathan Liu2013-10-231-5/+14
| | | | | | | | | | | | | | If the text is centered, the x/y position in the selection QRectF may be a multiple of 0.5 which is rounded up. This rounding causes misalignment of the selection region with the text. The alignment is fixed by using qFloor on the x and y components. Task-number: QTBUG-34218 Task-number: QTBUG-34234 Change-Id: I4f2fadeb38602f62a93773c6e5faecf03b28069f Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com> (cherry picked from qtbase/5d8a882c11201a29475c5ea71cfb76c9de6573f5)
* qpa: Fix memory leak of QFontEngineBox objectFabienne Semeria2013-07-121-1/+5
| | | | | | | | | | | | | | | | Delete QFontEngineBox object in QFontDatabase::load() if the object can not be used. cherry-picked from qt5/qtbase effbc9edc57fd8a2e40729a76004fe4f5fafcf49 original patch from jianliang79 <jianliang79@gmail.com> Modified to match changes in QAtomicInt API. Change-Id: I1cf7398f582c918426a73973347efe4425100eec Reviewed-by: jian liang <jianliang79@gmail.com> Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com> Reviewed-by: Julien Brianceau <jbrianceau@nds.com> Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
* Fix clipping of QTextList decorators.Leonard Lee2013-07-081-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: I0de01f4d6b833289948ac29e38dd3cc8ab9bca9e (cherry picked from commit qtbase/ad443dfb1d8e9096c4913686aa2ed0bc9b3f5de7) Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
* Fix Mac OS X Carbon build with Qt in a namespace.Danny Boelens2013-04-262-2/+8
| | | | | | Change-Id: I03a4fa4ab7517929c723483deaf1dcb42a8f9b17 Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com> Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
* Compile with clang when C++11 support is enabledBradley T. Hughes2013-04-081-1/+1
| | | | | | | | | | | | | text/qtextdocument_p.cpp:1070:43: error: non-constant-expression cannot be narrowed from type 'int' to 'quint32' (aka 'unsigned int') in initializer list [-Wc++11-narrowing] text/qtextdocument_p.cpp:1070:43: note: override this message by inserting an explicit cast Cherry-picked from qtbase/6deebc817080f9eb86d5d6fbe50444678eed4dfe. Change-Id: Id3faf59a8d30dc829b82508c4be50439db1d9722 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Remove the usage of undefined QFontDatabase::WritingSystemLiang Qi2013-03-161-8/+0
| | | | | | | | | There is no definition for Yi, Tagalog...Braille in QFontDatabase::WritingSystem, see the header file. (cherry picked from commit qtbase b7b858595e6e2d8dcc9debeb45eb8b9b294b9be6) Change-Id: I0d3625c58310d9af680799d20867f04b42845ca9 Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
* Fix path separators in archives created by QZipWriterPavel Mogilevskiy2013-02-211-6/+6
| | | | | | | | | | | | | | | | It was not possible to extract data from the archive on OSX which was created on the 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. Cherry picked from qtbase eff6dbb306956f099374e5a0c5942b9e91a81e71 Change-Id: I2180282d235dc998309fc4f7b67f5c0181b78dda Reviewed-by: Vasiliy Sorokin <sorokin.vasiliy@gmail.com> Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com> Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
* Fix text issue with Hiragana characters when stylesheet is applied.Mitch Curtis2013-02-211-0/+6
| | | | | | | | | | | | | | | | | | | When typing into a QTextEdit or QLineEdit with a Japanese IME on Windows, some characters have both a black foreground and background and hence cannot be seen. This patch fixes the issue by setting the appropriate colors for the text in these scenarios. The change also fixes a similar situation with QSyntaxHighlighter and Hiragana, where the background and foreground colors were the same. Now it will use underlining to highlight the text (like WordPad does, for example). Task-number: QTBUG-29442 Change-Id: I364d327a8f6573a73b227b79cc5f570cd02611c9 Reviewed-by: Andy Shaw <andy.shaw@digia.com> Reviewed-by: Titta Heikkala <titta.heikkala@digia.com> Reviewed-by: David Faure (KDE) <faure@kde.org> Reviewed-by: Mitch Curtis <mitch.curtis@digia.com>
* To support QT_NO_IM on Linux/Windows/MacJing Bai2013-01-211-0/+3
| | | | | | | | | | Fix compilation issue when QT_NO_IM is defined. Also fixed references in tests. But fixing plugins/examples seem not necessary at this point. Task-number: QTBUG-26109 Change-Id: I2067051951616012117efa6716640cbf198fdb2a Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@digia.com>
* Update copyright year in Digia's license headersSergio Ahumada2013-01-13117-117/+117
| | | | | | Change-Id: I52bf8ef0447b701b4ebf7d7d240013a72adb9425 Reviewed-by: Akseli Salovaara <akseli.salovaara@digia.com> Reviewed-by: Sergio Ahumada <sergio.ahumada@digia.com>
* Backport adjusting cursorToX for trailing spaces from Qt 5Eskil Abrahamsen Blomfeldt2012-12-192-15/+10
| | | | | | | | | | | This is a backport of d07982b104de5dc2b54bef09c071500ce22cf539 from Qt 5 which fixes cursorToX() in some cases, e.g. when a line filled with spaces is ended by a soft line break. Task-number: QTBUG-27354 Change-Id: Ia88873aeb3c0620044fefe24fc6bb1310e3aa339 Reviewed-by: Lars Knoll <lars.knoll@digia.com> Reviewed-by: Andrew den Exter <andrew.den.exter@qinetic.com.au>
* Mac: fix bugs for font selection in QFontDialogLiang Qi2012-12-141-1/+1
| | | | | | | | | | Use localized family name and style name when selecting font with non-English locale Task-number: QTBUG-27415 Change-Id: Ia10aaff50e1ffdb248c730fb46a8a66088ee64bb (cherry picked from qtbase/3c09f6bc9aee0c97427fe8da6efdc73b4ac473aa) Reviewed-by: Liang Qi <liang.qi@digia.com>
* Mac: Correct writingSystem check value for ChineseLiang Qi2012-11-011-2/+2
| | | | | | | | | | | | | For simplified and traditional Chinese. Based on the Apple doc: Internationalization Programming Topics - Language and Locale Designations. (backport of commit edfb24009cf22a0f0277be5d595b48ef9af9c3bf from qt5/qtbase) Task-number: QTBUG-27130 Change-Id: I08969bfba17b6a2589dca5da83b668bb2d8f3e31 Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
* Fixing font database memoryleakKarim Pinter2012-10-311-2/+2
| | | | | | | | | | | There is one case when the QFontEngine* fe is loaded, then FcPattern* match loaded from FcFontRenderPrepare is not deleted. Valgrind was showing this problem, after the fix there is no memoryleak in Valgrind. Change-Id: I8ef928fe8190a6d26f2e5275b85e08a7a8796a7b Reviewed-by: Andy Shaw <andy.shaw@digia.com> Reviewed-by: Jiang Jiang <gzjjgod@gmail.com> Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
* Use the right properties when checking the frame's marginsAndy Shaw2012-10-221-4/+4
| | | | | | | | | | Changed it to check the Frame*Margin property instead of the Block*Margin property as this was incorrect for a QTextFrameFormat. Task-number: QTBUG-22173 Change-Id: I2c3066165fb592ed034874b1180593822859f933 Reviewed-by: Simon Hausmann <simon.hausmann@digia.com> (cherry picked from qtbase/d060620e6cd3c94e7e0ff809b21593b9c0da0be2)
* Change copyrights from Nokia to DigiaIikka Eklund2012-09-29117-2809/+2809
| | | | | | | | Change copyrights and license headers from Nokia to Digia Change-Id: I280c0a575987d1770e354b4948f1d4d767d711ea Reviewed-by: Simo Fält <simo.falt@digia.com> Reviewed-by: Sergio Ahumada <sergio.ahumada@digia.com>
* Refactor coreservices -> ios & QT_NO_CORESERVICES -> Q_OS_IOSIan Dean2012-09-181-1/+1
| | | | | | | Similar work was done in Qt5 in Change Id3b02316 Change-Id: I392d2a5bfffb9a335f28d5dbc5ea27b800fc4487 Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@nokia.com>
* Fix regression in QTextDocument::toHtml() with font pixel sizeEskil Abrahamsen Blomfeldt2012-09-141-0/+1
| | | | | | | | | | | | | | Introduced by 2e0003eda4783f69a40fb4b31e7084c761d9640d. We were missing a attributesEmitted=true which caused the output from toHtml() to sometimes be invalid when using pixel sizes to specify the font size. This is a back-port of e640ebacb97f6eea9614925b1da3b97a0ff51409 from Qt 5. Task-number: QTBUG-25778 Change-Id: Ied61fcaef425a590d71c0b52292ac676cb88ba52 Reviewed-by: Jiang Jiang <gzjjgod@gmail.com>
* Revert "Speed up QTextEngine::resolveAdditionalFormats"v4.8.3Eskil Abrahamsen Blomfeldt2012-09-071-65/+2
| | | | | | | | | | | | | | | | This reverts commit 49fbb6e14af78f751fa114c3cf986aaa607d7408 which introduced crashes e.g. in Qt Creator. Since the original change was an optimization, it is reverted in the Qt 4.8 branch since stability is the main priority there. The crash has been fixed for the corresponding Qt 5 commit. It would be an option to recommit the optimization and the crash fix to a future minor release of Qt 4. Task-number: QTBUG-27140 Change-Id: I9dc959ea252fe55a22fd90f333ccb335b3ef1311 Reviewed-by: Olivier Goffart <ogoffart@woboq.com> Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
* Optimize QTextEngine::findItem by using a binary search.Milian Wolff2012-09-051-5/+12
| | | | | | | | | | | | | This is basically a backport from Qt5: - revert the revert: 22995948cd3f46780be5d8016708aeef0cd7b066 - backport from qtbase: 487583459ea7958f24cd579888a662bcce26caf3 this fixes the off-by-one error in the binary search Task-number: QTBUG-17209 Task-number: QTBUG-231 Change-Id: I7f62fb33cf919ecd7fb2246ae01bb23559e11bf4 Reviewed-by: Jiang Jiang <jiang.jiang@nokia.com>
* Speed up QTextEngine::setBoundaryOlivier Goffart2012-08-311-6/+14
| | | | | | | | | | | | | | | Before, setBoundary was O(N), now it is O(log N) assuming the boundaries are added in order. (splitItem might still be linear because of the call to QVector::insert) This speeds up a lot QTextEngine::addRequiredBoundaries when there is a lot of addFormats. (For example if there is a very long line with syntax highlighting) Task-number: QTBUG-8389 Change-Id: I10c9fca72343f46db24b1d4f519f7747188d4009 Reviewed-by: Lars Knoll <lars.knoll@nokia.com> (cherry picked from commit c13011829fd39661cc9e983256766c6edb88dead)
* Speed up QTextEngine::resolveAdditionalFormatsOlivier Goffart2012-08-311-2/+65
| | | | | | | | | | Don't call the linear QTextEngine::format in the loop. Instead, keep track of the current formats by indexing their start and end position. Task-number: QTBUG-8389 Change-Id: I89c18b804111edfab6254442cbee33da39d1a273 Reviewed-by: Lars Knoll <lars.knoll@nokia.com> (cherry picked from commit 4f6efe16416f0222ae78ab16c0eb8085bf9c521b)
* Update contact information in license headers.Sergio Ahumada2012-08-01117-234/+234
| | | | | | | | | | | | | - Replace Nokia contact email address with Qt Project website. - Remove "All rights reserved" line from license headers. As in the past, to avoid rewriting various autotests that contain line-number information, an extra blank line has been inserted at the end of the license text to ensure that this commit does not change the total number of lines in the license header. Change-Id: Ie7ba62011752fcb149b99b26317c54f2a0cfa931 Reviewed-by: Jason McDonald <jason.mcdonald@nokia.com>
* Fix crash when column is inserted before rowspanned cellEskil Abrahamsen Blomfeldt2012-07-131-3/+23
| | | | | | | | | | | | | | When you're inserting a column in front of a rowspanned cell and this cell is not the first in the rowspan, we would get the wrong logical index of the new cell (putting it in front of the initial cell with the rowspan). If the cell does not span all rows, the table will get into a broken state and trigger asserts in update(). To fix this, we search for the first cell after the insertion point which has a logical index higher than the cell directly before the insertion point. Change-Id: Ic6fb66bc25ad91f3534886f964173ead924429e2 Reviewed-by: Simon Hausmann <simon.hausmann@nokia.com>
* Fix cursor truncate to include line positionJiang Jiang2012-07-041-2/+2
| | | | | | | | Since we could have moved the line position (QTextLine::setPosition), the truncating position should be adjusted with that. Change-Id: Ie1acd4a1b6a4adfbeeb9ce8ee2dfa19d992470e8 Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@nokia.com>
* Removing potential crashes from out-of-thread cleanup on SymbianMurray Read2012-06-211-2/+4
| | | | | | | | | | | | | | | | | | | | There have been some crashes seen on Symbian when its adoptedThreadMonitor attempts to clean up objects created in other, now dead, threads. Some of these objects simply can't be cleaned up properly outside of their original thread, so the thread has to be checked when they are cleaned up, and cleanup skipped in the wrong thread. For pthread created threads, we also have the ability to insert cleanup code during thread shutdown. This was used in the 4.7 implementation of QThread on Symbian, and is a better solution for pthread based adopted threads as it gives in-thread cleanup. So the appropriate pthread code is also used with changes to adoptedThreadMonitor so that it can run along side the pthread cleanup code. Change-Id: Iad8207879b1ece62e5cce85f26a616166aa22486 Reviewed-by: Juha Kukkonen <ext-juha.kukkonen@nokia.com> Reviewed-by: Pasi Pentikäinen <ext-pasi.a.pentikainen@nokia.com>
* Restored native behavior when moving cursor from selectionRobert Loehning2012-06-201-0/+8
| | | | | | | | | Reverting changes from 1b031759ddfdab9703dfecac13f1ed318da3dafe except for Mac Task-number: QTCREATORBUG-7215 Change-Id: I8570c4bd35daf8b5820507a9399d33d00f96d41b Reviewed-by: Alessandro Portale <alessandro.portale@nokia.com>
* Fix application font loading in basic font dbJiang Jiang2012-05-041-5/+15
| | | | | | | | | | | | | | | | | | | We need to reregister fonts in initializeDb because basic font db doesn't have an internal record like fontconfig does, so just repopulating the font database won't work. db->reregisterAppFonts is now used properly as intended (reregister application fonts after the system font database has been cleared). Also, static variable 'initialized' in initializeDb() is removed since we check privateDb()->count to see if it needs to be populated again. Task-number: QTBUG-22063 Change-Id: Ifc66392b56b72acbe08b99256c61421c204be5d7 Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@nokia.com> (cherry picked from commit 89cfe9eb01ad75c14121dbd6038b7c791226acf1) Reviewed-by: Jiang Jiang <jiang.jiang@nokia.com>
* Fix memory leak when drawing text in non-common scriptEskil Abrahamsen Blomfeldt2012-04-121-3/+10
| | | | | | | | | When the fontEngine() cached was updated for new parameters, we would overwrite the cached engine, but not deref the old cached engine, thus it would never be deleted. Change-Id: I3b88698712e468ffa634bd98019a7871662cc363 Reviewed-by: Jiang Jiang <jiang.jiang@nokia.com>
* Fix signed/unsigned warnings (QWS)Sergey Gusarov2012-04-051-1/+1
| | | | | Change-Id: I98ba87fa236b1a10ea2499e270e71a94f54c1c3b Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Fix a crash in cursorToX() when new block is addedJiang Jiang2012-04-031-0/+4
| | | | | | | | | | When an empty new block is being added, the layoutData->memory data will be 0, thus QTextEngine::attributes() will return 0. We should only access the attributes pointer when some text actually exist. Task-number: QTBUG-24718 Change-Id: I9ce9f7b57bccf24099a02832ce30fb6cebfaad33 Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@nokia.com>
* Fixed compiler warnings about unused q and d pointers.Janne Anttila2012-03-151-1/+0
| | | | | | | | | | The q and d pointers were not used in these functions at all, or they were used only inside some #ifdef quard such as QT_NO_ACCESSIBILITY. Moved the Q_D and Q_Q macros inside the appropriate scope. Task-number: QTBUG-22512 Change-Id: I1624a1d800c7ce21cde4af1678d93e6f615edd45 Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
* Revert "Don't render glyph with FT with fetchMetricsOnly"Jiang Jiang2012-03-011-1/+1
| | | | | | | | | | | | Report https://bugs.webkit.org/show_bug.cgi?id=79561 shows that this commit will cause significant slow down in text handling operations. Though the exact reason is unknown we should revert it first and find out the reason later. This reverts commit 5ffac0cfc732b994e60af0b6b965b1780ca41f2e. Change-Id: I072bd817e20cf2f3455b6799d68079100e1a49dd Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
* Fix divide by zero when glyphWidth is 0Jiang Jiang2012-02-281-0/+2
| | | | | Change-Id: Ic0108b76b8d73cc977f8d64e036a65cb93db4684 Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@nokia.com>
* Fix for Thai characters with a below markMarko Kenttala2012-02-281-3/+9
| | | | | | | | | | | Some Thai characters with a mark below got drawn under fonts descent causing them to be clipped in some situations. Added checking for this and use of lower offset if needed. Task-Number: ou1cimx1#979179 Change-Id: If9fb643d4dee24342215a637c805d52b78584333 Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
* Don't render glyph with FT with fetchMetricsOnlyJiang Jiang2012-02-151-1/+1
| | | | | | | | | Neither rendering with outline nor fetchMetricsOnly requires the rendering from FreeType so we don't need to render them or cache it. It should speed up recalcAdvances() quite a lot. Change-Id: Ic322507d54ab59020851e359088a4afa4e03c8db Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
* QTextEngine - treat a fullstop (0x2E) as the same script as the preceeding ↵John Tapsell2012-02-101-1/+14
| | | | | | | | | | | text when dividing up strings Many languages use a fullstop to indicate an abbreviation, making the fullstop part of the word. For languages like thai, it is required to pass the fullstop along for correct word breaking. Change-Id: Ideded63432d06a1ab3b786a7bd13356f2cc1a090 Reviewed-by: Lars Knoll <lars.knoll@nokia.com>