summaryrefslogtreecommitdiffstats
path: root/src/tools/qdoc/qdocdatabase.cpp
Commit message (Collapse)AuthorAgeFilesLines
* qdoc is moving back to qttoolsOswald Buddenhagen2015-10-221-1744/+0
| | | | | | Change-Id: Icb5abd32a1cbc3e8d876341c877e8d2a963c0e25 Reviewed-by: Frederik Gladhorn <[email protected]> Reviewed-by: Topi Reiniö <[email protected]>
* qdoc: Fix single-character string literals.Friedemann Kleint2015-10-131-4/+4
| | | | | | | Use character literals where applicable. Change-Id: I7011ae6ee55107b4788cc434e0dc3618c4213799 Reviewed-by: Topi Reiniö <[email protected]>
* qdoc: Resolve namespaces declared in index treesTopi Reinio2015-10-021-1/+5
| | | | | | | | | | | | | QDoc never called resolveNamespaces() unless running in single-exec mode. This commit fixes that, and causes public namespaces documented in other modules to be treated as 'seen', i.e, as if they were declared locally. Change-Id: Id1dda7aaea6c9bd38bbeb5992121575a1876cbf7 Task-number: QTBUG-48523 Reviewed-by: Martin Smith <[email protected]>
* qdoc: Correctly resolve non-function links that end in parenthesesTopi Reinio2015-09-071-22/+10
| | | | | | | | | | | | | If QDoc fails to find a function node for a link target that ends in parentheses, it must retry to find another type of node, as page/section titles can sometimes resemble function signatures. This fixes a regression introduced by commit 8c5ce68f. Change-Id: I675fe5b93ecc8a1823c0a5f817fb4b80b4e63320 Task-number: QTBUG-47919 Reviewed-by: Alex Blasche <[email protected]> Reviewed-by: Martin Smith <[email protected]>
* qdoc: Use lowercase names for modules read from index filesTopi Reinio2015-08-261-1/+1
| | | | | | | | | | | | | | | | The module names are used as keys in the map that defines the forest of module trees. A physical module name (lowercase) is used as the primary tree name, but modules read from index were using a name written to the index file (project name, typically CamelCase) as-is. This caused issues for resolving link commands that have a module name in the square bracket parameters. To ensure that such links work, convert module names read from index to lowercase, too. Change-Id: I698e01fd1df888e4a78c06a76ad72b5eb1a70892 Reviewed-by: Martin Smith <[email protected]>
* qdoc: Improve resolving related non-members and their overload numbersTopi Reinio2015-08-191-2/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | 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ö <[email protected]>
* qdoc: Allow formal parameters in link targetsMartin Smith2015-08-161-5/+48
| | | | | | | | | | | | | | 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 <[email protected]>
* qdoc: Do not merge QML module nodes with different major versionsTopi Reinio2015-08-041-0/+14
| | | | | | | | | | | | | | | As we may have multiple versions of a QML module present in the doc build, the logic QDoc uses for merging collection nodes from different trees needs to be revised a bit. After this change, the collection nodes for identically-named QML and JS modules are merged only if the major version number matches. This prevents the situation where QML types for both versions are listed in QML module pages. Change-Id: I76b056a2073744347b160b25ed5bb043279f2b8a Task-number: QTBUG-47536 Reviewed-by: Martin Smith <[email protected]>
* Use const-ref in foreach if T is big or non-trivialSérgio Martins2015-07-041-2/+2
| | | | | | | | Criteria: Linux x86_64, sizeof(T) > 8 Change-Id: I78c2b776ff219fa1ff6632fde17ae25fae66c54e Reviewed-by: Olivier Goffart (Woboq GmbH) <[email protected]> Reviewed-by: Marc Mutz <[email protected]>
* qdoc: Related non-members are now linked correctlyMartin Smith2015-06-101-0/+5
| | | | | | | | | | | | | | | | | 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 <[email protected]> Reviewed-by: Topi Reiniö <[email protected]>
* Merge remote-tracking branch 'origin/5.5' into devSimon Hausmann2015-06-031-2/+2
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: src/corelib/global/qnamespace.qdoc src/corelib/io/qwindowspipereader.cpp src/corelib/io/qwindowspipereader_p.h src/corelib/statemachine/qstatemachine.cpp src/corelib/statemachine/qstatemachine_p.h src/plugins/platforms/xcb/qxcbconnection.h tests/auto/network/access/qnetworkreply/tst_qnetworkreply.cpp tests/auto/tools/qmake/tst_qmake.cpp tests/manual/touch/main.cpp Change-Id: I917d694890e79ee3da7d65134b5b085e23e0dd62
| * Don't assign iterator to const_iteratorSérgio Martins2015-06-021-2/+2
| | | | | | | | | | | | | | | | It should also be possible to use QT_STRICT_ITERATORS in Qt's own code base Change-Id: I0914db480d4d2b06e71e3a2588163efdd3ff6d27 Reviewed-by: Marc Mutz <[email protected]> Reviewed-by: Olivier Goffart (Woboq GmbH) <[email protected]>
* | qdoc: Changing InnerNode to AggregateMartin Smith2015-04-131-22/+22
| | | | | | | | | | | | | | | | An Aggregate node is a tree node that is not a leaf. Change-Id: I4a3964865fb653a217ee75d0b21e563f7f990a1c Task-number: QTBUG-45450 Reviewed-by: Topi Reiniö <[email protected]>
* | qdoc: More data member name changesMartin Smith2015-04-111-2/+2
|/ | | | | | | | | | | 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ö <[email protected]>
* qdoc: Update for classes in namespacesMartin Smith2015-03-271-5/+18
| | | | | | | | | | | | | | | | | | | | The resolving of namespaces across module boundaries was moving all the nodes for elements contained in the namespace into the namespace node for the \namespace command for that namespace. But moving class and namespace nodes is wrong because they are actually in different modules where they should also be output. This update to the fix for the original bug leaves the class and nested namespace nodes where they are but adds them as special "orphan" nodes to the namespace node that has the \namespace command. These orphan nodes are then included in the namespace content list when it is written out. Change-Id: I0eee368ed39f28129b5b43bb4a16963961f53db3 Task-number: QTBUG-44688 Reviewed-by: Martin Smith <[email protected]>
* qdoc: Duplicate QML types in the "All QML Types" list are distinguishedMartin Smith2015-03-251-67/+16
| | | | | | | | | | | | | We have two State types in the All QML Types list. One is in QtQuick and the other is in QtQml, but they are both just listed as "State" with no way to tell which is which. Now they look like this: State: QtQml State: QtQuick Change-Id: I48bb3deda10a61f565d1aed1910360fea4fb7891 Task-number: QTBUG-45141 Reviewed-by: Topi Reiniö <[email protected]>
* qdoc: Teach qdoc to resolve namespacesMartin Smith2015-03-071-14/+57
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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ö <[email protected]>
* qdoc: Correct parsing of the using clauseMartin Smith2015-02-261-0/+1
| | | | | | | | | | | 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 <[email protected]> Reviewed-by: Topi Reiniö <[email protected]>
* qdoc: Support documentation of JavaScriptMartin Smith2015-02-201-72/+75
| | | | | | | | | | | | | | | | | | | | | 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ö <[email protected]>
* Pass params of shareable type by const-ref rather than by valueKonstantin Ritt2015-02-131-1/+1
| | | | | | | | ...where passing them by value was not intentional. Change-Id: Ifd5036d57b41fddeeacfbd3f5890881605b80647 Reviewed-by: Shawn Rutledge <[email protected]> Reviewed-by: Thiago Macieira <[email protected]>
* 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 <[email protected]>
* qdoc: Change uses of module and qmlModuleMartin Smith2015-02-031-5/+5
| | | | | | | | | | | | | | | | | 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 <[email protected]>
* qdoc: Change name of node typeMartin Smith2015-01-221-9/+9
| | | | | | | | | | | | 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ö <[email protected]>
* qdoc: qdoc's 'square bracket' parameters were evaluated too earlyMartin Smith2015-01-121-1/+2
| | | | | | | | | | | | | | qdoc's link command (\l) allows an optional first argument enclosed in square brackets. This argument is used for narrowing and focusing the search for the link target. The argument should not be evaluated until the generate phase, but it was being evaluated in the prepare phase. This was also a problem when running qdoc in the single-exec mode. This update prevents qdoc from evaluating the argument until it is used in the generate phase. Change-Id: I82785e97077053fb5f5c11f0592155675334aaeb Task-number: QTBUG-42880 Reviewed-by: Martin Smith <[email protected]>
* Merge remote-tracking branch 'origin/5.4' into devFrederik Gladhorn2014-10-201-4/+4
|\ | | | | | | Change-Id: If7e51514ed6832750e3ad967e4d322ccf920d2bb
| * qdoc: Fixed recursion of \sincelist command handlingTopi Reinio2014-10-151-4/+4
| | | | | | | | | | | | | | | | | | | | | | | | QDoc uses a recursive method of resolving all the classes, QML types, properties, functions etc. added since a specified Qt version. The code entered the next level of recursion only if its parent had set a \since version, which was not always the case. Task-number: QTBUG-41862 Change-Id: I3803ed9ffa472165754358f3906955430a893de1 Reviewed-by: Martin Smith <[email protected]>
* | qdoc: Generate QA pagesMartin Smith2014-10-171-2/+55
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | qdoc has a new command line option, -write-qa-pages. Using this flag on the command line will tell qdoc to generate a QA html page in each module's output directory. The QA page contains information that is useful for Quality Assurance checking of the module's docs. The QA file name begins with "aaa" so it will always be listed at the top of the output directory. The file name for the QA file for QtCore, for example, is aaa-qtcore-qa-page.html. Currently, the QA page only contains a report listing the intermodule link count for each module that is the target of links from the documented module. The link report can be used to optimize the search order qdoc uses when resolving inter-module links. By default, the search order is the same as the ordering of the modules in the depends list in the .qdocconf file. Using the report, the user can reorder that list according to the number of links found in each module. i.e. in descending order of link count. The modules are listed in descending order of link count. Additionally, an actual depends variable is printed. It can be cut and pasted into the module's qdocconf file. Change-Id: I442596aeb54dcdd5db4a0821096a5273c15627e6 Task-number: QTBUG-41850 Reviewed-by: Topi Reiniö <[email protected]>
* | qdoc: qdoc was too slowMartin Smith2014-10-171-146/+122
|/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The hard-coded search order is now removed. The search order is now constructed from the depends variable in the qdocconf file. The basic idea is that qdoc is run once. It gets a list of all the qdocconf files for the modules in Qt5. First, qdoc runs in -prepare mode for each qdocconf file in the list. It generates the index file for each module, but these index files are never used. At the end of the -prepare phase for each module, qdoc keeps the tree structure for the module in a collection of trees. Second, qdoc runs in -generate mode for each qdocconf file in the list. But now it uses the existing tree for that module, so it doesn't have to read the sources files again, and it doesn't have to read any index files. Now it generates the docs for each module. The runtime for qdoc has been reduced by 90% when running qdoc for all of Qt5 on a not so new iMac. Before this update, qdoc took about 10 minutes to generate docs for Qt5. Now it takes a little over 1 minute. The new way to run qdoc is described in the Qt bug report referenced here. Note that running qdoc this new (old) way also generates fewer qdoc errors than when running qdoc the old way. This indicates that the index files qdoc uses when running the old way are incomplete. Note also that the old way of running qdoc is not affected by this update. The old way is still required for running qdoc in the current qmake/make system. That process must be changed to be able to use the faster qdoc. The details are provided in the Qt bug report. Change-Id: Ibec41d6fbaa9fc8cd070a05d04357bd02c4478f0 Task-number: QTBUG-41705 Reviewed-by: Topi Reiniö <[email protected]>
* 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 <[email protected]>
* qdoc: Enable listing of example files with .html extensionTopi Reinio2014-08-261-1/+5
| | | | | | | | | | | | | If a (non-external) link string ends in '.html', qdoc assumed it is a direct link to a generated html page. However, it could also refer to an example file with .html extension. This commit fixes a corner case where links to an example file page were broken for such files. Task-number: QTBUG-40831 Change-Id: I31acc141970b6768f0a93964723be82611d37a3d Reviewed-by: Jerome Pasion <[email protected]>
* qdoc: Fix a few cases for '[ ... ]' linkingMartin Smith2014-08-221-0/+2
| | | | | | | | | | | | | | | This update fixes a few cases that didn't work correctly. The problem was caused by calling findNodeForTarget() with a pointer to a relative node, but the relative node pointer should always be 0, when the domain tree to be searched is not the same as the tree containing the relative node. This fix sets the relative node pointer to 0 in that case. Change-Id: I2fe4a7a4a3b6392199666c7d49b473a56697e7b5 Task-number: QTBUG-39221 Reviewed-by: Topi Reiniö <[email protected]>
* qdoc: Remove all collision node stuff from qdocMartin Smith2014-08-221-11/+3
| | | | | | | | | | | | 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ö <[email protected]>
* qdoc: Allow choice of linking to QML or CPPMartin Smith2014-08-201-81/+77
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This update enables using QML or CPP as the parameter in square brackets for the \l command. You will use this when, for example, there exist both a C++ class named QWidget and a QML type named QWidget and your \l {QWidget} links to the wrong one. Suppose you write \l {QWidget} expecting it to link to the QML type named QWidget, but it links to the C++ class named QWidget. Then write this instead: \l [QML] {QWidget} Or if you wrote \l {QWidget} expecting it to link to the C++ class, but it links to the QML type, write this instead: \l [CPP] {QWidget} A qdoc warning is printed if qdoc can not recognize the parameter in square brackets. There will be a further update to complete this task for implementing the other type of parameter that can be in the square brackets. Task-number: QTBUG-39221 Change-Id: I5dd85478f968025ecbe337a8aabcc31d8b12a86d Reviewed-by: Topi Reiniö <[email protected]>
* QDoc: Allow QDoc to collect all QML basic types in a map.Jerome Pasion2014-07-151-1/+17
| | | | | | | | | | | -needed if a list of just QML basic types is needed. -adding QML basic types to map of QML types. -generating the list of "qmlbasictypes" also now supported. -part of the fix for QTBUG-32871 Change-Id: Id291982a5684645b2b5e75256be673c1701e60b1 Task-number: QTBUG-32871 Reviewed-by: Martin Smith <[email protected]>
* qdoc: Give documenter more control of linkingMartin Smith2014-06-261-55/+69
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This update enables using the module name as the parameter in square brackets for the \l command. You will use this when your link goes to the wrong page. e.g. Suppose this link command went to a page in QtGui instead of the page where it is meant to go in QtQuick: \l { mytarget } { the text for my link } When a link goes to a page in the wrong module, it means the target exists in more than one module and because qdoc searches the modules in sequence and stops when it finds a match, it might match the wrong target. This would be a collision in the single tree version of qdoc, but now qdoc builds a separate tree for each module. Since you know which module you want your link to go to, put the module name in square brackets as the first parameter, like this: \l [QtQuick] { mytarget } { the text for my link } Now qdoc will only search for mytarget in the tree for the QtQuick module. The \target command can now be used anywhere. It has not been tested in all possible locations, but it works in the places where people have asked why it doesn't work there. There will be a further update to complete this task for implementing the other types of parameters that can be in the square brackets. Task-number: QTBUG-39221 Change-Id: I2db4fdd0319ff272ec1d2fa9dc396f14599d80f9 Reviewed-by: Martin Smith <[email protected]>
* qdoc: Give documenter more control of linkingMartin Smith2014-06-011-23/+32
| | | | | | | | | | | | | | | | | | | | | | | | | | 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ö <[email protected]>
* qdoc: \l{Qt::Window} links to the wrong pageMartin Smith2014-03-311-30/+23
| | | | | | | | | | | | | | | kThis update fixes a bug introduced by the extensive changes for QTBUG-35377. The name Qt represents two namespaces, one in C++ and one in QML. The name "Window" is used in both of them, so the link \l{Qt::Window} would cause a collision in the single tree qdoc. In the multiple tree qdoc, there is no collision, but in this case the link should have gone to the C++ page and it went to the QML page instead. The fix involved correcting the way qdoc searches for link targets. Task-number: QTBUG-37633 Change-Id: Ib9b209eced937a0be0d3299f300ebf22b2776012 Reviewed-by: Martin Smith <[email protected]>
* qdoc: fix inheritance information for some QML typesMartin Smith2014-03-311-21/+36
| | | | | | | | | | | | | | | This update fixes a bug introduced by the extensive changes for QTBUG-35377. For a QML base type loaded from an index file, its QML base type was not being resolved. This resulted in the "All members" page for some QML types to be incomplete because the pointer to the base type was 0 when it should have been set. This change also introduces the concept of "just in time" resolution for base type pointers, which appears to speed up qdoc a little. Task-number: QTBUG-37326 Change-Id: I5f09336ec70ba84029b44b245c56f7f8fe349757 Reviewed-by: Martin Smith <[email protected]>
* qdoc: Teach qdoc to use multiple trees (part 3)Martin Smith2014-03-311-204/+375
| | | | | | | | | | | | | | | | | | 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 <[email protected]>
* qdoc: Teach qdoc to use multiple trees (part 2)Martin Smith2014-03-311-294/+578
| | | | | | | | | | | | | | | | | | | 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 <[email protected]>
* qdoc: Teach qdoc to use multiple treesMartin Smith2014-03-311-6/+5
| | | | | | | | | | | | | | | | | | | | | | | 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ö <[email protected]>
* qdoc: Don't include internal QML typesMartin Smith2013-11-071-2/+2
| | | | | | | | | | | | | QML types marked \internal were appearing in the "All QML Types" list. These links were dead because the pages for these internal types were not being created, which was correct. Now these internal QML types no longer appear in the list. Task-number: QTBUG-34506 Change-Id: I1d005459e84ed9a2afae94b797b9d39aa3e517f3 Reviewed-by: Topi Reiniö <[email protected]> Reviewed-by: Jerome Pasion <[email protected]>
* qdoc: Corrected error in QDocDatabase::findQmlType()Martin Smith2013-11-011-33/+2
| | | | | | | | | | | | | | It was still using the QML module version number as part of the search key. e.g. it tried to find the type node for QtQuick.Controls::Button using QtQuick.Controls2.Button, but now it searches without the 2. Task-number: QTBUG-34173 Change-Id: Ibc8b6d9ef4ceebb20c1be00ec3bc9190c51bcdf3 Reviewed-by: Topi Reiniö <[email protected]> Reviewed-by: Jerome Pasion <[email protected]> Reviewed-by: Nico Vertriest <[email protected]>
* qdoc: Eliminate uses of qmlModuleIdentifier()Martin Smith2013-10-041-10/+11
| | | | | | | | | The QML module identifier is no longer useful. The function to generate it is retained for now. Task-number: QTBUG-32173 Change-Id: Ic811ed432f2059c0370e9e0d86b2e334b5c82a3c Reviewed-by: Martin Smith <[email protected]>
* qdoc: Fixed handling of QML referencesMartin Smith2013-10-011-30/+23
| | | | | | | | | Updated qdoc to handle QML references without using the QML module version. Task-number: QTBUG-32173 Change-Id: Ibfba9bc92458ae04017706e904625e7d32fc0be4 Reviewed-by: Jerome Pasion <[email protected]>
* qdoc: Now reports duplicate page titles better.Martin Smith2013-09-161-1/+1
| | | | | | | | | | | | | | | | | | | Currently, qdoc reports duplicate pages, when it should be reporting duplicate page titles. Sometimes the duplicate titles actually refer to the same page, but often they are different pages with the same title. This update changes the error message to better indicate that two identical page titles were seen. A further complication was that the qdoc warnings for these duplate page title errors were useless when the duplicates were in different Qt5 modules, because the support for file location information in the qdoc index files was inadequate. This update adds better location information to each section in the index file. This makes the index files bigger and will increase qdoc runtimes, hopefully not too much. Task-number: QTBUG-33506 Change-Id: I35db3c5e1551b9ef748d63377e94453da80c1e26 Reviewed-by: Jerome Pasion <[email protected]>
* qdoc: Eliminate duplicate page warnings in some casesMartin Smith2013-09-131-1/+15
| | | | | | | | | Prevent qdoc from reporting duplicate pages for external pages with the same URL and title. Task-number: QTBUG-33462 Change-Id: Idabdb241aaa4fe105f7b3ea78229ff1ae8776ecf Reviewed-by: Jerome Pasion <[email protected]>
* qdoc: Better use of versions of QML modulesMartin Smith2013-09-101-5/+9
| | | | | | | | | | | | | | Now qdoc doesn't use the QML module version number when it isn't necessary. Page names are cleaner without appending the version number to the QML module name. Also reduces the number of duplicate page warnings, but this will be updated further next time. Task-number: QTBUG-33257 Change-Id: Iba587164532bdc819523e0666f7561ac2dbd5e52 Reviewed-by: Jerome Pasion <[email protected]>
* qdoc: Implement better handling of QML property groupsMartin Smith2013-07-111-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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 <[email protected]>
* qdoc: qdoc was confused by namespace and module with same nameMartin Smith2013-06-111-0/+52
| | | | | | | | | | | | | 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 <[email protected]>