diff options
author | Simon Hausmann <simon.hausmann@theqtcompany.com> | 2015-06-03 10:23:56 +0200 |
---|---|---|
committer | Simon Hausmann <simon.hausmann@theqtcompany.com> | 2015-06-03 10:23:56 +0200 |
commit | e2f66f921594b7be4af4a058c959557489e86879 (patch) | |
tree | cc44931708b57bd5a761906797c7dee0360d1d6b /src/gui/text | |
parent | 933bf178aab88ab5df8a68cbf02611d6d8744b1b (diff) | |
parent | 754efa57d89c62d1796e01b407e9222e67450f52 (diff) |
Merge remote-tracking branch 'origin/5.5' into dev
Conflicts:
src/corelib/global/qnamespace.qdoc
src/corelib/io/qwindowspipereader.cpp
src/corelib/io/qwindowspipereader_p.h
src/corelib/statemachine/qstatemachine.cpp
src/corelib/statemachine/qstatemachine_p.h
src/plugins/platforms/xcb/qxcbconnection.h
tests/auto/network/access/qnetworkreply/tst_qnetworkreply.cpp
tests/auto/tools/qmake/tst_qmake.cpp
tests/manual/touch/main.cpp
Change-Id: I917d694890e79ee3da7d65134b5b085e23e0dd62
Diffstat (limited to 'src/gui/text')
-rw-r--r-- | src/gui/text/qfont.h | 2 | ||||
-rw-r--r-- | src/gui/text/qfontdatabase.cpp | 74 | ||||
-rw-r--r-- | src/gui/text/qfontdatabase.h | 2 | ||||
-rw-r--r-- | src/gui/text/qfontengine.cpp | 2 | ||||
-rw-r--r-- | src/gui/text/qfontengine_ft.cpp | 2 | ||||
-rw-r--r-- | src/gui/text/qfontengine_qpf2.cpp | 2 | ||||
-rw-r--r-- | src/gui/text/qfontmetrics.h | 5 | ||||
-rw-r--r-- | src/gui/text/qtextdocumentlayout.cpp | 2 | ||||
-rw-r--r-- | src/gui/text/qtexttable.cpp | 6 | ||||
-rw-r--r-- | src/gui/text/qzip.cpp | 2 |
10 files changed, 39 insertions, 60 deletions
diff --git a/src/gui/text/qfont.h b/src/gui/text/qfont.h index cc78ea7f45..72e4197fc5 100644 --- a/src/gui/text/qfont.h +++ b/src/gui/text/qfont.h @@ -237,7 +237,7 @@ public: operator QVariant() const; bool isCopyOf(const QFont &) const; #ifdef Q_COMPILER_RVALUE_REFS - inline QFont &operator=(QFont &&other) + inline QFont &operator=(QFont &&other) Q_DECL_NOEXCEPT { qSwap(d, other.d); qSwap(resolve_mask, other.resolve_mask); return *this; } #endif diff --git a/src/gui/text/qfontdatabase.cpp b/src/gui/text/qfontdatabase.cpp index 126f0bf3ec..dae4d560a8 100644 --- a/src/gui/text/qfontdatabase.cpp +++ b/src/gui/text/qfontdatabase.cpp @@ -121,6 +121,8 @@ static int getFontWeight(const QString &weightString) return QFont::DemiBold; return QFont::Bold; } + if (s.contains(QLatin1String("thin"))) + return QFont::Thin; if (s.contains(QLatin1String("light"))) return QFont::Light; if (s.contains(QLatin1String("black"))) @@ -346,7 +348,6 @@ struct QtFontFamily populated(false), fixedPitch(false), name(n), count(0), foundries(0) - , askedForFallback(false) { memset(writingSystems, 0, sizeof(writingSystems)); } @@ -364,8 +365,6 @@ struct QtFontFamily int count; QtFontFoundry **foundries; - QStringList fallbackFamilies; - bool askedForFallback; unsigned char writingSystems[QFontDatabase::WritingSystemsCount]; bool matchesFamilyName(const QString &familyName) const; @@ -630,6 +629,7 @@ static void initFontDef(const QtFontDesc &desc, const QFontDef &request, QFontDe } else { fontDef->pixelSize = desc.size->pixelSize; } + fontDef->pointSize = request.pointSize; fontDef->styleHint = request.styleHint; fontDef->styleStrategy = request.styleStrategy; @@ -758,6 +758,7 @@ QString qt_resolveFontFamilyAlias(const QString &alias) static QStringList fallbackFamilies(const QString &family, QFont::Style style, QFont::StyleHint styleHint, QChar::Script script) { + // make sure that the db has all fallback families QStringList retList = QGuiApplicationPrivate::platformIntegration()->fontDatabase()->fallbacksForFamily(family,style,styleHint,script); QFontDatabasePrivate *db = privateDb(); @@ -883,20 +884,13 @@ QFontEngine *loadEngine(int script, const QFontDef &request, QFontEngine *engine = loadSingleEngine(script, request, family, foundry, style, size); Q_ASSERT(!engine || engine->type() != QFontEngine::Multi); if (engine && !(request.styleStrategy & QFont::NoFontMerging) && !engine->symbol) { - // make sure that the db has all fallback families - if (family && !family->askedForFallback) { - QFont::Style fontStyle = QFont::Style(style->key.style); - QFont::StyleHint styleHint = QFont::StyleHint(request.styleHint); - if (styleHint == QFont::AnyStyle && request.fixedPitch) - styleHint = QFont::TypeWriter; - family->fallbackFamilies = fallbackFamilies(family->name, fontStyle, styleHint, QChar::Script(script)); + QStringList fallbacks = request.fallBackFamilies; - family->askedForFallback = true; - } + QFont::StyleHint styleHint = QFont::StyleHint(request.styleHint); + if (styleHint == QFont::AnyStyle && request.fixedPitch) + styleHint = QFont::TypeWriter; - QStringList fallbacks = request.fallBackFamilies; - if (family) - fallbacks += family->fallbackFamilies; + fallbacks += fallbackFamilies(family->name, QFont::Style(style->key.style), styleHint, QChar::Script(script)); QPlatformFontDatabase *pfdb = QGuiApplicationPrivate::platformIntegration()->fontDatabase(); QFontEngineMulti *pfMultiEngine = pfdb->fontEngineMulti(engine, QChar::Script(script)); @@ -2505,9 +2499,7 @@ bool QFontDatabase::supportsThreadedFontRendering() /*! \internal */ -QFontEngine * -QFontDatabase::findFont(int script, const QFontPrivate *fp, - const QFontDef &request, bool multi) +QFontEngine *QFontDatabase::findFont(const QFontDef &request, int script) { QMutexLocker locker(fontDatabaseMutex()); @@ -2515,6 +2507,11 @@ QFontDatabase::findFont(int script, const QFontPrivate *fp, initializeDb(); QFontEngine *engine; + + // Until we specifically asked not to, try looking for Multi font engine + // first, the last '1' indicates that we want Multi font engine instead + // of single ones + bool multi = !(request.styleStrategy & QFont::NoFontMerging); QFontCache::Key key(request, script, multi ? 1 : 0); engine = QFontCache::instance()->findEngine(key); if (engine) { @@ -2529,6 +2526,7 @@ QFontDatabase::findFont(int script, const QFontPrivate *fp, if (qt_enable_test_font && request.family == QLatin1String("__Qt__Box__Engine__")) { engine =new QTestFontEngine(request.pixelSize); engine->fontDef = request; + return engine; } QtFontDesc desc; @@ -2536,24 +2534,14 @@ QFontDatabase::findFont(int script, const QFontPrivate *fp, int index = match(script, request, family_name, foundry_name, &desc, blackListed); if (index >= 0) { engine = loadEngine(script, request, desc.family, desc.foundry, desc.style, desc.size); - if (!engine) + if (engine) + initFontDef(desc, request, &engine->fontDef, multi); + else blackListed.append(index); } else { FM_DEBUG(" NO MATCH FOUND\n"); } - if (engine && engine->type() != QFontEngine::TestFontEngine) { - initFontDef(desc, request, &engine->fontDef, engine->type() == QFontEngine::Multi); - - if (fp) { - QFontDef def = request; - if (def.family.isEmpty()) { - def.family = fp->request.family; - def.family = def.family.left(def.family.indexOf(QLatin1Char(','))); - } - } - } - if (!engine) { if (!request.family.isEmpty()) { QFont::StyleHint styleHint = QFont::StyleHint(request.styleHint); @@ -2583,7 +2571,7 @@ QFontDatabase::findFont(int script, const QFontPrivate *fp, loadDef.family = desc.family->name; engine = loadEngine(script, loadDef, desc.family, desc.foundry, desc.style, desc.size); if (engine) - initFontDef(desc, loadDef, &engine->fontDef, engine->type() == QFontEngine::Multi); + initFontDef(desc, loadDef, &engine->fontDef, multi); else blackListed.append(index); } @@ -2598,12 +2586,6 @@ QFontDatabase::findFont(int script, const QFontPrivate *fp, FM_DEBUG("returning box engine"); } - if (fp && fp->dpi > 0) { - engine->fontDef.pointSize = qreal(double((engine->fontDef.pixelSize * 72) / fp->dpi)); - } else { - engine->fontDef.pointSize = request.pointSize; - } - return engine; } @@ -2671,12 +2653,16 @@ void QFontDatabase::load(const QFontPrivate *d, int script) for (; !fe && it != end; ++it) { req.family = *it; - fe = QFontDatabase::findFont(script, d, req, multi); - if (fe && (fe->type()==QFontEngine::Box) && !req.family.isEmpty()) { - if (fe->ref.load() == 0) - delete fe; - - fe = 0; + fe = QFontDatabase::findFont(req, script); + if (fe) { + if (fe->type() == QFontEngine::Box && !req.family.isEmpty()) { + if (fe->ref.load() == 0) + delete fe; + fe = 0; + } else { + if (d->dpi > 0) + fe->fontDef.pointSize = qreal(double((fe->fontDef.pixelSize * 72) / d->dpi)); + } } // No need to check requested fallback families again diff --git a/src/gui/text/qfontdatabase.h b/src/gui/text/qfontdatabase.h index 6d738d96be..02bc8e8a08 100644 --- a/src/gui/text/qfontdatabase.h +++ b/src/gui/text/qfontdatabase.h @@ -153,7 +153,7 @@ private: static void createDatabase(); static void parseFontName(const QString &name, QString &foundry, QString &family); static QString resolveFontFamilyAlias(const QString &family); - static QFontEngine *findFont(int script, const QFontPrivate *fp, const QFontDef &request, bool multi = false); + static QFontEngine *findFont(const QFontDef &request, int script); static void load(const QFontPrivate *d, int script); friend struct QFontDef; diff --git a/src/gui/text/qfontengine.cpp b/src/gui/text/qfontengine.cpp index b028d868b9..87e6c30afe 100644 --- a/src/gui/text/qfontengine.cpp +++ b/src/gui/text/qfontengine.cpp @@ -1641,7 +1641,7 @@ QFontEngine *QFontEngineMulti::loadEngine(int at) request.styleStrategy |= QFont::NoFontMerging; request.family = fallbackFamilyAt(at - 1); - if (QFontEngine *engine = QFontDatabase::findFont(m_script, /*fontprivate = */0, request, /*multi = */false)) { + if (QFontEngine *engine = QFontDatabase::findFont(request, m_script)) { engine->fontDef = request; return engine; } diff --git a/src/gui/text/qfontengine_ft.cpp b/src/gui/text/qfontengine_ft.cpp index 931c71dc63..37be0afccf 100644 --- a/src/gui/text/qfontengine_ft.cpp +++ b/src/gui/text/qfontengine_ft.cpp @@ -115,7 +115,7 @@ public: QtFreetypeData::~QtFreetypeData() { - for (QHash<QFontEngine::FaceId, QFreetypeFace *>::ConstIterator iter = faces.begin(); iter != faces.end(); ++iter) + for (QHash<QFontEngine::FaceId, QFreetypeFace *>::ConstIterator iter = faces.cbegin(); iter != faces.cend(); ++iter) iter.value()->cleanup(); faces.clear(); FT_Done_FreeType(library); diff --git a/src/gui/text/qfontengine_qpf2.cpp b/src/gui/text/qfontengine_qpf2.cpp index 7e16983b6c..a678b4c8ea 100644 --- a/src/gui/text/qfontengine_qpf2.cpp +++ b/src/gui/text/qfontengine_qpf2.cpp @@ -49,7 +49,7 @@ QT_BEGIN_NAMESPACE //#define DEBUG_HEADER //#define DEBUG_FONTENGINE -static QFontEngineQPF2::TagType tagTypes[QFontEngineQPF2::NumTags] = { +static const QFontEngineQPF2::TagType tagTypes[QFontEngineQPF2::NumTags] = { QFontEngineQPF2::StringType, // FontName QFontEngineQPF2::StringType, // FileName QFontEngineQPF2::UInt32Type, // FileIndex diff --git a/src/gui/text/qfontmetrics.h b/src/gui/text/qfontmetrics.h index 12aa2dadb4..65ec219a99 100644 --- a/src/gui/text/qfontmetrics.h +++ b/src/gui/text/qfontmetrics.h @@ -58,11 +58,12 @@ public: QFontMetrics &operator=(const QFontMetrics &); #ifdef Q_COMPILER_RVALUE_REFS - inline QFontMetrics &operator=(QFontMetrics &&other) + inline QFontMetrics &operator=(QFontMetrics &&other) Q_DECL_NOEXCEPT { qSwap(d, other.d); return *this; } #endif - void swap(QFontMetrics &other) { qSwap(d, other.d); } + void swap(QFontMetrics &other) Q_DECL_NOEXCEPT + { qSwap(d, other.d); } int ascent() const; int descent() const; diff --git a/src/gui/text/qtextdocumentlayout.cpp b/src/gui/text/qtextdocumentlayout.cpp index db8a792be7..5864ca0b1a 100644 --- a/src/gui/text/qtextdocumentlayout.cpp +++ b/src/gui/text/qtextdocumentlayout.cpp @@ -504,8 +504,6 @@ public: void layoutBlock(const QTextBlock &bl, int blockPosition, const QTextBlockFormat &blockFormat, QTextLayoutStruct *layoutStruct, int layoutFrom, int layoutTo, const QTextBlockFormat *previousBlockFormat); void layoutFlow(QTextFrame::Iterator it, QTextLayoutStruct *layoutStruct, int layoutFrom, int layoutTo, QFixed width = 0); - void pageBreakInsideTable(QTextTable *table, QTextLayoutStruct *layoutStruct); - void floatMargins(const QFixed &y, const QTextLayoutStruct *layoutStruct, QFixed *left, QFixed *right) const; QFixed findY(QFixed yFrom, const QTextLayoutStruct *layoutStruct, QFixed requiredWidth) const; diff --git a/src/gui/text/qtexttable.cpp b/src/gui/text/qtexttable.cpp index e5acccb55b..a75a1aae54 100644 --- a/src/gui/text/qtexttable.cpp +++ b/src/gui/text/qtexttable.cpp @@ -1264,12 +1264,6 @@ int QTextTable::columns() const return d->nCols; } -#if 0 -void QTextTable::mergeCells(const QTextCursor &selection) -{ -} -#endif - /*! \fn QTextCursor QTextTable::rowStart(const QTextCursor &cursor) const diff --git a/src/gui/text/qzip.cpp b/src/gui/text/qzip.cpp index 9f561dcb02..edd3447357 100644 --- a/src/gui/text/qzip.cpp +++ b/src/gui/text/qzip.cpp @@ -670,7 +670,7 @@ void QZipReaderPrivate::scanFiles() void QZipWriterPrivate::addEntry(EntryType type, const QString &fileName, const QByteArray &contents/*, QFile::Permissions permissions, QZip::Method m*/) { #ifndef NDEBUG - static const char *entryTypes[] = { + static const char *const entryTypes[] = { "directory", "file ", "symlink " }; |