summaryrefslogtreecommitdiffstats
path: root/src/tools/qdoc/helpprojectwriter.cpp
Commit message (Collapse)AuthorAgeFilesLines
* qdoc: Give documenter more control of linkingMartin Smith2014-06-011-23/+42
| | | | | | | | | | | | | | | | | | | | | | | | | | 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: Teach qdoc to use multiple trees (part 3)Martin Smith2014-03-311-2/+42
| | | | | | | | | | | | | | | | | | 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-1/+1
| | | | | | | | | | | | | | | | | | | 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-1/+1
| | | | | | | | | | | | | | | | | | | | | | | 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: Never use a collision page as a main QCH landing pagev5.2.1Topi Reinio2014-01-291-1/+2
| | | | | | | | | | When writing the main/landing page for a documentation set to a .qhp file, check that it's not a collision page. If it is, default to 'index.html' instead. Task-number: QTCREATORBUG-11035 Change-Id: I0269834f6e50fcf5ae779c026263e69e4c3cd7b6 Reviewed-by: Martin Smith <martin.smith@digia.com>
* qdoc: Restore support for output in one directoryMartin Smith2013-08-081-16/+18
| | | | | | | | | | | | | | | | | | | | | | The basic functionality is working. Add these lines to qt-html-templates-offline.qdocconf, or add them to the online version: HTML.nosubdirs = "true" HTML.outputsubdir = "html" Before it opens a .html file for writing, it tests whether the file alread exists. If so, it writes an error message, e.g.: ...platform-notes.qdoc:140: error: HTML file already exists; overwriting .../doc/html/platform-notes-windows.html There are currently nearly 100 files being overwritten for Qt5. Task-number: QTBUG-32580 Change-Id: I02b103fd00b9d1e624665ac518d571acc791be9d Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
* qdoc: Ensure obsolete members file is writtenMartin Smith2013-07-311-0/+7
| | | | | | | | | | | In the case where the only obsolete members of a class were actually non-members but just related functions, the help file writer didn't include a reference to the obsolete members file. This update fixes that bug. Task-number: QTBUG-31379 Change-Id: I065da649bc12e3dcc81244939be0162599d54be9 Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
* qdoc: Don't try to output from index nodesMartin Smith2013-07-251-0/+5
| | | | | | | | | | | | When qdoc traverses its internal node tree to generate either the html docs or the help file, it no longer traverses nodes that were added to the tree as the result of reading an index file. Task-number: QTBUG-32622 Change-Id: Iac63ac2ce177b15b85a2aa73850c45891cbbc624 Reviewed-by: Jerome Pasion <jerome.pasion@digia.com> Reviewed-by: Topi Reiniö <topi.reinio@digia.com>
* qdoc: Implement better handling of QML property groupsMartin Smith2013-07-111-10/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
* qdoc: Don't try to add html files for images in .qhpTopi Reinio2013-05-101-0/+1
| | | | | | | | | | | | | | | QDoc adds document nodes as files into the .qhp, including nodes with image subtype. This will generate a lot of unnecessary warnings for missing '<image>.png.html' files from qhelpgenerator when running 'make docs'. This change makes qdoc skip the above step for image nodes to remove the warnings. The images are still always added to .qch in a separate step. Change-Id: Ib07fc8a3ce65f5d4dd700daf00f5f6a36f74a696 Reviewed-by: Martin Smith <martin.smith@digia.com> Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
* Doc: Make QDoc/HelpProjectWriter always add member pages to .qch filesTopi Reinio2013-02-081-68/+72
| | | | | | | | | | | | | | | | | This change refactors the code for inserting compatibility and obsolete member pages into a qhp file, detaching it as a new function and calling it when processing each node. This ensures that members page, compatibility and obsolete pages (html files) are added to .QCH files for all processed nodes that have children or related nodes. Also renames a variable ('node'->'nodeChildren') to prevent shadowing. Task-number: QTBUG-29314 Change-Id: Iccee70ba8768d48b24e68b08651043d0ce4a62a5 Reviewed-by: Martin Smith <martin.smith@digia.com>
* Update copyright year in Digia's license headersSergio Ahumada2013-01-181-1/+1
| | | | | Change-Id: Ic804938fc352291d011800d21e549c10acac66fb Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* Help generator: Add a global config for "extraFiles".Jerome Pasion2012-11-071-0/+1
| | | | | | | | There should be a way to include files across projects regardless of their project configuration. Change-Id: I61797fad594c425a30a54b73539ae670e9545cb9 Reviewed-by: Martin Smith <martin.smith@digia.com>
* Change copyrights from Nokia to DigiaIikka Eklund2012-09-221-24/+24
| | | | | | | | Change copyrights and license headers from Nokia to Digia Change-Id: If1cc974286d29fd01ec6c19dd4719a67f4c3f00e Reviewed-by: Lars Knoll <lars.knoll@digia.com> Reviewed-by: Sergio Ahumada <sergio.ahumada@digia.com>
* make src/tools/ compile without CamelCase headersOswald Buddenhagen2012-09-191-4/+4
| | | | | | | | so the build works with syncqt -minimal Change-Id: Ief5e8eb9a504dd6c84cff76cc3e5257450386a0f Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* qdoc: Refactoring of qdoc data structuresMartin Smith2012-09-141-12/+19
| | | | | | | | | | | | | | | | | | This commit is the beginning of a significant overhaul of qdoc. A new class, QDocDatabase, is added, which will eventually encapsulate all the data structures used by qdoc. In this commit, the Tree class is made private and only accessible from QDocDatabase. Several maps structures are also moved into QDocDatabase from other classes. Much dead code and unused parameters were removed. Further simplification will follow. Change-Id: I237411c50f3ced0d2fc8d3b0fbfdf4e55880f8e9 Reviewed-by: Qt Doc Bot <qt_docbot@qt-project.org> Reviewed-by: Lars Knoll <lars.knoll@nokia.com> Reviewed-by: Jerome Pasion <jerome.pasion@nokia.com>
* QDoc: Write SHA1 of .qhp to file.Casper van Donderen2012-08-311-1/+16
| | | | | | | | | QDoc should generate a SHA1 hash of the .qhp file to be able to use that file as a search index. The idea is that we can use the hash as an identifier to check if the search index was updated. Change-Id: Ifd19571bcebf7d735ef452dca6c046a14fedc0e2 Reviewed-by: Martin Smith <martin.smith@nokia.com>
* doc: Replaced FakeNode with DocNodeMartin Smith2012-08-211-37/+37
| | | | | | | | | | | | | | | | | | The name FakeNode was a bad choice. It was used to represent something that wasn't derived from a C++ declaration in a .h file. Any generic page or QML item or any special kind of qdoc construct was stored in a FakeNode. The name was unfortunate because the constructs stored in FakeNodes were just as real as C++ constructs. So FakeNode has been renamed to DocNode, which just refers to a documentation node. The node type Fake has been replaced with node type Document. Change-Id: Ida9de8288b7b8915bf9273fd890ca84aaf05e182 Reviewed-by: Casper van Donderen <casper.vandonderen@nokia.com>
* QDoc: Introduce a setting to include index nodes in QHP.Casper van Donderen2012-07-251-1/+2
| | | | | Change-Id: I5d35961241300f509b8a9d8e3cf980fabc10cfab Reviewed-by: Martin Smith <martin.smith@nokia.com>
* qdoc: Fixed incorrect href attribute values in qdocMartin Smith2012-07-251-35/+21
| | | | | | | | | | | | There were two fileBase() functions, but only one was correct. The wrong one was being called in some cases. Now there is only one fileBase() function, which is always called. Task nr: QTBUG-26591 Change-Id: I2c40e2152a8c7ad1bb9db256ecf1367148f0e7f6 Reviewed-by: Casper van Donderen <casper.vandonderen@nokia.com>
* Make qdoc compile with QT_STRICT_ITERATORSThiago Macieira2012-05-291-1/+1
| | | | | Change-Id: I2923315678d1aef516b35a8c83fe734367723a28 Reviewed-by: Casper van Donderen <casper.vandonderen@nokia.com>
* qdoc: Fix some QString usage issues (Krazy warnings).Friedemann Kleint2012-05-161-2/+2
| | | | | | | | - Avoid single-character constants. - Use QString() instead of "". Change-Id: If04eff389e7b6d4a18201365b711708fdf545d00 Reviewed-by: Casper van Donderen <casper.vandonderen@nokia.com>
* qdoc: Don't include internal QML properties in outputMartin Smith2012-05-151-1/+4
| | | | | | | | | QML properties marked internal were still appearing in the the HTML output. Also, the title for QML type pages was not correct in the help project writer. Change-Id: Icaad7cefce77a4af70796bc185c99a3035fb17c8 Reviewed-by: Casper van Donderen <casper.vandonderen@nokia.com>
* QDoc: Generate index file for DITAXML.Casper van Donderen2012-04-191-15/+15
| | | | | | | | | | | This change moves the fullDocumentLocation function to the generator base-class and adds generateIndex to the DITAXML Generator. All function calls to fullDocumentLocation are now handled by the static function in the base-class which will use the file extension from the currently active generator (either DITAXML or HTML). Change-Id: I24ce09c05a63eb5980b1243c58990e7ce9d42036 Reviewed-by: Martin Smith <martin.smith@nokia.com>
* qdoc: Allow documenting a C++ class as a QML type.Martin Smith2012-04-021-5/+0
| | | | | | | | | | | | | | | | | | | Now qdoc can handle the case where a C++ class is documented as a QML type of the same name, or as both a C++ class and a QML type of the same name. And collisions pages are created for both the HTML and the DITA XML output. A collision page is created when two items have the same name. The collision pages will be augmented later to include the list of pages where ambiguous links to one of the items listed on the collision page are actually located, so the writer can go back to those links and add the appropriate qualifier. Change-Id: I5a9632b2d2209e0784392047056bed8962005624 Reviewed-by: Martin Smith <martin.smith@nokia.com> Reviewed-by: Casper van Donderen <casper.vandonderen@nokia.com>
* qdoc: Rename qt3 support pages to Compatibility pages.Casper van Donderen2012-03-201-4/+4
| | | | | | | Task-number: QTBUG-24849 Change-Id: I9453e38372f909d75bb4fb8642dc9bd7b993aa7e Reviewed-by: Martin Smith <martin.smith@nokia.com>
* Move qdoc into qtbase and bootstrap itLars Knoll2012-03-081-0/+772
We need qdoc in qtbase to be able to properly modularize our documentation and build it when building the different Qt modules. qdoc does contain a copy of the qml parser from qmldevtools, but this is the lesser evil compared to how we are currently forced to genereate our docs (and the fact that no developer can run qdoc and check the docs for their module). Change-Id: I9f748459382a11cf5d5153d1ee611d7a5d3f4ac1 Reviewed-by: Casper van Donderen <casper.vandonderen@nokia.com> Reviewed-by: Martin Smith <martin.smith@nokia.com>