summaryrefslogtreecommitdiffstats
path: root/src/gui/text
Commit message (Collapse)AuthorAgeFilesLines
* Moving QPdf::stripSpecialCharacter to fontengineJørgen Lind2010-09-305-17/+23
| | | | | | | It is only used by the fontengines. This is one of the steps to make it easier to make fontengines build outside of QtGui. Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@nokia.com>
* Fix QFontMetrics::lineWidth() for fonts with defined point sizeAlessandro Portale2010-09-281-1/+7
| | | | | | | | | | | | | | | | | | | | QFontMetrics::lineWidth() and ::underlinePos() return value 1 regardless of the font size if the size was defined in points (instead of pixels). (On Symbian) QFontMetrics::lineWidth() calls QFontEngine::lineThickness() which uses its fontDef.pixelSize in order to come up with a suitable line width. If the QFont size was defined in points, Qt needs to make sure that fontDef.pixelSize is set accordingly. This patch adds the code to make sure that QFontEngine::fontDef always has a valid pixel size. tst_QFontMetrics::lineWidth() was added, wich failed before and passes after this patch. Task-Number: QTBUG-13009 Autotest: Passes Reviewed-By: Eskil
* Implemeting, exporting and autotesting QFont::lastResortFont()Alessandro Portale2010-09-281-0/+10
| | | | | | | | | | | | | | | | | | | | | An implementation of QFont::lastResortFont() is still(!) missing in Qt 4.7.0. I only became aware of QTBUG-6921, lately. This patch... 1) implements QFont::lastResortFont() in qfont_s60.cpp by first trying to get the lastResortFamily() and then falling back to a hardcoded font. 2) updates the .def files with one additional entry 3) adds an autotest which verifies that lastResortFamily() does return a non-empty string. In the firt place, that autotest makes sure that lastResortFamily() is implemented and exported, so that something like this issue will not go unnoticed in the next Qt port. Task-number: QTBUG-6921 Reviewed-by: Eskil
* Fix text direction setting in QTextBlock layoutJiang Jiang2010-09-231-6/+0
| | | | | | | | QTextControl should no longer inherit the layout direction of parent widget as its default text direction. Reviewed-by: Eskil Abrahamsen Blomfeldt Reviewed-by: Lars Knoll
* remove extra includesRitt Konstantin2010-09-212-2/+0
|
* Make QStaticText honor QPainter::pen() for rich text on X11 w/rasterEskil Abrahamsen Blomfeldt2010-09-201-1/+4
| | | | | | | | | | | The document layou will call setPen() with the PaintContext's text color. If this is different from the current painter settings, the pen will be passed on to the paint engine. The result was that, on X11 using the raster (or opengl) engine, QStaticText would record the pen as changed even when it hadn't explicitly been changed by the document. Task-number: QTBUG-13740 Reviewed-by: Samuel
* Doc: Listed undoable operations in QTextDocumentGeir Vattekar2010-09-151-1/+12
| | | | | Task-number: QT-1212 Reviewed-by: David Boddie
* Merge branch '4.7-upstream' into 4.7-docA-Team2010-09-131-2/+2
|\
| * Linux: Fix mispositioned, misclipped glyphs in large fonts (QStaticText)Eskil Abrahamsen Blomfeldt2010-09-131-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | While drawText() will use the path fallback for large fonts, and never hit this problem, QStaticText will draw the large fonts into the glyph cache. This broke when the freetype (or any other font engine) falls back to the generic implementation of alphaMapForGlyph() which uses path drawing. The problem was that alphaMapForGlyph() is not supposed to contain the bearing of the glyph, only the actual pixels. Since QFontEngine did not honor this contract, we would sample the wrong area in the glyph cache to get the glyph image. Task-number: QTBUG-12540 Reviewed-by: Gunnar
* | Merge branch '4.7-upstream' into 4.7-docA-Team2010-09-102-2/+4
|\ \ | |/
| * Fix cache_cost initialization of QFontEngineMultiWinJiang Jiang2010-09-101-0/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Originally, QFontEngineMultiWin does not set its cache_cost according to the regular font engines it refers to, which makes cache management in QFontCache useless because cache_cost is always 0, and garbage collecting timerEvent can hardly be triggered. This patch solve part of the problem by using cache_cost of the first font engine for QFontEngineMultiWin. However, if a font engine is loaded by QFontEngineMulti::loadEngine, the cost is still not counted. Task-number: QTBUG-12562 Reviewed-by: Eskil Abrahamsen Blomfeldt
| * Fix crash when using unprintable chars in QStaticTextEskil Abrahamsen Blomfeldt2010-09-101-2/+1
| | | | | | | | | | | | | | | | | | The assumption that the output glyph array and input glyph array is of equal size is wrong when unprintable characters are used (and discarded in getGlyphPositions()) Task-number: QTBUG-12614 Reviewed-by: Jiang Jiang
* | Merge branch '4.7-upstream' into 4.7-docA-Team2010-09-094-73/+90
|\ \ | |/
| * Pulled code form initializeDb() out into addFontToScreenDevice()Alessandro Portale2010-09-081-52/+53
| | | | | | | | | | | | Preparations for Application font support on Symbian Task-Number: QTBUG-6611
| * Moved font list getter to qfontdatabase_s60.cpp. Reusable.Alessandro Portale2010-09-082-9/+19
| | | | | | | | | | | | Preparations for Application font support on Symbian Task-Number: QTBUG-6611
| * Pulled some code from One long function into a short oneAlessandro Portale2010-09-081-5/+11
| | | | | | | | | | | | Preparations for Application font support on Symbian Task-Number: QTBUG-6611
| * Merge remote branch 'origin/4.6' into qt-4.7-from-4.6Thiago Macieira2010-09-072-7/+7
| |\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: qmake/Makefile.win32 src/corelib/io/qfsfileengine_win.cpp src/corelib/kernel/qeventdispatcher_win.cpp src/gui/dialogs/qfiledialog_win.cpp src/gui/inputmethod/qcoefepinputcontext_s60.cpp src/gui/text/qfontdatabase_win.cpp src/gui/util/qsystemtrayicon_win.cpp src/script/utils/qscriptdate.cpp tests/auto/qinputcontext/tst_qinputcontext.cpp tests/auto/qscriptengine/tst_qscriptengine.cpp
| | * Ensure that we load system libraries from the correct location.Jan-Arve Sæther2010-09-032-7/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This was a security hole that has been there for a while, but the public awareness have recently rised so the threat is more imminent now. The solution is to fix all places where we dynamically load system libraries. More specifically, we now load all system libraries with an absolute path that points to a library in the system directory (usually c:\windows\system32). We therefore introduce a small class named QSystemLibrary that only loads libraries located in the system path. This shares some of the API with QLibrary (in order to make the patch as small as possible). We don't fix QLibrary due to risk of regressions. In addition, applications can fix the code that calls QLibrary themselves. The problem does not apply to Windows CE, since the search order is documented as not searching in the current directory. However, it touches some CE-specific code - therefore QSystemLibrary is sometimes used on WinCE (however, it will just do a normal LoadLibrary() since its safe anyway). This change does not affect the testability plugin (it is not clearly documented where that plugin is located, and the plugin should never be used in production code anyway) Loading OpenSSL libraries The ssl libraries are handled specially, and searched in this order (we cannot expect them to always be in the system folder): 1. Application path 2. System libraries path 3. Trying all paths inside the PATH environment variable Task-number: QT-3825 Reviewed-by: Thiago Macieira Reviewed-by: Peter Hartmann
* | | Merge branch '4.7-oslo1' into 4.7-docA-Team2010-09-072-3/+7
|\ \ \ | |/ /
| * | Merge branch '4.7' of scm.dev.nokia.troll.no:qt/oslo-staging-1 into ↵Qt Continuous Integration System2010-09-031-0/+4
| |\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 4.7-integration * '4.7' of scm.dev.nokia.troll.no:qt/oslo-staging-1: (25 commits) Recognize @, #, $ and ` as word separators rebuild configure.exe Fix dependencies so JOM will handle parallellization properly Symbian: Disable IPv6 for now Doc: Fixed namespaced Qt build breakage in the model/view tutorial. Doc: Fixing links on index page and corecting HTML in the template. Accept empty authority segments in QUrl as different from not-present Doc: Adds line about non-support for Webkit on Solaris protect nil dictionary from release. Fix potential KERN-EXEC 0 on Symbian. Ukrainian translation updated Fix remote crash in delivering D-Bus calls with too few arguments Ensure that OpenGL contexts are attached to an NSView before first paint Doc: Updating the 3rd party lib used in Qt - including JQuery Doc: Changed the default URL to avoid a Flash plugin crash on x86-64. Reduce memory consumption of QtScript/JSC on Symbian Doc: Updated Supported Platforms page. Finished New binary of configure.exe with -mp/-no-mp option Turn Makefile.win32 into batch-mode, enable /MP and PCH Add option to enable -MP compile option for MSVC ...
| | * | Recognize @, #, $ and ` as word separatorsThorbjørn Lindeijer2010-09-031-0/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The behavior of Qt with these characters was different than other toolkits, which annoys some people. Task-number: QTCREATORBUG-2241 Reviewed-by: mae
| * | | Fix QStaticText copy constructor to also copy text option propertyEskil Abrahamsen Blomfeldt2010-09-031-3/+3
| |/ / | | | | | | | | | | | | | | | | | | | | | | | | The text option property of QStaticText was not copied in the copy constructor, so when the text was detached, the property would be reset to the default. Task-number: QTBUG-13368 Reviewed-by: Gunnar
* | | Merge commit 'staging-1/4.7' into doc-4.7Morten Engvoldsen2010-09-037-19/+51
|\ \ \ | |/ /
| * | Merge branch '4.7' of scm.dev.nokia.troll.no:qt/qt-s60-public into ↵Qt Continuous Integration System2010-09-021-8/+28
| |\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 4.7-integration * '4.7' of scm.dev.nokia.troll.no:qt/qt-s60-public: Symbian: return better default font for SansSerif style hint Removing a left over #if 1..#endif construct Fixed a few warnings. Fixed a bug where passwords would not be committed when confirming.
| | * | Symbian: return better default font for SansSerif style hintAlessandro Portale2010-09-021-0/+27
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The latest QtWebkit will use QFont::defaultFamily() with style hints to ask for the appropriate default fonts on a system. This patch makes sure thath "Nokia Sans S60" and "Series 60 Sans" are prioritized for QFont::SansSerif, if they are present. Task-Number: QTBUG-12611
| | * | Removing a left over #if 1..#endif constructAlessandro Portale2010-09-021-8/+1
| | | |
| * | | Fix broken S60 buildJiang Jiang2010-09-022-1/+7
| | | | | | | | | | | | | | | | Reviewed-by: Liang Qi
| * | | Keep mirrored char handling consistent between some font enginesJiang Jiang2010-09-023-5/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Mirrored character subsitution should be used in right-to-left text direction unless the font is a symbol font. This patch will keep this behavior consistent between FreeType, QPF and S60 font engines. For Mac font engines, the shaping process is delegated to Core Text or ATSUI, so we don't do mirrored char handling by ourselves. Task-number: QTBUG-3852 Reviewed-by: Lars Knoll
| * | | Fix symbol font detection in generic CMap decodingJiang Jiang2010-09-021-2/+2
| |/ / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | For fonts that have an AppleRoman name table, *isSymbolFont failed to return correct value even if they have a symbol table. This patch corrected this behavior by using symbolTable variable to detect that instead of checking if score == Symbol. Also prefer symbol table over AppleRoman table to make generic CMap decoding consistent with QFontEngineFT (which will use the symbol table whenever its available). Task-number: QTBUG-3852 Reviewed-by: Lars Knoll
| * | Fix compiling issue for FreeType version earlier than 2.1.10Jiang Jiang2010-09-011-2/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | FT_GlyphSlot_Embolden was introduced since FreeType 2.1.10 and we started using it since 4.7. Some systems (including RHEL/CentOS 4) only provide earlier versions will get a compiling error if they use -system-freetype to build Qt. This patch fix it by providing a graceful degradation when the function is not available. Task-number: QTBUG-13274 Reviewed-by: Eskil
| * | QTextEngine::LayoutData::reallocate musn't corrupt memoryJoão Abecasis2010-08-311-2/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | ... on re-allocation failure. So, let's actually check the returned pointer and fail, instead of using Q_CHECK_PTR. Task-number: QT-3785 Reviewed-by: Peter Hartmann Reviewed-by: Samuel Rødal
* | | Merge branch '4.7' of git@scm.dev.nokia.troll.no:qt/qt-doc-team into doc-4.7Morten Engvoldsen2010-09-022-3/+4
|\ \ \ | |/ / |/| |
| * | Clarified iterator semantic in documentation and added a code snippet to a ↵Jerome Pasion2010-08-311-2/+3
| | | | | | | | | | | | | | | | | | | | | QML signal handler. Reviewed by: David Boddie Tasks:QTBUG-13243, QTBUG-11779
| * | Fixed spelling, broken links, and missing default values.Jerome Pasion2010-08-301-1/+1
| | | | | | | | | | | | | | | Tasks: QTBUG-13271, QTBUG-13212, QTBUG-12321 Reviewer: David Boddie
* | | Correct last right bearing in boundingBox(glyphs)Jiang Jiang2010-08-277-17/+26
|/ / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Commit 07880542ecc479807c23c5646d263135240822ff introduced regression to QFontMetrics::boundingRect and QTextEngine::boundingBox on FT, XLFD and QPF font engine. Because on these platforms, rightBearing of the last glyphs is already removed from the width returned in glyph_metrics_t. Subtracting that rightBearing twice will cause the resulting boundingBox smaller than expected. This patch fix this by removing last right bearing accounting code from generic QTextEngine::boundingBox, instead, we put it into font engines that need them: QFontEngineWin, QCoreTextFontEngine, QFontEngineMac, QFontEngineS60 and QFontEngineQWS. So that the resulting width should be correct on all platforms without introducing any performance penalties. Task-number: QTBUG-6854, QTBUG-12950 Reviewed-by: Eskil
* | Merge branch '4.7' of scm.dev.nokia.troll.no:qt/oslo-staging-2 into 4.7Gunnar Sletta2010-08-244-16/+35
|\ \
| * | Ignore LayoutDirectionChange event in QTextControlJiang Jiang2010-08-191-8/+0
| | | | | | | | | | | | | | | | | | | | | | | | LayoutDirectionChange should no longer affect text direction in 4.7, by ignoring this event in QTextControl, we make the behavior consistent with QLineEdit. Reviewed-by: Lars Knoll
| * | respect the layout direction in the default text optionLars Knoll2010-08-181-0/+4
| | | | | | | | | | | | | | | | | | | | | | | | This fixes a regression against 4.6 where setting the default layout direction for rich text got ignored Task-number: QT-3566 Reviewed-by: Jiang Jiang
| * | Disable minRightBearing optimization in QTextLayout on MacEskil Abrahamsen Blomfeldt2010-08-111-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Neither of the Mac font engines have implemented minimum right bearing, which will cause them to return 0 for the minimum value. This will cause the right bearing to never be calculated prior to breaking and thus never be a part of the breaking width. Since actually implementing the functions is too time consuming for right now, we will disable the optimization for the time being. Reviewed-by: Olivier
| * | doc: Clarify documentation of QStaticTextEskil Abrahamsen Blomfeldt2010-08-091-4/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | There has been some confusion concerning what HTML tags can be used when using the rich text format with QStaticText. This patch attempts to make it clearer in the documentation that the tags have to be text related. Reviewed-by: Samuel
| * | Fix scrollbar randomly popping up in QPlainTextEditEskil Abrahamsen Blomfeldt2010-08-091-4/+17
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When a line break was detected, we would retain the value of the right bearing for the character after the break instead of resetting it to the right bearing of the previous value. This could in some cases cause the bounding rect of the text to be wrong, and could cause unnecessary horizontal scrollbars to pop up. It was especially visible when using WrapAnywhere. Visible e.g. in the compile output in Creator. Done-by: mae Reviewed-by: Eskil Reviewed-by: Lars
* | | Use binarysort to find items.Gunnar Sletta2010-08-242-14/+29
|/ / | | | | | | | | Task: http://bugreports.qt.nokia.com/browse/QTBUG-231 Reviwed-by: Eskil
* | Fix QTextEngine overflow caused by extremely long textJiang Jiang2010-08-053-33/+87
| | | | | | | | | | | | | | | | | | | | | | | | Internally, QTextEngine use int to calculate most of the layout data required. If a string longer than 2^24 is passed into either QTextEngine or classes using it (QStackTextEngine, QPainter, QFontMetrics, etc.), overflow will happen because the memory size required to allocate for layout will become too large for int to handle. This patch will prevent these cases and add error handling mechanism for relevant code. Task-number: QT-3658 Reviewed-by: Eskil Abrahamsen Blomfeldt
* | Merge branch '4.7' of scm.dev.nokia.troll.no:qt/oslo-staging-1 into ↵Qt Continuous Integration System2010-08-021-3/+29
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 4.7-integration * '4.7' of scm.dev.nokia.troll.no:qt/oslo-staging-1: Doc: updating index page, x platform and platform spec. Removing redundant style files Added notice that some links are online documents. Modified qtdemo so error does not appear when there is no demo/example description availablei (QTBUG-12522). There is already output when building Qt that a description is missing -- the user does not need to witness an error about ensuring the documentation has been built just because a description has not been contributed. Fix Japanese characters not displayed in webkit on Mac Cocoa 64 (Regression) configure: don't symlink the mkspecs/features directory Doc: adding changes to getting started and fixing redirection links doc: Fixed many qdoc errors. Fixed potential infinite loop in QFileSystemWatcher on Mac. qdoc: Removed exclusion of declarative directories in qt-api-only.qdocconf Fixed comment about all enums being accessible in QML. Fix for QTBUG-12527. Simplify network manager settings code. Use an enum to return the bearer type of a network configuration. Rename QNetworkConfiguration::bearerName() function.
| * | Fix Japanese characters not displayed in webkit on Mac Cocoa 64 (Regression)Simon Hausmann2010-08-021-3/+29
| | | | | | | | | | | | | | | | | | | | | | | | | | | Our stringToCMap implementation for CoreText that bypasses the shaping needs to have basic support for font cascading / glyph substitution. We now use CTFontCreateForString to determine the substitute font for missing glyphs. Task-number: QTBUG-12411 Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@nokia.com>
* | | Fix crash when setting font decorations on text drawn with QStaticTextEskil Abrahamsen Blomfeldt2010-08-021-1/+6
|/ / | | | | | | | | | | | | | | | | | | Qt has a run-time assert for implementing drawPolygon() in any subclass of QPaintEngine, which will be hit if set font decorations on the font used by QStaticText. Since we don't care about line decorations or any other shapes drawn in the QTextLayout, we simply leave the implementation empty. Reviewed-by: Gunnar
* | Merge remote branch 'origin/4.6' into 4.7-from-4.6Rohan McGovern2010-07-291-1/+4
|\ \ | |/ | | | | | | | | | | | | | | | | Conflicts: src/3rdparty/webkit/VERSION src/3rdparty/webkit/WebKit/qt/ChangeLog src/gui/itemviews/qlistview.cpp tests/auto/qlistview/tst_qlistview.cpp tests/auto/qnetworkreply/test/test.pro tests/auto/qsocks5socketengine/qsocks5socketengine.pro
| * Workaround for QTBUG-8013: Do not return an ascent of 0Alessandro Portale2010-07-271-1/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Symbian's CFont::FontMaxAscent() returns in some cases an incorrect value of 0. That usually happens (for some font sizes) if a stroke based font is the main system font. We were able to reproduce it on some S60 3.2 devices with a chinese language pack installed. This patch will test if CFont::FontMaxAscent() returns 0. And if so, it alculates an ascent taht makes more sense. Task-number: QTBUG-8013 Reviewed-by: Liang Qi
* | Merge branch '4.7' of scm.dev.nokia.troll.no:qt/oslo-staging-2 into ↵Qt Continuous Integration System2010-07-212-4/+2
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 4.7-integration * '4.7' of scm.dev.nokia.troll.no:qt/oslo-staging-2: Use aligned load for the blending of RGB32 over RGB32 tst_moc: workaround gcc bug. Some more change to the changelog Fix compilation with QT_NO_GRAPHICSVIEW Updates changes-4.7.0 Fixes the Oracle nchar bug when NLS_CHARSET is different with NLS_NCHAR_CHARSET. Add a missing file in the config.test for SSE 4.2 Remove the masking when computing qAlpha() Add support for more vector instructions on x86 Workaround gcc bug, disable test with old version of gcc Do not crash due to a infinite recursion when using voiceover on MacOS doc: Fix qdoc errors for text related files QGraphicsItem: Animation leaves drawing artifacts when clipping is used. moc: Slot with complex template default value does not compile
| * | doc: Fix qdoc errors for text related filesEskil Abrahamsen Blomfeldt2010-07-202-4/+2
| | | | | | | | | | | | | | | | | | | | | | | | QTextBlock::layoutDirection() doesn't exist, and the QStaticText constructor no longer takes a size argument. Task-number: QTBUG-12072 Reviewed-by: Fabien Freling