diff options
author | Friedemann Kleint <Friedemann.Kleint@qt.io> | 2020-10-01 07:59:26 +0200 |
---|---|---|
committer | Friedemann Kleint <Friedemann.Kleint@qt.io> | 2020-10-01 07:59:26 +0200 |
commit | 2ec2127b9f4bcd62975b175e77cd0502580d9de7 (patch) | |
tree | a63b666c1289604311338ecf59d9ea91c353a3c6 /sources/shiboken2/generator/shiboken2/headergenerator.cpp | |
parent | 0f922f604297a2022527f04a696da121396ddc0a (diff) | |
parent | 26e4ba3639bac57b0481bd6bb3964b1afa340ab9 (diff) |
Merge remote-tracking branch 'origin/5.15' into dev
Change-Id: Idaf124ad5e1d6a41d52918cecba47499be5e7324
Diffstat (limited to 'sources/shiboken2/generator/shiboken2/headergenerator.cpp')
-rw-r--r-- | sources/shiboken2/generator/shiboken2/headergenerator.cpp | 29 |
1 files changed, 13 insertions, 16 deletions
diff --git a/sources/shiboken2/generator/shiboken2/headergenerator.cpp b/sources/shiboken2/generator/shiboken2/headergenerator.cpp index 1fdd89af8..1d3a20447 100644 --- a/sources/shiboken2/generator/shiboken2/headergenerator.cpp +++ b/sources/shiboken2/generator/shiboken2/headergenerator.cpp @@ -340,14 +340,15 @@ void HeaderGenerator::writeTypeIndexValueLine(QTextStream &s, const TypeEntry *t void HeaderGenerator::writeTypeIndexValueLines(QTextStream &s, const AbstractMetaClass *metaClass) { auto typeEntry = metaClass->typeEntry(); - if (!typeEntry->generateCode() || !NamespaceTypeEntry::isVisibleScope(typeEntry)) + if (!typeEntry->generateCode()) return; - writeTypeIndexValueLine(s, metaClass->typeEntry()); + // enum indices are required for invisible namespaces as well. for (const AbstractMetaEnum *metaEnum : metaClass->enums()) { - if (metaEnum->isPrivate()) - continue; - writeTypeIndexValueLine(s, metaEnum->typeEntry()); + if (!metaEnum->isPrivate()) + writeTypeIndexValueLine(s, metaEnum->typeEntry()); } + if (NamespaceTypeEntry::isVisibleScope(typeEntry)) + writeTypeIndexValueLine(s, metaClass->typeEntry()); } // Format the typedefs for the typedef entries to be generated @@ -399,19 +400,16 @@ bool HeaderGenerator::finishGeneration() Indentation indent(INDENT); macrosStream << "// Type indices\nenum : int {\n"; - AbstractMetaEnumList globalEnums = this->globalEnums(); AbstractMetaClassList classList = classes(); std::sort(classList.begin(), classList.end(), [](AbstractMetaClass *a, AbstractMetaClass *b) { return a->typeEntry()->sbkIndex() < b->typeEntry()->sbkIndex(); }); - for (const AbstractMetaClass *metaClass : classList) { + for (const AbstractMetaClass *metaClass : classList) writeTypeIndexValueLines(macrosStream, metaClass); - lookForEnumsInClassesNotToBeGenerated(globalEnums, metaClass); - } - for (const AbstractMetaEnum *metaEnum : qAsConst(globalEnums)) + for (const AbstractMetaEnum *metaEnum : globalEnums()) writeTypeIndexValueLine(macrosStream, metaEnum->typeEntry()); // Write the smart pointer define indexes. @@ -486,12 +484,11 @@ bool HeaderGenerator::finishGeneration() typeFunctions << "QT_WARNING_PUSH\n"; typeFunctions << "QT_WARNING_DISABLE_DEPRECATED\n"; } - for (const AbstractMetaEnum *cppEnum : qAsConst(globalEnums)) { - if (cppEnum->isAnonymous() || cppEnum->isPrivate()) - continue; - includes << cppEnum->typeEntry()->include(); - writeProtectedEnumSurrogate(protEnumsSurrogates, cppEnum); - writeSbkTypeFunction(typeFunctions, cppEnum); + for (const AbstractMetaEnum *cppEnum : globalEnums()) { + if (!cppEnum->isAnonymous()) { + includes << cppEnum->typeEntry()->include(); + writeSbkTypeFunction(typeFunctions, cppEnum); + } } for (AbstractMetaClass *metaClass : classList) { |