summaryrefslogtreecommitdiffstats
path: root/src/gui/text
Commit message (Collapse)AuthorAgeFilesLines
* Merge branch '4.7' of scm.dev.nokia.troll.no:qt/oslo-staging-2 into ↵Qt Continuous Integration System2011-03-251-1/+4
|\ | | | | | | | | | | | | 4.7-integration * '4.7' of scm.dev.nokia.troll.no:qt/oslo-staging-2: Make sure num_glyphs pass to HarfBuzz is large enough
| * Make sure num_glyphs pass to HarfBuzz is large enoughJiang Jiang2011-03-241-1/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | (Backport from master) Currently we only pass the num_glyphs for the run to HB_ShapeItem, but it can be less then the string length for this run because of Unicode surrogates. Thus, we need to pass at least the length of that run as num_glyphs to HB (given that we have enough space allocated because for the entire string), if that's still not enough, we will do ensureSpace again according to the num_glyphs returned by HB and move remaining glyphs backwards. Task-number: QTBUG-15679 Reviewed-by: Lars Knoll
* | Merge branch '4.7' of scm.dev.nokia.troll.no:qt/oslo-staging-2 into ↵Qt Continuous Integration System2011-03-211-1/+1
|\ \ | |/ | | | | | | | | | | 4.7-integration * '4.7' of scm.dev.nokia.troll.no:qt/oslo-staging-2: Don't crash calling QTextDocument::blockBoundingRect on invalid block
| * Don't crash calling QTextDocument::blockBoundingRect on invalid blockEskil Abrahamsen Blomfeldt2011-03-211-1/+1
| | | | | | | | | | | | | | | | If the block is invalid, QTextBlock::layout() will return 0 and we would dereference a null pointer. Task-number: QTBUG-18192 Reviewed-by: Jiang Jiang
* | Merge branch '4.7' of scm.dev.nokia.troll.no:qt/oslo-staging-2 into ↵Qt Continuous Integration System2011-03-151-22/+25
|\ \ | |/ | | | | | | | | | | | | | | 4.7-integration * '4.7' of scm.dev.nokia.troll.no:qt/oslo-staging-2: Designer: Fix a bug affecting tab reordering of promoted tab widgets. Designer: Fix a bug clearing the Z-Order when adding a new widget. Adjust right bearing when breaking with line separators
| * Adjust right bearing when breaking with line separatorsJiang Jiang2011-03-151-22/+25
| | | | | | | | | | | | | | | | | | | | If we found a forced line break with line separator (e.g. '\n'), take the right bearing of previous glyph into account, otherwise the resulting text width will be slightly smaller than the one without a line separator. Task-number: QTBUG-17020 Reviewed-by: Eskil
* | Merge branch '4.7' of scm.dev.nokia.troll.no:qt/qt-qml into 4.7-integrationQt Continuous Integration System2011-03-141-2/+9
|\ \ | | | | | | | | | | | | * '4.7' of scm.dev.nokia.troll.no:qt/qt-qml: Fix TextEdit mouseSelectionMode overriding selectByMouse.
| * | Fix TextEdit mouseSelectionMode overriding selectByMouse.Andrew den Exter2011-03-141-2/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | If selectByMouse is false don't allow any text selection on mouse move. Change-Id: Ic9f309899bc0de48066a2393e088e15b3a2f06db Task-number: QTBUG-18072 Reviewed-by: Martin Jones
* | | Merge branch '4.7' of scm.dev.nokia.troll.no:qt/oslo-staging-2 into ↵Qt Continuous Integration System2011-03-101-1/+1
|\ \ \ | | |/ | |/| | | | | | | | | | | | | | | | 4.7-integration * '4.7' of scm.dev.nokia.troll.no:qt/oslo-staging-2: Fix QGraphicsScene returning incorrect focus item. Not requiring valid QTextBlock in previous()
| * | Not requiring valid QTextBlock in previous()Jiang Jiang2011-03-101-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Commit 64852122ba7 introduced a regression in QTextBlock::previous(), programs that do doc.end().previous() will not be able to retrieve the last valid block. Revert this change so that we can keep the behavior consistent with previous versions. Task-number: QTBUG-18026 Reviewed-by: Eskil
* | | Merge branch '4.7' of scm.dev.nokia.troll.no:qt/qt-qml into 4.7-integrationQt Continuous Integration System2011-03-091-1/+1
|\ \ \ | | |/ | |/| | | | | | | | | | | | | * '4.7' of scm.dev.nokia.troll.no:qt/qt-qml: Fix unstable qdeclarativeflickable test. Update TextEdit's visible selection when only the anchor changes. Set correct initial value for TextEdit and TextInput canPaste property
| * | Update TextEdit's visible selection when only the anchor changes.Andrew den Exter2011-03-081-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | At the limits of a TextEdit's text a key press can change/reset the anchor position without changing the cursor position. Checking the cursor position alone isn't enough to determine the selection hasn't changed. Change-Id: Ic425ac0c06897d77e9c86b907ff10b39d78dd7a1 Task-number: QTBUG-17982 Reviewed-by: Martin Jones
* | | Merge branch '4.7' of scm.dev.nokia.troll.no:qt/qt-qml into 4.7-integrationQt Continuous Integration System2011-03-041-2/+4
|\ \ \ | |/ / | | | | | | | | | | | | | | | | | | | | | * '4.7' of scm.dev.nokia.troll.no:qt/qt-qml: Fix TextInput auto test failure on mac. Fix word selection locking on string boundaries. Fix potential crash in QTextControl. QDeclarativePropertyMap::keys() cannot be called from qml Compensate for horizontal scroll in TextInput micro focus.
| * | Fix potential crash in QTextControl.Lasse Holmstedt2011-03-041-2/+4
| | | | | | | | | | | | | | | | | | | | | | | | inputContext() is only safe to call if there is a current contextWidget. Change-Id: I6cbccf5f5fbb2d8c9ca6acf5f7e02f680eb84483 Reviewed-by: Andrew den Exter
* | | Merge branch '4.7' of scm.dev.nokia.troll.no:qt/oslo-staging-2 into ↵Qt Continuous Integration System2011-02-282-7/+13
|\ \ \ | |/ / |/| / | |/ | | | | | | | | | | 4.7-integration * '4.7' of scm.dev.nokia.troll.no:qt/oslo-staging-2: Fix Mac synthesized italic fonts clipping issue for QGLWidget Fix cursor position adjustment when removing strings Fix out of bounds handling in Mac shaper
| * Fix Mac synthesized italic fonts clipping issue for QGLWidgetJiang Jiang2011-02-281-5/+10
| | | | | | | | | | | | | | Backport 43d5a0757d857c2a6694ae81d6b70c04ef876aff from 4.8. Task-number: QTBUG-16954 Reviewed-by: Eskil
| * Merge branch 'graphics-team-text-4.7' into 4.7Eskil Abrahamsen Blomfeldt2011-02-281-2/+3
| |\
| | * Fix cursor position adjustment when removing stringsJiang Jiang2011-01-251-1/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Commit 0ba1b4d0 introduced a regression to QTextDocument: it postponed cursor position adjustment until the move operation is done, but contentsChanged will be triggered by finishEdit() in this move operation, thus cursor positions in this signal handler will be in inconsistent states (normally we should first update cursor position then trigger contentsChanged). In this case we should also postpone finishEdit() handling after cursor positions have been adjusted, then the states expose to applications will be consistent. Task-number: QTBUG-15857 Reviewed-by: Eskil
| | * Fix out of bounds handling in Mac shaperJiang Jiang2011-01-141-2/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | After ensure space, local QGlyphLayout variable should be updated to the moved address. stringToCMap returns true for success, so stringToCMapFailed should be the reverse of the return value. Out of bounds happened quite often in all situations using the QStackedTextEngine, because the memory allocated at the first time is usually not much, making it easier to trigger out of bounds in shaping. But it can also happen when using normal QTextLayout. Test it by comparing the width returned by normal QTextLayout and the width returned by QTextLayout created from QStackedTextEngine via QFontMetricsF. Task-number: QTBUG-16648 Reviewed-by: Eskil
* | | Forward mouse events from TextInput and TextEdit to QInputContext.Andrew den Exter2011-02-212-41/+99
| | | | | | | | | | | | | | | | | | | | | | | | | | | This brings TextInput in line with QLineEdit. The fix for TextEdit applies equally to QTextEdit. Change-Id: I5c47e5c8e951ee53cb1fe45d9c302050cd19deef Task-number: QTBUG-15705 Reviewed-by: axis
* | | Use same values for Text.lineHeightMode and QTextBlock::lineHeightMode from ↵Yann Bodson2011-02-092-4/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | master. - MultiplyHeight becomes ProportionalHeight - PixelHeight becomes FixedHeight Change-Id: I2a1ebc6ff9db7e62f513919f19773f985b08f8d7 Reviewed-by: Michael Brasser
* | | Add a mouseSelectionMode property to TextEdit and TextInput.Andrew den Exter2011-02-013-4/+30
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Adds an option to do per word selection when selectByMouse is true. Also changes the selection behavior so that the first word selected remains selected when the direction of the selection changes which is more consistent with other implementations including the existing per word selection in QTextEdit. Task-number: QTBUG-16283 Reviewed-by: Martin Jones
* | | Add support for line spacing in Text element.Yann Bodson2011-01-282-3/+19
| | | | | | | | | | | | | | | | | | | | | This change adds the lineHeight and lineHeightMode properties. Task-number: QTBUG-14296 Reviewed-by: Martin Jones
* | | Merge branch '4.7' of scm.dev.nokia.troll.no:qt/qt-qml into qtquick11Bea Lam2011-01-274-27/+553
|\ \ \ | |/ / | | | | | | | | | | | | Conflicts: src/declarative/graphicsitems/qdeclarativegridview.cpp src/declarative/graphicsitems/qdeclarativelistview.cpp
| * | Merge branch '4.7' of scm.dev.nokia.troll.no:qt/qt-s60-public into ↵Qt Continuous Integration System2011-01-251-2/+2
| |\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | 4.7-integration * '4.7' of scm.dev.nokia.troll.no:qt/qt-s60-public: Temporary fix for ambiguous cast from four letter char constant Fix QMAKE_POST_LINK in Symbian for targets with special characters.
| | * | Temporary fix for ambiguous cast from four letter char constantEckhart Koppen2011-01-251-2/+2
| | | |
| * | | Fix cursor position adjustment when removing stringsJiang Jiang2011-01-251-1/+3
| |/ / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Commit 0ba1b4d0 introduced a regression to QTextDocument: it postponed cursor position adjustment until the move operation is done, but contentsChanged will be triggered by finishEdit() in this move operation, thus cursor positions in this signal handler will be in inconsistent states (normally we should first update cursor position then trigger contentsChanged). In this case we should also postpone finishEdit() handling after cursor positions have been adjusted, then the states expose to applications will be consistent. Task-number: QTBUG-15857 Reviewed-by: Eskil
| * | Avoid possible font name collisions on fbservAlessandro Portale2011-01-243-23/+343
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | QTBUG-6611 implemented the long awaited app font support on Symbian. One of the problems with the underlying Symbian Api for font loading is that all fonts go into one system wide font store on fbserv. All fonts are visible to and accessible by every application. And there is no way to find out if a font is an app font and whose process' app font it is. If a font with a certain family name is already loaded on fbserv, no other application can load its font with the same family name. If two applications access the same font, bad things can happen (details: QTBUG-16514). This patch works around naming collisions on the fbserv. It also prevents Qt applications from using other Qt applications' app fonts. It does so by "marking" the name of the temporary ttf file before the file gets loaded by fbserv. All font name strings in the font's 'name' table get a marker string appended. The marker is composed by a "Q", the uid3, and on Symbian^3|PR1&below the pid. The marker length is four characters. When the QFontDatabase is populated, all own app font names are cleand from the marker, so that the Qt app can use the original font name. Other applications' app fonts are detected and filtered out of the own font database. Symbian's font Api supports only 24 characters as names for font families. The name marker reduces the effective characters to 20. The reduced name length is documented for QFontDatabase::addApplication[FontFromData] as a note. Since the app font feature is much safer now, it got re-enabled for Symbian^1 and below by reverting 25ac59fcf1bb03c9af9a2c967218c96c7c77361a . Task-number: QTBUG-16514
| * | Do not load aplication fonts on Symbian^1 and belowAlessandro Portale2011-01-191-0/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | read http://bugreports.qt.nokia.com/browse/QTBUG-16514 for a recipy to reboot the phone just by handling with fonts. Symbian^1 is vulnerable, and Symbain^3 prevents a phone reboot. Therefore, I prefer to disable the app font feature for Symbian^1, until QTBUG-16514 us properly handled. Task-Number: QTBUG-16514
| * | Supporting Qt application fonts on SymbianAlessandro Portale2011-01-192-22/+223
| |/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch finally implements the missing application font support on Symbian. QFontDatabase's addApplicationFont[FromData], applicationFontFamilies and removeApplicationFont are now functional and allow an application to load, use and unload fonts at run-time. The underlying Symbian API comes with some restrictions/specialties. Most of them are worked around in this patch, the missing ones are left as part of QTBUG-16514: - The font file must be a file, not a memory buffer. Web fonts and qrc fonts come as memory buffers. These buffers are saved to a temporary .ttf file and the file is loaded by the underlying Symbian API. The temporary file can only be deleted after the font is unloaded. - The font file must be in a public location in order to be loadable by Symbian. It can for example not reside in the private application directory. Therefore, all application fonts (also those that are on the file system) become a temporary .ttf file in c:\temp\. - Symbian3/PR2 will come with a font table API which provides direct access to font tables. Symbian3/PR1 and below are missing this API, therefore, an own TFontStore is (ab)used to read font tables out of a font. This patch is considering both code paths in several occasions, making the Qt Symbian font implementation significantly less maintainable. - The fonts are loaded into Symbian's central font server. Loaded fonts from different processes can have colliding font typeface names (not file names) on that server. The server does not separate loaded fonts by their origin processes. Working around such collisions is part of QTBUG-16514. The number of fonts loadable at the same time by a Qt application is limited to the random value 5. Just to prevent abuse of the font server's memory. As usual, this patch was looked at by colleagues, and it was adjusted according to the feedback. But since the bus factor for the interaction of Qt's and Symbian's font systems is 1, I reviewed this patch, myself. Task-Number: QTBUG-6611 Autotest: tst_QFontDatabase::addAppFont
* | Merge branch '4.7' of scm.dev.nokia.troll.no:qt/qt-qml into qtquick11Martin Jones2011-01-1996-112/+112
|\ \ | |/
| * Merge branch '4.7' of scm.dev.nokia.troll.no:qt/oslo-staging-1 into ↵Qt Continuous Integration System2011-01-1096-97/+97
| |\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 4.7-integration * '4.7' of scm.dev.nokia.troll.no:qt/oslo-staging-1: QFont/Windows: restrict the pixel size accuracy Update copyright year to 2011. For non-developer builds, skip test that requires private API tst_qhttpnetworkconnection: Compile fix Change QHostInfoCache to use QElapsedTime instead of QTime. Fix for qtdemo bug
| | * QFont/Windows: restrict the pixel size accuracyJoerg Bornemann2011-01-101-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | Like on all other platforms, the pixel size accuracy is now restricted to two digits after the decimal point. Task-number: QTBUG-15688 Reviewed-by: Jiang Jiang
| | * Update copyright year to 2011.Jason McDonald2011-01-1096-96/+96
| | | | | | | | | | | | Reviewed-by: Trust Me
| * | Merge branch 'graphics-team-text-4.7' into 4.7Eskil Abrahamsen Blomfeldt2011-01-101-2/+2
| |\ \ | | |/ | |/|
| | * Fix crash in QTextBlock::next()/previous()Jiang Jiang2011-01-071-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | We should check not just p but also n in next()/previous(), which is what isValid() does. Otherwise n == 0 will cause crash in QFragmentMap. Task-number: QTBUG-16279 Reviewed-by: Eskil
| * | Merge branch '4.7' of scm.dev.nokia.troll.no:qt/oslo-staging-2 into ↵Qt Continuous Integration System2011-01-076-6/+6
| |\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | 4.7-integration * '4.7' of scm.dev.nokia.troll.no:qt/oslo-staging-2: Fixes crash in QGraphicsItem's destructor. Doc: Fixing typo
| | * | Doc: Fixing typoSergio Ahumada2011-01-076-6/+6
| | |/
| * | improve performance of QTextEngine, esp. setBoundary by using non-detaching ↵Milian Wolff2010-12-231-7/+7
| |/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | operator[] Improves scrolling in testfile content.xml attached to QTBUG-9549. According to callgrind, the improvement is nearly 35% (comparing total incl. cost of QTextEngine::setBoundary) total incl cost / calls to setBoundary = before: 6.0883269E9 / 46520 = approx. 130875.47 after: 2.4834313E9 / 29370 = approx. 84556.733 in relation this gives us: 84556.733 / 130875.47 = approx. 0.64608542 Merge-request: 975 Reviewed-by: Harald Fernengel <harald.fernengel@nokia.com>
* | Disable dragging text in TextEdit.Andrew den Exter2011-01-113-1/+21
|/ | | | | | | | Add a dragEnabled property to QTextControl so text dragging can optionally be disabled. Task-number: QTBUG-16248 Reviewed-by: Martin Jones
* Runtime dependency on Symbians Font Table APIAlessandro Portale2010-12-093-147/+181
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The Symbian Font Table API is a feature from (the former) Symbian^4 which will be backported into Symbian^3 in a random minor OS version. In order to keep Qt source and binary compatible between these minor versions, we cannot decide at compile time whether or not to use the new Font Table API. This patch changes many "#ifdef Q_SYMBIAN_HAS_FONTTABLE_API" into "if (symbianFontTableApiAvailable())". The Font Table feature is detected at runtime. Currently, CFeatureDiscovery is not used, because at the time of writing, that feature flag test would give false positives or false negatives. Instead, CFont::ExtendedFunction() is called with KFontGetFontTable to see if the return value is KErrNone, which indicates that the feature is available. The avalibility information gets cached, so the hack happens only once per application run. The font table Api feature comes with helper classes such as "RFontTable" and "TGetFontTableParam". But we cannot use those, because we want to stay source and binary compatible across the Symbian(^3) versions without the Font table API and those with. So, in Qt, RFontTable is simply not used and TGetFontTableParam is replicated as "QSymbianTGetFontTableParam". Same for KFontGetFontTable, KFontReleaseFontTable and later also FfFontTable. This patch has been looked at by colleagues, who verified the overall #ifdef to if() conversion, but did not feel entitled to give their official Reviewed-By for an obscure topic like Qt font support on Symbian. (It sucks to be the only creature in this universe who -kind of- knows how Qt text handling and Symbian text handling interact) Task-Number: QTBUG-15515
* Fix crash in QTextDocument::markContentsDirtyJiang Jiang2010-12-061-2/+4
| | | | | | | | 6f6c25b6 introduced this regression because it didn't check d->lout before calling d->lout->documentChange(). Task-number: QTBUG-15777 Reviewed-by: Eskil
* Fix QTextEdit::selectAll crash from textChanged()Jiang Jiang2010-12-061-0/+3
| | | | | | | | | Doing selectAll() after the entire block of text has been removed will cause this crash, because we didn't check if the block we found is valid or not. Task-number: QTBUG-15857 Reviewed-by: Eskil
* Fix strict-aliasing violation warning.Thiago Macieira2010-11-261-1/+9
| | | | | Strict aliasing is violated here, so just silence the compiler (GCC) by using an extension.
* Doc: Fixing typoSergio Ahumada2010-11-221-1/+1
|
* Fix possible crash in QStaticText and QDeclarativeTextLayoutEskil Abrahamsen Blomfeldt2010-10-292-10/+66
| | | | | | | | | | | | | The QStaticTextItem held an uncounted reference to QFontEngine. The pointer would dangle in some cases where there was no font object referencing the engine and the cache was cleaned out (e.g. when a new application font is added.) Properly count the reference, and also add reference counting to userData to make it harder to shoot yourself in the foot, since the QStaticTextItem class is now being used in different places, Task-number: QTBUG-14446 Reviewed-by: Martin Jones
* Fixed many spelling errors.Rohan McGovern2010-10-256-8/+8
|
* Fixed font rendering in manually built Qt on ARMv6.Samuel Rødal2010-10-201-2/+19
| | | | | | | | The pixelSize ends up being 0 unless these changes are applied. Must be a compiler bug in GCC 4.3.x, fixed in GCC 4.4.1. Reviewed-by: Prasanth Reviewed-by: Olivier Goffart
* Remove obsolete tweak in QFontEngineS60::alphaMapForGlyphAlessandro Portale2010-10-121-17/+5
| | | | | | | | | | | | | | | | | | | | | | On some Symbian versions (apparently <= Symbian^1), CFont::GetCharacterData() returns 8-bit data with gray values 0x00, 0x10 ... 0xe0, 0xf0 due to a bug. The glyphs are nowhere perfectly opaque, which is bad for blitting. This has been however been fixed for Symbian^3. The funny thing about this tweak was that it was only executed on Symbian^3 (with the OpenVG/OpenGL paintengines). On Symbian^1 and below (rasterpaintengine), QFontEngineS60::alphaMapForGlyph() does not get called at all, anymore. Therefore, the removal of this tweak should not be noticable anywhere, except that on Symbian^3, quite a few CPU cycles are now saved. See the attachments in QTBUG-14419 for details. Task-Number: QTBUG-14419 Reviewed-By: TrustMe
* Optimize QFontEngineS60::recalcAdvances()Alessandro Portale2010-10-121-3/+6
| | | | | | | | | | | | | | | | | | | (Addition to ab057be7228d20d909246183505b72e821cc440f) Instead of using a glyph_metrics_t (which gets filled with data from a TOpenFontCharMetrics), we use a TOpenFontCharMetrics, directly. Also, the advances_y gets set to 0. Like on the other platforms. These change increases the Fps in qt\tests\manual\textrendering\textperformance "Latin" from 16.5 to 16.6 Fps on an XM5800. I am sure that I can construct a benchmark where the speed gain is bigger. Task-number: QTBUG-14378 Reviewed-by: TrustMe