summaryrefslogtreecommitdiffstats
path: root/src/tools/qdoc/htmlgenerator.cpp
Commit message (Collapse)AuthorAgeFilesLines
* qdoc: List of all members subpage redesignedMartin Smith2013-03-221-2/+32
| | | | | | | | | | | | | | | | | | | | | | | | | | The subpage listing all the members of a QML type, including the inherited members, was trying to use an old format that works ok for C++ classes but is not optimal for QML types. The redesigned format for QML types still lists all the members but it lists the members for each base type in a separate list. The members for a QML type that has been marked as abstract are listed with the members of the type that inherits the abstract type. This fix does not fix QTBUG-30111, which will be fixed in a separate commit. This means that some links on the subpage generated by this change will be links to a page that doesn't actually contain any documentation for the linked member. But it will eventually. Task-number: QTBUG-30114 Change-Id: I8ae4227d1eaecdbc24a4ac9b8119f0ced2cdee92 Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
* qdoc: QML Inheritance is not resolved correctly.Martin Smith2013-02-201-1/+4
| | | | | | | | | | This change adds some QML property, signal, and method data to the .index file. It also provides more robust resolving of QML inheritance for qml types. Task-number: QTBUG-29778 Change-Id: Iaefd64227913a19f427b21e904ca5e32c82d7b29 Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
* Doc: Support for meta-content in manifest XML filesTopi Reinio2013-02-151-5/+55
| | | | | | | | | | | | | | | | | | This change makes qdoc support additional attributes and tags written to example/demo manifest files. The goal is to enable highlighting of selected items, as well as having additional content to make searching for specific categories work better in Qt Creator welcome screen. This meta-content is stored in manifest-meta.qdocconf, which is loaded globally for all modules. Tag handling is also changed to use a QSet to eliminate possible duplicate tags. Task-number: QTBUG-29354 Change-Id: I2c4b2dff6229172efbecc2bfc1c269017edc4d56 Reviewed-by: Martin Smith <martin.smith@digia.com> Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
* qdoc: inherited members do not show up for QML componentsMartin Smith2013-02-131-1/+1
| | | | | | | | | | | | | | | | | | | | | | | 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>
* Update copyright year in Digia's license headersSergio Ahumada2013-01-181-1/+1
| | | | | Change-Id: Ic804938fc352291d011800d21e549c10acac66fb Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* qdoc: Make links to \target work intermoduleMartin Smith2012-12-121-0/+4
| | | | | | | | | | | | | | \target sets up a unique target that should be accessible with \l across module boundaries. This was not working across module boundaries. Now it has been fixed, and it is one way of handling the problem described in the referenced bug report. Task-number: QTBUG-28244 Change-Id: I541f409b998f84b2b8dcf66751762cf07f9f108b Reviewed-by: Topi Reiniö <topi.reinio@digia.com> Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
* qdoc: Don't include internal items in annotated listsMartin Smith2012-11-291-1/+9
| | | | | | | | | Now things that are marked internal oe whose parent is marked internal won't appear in annotated lists. Task-number: QTBUG-28274 Change-Id: I14ea96e223640cad45e7e4249a3e1fc0642bd9c3 Reviewed-by: J-P Nurmi <jpnurmi@digia.com>
* Fix filesToOpen in example manifests.Eike Ziller2012-11-271-2/+2
| | | | | | Task-number: QTBUG-27801 Change-Id: Ibfe1f3f2f3ba9d00698d3465fb0950e77a63bd4e Reviewed-by: Martin Smith <martin.smith@digia.com>
* qdoc: Listing group members across modulesMartin Smith2012-11-271-81/+39
| | | | | | | | | | | | | | This is a first attempt at fixing the problem, but it probably is not the entire solution. The problem requires adding attributes to the index files and then reusing them when the index files are read. The same problem will be affecting the module lists themselves, but that is not fixed in this update. Task-number: QTBUG-28036 Change-Id: I8593d5b9446e51a5204b6c71f8c4f2b63f445972 Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
* Change license header from Nokia to DigiaSergio Ahumada2012-11-261-1/+1
| | | | | Change-Id: I2be215284d7670f60f8b5838fce1e6832dde2270 Reviewed-by: Martin Smith <martin.smith@digia.com>
* Allow qdocconf to specify where the examples are located in install.Eike Ziller2012-11-261-4/+6
| | | | | | | | | | | | | | | | | | | | | | | | We have qdoc configurations for the different qtbase libraries and modules now, which specify e.g. "../../../examples/opengl" for the exampledirs. That means that qdoc finds examples like "2dpainting/2dpainting.pro" which is then installed into "[QT_INSTALL_EXAMPLES]/opengl/2dpainting/2dpainting.pro". (At the moment even into "[QT_INSTALL_EXAMPLES]/qtbase/opengl/...", which will be changed to match the structure in source.) In order for Qt Creator to find the examples, qdoc must write the path behind [QT_INSTALL_EXAMPLES] into the example manifest file. This patch introduces "examplesinstallpath" that allows qdoc configs to specify the missing part, e.g. the opengl qdocconf can add examplesinstallpath = opengl to tell qdoc that the examples will be installed into "[QT_INSTALL_EXAMPLES]/opengl/" Task-number: QTBUG-27801 Change-Id: Idf518e16d3ca0f9522b084e92f34725b93e9d11f Reviewed-by: Martin Smith <martin.smith@digia.com>
* qdoc: fix urls in manifests after modularizationhjk2012-11-231-1/+1
| | | | | Change-Id: Ib01062f29139f670894f5496d67ccdfe622b778b Reviewed-by: Martin Smith <martin.smith@digia.com>
* qdoc: Removed setting of codeindent variableMartin Smith2012-11-071-2/+4
| | | | | | | | | | | | | | | | | | | | All the qdocconf files in use for Qt 5.0 set the codeindent variable to 1, which prefixes each line of a snippet with one ' '. But this messes up the cutting and pasting of snippets into editors for actual use. qdoc now lets the codeindent variable be initialized to 0, and then it never changes it. This looks ok in the default formatted html output. If the html output formatted with the template CSS files also looks ok, then the codeindent variable can be removed from all the qdocconf files, since it will no longer be used by qdoc. Task number: QTBUG-27798 Change-Id: I398c57bdfc99e747ec086fbd8ddf5994cf3ee6d5 Reviewed-by: Mitch Curtis <mitch.curtis@digia.com> Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
* qdoc: qdoc now can run in 2 passesMartin Smith2012-10-121-13/+19
| | | | | | | | | | | | | | | | | | | Two command line options have been added, -prepare and -generate. If you run qdoc with -prepare, qdoc reads and parses the source files but does not generate the documentation. It only creates the .index file for the module you are running qdoc on. If you run qdoc with -generate, qdoc reads and parses the source files as well as the .index files created by running qdoc with -prepare, and it generates the documentation but no .index file. If you run without either option, qdoc runs as before, i.e. it runs both passes as a single pass. Task number: QTBUG-27539 Change-Id: Idbfe3f0f9dff58283596b504f00dff3f70f6e371 Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
* qdoc: Implements the -no-link-errors optionMartin Smith2012-10-101-3/+2
| | | | | | | | | | | | The -no-link-errors flag tells qdoc not to print any link error messages at all. This is useful for finding and fixing all non-link errors in a module. Task number: QTBUG-26870 Change-Id: Id4b0eebb6c0509c57d2f01763b6dedbfb6756a91 Reviewed-by: Jerome Pasion <jerome.pasion@digia.com> Reviewed-by: Martin Smith <martin.smith@digia.com>
* qdoc: Simplification of target ref constructionMartin Smith2012-10-081-26/+12
| | | | | | | | | | | | This change is being done to simplify qdoc, but the motivation was to fix a segfault in qdoc when running the release version of qdoc on linux. The change improves qdoc by simplifying the code whether it fixes the segfault or not. Change-Id: I2c865f7f1e2a44763aa7349d1bd739ad562f4029 Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
* qdoc: Adding a debug functionMartin Smith2012-10-081-0/+3
| | | | | | | | | | | | | qdoc segfaults for one user, when he runs the release version of qdoc but not the debug version. This change adds a -debug option to the qdoc command line options. If set, qdoc will print debug messages at useful milestones so we can see where it is when it goes into the weeds. Change-Id: I0e826e74399eaf50091817c68c775d02c6b615d2 Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
* QDoc: remove the experimental basedir variablePierre Rossi2012-09-281-31/+0
| | | | | | | | | It was introduced in the early days of the docs' modularization and appears not to be used anywhere anymore. Change-Id: I5b0c60d92828624af2129153fce96ad01aec861c Reviewed-by: Martin Smith <martin.smith@digia.com>
* qdoc: retrying More refactoring of qdoc data structuresMartin Smith2012-09-261-8/+9
| | | | | | | | | | | This commit is the second phase of a significant overhaul of qdoc. Two new classes, QDocIndexFiles, and QDocTagFiles, are added to encapsulate the creation and use of the qdoc index files, and the creation of the qdoc tag file. Change-Id: I94651b10628e535ea7b26bd8256037cd819ccea7 Reviewed-by: Martin Smith <martin.smith@digia.com>
* Change copyrights from Nokia to DigiaIikka Eklund2012-09-221-22/+22
| | | | | | | | 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-1/+1
| | | | | | | | 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-409/+201
| | | | | | | | | | | | | | | | | | 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>
* Use QString() instead of "".Frederik Gladhorn2012-09-011-1/+1
| | | | | Change-Id: I42c55344663808b8362e2c9185273a00fc1c70b0 Reviewed-by: Martin Smith <martin.smith@nokia.com>
* doc: Replaced FakeNode with DocNodeMartin Smith2012-08-211-127/+127
| | | | | | | | | | | | | | | | | | 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: Removed "../" from paths to imagesMartin Smith2012-08-061-6/+8
| | | | | | | | | | | qdoc was mistakenly assuming that the output was going into subdirectories. The base dir variable was not being tested. Task nr: QTBUG-26638 Change-Id: I9b331926f8954b58102f75fad3f233eaebb2bb4d Reviewed-by: Jerome Pasion <jerome.pasion@nokia.com>
* qdoc: No longer prints namespace qualifier twiceMartin Smith2012-08-061-4/+2
| | | | | | | | | | | | enum values in the Qt namespace were being printed as. e.g.: Qt::Qt::AlignLeft. This was due to the presence of a collision node that was not handled properly. Task nr: QTBUG-26628 Change-Id: I54adaba72410b2838f0922f181846bb7e76b61d4 Reviewed-by: Jerome Pasion <jerome.pasion@nokia.com>
* QDoc: Set HTML Doctype to XHTML 1.0 Transitional.Casper van Donderen2012-08-021-1/+1
| | | | | | | | Previously QDoc HTML output was marked as XHTML 1.0 Strict, but did not pass validation. As XHTML 1.0 Transitional the W3C validation passes. Change-Id: Iced8c02b2602a82b94ee394e580bfb92023a517b Reviewed-by: Martin Smith <martin.smith@nokia.com>
* QDoc: Set the default output encoding for HTML to UTF-8.Casper van Donderen2012-08-021-1/+1
| | | | | Change-Id: Ic6d8efae967514e143f224aed4c761a4c01eb434 Reviewed-by: Martin Smith <martin.smith@nokia.com>
* QDoc: Add extra tags when no HTML.endheader is specified.Casper van Donderen2012-08-021-1/+4
| | | | | | | | | The default Qt template inserts </head><body> with some arguments in the header of the HTML document. When you don't specify the HTML.endheader qdocconf variable those tags will not be generated and the QTextBrowser-based view in Qt Assistant will not be able to render the documentation. Change-Id: Ieee231f300e1dc71d6b6343771d2682b3de96d73 Reviewed-by: Pierre Rossi <pierre.rossi@nokia.com>
* qdoc: Fixed incorrect href attribute values in qdocMartin Smith2012-07-251-4/+4
| | | | | | | | | | | | 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>
* qdoc: Removed several #if 1 macros.Martin Smith2012-07-061-18/+0
| | | | | | | | The code should be there. Also removed a few obsolete #defines. Change-Id: Id63418b344157a99ac502329eea4f0bc9dc77849 Reviewed-by: Casper van Donderen <casper.vandonderen@nokia.com>
* qdoc: Removed several #if 0 blocks.Martin Smith2012-07-061-51/+0
| | | | | | | Removed a lot of dead code. Change-Id: I237521efab7dd046d3a47ab92a6a0e083c59ab55 Reviewed-by: Casper van Donderen <casper.vandonderen@nokia.com>
* qdoc: The \br macro is promoted to a qdoc commandMartin Smith2012-07-051-0/+3
| | | | | | | | | | | The \br macro, which is used to insert a line break in the output text, is now promoted to be a qdoc command. For html, it outputs a <br/>. For DITA XML it does nothing. Task Nr: QTBUG-26435 Change-Id: Ie0542c9053f68473ccaa2f50ace74baa30f78dd0 Reviewed-by: Casper van Donderen <casper.vandonderen@nokia.com>
* QDoc: Use 'Type' instead of 'element' in instantiates.Casper van Donderen2012-06-211-2/+2
| | | | | | | | | On a C++ documentation page "is instantiated by QML element" was printed when you have a QML Type that instantiates this class. The text is now changed to "is instantiated by QML Type". Change-Id: I6c93531edc6ef9ac112573034fd54fa52390bc37 Reviewed-by: Martin Smith <martin.smith@nokia.com>
* qdoc: Better error messages for QML command errorsMartin Smith2012-06-121-3/+1
| | | | | | | | | | | | Some error messages were not clear for these qdoc commands: \qmlclass, \qmlmodule, \inqmlmodule, and \qmlproperty. They have been made clearer now. Also, qdoc now parses input files in the same order all the time now. The order is alphabetic now. This might not be the optimal order. Change-Id: Id53a5ec8105009c71f4bbd41973a54aed7821099 Reviewed-by: Casper van Donderen <casper.vandonderen@nokia.com>
* QDoc: search for example projectPath for manifest.Casper van Donderen2012-06-051-2/+22
| | | | | | | | | Previously qdoc would automatically use the first .pro/.qmlproject file found, now it explicitly searches for a .pro/.qmlproject file with the name of the example. Change-Id: I2552e529bd3d1b724d3b4286d98d664edbbabcf2 Reviewed-by: Martin Smith <martin.smith@nokia.com>
* Make qdoc compile with QT_STRICT_ITERATORSThiago Macieira2012-05-291-73/+73
| | | | | Change-Id: I2923315678d1aef516b35a8c83fe734367723a28 Reviewed-by: Casper van Donderen <casper.vandonderen@nokia.com>
* qdoc: Fix some QString usage issues (Krazy warnings).Friedemann Kleint2012-05-161-12/+12
| | | | | | | | - Avoid single-character constants. - Use QString() instead of "". Change-Id: If04eff389e7b6d4a18201365b711708fdf545d00 Reviewed-by: Casper van Donderen <casper.vandonderen@nokia.com>
* qdoc: Improve fileToOpen detection for examples manifestAlessandro Portale2012-05-151-1/+1
| | | | | | | | | When looking for a suitable "fileToOpen", do a case insensitive file name comparision. So that it also works in this scenario: AnExample/anexample.qml Change-Id: Ic4cd1d59a7a35e534bfd26cd174a3c2ab5383025 Reviewed-by: Casper van Donderen <casper.vandonderen@nokia.com>
* qdoc: Don't include internal QML properties in outputMartin Smith2012-05-151-2/+0
| | | | | | | | | 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: Removed some obsolete ifdefsMartin Smith2012-05-101-4/+0
| | | | | | | Also removed a few useless comments. Change-Id: I62a52bb826c1299ea9da3f0f3c23f267703c6509 Reviewed-by: Casper van Donderen <casper.vandonderen@nokia.com>
* qdoc: Fixed qdoc error messagesMartin Smith2012-05-091-1/+1
| | | | | | | | | | | qdoc prints many error messages without including the source file path and the line number for where the error occurs. This makes it difficult to find the place to fix the error. This update corrects some of those error messages. Further updates will fix the others. Change-Id: I9c0eed96482c61643a2d83c5135368413e63ae52 Reviewed-by: Casper van Donderen <casper.vandonderen@nokia.com>
* QDoc: Generate unique ids for qmlMethods.Casper van Donderen2012-05-041-1/+4
| | | | | | | Also delete unused function. Change-Id: I8c3590d17c823bc27dcb9d9e73b7b812e078d33b Reviewed-by: Martin Smith <martin.smith@nokia.com>
* QDoc: Disambiguate prev and next links in html source.Casper van Donderen2012-04-261-2/+2
| | | | | Change-Id: Iaa82b9b6de71b577a44eae86eb6847c07d068670 Reviewed-by: Leena Miettinen <riitta-leena.miettinen@nokia.com>
* QDoc: Remove the text around previous and next page links.Casper van Donderen2012-04-201-4/+4
| | | | | | | | | Previously we printed "[Previous: <link>] and [Next: <link>]. After this change we only print the <link>, which should include an icon. Change-Id: I30d0c7d53b70ec2e537774d57a4ac9af01b26b16 Reviewed-by: Martin Smith <martin.smith@nokia.com> Reviewed-by: Leena Miettinen <riitta-leena.miettinen@nokia.com>
* QDoc: Generate index file for DITAXML.Casper van Donderen2012-04-191-169/+5
| | | | | | | | | | | 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: Generate missing image error.Casper van Donderen2012-04-121-0/+1
| | | | | Change-Id: I98faf3b3422fa0a7ebd3f65c7ba64e6dc31bad86 Reviewed-by: Martin Smith <martin.smith@nokia.com>
* qdoc: Fixed to report read-only QML properties correctlyMartin Smith2012-04-111-26/+11
| | | | | | | | | | | | Now the default for a QML property is writable. If qdoc can't detect the actual read-only status, writable is assumed. There were some cases where qdoc could not determine the actual read-only/writable status for a QML property. In these cases, qdoc reported read-only because the default was read-only, which was not optimal. Change-Id: I55aeb2bedcde92a414f4d48a8d995e5e9dbca5da Reviewed-by: Casper van Donderen <casper.vandonderen@nokia.com>
* qdoc: Add the \hr commandMartin Smith2012-04-021-0/+3
| | | | | | | | Now you can out put a horizontal line anywhere in your text. Change-Id: I9b8bbbd6aa312e8386fb1a3b165876d76057f784 Reviewed-by: Casper van Donderen <casper.vandonderen@nokia.com>
* qdoc: Allow documenting a C++ class as a QML type.Martin Smith2012-04-021-118/+116
| | | | | | | | | | | | | | | | | | | 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>