summaryrefslogtreecommitdiffstats
path: root/src/gui/text
Commit message (Collapse)AuthorAgeFilesLines
...
* | Fix rounding issueKonstantin Ritt2014-01-241-1/+1
| | | | | | | | | | | | | | | | The correct rounding that respects ForceIntegerMetrics flag is done just a few lines below. Change-Id: I8e79ebaded90753092ecd3e99eece8df4c824362 Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* | Reduce code duplicationKonstantin Ritt2014-01-202-15/+4
| | | | | | | | | | Change-Id: I077963fcb910fa705b087e35e99cd07436c034b1 Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* | Add convenience method QTextFormat::isEmpty()Konstantin Ritt2014-01-202-0/+10
| | | | | | | | | | Change-Id: I30e74de6853908d1fec399131637848e3c2faabe Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* | Remove unimplemented constructor in QTextEngineEskil Abrahamsen Blomfeldt2014-01-151-1/+0
| | | | | | | | | | | | | | | | | | QTextEngine(LayoutData*) declaration seems to have been added in Qt 4.1 without an implementation. As far as I can see it has never been implemented. Change-Id: I4bbf032395f7c930c9e8d365cdbbcf47bb118d64 Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
* | Update the Unicode Data and Algorithms up to Unicode 6.3.0Konstantin Ritt2014-01-141-9/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Mongolian and Phags-pa characters have been given a Joining_Type classification for contextual shaping. As a part of these additions, one Phags-pa character has the Joining_Type value of L (Left Joining), which no character had been assigned before. * The unassigned code points in the Currency Symbols block have been given the Bidi_Class property value ET and the Line_Break property value PR, to help implementations support new currency symbols, when they are encoded. * Hebrew letters and basic punctuation marks have been assigned the newly introduced Word_Break property values Hebrew_Letter, Single_Quote, and Double_Quote. * The Bidi_Class property has been extended with four new values for directional isolates. For more details, see http://www.unicode.org/versions/Unicode6.3.0/ Change-Id: Iad62d02edc58a8497898dcd6d6c70d5aece317ea Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* | Merge remote-tracking branch 'origin/stable' into devSimon Hausmann2014-01-031-1/+1
|\| | | | | | | Change-Id: Id13badc270db98806048753fd7fb658aa17f1ede
| * REG: Fix support for strings spanning multiple font enginesEskil Abrahamsen Blomfeldt2014-01-031-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | E.g. in the case where the first char in a font got a font engine index != 0, and the second character got font engine index == 0, we would not count the second character as a separate glyph run. The result would be that its glyph indexes would refer to font #0, but the font used to render them would be the same as for the first character, i.e. random. Task-number: QTBUG-35740 [ChangeLog][Text][QTBUG-35740] Fixed regression when shaping some strings containing characters from multiple fonts. Change-Id: I668804045c8b276787c7b256bc87916c467f3f59 Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
* | Merge remote-tracking branch 'origin/stable' into devFrederik Gladhorn2013-12-243-5/+45
|\| | | | | | | Change-Id: I2defae1904154283446b069d151c3ef57302ec7b
| * Fix writingSystems determination by code page range bitsKonstantin Ritt2013-12-191-2/+42
| | | | | | | | | | | | | | | | | | | | Do exactly what windows font database does to determine writingSystems in case of non-truetype fonts. Task-number: QTBUG-13585 Change-Id: I4a1a48d74c36e403c31f20847cf80295d89a34bc Reviewed-by: Lars Knoll <lars.knoll@digia.com>
| * Fix build with HarfBuzz-NG older than 0.9.20Konstantin Ritt2013-12-171-1/+1
| | | | | | | | | | | | | | | | It is annoying that HB maintains binary compatibility but does not really care about source compatibility. Change-Id: Ife7b011919f28527b77858ad8398fe723c65b1b3 Reviewed-by: Lars Knoll <lars.knoll@digia.com>
| * Fix build with -WerrorKonstantin Ritt2013-12-172-2/+2
| | | | | | | | | | Change-Id: I2fe4b006dc0696e5491792846bdb8c99ac31af6e Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* | Merge "Merge remote-tracking branch 'origin/stable' into dev" into ↵Simon Hausmann2013-12-231-0/+2
|\ \ | | | | | | | | | refs/staging/dev
| * | Merge remote-tracking branch 'origin/stable' into devFrederik Gladhorn2013-12-161-0/+2
| |\| | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: src/gui/kernel/qplatformtheme.h tests/auto/network/socket/qudpsocket/tst_qudpsocket.cpp tests/auto/widgets/widgets/qspinbox/tst_qspinbox.cpp Change-Id: Iecd3343d6a050b8764f78d809c4a1532aeba69e5
| | * Merge "Merge remote-tracking branch 'origin/release' into stable" into ↵Frederik Gladhorn2013-12-051-0/+2
| | |\ | | | | | | | | | | | | refs/staging/stable
| | | * Merge remote-tracking branch 'origin/release' into stableFrederik Gladhorn2013-12-051-0/+2
| | | |\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: configure mkspecs/macx-ios-clang/features/default_post.prf tests/auto/widgets/widgets/qmenu/tst_qmenu.cpp Change-Id: Iaba97eed2272bccf54289640b8197d40e22f7bf5
| | | | * Use Q_QDOC for Qt namespace declaration in Qt GuiTopi Reinio2013-12-031-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is a workaround for letting qdoc to successfully generate documentation for the Qt namespace. qdoc doesn't properly handle multiple declarations for the same namespace spread across multiple modules. Task-number: QTBUG-35230 Change-Id: I449b17e1171d1a4481b9cf07cd48c803feed5be9 Reviewed-by: Martin Smith <martin.smith@digia.com> Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* | | | | QTextDocument: avoid relocationsMarc Mutz2013-12-231-3/+11
|/ / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Hand-roll a string table here, since there's opportunity for sharing string data between string entries. Effects on Linux AMD64 GCC 4.9-trunk release stripped: text: -88B data: -64B relocs: -5 Maintainability is hurt somewhat, but it is expected that the contents of this string table do not change much, so the overall effect is still very low. Change-Id: I2a22da4c8548c53ef31c33319b4652f3cb6f62f5 Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
* | | | Merge remote-tracking branch 'origin/stable' into devFrederik Gladhorn2013-12-051-0/+4
|\| | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: src/sql/drivers/sqlite/qsql_sqlite.cpp Change-Id: Ia7cffd2c99ae3d5eea6b5740683c06e921336dcd
| * | | QTextEngine: fix layouting of inline objects in right-aligned tabs.David Faure2013-12-051-0/+4
| |/ / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | (same thing for center- and delimiter-aligned tabs) The width of the inline object wasn't taken into account, the code in QTextEngine::calculateTabWidth only looked at glyph widths. Change-Id: I303a6561c67870ff2094a685698e642fc1b53b12 Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com> Reviewed-by: Allan Sandfeld Jensen <allan.jensen@digia.com>
* | | Merge remote-tracking branch 'origin/stable' into devFrederik Gladhorn2013-11-294-34/+36
|\| | | | | | | | | | | Change-Id: Ibb342cc5fc55ff9a3f4b3ecbd53936b57bc13e63
| * | Streamline font match() function.Friedemann Kleint2013-11-281-10/+6
| | | | | | | | | | | | | | | | | | | | | Determine writing system before executing the loop. Change-Id: I6c462bdef4d70860e76c7cc9d939e3e92983b173 Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
| * | Remove unused variable in font match() function.Friedemann Kleint2013-11-281-3/+0
| | | | | | | | | | | | | | | Change-Id: I0752901556a44c3b7fb4440e3ba0ca88559c1fe2 Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
| * | Merge "Merge remote-tracking branch 'origin/release' into stable" into ↵Frederik Gladhorn2013-11-283-5/+1
| |\ \ | | | | | | | | | | | | refs/staging/stable
| | * | Merge remote-tracking branch 'origin/release' into stableSimon Hausmann2013-11-283-5/+1
| | |\| | | | | | | | | | | | | Change-Id: I860404a1ef18c88a968a9eded405bb67967047b9
| | | * Revert "Store the font's scalability in QFontEngine."Yoann Lopes2013-11-273-5/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This reverts commit 65b12fbdb13d34c61bcadd5cc8fd6ee28a8dfafd. QFontEngine is not always loaded from QFontDatabase, resulting in the flag not being set. Change-Id: I39bc5bd4a8dea153d191cfc55f4324195f75f64c Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com> Reviewed-by: Mitch Curtis <mitch.curtis@digia.com> Reviewed-by: Lars Knoll <lars.knoll@digia.com>
| * | | Fix font lookup.Friedemann Kleint2013-11-282-16/+29
| |/ / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Change match() to return an index and use that to reintroduce the blacklist bookkeeping for fonts for which font engine creation fails (for example, due to missing open type support). Change the algorithm to retry search if that happens. Add empty string as fallback for non-common scripts indicating 'try to find any font matching the script' as is done in Qt 4. Task-number: QTBUG-34908 Change-Id: I9ac81ff1c275ebb635675dc26b52394789fca60c Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com> Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* | | Merge remote-tracking branch 'origin/stable' into devFrederik Gladhorn2013-11-2617-216/+180
|\| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | For the conflicts in msvc_nmake.cpp the ifdefs are extended since we need to support windows phone in the target branch while it is not there in the current stable branch (as of Qt 5.2). Conflicts: configure qmake/generators/win32/msvc_nmake.cpp src/3rdparty/angle/src/libEGL/Surface.cpp src/angle/src/common/common.pri src/corelib/global/qglobal.h src/corelib/io/qstandardpaths.cpp src/plugins/platforms/qnx/qqnxintegration.cpp src/plugins/platforms/qnx/qqnxscreeneventhandler.h src/plugins/platforms/xcb/qglxintegration.h src/widgets/kernel/win.pri tests/auto/corelib/thread/qreadwritelock/tst_qreadwritelock.cpp tests/auto/corelib/tools/qdatetime/tst_qdatetime.cpp tests/auto/gui/text/qtextdocument/tst_qtextdocument.cpp tools/configure/configureapp.cpp Change-Id: I00b579eefebaf61d26ab9b00046d2b5bd5958812
| * | src/gui/text: whitespace fixesJ-P Nurmi2013-11-267-122/+122
| | | | | | | | | | | | | | | Change-Id: Idd0e0673d76a23593b03558e18bc6afbdb9b38ab Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
| * | Cleanup freetype data in a thread-safe wayRobin Burchell2013-11-204-15/+45
| |/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | One less obvious part of this patch: the fontCache pointer in engineData was not safe. It isn't safe to rely on pointer addresses to verify we're cleaning up the right thing, as a sequence of malloc()/free()/malloc() can return the same pointer, and nothing was cleaning up the dangling pointer in engineData. With this, it is possible to safely drop OpenGL contexts in QtQuick under all conditions with no possibility of crashes. Done-with: Aaron Kennedy <aaron.kennedy@jollamobile.com> Change-Id: I7b91384251593730124323a74737d41333a05f59 Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com> Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
| * Request the glyph at the right subpixel offsetGunnar Sletta2013-11-101-1/+1
| | | | | | | | | | Change-Id: Iace18740565862f1c66e2d654a1a2e7bc1a16fc7 Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
| * Revert "Use Qt's own glyph cache with the freetype engine."Gunnar Sletta2013-11-061-1/+2
| | | | | | | | | | | | | | | | | | | | | | This reverts commit 8c58640fdfe5d182cd8ab9ad0598c54c0487eb7c. The intent was to reduce the maintenance of parallel code paths, but this had a negative impact on performance so we need to enable it again. Change-Id: Ic58f7781ff076055e7c48f20fc0e7a8a2c9e51a4 Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
| * Revert "Ensure CSS rules are inherited from the parent tags"Andy Shaw2013-11-051-5/+1
| | | | | | | | | | | | | | | | | | | | | | Since the original change caused a problem with the CSS rules being always inherited where in some cases this should not be happening. This reverts commit 6f6546613774a48fe12f13f796ed7115dfe49a27. Change-Id: I6e9cf163d752b1869b5e967a7ab59963d655ba87 Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
| * Doc: Fix broken linksSze Howe Koh2013-11-051-1/+1
| | | | | | | | | | | | | | | | Task-number: QTBUG-33360 Change-Id: Ic944cb2f575c35ebad64852ef5fc44a50ac03571 Reviewed-by: Jerome Pasion <jerome.pasion@digia.com> Reviewed-by: Topi Reiniö <topi.reinio@digia.com>
| * Store the font's scalability in QFontEngine.Yoann Lopes2013-10-313-1/+5
| | | | | | | | | | | | | | | | | | This is an enabler to fallback to native font rendering when using a bitmap font in Qt Quick. Task-number: QTBUG-32737 Change-Id: I6d841dd5ef54d78a00f7fab9d80e9c95ff7f7b98 Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
| * Fix finding cursor position in words with accentsJoshua Grauman2013-10-301-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | In positionInLigature() we were mixing indexes into the script item with indexes into the entire string. The getClusterLength() function would expect an attributes array for the current script item and it thus needs to be adjusted by si->position. In addition, when looking for the next grapheme boundary, we were comparing pos (which indexed the string) with end (which indexed the script item). This has also now been fixed by adjusting for si->position as well. Task-number: QTBUG-30123 Change-Id: Id02e2eddcc5b7888eacb34bd1e39cc6911880ca1 Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
| * remove some vestiges of QFontEngineQPFOswald Buddenhagen2013-10-282-67/+0
| | | | | | | | | | | | | | | | | | | | amends d7e424ee66. Change-Id: I9aaef14f8ecba78685ce5f7e908a0b42e554434f Reviewed-by: thiago Reviewed-by: paulot Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com> Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* | remove finishEdit() call, fix double textChanged on deleteGraham Coleman2013-11-211-1/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | There is a known bug where duplicate textChanged signals are triggered on backspace/delete. The bug has been seen on Windows, Mac, and Linux. Gabi showed that this duplicate signal is caused by two calls to finishEdit(), one direct and one nested, in QTextCursorPrivate::remove(). To attempt a fix, I removed the direct call and do not change the nested call. This change only affects text buffers when they receive remove commands. This seems to fix the problem, shown by the test project uploaded to the bug tracker and also in countTextChangedOnRemove in tests/auto/widgets/widgets/qtextedit/tst_qtextedit.cpp. Further analysis of finishEdit() and QTextCursorPrivate::remove(): finishEdit() calls signals contentsChanged() as long as a valid block is being edited. Remove() calls finishEdit for all non-table edits, so finishEdit will be called for most cases. Methods in the public QTextCursor all seem to set adjusted_anchor and anchor, none reading it directly, so I haven't found publicly observable consequences to "adjusted_anchor = anchor = position;". Task-number: QTBUG-15003 Change-Id: Ic35f25ee81c4007867b47cd8be03c146a673f86d Reviewed-by: Graham Coleman <ravelite@gmail.com> Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
* | Introduce QTextDocument::baseUrlJ-P Nurmi2013-10-253-24/+65
| | | | | | | | | | | | | | | | | | Required for QQuickText & friends to implement image resource handling in a clean way - to get rid of QQuickTextDocumentWithImageResources and eventually make QQuickTextEdit's document interchangeable. Change-Id: I97314a6c3e2d5726539d5722795a472631388cb0 Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
* | Merge remote-tracking branch 'origin/stable' into devFrederik Gladhorn2013-10-249-24/+61
|\| | | | | | | Change-Id: Ie56539b2e0be611a363b5f15ae5412a78d6945a2
| * 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>
| * QTextHtmlParser: restore the default link color from app paletteJ-P Nurmi2013-10-231-2/+2
| | | | | | | | | | | | | | | | | | | | The default link color used to be resolved to the link color of the application palette, but got lost during the Qt 5 modularization (see commits 7351a43 and 3f9a7f9). Task-number: QTBUG-28998 Change-Id: I7f07427f6c03f83c557100938ad9f7a39349d303 Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
| * Make it possible to clear glyph caches from the font engine.Gunnar Sletta2013-10-182-0/+11
| | | | | | | | | | Change-Id: Iea62bc1727269ed3893d8b4dbcefa583f1b85d7f Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
| * Restore handling of bullets for lists with a font size of > 36 pixelsAndy Shaw2013-10-161-13/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch partially reverts ad443dfb1d8e9096c4913686aa2ed0bc9b3f5de7, the test that was added is still there as it can be used to compare against Chrome and to check that indenting works correctly. The original behavior of clipping the bullets is correct because the specified indent is where the text itself should be positioned, the bullet uses the available space to the side of it. This is how other web browsers handle the same situation. Change-Id: I63440e037d8efec356459c09228ef4817ccb9cb6 Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
| * Doc: Fix typos and add missing words.Marcel Krems2013-10-121-2/+2
| | | | | | | | | | Change-Id: I40e4780bcabbca29425945a69d8a0781cd5c0e9f Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
| * Export the block's line-height settings to htmlAndy Shaw2013-10-121-0/+23
| | | | | | | | | | | | | | | | Task-number: QTBUG-28404 Change-Id: I87e03ecd981c302a5aefdadf7bcfd9729e37bd13 Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com> Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
| * Re-add deprecated symbol for ABI compatibility with Qt 5.1.Harri Porten2013-10-112-1/+7
| | | | | | | | | | | | | | | | | | | | | | When b0b786a2f05e9451a65519ab8904f55c35f51b7d deprecated QFontDatabase::supportsThreadedFontRendering() it made the function inline also. That way compilers like gcc did not export the symbol anymore. Change-Id: If9c343eaa2ff90540decbc19b0af33d439c0bbaa Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com> Reviewed-by: Lars Knoll <lars.knoll@digia.com>
| * Use QAtomicInt ref/deref patternAllan Sandfeld Jensen2013-10-111-1/+2
| | | | | | | | | | | | | | Change check of QAtomicInt::load with the preferred ref() deref() pattern. Change-Id: I12d2e24812259c16623c8a59cac30cafa4b05565 Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
* | Correct handling of font weights bolder than bold.Roger Maclean2013-10-221-2/+2
|/ | | | | | | | | | | A couple of places were checking for a font weight equal to QFont::Bold rather than a weight that is greater or equal to this. This sometimes results in QFont::Black being rendered with a lighter weight than QFont::Bold even though it should if anything be heavier. Change-Id: I5aa73a84ea2718783bbac93a031d87b2ad90012c Reviewed-by: Rafael Roquetto <rafael.roquetto@kdab.com> Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
* Memory leak with Small-caps QRawFontAllan Sandfeld Jensen2013-10-111-0/+4
| | | | | | | | | | | | | | | Make sure we deallocate the scaled rawfont, when it is not used due to a cached engine being used instead. This fixes a major memory leak in Qt WebKit when using Small Caps in the complex font path. The complex font path is always used for small caps since Qt 5.1. Task-number: QTBUG-33576 Change-Id: I500db9ae6f6576734f1a972387a1a488218a9db6 Reviewed-by: pierre.rossi@digia.com Reviewed-by: Pierre Rossi <pierre.rossi@gmail.com>
* Ensure CSS rules are inherited from the parent tagsAndy Shaw2013-10-111-1/+5
| | | | | | | | | | | | | | | | When CSS was set in the head tag then it was not being inherited by the child tags. This ensures that the inhertiance happens and that the deeper the CSS is set then it will ensure that it has precedence over the ones set on the parent. A test is added that shows the standard inheritance from the head tag and the precedence from child tags in effect too. Task-number: QTBUG-28770 Change-Id: I30be3ec141b2cd8d6e0db8a92669aed34da93b33 Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com> Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>