summaryrefslogtreecommitdiffstats
path: root/src/gui/text
Commit message (Collapse)AuthorAgeFilesLines
* QTextLayout docs: a minor typo fixKonstantin Ritt2012-06-211-1/+1
| | | | | Change-Id: I5e6d02f17e9064afe0c21dda806e67bc14c728b7 Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
* Disable hinting for scaled glyphs in FreeTypeJiang Jiang2012-06-141-0/+5
| | | | | | | | | | | | Scaling hinted glyphs looks ugly, and it makes smooth scaling animation not possible. Since nothing will work as intended in hinted mode, we should disable hinting automatically when glyphs are loaded with scaling transformation. Task-number: QTBUG-24846 Change-Id: Id7fb5f5bdc2d00be157b0c5d55c316473571473c Reviewed-by: Thorbjørn Lund Martsum <tmartsum@gmail.com> Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
* QFontMetrics/QRawFont: Optimize SMP code points handling a bitKonstantin Ritt2012-06-144-11/+19
| | | | | | | | | Calling QString::fromUcs4() for the single UCS-4 -encoded character is quite suboptimal since the BOM detections and the resulting QString aren't really used; all we need is to split the UCS-4 code point into the UCS-2 surrogate pair. Change-Id: Ia5b68312909bf551cf2493d9e2752a7d7d837fb9 Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
* Add the AGLFN tables generator, update the tables up to AGLFN 1.7Konstantin Ritt2012-06-142-175/+289
| | | | | | | Task-number: QTBUG-21727 Change-Id: Ib2cacc2a52b2853059d6c873a33dcde735fbe168 Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
* AGLFN: optimize glyph name lookup and reverse map creationKonstantin Ritt2012-06-142-15/+22
| | | | | | | | Use binary search in glyph name lookup, drop the linear search sentinel (0xFFFF); Pass the reverse map by ref, initialize with memset. Change-Id: I56de64bf2352af0615787e4cc0e13c922c640822 Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
* Make distance field image width variable.Yoann Lopes2012-06-121-20/+24
| | | | | | | | | | The distance field generator was always returning a 64x64 pixels image. It now returns an image with a variable width (width of the represented glyph) and always a height of 64px. Change-Id: Id5f11a50a8031ebca10cd4803adf179ccde6db26 Reviewed-by: Kim M. Kalland <kim.kalland@nokia.com> Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@nokia.com>
* QZip: improve reading of zip files, fix some edge cases in writingKonstantin Ritt2012-06-081-16/+141
| | | | | | | | | | This supercede https://codereview.qt-project.org/#change,25111 and fixes some more cases; The autotest crash is fixed as well (but the test itself omitted due to .pro file misconfiguration) Change-Id: I4a3adde18b4f9a8ac9822f700eee71d2a12b9c2c Reviewed-by: Harald Fernengel <harald.fernengel@nokia.com>
* Namespace the bundled zlib symbols, to avoid clash with user zlibaavit2012-06-082-6/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | When Qt is being compiled and is using the bundled zlib, QtCore needs to export the zlib symbols, since zlib is needed in other Qt libraries as well. That gives a danger of a potentially disastrous symbol clash if the user later on links with both Qt and an external zlib (ref. e.g. QTBUG-15071). This commit enables a zlib compilation flag that causes all zlib symbols to be redefined with a prefix. Hence, they will not clash with a standard zlib. A minor drawback is that zlib.h will now have #defines for a few semi-normal identifiers. Hence, a couple of more changes are done: In the private qzip code, the identifer crc32 had to be renamed. QHttpNetworkReplyPrivate needed no change, but as a defensive measure the #include <zlib.h> is moved from the _p.h file to the .cpp file, to avoid surprising compilation errors later in code that include that header. This commit does not in itself solve the issue of how to let Qt libraries outside of qtbase use the same bundled zlib, but it is a prerequisite for that. Change-Id: If84105901a8c90d35009faffe660c85a6bd2fee5 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Shift positions for lineBreakTypeKonstantin Ritt2012-06-071-2/+3
| | | | | | | | | | | | | | | | | | | to keep them consistent with positions for all other flags. This changes the internal behavior so that attributes[0].lineBreakType now means "break opportunity at start of the text (before the first character in the string)" and is always assigned with HB_NoBreak to conform rule LB2 (see http://www.unicode.org/reports/tr14/#LB2). The current implementation is based on the sample implementation from tr14 that aimed to be as simple as possible rather than to be optimal. From now, we can use pieces of the attributes array "as is" without having to adjust some positions. Or we can analize some long text by chunks (e.g. paragraph by paragraph) and consume less memory. This introduces a minor overhead that will be eliminated shortly. Change-Id: Ic873a05a9d5203b1c3d5aff2e4445a3f034c4bd2 Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
* The QFontEngineFT files are not built into QtGui anymore.Thiago Macieira2012-06-052-13/+1
| | | | | | | | | | | | | These files are only built into QtPlatformSupport, so the Q_GUI_EXPORT macro is now wrong. Remove it. Additionally, since these files are built into QtPlatformSupport, the windows platform plugin does not need to build them again. To-Do: move the files to src/platformsupport/fontdatabases Change-Id: I9d69b97ca25ee52ab627cfa633f43b277acc5e05 Reviewed-by: Jiang Jiang <jiang.jiang@nokia.com>
* Remove QFont::handleGirish Ramakrishnan2012-05-313-14/+0
| | | | | | | This function is unavailable in QPA land. Change-Id: I43bb95d64e3abaa2fbcd8de07ca39c1d28f46f42 Reviewed-by: Jørgen Lind <jorgen.lind@nokia.com>
* Eliminate a warning in unsigned integer comparisonJiang Jiang2012-05-311-1/+1
| | | | | | | | The length we cast is from int QTextEngine::length() so it's safe to do so. Change-Id: I60fdbcb5a96c99b767093102a30e97951ef5b6ea Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@nokia.com>
* Compile with clang when C++11 support is enabledBradley T. Hughes2012-05-301-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 Change-Id: I16127aef2171324135b5c0c2ac611b8b4f03d7b7 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Fix text decoration width roundingJiang Jiang2012-05-301-1/+1
| | | | | | | | | | | | | | width passed in qreal should be set with setWidthF instead of setWidth, otherwise the fractional part is lost. Also remove the raster paint engine hack that has been removed in Qt 4.8, it's no longer needed. This fixed the drawUnderline and drawRightToLeft auto tests in tst_qglyphrun. Change-Id: Iace46fc27ff156c07fb4d08a145269fad36e9fdb Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
* Introduce QUnicodeToolsKonstantin Ritt2012-05-301-4/+4
| | | | | | | | | | | | | Add QUnicodeTools namespace and rename qGetCharAttributes to initCharAttributes; Make it possible to disable tailoring globally by overriding qt_initcharattributes_default_algorithm_only value (useful for i.e. running the specification conformance tests); This is mostly a preparation step for the upcoming patches. Change-Id: I783879fd17b63b52d7983e25dad5b820f0515e7f Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
* QtGui: remove \link usagesGiuseppe D'Angelo2012-05-293-23/+20
| | | | | Change-Id: Ib8cca14a8fa35fbc631bfea9b4873225eac3677f Reviewed-by: Casper van Donderen <casper.vandonderen@nokia.com>
* Replace `const QLatin1String &` with `QLatin1String` where appropriateKonstantin Ritt2012-05-252-2/+2
| | | | | | | Task-Id: QTBUG-24502 Change-Id: I360dee4dc68c165de0631ce4cf34e76fd873080e Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Gestures & events: compile with QT_STRICT_ITERATORS.Thiago Macieira2012-05-251-2/+2
| | | | | | | | | | | There are a few mixed up iterators that needed cleaning up. We're missing a constUpperBound and constLowerBound function, though... This commit sneaks in one change to qtextformat related to QT_STRICT_ITERATORS but not to gestures and events. Change-Id: I8c7c840fb5f46c790adbf52952c6009c5b5f2f43 Reviewed-by: Denis Dzyubenko <denis.dzyubenko@nokia.com>
* Fix potential access beyond the array endKonstantin Ritt2012-05-251-1/+3
| | | | | | | | addNextCluster() advances position up to "end" that equals to eng->layoutData->string.length() if current script item is the last one Change-Id: I173286f3002c9c64dd1a89b902958699b6273d68 Reviewed-by: Jiang Jiang <jiang.jiang@nokia.com>
* qpa api: replace QPA headers with something more benignGirish Ramakrishnan2012-05-221-5/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The current 'we mean it' headers are considered too aggressive for QPA. Replaced using the following script. for file in `find -type f -name "qplatform*.h" -and -not -name "*_p.h"`; do LINE_NO_1=`grep -n -m 1 "W A R N I N G" $file | awk -F ':' '{print $1}'` LINE_NO_2=`grep -n -m 1 "We mean it." $file | awk -F ':' '{print $1}'` if [ -z "$LINE_NO_1" ]; then LINE_NO_1=`grep -n -m 1 "#define " $file | awk -F ':' '{print $1}'` LINE_NO_2=$((1+$LINE_NO_1)) else LINE_NO_1=$(($LINE_NO_1-2)) LINE_NO_2=$(($LINE_NO_2+2)) fi head -n $LINE_NO_1 $file > $file.new cat >> $file.new <<EOF // // W A R N I N G // ------------- // // This file is part of the QPA API and is not meant to be used // in applications. Usage of this API may make your code // source and binary incompatible with future versions of Qt. // EOF tail -n +$LINE_NO_2 $file >> $file.new mv $file.new $file done Change-Id: I8a974c9bf8942647b7ad950afb372c1f738aa725 Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
* QTextEngine: minor clean-upKonstantin Ritt2012-05-221-9/+14
| | | | | | Change-Id: I7e21d5cf0130b412f8053b35abdd3420ed006c1c Reviewed-by: Girish Ramakrishnan <girish.1.ramakrishnan@nokia.com> Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@nokia.com>
* QCssParser: Remove temporary structure storing QIcon data.Friedemann Kleint2012-05-212-33/+23
| | | | | | | | | This is no longer needed after QIcon moved to QtGui. It is a revert of 5a0eb4e768435b9ce32b074e620fca33be4df2fb, compile fixes and uncommenting of commented-out code. Change-Id: I6cfe6d2582b3e37161862a28e55cc3b010e18a8b Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
* Fix FreeType glyph caching for high resolutionJiang Jiang2012-05-182-21/+25
| | | | | | | | | | | | | | | | | | | | For high resolution or extremely large font sizes, the advance cached here is likely to overflow, since FreeType returns 26.6 fixed point value and we only take signed char here for advance. In those cases we should skip caching because there won't be that many big glyphs after all. Also move the metrics caching block a bit down to take glyph embolden and oblique into account. As a result we also don't need to increase the linearAdvance size because any linearAdvance less than 128 should fit in the old 10.6 fixed format. Change-Id: Ic4920ada49954ce1e0a8673c9f33f30e385e3046 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com> Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@nokia.com>
* add some more widely-used QChar::SpecialCharacter enum valuesKonstantin Ritt2012-05-171-2/+2
| | | | | | Change-Id: Iad58f4366ba6cd6da29a268c56c8a4bc4cf0329c Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
* Fix cursorToX for right to left text with trailing whitespace.Andrew den Exter2012-05-172-15/+9
| | | | | | | | | | | | | | | | QTextLine::cursorToX returned the line width for cursor positions outside the width of a wrapped right to left line because the leading space width was always calculated as 0. Returning a non-zero width for the leading space does cause problems for other uses of QTextEngine::alignLine() though as the textAdvance already doesn't include the leading/trailing space so subtracting it there double accounts for it. Task-number: QTBUG-24801 Change-Id: I56cbb139814c32813bebb49de8c045b29154a958 Reviewed-by: Jiang Jiang <jiang.jiang@nokia.com>
* enable the text layout's cache where it is seems to be missedKonstantin Ritt2012-05-161-0/+1
| | | | | | | | | | | e.g. in QStaticText, the data is used just to get the line's y-position and re-calculates just after the loop to determine the bounding rect and to draw the text; in QWidgetLineControl, the data re-calculated over and over while the result is seems to remain the same; probably the caching is needed here too Change-Id: I0f7eb291532f63eccb9c5f749daebb73ff90632f Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@nokia.com>
* Support specifying fallbacks in font request on QPAEskil Abrahamsen Blomfeldt2012-05-162-2/+18
| | | | | | | | | | | | | Because the QPA font database would query fallback families inside findFont(), support for requesting multiple font families in order of preference (like QFont("Times New Roman, Arial")) did not work, because the Arial fallback was never attempted. To fix this, we pass in the queried fallbacks and make sure they are tried before any platform specific fallbacks. Task-number: QTBUG-20986 Change-Id: Idb2b717856f013ce2874f00a8debaff60176d2fc Reviewed-by: Jiang Jiang <jiang.jiang@nokia.com>
* Fix QPA files inclusion headersGirish Ramakrishnan2012-05-151-3/+3
| | | | | | | find . -name "*.h" | xargs sed "s/^#\(.*\)_QPA_H/#\1_H/" -i Change-Id: Ifa96f8cfcb67070a961c7e5f05719b82653a1174 Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
* Doc: Fix \sa usageMarius Storm-Olsen2012-05-119-114/+122
| | | | | | | | | Ensure comma between elements (757 missing), single space and curly- braces around title elements, etc. Change-Id: Id16c3fda7fc47a12a0682f8720214f4990609a97 Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com> Reviewed-by: Casper van Donderen <casper.vandonderen@nokia.com>
* Do not use charset loaded by fontconfigJiang Jiang2012-05-112-53/+13
| | | | | | | | | | | | | | | | | | The only use for storing charset loaded by fontconfig in font engines is for determine if a font supports certain codepoint, however FreeType already does that. The charset loaded is sometimes not complete, for instance in fontconfig 2.9.0 it removed Apple Roman platform support for cmap loading, thus results a regression in common symbol fonts (Wingdings, Webdings) rendering. Because those symbol fonts produced by Monotype only contain two cmap tables: Apple Roman and Microsoft Symbol, since the Microsoft Symbol table has a weird 0xF000 offset, we always fallback to the Apple Roman cmap table. Removing freetype charset cache also make each font engine consuming less memory. Change-Id: I88f3f44981f3a1c517b84809a3f5b834ffff7681 Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@nokia.com>
* move the default text breaking algorithm impl from HarfBuzz to QtKonstantin Ritt2012-05-101-0/+1
| | | | | | | | | | | there are several reasons to do this: * text breaking is not a shaper's job; * since the text breaking rules are bound to a specific Unicode version, updating Qt's internal unicode data would require updating the data in HB as well; * makes porting to HurfBuzz-NG some easier Change-Id: I0bbf8e8a343bc074696f4ddf2ae4e7fa32a61629 Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
* Merge branch 'docs-refactoring' into masterMarius Storm-Olsen2012-05-1013-36/+36
|\ | | | | | | Change-Id: Iebd1966abace3cdf7f9428dcfc1ded5b124ab113
| * Doc: Move some remaining files over for modularization.Casper van Donderen2012-05-091-1/+1
| | | | | | | | | | | | | | | | | | The files in this change were still in qtbase/doc/src or required for it. qtbase/doc/src should now only contain example documentation and images for the example documentation. Change-Id: Ia7ca8e7fd2b316e77c706a08df71303bc8294213 Reviewed-by: Marius Storm-Olsen <marius.storm-olsen@nokia.com>
| * Doc: Modularize QtGui documentation.Casper van Donderen2012-05-0912-35/+35
| | | | | | | | | | | | | | | | This change moves the snippets and images to the modularized directories. Change-Id: I5f86f598fbe7c47d632c613b85d94ced89ba2c29 Reviewed-by: Marius Storm-Olsen <marius.storm-olsen@nokia.com>
* | Don't ignore default font's font capitalization in QTextDocumentEskil Abrahamsen Blomfeldt2012-05-101-4/+6
| | | | | | | | | | | | | | | | | | The consequence of this was e.g. that it would be impossible to set the capitalization of TextEdit elements (or Text elements with RichText format) in QML. Change-Id: Ie219fac7e4305efc59a4ac9da5b06c25ff3ac9ac Reviewed-by: Jiang Jiang <jiang.jiang@nokia.com>
* | QTextEngine: simplify the code a bitKonstantin Ritt2012-05-091-22/+7
| | | | | | | | | | | | | | by using QVarLengthArray so we can avoid the manual clean-up code. Change-Id: I35e2f7150d777c1760f722553e6fe7a20f6ecc46 Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@nokia.com>
* | QTextEngine: drop unused leftoversKonstantin Ritt2012-05-081-8/+0
| | | | | | | | | | | | | | | | | | qIsControlChar() doesn't handle SMP code points, it is outdated and is not used anymore; drop it Change-Id: I934ace1e44eb2652e426fccc579b563d31197fca Reviewed-by: Girish Ramakrishnan <girish.1.ramakrishnan@nokia.com> Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@nokia.com>
* | Expose QPA API under qpa/*Girish Ramakrishnan2012-05-079-12/+12
|/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The main reasons for doing this are: 1. _qpa.h end up in the master QtGui include file. QtGui is meant for userland applications. qpa code is neither binary nor source compatible. Inadvertant use of QPA api makes the user code binary-incompatible. 2. syncqt creates forwarding headers for non-private header files. This gives people the impression that this is public API. As discussed on the mailing list, even though QPA api is internal and subject to change, it needs to treated differently from private headers since they will be used by in-qtbase and out-of-qtbase plugins. This commit does the following: 1. The _qpa in QPA header files is dropped. 2. syncqt now treats any file with qplatform prefix as a special file and moves it to qpa/ directory. The recommended way of using QPA API in plugins is: #include <qpa/qplatformfoo.h>. This allows the user include QPA API from multiple modules (for example, qplatformfoo might be in QtPrintSupport) 3. The user needs to explicitly add QT += <module>-private to get access to the qpa api. 4. Creates compat headers for the olden style qplatformfoo_qpa.h and QPlatformFoo includes. This commit does not change the cpp filenames. This requires a more careful merging of existing non qpa cpp files and existing cpp files on a case by case basis. This can be done at anytime. The following files are not renamed as part of this changed but will be fixed as part of a future change: src/gui/kernel/qgenericpluginfactory_qpa.h src/gui/kernel/qgenericplugin_qpa.h src/gui/kernel/qwindowsysteminterface_qpa.h files were renamed using for x in `find . -name "qplatform*_qpa.h"`; do git mv $x "${x/_qpa.h/.h}"; done for x in `find . -name "qplatform*_qpa_p.h"`; do git mv $x "${x/_qpa_p.h/_p.h}"; done includes were renamed using script for file in `find . -name "*.h" -or -name "*.cpp" -or -name "*.mm"`; do sed -i -e 's,.*#.*include.*<\(Qt.*/\)\?\(QPlatform.*\)>,#include <qpa/\L\2.h>,g' \ -e 's,.*#.*include.*"\(Qt.*/\)\?\(QPlatform.*\)",#include <qpa/\L\2.h>,g' \ -e 's,.*#.*include.* "\(qplatform.*\)_qpa.h",#include <qpa/\L\1.h>,g' \ -e 's,.*#.*include.*"\(qplatform.*\)_qpa_p.h",#include <qpa/\L\1_p.h>,g' \ -e 's,.*#.*include.*<\(Qt.*/\|Qt.*/private/\|private/\)\?\(qplatform.*\)_qpa\(.*\)>,#include <qpa/\2\3>,g' \ -e 's,.*#.*include.*"\(Qt.*/\|Qt.*/private/\|private/\)\?\(qplatform.*\)_qpa\(.*\)",#include <qpa/\2\3>,g' \ $file done Change-Id: I04a350314a45746e3911f54b3b21ad03315afb67 Reviewed-by: Morten Johan Sørvig <morten.sorvig@nokia.com> Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com> Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com> Reviewed-by: Sean Harmer <sean.harmer@kdab.com> Reviewed-by: Lars Knoll <lars.knoll@nokia.com> Reviewed-by: Gunnar Sletta <gunnar.sletta@nokia.com>
* Avoid glyph rendering with FT when not neededJiang Jiang2012-05-042-7/+25
| | | | | | | | | | | | | | | | If we only need to access the font metrics (like in scenegraph) for layout, we don't need to render glyphs with FreeType at all. Increase cached linearAdvance to 22 bits so that no overflow will happen: FreeType returns 16.16 fixed point linearHoriAdvance, but QFixed is 26.6, we store glyph->linearAdvance = linearHoriAdvance >> 10 Apparently 'short' is not enough since it's only 16 bits. Change-Id: Id14eafa19f01a687de11997526281f9e7e860482 Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@nokia.com>
* Load resources in in QTextDocument correctlyLars Knoll2012-05-042-20/+14
| | | | | | | | | | | | | | | In Qt 4, we loaded resources through the QTextEdit or QTextControl if they were the parent of the document. Modularization for Qt 5 broke this, as we can't cast the parent to a QTextEdit anymore. The fix is to make the loadResource() methods in QTextControl and QTextEdit invokable and discover and invoke them at runtime on the parent object. Task-number: QTBUG-25116 Change-Id: Iba04bc16849b0c5ddcd275f12d1a386a8fe591bf Reviewed-by: Girish Ramakrishnan <girish.1.ramakrishnan@nokia.com>
* Allow the QPA plugin arguments to contain non-ASCII.Thiago Macieira2012-05-041-1/+1
| | | | | | | Who knows what we might need them for in the future? Change-Id: Ic68e04aea6cb26afb0ed98684bbb37a62c111638 Reviewed-by: Paul Olav Tvete <paul.tvete@nokia.com>
* Change remaining uses of {to,from}Ascii to {to,from}Latin1 [QtGui]Thiago Macieira2012-05-041-1/+1
| | | | | | | | | | This operation should be a no-op anyway, since at this point in time, the fromAscii and toAscii functions simply call their fromLatin1 and toLatin1 counterparts. Task-number: QTBUG-21872 Change-Id: I2850033159508ebb1ff7564e15b99a146dbee94c Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
* Don't use obsolete qVariantValue, qVariantCanConvert, etc.Debao Zhang2012-05-021-1/+1
| | | | | | | | | | qVariantValue and qVariantCanConvert are Compatibility members, while in Qt4.8 they are marked as Qt 3 Support Members. qVariantFromValue and qVariantSetValue are Obsolete members. Change-Id: Ie8505cad1e0950e40c6f6710fde9f6fb2ac670fd Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
* support UTF-8 encoded file names in QZip*Konstantin Ritt2012-04-251-2/+9
| | | | | | Change-Id: Iba0457b55ef9fa3673f78b4d30d018a146e8fb1c Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com> Reviewed-by: Harald Fernengel <harald.fernengel@nokia.com>
* Don't use the QRegExp methods that modify the object [QtGui]Thiago Macieira2012-04-241-1/+1
| | | | | | | | | | | | | QRegExp matching methods modify the object, which we don't want to. In particular, when we receive a QRegExp from the user or we store in a context that might require thread-safety, make sure we make a copy before using it. QRegularExpression has no such shortcoming. Task-number: QTBUG-25064 Change-Id: If119e06221ca99e57c5ad1a1d4cc6468e9f68c7b Reviewed-by: Gunnar Sletta <gunnar.sletta@nokia.com>
* Retain bidirectional marks when eliding textEskil Abrahamsen Blomfeldt2012-04-201-2/+44
| | | | | | | | | | | | When the text contains unicode markers for bidirectional text, these will not affect the width of the text, but they might affects its layout. Thus, we need to retain these markers in the elided text to avoid the layout of the string changing when its allocated width changes. Task-number: QTBUG-3768 Change-Id: I3866c32cd1dcd5fff2b8fa5b25ae89e551531a97 Reviewed-by: Jiang Jiang <jiang.jiang@nokia.com>
* Fix font substitutions.Friedemann Kleint2012-04-192-53/+26
| | | | | | | | | | | | - Remove remains of platform-specific substitution tables in QtGui. - Deprecate QFont::removeSubstitution() in favour of QFont::removeSubstitutions() (as suggested in the comments). - Clean up substitution code, remove postfix operator++ on iterators and repeated invocation of .end(). Change-Id: I2e82e4ce2dd357d49e4d2b7fd6f95785acfcda95 Reviewed-by: Miikka Heikkinen <miikka.heikkinen@digia.com> Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
* Fix memory leak when drawing text in non-common scriptEskil Abrahamsen Blomfeldt2012-04-181-3/+14
| | | | | | | | | | | | When the font engine cache was updated for new parameters, we would overwrite the cached engine, but not deref the old cached engine, thus it would never be deleted. This is manual cherry pick of 44c14470e5b28e45c19d6959b114e063cf3f4d83 from 4.8 branch. Change-Id: Ice2e555fe380dc9851ef490fa1a6928936ae4c35 Reviewed-by: Jiang Jiang <jiang.jiang@nokia.com>
* Fix a thread safety issue with QTextLine::glyphRunsPierre Rossi2012-04-171-1/+7
| | | | | | | | | | | This is a very partial revert of 10ac80708. Revert back to using engineFromScript, which is reentrant, for cases other than the "rawfont mode". In that last case, reentrancy is not a big issue so far as the only client is WebKit, and this is used in the web process, with no threaded rendering. Change-Id: I047b04cf0236d52e6d548f34cddd3dcc7c3c5f83 Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@nokia.com>
* Merge remote-tracking branch 'origin/api_changes'Lars Knoll2012-04-1714-26/+24
|\ | | | | | | Change-Id: I964b0a6f5c38351fdfafb8a2a128a349ff8c89d1