Skip to content

Commit 30daef0

Browse files
committedJul 6, 2015
add debugging output to test font loading on windows
1 parent 688f275 commit 30daef0

File tree

1 file changed

+25
-2
lines changed

1 file changed

+25
-2
lines changed
 

‎src/core/qgsfontutils.cpp

100644100755
Lines changed: 25 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -261,6 +261,8 @@ bool QgsFontUtils::loadStandardTestFonts( QStringList loadstyles )
261261
fontsLoaded = ( fontsLoaded || loaded );
262262
QgsDebugMsg( QString( "Test font '%1' %2 from filesystem [%3]" )
263263
.arg( familyStyle ).arg( loaded ? "loaded" : "FAILED to load" ).arg( fontPath ) );
264+
QFontDatabase db;
265+
QgsDebugMsg( QString( "font families in %1: %2" ).arg( fontID ).arg( db.applicationFontFamilies( fontID ).join( "," ) ) );
264266
}
265267
else
266268
{
@@ -282,16 +284,37 @@ bool QgsFontUtils::loadStandardTestFonts( QStringList loadstyles )
282284

283285
QFont QgsFontUtils::getStandardTestFont( const QString& style, int pointsize )
284286
{
285-
QFontDatabase fontDB;
286287
if ( ! fontFamilyHasStyle( standardTestFontFamily(), style ) )
287288
{
288289
loadStandardTestFonts( QStringList() << style );
289290
}
290291

292+
QFontDatabase fontDB;
291293
QFont f = fontDB.font( standardTestFontFamily(), style, pointsize );
294+
#ifdef Q_OS_WIN
295+
if ( !f.exactMatch() )
296+
{
297+
QString modified;
298+
if ( style == "Roman" )
299+
modified = "Normal";
300+
else if ( style == "Oblique" )
301+
modified = "Italic";
302+
else if ( style == "Bold Oblique" )
303+
modified = "Bold Italic";
304+
if ( !modified.isEmpty() )
305+
f = fontDB.font( standardTestFontFamily(), modified, pointsize );
306+
}
307+
if ( !f.exactMatch() )
308+
{
309+
QgsDebugMsg( QString( "Inexact font match - consider installing the %1 font." ).arg( standardTestFontFamily() ) );
310+
QgsDebugMsg( QString( "Requested: %1" ).arg( f.toString() ) );
311+
QFontInfo fi( f );
312+
QgsDebugMsg( QString( "Replaced: %1,%2,%3,%4,%5,%6,%7,%8,%9,%10" ).arg( fi.family() ).arg( fi.pointSizeF() ).arg( fi.pixelSize() ).arg( fi.styleHint() ).arg( fi.weight() ).arg( fi.style() ).arg( fi.underline() ).arg( fi.strikeOut() ).arg( fi.fixedPitch() ).arg( fi.rawMode() ) );
313+
}
314+
#endif
292315
// in case above statement fails to set style
293316
f.setBold( style.contains( "Bold" ) );
294-
f.setItalic( style.contains( "Oblique" ) );
317+
f.setItalic( style.contains( "Oblique" ) || style.contains( "Italic" ) );
295318

296319
return f;
297320
}

0 commit comments

Comments
 (0)
Please sign in to comment.