54 lines
1.5 KiB
C++
54 lines
1.5 KiB
C++
// This file is part of Desktop App Toolkit,
|
|
// a set of libraries for developing nice desktop applications.
|
|
//
|
|
// For license and copyright information please follow this link:
|
|
// https://github.com/desktop-app/legal/blob/master/LEGAL
|
|
//
|
|
#ifdef DESKTOP_APP_USE_PACKAGED
|
|
#include <private/qtextengine_p.h>
|
|
|
|
QTextItemInt::QTextItemInt(
|
|
const QGlyphLayout &g,
|
|
QFont *font,
|
|
const QChar *chars_,
|
|
int numChars,
|
|
QFontEngine *fe,
|
|
const QTextCharFormat &format)
|
|
: flags(0)
|
|
, justified(false)
|
|
, underlineStyle(QTextCharFormat::NoUnderline)
|
|
, charFormat(format)
|
|
, num_chars(numChars)
|
|
, chars(chars_)
|
|
, logClusters(0)
|
|
, f(font)
|
|
, glyphs(g)
|
|
, fontEngine(fe) {
|
|
}
|
|
|
|
void QTextItemInt::initWithScriptItem(const QScriptItem &si) {
|
|
// explicitly initialize flags so that initFontAttributes can be called
|
|
// multiple times on the same TextItem
|
|
flags = 0;
|
|
if (si.analysis.bidiLevel %2)
|
|
flags |= QTextItem::RightToLeft;
|
|
ascent = si.ascent;
|
|
descent = si.descent;
|
|
|
|
if (charFormat.hasProperty(QTextFormat::TextUnderlineStyle)) {
|
|
underlineStyle = charFormat.underlineStyle();
|
|
} else if (charFormat.boolProperty(QTextFormat::FontUnderline)
|
|
|| f->d->underline) {
|
|
underlineStyle = QTextCharFormat::SingleUnderline;
|
|
}
|
|
|
|
// compat
|
|
if (underlineStyle == QTextCharFormat::SingleUnderline)
|
|
flags |= QTextItem::Underline;
|
|
|
|
if (f->d->overline || charFormat.fontOverline())
|
|
flags |= QTextItem::Overline;
|
|
if (f->d->strikeOut || charFormat.fontStrikeOut())
|
|
flags |= QTextItem::StrikeOut;
|
|
}
|
|
#endif // !DESKTOP_APP_USE_PACKAGED
|