diff --git a/src/gui/painting/qpaintengine.cpp b/src/gui/painting/qpaintengine.cpp index acab08e..3ac34d9 100644 --- a/src/gui/painting/qpaintengine.cpp +++ b/src/gui/painting/qpaintengine.cpp @@ -750,6 +750,7 @@ void QPaintEngine::drawPath(const QPainterPath &) void QPaintEngine::drawTextItem(const QPointF &p, const QTextItem &textItem) { const QTextItemInt &ti = static_cast(textItem); + qDebug() << __FUNCTION__ << textItem; QPainterPath path; path.setFillRule(Qt::WindingFill); diff --git a/src/gui/painting/qpaintengine_raster.cpp b/src/gui/painting/qpaintengine_raster.cpp index bdd0d9c..9e24117 100644 --- a/src/gui/painting/qpaintengine_raster.cpp +++ b/src/gui/painting/qpaintengine_raster.cpp @@ -3058,6 +3058,7 @@ void QRasterPaintEngine::drawStaticTextItem(QStaticTextItem *textItem) */ void QRasterPaintEngine::drawTextItem(const QPointF &p, const QTextItem &textItem) { + qDebug() << __FUNCTION__ << p << textItem; const QTextItemInt &ti = static_cast(textItem); #ifdef QT_DEBUG_DRAW @@ -3076,6 +3077,7 @@ void QRasterPaintEngine::drawTextItem(const QPointF &p, const QTextItem &textIte QTransform matrix = s->matrix; if (shouldDrawCachedGlyphs(ti.fontEngine, matrix)) { + qDebug() << __FUNCTION__ << "shouldDrawCachedGlyphs"; QVarLengthArray positions; QVarLengthArray glyphs; @@ -3085,6 +3087,7 @@ void QRasterPaintEngine::drawTextItem(const QPointF &p, const QTextItem &textIte drawCachedGlyphs(glyphs.size(), glyphs.constData(), positions.constData(), ti.fontEngine); } else if (matrix.type() < QTransform::TxProject && ti.fontEngine->supportsTransformation(matrix)) { + qDebug() << __FUNCTION__ << "supportsTransformation"; bool invertible; QTransform invMat = matrix.inverted(&invertible); if (!invertible) @@ -3111,6 +3114,7 @@ void QRasterPaintEngine::drawTextItem(const QPointF &p, const QTextItem &textIte staticTextItem.glyphPositions = positions.data() + range.first; QPaintEngineEx::drawStaticTextItem(&staticTextItem); } else { + qDebug() << __FUNCTION__ << "default"; QPaintEngineEx::drawTextItem(p, ti); } } diff --git a/src/gui/painting/qpainter.cpp b/src/gui/painting/qpainter.cpp index 41a2e39..89d4a16 100644 --- a/src/gui/painting/qpainter.cpp +++ b/src/gui/painting/qpainter.cpp @@ -6340,6 +6340,7 @@ void QPainter::drawTextItem(const QPointF &p, const QTextItem &ti) void QPainterPrivate::drawTextItem(const QPointF &p, const QTextItem &_ti, QTextEngine *textEngine) { + qDebug() << __FUNCTION__ << p << _ti; #ifdef QT_DEBUG_DRAW if (qt_show_painter_debug_output) printf("QPainter::drawTextItem(), pos=[%.f,%.f], str='%s'\n", @@ -6404,6 +6405,7 @@ void QPainterPrivate::drawTextItem(const QPointF &p, const QTextItem &_ti, QText const QGlyphLayout &glyphs = ti.glyphs; int which = glyphs.glyphs[0] >> 24; + qDebug() << __FUNCTION__ << "QFontEngine::Multi" << which; qreal x = p.x(); qreal y = p.y(); @@ -6419,7 +6421,7 @@ void QPainterPrivate::drawTextItem(const QPointF &p, const QTextItem &_ti, QText if (e == which) continue; - + qDebug() << __FUNCTION__ << 'e' << end << "engine #" << which << start << end - start; QTextItemInt ti2 = ti.midItem(multi->engine(which), start, end - start); ti2.width = 0; // set the high byte to zero and calc the width @@ -7340,6 +7342,9 @@ QPaintDevice *QPainter::redirected(const QPaintDevice *device, QPoint *offset) return 0; } +QString debugHieroglyph(const QStringRef &r); +QString debugHieroglyph(const QString &r); + void qt_format_text(const QFont &fnt, const QRectF &_r, int tf, const QString& str, QRectF *brect, int tabstops, int *ta, int tabarraylen, @@ -7355,6 +7360,7 @@ void qt_format_text(const QFont &fnt, const QRectF &_r, int tabstops, int *ta, int tabarraylen, QPainter *painter) { + qDebug() << __FUNCTION__ << fnt.family() << _r << debugHieroglyph(str); Q_ASSERT( !((tf & ~Qt::TextDontPrint)!=0 && option!=0) ); // we either have an option or flags diff --git a/src/gui/text/qfont.cpp b/src/gui/text/qfont.cpp index 49b5a9b..beecea7 100644 --- a/src/gui/text/qfont.cpp +++ b/src/gui/text/qfont.cpp @@ -67,7 +67,7 @@ #include #include -// #define QFONTCACHE_DEBUG +#define QFONTCACHE_DEBUG #ifdef QFONTCACHE_DEBUG # define FC_DEBUG qDebug #else @@ -205,6 +205,7 @@ extern QMutex *qt_fontdatabase_mutex(); QFontEngine *QFontPrivate::engineForScript(int script) const { + qDebug() << __FUNCTION__ << script; QMutexLocker locker(qt_fontdatabase_mutex()); if (script <= QChar::Script_Latin) script = QChar::Script_Common; @@ -216,7 +217,10 @@ QFontEngine *QFontPrivate::engineForScript(int script) const } if (!engineData || !QT_FONT_ENGINE_FROM_DATA(engineData, script)) QFontDatabase::load(this, script); - return QT_FONT_ENGINE_FROM_DATA(engineData, script); + QFontEngine *re = QT_FONT_ENGINE_FROM_DATA(engineData, script); + qDebug() << __FUNCTION__ << "script" << script + << request.family << "returns " << re; + return re; } void QFontPrivate::alterCharForCapitalization(QChar &c) const { @@ -2714,16 +2718,20 @@ void QFontCache::clear() QFontEngineData *QFontCache::findEngineData(const QFontDef &def) const { + qDebug() << __FUNCTION__ << def.family; EngineDataCache::ConstIterator it = engineDataCache.constFind(def); - if (it == engineDataCache.constEnd()) + if (it == engineDataCache.constEnd()) { + qDebug() << __FUNCTION__ <<"not found"; return 0; - + } + qDebug() << __FUNCTION__ << it.value(); // found return it.value(); } void QFontCache::insertEngineData(const QFontDef &def, QFontEngineData *engineData) { + qDebug() << __FUNCTION__ << def.family ; #ifdef QFONTCACHE_DEBUG FC_DEBUG("QFontCache: inserting new engine data %p", engineData); if (engineDataCache.contains(def)) { @@ -2741,12 +2749,16 @@ void QFontCache::insertEngineData(const QFontDef &def, QFontEngineData *engineDa QFontEngine *QFontCache::findEngine(const Key &key) { + qDebug() << __FUNCTION__ << key.def.family << "Script="<< key.script << key.def.fallBackFamilies; EngineCache::Iterator it = engineCache.find(key), end = engineCache.end(); - if (it == end) return 0; + if (it == end) { + qDebug() << __FUNCTION__ << "returns NONE"; + return 0; + } // found... update the hitcount and timestamp updateHitCountAndTimeStamp(it.value()); - + qDebug() << __FUNCTION__ << "returns" << it.value().data; return it.value().data; } @@ -2764,6 +2776,7 @@ void QFontCache::updateHitCountAndTimeStamp(Engine &value) void QFontCache::insertEngine(const Key &key, QFontEngine *engine, bool insertMulti) { + qDebug() << __FUNCTION__ << key.def.family << key.script; #ifdef QFONTCACHE_DEBUG FC_DEBUG("QFontCache: inserting new engine %p, refcount %d", engine, engine->ref.load()); if (!insertMulti && engineCache.contains(key)) { diff --git a/src/gui/text/qfontdatabase.cpp b/src/gui/text/qfontdatabase.cpp index 61c93dc..87553f0 100644 --- a/src/gui/text/qfontdatabase.cpp +++ b/src/gui/text/qfontdatabase.cpp @@ -60,14 +60,14 @@ #include -// #define QFONTDATABASE_DEBUG +#define QFONTDATABASE_DEBUG #ifdef QFONTDATABASE_DEBUG # define FD_DEBUG qDebug #else # define FD_DEBUG if (false) qDebug #endif -// #define FONT_MATCH_DEBUG +#define FONT_MATCH_DEBUG #ifdef FONT_MATCH_DEBUG # define FM_DEBUG qDebug #else @@ -503,11 +503,18 @@ Q_STATIC_ASSERT(sizeof(scriptForWritingSystem) / sizeof(scriptForWritingSystem[0 int qt_script_for_writing_system(QFontDatabase::WritingSystem writingSystem) { - return scriptForWritingSystem[writingSystem]; + int r = scriptForWritingSystem[writingSystem]; + if (writingSystem) + qDebug() << __FUNCTION__ << "returns " << r << "for" << writingSystem; + return r; } - - +int qt_writing_system_for_script(int s) +{ + const int *e = scriptForWritingSystem + sizeof(scriptForWritingSystem)/sizeof(int); + const int *p = std::find(scriptForWritingSystem, e, s); + return p != e ? *p : -1; +} /*! \internal @@ -707,6 +714,7 @@ unsigned int bestFoundry(int script, unsigned int score, int styleStrategy, Q_UNUSED(force_encoding_id); Q_UNUSED(script); Q_UNUSED(pitch); + qDebug() << __FUNCTION__ << "script="<< script << family->name << foundry_name; desc->foundry = 0; desc->style = 0; @@ -894,8 +902,11 @@ static int match(int script, const QFontDef &request, test.family = db->families[x]; test.familyIndex = x; - if (!matchFamilyName(family_name, test.family)) + if (!matchFamilyName(family_name, test.family)) { +// qDebug() << x << test.family->name << test.family->aliases << "failed matchFamilyName"; continue; + } + if (family_name.isEmpty()) load(test.family->name, script); diff --git a/src/gui/text/qfontdatabase_qpa.cpp b/src/gui/text/qfontdatabase_qpa.cpp index 6f4971e..425ba6d 100644 --- a/src/gui/text/qfontdatabase_qpa.cpp +++ b/src/gui/text/qfontdatabase_qpa.cpp @@ -52,6 +52,18 @@ QT_BEGIN_NAMESPACE + +QDebug operator<<(QDebug d, const QSupportedWritingSystems &ws) +{ + QDebug nsp =d.nospace(); + nsp << "QSupportedWritingSystems: "; + for (int i = 0; i (i))) + nsp << i << ", "; + } + return d; +} + void qt_registerFont(const QString &familyName, const QString &stylename, const QString &foundryname, int weight, QFont::Style style, int stretch, bool antialiased, @@ -59,7 +71,10 @@ void qt_registerFont(const QString &familyName, const QString &stylename, const QSupportedWritingSystems &writingSystems, void *handle) { QFontDatabasePrivate *d = privateDb(); -// qDebug() << "Adding font" << familyName << weight << style << pixelSize << antialiased; +/* // Very verbose + qDebug() << __FUNCTION__ << "Adding font" << familyName << stylename << foundryname + <<"wg" << weight << "ws" << writingSystems; +*/ QtFontStyle::Key styleKey; styleKey.style = style; styleKey.weight = weight; @@ -131,6 +146,7 @@ static QStringList fallbackFamilies(const QString &family, QFont::Style style, Q i--; } } + qDebug() << __FUNCTION__ << family << "returns "<< retList; return retList; } @@ -166,6 +182,7 @@ QFontEngine *loadSingleEngine(int script, QtFontFoundry *foundry, QtFontStyle *style, QtFontSize *size) { + qDebug() << __FUNCTION__ << request.family << script; Q_UNUSED(foundry); Q_ASSERT(size); @@ -180,6 +197,7 @@ QFontEngine *loadSingleEngine(int script, def.pixelSize = pixelSize; QFontCache::Key key(def,script); + qDebug() << __FUNCTION__ << key.def.family; QFontEngine *engine = QFontCache::instance()->findEngine(key); if (!engine) { engine = pfdb->fontEngine(def, QChar::Script(script), size->handle); @@ -197,6 +215,7 @@ QFontEngine *loadEngine(int script, const QFontDef &request, QtFontStyle *style, QtFontSize *size) { + qDebug() << __FUNCTION__ << request.family << script; QFontEngine *engine = loadSingleEngine(script, request, foundry, style, size); //make sure that the db has all fallback families if (engine && engine->type() != QFontEngine::Multi @@ -281,6 +300,7 @@ QFontDatabase::findFont(int script, const QFontPrivate *fp, const QFontDef &request, bool multi) { QMutexLocker locker(fontDatabaseMutex()); + qDebug() << __FUNCTION__ << '>'<< script << request.family << request.fallBackFamilies << multi; const int force_encoding_id = -1; @@ -292,6 +312,7 @@ QFontDatabase::findFont(int script, const QFontPrivate *fp, engine = QFontCache::instance()->findEngine(key); if (engine) { FM_DEBUG("Cache hit level 1"); + qDebug() << __FUNCTION__ << "returning cached" << engine; return engine; } @@ -328,6 +349,7 @@ QFontDatabase::findFont(int script, const QFontPrivate *fp, } if (!engine) { + qDebug() << __FUNCTION__ << "Fallbacks"; if (!request.family.isEmpty()) { QStringList fallbacks = request.fallBackFamilies + fallbackFamilies(request.family, @@ -341,6 +363,7 @@ QFontDatabase::findFont(int script, const QFontPrivate *fp, QFontDef def = request; def.family = fallbacks.at(i); QFontCache::Key key(def, script, multi ? 1 : 0); + qDebug() << __FUNCTION__ << "fallback"<< i << fallbacks.size() << key.def.family; engine = QFontCache::instance()->findEngine(key); if (!engine) { QtFontDesc desc; @@ -359,10 +382,13 @@ QFontDatabase::findFont(int script, const QFontPrivate *fp, } while (index >= 0 && !engine); } } + qDebug() << __FUNCTION__ << "done loop" << engine; } - if (!engine) + if (!engine) { engine = new QFontEngineBox(request.pixelSize); + qDebug() << __FUNCTION__ << "QFontEngineBox"; + } FM_DEBUG("returning box engine"); } @@ -372,13 +398,14 @@ QFontDatabase::findFont(int script, const QFontPrivate *fp, } else { engine->fontDef.pointSize = request.pointSize; } - + qDebug() << __FUNCTION__ << '<' << engine; return engine; } void QFontDatabase::load(const QFontPrivate *d, int script) { QFontDef req = d->request; + qDebug() << __FUNCTION__ << '>'<< req.family << script; if (req.pixelSize == -1) { req.pixelSize = floor(((req.pointSize * d->dpi) / 72) * 100 + 0.5) / 100; @@ -403,7 +430,7 @@ void QFontDatabase::load(const QFontPrivate *d, int script) // the cached engineData could have already loaded the engine we want if (d->engineData->engines[script]) return; - + qDebug() << __FUNCTION__ << key.def.family; QFontEngine *fe = QFontCache::instance()->findEngine(key); // list of families to try @@ -447,19 +474,24 @@ void QFontDatabase::load(const QFontPrivate *d, int script) if (fe->symbol || (d->request.styleStrategy & QFont::NoFontMerging)) { for (int i = 0; i < QChar::ScriptCount; ++i) { if (!d->engineData->engines[i]) { + qDebug() << '1' << i << fe; d->engineData->engines[i] = fe; fe->ref.ref(); } } } else { + qDebug() << '2' << script << fe; d->engineData->engines[script] = fe; fe->ref.ref(); } + qDebug() << __FUNCTION__ << '<'; } QString QFontDatabase::resolveFontFamilyAlias(const QString &family) { - return QGuiApplicationPrivate::platformIntegration()->fontDatabase()->resolveFontFamilyAlias(family); + const QString r = QGuiApplicationPrivate::platformIntegration()->fontDatabase()->resolveFontFamilyAlias(family); + qDebug() << __FUNCTION__ << family << r; + return r; } QT_END_NAMESPACE diff --git a/src/gui/text/qfontengine.cpp b/src/gui/text/qfontengine.cpp index 8698e55..5256622 100644 --- a/src/gui/text/qfontengine.cpp +++ b/src/gui/text/qfontengine.cpp @@ -1306,6 +1306,7 @@ QFixed QFontEngine::lastRightBearing(const QGlyphLayout &glyphs, bool round) QFontEngineBox::QFontEngineBox(int size) : _size(size) { + qDebug("%s", __FUNCTION__); cache_cost = sizeof(QFontEngineBox); } @@ -1903,4 +1904,13 @@ QFontEngine::Type QTestFontEngine::type() const return TestFontEngine; } +Q_GUI_EXPORT QDebug operator<<(QDebug d, const QFontEngine *e) +{ + if (e) + d << "QFontEngine" << e->type() << e->fontDef.family <fontDef.fallBackFamilies; + else + d << "QFontEngine: "; + return d; +} + QT_END_NAMESPACE diff --git a/src/gui/text/qfontengine_p.h b/src/gui/text/qfontengine_p.h index c181d61..9158954 100644 --- a/src/gui/text/qfontengine_p.h +++ b/src/gui/text/qfontengine_p.h @@ -64,6 +64,7 @@ QT_BEGIN_NAMESPACE +class QDebug; class QPainterPath; struct QGlyphLayout; @@ -439,6 +440,8 @@ public: virtual Type type() const; }; +Q_GUI_EXPORT QDebug operator<<(QDebug d, const QFontEngine *); + QT_END_NAMESPACE diff --git a/src/gui/text/qfontengine_qpa.cpp b/src/gui/text/qfontengine_qpa.cpp index 28b95bd..7d583ff 100644 --- a/src/gui/text/qfontengine_qpa.cpp +++ b/src/gui/text/qfontengine_qpa.cpp @@ -705,6 +705,7 @@ void QFontEngineMultiQPA::loadEngine(int at) Q_ASSERT(engines[at]); engines[at]->ref.ref(); engines[at]->fontDef = request; + qDebug() << __FUNCTION__ << this << at << request.family << engines[at]; } void QFontEngineMultiQPA::ensureFallbackFamiliesQueried() { diff --git a/src/gui/text/qtextengine.cpp b/src/gui/text/qtextengine.cpp index 109b7e6..d6d0337 100644 --- a/src/gui/text/qtextengine.cpp +++ b/src/gui/text/qtextengine.cpp @@ -65,6 +65,38 @@ QT_BEGIN_NAMESPACE +QDebug operator<<(QDebug d, const QScriptAnalysis &si) +{ + d << "QScriptAnalysis script" << si.script + << "bidi" << si.bidiLevel << "flags" << si.flags; + return d; +} + +QDebug operator<<(QDebug d, const QScriptItem &si) +{ + d << "QScriptItem pos=" << si.position << "analysis" << si.analysis + << "num_glyphs" << si.num_glyphs << "glyph_data_offset" << si.glyph_data_offset; + return d; +} + +QDebug operator<<(QDebug d, const QScriptLine &l) +{ + d << "QScriptLine from" << l.from + << "trailingSpaces" << l.trailingSpaces + << "length" << l.length; + return d; +} + +QDebug operator<<(QDebug d, const QTextItem &ti) +{ + QString debugHieroglyph(const QString &r); + const QTextItemInt &tint(static_cast(ti)); + + d << "QTextItem" << tint.num_chars << "chars" << debugHieroglyph(QString(tint.chars, tint.num_chars)) + << *(tint.f) << tint.fontEngine; + return d; +} + static const float smallCapsFraction = 0.7f; namespace { @@ -3377,19 +3409,28 @@ QTextItemInt::QTextItemInt(const QScriptItem &si, QFont *font, const QTextCharFo f = font; fontEngine = f->d->engineForScript(si.analysis.script); Q_ASSERT(fontEngine); + qDebug() << __FUNCTION__ <<"from scriptitem" << (*font) << si; initWithScriptItem(si); + } 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) { + QString debugHieroglyph(const QString &r); + + qDebug() << __FUNCTION__ << "from engine" << (*font) + << debugHieroglyph(QString(chars, numChars)) + << fe; + } // Fix up flags and underlineStyle with given info void QTextItemInt::initWithScriptItem(const QScriptItem &si) { + qDebug() << __FUNCTION__ << si; // explicitly initialize flags so that initFontAttributes can be called // multiple times on the same TextItem flags = 0; @@ -3417,6 +3458,7 @@ void QTextItemInt::initWithScriptItem(const QScriptItem &si) QTextItemInt QTextItemInt::midItem(QFontEngine *fontEngine, int firstGlyphIndex, int numGlyphs) const { + qDebug() << __FUNCTION__ << fontEngine << firstGlyphIndex << numGlyphs; QTextItemInt ti = *this; const int end = firstGlyphIndex + numGlyphs; ti.glyphs = glyphs.mid(firstGlyphIndex, numGlyphs); diff --git a/src/gui/text/qtextengine_p.h b/src/gui/text/qtextengine_p.h index f2e16cf..4be60cf 100644 --- a/src/gui/text/qtextengine_p.h +++ b/src/gui/text/qtextengine_p.h @@ -396,6 +396,10 @@ struct Q_AUTOTEST_EXPORT QScriptLine }; Q_DECLARE_TYPEINFO(QScriptLine, Q_PRIMITIVE_TYPE); +QDebug operator<<(QDebug d, const QTextItem &ti); +QDebug operator<<(QDebug d, const QScriptAnalysis &si); +QDebug operator<<(QDebug d, const QScriptItem &si); +QDebug operator<<(QDebug d, const QScriptLine &l); inline void QScriptLine::operator+=(const QScriptLine &other) { diff --git a/src/gui/text/qtextlayout.cpp b/src/gui/text/qtextlayout.cpp index 66341e1..7fdd3e4 100644 --- a/src/gui/text/qtextlayout.cpp +++ b/src/gui/text/qtextlayout.cpp @@ -767,6 +767,32 @@ bool QTextLayout::isValidCursorPosition(int pos) const inserted into the layout, the QTextLine returned will not be valid (isValid() will return false). */ + +template +QString debugHieroglyphHelper(const char *what, const S &r) +{ + QString s ; + QTextStream str(&s); + str << what << " of " << r.size() << ": "; + for (int i = 0; i < r.size(); ++i) { + const QChar c = r.at(i); + const ushort u = c.unicode(); + str << hex << showbase << r.at(i).unicode() << noshowbase << dec << ' '; + if (u >= 32 && u < 128) + str << '\'' << char(u) << "' "; + } + return s; +} + +QString debugHieroglyph(const QString &r) +{ + return debugHieroglyphHelper("QString", r); +} +QString debugHieroglyph(const QStringRef &r) +{ + return debugHieroglyphHelper("QStringRef", r); +} + QTextLine QTextLayout::createLine() { #ifndef QT_NO_DEBUG @@ -789,6 +815,8 @@ QTextLine QTextLayout::createLine() return QTextLine(); } + qDebug() << __FUNCTION__ << from << strlen << d->layoutData->string.size() << debugHieroglyph(d->layoutData->string.midRef(from, strlen)); + QScriptLine line; line.from = from; line.length = -1; @@ -2007,6 +2035,7 @@ int QTextLine::textLength() const static void drawMenuText(QPainter *p, QFixed x, QFixed y, const QScriptItem &si, QTextItemInt &gf, QTextEngine *eng, int start, int glyph_start) { + qDebug() << __FUNCTION__ << x << y << si << gf << "start=" <supportsScript(script)) { - qWarning(" OpenType support missing for script %d", int(script)); + + qWarning("%s OpenType support missing for script %d, returning 0", __FUNCTION__,int(script)); delete engine; engine = 0; } @@ -733,7 +734,7 @@ QStringList QFontconfigDatabase::fallbacksForFamily(const QString &family, QFont } FcFontSetDestroy(fontSet); } -// qDebug() << "fallbackFamilies for:" << family << style << styleHint << script << fallbackFamilies; + qDebug() << "fallbackFamilies for:" << family << style << styleHint << script << fallbackFamilies; return fallbackFamilies; } diff --git a/src/plugins/platforms/windows/qwindowsfontdatabase.cpp b/src/plugins/platforms/windows/qwindowsfontdatabase.cpp index a8a5b2b..2532edb 100644 --- a/src/plugins/platforms/windows/qwindowsfontdatabase.cpp +++ b/src/plugins/platforms/windows/qwindowsfontdatabase.cpp @@ -1049,6 +1049,7 @@ QFontEngine * QWindowsFontDatabase::fontEngine(const QFontDef &fontDef, QChar::S QFontEngine *QWindowsFontDatabase::fontEngine(const QByteArray &fontData, qreal pixelSize, QFont::HintingPreference hintingPreference) { + qDebug() << __FUNCTION__ << "DATA"<< fontData; EmbeddedFont font(fontData); QFontEngine *fontEngine = 0; @@ -1546,6 +1547,7 @@ LOGFONT QWindowsFontDatabase::fontDefToLOGFONT(const QFontDef &request) static QStringList extraTryFontsForFamily(const QString& family) { + qDebug() << __FUNCTION__ << family; QStringList result; QFontDatabase db; if (!db.writingSystems(family).contains(QFontDatabase::Symbol)) { @@ -1580,6 +1582,7 @@ static QStringList extraTryFontsForFamily(const QString& family) ++tf; } } + qDebug() << __FUNCTION__ << family << result; return result; } @@ -1628,6 +1631,7 @@ QFontEngine *QWindowsFontDatabase::createEngine(int script, const QFontDef &requ const QStringList &family_list, const QSharedPointer &data) { + qDebug() << __FUNCTION__ << request.family; LOGFONT lf; memset(&lf, 0, sizeof(LOGFONT)); @@ -1749,6 +1753,7 @@ QFontEngine *QWindowsFontDatabase::createEngine(int script, const QFontDef &requ // Also check for OpenType tables when using complex scripts if (!few->supportsScript(QChar::Script(script))) { + qDebug() << __FUNCTION__ <<"returns 0 due to missing OpenType" << request.family; qWarning(" OpenType support missing for script %d", int(script)); delete few; return 0; @@ -1780,6 +1785,7 @@ QFontEngine *QWindowsFontDatabase::createEngine(int script, const QFontDef &requ if ((script == QChar::Script_Common || script == QChar::Script_Han) && !(request.styleStrategy & QFont::NoFontMerging)) { QStringList extraFonts = extraTryFontsForFamily(request.family); + qDebug() << __FUNCTION__ << "extraFonts" << extraFonts; if (extraFonts.size()) { QStringList list = family_list; list.append(extraFonts); diff --git a/src/plugins/platforms/windows/qwindowsfontengine.cpp b/src/plugins/platforms/windows/qwindowsfontengine.cpp index 6ff000e..dc7b2db 100644 --- a/src/plugins/platforms/windows/qwindowsfontengine.cpp +++ b/src/plugins/platforms/windows/qwindowsfontengine.cpp @@ -1344,7 +1344,7 @@ QWindowsMultiFontEngine::QWindowsMultiFontEngine(QFontEngine *first, const QStri : QFontEngineMulti(fallbacks.size()+1), fallbacks(fallbacks) { - qCDebug(lcQpaFonts) << __FUNCTION__ << engines.size() << first << first->fontDef.family << fallbacks; + qDebug() << __FUNCTION__ << engines.size() << first << first->fontDef.family << fallbacks; engines[0] = first; first->ref.ref(); fontDef = engines[0]->fontDef; @@ -1426,7 +1426,7 @@ void QWindowsMultiFontEngine::loadEngine(int at) engines[at] = new QWindowsFontEngine(fam, hfont, stockFont, lf, data); engines[at]->ref.ref(); engines[at]->fontDef = fontDef; - qCDebug(lcQpaFonts) << __FUNCTION__ << at << fam; + qDebug() << __FUNCTION__ << at << fam; // TODO: increase cost in QFontCache for the font engine loaded here }