summaryrefslogtreecommitdiffstats
path: root/src/platformsupport/fontdatabases
Commit message (Collapse)AuthorAgeFilesLines
* Change coreservices -> iosIan Dean2012-04-194-6/+6
| | | | | | | | Replace "contains(QT_CONFIG, coreservices)" with "!ios" in config files. Replace "QT_NO_CORESERVICES" with "Q_OS_IOS" in source files. Change-Id: Id3b02316b245a24ce550e0b47596d18a4a409e4f Reviewed-by: Morten Johan Sørvig <morten.sorvig@nokia.com>
* Added iOS compatibility.Qt4iOS2012-04-134-0/+20
| | | | | | | | Put MacOS-specific code in #ifdef blocks so that it is not compiled for iOS. Add iOS implementation for MacOS-specific code, where possible. Change-Id: I3664c76fcfa8d5497ad1db676b9331e4ae0dca0e Reviewed-by: Morten Johan Sørvig <morten.sorvig@nokia.com>
* Make it possible to enable non-scalable font scalingMiikka Heikkinen2012-04-102-0/+13
| | | | | | | | | | | | | | | | | | | Windows native font engine supports scaling of non-scalalble fonts, so make it possible to do so. Added two functions to QPlatformFontDatabase: fontsAlwaysScalable() and standardSizes(), and made fontsAlwaysScalable() to return true for Windows native font database. Windows Freetype font engine doesn't seem to support scaling of non-scalable fonts, so didn't enable it in there. Added implementation of standardSizes() for Mac OS. Task-number: QTBUG-24970 Change-Id: I41c9356ede8a37b7c61db94340dbeb5b629f34b9 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com> Reviewed-by: Bradley T. Hughes <bradley.hughes@nokia.com> Reviewed-by: Jiang Jiang <jiang.jiang@nokia.com>
* Don't hardcode the default families in qfont_qpa.cppPierre Rossi2012-04-101-0/+7
| | | | | | | | | Since different platforms come with different fonts, we should probably leave it up to the platform to decide which family to use. Change-Id: I18bb81c0ce87cc7e9ac7f3abaeae1b41c0ce8410 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com> Reviewed-by: Jiang Jiang <jiang.jiang@nokia.com>
* Cocoa: silence warnings about unused variablesBradley T. Hughes2012-03-261-1/+1
| | | | | | | | Silence warnings about unused function parameters and local variables while building the Cocoa platform plugin. Change-Id: I6aedc4cb21c5fb48d2d6e501561473d3f7112aed Reviewed-by: Morten Johan Sørvig <morten.sorvig@nokia.com>
* Fix for fontconfig 2.9 behavior changeJiang Jiang2012-03-261-11/+9
| | | | | | | | | | | | | | | | Start from 2.9, fontconfig will reset the result to FcResultNoMatch at the beginning of FcFontSort(). According to http://lists.freedesktop.org/archives/fontconfig/2012-March/003857.html the result value of FcFontSort() can be ignored, checking the nfont value of the fontset returned is sufficient. The fix works for pre-2.9 versions as well, since those versions don't touch the result at all. Change-Id: Iba6c1157e314088a90867292a4bd970bb873e284 Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@nokia.com>
* Fix the build of qt-freetype with -system-zlibThiago Macieira2012-03-221-0/+1
| | | | | | | | | | | | | The static library needs to link to zlib too, so that the plugins using this library link to zlib. At runtime this doesn't make a difference because -system-zlib means QtCore is linked to zlib and the system zlib shared library was loaded, so the symbols are resolved. However, since -Wl,-no-undefined was added to the build, the plugin must link to zlib explicitly too. Change-Id: I10d6df8814e823079fee76ae6a7d5b55057c9daf Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
* Fix the build of -qt-freetypeThiago Macieira2012-03-221-1/+0
| | | | | | | | | | | The symbol must be exported from QtGui for the plugins to be able to see it. Also, fix the build in namespaced case: cannot use extern in QtPlatformSupport because it's not compiled into the Qt namespace. Change-Id: I029533f3524e3cbf6c87aed79c1f2e7b55aebb9b Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
* Fix cross-compilation that uses fontconfig / freetypeThiago Macieira2012-03-221-0/+1
| | | | | | | | | | | | config.tests/unix/freetype.pri has a !cross_compile flag, so we must find freetype using the proper detection methods. The detection was inside an X11 section of configure, so move that out. And use the results of that detection, now that QMAKE_CFLAGS_X11 isn't used (since we're not building X11 in QtPlatformSupport). Change-Id: Ic8f5cfb7263849bfb12967756def2b5aaa244872 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
* Fix a typo in QFontconfigDatabaseJiang Jiang2012-03-201-2/+1
| | | | | | | | Font family names for default families (Serif, Sans serif, Monospace) was only taken from the first family in the array (aka. always Serif). Change-Id: Ia326dc85e03819f1a72deda66aade348809d94da Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@nokia.com>
* Cocoa: set font engine glyph format based on display typeBradley T. Hughes2012-03-203-14/+41
| | | | | | | | | Make the QCoreTextFontEngine::glyphFormat depend on the primary display's subpixel layout (if any). This change also refactors the antialiasing threshold setting to live beside the defaultGlyphFormat. Change-Id: I27f94f775d91d2a68cd647cc24503b31b6ff5e61 Reviewed-by: Morten Johan Sørvig <morten.sorvig@nokia.com>
* Fix LSB buildHarald Fernengel2012-03-141-2/+3
| | | | | | | | Fix compliation in LSB by removing legacy calls and adding an explicit header. Change-Id: I13a73211c07457195b5d5aad0854643da1e25f9b Reviewed-by: Jiang Jiang <jiang.jiang@nokia.com>
* Use the lazily-queried families for all QPA multi font engines.Pierre Rossi2012-03-144-8/+6
| | | | | | | | | This is the approach introduced together with the WebKit "backdoor" that lets us use QRawFont with QTextLayout. We could use it all over the place and share more code. Change-Id: Ie1963679755f37ba9204d67554a163f1d1115604 Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@nokia.com>
* Fix QFont hinting preference with fontconfigBalazs Kelemen2012-03-121-18/+31
| | | | | | | | Consider if the hinting preference of the QFont is not PreferDefaultHinting. Change-Id: I0f50b320356787b6c1eabee5f009e7d326a06925 Reviewed-by: Jiang Jiang <jiang.jiang@nokia.com>
* Fix a performance regression with shouldLoadFontEngineForCharacter.Pierre Rossi2012-03-082-14/+38
| | | | | | | | | Calling FcFontMatch should be avoided as much as possible. We can simply cache the patterns it returns, which should still save memory compared to loading all font engines as we did before. Change-Id: I67208a4f919338a948535f717cfd0139dbea2e5f Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@nokia.com>
* Fix support for scripts that require OpenTypeEskil Abrahamsen Blomfeldt2012-03-072-2/+2
| | | | | | | | | We need to load OpenType tables when initializing fonts for scripts that require them. This fixes support for many Brahmic scripts. Change-Id: Ib5e50f2c7e5edb4b3e3ecf9fd004f2cf62634add Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
* Add missing Q_OBJECT macro to QCoreTextFontEngineTasuku Suzuki2012-03-061-0/+1
| | | | | Change-Id: I5d6b4742265a026d404d5ffa48f2c554d5483f30 Reviewed-by: Jiang Jiang <jiang.jiang@nokia.com>
* Fix fontconfig.pri file to allow QPA plugins to buildSean Harmer2012-02-231-2/+2
| | | | | Change-Id: I5ebcffb7153f4216d69921d4818051e6b3d14d8a Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@nokia.com>
* Remove historical +1 from font height calculationEskil Abrahamsen Blomfeldt2012-02-171-3/+1
| | | | | | | | | | | Historically, we've calculated font height as ascent+descent+1. In Qt 4, a patch was added to work around this by subtracting 1 from the descent of the font engines. We now remove the +1 and the work arounds. Change-Id: I7e25d49b97ac892015d3328f32d70eb9a7c2d88f Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com> Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
* Avoid loading and keeping unused fallback font enginesEskil Abrahamsen Blomfeldt2012-02-175-4/+161
| | | | | | | | | | | | | | | | | | | | | | | | | When we request glyphs from fallback fonts, we would potentially load all fonts on the system into memory. This is especially true for glyphs that are not supported by any font (or by the last in the list) in any "Common" script (which e.g. includes CJK). This would make any application which tried to display unsupported glyphs use huge amounts of memory for keeping unused fonts cached, only limited by the number of fonts on the system. The patch contains two solutions: First, before loading the font, the multi font engine will be asked whether it needs to be tried for the given character. By default, this will always be true, so all fonts will be tried, but with the new font config multi engine in the platform plugin, it will ask FontConfig whether the font contains a glyph for the character. Should the font be loaded and still fail to resolve the character (which could be the case for other platforms), we will simply delete it again immediately instead keeping it cached. Change-Id: I92dfb39289a359f49caa02c2caf8baf66098fb59 Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
* Move QString <-> NSString conversion to QtCoreMorten Johan Sorvig2012-02-021-5/+2
| | | | | | | | | | | | | | | | Add (private) API to QCFString: static QString toQString(NSString *) static NSString *toNSString(const QString &) Add implementation to qcore_mac_objc.mm. Keep the mac_cpp since it's used for building qmake as well as bootstrapping. Replace usage of NSString conversion functions in the cocoa and corewlan plugin with QCFString. Change-Id: I9f34edd5231255aef9d8d6e9a60306174bb279b3 Reviewed-by: Bradley T. Hughes <bradley.hughes@nokia.com>
* Windows: Fix compilation with -qtnamespaceKai Koehne2012-01-312-1/+10
| | | | | Change-Id: Ib006d74299d65e5872a5a524eaa937e127306ec7 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
* Mac: Fix compilation with -qtnamespace setKai Koehne2012-01-312-1/+9
| | | | | | Change-Id: Id3b9f4e3edf2caeac32c8a44278cdf05a1fc70fb Reviewed-by: hjk <qthjk@ovi.com> Reviewed-by: Morten Johan Sørvig <morten.sorvig@nokia.com>
* Remove Symbian specific code in platformsupport.Xizhi Zhu2012-01-301-1/+1
| | | | | Change-Id: I5f06f80ae47b2c9fcd93832c23a453a9193e6120 Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
* Remove "All rights reserved" line from license headers.Jason McDonald2012-01-309-9/+9
| | | | | | | | | | As in the past, to avoid rewriting various autotests that contain line-number information, an extra blank line has been inserted at the end of the license text to ensure that this commit does not change the total number of lines in the license header. Change-Id: I311e001373776812699d6efc045b5f742890c689 Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com>
* Move glyphMargin() to QFontEngineJiang Jiang2012-01-242-7/+8
| | | | | | | | | | | | | glyphMargin() support for QTextureGlyphCache is implemented in respective font engines, thus this function is platform dependent. Before Qt 5 the code is guarded in macros like #ifdef Q_WS_MAC, now we should move them into QFontEngine and its subclasses. So far only Windows font engines support it. FreeType and Core Text based font engines all ignore it. Change-Id: Ia14016533d8fbfaacf848a7d3bc928f8197318f5 Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@nokia.com>
* Update contact information in license headers.Jason McDonald2012-01-239-9/+9
| | | | | | | Replace Nokia contact email address with Qt Project website. Change-Id: I431bbbf76d7c27d8b502f87947675c116994c415 Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com>
* Update copyright year in license headers.Jason McDonald2012-01-059-9/+9
| | | | | Change-Id: I02f2c620296fcd91d4967d58767ea33fc4e1e7dc Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com>
* Fix rare crashes in fontconfig fontdb due to uninitialized variableSimon Hausmann2012-01-041-1/+1
| | | | | | | | | Initialize the out variable passed to FcPatternGetString to protect against the "failure" case. Otherwise the subsequent QString::fromUtf8 is called with an uninitialized pointer. Change-Id: I31b8b4c366f673609b26eca162334fd8bc9f25d2 Reviewed-by: Jiang Jiang <jiang.jiang@nokia.com>
* Cocoa: Add autorelease pools.Morten Johan Sørvig2011-12-121-2/+2
| | | | | | | | | | | | | A couple of cases where we call Cococa APIs without having an autorelease pool in place surfaced after removing the global autorelease pool in 1a218a7. (This happens when when Qt API is called before app.exec() has started the Cocoa event loop.) Add local autorelease pools to prevent memory leaks. Change-Id: I0c4be3ff102aaff4539235857f95ab29fdbc9d70 Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@nokia.com>
* Remove QCoreTextFontEngineMultiJiang Jiang2011-12-042-357/+0
| | | | | | | | It's not used anymore since we have switch to HarfBuzz on Mac. Change-Id: I68252fbe3021f54dacac5a901184c3f3e541a6b7 Reviewed-by: Jiang Jiang <jiang.jiang@nokia.com> Reviewed-by: Morten Johan Sørvig <morten.sorvig@nokia.com>
* Enable subpixel rendering for raster on MacJiang Jiang2011-12-042-1/+11
| | | | | | Change-Id: I06e6465e03c17776974d361254abf5b750736080 Reviewed-by: Jiang Jiang <jiang.jiang@nokia.com> Reviewed-by: Morten Johan Sørvig <morten.sorvig@nokia.com>
* Add QRawFont from data support to Mac font dbJiang Jiang2011-12-012-0/+24
| | | | | Change-Id: I02f1c4b35b9ed585e72aa4bad9b75d3c098f8e62 Reviewed-by: Morten Johan Sørvig <morten.sorvig@nokia.com>
* Set supporting writingSystem correctlyJiang Jiang2011-12-011-1/+2
| | | | | Change-Id: I963aa7b69a48441619c5885c443ae2620fcc4e57 Reviewed-by: Morten Johan Sørvig <morten.sorvig@nokia.com>
* Mac Core Text font database for QPAJiang Jiang2011-11-306-3/+1451
| | | | | | | | | | | | | | Add Core Text fontdatabase for Mac and use it as default. It also reenabled Core Text font engine for native font rendering on Mac, though it's not used in declarative UI (by default declarative will still use scenegraph, which will only use this font engine for retrieving font metrics and outlines). With the new fontdatabase it's now possible to load all the fonts installed in the system as well as adding application fonts. Change-Id: I0d2aa1420019adf6d0f70dd147a9d71b2684d3f1 Reviewed-by: Morten Johan Sørvig <morten.sorvig@nokia.com>
* Fixed compile of QtPlatformSupport with -qtnamespace.Rohan McGovern2011-11-172-0/+8
| | | | | | Change-Id: Iba411d35abe85ecf29a44d99113954a0561ae286 Reviewed-by: Toby Tomkins <toby.tomkins@nokia.com> Reviewed-by: hjk <qthjk@ovi.com>
* Provide defaultFont with fontconfig dbJiang Jiang2011-11-152-2/+10
| | | | | | | | | | | So that it won't just return "Helvetica" that may not exist in target system. Providing it seems to fix QTBUG-21833 as well, thus we can remove the QEXPECT_FAIL statement in qlistview test. '_' appears to reach the minimum right bearing in some fonts. Task-number: QTBUG-21833 Change-Id: I2340af6ee736083ec4f6575e469840ebec4e545e Reviewed-by: Jiang Jiang <jiang.jiang@nokia.com>
* Do not add QPF fonts to basic font dbJiang Jiang2011-11-151-1/+0
| | | | | | | | | | QPlatformFontDatabase::populateFontDatabase() routine uses a different usrPtr format which is not compatible with the one basic font db uses (FontFile *). We shouldn't mix them together. Task-number: QTBUG-22713 Change-Id: I239ea085e14261f6b9ba66b03710a590a44378f9 Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@nokia.com>
* Fix symbol fonts support with FT engineJiang Jiang2011-11-112-0/+6
| | | | | | | | | | | | It appears that the symbol_map we obtained with FreeType doesn't work for common symbol fonts like Wingdings, in previous X11 code we use the code path with normal charmap, to enable it we need to make sure QT_NO_FONTCONFIG is not defined. And since the FcCharset functions doesn't really operates on the font database, we can safely skip the mutex calls. Change-Id: I8c484de200be1d47c053b10be2c51d2273dcd359 Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@nokia.com>
* Restore subpixel rendering support with fontconfig and FreeTypeJiang Jiang2011-11-051-6/+33
| | | | | Change-Id: I45cf83374ba5a8b1ae88415950c1e5ab72991598 Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@nokia.com>
* Revert "Avoid fontconfig access in fontEngine creation"Jiang Jiang2011-11-042-25/+43
| | | | | | | | | | | This reverts commit 8dcb52df8e2e949232ccded9fad5a4f25ba6dda2. Turns out that hint style is retrieved from font match instead of pattern match, which shouldn't be retreived until font engine creation. Change-Id: I90e779a3823e6a6604cdadb52586fcd5e22c295b Reviewed-by: Jiang Jiang <jiang.jiang@nokia.com>
* Use freetype font engine on WindowsOlli Werwolff2011-10-106-21/+26
| | | | | | | | | | | | | | | As windows' fontdatabases also uses functionalities from qbasicunixfontdatabase it was renamed to qbasicfontdatabase. But instead of iterating over the font directories' files it uses system calls to obtain the list of fonts and uses registry values to find the according filenames to add. The native font engine was still kept. It can be activated by adding fontengine=native as platformargument. Change-Id: I7197bed5d18b8a33d4aa97ce91bfa1cd281b80ea Reviewed-on: http://codereview.qt-project.org/5839 Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@nokia.com> Sanity-Review: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@nokia.com>
* Add font family alias resolving to QPAJiang Jiang2011-10-052-0/+19
| | | | | | | | | | | By default it doesn't do anything special, but for fontconfig font db it will do some tricks to convert alias like serif to actualy font family names like Times. Change-Id: I73058d187a5422e6f93bc1b728cecdc0250d5e1e Reviewed-on: http://codereview.qt-project.org/5984 Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com> Reviewed-by: Pierre Rossi <pierre.rossi@gmail.com>
* Support adding application fonts with QFontconfigDatabaseJiang Jiang2011-09-233-5/+83
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | QFontDatabaseQPA should be able to reinitialize database and reregister all the fonts when an application font is added, because it will trigger db->invalidate(). Add cloneWithSize support to QFontEngineBox so that even no usable font is found in QFontDatabase, QRawFont::setPixelSize can still work (without making the result rawfont invalid). Register application fonts with QFontconfigDatabase, the code is adapted from QFontDatabaseX11. Reenable QRawFont tests for QPA, these usages are now supported in QPA. Fix QStaticText tests, raster in QPA does support transformations. Translate the text before ZAxix rotation so that it will be visible in canvas. Add back fixedPitch support to QPA, and fix QFontDatabase tests. Fix QGlyphRun tests, ignore non-existence glyphs in alphaMap locking. Fix QFontMetrics tests. Task-number: QTBUG-21415, QTBUG-20754, QTBUG-20977, QTBUG-20976, QTBUG-20760, QTBUG-20759 Change-Id: I24aea7d6ec6b2ac6342134d1f2591327c23a692b Reviewed-on: http://codereview.qt-project.org/5384 Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com> Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@nokia.com>
* Make sure libQtPlatformSupport has proper flagsJiang Jiang2011-09-171-0/+1
| | | | | | | | | | | If we don't have Q_FONTCONFIGDATABASE flag, QGenericFontDatabase will be defined to QBasicUnixFontDatabase even when fontconfig is available. Change-Id: I0e79ed8488163cea32352e3fc300acd92ca4bd93 Reviewed-on: http://codereview.qt-project.org/4962 Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com> Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
* Compile in C++0x modeLars Knoll2011-09-171-4/+8
| | | | | | | Change-Id: If97bdd94a51756e48167990a4014ba1059d0a507 Reviewed-on: http://codereview.qt-project.org/5026 Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com> Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
* Avoid fontconfig access in fontEngine creationJiang Jiang2011-09-172-43/+25
| | | | | | | | | | | | The only thing we need to know at fontEngine creation is the hinting style, we can just store it in enumeration process and get it back from user data pointer. So that fontEngines can be created without access to fontconfig at all. (Since we are doing our own matching.) Change-Id: I5ab2d1f27e28787447aedcbdef16555fb0f1b604 Reviewed-on: http://codereview.qt-project.org/4769 Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com> Reviewed-by: Jiang Jiang <jiang.jiang@nokia.com>
* Merge branch 'master' into refactorGunnar Sletta2011-09-121-19/+22
| | | | | | | | | | | | | Conflicts: src/3rdparty/v8 src/gui/text/qfont_qpa.cpp src/gui/widgets/qlinecontrol.cpp src/plugins/platforms/fontdatabases/fontconfig/qfontconfigdatabase.cpp tests/auto/gui.pro tests/auto/network.pro tests/auto/qstring/tst_qstring.cpp Change-Id: Id118c172645303ccf06a207050d5bf1462ff57fe
* Mac: make platformsupport a static libMorten Sorvig2011-09-011-4/+0
| | | | | | | | | | | | | | | The "force framework/no-framework" logic does not really work, since Qt is now a mix of frameworks and statics libs. Remove this code path and use the "detection" path instead. Also remove the exports from platformsupport. Change-Id: I0a308666480445eb47c4f443ff7529addecad10d Reviewed-on: http://codereview.qt.nokia.com/3464 Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com> Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@nokia.com> Reviewed-by: Morten Johan Sørvig <morten.sorvig@nokia.com>
* Fix some compiler warnings, shut up QIbusPlatformInputContext.Friedemann Kleint2011-08-261-0/+1
| | | | | | Change-Id: Idadf40b2bbe53928d8577a099f38a2be0a2d6e16 Reviewed-on: http://codereview.qt.nokia.com/3640 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>