qt5base-lts/tests/auto/gui/text
Tor Arne Vestbø 50cb2687b2 UIKit: Improve handling of private system fonts / fallback fonts
Commit 2bc7a40048 taught the CoreText font database to populate the
families lazily, and in the process added a guard to ensure that we
didn't populate internal fonts (prefixed with a '.'), as these fonts
would then show up in font selection dialogs.

Commit 909d3f5c7 then added support for private fonts, by making it
possible to filter out any private fonts from font selection daialogs.
But the guard was not removed, so we were still not populating these
fonts. This guard has been removed, and the filtering function has
been updated to include the conditions of the guard.

Next, commit e5e93345c5 used [UIFont fontNamesForFamilyName:] to verify
that each family that we registered with the font database would also
have matching fonts when finally populated. This is not the right approach,
as [UIFont fontNamesForFamilyName:] does not handle internal fonts.

Instead we trust what CTFontDescriptorCreateMatchingFontDescriptors()
gives us, but make sure to register the resulting font descriptors
with the original/originating font family, instead of the one we pull
out of the font descriptor.

Finally, as of iOS 10, we can use CTFontManagerCopyAvailableFontFamilyNames
instead of [UIFont familyNames], which gives us all of the internal font
families like on macOS, instead of just the user-visible families. For
earlier iOS versions we manually add '.PhoneFallback', as we know it
will be available even if not listed in [UIFont familyNames].

The end result is that we register and populate families like '.PhoneFallback',
which is critical to supporting more esoteric writing systems.

The check in tst_QFont that styles for a given family is not empty has
been removed, as we can't guarantee that on all platforms, which is
also documented for QFontDatabase::styles().

Task-number: QTBUG-45746
Task-number: QTBUG-50624
Change-Id: I04674dcb2bb36b4cdf5646d540c35727ff3daaad
Reviewed-by: Jake Petroules <jake.petroules@qt.io>
2016-12-08 16:38:01 +00:00
..
qabstracttextdocumentlayout Make imageAt and formatAt more robus against different font metrics 2016-08-12 03:59:23 +00:00
qcssparser Merge remote-tracking branch 'origin/5.7' into 5.8 2016-11-01 06:02:55 +01:00
qfont UIKit: Improve handling of private system fonts / fallback fonts 2016-12-08 16:38:01 +00:00
qfontcache Avoid synthesizing stretch on condensed font families 2016-08-15 11:39:44 +00:00
qfontdatabase Register fonts with preferred names on Windows 2016-11-23 10:04:47 +00:00
qfontmetrics Updated license headers 2016-01-21 18:55:18 +00:00
qglyphrun QtGui: Remove Windows CE. 2016-03-30 17:35:41 +00:00
qrawfont Added capHeight() to QRawFont and QFontMetrics(F) 2016-08-15 18:27:06 +00:00
qstatictext Fix some warnings in tests 2016-11-28 13:10:43 +00:00
qsyntaxhighlighter Updated license headers 2016-01-21 18:55:18 +00:00
qtextblock Updated license headers 2016-01-21 18:55:18 +00:00
qtextcursor Merge remote-tracking branch 'origin/5.6' into dev 2016-01-26 16:27:28 +01:00
qtextdocument Merge remote-tracking branch 'origin/5.7' into 5.8 2016-09-22 07:28:34 +02:00
qtextdocumentfragment Updated license headers 2016-01-21 18:55:18 +00:00
qtextdocumentlayout Merge "Merge remote-tracking branch 'origin/5.6' into dev" into refs/staging/dev 2016-01-26 11:27:37 +00:00
qtextformat Updated license headers 2016-01-21 18:55:18 +00:00
qtextlayout Merge remote-tracking branch 'origin/5.6' into 5.7 2016-11-15 09:58:16 +01:00
qtextlist Updated license headers 2016-01-21 18:55:18 +00:00
qtextobject Updated license headers 2016-01-21 18:55:18 +00:00
qtextodfwriter Updated license headers 2016-01-21 18:55:18 +00:00
qtextpiecetable Use qtConfig throughout in qtbase 2016-08-19 04:28:05 +00:00
qtextscriptengine Merge remote-tracking branch 'origin/5.7' into dev 2016-05-12 08:33:08 +02:00
qtexttable Updated license headers 2016-01-21 18:55:18 +00:00
qzip update testdata 2016-08-31 10:00:29 +00:00
text.pro Use qtConfig throughout in qtbase 2016-08-19 04:28:05 +00:00