diff options
Diffstat (limited to 'src/tools')
-rw-r--r-- | src/tools/bootstrap/bootstrap.pro | 20 | ||||
-rw-r--r-- | src/tools/moc/moc.cpp | 6 | ||||
-rw-r--r-- | src/tools/qdbuscpp2xml/qdbuscpp2xml.pro | 1 | ||||
-rw-r--r-- | src/tools/qdbusxml2cpp/qdbusxml2cpp.cpp | 2 | ||||
-rw-r--r-- | src/tools/qdbusxml2cpp/qdbusxml2cpp.pro | 1 | ||||
-rw-r--r-- | src/tools/qdoc/codemarker.cpp | 34 | ||||
-rw-r--r-- | src/tools/qdoc/codemarker.h | 6 | ||||
-rw-r--r-- | src/tools/qdoc/cppcodemarker.cpp | 86 | ||||
-rw-r--r-- | src/tools/qdoc/generator.cpp | 6 | ||||
-rw-r--r-- | src/tools/qdoc/htmlgenerator.cpp | 4 | ||||
-rw-r--r-- | src/tools/qdoc/node.h | 5 | ||||
-rw-r--r-- | src/tools/qdoc/qdoc.pro | 3 | ||||
-rw-r--r-- | src/tools/qdoc/qdocdatabase.cpp | 35 | ||||
-rw-r--r-- | src/tools/qdoc/qdocdatabase.h | 30 | ||||
-rw-r--r-- | src/tools/qdoc/qdocindexfiles.cpp | 6 | ||||
-rw-r--r-- | src/tools/qdoc/tree.cpp | 48 | ||||
-rw-r--r-- | src/tools/rcc/rcc.cpp | 4 | ||||
-rw-r--r-- | src/tools/tools.pro | 14 | ||||
-rw-r--r-- | src/tools/uic/uic.cpp | 3 |
19 files changed, 151 insertions, 163 deletions
diff --git a/src/tools/bootstrap/bootstrap.pro b/src/tools/bootstrap/bootstrap.pro index f2f041b704..0d4b62fd16 100644 --- a/src/tools/bootstrap/bootstrap.pro +++ b/src/tools/bootstrap/bootstrap.pro @@ -41,16 +41,6 @@ load(qt_module) INCLUDEPATH += $$QT_BUILD_TREE/src/corelib/global -DEPENDPATH += $$INCLUDEPATH \ - ../../corelib/global \ - ../../corelib/kernel \ - ../../corelib/tools \ - ../../corelib/io \ - ../../corelib/codecs \ - ../../corelib/json \ - ../../xml/dom \ - ../../xml/sax - SOURCES += \ ../../corelib/codecs/qlatincodec.cpp \ ../../corelib/codecs/qtextcodec.cpp \ @@ -139,16 +129,6 @@ win32:LIBS += -luser32 -lole32 -ladvapi32 lib.CONFIG = dummy_install INSTALLS += lib -# Make dummy "sis" and "freeze" target to keep recursive "make sis/freeze" working. -sis_target.target = sis -sis_target.commands = -sis_target.depends = first -QMAKE_EXTRA_TARGETS += sis_target -freeze_target.target = freeze -freeze_target.commands = -freeze_target.depends = first -QMAKE_EXTRA_TARGETS += freeze_target - !build_pass { # We need the forwarding headers before their respective modules are built, # so do a minimal syncqt run. diff --git a/src/tools/moc/moc.cpp b/src/tools/moc/moc.cpp index 96d6e9e456..5fbbd57c22 100644 --- a/src/tools/moc/moc.cpp +++ b/src/tools/moc/moc.cpp @@ -831,9 +831,6 @@ static void findRequiredContainers(ClassDef *cdef, QSet<QByteArray> *requiredQtC void Moc::generate(FILE *out) { - - QDateTime dt = QDateTime::currentDateTime(); - QByteArray dstr = dt.toString().toLatin1(); QByteArray fn = filename; int i = filename.length()-1; while (i>0 && filename[i-1] != '/' && filename[i-1] != '\\') @@ -842,8 +839,7 @@ void Moc::generate(FILE *out) fn = filename.mid(i); fprintf(out, "/****************************************************************************\n" "** Meta object code from reading C++ file '%s'\n**\n" , fn.constData()); - fprintf(out, "** Created: %s\n" - "** by: The Qt Meta Object Compiler version %d (Qt %s)\n**\n" , dstr.data(), mocOutputRevision, QT_VERSION_STR); + fprintf(out, "** Created by: The Qt Meta Object Compiler version %d (Qt %s)\n**\n" , mocOutputRevision, QT_VERSION_STR); fprintf(out, "** WARNING! All changes made in this file will be lost!\n" "*****************************************************************************/\n\n"); diff --git a/src/tools/qdbuscpp2xml/qdbuscpp2xml.pro b/src/tools/qdbuscpp2xml/qdbuscpp2xml.pro index a17b91dd79..02c3655f33 100644 --- a/src/tools/qdbuscpp2xml/qdbuscpp2xml.pro +++ b/src/tools/qdbuscpp2xml/qdbuscpp2xml.pro @@ -19,7 +19,6 @@ SOURCES += qdbuscpp2xml.cpp \ $$QT_SOURCE_TREE/src/dbus/qdbusutil.cpp \ $$QT_SOURCE_TREE/src/dbus/qdbusmisc.cpp \ $$QT_SOURCE_TREE/src/dbus/qdbusargument.cpp \ - $$QT_SOURCE_TREE/src/dbus/qdbusmarshaller.cpp \ $$QT_SOURCE_TREE/src/dbus/qdbusextratypes.cpp \ $$QT_SOURCE_TREE/src/dbus/qdbus_symbols.cpp \ $$QT_SOURCE_TREE/src/dbus/qdbusunixfiledescriptor.cpp diff --git a/src/tools/qdbusxml2cpp/qdbusxml2cpp.cpp b/src/tools/qdbusxml2cpp/qdbusxml2cpp.cpp index bdc9bc30dc..786d5108fc 100644 --- a/src/tools/qdbusxml2cpp/qdbusxml2cpp.cpp +++ b/src/tools/qdbusxml2cpp/qdbusxml2cpp.cpp @@ -498,7 +498,7 @@ static QString stringify(const QString &data) retval += QLatin1String("\\\""); else retval += data[i]; - if (data[i] == QLatin1Char('\r') && data[i+1] == QLatin1Char('\n')) + if (i+1 < data.length() && data[i] == QLatin1Char('\r') && data[i+1] == QLatin1Char('\n')) i++; retval += QLatin1String("\\n\"\n"); } diff --git a/src/tools/qdbusxml2cpp/qdbusxml2cpp.pro b/src/tools/qdbusxml2cpp/qdbusxml2cpp.pro index 7c2bb2e22f..b473014938 100644 --- a/src/tools/qdbusxml2cpp/qdbusxml2cpp.pro +++ b/src/tools/qdbusxml2cpp/qdbusxml2cpp.pro @@ -19,7 +19,6 @@ SOURCES = qdbusxml2cpp.cpp \ $$QT_SOURCE_TREE/src/dbus/qdbusutil.cpp \ $$QT_SOURCE_TREE/src/dbus/qdbusmetatype.cpp \ $$QT_SOURCE_TREE/src/dbus/qdbusargument.cpp \ - $$QT_SOURCE_TREE/src/dbus/qdbusmarshaller.cpp \ $$QT_SOURCE_TREE/src/dbus/qdbusextratypes.cpp \ $$QT_SOURCE_TREE/src/dbus/qdbus_symbols.cpp \ $$QT_SOURCE_TREE/src/dbus/qdbusunixfiledescriptor.cpp diff --git a/src/tools/qdoc/codemarker.cpp b/src/tools/qdoc/codemarker.cpp index 7cc6b631f6..9fe91d93e8 100644 --- a/src/tools/qdoc/codemarker.cpp +++ b/src/tools/qdoc/codemarker.cpp @@ -396,7 +396,7 @@ void CodeMarker::insert(FastSection &fastSection, bool irrelevant = false; bool inheritedMember = false; if (!node->relates()) { - if (node->parent() != (const InnerNode*)fastSection.innerNode && !node->parent()->isAbstract()) { + if (node->parent() != fastSection.parent_) { // && !node->parent()->isAbstract()) { if (node->type() != Node::QmlProperty) { inheritedMember = true; } @@ -468,7 +468,7 @@ void CodeMarker::insert(FastSection& fastSection, (parent->subType() == Node::QmlPropertyGroup)) { parent = parent->parent(); } - inheritedMember = (parent != (const InnerNode*)fastSection.innerNode); + inheritedMember = (parent != fastSection.parent_); if (!inheritedMember || style == Subpage) { QString key = sortName(node); @@ -488,24 +488,24 @@ void CodeMarker::insert(FastSection& fastSection, } /*! - Returns true if \a node represents a reimplemented member function. - If it is, then it is inserted in the reimplemented member map in the - section \a fs. And, the test is only performed if \a status is \e OK. - Otherwise, false is returned. + Returns true if \a node represents a reimplemented member + function in the class of the FastSection \a fs. If it is + a reimplemented function, then it is inserted into the + reimplemented member map in \a fs. The test is performed + only if \a status is \e OK. True is returned if \a node + is inserted into the map. Otherwise, false is returned. */ bool CodeMarker::insertReimpFunc(FastSection& fs, Node* node, Status status) { - if (node->access() == Node::Private) - return false; - - const FunctionNode* fn = static_cast<const FunctionNode*>(node); - if ((fn->reimplementedFrom() != 0) && (status == Okay)) { - bool inherited = (!fn->relates() && (fn->parent() != (const InnerNode*)fs.innerNode)); - if (!inherited) { - QString key = sortName(fn); - if (!fs.reimpMemberMap.contains(key)) { - fs.reimpMemberMap.insert(key,node); - return true; + if ((node->access() != Node::Private) && (node->relates() == 0)) { + const FunctionNode* fn = static_cast<const FunctionNode*>(node); + if ((fn->reimplementedFrom() != 0) && (status == Okay)) { + if (fn->parent() == fs.parent_) { + QString key = sortName(fn); + if (!fs.reimpMemberMap.contains(key)) { + fs.reimpMemberMap.insert(key,node); + return true; + } } } } diff --git a/src/tools/qdoc/codemarker.h b/src/tools/qdoc/codemarker.h index 0e699a62bf..14d33d37a0 100644 --- a/src/tools/qdoc/codemarker.h +++ b/src/tools/qdoc/codemarker.h @@ -82,7 +82,7 @@ struct Section struct FastSection { - const InnerNode *innerNode; + const InnerNode *parent_; QString name; QString divClass; QString singularMember; @@ -91,12 +91,12 @@ struct FastSection QMap<QString, Node *> reimpMemberMap; QList<QPair<InnerNode *, int> > inherited; - FastSection(const InnerNode *innerNode0, + FastSection(const InnerNode *parent, const QString& name0, const QString& divClass0, const QString& singularMember0, const QString& pluralMember0) - : innerNode(innerNode0), + : parent_(parent), name(name0), divClass(divClass0), singularMember(singularMember0), diff --git a/src/tools/qdoc/cppcodemarker.cpp b/src/tools/qdoc/cppcodemarker.cpp index 3abe4c2a65..74036f4011 100644 --- a/src/tools/qdoc/cppcodemarker.cpp +++ b/src/tools/qdoc/cppcodemarker.cpp @@ -449,74 +449,74 @@ QList<Section> CppCodeMarker::sections(const InnerNode *inner, QList<Section> sections; if (inner->type() == Node::Class) { - const ClassNode *classe = static_cast<const ClassNode *>(inner); + const ClassNode *classNode = static_cast<const ClassNode *>(inner); if (style == Summary) { - FastSection privateFunctions(classe, + FastSection privateFunctions(classNode, "Private Functions", QString(), "private function", "private functions"); - FastSection privateSlots(classe, "Private Slots", QString(), "private slot", "private slots"); - FastSection privateTypes(classe, "Private Types", QString(), "private type", "private types"); - FastSection protectedFunctions(classe, + FastSection privateSlots(classNode, "Private Slots", QString(), "private slot", "private slots"); + FastSection privateTypes(classNode, "Private Types", QString(), "private type", "private types"); + FastSection protectedFunctions(classNode, "Protected Functions", QString(), "protected function", "protected functions"); - FastSection protectedSlots(classe, + FastSection protectedSlots(classNode, "Protected Slots", QString(), "protected slot", "protected slots"); - FastSection protectedTypes(classe, + FastSection protectedTypes(classNode, "Protected Types", QString(), "protected type", "protected types"); - FastSection protectedVariables(classe, + FastSection protectedVariables(classNode, "Protected Variables", QString(), "protected type", "protected variables"); - FastSection publicFunctions(classe, + FastSection publicFunctions(classNode, "Public Functions", QString(), "public function", "public functions"); - FastSection publicSignals(classe, "Signals", QString(), "signal", "signal"); - FastSection publicSlots(classe, "Public Slots", QString(), "public slot", "public slots"); - FastSection publicTypes(classe, "Public Types", QString(), "public type", "public types"); - FastSection publicVariables(classe, + FastSection publicSignals(classNode, "Signals", QString(), "signal", "signals"); + FastSection publicSlots(classNode, "Public Slots", QString(), "public slot", "public slots"); + FastSection publicTypes(classNode, "Public Types", QString(), "public type", "public types"); + FastSection publicVariables(classNode, "Public Variables", QString(), "public variable", "public variables"); - FastSection properties(classe, "Properties", QString(), "property", "properties"); - FastSection relatedNonMembers(classe, + FastSection properties(classNode, "Properties", QString(), "property", "properties"); + FastSection relatedNonMembers(classNode, "Related Non-Members", QString(), "related non-member", "related non-members"); - FastSection staticPrivateMembers(classe, + FastSection staticPrivateMembers(classNode, "Static Private Members", QString(), "static private member", "static private members"); - FastSection staticProtectedMembers(classe, + FastSection staticProtectedMembers(classNode, "Static Protected Members", QString(), "static protected member", "static protected members"); - FastSection staticPublicMembers(classe, + FastSection staticPublicMembers(classNode, "Static Public Members", QString(), "static public member", "static public members"); FastSection macros(inner, "Macros", QString(), "macro", "macros"); - NodeList::ConstIterator r = classe->relatedNodes().constBegin(); - while (r != classe->relatedNodes().constEnd()) { + NodeList::ConstIterator r = classNode->relatedNodes().constBegin(); + while (r != classNode->relatedNodes().constEnd()) { if ((*r)->type() == Node::Function) { FunctionNode *func = static_cast<FunctionNode *>(*r); if (func->isMacro()) @@ -531,7 +531,7 @@ QList<Section> CppCodeMarker::sections(const InnerNode *inner, } QStack<const ClassNode *> stack; - stack.push(classe); + stack.push(classNode); while (!stack.isEmpty()) { const ClassNode *ancestorClass = stack.pop(); @@ -566,8 +566,7 @@ QList<Section> CppCodeMarker::sections(const InnerNode *inner, insert(publicSignals, *c, style, status); } else if (isStatic) { - if ((*c)->type() != Node::Variable - || !(*c)->doc().isEmpty()) + if ((*c)->type() != Node::Variable || !(*c)->doc().isEmpty()) insert(staticPublicMembers,*c,style,status); } else if ((*c)->type() == Node::Property) { @@ -578,8 +577,9 @@ QList<Section> CppCodeMarker::sections(const InnerNode *inner, insert(publicVariables, *c, style, status); } else if ((*c)->type() == Node::Function) { - if (!insertReimpFunc(publicFunctions,*c,status)) + if (!insertReimpFunc(publicFunctions,*c,status)) { insert(publicFunctions, *c, style, status); + } } else { insert(publicTypes, *c, style, status); @@ -590,8 +590,7 @@ QList<Section> CppCodeMarker::sections(const InnerNode *inner, insert(protectedSlots, *c, style, status); } else if (isStatic) { - if ((*c)->type() != Node::Variable - || !(*c)->doc().isEmpty()) + if ((*c)->type() != Node::Variable || !(*c)->doc().isEmpty()) insert(staticProtectedMembers,*c,style,status); } else if ((*c)->type() == Node::Variable) { @@ -599,8 +598,9 @@ QList<Section> CppCodeMarker::sections(const InnerNode *inner, insert(protectedVariables,*c,style,status); } else if ((*c)->type() == Node::Function) { - if (!insertReimpFunc(protectedFunctions,*c,status)) + if (!insertReimpFunc(protectedFunctions,*c,status)) { insert(protectedFunctions, *c, style, status); + } } else { insert(protectedTypes, *c, style, status); @@ -611,13 +611,13 @@ QList<Section> CppCodeMarker::sections(const InnerNode *inner, insert(privateSlots, *c, style, status); } else if (isStatic) { - if ((*c)->type() != Node::Variable - || !(*c)->doc().isEmpty()) + if ((*c)->type() != Node::Variable || !(*c)->doc().isEmpty()) insert(staticPrivateMembers,*c,style,status); } else if ((*c)->type() == Node::Function) { - if (!insertReimpFunc(privateFunctions,*c,status)) + if (!insertReimpFunc(privateFunctions,*c,status)) { insert(privateFunctions, *c, style, status); + } } else { insert(privateTypes,*c,style,status); @@ -654,15 +654,15 @@ QList<Section> CppCodeMarker::sections(const InnerNode *inner, append(sections, macros); } else if (style == Detailed) { - FastSection memberFunctions(classe,"Member Function Documentation","func","member","members"); - FastSection memberTypes(classe,"Member Type Documentation","types","member","members"); - FastSection memberVariables(classe,"Member Variable Documentation","vars","member","members"); - FastSection properties(classe,"Property Documentation","prop","member","members"); - FastSection relatedNonMembers(classe,"Related Non-Members","relnonmem","member","members"); - FastSection macros(classe,"Macro Documentation","macros","member","members"); - - NodeList::ConstIterator r = classe->relatedNodes().constBegin(); - while (r != classe->relatedNodes().constEnd()) { + FastSection memberFunctions(classNode,"Member Function Documentation","func","member","members"); + FastSection memberTypes(classNode,"Member Type Documentation","types","member","members"); + FastSection memberVariables(classNode,"Member Variable Documentation","vars","member","members"); + FastSection properties(classNode,"Property Documentation","prop","member","members"); + FastSection relatedNonMembers(classNode,"Related Non-Members","relnonmem","member","members"); + FastSection macros(classNode,"Macro Documentation","macros","member","members"); + + NodeList::ConstIterator r = classNode->relatedNodes().constBegin(); + while (r != classNode->relatedNodes().constEnd()) { if ((*r)->type() == Node::Function) { FunctionNode *func = static_cast<FunctionNode *>(*r); if (func->isMacro()) @@ -676,8 +676,8 @@ QList<Section> CppCodeMarker::sections(const InnerNode *inner, ++r; } - NodeList::ConstIterator c = classe->childNodes().constBegin(); - while (c != classe->childNodes().constEnd()) { + NodeList::ConstIterator c = classNode->childNodes().constBegin(); + while (c != classNode->childNodes().constEnd()) { if ((*c)->type() == Node::Enum || (*c)->type() == Node::Typedef) { insert(memberTypes, *c, style, status); @@ -705,10 +705,10 @@ QList<Section> CppCodeMarker::sections(const InnerNode *inner, append(sections, macros); } else { - FastSection all(classe,QString(),QString(),"member","members"); + FastSection all(classNode,QString(),QString(),"member","members"); QStack<const ClassNode *> stack; - stack.push(classe); + stack.push(classNode); while (!stack.isEmpty()) { const ClassNode *ancestorClass = stack.pop(); diff --git a/src/tools/qdoc/generator.cpp b/src/tools/qdoc/generator.cpp index 50687d8014..d9aed3ed06 100644 --- a/src/tools/qdoc/generator.cpp +++ b/src/tools/qdoc/generator.cpp @@ -1529,9 +1529,9 @@ void Generator::initialize(const Config &config) if (outputFormats.contains((*g)->format())) { currentGenerator_ = (*g); (*g)->initializeGenerator(config); - QStringList extraImages = config.getCleanPathList((*g)->format() + - Config::dot + - CONFIG_EXTRAIMAGES); + QStringList extraImages = config.getPathList((*g)->format() + + Config::dot + + CONFIG_EXTRAIMAGES); QStringList::ConstIterator e = extraImages.constBegin(); while (e != extraImages.constEnd()) { QString filePath = *e; diff --git a/src/tools/qdoc/htmlgenerator.cpp b/src/tools/qdoc/htmlgenerator.cpp index 1a8425b5ce..6c0248362c 100644 --- a/src/tools/qdoc/htmlgenerator.cpp +++ b/src/tools/qdoc/htmlgenerator.cpp @@ -3502,6 +3502,10 @@ QString HtmlGenerator::getLink(const Atom *atom, const Node *relative, const Nod } if (!*node) { *node = qdb_->findUnambiguousTarget(first, ref, relative); + if (*node && !(*node)->url().isEmpty() && !ref.isEmpty()) { + QString final = (*node)->url() + "#" + ref; + return final; + } } } if (*node) { diff --git a/src/tools/qdoc/node.h b/src/tools/qdoc/node.h index f93e777d84..88be423478 100644 --- a/src/tools/qdoc/node.h +++ b/src/tools/qdoc/node.h @@ -822,13 +822,8 @@ private: QString rt; QStringList pp; -#ifdef Q_WS_WIN Metaness met; Virtualness vir; -#else - Metaness met : 4; - Virtualness vir : 2; -#endif bool con : 1; bool sta : 1; bool ove : 1; diff --git a/src/tools/qdoc/qdoc.pro b/src/tools/qdoc/qdoc.pro index b489668059..c0f3cd70d1 100644 --- a/src/tools/qdoc/qdoc.pro +++ b/src/tools/qdoc/qdoc.pro @@ -5,9 +5,6 @@ DEFINES += QDOC2_COMPAT INCLUDEPATH += $$QT_SOURCE_TREE/src/tools/qdoc \ $$QT_SOURCE_TREE/src/tools/qdoc/qmlparser -DEPENDPATH += $$QT_SOURCE_TREE/src/tools/qdoc \ - $$QT_SOURCE_TREE/src/tools/qdoc/qmlparser - # Increase the stack size on MSVC to 4M to avoid a stack overflow win32-msvc*:{ QMAKE_LFLAGS += /STACK:4194304 diff --git a/src/tools/qdoc/qdocdatabase.cpp b/src/tools/qdoc/qdocdatabase.cpp index fa5b2c013f..806b7b1d48 100644 --- a/src/tools/qdoc/qdocdatabase.cpp +++ b/src/tools/qdoc/qdocdatabase.cpp @@ -684,14 +684,15 @@ const Node* QDocDatabase::findNodeForTarget(const QString& target, const Node* r Inserts a new target into the target table with the specified \a name, \a node, and \a priority. */ -void QDocDatabase::insertTarget(const QString& name, Node* node, int priority) +void QDocDatabase::insertTarget(const QString& name, TargetRec::Type type, Node* node, int priority) { - Target target; + TargetRec target; + target.type_ = type; target.node_ = node; target.priority_ = priority; Atom a = Atom(Atom::Target, name); target.ref_ = refForAtom(&a); - targetMultiMap_.insert(name, target); + targetRecMultiMap_.insert(name, target); } /*! @@ -701,16 +702,16 @@ void QDocDatabase::insertTarget(const QString& name, Node* node, int priority) const Node* QDocDatabase::findUnambiguousTarget(const QString& target, QString& ref, const Node* relative) { - Target bestTarget; + TargetRec bestTarget; int numBestTargets = 0; - QList<Target> bestTargetList; + QList<TargetRec> bestTargetList; QString key = Doc::canonicalTitle(target); - TargetMultiMap::iterator i = targetMultiMap_.find(key); - while (i != targetMultiMap_.end()) { + TargetRecMultiMap::iterator i = targetRecMultiMap_.find(key); + while (i != targetRecMultiMap_.end()) { if (i.key() != key) break; - const Target& candidate = i.value(); + const TargetRec& candidate = i.value(); if (candidate.priority_ < bestTarget.priority_) { bestTarget = candidate; bestTargetList.clear(); @@ -808,14 +809,14 @@ const DocNode* QDocDatabase::findDocNodeByTitle(const QString& title, const Node QString QDocDatabase::findTarget(const QString& target, const Node* node) const { QString key = Doc::canonicalTitle(target); - TargetMultiMap::const_iterator i = targetMultiMap_.constFind(key); + TargetRecMultiMap::const_iterator i = targetRecMultiMap_.constFind(key); - if (i != targetMultiMap_.constEnd()) { + if (i != targetRecMultiMap_.constEnd()) { do { if (i.value().node_ == node) return i.value().ref_; ++i; - } while (i != targetMultiMap_.constEnd() && i.key() == key); + } while (i != targetRecMultiMap_.constEnd() && i.key() == key); } return QString(); } @@ -840,7 +841,7 @@ void QDocDatabase::resolveTargets(InnerNode* root) if (child->doc().hasTableOfContents()) { const QList<Atom*>& toc = child->doc().tableOfContents(); - Target target; + TargetRec target; target.node_ = child; target.priority_ = 3; @@ -849,32 +850,32 @@ void QDocDatabase::resolveTargets(InnerNode* root) QString title = Text::sectionHeading(toc.at(i)).toString(); if (!title.isEmpty()) { QString key = Doc::canonicalTitle(title); - targetMultiMap_.insert(key, target); + targetRecMultiMap_.insert(key, target); } } } if (child->doc().hasKeywords()) { const QList<Atom*>& keywords = child->doc().keywords(); - Target target; + TargetRec target; target.node_ = child; target.priority_ = 1; for (int i = 0; i < keywords.size(); ++i) { target.ref_ = refForAtom(keywords.at(i)); QString key = Doc::canonicalTitle(keywords.at(i)->string()); - targetMultiMap_.insert(key, target); + targetRecMultiMap_.insert(key, target); } } if (child->doc().hasTargets()) { const QList<Atom*>& toc = child->doc().targets(); - Target target; + TargetRec target; target.node_ = child; target.priority_ = 2; for (int i = 0; i < toc.size(); ++i) { target.ref_ = refForAtom(toc.at(i)); QString key = Doc::canonicalTitle(toc.at(i)->string()); - targetMultiMap_.insert(key, target); + targetRecMultiMap_.insert(key, target); } } } diff --git a/src/tools/qdoc/qdocdatabase.h b/src/tools/qdoc/qdocdatabase.h index 2a91693c02..d715b71e23 100644 --- a/src/tools/qdoc/qdocdatabase.h +++ b/src/tools/qdoc/qdocdatabase.h @@ -65,21 +65,23 @@ enum FindFlag { NonFunction = 0x4 }; -class QDocDatabase +struct TargetRec { + public: + enum Type { Unknown, Target, Keyword, Contents, Class, Function, Page, Subtitle }; + TargetRec() : node_(0), priority_(INT_MAX), type_(Unknown) { } + bool isEmpty() const { return ref_.isEmpty(); } + //void debug(int idx, const QString& key); + Node* node_; + QString ref_; + int priority_; + Type type_; +}; +typedef QMultiMap<QString, TargetRec> TargetRecMultiMap; - struct Target - { - public: - Target() : node_(0), priority_(INT_MAX) { } - bool isEmpty() const { return ref_.isEmpty(); } - //void debug(int idx, const QString& key); - Node* node_; - QString ref_; - int priority_; - }; - typedef QMultiMap<QString, Target> TargetMultiMap; +class QDocDatabase +{ public: static QDocDatabase* qdocDB(); static void destroyQdocDB(); @@ -127,7 +129,7 @@ class QDocDatabase const Node* resolveTarget(const QString& target, const Node* relative, const Node* self=0); const Node* findNodeForTarget(const QString& target, const Node* relative); - void insertTarget(const QString& name, Node* node, int priority); + void insertTarget(const QString& name, TargetRec::Type type, Node* node, int priority); /* convenience functions Many of these will be either eliminated or replaced. @@ -226,7 +228,7 @@ class QDocDatabase NodeMapMap funcIndex_; TextToNodeMap legaleseTexts_; DocNodeMultiMap docNodesByTitle_; - TargetMultiMap targetMultiMap_; + TargetRecMultiMap targetRecMultiMap_; }; QT_END_NAMESPACE diff --git a/src/tools/qdoc/qdocindexfiles.cpp b/src/tools/qdoc/qdocindexfiles.cpp index 2db5db3714..fec4f304e3 100644 --- a/src/tools/qdoc/qdocindexfiles.cpp +++ b/src/tools/qdoc/qdocindexfiles.cpp @@ -381,15 +381,15 @@ void QDocIndexFiles::readIndexSection(const QDomElement& element, location = Location(parent->name().toLower() + ".html"); } else if (element.nodeName() == "keyword") { - qdb_->insertTarget(name, parent,1); + qdb_->insertTarget(name, TargetRec::Keyword, parent, 1); return; } else if (element.nodeName() == "target") { - qdb_->insertTarget(name, parent,2); + qdb_->insertTarget(name, TargetRec::Target, parent, 2); return; } else if (element.nodeName() == "contents") { - qdb_->insertTarget(name, parent,3); + qdb_->insertTarget(name, TargetRec::Contents, parent, 3); return; } else diff --git a/src/tools/qdoc/tree.cpp b/src/tools/qdoc/tree.cpp index c622fb929b..e7a8f5b5d0 100644 --- a/src/tools/qdoc/tree.cpp +++ b/src/tools/qdoc/tree.cpp @@ -398,6 +398,11 @@ void Tree::addPropertyFunction(PropertyNode* property, } /*! + This function resolves inheritance and reimplementation settings + for each class node found in the namspace beginning ar \a rootNode. + If it finds another namespace node in the child list of \a rootNode, + it calls itself recursively. For each child of \a rootNode that is a + class node, it calls the other resolveInheritance() function. */ void Tree::resolveInheritance(NamespaceNode* rootNode) { @@ -475,11 +480,24 @@ void Tree::resolveProperties() } /*! + This function is run twice for each \a classNode in the + tree. First it is run with \a pass set to 0 for each + \a classNode. Then it is run with \a pass set to 1 for + each \a classNode. + + In \a pass 0, all the base classes of \a classNode are + found and added to the base class list for \a classNode. + + In \a pass 1, each child of \a classNode that is a function + that is reimplemented from one of the base classes is marked + as being reimplemented from that class. + + Some property node fixing up is also done in \a pass 1. */ -void Tree::resolveInheritance(int pass, ClassNode* classe) +void Tree::resolveInheritance(int pass, ClassNode* classNode) { if (pass == 0) { - QList<InheritanceBound> bounds = unresolvedInheritanceMap[classe]; + QList<InheritanceBound> bounds = unresolvedInheritanceMap[classNode]; QList<InheritanceBound>::ConstIterator b = bounds.constBegin(); while (b != bounds.constEnd()) { Node* n = findClassNode((*b).basePath); @@ -487,17 +505,17 @@ void Tree::resolveInheritance(int pass, ClassNode* classe) n = findClassNode((*b).basePath, (*b).parent); } if (n) { - classe->addBaseClass((*b).access, static_cast<ClassNode*>(n), (*b).dataTypeWithTemplateArgs); + classNode->addBaseClass((*b).access, static_cast<ClassNode*>(n), (*b).dataTypeWithTemplateArgs); } ++b; } } else { - NodeList::ConstIterator c = classe->childNodes().constBegin(); - while (c != classe->childNodes().constEnd()) { + NodeList::ConstIterator c = classNode->childNodes().constBegin(); + while (c != classNode->childNodes().constEnd()) { if ((*c)->type() == Node::Function) { FunctionNode* func = (FunctionNode*)* c; - FunctionNode* from = findVirtualFunctionInBaseClasses(classe, func); + FunctionNode* from = findVirtualFunctionInBaseClasses(classNode, func); if (from != 0) { if (func->virtualness() == FunctionNode::NonVirtual) func->setVirtualness(FunctionNode::ImpureVirtual); @@ -505,7 +523,7 @@ void Tree::resolveInheritance(int pass, ClassNode* classe) } } else if ((*c)->type() == Node::Property) { - fixPropertyUsingBaseClasses(classe, static_cast<PropertyNode*>(*c)); + fixPropertyUsingBaseClasses(classNode, static_cast<PropertyNode*>(*c)); } ++c; } @@ -551,11 +569,11 @@ void Tree::fixInheritance(NamespaceNode* rootNode) /*! */ -FunctionNode* Tree::findVirtualFunctionInBaseClasses(ClassNode* classe, +FunctionNode* Tree::findVirtualFunctionInBaseClasses(ClassNode* classNode, FunctionNode* clone) { - QList<RelatedClass>::ConstIterator r = classe->baseClasses().constBegin(); - while (r != classe->baseClasses().constEnd()) { + QList<RelatedClass>::ConstIterator r = classNode->baseClasses().constBegin(); + while (r != classNode->baseClasses().constEnd()) { FunctionNode* func; if (((func = findVirtualFunctionInBaseClasses((*r).node, clone)) != 0 || (func = (*r).node->findFunctionNode(clone)) != 0)) { @@ -569,10 +587,10 @@ FunctionNode* Tree::findVirtualFunctionInBaseClasses(ClassNode* classe, /*! */ -void Tree::fixPropertyUsingBaseClasses(ClassNode* classe, PropertyNode* property) +void Tree::fixPropertyUsingBaseClasses(ClassNode* classNode, PropertyNode* property) { - QList<RelatedClass>::const_iterator r = classe->baseClasses().constBegin(); - while (r != classe->baseClasses().constEnd()) { + QList<RelatedClass>::const_iterator r = classNode->baseClasses().constBegin(); + while (r != classNode->baseClasses().constEnd()) { Node* n = r->node->findChildNodeByNameAndType(property->name(), Node::Property); if (n) { PropertyNode* baseProperty = static_cast<PropertyNode*>(n); @@ -588,10 +606,10 @@ void Tree::fixPropertyUsingBaseClasses(ClassNode* classe, PropertyNode* property /*! */ -NodeList Tree::allBaseClasses(const ClassNode* classe) const +NodeList Tree::allBaseClasses(const ClassNode* classNode) const { NodeList result; - foreach (const RelatedClass& r, classe->baseClasses()) { + foreach (const RelatedClass& r, classNode->baseClasses()) { result += r.node; result += allBaseClasses(r.node); } diff --git a/src/tools/rcc/rcc.cpp b/src/tools/rcc/rcc.cpp index 969b644d84..fb952e2970 100644 --- a/src/tools/rcc/rcc.cpp +++ b/src/tools/rcc/rcc.cpp @@ -793,9 +793,7 @@ bool RCCResourceLibrary::writeHeader() writeString("/****************************************************************************\n"); writeString("** Resource object code\n"); writeString("**\n"); - writeString("** Created: "); - writeByteArray(QDateTime::currentDateTime().toString().toLatin1()); - writeString("\n** by: The Resource Compiler for Qt version "); + writeString("** Created by: The Resource Compiler for Qt version "); writeByteArray(QT_VERSION_STR); writeString("\n**\n"); writeString("** WARNING! All changes made in this file will be lost!\n"); diff --git a/src/tools/tools.pro b/src/tools/tools.pro index f7d1e651ff..fa9ed54c50 100644 --- a/src/tools/tools.pro +++ b/src/tools/tools.pro @@ -4,20 +4,20 @@ TOOLS_SUBDIRS = src_tools_bootstrap src_tools_moc src_tools_rcc src_tools_qdoc contains(QT_CONFIG, dbus): TOOLS_SUBDIRS += src_tools_qdbusxml2cpp src_tools_qdbuscpp2xml !contains(QT_CONFIG, no-widgets): TOOLS_SUBDIRS += src_tools_uic # Set subdir and respective target name -src_tools_bootstrap.subdir = $$PWD/bootstrap +src_tools_bootstrap.subdir = bootstrap src_tools_bootstrap.target = sub-tools-bootstrap -src_tools_moc.subdir = $$PWD/moc +src_tools_moc.subdir = moc src_tools_moc.target = sub-moc -src_tools_rcc.subdir = $$PWD/rcc +src_tools_rcc.subdir = rcc src_tools_rcc.target = sub-rcc -src_tools_uic.subdir = $$PWD/uic +src_tools_uic.subdir = uic src_tools_uic.target = sub-uic -src_tools_qdoc.subdir = $$QT_SOURCE_TREE/src/tools/qdoc +src_tools_qdoc.subdir = qdoc src_tools_qdoc.target = sub-qdoc contains(QT_CONFIG, dbus) { - src_tools_qdbusxml2cpp.subdir = $$QT_SOURCE_TREE/src/tools/qdbusxml2cpp + src_tools_qdbusxml2cpp.subdir = qdbusxml2cpp src_tools_qdbusxml2cpp.target = sub-qdbusxml2cpp - src_tools_qdbuscpp2xml.subdir = $$QT_SOURCE_TREE/src/tools/qdbuscpp2xml + src_tools_qdbuscpp2xml.subdir = qdbuscpp2xml src_tools_qdbuscpp2xml.target = sub-qdbuscpp2xml } diff --git a/src/tools/uic/uic.cpp b/src/tools/uic/uic.cpp index 38b4780ec9..1188271d99 100644 --- a/src/tools/uic/uic.cpp +++ b/src/tools/uic/uic.cpp @@ -134,8 +134,7 @@ void Uic::writeCopyrightHeader(DomUI *ui) out << "/********************************************************************************\n"; out << "** Form generated from reading UI file '" << QFileInfo(opt.inputFile).fileName() << "'\n"; out << "**\n"; - out << "** Created: " << QDateTime::currentDateTime().toString() << "\n"; - out << "** " << QString::fromLatin1("by: Qt User Interface Compiler version %1\n").arg(QLatin1String(QT_VERSION_STR)); + out << "** Created by: Qt User Interface Compiler version " << QLatin1String(QT_VERSION_STR) << "\n"; out << "**\n"; out << "** WARNING! All changes made in this file will be lost when recompiling UI file!\n"; out << "********************************************************************************/\n\n"; |