Changeset 561 for trunk/tools/qdoc3/node.h
- Timestamp:
- Feb 11, 2010, 11:19:06 PM (15 years ago)
- Location:
- trunk
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk
-
Property svn:mergeinfo
set to (toggle deleted branches)
/branches/vendor/nokia/qt/4.6.1 merged eligible /branches/vendor/nokia/qt/current merged eligible /branches/vendor/trolltech/qt/current 3-149
-
Property svn:mergeinfo
set to (toggle deleted branches)
-
trunk/tools/qdoc3/node.h
r2 r561 2 2 ** 3 3 ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). 4 ** Contact: Qt Software Information (qt-info@nokia.com) 4 ** All rights reserved. 5 ** Contact: Nokia Corporation (qt-info@nokia.com) 5 6 ** 6 7 ** This file is part of the tools applications of the Qt Toolkit. … … 21 22 ** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. 22 23 ** 23 ** In addition, as a special exception, Nokia gives you certain 24 ** additional rights. These rights are described in the Nokia Qt LGPL 25 ** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this 26 ** package. 24 ** In addition, as a special exception, Nokia gives you certain additional 25 ** rights. These rights are described in the Nokia Qt LGPL Exception 26 ** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. 27 27 ** 28 28 ** GNU General Public License Usage … … 34 34 ** met: http://www.gnu.org/copyleft/gpl.html. 35 35 ** 36 ** If you are unsure which license is appropriate for your use, please37 ** contact the sales department at qt-sales@nokia.com.36 ** If you have questions regarding the use of this file, please contact 37 ** Nokia at qt-info@nokia.com. 38 38 ** $QT_END_LICENSE$ 39 39 ** … … 73 73 Property, 74 74 Variable, 75 Target 75 #ifdef QDOC_QML 76 Target, 77 QmlProperty, 78 QmlSignal, 79 QmlMethod, 80 LastType 81 #else 82 Target, 83 LastType 84 #endif 85 }; 86 87 enum SubType { 88 NoSubType, 89 Example, 90 HeaderFile, 91 File, 92 Image, 93 Group, 94 Module, 95 Page, 96 #ifdef QDOC_QML 97 ExternalPage, 98 QmlClass, 99 QmlPropertyGroup 100 #else 101 ExternalPage 102 #endif 76 103 }; 77 104 … … 100 127 PreviousLink, 101 128 ContentsLink, 102 IndexLink /*, 129 IndexLink, 130 InheritsLink /*, 103 131 GlossaryLink, 104 132 CopyrightLink, … … 124 152 125 153 virtual bool isInnerNode() const = 0; 154 virtual bool isReimp() const { return false; } 155 virtual bool isFunction() const { return false; } 126 156 Type type() const { return typ; } 157 virtual SubType subType() const { return NoSubType; } 127 158 InnerNode *parent() const { return par; } 128 159 InnerNode *relates() const { return rel; } … … 131 162 QString moduleName() const; 132 163 QString url() const; 164 virtual QString nameForLists() const { return nam; } 133 165 134 166 Access access() const { return acc; } … … 144 176 void clearRelated() { rel = 0; } 145 177 146 QString fileBase() const;178 virtual QString fileBase() const; 147 179 148 180 protected: … … 150 182 151 183 private: 184 152 185 #ifdef Q_WS_WIN 153 186 Type typ; … … 181 214 { 182 215 public: 183 ~InnerNode();216 virtual ~InnerNode(); 184 217 185 218 Node *findNode(const QString& name); … … 203 236 const NodeList & childNodes() const { return children; } 204 237 const NodeList & relatedNodes() const { return related; } 238 int count() const { return children.size(); } 205 239 int overloadNumber(const FunctionNode *func) const; 206 240 int numOverloads(const QString& funcName) const; 207 241 NodeList overloads(const QString &funcName) const; 208 242 const QStringList& includes() const { return inc; } 243 244 QStringList primaryKeys(); 245 QStringList secondaryKeys(); 209 246 210 247 protected: … … 232 269 public: 233 270 LeafNode(); 271 virtual ~LeafNode() { } 234 272 235 273 virtual bool isInnerNode() const; 236 274 237 275 protected: 238 LeafNode(Type type, InnerNode *parent, const QString& name);276 LeafNode(Type type, InnerNode* parent, const QString& name); 239 277 }; 240 278 … … 243 281 public: 244 282 NamespaceNode(InnerNode *parent, const QString& name); 283 virtual ~NamespaceNode() { } 245 284 }; 246 285 … … 266 305 public: 267 306 ClassNode(InnerNode *parent, const QString& name); 307 virtual ~ClassNode() { } 268 308 269 309 void addBaseClass(Access access, … … 280 320 QString serviceName() const { return sname; } 281 321 void setServiceName(const QString& value) { sname = value; } 322 QString qmlElement() const { return qmlelement; } 323 void setQmlElement(const QString& value) { qmlelement = value; } 282 324 283 325 private: … … 286 328 bool hidden; 287 329 QString sname; 330 QString qmlelement; 288 331 }; 289 332 … … 291 334 { 292 335 public: 293 enum SubType {294 Example,295 HeaderFile,296 File,297 Group,298 Module,299 Page,300 ExternalPage,301 QmlClass302 };303 336 304 337 FakeNode(InnerNode *parent, const QString& name, SubType subType); 338 virtual ~FakeNode() { } 305 339 306 340 void setTitle(const QString &title) { tle = title; } … … 313 347 QString subTitle() const; 314 348 const NodeList &groupMembers() const { return gr; } 349 virtual QString nameForLists() const { return title(); } 315 350 316 351 private: … … 321 356 }; 322 357 323 class QmlNode : public FakeNode 324 { 325 public: 326 QmlNode(InnerNode *parent, const QString& name, const ClassNode* cn) 327 : FakeNode(parent, name, QmlClass), cnode(cn) { } 358 #ifdef QDOC_QML 359 class QmlClassNode : public FakeNode 360 { 361 public: 362 QmlClassNode(InnerNode *parent, 363 const QString& name, 364 const ClassNode* cn); 365 virtual ~QmlClassNode() { } 328 366 329 367 const ClassNode* classNode() const { return cnode; } 368 virtual QString fileBase() const; 369 370 static bool qmlOnly; 330 371 331 372 private: 332 373 const ClassNode* cnode; 333 374 }; 375 376 class QmlPropGroupNode : public FakeNode 377 { 378 public: 379 QmlPropGroupNode(QmlClassNode* parent, 380 const QString& name, 381 bool attached); 382 virtual ~QmlPropGroupNode() { } 383 384 const QString& element() const { return parent()->name(); } 385 void setDefault() { isdefault = true; } 386 bool isDefault() const { return isdefault; } 387 bool isAttached() const { return att; } 388 389 private: 390 bool isdefault; 391 bool att; 392 }; 393 394 class QmlPropertyNode : public LeafNode 395 { 396 public: 397 QmlPropertyNode(QmlPropGroupNode* parent, 398 const QString& name, 399 const QString& type, 400 bool attached); 401 virtual ~QmlPropertyNode() { } 402 403 void setDataType(const QString& dataType) { dt = dataType; } 404 void setStored(bool stored) { sto = toTrool(stored); } 405 void setDesignable(bool designable) { des = toTrool(designable); } 406 void setWritable(bool writable) { wri = toTrool(writable); } 407 408 const QString &dataType() const { return dt; } 409 QString qualifiedDataType() const { return dt; } 410 bool isStored() const { return fromTrool(sto,true); } 411 bool isDesignable() const { return fromTrool(des,false); } 412 bool isWritable() const { return fromTrool(wri,true); } 413 bool isAttached() const { return att; } 414 415 const QString& element() const { return static_cast<QmlPropGroupNode*>(parent())->element(); } 416 417 private: 418 enum Trool { Trool_True, Trool_False, Trool_Default }; 419 420 static Trool toTrool(bool boolean); 421 static bool fromTrool(Trool troolean, bool defaultValue); 422 423 QString dt; 424 Trool sto; 425 Trool des; 426 Trool wri; 427 bool att; 428 }; 429 #endif 334 430 335 431 class EnumItem … … 358 454 public: 359 455 EnumNode(InnerNode *parent, const QString& name); 456 virtual ~EnumNode() { } 360 457 361 458 void addItem(const EnumItem& item); … … 378 475 public: 379 476 TypedefNode(InnerNode *parent, const QString& name); 477 virtual ~TypedefNode() { } 380 478 381 479 const EnumNode *associatedEnum() const { return ae; } … … 400 498 public: 401 499 Parameter() {} 402 Parameter(const QString& leftType, const QString& rightType = "", 403 const QString& name = "", const QString& defaultValue = ""); 500 Parameter(const QString& leftType, 501 const QString& rightType = "", 502 const QString& name = "", 503 const QString& defaultValue = ""); 404 504 Parameter(const Parameter& p); 405 505 … … 413 513 const QString& name() const { return nam; } 414 514 const QString& defaultValue() const { return def; } 515 516 QString reconstruct(bool value = false) const; 415 517 416 518 private: … … 438 540 439 541 FunctionNode(InnerNode *parent, const QString &name); 542 FunctionNode(Type type, InnerNode *parent, const QString &name, bool attached); 543 virtual ~FunctionNode() { } 440 544 441 545 void setReturnType(const QString& returnType) { rt = returnType; } 546 void setParentPath(const QStringList& parentPath) { pp = parentPath; } 442 547 void setMetaness(Metaness metaness) { met = metaness; } 443 548 void setVirtualness(Virtualness virtualness) { vir = virtualness; } … … 445 550 void setStatic(bool statique) { sta = statique; } 446 551 void setOverload(bool overlode); 552 void setReimp(bool r); 447 553 void addParameter(const Parameter& parameter); 448 554 inline void setParameters(const QList<Parameter>& parameters); … … 459 565 bool isStatic() const { return sta; } 460 566 bool isOverload() const { return ove; } 567 bool isReimp() const { return reimp; } 568 bool isFunction() const { return true; } 461 569 int overloadNumber() const; 462 570 int numOverloads() const; … … 466 574 const QList<FunctionNode *> &reimplementedBy() const { return rb; } 467 575 const PropertyNode *associatedProperty() const { return ap; } 576 const QStringList& parentPath() const { return pp; } 577 578 QStringList reconstructParams(bool values = false) const; 579 QString signature(bool values = false) const; 580 const QString& element() const { return parent()->name(); } 581 bool isAttached() const { return att; } 582 583 void debug() const; 468 584 469 585 private: … … 473 589 friend class PropertyNode; 474 590 475 QString rt; 591 QString rt; 592 QStringList pp; 476 593 #ifdef Q_WS_WIN 477 Metaness met;594 Metaness met; 478 595 Virtualness vir; 479 596 #else … … 484 601 bool sta : 1; 485 602 bool ove : 1; 603 bool reimp: 1; 604 bool att: 1; 486 605 QList<Parameter> params; 487 606 const FunctionNode *rf; … … 493 612 { 494 613 public: 495 enum FunctionRole { Getter, Setter, Resetter };496 enum { NumFunctionRoles = Resetter + 1 };614 enum FunctionRole { Getter, Setter, Resetter, Notifier }; 615 enum { NumFunctionRoles = Notifier + 1 }; 497 616 498 617 PropertyNode(InnerNode *parent, const QString& name); 618 virtual ~PropertyNode() { } 499 619 500 620 void setDataType(const QString& dataType) { dt = dataType; } 501 621 void addFunction(FunctionNode *function, FunctionRole role); 622 void addSignal(FunctionNode *function, FunctionRole role); 502 623 void setStored(bool stored) { sto = toTrool(stored); } 503 624 void setDesignable(bool designable) { des = toTrool(designable); } 625 void setWritable(bool writable) { wri = toTrool(writable); } 504 626 void setOverriddenFrom(const PropertyNode *baseProperty); 505 627 … … 511 633 NodeList setters() const { return functions(Setter); } 512 634 NodeList resetters() const { return functions(Resetter); } 635 NodeList notifiers() const { return functions(Notifier); } 513 636 bool isStored() const { return fromTrool(sto, storedDefault()); } 514 637 bool isDesignable() const { return fromTrool(des, designableDefault()); } 638 bool isWritable() const { return fromTrool(wri, writableDefault()); } 515 639 const PropertyNode *overriddenFrom() const { return overrides; } 516 640 … … 523 647 bool storedDefault() const { return true; } 524 648 bool designableDefault() const { return !setters().isEmpty(); } 649 bool writableDefault() const { return !setters().isEmpty(); } 525 650 526 651 QString dt; … … 528 653 Trool sto; 529 654 Trool des; 655 Trool wri; 530 656 const PropertyNode *overrides; 531 657 }; … … 540 666 funcs[(int)role].append(function); 541 667 function->setAssociatedProperty(this); 668 } 669 670 inline void PropertyNode::addSignal(FunctionNode *function, FunctionRole role) 671 { 672 funcs[(int)role].append(function); 542 673 } 543 674 … … 554 685 public: 555 686 VariableNode(InnerNode *parent, const QString &name); 687 virtual ~VariableNode() { } 556 688 557 689 void setLeftType(const QString &leftType) { lt = leftType; } … … 579 711 public: 580 712 TargetNode(InnerNode *parent, const QString& name); 713 virtual ~TargetNode() { } 581 714 582 715 virtual bool isInnerNode() const;
Note:
See TracChangeset
for help on using the changeset viewer.