FontPlatformData::FontPlatformData(const FontDescription& description, const AtomicString& familyName, int wordSpacing, int letterSpacing) : m_data(adoptRef(new FontPlatformDataPrivate())) { QFont& font = m_data->font; int requestedSize = qRound(description.computedPixelSize()); font.setFamily(familyName); font.setPixelSize(qRound(requestedSize)); font.setItalic(description.italic()); font.setWeight(toQFontWeight(description.weight())); font.setWordSpacing(wordSpacing); font.setLetterSpacing(QFont::AbsoluteSpacing, letterSpacing); const bool smallCaps = description.smallCaps(); font.setCapitalization(smallCaps ? QFont::SmallCaps : QFont::MixedCase); // Commented out to work around webkit bug 93263 //font.setStyleStrategy(QFont::ForceIntegerMetrics); m_data->bold = font.bold(); // WebKit allows font size zero but QFont does not. We will return // m_data->size if a font size of zero is requested and pixelSize() // otherwise. m_data->size = (!requestedSize) ? requestedSize : font.pixelSize(); #if HAVE(QRAWFONT) m_data->rawFont = QRawFont::fromFont(font, QFontDatabase::Any); #endif }
FontPlatformData::FontPlatformData(const FontDescription& description, const AtomicString& familyName, int wordSpacing, int letterSpacing) : m_data(adoptRef(new FontPlatformDataPrivate())) { QFont font; int requestedSize = description.computedPixelSize(); font.setFamily(familyName); if (requestedSize) font.setPixelSize(requestedSize); font.setItalic(description.italic()); font.setWeight(toQFontWeight(description.weight())); font.setWordSpacing(wordSpacing); font.setLetterSpacing(QFont::AbsoluteSpacing, letterSpacing); if (description.fontSmoothing() == NoSmoothing) font.setStyleStrategy(QFont::NoAntialias); #if QT_VERSION >= QT_VERSION_CHECK(5, 1, 0) if (description.fontSmoothing() == AutoSmoothing && !Font::shouldUseSmoothing()) font.setStyleStrategy(QFont::NoAntialias); #endif m_data->bold = font.bold(); // WebKit allows font size zero but QFont does not. We will return // m_data->size if a font size of zero is requested and pixelSize() // otherwise. m_data->size = (!requestedSize) ? requestedSize : font.pixelSize(); m_data->rawFont = QRawFont::fromFont(font, QFontDatabase::Any); }
QFont Font::font() const { QFont f = primaryFont()->getQtFont(); f.setWeight(toQFontWeight(weight())); f.setItalic(italic()); if (m_letterSpacing != 0) f.setLetterSpacing(QFont::AbsoluteSpacing, m_letterSpacing); if (m_wordSpacing != 0) f.setWordSpacing(m_wordSpacing); return f; }
FontPlatformData::FontPlatformData(const FontDescription& description, const AtomicString& familyName, int wordSpacing, int letterSpacing) : m_data(new FontPlatformDataPrivate()) { QFont& font = m_data->font; font.setFamily(familyName); font.setPixelSize(qRound(description.computedSize())); font.setItalic(description.italic()); font.setWeight(toQFontWeight(description.weight())); font.setWordSpacing(wordSpacing); font.setLetterSpacing(QFont::AbsoluteSpacing, letterSpacing); const bool smallCaps = description.smallCaps(); font.setCapitalization(smallCaps ? QFont::SmallCaps : QFont::MixedCase); #if QT_VERSION >= QT_VERSION_CHECK(4, 7, 0) font.setStyleStrategy(QFont::ForceIntegerMetrics); #endif m_data->bold = font.bold(); m_data->size = font.pointSizeF(); }