本文整理汇总了C++中FontInfo::realShape方法的典型用法代码示例。如果您正苦于以下问题:C++ FontInfo::realShape方法的具体用法?C++ FontInfo::realShape怎么用?C++ FontInfo::realShape使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类FontInfo
的用法示例。
在下文中一共展示了FontInfo::realShape方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: metrics
GuiFontInfo::GuiFontInfo(FontInfo const & f)
: metrics(QFont())
{
font.setKerning(false);
QString const pat = symbolFamily(f.family());
if (!pat.isEmpty()) {
bool ok;
font = symbolFont(pat, &ok);
} else {
switch (f.family()) {
case ROMAN_FAMILY: {
QString family = makeFontName(toqstr(lyxrc.roman_font_name),
toqstr(lyxrc.roman_font_foundry));
font.setFamily(family);
#ifdef Q_WS_MACX
#if QT_VERSION >= 0x040300 //&& QT_VERSION < 0x040800
// Workaround for a Qt bug, see http://www.lyx.org/trac/ticket/3684
// and http://bugreports.qt.nokia.com/browse/QTBUG-11145.
// FIXME: Check whether this is really fixed in Qt 4.8
if (family == "Times" && !font.exactMatch())
font.setFamily("Times New Roman");
#endif
#endif
break;
}
case SANS_FAMILY:
font.setFamily(makeFontName(toqstr(lyxrc.sans_font_name),
toqstr(lyxrc.sans_font_foundry)));
break;
case TYPEWRITER_FAMILY:
font.setFamily(makeFontName(toqstr(lyxrc.typewriter_font_name),
toqstr(lyxrc.typewriter_font_foundry)));
break;
default:
break;
}
}
switch (f.series()) {
case MEDIUM_SERIES:
font.setWeight(QFont::Normal);
break;
case BOLD_SERIES:
font.setWeight(QFont::Bold);
break;
default:
break;
}
switch (f.realShape()) {
case ITALIC_SHAPE:
case SLANTED_SHAPE:
font.setItalic(true);
break;
default:
break;
}
LYXERR(Debug::FONT, "Font '" << stateText(f)
<< "' matched by\n" << font.family());
// Is this an exact match?
if (font.exactMatch())
LYXERR(Debug::FONT, "This font is an exact match");
else
LYXERR(Debug::FONT, "This font is NOT an exact match");
LYXERR(Debug::FONT, "XFLD: " << font.rawName());
font.setPointSizeF(convert<double>(lyxrc.font_sizes[f.size()])
* lyxrc.zoom / 100.0);
LYXERR(Debug::FONT, "The font has size: " << font.pointSizeF());
if (f.realShape() != SMALLCAPS_SHAPE) {
metrics = GuiFontMetrics(font);
} else {
// handle small caps ourselves ...
FontInfo smallfont = f;
smallfont.decSize().decSize().setShape(UP_SHAPE);
QFont font2(font);
font2.setKerning(false);
font2.setPointSizeF(convert<double>(lyxrc.font_sizes[smallfont.size()])
* lyxrc.zoom / 100.0);
metrics = GuiFontMetrics(font, font2);
}
}