summaryrefslogtreecommitdiffstats
path: root/src/tools/qdoc/cppcodeparser.cpp
Commit message (Collapse)AuthorAgeFilesLines
* qdoc is moving back to qttoolsOswald Buddenhagen2015-10-221-2611/+0
| | | | | | Change-Id: Icb5abd32a1cbc3e8d876341c877e8d2a963c0e25 Reviewed-by: Frederik Gladhorn <frederik.gladhorn@theqtcompany.com> Reviewed-by: Topi Reiniö <topi.reinio@digia.com>
* qdoc: Warn if a topic command is not allowed in a \qmlpropertygroupTopi Reinio2015-10-191-0/+4
| | | | | Change-Id: Icff1f3a4e85ce1eb2afe0a4d66f0728dc414c6ec Reviewed-by: Venugopal Shivashankar <venugopal.shivashankar@digia.com>
* qdoc: Fix single-character string literals.Friedemann Kleint2015-10-131-1/+1
| | | | | | | Use character literals where applicable. Change-Id: I7011ae6ee55107b4788cc434e0dc3618c4213799 Reviewed-by: Topi Reiniö <topi.reinio@digia.com>
* qdoc: Check and warn if \relates is used incorrectlyTopi Reinio2015-08-191-1/+4
| | | | | | | | | | | | | There are instances in the documentation where a member function tries to set itself also a related non-member of its parent. This should be treated as invalid behavior, as it likely causes also problems during deletion of the node tree. QDoc now checks for and warns about these instances. Change-Id: I951e0de6be4d48618c60b8a0382e2c70700cc402 Task-number: QTBUG-47751 Reviewed-by: Martin Smith <martin.smith@digia.com>
* qdoc: Improve resolving related non-members and their overload numbersTopi Reinio2015-08-191-2/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | There were several problems related to resolving related non-member (RNM) functions for classes. This commit does the following changes: - Overload numbers for RNMs are now calculated at the time the \relates command is processed, instead of a separate step. - If a \relates refers to an entity outside the module boundary, write the argument passed to it as-is into the index file. - Delay the destruction of QDocIndexFiles singleton, to resolve the RNMs read from the index files prior to generating docs. - Remove the redundant call to normalizeOverloads() for single- exec mode as unnecessary. These changes ensure that all RNMs are listed in the documentation for the node that they belong to. A remaining issue is that if a function relates to a class outside the module boundary, that function documentation will be empty because the doc content is not stored into the index file (for obvious reasons). Single-exec mode does not have this problem. Change-Id: I33f038120728932cd9fd70da28d9090023068bd6 Task-number: QTBUG-47589 Reviewed-by: Topi Reiniö <topi.reinio@digia.com>
* qdoc: Instantiator::objectAt now appear in docsMartin Smith2015-08-161-25/+24
| | | | | | | | | | | There was a bug in bool CppCodeParser::splitQmlMethodArg(), which has now been fixed. The bug occurred when there was a "::" in the return type. Change-Id: Id31ed0d4a03d84e76fb69403441a3491ec884ddc Task-number: QTBUG-47438 Reviewed-by: Topi Reiniö <topi.reinio@digia.com> Reviewed-by: Andrew Knight <andrew.knight@intopalo.com>
* qdoc: Allow formal parameters in link targetsMartin Smith2015-08-161-23/+51
| | | | | | | | | | | | | | This update allows qdoc to handle \l commands for linking to functions, where the formal parameters are included in the link target. For example, \l {QWidget::find(QString name)} will only match a member function of QWidget that has a single parameter of type QString. The parameter name is not used in the search. Change-Id: I8a31c9a7ed632f12a0e6d8a33cbb5cd361098317 Task-number: QTBUG-47286 Reviewed-by: Martin Smith <martin.smith@digia.com>
* qdoc: Make private friend publicMartin Smith2015-07-071-0/+8
| | | | | | | | | | | | | A friend operator was declared as a friend in the private part of the class. qdoc thought this meant the operator should be private and therefore should not be documented. But the friend operator should be documented, despite being declared in the private part of the class. This update changes qdoc so that it always treats a friend as public. Change-Id: I7f8bcf0c0fdffd32f67041f7d1a03eefa2a8b924 Task-number: QTBUG-46983 Reviewed-by: Martin Smith <martin.smith@digia.com>
* qdoc: Parsing of inline friendsMartin Smith2015-07-071-72/+164
| | | | | | | | | | | | | | | Some functions in qstring.h are marked with both friend and inline, and qdoc ignores them when it sees the friend keyword. Then, when qdoc finds the documentation for the functions in the cpp file, it reports an error that it can't associate the documentation with anything it saw in a .h file. This update corrects that problem. It also improves qdoc's parsing of other inline functions in other files. Change-Id: If94e403809af3ee3238eac0f2861b027197d6d3c Task-number: QTBUG-46531 Reviewed-by: Martin Smith <martin.smith@digia.com>
* qdoc: Related non-members are now linked correctlyMartin Smith2015-06-101-14/+6
| | | | | | | | | | | | | | | | | It was harder to fix this tan you might think, but the fix cleans up the overload mechanism a lot, so if no regressions are introduced by the fix, the code will be easier to manage. The related non-members are now added to the class node's list of secondary (overload) functions. This way, they get an overload number just like overloaded member functions. Change-Id: I68d7a314b0bb5ec0fbba15dc1fd40a5b870c659d Task-number: QTBUG-46148 Reviewed-by: Venugopal Shivashankar <venugopal.shivashankar@digia.com> Reviewed-by: Topi Reiniö <topi.reinio@digia.com>
* qdoc: Just reformatting and removing dead codeMartin Smith2015-06-051-23/+6
| | | | | | | Whitespace only. Change-Id: I6e4b55ad55e22da4150530457202f144fcc7f416 Reviewed-by: Martin Smith <martin.smith@digia.com>
* qdoc: Update documentation of \qmlabstractMartin Smith2015-05-121-2/+3
| | | | | | | | | | | | | The \qmlabstract command was missing from the qdoc user manual, and qdoc was still allowing the \abstract command to be used for marking up the abstract of a scientific paper. The \abstract command is now made a synonym of \qmlabstract, and they are both added to the qdoc user manual. Change-Id: I003ac50b8dabbf037f18d9ea3e6d88a12d69bf5f Task-number: QTBUG-46003 Reviewed-by: Venugopal Shivashankar <venugopal.shivashankar@digia.com> Reviewed-by: Martin Smith <martin.smith@digia.com>
* qdoc: Now parses enum values containing commasMartin Smith2015-04-231-2/+10
| | | | | | | | | | | | | | | | | | | qdoc can now parse enum values in the enum declaration where the enum value contains a comma. See, for example, thise values in QSysInfo::MacVersion: MV_IOS_4_3 = Q_MV_IOS(4, 3), MV_IOS_5_0 = Q_MV_IOS(5, 0), MV_IOS_5_1 = Q_MV_IOS(5, 1), MV_IOS_6_0 = Q_MV_IOS(6, 0), MV_IOS_6_1 = Q_MV_IOS(6, 1), MV_IOS_7_0 = Q_MV_IOS(7, 0), MV_IOS_7_1 = Q_MV_IOS(7, 1), MV_IOS_8_0 = Q_MV_IOS(8, 0) Change-Id: Idd7da89330efc0e9fa428a99b0090969ea1d97d9 Task-number: QTBUG-45758 Reviewed-by: Venugopal Shivashankar <venugopal.shivashankar@digia.com>
* Merge remote-tracking branch 'origin/5.5' into devLiang Qi2015-04-221-0/+5
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: src/corelib/statemachine/qstatemachine.cpp src/corelib/statemachine/qstatemachine_p.h src/gui/painting/qdrawhelper.cpp src/plugins/platforms/xcb/qxcbnativeinterface.cpp src/plugins/platforms/xcb/qxcbwindow.cpp src/plugins/platforms/xcb/qxcbwindow.h src/testlib/qtestblacklist.cpp src/tools/qdoc/node.cpp src/tools/qdoc/node.h tests/auto/gui/painting/qcolor/tst_qcolor.cpp Change-Id: I6c78b7b162001712d5774293f501b06b4ff32684
| * qdoc: Properly document "private" signalsMartin Smith2015-04-161-0/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | When a signal declaration is marked with QSignalPrivate, This note is included in its documentation: "Note: This is a private signal. It must not be emitted by the user." For Notifier signals, [see note] is appended to the signature line, and the Note is printed below the list. Change-Id: Ie792894ace56cda47fd9a45af9c732f408ac45f6 Task-number: QTBUG-45535 Reviewed-by: Topi Reiniö <topi.reinio@digia.com>
* | qdoc: Changing InnerNode to AggregateMartin Smith2015-04-131-19/+19
| | | | | | | | | | | | | | | | An Aggregate node is a tree node that is not a leaf. Change-Id: I4a3964865fb653a217ee75d0b21e563f7f990a1c Task-number: QTBUG-45450 Reviewed-by: Topi Reiniö <topi.reinio@digia.com>
* | qdoc: More data member name changesMartin Smith2015-04-111-3/+3
| | | | | | | | | | | | | | | | | | | | | | In preparation for refactoring the Node class hierarchy, the names of a few enum types and the functions that set and get them are changed so that they will not be confused with other uses of the word Type. Change-Id: I0496b46e5d7adffccadcb464aedb2806728e781d Task-number: QTBUG-45450 Reviewed-by: Topi Reiniö <topi.reinio@digia.com>
* | qdoc: Data member name changesMartin Smith2015-04-081-12/+12
|/ | | | | | | | | | | In preparation for refactoring the Node class hierarchy, several data member names and some getter and setter names in the Node hierarchy have been changed to make them more readable. Change-Id: Id76ce21c960e4033673f5cf0684aa70e701957b1 Task-number: QTBUG-45450 Reviewed-by: Topi Reiniö <topi.reinio@digia.com>
* qdoc: Add details to messages about not finding files.Friedemann Kleint2015-03-271-2/+5
| | | | | | | Print example directories and files. Change-Id: I58553f45f87ec2c2036a8c4ddf9ffb54baa75870 Reviewed-by: Martin Smith <martin.smith@digia.com>
* qdoc: Teach qdoc to resolve namespacesMartin Smith2015-03-071-0/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | It turns out this bug was caused by modularization, which created the situation where members of the Qt namespace are in different modules. Most are in QtCore, but a few are in QtGui. qdoc was creating a namespace node for the Qt namespace in the node tree for QtCore, and another namespace node in the node tree for QtGui. This meant that there were two NamespaceNodes for the Qt namespace. Correctly, only one of these nodes contained the text for the \namespace command for the Qt namespace. This was the namespace node that was being used to create the HTML reference page for the Qt namespace. Unfortunately, the Qt namespace node in the tree for QtGui was not being merged into the Qt namespace node in QtCore, so some of the members of the Qt namespace were not being shown on the reference page. This update teches qdoc how to merge namespace nodes to ensure that all the members appear on the reference page for the namespace. There can be a namespace node for the namespace xxx in any number of modules, but they will all be merged into the namespace node for namespace xxx that contains the qdoc comment for \namespace xxx. Change-Id: I0f6a653ea6f920aacd5d8e13f9865488d95f6458 Task-number: QTBUG-44688 Reviewed-by: Topi Reiniö <topi.reinio@digia.com>
* qdoc: Correct parsing of the using clauseMartin Smith2015-02-261-22/+63
| | | | | | | | | | | qdoc could only parse the using clause where the 'using' keyword was followed by 'namespace'. Now it can parse using clauses with or without 'namespace'. Change-Id: Ic4aad025c00b3bda2bc1cbd52d0ba8dbbad653e5 Task-number: QTBUG-44553 Reviewed-by: Alex Blasche <alexander.blasche@theqtcompany.com> Reviewed-by: Topi Reiniö <topi.reinio@digia.com>
* qdoc: Support documentation of JavaScriptMartin Smith2015-02-201-74/+98
| | | | | | | | | | | | | | | | | | | | | This update provides the actual support for documenting JavaScript. It has been tested with JavaScript commands in qdoc comments in .qdoc files but not in .js files. Currently, we have the use case of needing to document JavaScript using qdoc comments in .qdoc files. For each qdoc command for QML, i.e. \qmltype, \qmlproperty, etc, there is now a corresponding JavaScript command, i.e. \jstype, \jsproperty, etc. Some of these might not be needed, but they are all provided. Briefly, document JavaScript in a .qdoc file the same way you would document QML in a .qdoc file, but instead of using the \qmlxxx commands, use \jsxxx commands. Change-Id: Ib68a5f66c16472af87d9f776db162332ca13fbb7 Task-number: QTBUG-43715 Reviewed-by: Topi Reiniö <topi.reinio@digia.com>
* qdoc: Mark Genus of each Node objectMartin Smith2015-02-201-1/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | | The concept of Genus was introduced to allow link commands (\l) to specify what kind of entity should be accepted as the link target. Possible values were CPP, QML, DOC, and DONTCARE. This became necessary when we started seeing more cases where the same name was used for a C++ class and a QML type. The Genus for an entity was returned by a member function of the specific subclass of Node that represents that entity. For example, QmlTypeNode::genus() returns QML, while Class::genus() returns CPP. Now we are seeing an increasing need to document Javascript. Rather than add subclasses of all the QmlXxxNode classes to represent the javascript entities, the Qml Node subclasses will be used. JS is added to the Genus enum to mark Nodes that represent javascript entities. But this requires storing the Genus value in the node, rather than just having a member function in each subclass return it. Now there are two member functions in the Node base class, genus() and setGenus(), and the value is stored in the Node. This doesn't increase the size, because there was a byte available. Change-Id: Ifcee78595f4288792e09bb255d2e8c01ebafac46 Task-number: QTBUG-43715 Reviewed-by: Topi Reiniö <topi.reinio@digia.com>
* Update copyright headersJani Heikkinen2015-02-111-7/+7
| | | | | | | | | | | | | | | | | | Qt copyrights are now in The Qt Company, so we could update the source code headers accordingly. In the same go we should also fix the links to point to qt.io. Outdated header.LGPL removed (use header.LGPL21 instead) Old header.LGPL3 renamed to header.LGPL3-COMM to match actual licensing combination. New header.LGPL-COMM taken in the use file which were using old header.LGPL3 (src/plugins/platforms/android/extract.cpp) Added new header.LGPL3 containing Commercial + LGPLv3 + GPLv2 license combination Change-Id: I6f49b819a8a20cc4f88b794a8f6726d975e8ffbe Reviewed-by: Matti Paaso <matti.paaso@theqtcompany.com>
* qdoc: Change remaining uses of qmlClass to qmlTypeMartin Smith2015-02-031-33/+33
| | | | | | | | | | | | After changing the class name QmlClassNode to QmlTypeNode, there remained several local variables that still used the name qmlClass. These are now changed to qmlType. There were also some uses of qmlType that were QString variables. These have been changed to qmlTypeName. Change-Id: I18fb05d4d8aeb1e36acabc4574c62c55a44f339a Task-number: QTBUG-43715 Reviewed-by: Martin Smith <martin.smith@digia.com>
* qdoc: Change uses of module and qmlModuleMartin Smith2015-02-031-7/+7
| | | | | | | | | | | | | | | | | The uses of moduleName and qmlModuleName are changed to physicalModuleName and logicalModuleName respectively. A few other names are also changed in the same way. These changes are being done both to support documentation of javascript but also to emphasize that moduleName is really the name of the physical library module the entity is part of, and qmlModuleName is really the name of a collection of logical entities that is versionable and that may contain entities located in different physical modules. Change-Id: If49392aabf5950dc7b97c84f8134e9369e76dd1b Task-number: QTBUG-43715 Reviewed-by: Martin Smith <martin.smith@digia.com>
* qdoc: Change name of node typeMartin Smith2015-01-221-5/+5
| | | | | | | | | | | | QmlClassNode is renamed to QmlTypeNode. This is done in preparation for implementing qdoc support for documenting javascript code. Next, QmlTypeNode will be renamed to JsTypeNode, and a new QmlTypeNode will be declared that will inherit JsTypeNode. Change-Id: Ia5d0c367d06c26cb43f887927bbcb096afcb7301 Task-number: QTBUG-43715 Reviewed-by: Topi Reiniö <topi.reinio@digia.com>
* Removing a few unneeded "? true : false"Alessandro Portale2014-10-091-1/+1
| | | | | | | Change-Id: Ib13f0ddd65fe78f5559f343f2fc30756b1d3ef76 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com> Reviewed-by: Orgad Shaneh <orgads@gmail.com> Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
* Update license headers and add new license filesMatti Paaso2014-09-241-19/+11
| | | | | | | | | - Renamed LICENSE.LGPL to LICENSE.LGPLv21 - Added LICENSE.LGPLv3 - Removed LICENSE.GPL Change-Id: Iec3406e3eb3f133be549092015cefe33d259a3f2 Reviewed-by: Iikka Eklund <iikka.eklund@digia.com>
* qdoc: Add new checkForCollision()Martin Smith2014-08-221-0/+18
| | | | | | | | | | | | But don't use it yet. qdoc will check for name collisions within a module, once we decide what collisions to look for and what to do about them. This change puts a rewritten checkForCollision() function back in, but doesn't use it yet. Change-Id: I41f9275c3ca29f228268ccf7cb2d99bbe0ce557c Task-number: QTBUG-40506 Reviewed-by: Topi Reiniö <topi.reinio@digia.com>
* qdoc: Remove all collision node stuff from qdocMartin Smith2014-08-221-46/+0
| | | | | | | | | | | | Now that the qdoc link command has ability to tell qdoc which module contains a link target or whether to link to a QML or CPP entity, collision pages should no longer be necessary. In fact, qdoc hasn't been generating any collisions for some time. This task removes all the collision node code from qdoc. Task-number: QTBUG-40506 Change-Id: I34d1980ca1c0fe4bb5ad27dd4b00e61fa7e6e335 Reviewed-by: Topi Reiniö <topi.reinio@digia.com>
* qdoc: Distinguish between QML property and attached propertyTopi Reinio2014-08-121-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | A recent change in qtdeclarative (60ed6a43) added an attached property 'Window' to Item type, with property names identical to the ones already available in Window. This caused QDoc to report warnings for duplicate documentation for QML properties, because there was no distiction between a QML property and an attached property. This change fixes the issue by: - Allowing identical names for \qmlproperty and \qmlattachedproperty - Using distinct URLs/UUIDs/anchor references for them - Marking attached properties with '[attached]' qualifier in 'All Members' page. This doesn't solve the issue of disambiguating between a similarly named QML property and attached property when linking from an external location. However, these can be solved with the help of the \target command. Task-number: QTBUG-40674 Change-Id: Icc74de237366e9897334689fe354ab83e4af0356 Reviewed-by: Martin Smith <martin.smith@digia.com> Reviewed-by: Jerome Pasion <jerome.pasion@digia.com> Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
* qdoc: Give documenter more control of linkingMartin Smith2014-06-011-10/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | This update is preparation for implementing the actual task described in the bug. To implement it required converting the QML type node and the QML basic type node to be first order tree nodes instead of subtypes of the documentation node. This cleans up a lot of messy logic in some places. It was also necessary to split the getLink() function in the html output generator into two functions, one still called getLink(), which handles the \l command, and one called qetAutoLink() which is called for generating auto links. This should make qdoc run faster. The basic infrastructure was also added for parsing the string in the square brackets for the \l command. There will be a further update to complete this task. Note that some autolinks might not be generated due to this change. I haven't seen any yet, but I believe there will be some. This can be fixed later, if it is a problem. Task-number: QTBUG-39221 Change-Id: I8135229984398408205ba901b9ef95ceac74683c Reviewed-by: Topi Reiniö <topi.reinio@digia.com>
* qdoc: Simplify config code for reading file pathsTopi Reinio2014-05-021-2/+2
| | | | | | | | | | | | | | | | | | | | This change greatly simplifies the code used for reading paths from config files: near-identical functions Config::getCanonicalPathList() and Config::getPathList() are combined into one, and the use of Config::getCleanPathList() is replaced with the above. Effectively, all paths read from the config files are now converted into canonical ones. It also adds support for absolute paths in config files. Task-number: QTBUG-36193 Change-Id: I2dc1ee6a67a400e056404ec1c09c6e81f643aa77 Reviewed-by: Martin Smith <martin.smith@digia.com> Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@digia.com>
* doc: Remove "current child" codeMartin Smith2014-03-311-1/+0
| | | | | | | | | | | | | | | | The current child concept was added to the Name Collision Node to heuristically provide better linking when a link operation reached a collision node. It is doubtful that this improved linking much, but now that qdoc uses multiple trees, it is much less likely that collision nodes will occur. In fact, there are none in in the current Qt5. Therefore, the current child code is hereby removed from qdoc. Task-number: QTBUG-37067 Change-Id: I33aea5d550afb7ceaf941d49112e02c21d44f6dc Reviewed-by: Martin Smith <martin.smith@digia.com>
* qdoc: Teach qdoc to use multiple trees (part 3)Martin Smith2014-03-311-11/+14
| | | | | | | | | | | | | | | | | | With this update, qdoc is now ready for testing with multiple trees. In making this change to using multiple trees, it has become clear that qdoc does not really need trees the way it currently uses them. Each C++ class or namespace, or QML type is naturally a tree tree structure, but above that level, what we currently call a tree in qdoc should really be called a collection of maps. This change has moved qdoc in that direction. It remains to replace the Tree class with a class that encapsulates a set of maps, one for each major node type. That can be implemented later. Task-number: QTBUG-35377 Change-Id: I39068a0cb26c01f14ec0e4621742d727efb913bf Reviewed-by: Martin Smith <martin.smith@digia.com>
* qdoc: Teach qdoc to use multiple trees (part 2)Martin Smith2014-03-311-72/+66
| | | | | | | | | | | | | | | | | | | qdoc now knows how to search the forrest of node trees in an optimal order. But there remain some problems with specific searches that cross module boundaries. These include group membership and C++ and QML module membership, as well ass C++ base class resolution. Part 3 will be concerned with fixing these remaining bugs. With this update, qdoc now takes less time to generate the docs for Qt 5. Testing indicates that qdoc run time has dropped from about 14 minutes to about 7.5 minutes on an iMac. Task-number: QTBUG-35377 Change-Id: I6bded6ef54124b4f6e5914cad4548f0b600209b0 Reviewed-by: Martin Smith <martin.smith@digia.com>
* qdoc: Teach qdoc to use multiple treesMartin Smith2014-03-311-39/+6
| | | | | | | | | | | | | | | | | | | | | | | qdoc now builds a separate Node Tree for each index file it parsed. The main Node Tree now contains only the Nodes of things being documented in the current module. This should make qdoc run a little faster. qdoc now uses these separate trees to make intra-module and inter-module linking more robust by searching the trees in an order that depends on the type of link it is searching for. The tree for the current module is always searched first. Then qdoc searches the trees for either the C++ modules or the QML modules, depending on whether it is looking for a C++ link or a QML link. In preparation for this update, qdoc was also simplified a lot. Many functions became obsolete and were removed. Others were combined. Task-number: QTBUG-35377 Change-Id: Iea4e49869ff6a6ff0f4d53090728770d40d892f3 Reviewed-by: Topi Reiniö <topi.reinio@digia.com>
* qdoc: Fix Q_PROPERTY parsingTopi Reinio2013-12-311-6/+16
| | | | | | | | | | | | | | | | When parsing Q_PROPERTY declarations, qdoc tries to always read an associated value for each matched keyword. This fails for property declarations including a CONSTANT or FINAL, as they have no associated values. This change fixes the above problem and makes the parsing more robust by checking the return value of matchProperty() and skipping to closing parenthesis in case of failure. Task-number: QTBUG-35722 Change-Id: Ia483b8e74aeef19b2e761b21473cd4f765cdca19 Reviewed-by: J-P Nurmi <jpnurmi@digia.com> Reviewed-by: Martin Smith <martin.smith@digia.com>
* Doc: Adding mark-up to boolean default values.Jerome Pasion2013-10-081-1/+1
| | | | | | | | | | | | | | | | | Default values should have mark-up to denote that they are code. This commit changes: -"property is true" to "property is \c true". -"Returns true" to "Returns \c true". -"property is false" to "property is \c false". -"returns true" to "returns \c true". -"returns false" to "returns \c false". src/3rdparty and non-documentation instances were ignored. Task-number: QTBUG-33360 Change-Id: Ie87eaa57af947caa1230602b61c5c46292a4cf4e Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com> Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
* qdoc: Documentation for property groups is backMartin Smith2013-09-181-8/+5
| | | | | | | | | | | | | | This bug was marked fixed and closed, but I'm not sure it was ever completely fixed. The qdoc commands for QML property groups were not being processed, so although the property group and its sub-properties appeared on the page, the documentation text for the property group and its properties was never written to the HTML file. This has been corrected with this update. Task-number: QTBUG-32341 Change-Id: I5b33ab512a53456379c52236496fb7bc74850842 Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
* doc: Ensure page name does not changeMartin Smith2013-07-231-32/+32
| | | | | | | | | | | | This fix ensures that the page name is set only once. Also included are a few internal documentation changes that bring qdoc's internal terminology up to date. Task-number: QTBUG-31578 Change-Id: Ib52a5a9024533d5a695cee0055bf2bc4d9bc2af9 Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
* qdoc: Implement better handling of QML property groupsMartin Smith2013-07-111-135/+200
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | The \qmlpropertygroup command is added, and qdoc is taught to generate better output for it. The format is, e.g.: \qmlpropertygroup QtQuick2::Item::anchors \qmlproperty AnchorLine QtQuick2::Item::anchors.top \qmlproperty AnchorLine QtQuick2::Item::anchors.bottom \qmlproperty AnchorLine QtQuick2::Item::anchors.left \qmlproperty AnchorLine QtQuick2::Item::anchors.right \qmlproperty AnchorLine QtQuick2::Item::anchors.horizontalCenter \qmlproperty AnchorLine QtQuick2::Item::anchors.verticalCenter \qmlproperty AnchorLine QtQuick2::Item::anchors.baseline \qmlproperty Item QtQuick2::Item::anchors.fill \qmlproperty Item QtQuick2::Item::anchors.centerIn \qmlproperty real QtQuick2::Item::anchors.margins \qmlproperty real QtQuick2::Item::anchors.topMargin \qmlproperty real QtQuick2::Item::anchors.bottomMargin \qmlproperty real QtQuick2::Item::anchors.leftMargin \qmlproperty real QtQuick2::Item::anchors.rightMargin \qmlproperty real QtQuick2::Item::anchors.horizontalCenterOffset \qmlproperty real QtQuick2::Item::anchors.verticalCenterOffset \qmlproperty real QtQuick2::Item::anchors.baselineOffset \qmlproperty bool QtQuick2::Item::anchors.alignWhenCentered Task-number: QTBUG-32341 Change-Id: I4b06a3a061b23680e663e8d4e82ac9863ffd4ecb Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
* Merge remote-tracking branch 'origin/stable' into devFrederik Gladhorn2013-06-121-34/+15
|\ | | | | | | | | | | | | Conflicts: src/plugins/platforms/cocoa/qcocoamenubar.mm Change-Id: I4a699fc8a7f30b2af9de8e496c3d5f027b7495bb
| * qdoc: qdoc was confused by namespace and module with same nameMartin Smith2013-06-111-34/+15
| | | | | | | | | | | | | | | | | | | | | | | | | | When qdoc searched for QtConncurrent::blockingFilter(), it found the module node for QtConcurrent instead of the namespace. This was because qdoc wasn't given specific enough instructions on how to perform the search. Now it searches for the namespace first, then the C++ class, then the module. Task-number: QTBUG-31535 Change-Id: I4f8aec503903508789738f2a77c76f47a3e80a93 Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
* | Merge remote-tracking branch 'origin/stable' into devFrederik Gladhorn2013-05-231-1/+17
|\| | | | | | | | | | | | | | | | | | | | | Conflicts: src/corelib/io/qdatastream.cpp src/corelib/io/qdatastream.h src/corelib/json/qjsonwriter.cpp src/plugins/platforms/cocoa/qcocoawindow.mm src/plugins/platforms/xcb/qxcbkeyboard.cpp Change-Id: I46fef1455f5a9f2ce1ec394a3c65881093c51b62
| * qdoc: Documentation for QMetaObject::Connection now appearsMartin Smith2013-05-081-1/+17
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | qdoc's faux C++ parser did not recognize class declarations of the form: class Name1::Name2 { ... }; ...where class Name2 is nested in class Name1. Now it does, but this fix doesn't handle deeper nestings. doc needs a proper C++ parser. Task-number: QTBUG-28664 Change-Id: I5adf88cc1b2ce03f5565250734416bf9592914b5 Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
* | Check 'node' for NULL before derefencing it, not afterMontel Laurent2013-04-021-2/+2
|/ | | | | | Change-Id: Iab4b28997d9d13645375284083e4e603e02cec5c Reviewed-by: David Faure <david.faure@kdab.com> Reviewed-by: Martin Smith <martin.smith@digia.com>
* qdoc: inherited members do not show up for QML componentsMartin Smith2013-02-131-5/+4
| | | | | | | | | | | | | | | | | | | | | | | This was a regression bug owing to a big qdoc cleanup for Qt5. But the way QML inheritance had been handled was not a good design, so it has been changed here. When a .qml file is parsed by qdoc, the base type of the QML component is detected, and its name is stored in qdoc's tree node for the component. After qdoc has parsed all the QML files, it traverses the tree, and for each QML component that has a base type name but no base type node pointer yet, it searches the tree for the base type node and stores the pointer to the node in the node for the components. Then when the output generator generates the doc page for the component, it has access to all the inherited members in the base type. Task-number: QTBUG-29569 Change-Id: Ib4958d05f55fa48a572f8ca51ffd57712f29bbc7 Reviewed-by: J-P Nurmi <jpnurmi@digia.com> Reviewed-by: Topi Reiniö <topi.reinio@digia.com> Reviewed-by: Martin Smith <martin.smith@digia.com>
* qdoc: Missing links to qRegisterMetaType()Martin Smith2013-02-081-31/+57
| | | | | | | | | | | | | | | | | | | | | | | | | | | A serious problem in the design of qdoc is its C++ parser. It is an ad hoc recursive descent parser, which has not kept pace with Qt's use of the more esoteric aspects of C++. Part of the problem is that qdoc does not send files through the preprocessor before processing them. The bottom line is qdoc needs the C++ parser used in Qt Creator. But that is a long-term solution. In the short term, we have to introduce minor hacks like this one to keep qdoc going until the parser can be replaced. The problem in this case is that qdoc doesn't handle the QT_PREPEND_NAMESPACE macro in function declarations. The solution is to let qdoc ignore the macro and just use the macro's parameter, which is what qdoc wants anyway. Task-number: QTBUG-28953 Change-Id: I5b9efcc10fa8fb500a44854ee995c2e50e9e16b5 Reviewed-by: Topi Reiniö <topi.reinio@digia.com> Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>