Ignore:
Timestamp:
May 5, 2011, 5:36:53 AM (14 years ago)
Author:
Dmitry A. Kuminov
Message:

trunk: Merged in qt 4.7.2 sources from branches/vendor/nokia/qt.

Location:
trunk
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk

  • trunk/tools/qdoc3/node.h

    r651 r846  
    11/****************************************************************************
    22**
    3 ** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
     3** Copyright (C) 201 Nokia Corporation and/or its subsidiary(-ies).
    44** All rights reserved.
    55** Contact: Nokia Corporation ([email protected])
     
    5656#include "location.h"
    5757#include "text.h"
     58
    5859
    5960QT_BEGIN_NAMESPACE
     
    9798        ExternalPage,
    9899        QmlClass,
    99         QmlPropertyGroup
     100        QmlPropertyGroup,
     101        QmlBasicType
    100102#else
    101103        ExternalPage
     
    137139    };
    138140
     141
     142
     143
     144
     145
     146
     147
    139148    virtual ~Node();
    140149
     
    145154    void setThreadSafeness(ThreadSafeness safeness) { saf = safeness; }
    146155    void setSince(const QString &since) { sinc = since; }
    147     void setRelates(InnerNode *pseudoParent);
     156    void setRelates(InnerNodepseudoParent);
    148157    void setModuleName(const QString &module) { mod = module; }
    149158    void setLink(LinkType linkType, const QString &link, const QString &desc);
    150159    void setUrl(const QString &url);
    151160    void setTemplateStuff(const QString &templateStuff) { tpl = templateStuff; }
     161
     162
    152163
    153164    virtual bool isInnerNode() const = 0;
    154165    virtual bool isReimp() const { return false; }
    155166    virtual bool isFunction() const { return false; }
     167
    156168    Type type() const { return typ; }
    157169    virtual SubType subType() const { return NoSubType; }
    158     InnerNode *parent() const { return par; }
    159     InnerNode *relates() const { return rel; }
     170    InnerNodeparent() const { return par; }
     171    InnerNoderelates() const { return rel; }
    160172    const QString& name() const { return nam; }
    161173    QMap<LinkType, QPair<QString,QString> > links() const { return linkMap; }
     
    165177
    166178    Access access() const { return acc; }
     179
    167180    const Location& location() const { return loc; }
    168181    const Doc& doc() const { return d; }
     
    173186    QString since() const { return sinc; }
    174187    QString templateStuff() const { return tpl; }
     188
     189
    175190
    176191    void clearRelated() { rel = 0; }
    177192
    178193    virtual QString fileBase() const;
     194
     195
     196
    179197
    180198 protected:
    181     Node(Type type, InnerNode *parent, const QString& name);
     199    Node(Type type, InnerNodeparent, const QString& name);
    182200
    183201 private:
     
    186204    Type typ;
    187205    Access acc;
     206
     207
    188208    Status sta;
    189     ThreadSafeness saf;
    190209#else
    191210    Type typ : 4;
    192211    Access acc : 2;
     212
     213
    193214    Status sta : 3;
    194     ThreadSafeness saf : 2;
    195215#endif
    196     InnerNode *par;
    197     InnerNode *rel;
     216    InnerNodepar;
     217    InnerNoderel;
    198218    QString nam;
    199219    Location loc;
     
    204224    QString sinc;
    205225    QString tpl;
     226
    206227};
    207228
     
    209230class EnumNode;
    210231
    211 typedef QList<Node *> NodeList;
     232typedef QList<Node*> NodeList;
    212233
    213234class InnerNode : public Node
     
    216237    virtual ~InnerNode();
    217238
    218     Node *findNode(const QString& name);
    219     Node *findNode(const QString& name, Type type);
    220     FunctionNode *findFunctionNode(const QString& name);
    221     FunctionNode *findFunctionNode(const FunctionNode *clone);
     239    NodefindNode(const QString& name);
     240    NodefindNode(const QString& name, Type type);
     241    FunctionNodefindFunctionNode(const QString& name);
     242    FunctionNodeclone);
    222243    void addInclude(const QString &include);
    223244    void setIncludes(const QStringList &includes);
    224     void setOverload(const FunctionNode *func, bool overlode);
     245    void setOverload(const FunctionNodefunc, bool overlode);
    225246    void normalizeOverloads();
    226247    void makeUndocumentedChildrenInternal();
     
    229250
    230251    virtual bool isInnerNode() const;
    231     const Node *findNode(const QString& name) const;
    232     const Node *findNode(const QString& name, Type type) const;
    233     const FunctionNode *findFunctionNode(const QString& name) const;
    234     const FunctionNode *findFunctionNode(const FunctionNode *clone) const;
    235     const EnumNode *findEnumNodeForValue(const QString &enumValue) const;
     252    const NodefindNode(const QString& name) const;
     253    const NodefindNode(const QString& name, Type type) const;
     254    const FunctionNodefindFunctionNode(const QString& name) const;
     255    const FunctionNodeclone) const;
     256    const EnumNodefindEnumNodeForValue(const QString &enumValue) const;
    236257    const NodeList & childNodes() const { return children; }
    237258    const NodeList & relatedNodes() const { return related; }
    238259    int count() const { return children.size(); }
    239     int overloadNumber(const FunctionNode *func) const;
     260    int overloadNumber(const FunctionNodefunc) const;
    240261    int numOverloads(const QString& funcName) const;
    241262    NodeList overloads(const QString &funcName) const;
     
    244265    QStringList primaryKeys();
    245266    QStringList secondaryKeys();
     267
     268
     269
     270
    246271
    247272 protected:
    248     InnerNode(Type type, InnerNode *parent, const QString& name);
     273    InnerNode(Type type, InnerNodeparent, const QString& name);
    249274
    250275 private:
    251276    friend class Node;
    252277
    253     static bool isSameSignature(const FunctionNode *f1, const FunctionNode *f2);
    254     void addChild(Node *child);
    255     void removeChild(Node *child);
    256     void removeRelated(Node *pseudoChild);
    257 
     278    static bool isSameSignature(const FunctionNode* f1, const FunctionNode* f2);
     279    void addChild(Node* child);
     280    void removeChild(Node* child);
     281    void removeRelated(Node* pseudoChild);
     282
     283    QStringList pageKeywds;
    258284    QStringList inc;
    259285    NodeList children;
    260286    NodeList enumChildren;
    261287    NodeList related;
    262     QMap<QString, Node *> childMap;
    263     QMap<QString, Node *> primaryFunctionMap;
     288    QMap<QString, Node*> childMap;
     289    QMap<QString, Node*> primaryFunctionMap;
    264290    QMap<QString, NodeList> secondaryFunctionMap;
    265291};
     
    280306{
    281307 public:
    282     NamespaceNode(InnerNode *parent, const QString& name);
     308    NamespaceNode(InnerNodeparent, const QString& name);
    283309    virtual ~NamespaceNode() { }
    284310};
     
    295321        node(node0),
    296322        dataTypeWithTemplateArgs(dataTypeWithTemplateArgs0) { }
     323
    297324
    298325    Node::Access        access;
     
    301328};
    302329
     330
     331
    303332class ClassNode : public InnerNode
    304333{
    305334 public:
    306     ClassNode(InnerNode *parent, const QString& name);
     335    ClassNode(InnerNodeparent, const QString& name);
    307336    virtual ~ClassNode() { }
    308337
    309338    void addBaseClass(Access access,
    310                       ClassNode *node,
     339                      ClassNodenode,
    311340                      const QString &dataTypeWithTemplateArgs = "");
    312341    void fixBaseClasses();
    313342
    314     const QList<RelatedClass> &baseClasses() const { return bas; }
    315     const QList<RelatedClass> &derivedClasses() const { return der; }
     343    const QList<RelatedClass> &baseClasses() const { return bases; }
     344    const QList<RelatedClass> &derivedClasses() const { return derived; }
     345    const QList<RelatedClass> &ignoredBaseClasses() const { return ignoredBases; }
    316346
    317347    bool hideFromMainList() const { return hidden; }
     
    322352    QString qmlElement() const { return qmlelement; }
    323353    void setQmlElement(const QString& value) { qmlelement = value; }
    324 
    325  private:
    326     QList<RelatedClass> bas;
    327     QList<RelatedClass> der;
     354    virtual bool isAbstract() const { return abstract; }
     355    virtual void setAbstract(bool b) { abstract = b; }
     356    const PropertyNode* findPropertyNode(const QString& name) const;
     357
     358 private:
     359    QList<RelatedClass> bases;
     360    QList<RelatedClass> derived;
     361    QList<RelatedClass> ignoredBases;
    328362    bool hidden;
     363
    329364    QString sname;
    330365    QString qmlelement;
     
    335370 public:
    336371
    337     FakeNode(InnerNode *parent, const QString& name, SubType subType);
     372    FakeNode(InnerNodeparent, const QString& name, SubType subType);
    338373    virtual ~FakeNode() { }
    339374
    340375    void setTitle(const QString &title) { tle = title; }
    341376    void setSubTitle(const QString &subTitle) { stle = subTitle; }
    342     void addGroupMember(Node *node) { gr.append(node); }
     377    void addGroupMember(Nodenode) { gr.append(node); }
    343378
    344379    SubType subType() const { return sub; }
    345     QString title() const { return tle; }
    346     QString fullTitle() const;
    347     QString subTitle() const;
     380   
     381    QString fullTitle() const;
     382    QString subTitle() const;
    348383    const NodeList &groupMembers() const { return gr; }
    349384    virtual QString nameForLists() const { return title(); }
     
    360395{
    361396 public:
    362     QmlClassNode(InnerNode *parent,
     397    QmlClassNode(InnerNodeparent,
    363398                 const QString& name,
    364399                 const ClassNode* cn);
    365     virtual ~QmlClassNode() { }
     400    virtual ~QmlClassNode();
     401    virtual bool isQmlNode() const { return true; }
    366402
    367403    const ClassNode* classNode() const { return cnode; }
    368404    virtual QString fileBase() const;
    369 
     405    static void addInheritedBy(const QString& base, Node* sub);
     406    static void subclasses(const QString& base, NodeList& subs);
     407    static void clear();
     408
     409 public:
    370410    static bool qmlOnly;
    371 
    372  private:
    373     const ClassNode* cnode;
     411    static QMultiMap<QString,Node*> inheritedBy;
     412
     413 private:
     414    const ClassNode*    cnode;
     415};
     416
     417class QmlBasicTypeNode : public FakeNode
     418{
     419 public:
     420    QmlBasicTypeNode(InnerNode* parent,
     421                     const QString& name);
     422    virtual ~QmlBasicTypeNode() { }
     423    virtual bool isQmlNode() const { return true; }
    374424};
    375425
     
    381431                     bool attached);
    382432    virtual ~QmlPropGroupNode() { }
     433
    383434
    384435    const QString& element() const { return parent()->name(); }
     
    391442    bool    att;
    392443};
     444
     445
    393446
    394447class QmlPropertyNode : public LeafNode
     
    410463    bool isStored() const { return fromTrool(sto,true); }
    411464    bool isDesignable() const { return fromTrool(des,false); }
    412     bool isWritable() const { return fromTrool(wri,true); }
     465    bool isWritable(
    413466    bool isAttached() const { return att; }
     467
    414468
    415469    const QString& element() const { return static_cast<QmlPropGroupNode*>(parent())->element(); }
     
    453507{
    454508 public:
    455     EnumNode(InnerNode *parent, const QString& name);
     509    EnumNode(InnerNodeparent, const QString& name);
    456510    virtual ~EnumNode() { }
    457511
    458512    void addItem(const EnumItem& item);
    459     void setFlagsType(TypedefNode *typedeff);
     513    void setFlagsType(TypedefNodetypedeff);
    460514    bool hasItem(const QString &name) const { return names.contains(name); }
    461515
    462516    const QList<EnumItem>& items() const { return itms; }
    463517    Access itemAccess(const QString& name) const;
    464     const TypedefNode *flagsType() const { return ft; }
     518    const TypedefNodeflagsType() const { return ft; }
    465519    QString itemValue(const QString &name) const;
    466520
     
    468522    QList<EnumItem> itms;
    469523    QSet<QString> names;
    470     const TypedefNode *ft;
     524    const TypedefNodeft;
    471525};
    472526
     
    474528{
    475529 public:
    476     TypedefNode(InnerNode *parent, const QString& name);
     530    TypedefNode(InnerNodeparent, const QString& name);
    477531    virtual ~TypedefNode() { }
    478532
    479     const EnumNode *associatedEnum() const { return ae; }
    480 
    481  private:
    482     void setAssociatedEnum(const EnumNode *enume);
     533    const EnumNodeassociatedEnum() const { return ae; }
     534
     535 private:
     536    void setAssociatedEnum(const EnumNodeenume);
    483537
    484538    friend class EnumNode;
    485539
    486     const EnumNode *ae;
    487 };
    488 
    489 inline void EnumNode::setFlagsType(TypedefNode *typedeff)
     540    const EnumNodeae;
     541};
     542
     543inline void EnumNode::setFlagsType(TypedefNodetypedeff)
    490544{
    491545    ft = typedeff;
     
    539593    enum Virtualness { NonVirtual, ImpureVirtual, PureVirtual };
    540594
    541     FunctionNode(InnerNode *parent, const QString &name);
    542     FunctionNode(Type type, InnerNode *parent, const QString &name, bool attached);
     595    FunctionNode(InnerNodeparent, const QString &name);
     596    FunctionNode(Type type, InnerNodeparent, const QString &name, bool attached);
    543597    virtual ~FunctionNode() { }
    544598
     
    546600    void setParentPath(const QStringList& parentPath) { pp = parentPath; }
    547601    void setMetaness(Metaness metaness) { met = metaness; }
    548     void setVirtualness(Virtualness virtualness) { vir = virtualness; }
     602    void setVirtualness(Virtualness virtualness)
    549603    void setConst(bool conste) { con = conste; }
    550604    void setStatic(bool statique) { sta = statique; }
     
    553607    void addParameter(const Parameter& parameter);
    554608    inline void setParameters(const QList<Parameter>& parameters);
    555     void borrowParameterNames(const FunctionNode *source);
    556     void setReimplementedFrom(FunctionNode *from);
     609    void borrowParameterNames(const FunctionNodesource);
     610    void setReimplementedFrom(FunctionNodefrom);
    557611
    558612    const QString& returnType() const { return rt; }
     
    571625    const QList<Parameter>& parameters() const { return params; }
    572626    QStringList parameterNames() const;
    573     const FunctionNode *reimplementedFrom() const { return rf; }
    574     const QList<FunctionNode *> &reimplementedBy() const { return rb; }
    575     const PropertyNode *associatedProperty() const { return ap; }
     627    QString rawParameters(bool names = false, bool values = false) const;
     628    const FunctionNode* reimplementedFrom() const { return rf; }
     629    const QList<FunctionNode*> &reimplementedBy() const { return rb; }
     630    const PropertyNode* associatedProperty() const { return ap; }
    576631    const QStringList& parentPath() const { return pp; }
    577632
     
    580635    const QString& element() const { return parent()->name(); }
    581636    bool isAttached() const { return att; }
     637
     638
     639
    582640
    583641    void debug() const;
    584642
    585643 private:
    586     void setAssociatedProperty(PropertyNode *property);
     644    void setAssociatedProperty(PropertyNodeproperty);
    587645
    588646    friend class InnerNode;
     
    604662    bool att: 1;
    605663    QList<Parameter> params;
    606     const FunctionNode *rf;
    607     const PropertyNode *ap;
    608     QList<FunctionNode *> rb;
     664    const FunctionNoderf;
     665    const PropertyNodeap;
     666    QList<FunctionNode*> rb;
    609667};
    610668
     
    615673    enum { NumFunctionRoles = Notifier + 1 };
    616674
    617     PropertyNode(InnerNode *parent, const QString& name);
     675    PropertyNode(InnerNodeparent, const QString& name);
    618676    virtual ~PropertyNode() { }
    619677
    620678    void setDataType(const QString& dataType) { dt = dataType; }
    621     void addFunction(FunctionNode *function, FunctionRole role);
    622     void addSignal(FunctionNode *function, FunctionRole role);
     679    void addFunction(FunctionNodefunction, FunctionRole role);
     680    void addSignal(FunctionNodefunction, FunctionRole role);
    623681    void setStored(bool stored) { sto = toTrool(stored); }
    624682    void setDesignable(bool designable) { des = toTrool(designable); }
     683
    625684    void setWritable(bool writable) { wri = toTrool(writable); }
    626     void setOverriddenFrom(const PropertyNode *baseProperty);
     685    void setUser(bool user) { usr = toTrool(user); }
     686    void setOverriddenFrom(const PropertyNode* baseProperty);
     687    void setRuntimeDesFunc(const QString& rdf) { runtimeDesFunc = rdf; }
     688    void setRuntimeScrFunc(const QString& scrf) { runtimeScrFunc = scrf; }
     689    void setConstant() { cst = true; }
     690    void setFinal() { fnl = true; }
    627691
    628692    const QString &dataType() const { return dt; }
     
    636700    bool isStored() const { return fromTrool(sto, storedDefault()); }
    637701    bool isDesignable() const { return fromTrool(des, designableDefault()); }
     702
     703
     704
    638705    bool isWritable() const { return fromTrool(wri, writableDefault()); }
    639     const PropertyNode *overriddenFrom() const { return overrides; }
     706    bool isUser() const { return fromTrool(usr, userDefault()); }
     707    bool isConstant() const { return cst; }
     708    bool isFinal() const { return fnl; }
     709    const PropertyNode* overriddenFrom() const { return overrides; }
     710
     711    bool storedDefault() const { return true; }
     712    bool userDefault() const { return false; }
     713    bool designableDefault() const { return !setters().isEmpty(); }
     714    bool scriptableDefault() const { return true; }
     715    bool writableDefault() const { return !setters().isEmpty(); }
    640716
    641717 private:
     
    645721    static bool fromTrool(Trool troolean, bool defaultValue);
    646722
    647     bool storedDefault() const { return true; }
    648     bool designableDefault() const { return !setters().isEmpty(); }
    649     bool writableDefault() const { return !setters().isEmpty(); }
    650 
    651723    QString dt;
     724
     725
    652726    NodeList funcs[NumFunctionRoles];
    653727    Trool sto;
    654728    Trool des;
     729
    655730    Trool wri;
    656     const PropertyNode *overrides;
     731    Trool usr;
     732    bool cst;
     733    bool fnl;
     734    const PropertyNode* overrides;
    657735};
    658736
     
    662740}
    663741
    664 inline void PropertyNode::addFunction(FunctionNode *function, FunctionRole role)
     742inline void PropertyNode::addFunction(FunctionNodefunction, FunctionRole role)
    665743{
    666744    funcs[(int)role].append(function);
     
    668746}
    669747
    670 inline void PropertyNode::addSignal(FunctionNode *function, FunctionRole role)
     748inline void PropertyNode::addSignal(FunctionNodefunction, FunctionRole role)
    671749{
    672750    funcs[(int)role].append(function);
     
    684762{
    685763 public:
    686     VariableNode(InnerNode *parent, const QString &name);
     764    VariableNode(InnerNodeparent, const QString &name);
    687765    virtual ~VariableNode() { }
    688766
     
    702780};
    703781
    704 inline VariableNode::VariableNode(InnerNode *parent, const QString &name)
     782inline VariableNode::VariableNode(InnerNodeparent, const QString &name)
    705783    : LeafNode(Variable, parent, name), sta(false)
    706784{
     785
    707786}
    708787
     
    710789{
    711790 public:
    712     TargetNode(InnerNode *parent, const QString& name);
     791    TargetNode(InnerNodeparent, const QString& name);
    713792    virtual ~TargetNode() { }
    714793
Note: See TracChangeset for help on using the changeset viewer.