Commit Graph

155 Commits (2e8763ca4484b9dfd7560487a4d2c43653f91021)

Author SHA1 Message Date
Jan-Arve Saether 2e8763ca44 Fix a bug in qdoc where to look for index files.
This was only a problem if the qdocconf file was in the same
directory as the current directory (QDir::relativeFilePath()
returns an empty string in that case), so if the documentation was
generated with the makefile rules, this problem did not reveal itself.

Change-Id: I9c8956fdb46c4f307df7ab297dc94e8d3ef93fb4
Reviewed-by: Martin Smith <martin.smith@nokia.com>
2012-09-07 15:39:31 +02:00
Frederik Gladhorn 5f5e9b0e04 Find qdoc indexes in relative paths.
Change-Id: Ie717e85bfc3d49173d1ae4caf2a01ad6e9b8b625
Reviewed-by: Jan-Arve Sæther <jan-arve.saether@nokia.com>
2012-09-01 11:25:43 +02:00
Frederik Gladhorn 4d78b86731 Use QString() instead of "".
Change-Id: I42c55344663808b8362e2c9185273a00fc1c70b0
Reviewed-by: Martin Smith <martin.smith@nokia.com>
2012-09-01 11:24:57 +02:00
Casper van Donderen 0f409aca96 QDoc: Write SHA1 of .qhp to file.
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>
2012-08-31 21:23:38 +02:00
Casper van Donderen 2e7f06c9bc Doc: Simplify qtbase qdocconfs.
We should be using the global qdocconf for the common variables. This
change also allows you to just specify -installdir without using a
templatedir.

Change-Id: I207d279d9b5199212e896fc5ccab5c212b1896c6
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@nokia.com>
2012-08-31 01:16:56 +02:00
Frederik Gladhorn 3d13156025 Let qdoc respect excludedirs for examples.
Change-Id: I01063b38122aea3615801ff013c8c4a1589327fc
Reviewed-by: Martin Smith <martin.smith@nokia.com>
2012-08-29 14:12:00 +02:00
Martin Smith 5f4d793d81 doc: Replaced FakeNode with DocNode
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>
2012-08-21 16:15:21 +02:00
Sergio Ahumada 64d22311d8 Doc: Fix spelling errors
Change-Id: Ibae8d10183f6b15a16b1499daa2df8802dbb014e
Reviewed-by: Geir Vattekar <geir.vattekar@nokia.com>
2012-08-17 22:45:27 +02:00
Jan-Arve Saether 526da72e99 Fix a bug in qdocs handling of excludedirs
The bug was there because the way qdoc tries to exclude the directories
given in the "excludedirs" variable:
It did a simple string comparision on the candidate path (to include)
with every string in the "excludedirs" variable.

However, this did not work for all cases, since the paths are not
canonicalized.
For instance, the problem I faced was that the following qdocconf
fragment: (config file located in doc/qtwidgets.qdocconf)
sourcedirs  += ..
excludedirs += snippets

Since qdoc would recursively parse all subfolders of sourcedirs, it
would at one point visit the snippets folder, but it would have the
relative path "../doc/snippets", which did not match with "snippets",
causing snippets to not be excluded.

In addition, it seems that qdoc tries hard not to use absolute paths
(maybe because of more human-friendly error messages). I therefore
chose to canonicalize the relative paths.

As a side-effect this also give a better output from qdoc, as
../doc/foo.qdoc:42: Missing link
will become
foo.qdoc:42: Missing link

Change-Id: If9c25fa569abd03542bd12675acd44d8f4e0282c
Reviewed-by: Martin Smith <martin.smith@nokia.com>
2012-08-17 19:31:50 +02:00
Martin Smith e361a3f178 qdoc: Don't always add example .qdoc files to source list
When qdoc finds a .qdoc file in an exampledirs directory,
it only adds it to the source list if it isn't already in
the source list. This may be overkill, but it's safe.

Change-Id: I2c5714c968f06e90f9b29b3a5481f80469e19ced
Reviewed-by: Jerome Pasion <jerome.pasion@nokia.com>
2012-08-07 16:40:07 +02:00
Martin Smith 7a64f2790e qdoc: Removed "../" from paths to images
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>
2012-08-06 16:04:06 +02:00
Martin Smith 35215a0f5f qdoc: No longer prints namespace qualifier twice
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>
2012-08-06 01:31:19 +02:00
Martin Smith e0b3965831 qdoc: Ignore property functions of obsolete properties
Property setter and getter functions are no longer
included in the output when the property itself has
been marked \obsolete.

Task nr: QTBUG-26425

Change-Id: Iac315445d1916467b12be03989bd4513a03a2397
Reviewed-by: Casper van Donderen <casper.vandonderen@nokia.com>
2012-08-02 20:38:54 +02:00
Laszlo Papp f11934af3d Fix a typo in the qdoc manual (QChra -> QChar)
Change-Id: I331765f42f8dd46bf312223754ade3c5d156e6dc
Reviewed-by: Casper van Donderen <casper.vandonderen@nokia.com>
2012-08-02 20:38:54 +02:00
Casper van Donderen 2264e606ac QDoc: Set HTML Doctype to XHTML 1.0 Transitional.
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>
2012-08-02 20:38:54 +02:00
Casper van Donderen 2117580d79 QDoc: Set the default output encoding for HTML to UTF-8.
Change-Id: Ic6d8efae967514e143f224aed4c761a4c01eb434
Reviewed-by: Martin Smith <martin.smith@nokia.com>
2012-08-02 20:38:54 +02:00
Casper van Donderen 17a68ee65b QDoc: Add extra tags when no HTML.endheader is specified.
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>
2012-08-02 20:38:54 +02:00
Martin Smith e178b49522 qdoc: Added support for modularized example doc
qdoc now searches for .qdoc files in the directories
listed in the exampledirs variable. These files are
added to the list of sources to be parsed.

Task nr: QTBUG-26708

Change-Id: I6dfd7cd7b41e0bdf847f88b6d61ac0272902d4e1
Reviewed-by: Casper van Donderen <casper.vandonderen@nokia.com>
2012-08-01 18:12:34 +02:00
Martin Smith d61c356516 qdoc: Removed useless qdoc warnings
qdoc was printing warning messages when a QML type
was not given a minor version number in its
\inqmlmodule command. The minor version number is
not used for anything, so the warning messages are
no longer printed.

Change-Id: I5586b4d860fcc8e392de3d388c3327ed0029e266
Reviewed-by: Casper van Donderen <casper.vandonderen@nokia.com>
2012-08-01 15:37:46 +02:00
Martin Smith d294ac8d68 qdoc: Added safety checks to findUnambiguousTarget()
This is a blind attempt to fix QTBUG-26615. I can't
reproduce the crash on OSX.

Task nr: QTBUG-26615

Change-Id: Ifc6b68b7f302b9cd7d02129be8ae56841a35e5de
Reviewed-by: Martin Smith <martin.smith@nokia.com>
2012-07-30 10:43:50 +02:00
Martin Smith be46199c62 qdoc: Updated qdoc manual and qdoc guide
These documents now include the \qmltype and
\instantiates commands, and the \qmlclass command
is deprecated.

Task nr: QTBUG-26648

Change-Id: I62da273be51609e651e33b9088e1667e4c6c1e76
Reviewed-by: Jerome Pasion <jerome.pasion@nokia.com>
2012-07-27 17:03:27 +02:00
Martin Smith 3658eedc97 qdoc: Changed \qmlclass to \qmltype, added \instantiates
The \qmlclass qdoc command is now deprecated. Use \qmltype instead.
\qmlclass had two arguments, the QML type name and, if the QML type
was elemental, the name of the C++ class that the QML element
instantiates. The \qmltype command has only one argument, the QML type
name.

If the QML type is elemental, then the \qmltype command should be
followed by a \instantiates context command in the same qdoc
comment. e.g.:

\qmltype Item
\instantiates QDeclarativeItem

When the developer does not include the \instantiates command for an
elemental QML type, qdoc will no longer be able to detect that the C++
class name is missing, and qdoc will no longer be able to detect when
the name specified for a \qmlproperty of the elemental QML type has
the wrong name.

Task nr: QTBUG-26648

Change-Id: Ia60872a35113a6f615bfc751ce1e9db6279dfb8e
Reviewed-by: Casper van Donderen <casper.vandonderen@nokia.com>
2012-07-26 14:24:40 +02:00
Casper van Donderen 353069f974 Revert "QDoc: Allow '0' to be used as 2nd arg for \qmlclass."
This reverts commit 50dfd15dcc.
The change is not necessary anymore, since a new solution using
\instantiates in in the works, having two ways to do exactly the same
thing is not necessary.

Change-Id: I6e139d760372fc6177023c470850418b2385fccd
Reviewed-by: Martin Smith <martin.smith@nokia.com>
2012-07-26 14:24:34 +02:00
Casper van Donderen 95191658d0 QDoc: Introduce a setting to include index nodes in QHP.
Change-Id: I5d35961241300f509b8a9d8e3cf980fabc10cfab
Reviewed-by: Martin Smith <martin.smith@nokia.com>
2012-07-25 13:50:58 +02:00
Martin Smith a4cd6ef25d qdoc: Fixed incorrect href attribute values in qdoc
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>
2012-07-25 01:00:41 +02:00
Martin Smith fb7b18c703 qdoc: Restricted qdoc errors for \reimp command
qdoc no longer considers the \reimp command when the
parent C++ class has been marked \internal, because
the reimplimented functions aren't supposed to be in
the documentation at all, when the parent class is
internal.

Change-Id: I3d811ca737934f95e9078ce7b1e957890f6aaf38
Reviewed-by: Casper van Donderen <casper.vandonderen@nokia.com>
2012-07-20 09:13:00 +02:00
Casper van Donderen 91512af3d5 QDoc: Fix make commands for QDoc manual.
Change-Id: I55c3eae43928e87a0aa470127f9877741391deee
Reviewed-by: Martin Smith <martin.smith@nokia.com>
2012-07-19 12:42:26 +02:00
Martin Smith 8ca17ed943 qdoc: Clean path names before using them
The excludedirs variable doesn't work correctly when its values have
'../' in them. The solution is to use QDir::cleanPath() on each path
name before using it.

Task Nr: QTBUG-26492

Change-Id: I2db74e79cf096c1c75ab5b10877320360c016fc7
Reviewed-by: Casper van Donderen <casper.vandonderen@nokia.com>
2012-07-13 01:51:37 +02:00
Sergio Ahumada 59339941e0 Fix some spelling errors
Change-Id: I19d3b2e9a5180b13deb828b55195404ef20be295
Reviewed-by: Daniel Teske <daniel.teske@nokia.com>
Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
2012-07-11 14:52:37 +02:00
Laszlo Papp 0404bd1bcd Use QDoc instead of Qdoc to be consistent with the rest of the documentation
Change-Id: Iec031e207609b87e3c85bec66a7aaebd971973d1
Reviewed-by: Richard J. Moore <rich@kde.org>
2012-07-08 15:33:35 +02:00
Laszlo Papp a385ba17d2 Fix some typos in the qdoc manual
Change-Id: I7d5e4ad684556b6c96fde2dcbdce6c772856cc33
Reviewed-by: Casper van Donderen <casper.vandonderen@nokia.com>
2012-07-06 16:08:02 +02:00
Martin Smith e94893ddf4 qdoc: Removed several #if 1 macros.
The code should be there. Also removed
a few obsolete #defines.

Change-Id: Id63418b344157a99ac502329eea4f0bc9dc77849
Reviewed-by: Casper van Donderen <casper.vandonderen@nokia.com>
2012-07-06 12:28:38 +02:00
Casper van Donderen 33730f3b28 QDoc: Fix relative URL generation for cross-linking.
Previously the URL relative to the installdir was used, now we use a
relative URL to the index file.

Change-Id: Ia2485aa49da8240901d0db1f102eb48da689ef2a
Reviewed-by: Martin Smith <martin.smith@nokia.com>
2012-07-06 03:54:38 +02:00
Martin Smith 2f0dbd0439 qdoc: Removed several #if 0 blocks.
Removed a lot of dead code.

Change-Id: I237521efab7dd046d3a47ab92a6a0e083c59ab55
Reviewed-by: Casper van Donderen <casper.vandonderen@nokia.com>
2012-07-06 03:54:26 +02:00
Martin Smith 0915f189e2 qdoc: The \br macro is promoted to a qdoc command
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>
2012-07-05 11:01:02 +02:00
Casper van Donderen 50dfd15dcc QDoc: Allow '0' to be used as 2nd arg for \qmlclass.
There can be occurences of \qmlclass where there is no C++ class (for a
pure QML Type for example). QDoc will ignore searching for a C++ class
when '0' is specified as second argument to the \qmlclass command.

Change-Id: I09c8c7ad302daffb0723a49967951ca623e646e4
Reviewed-by: Martin Smith <martin.smith@nokia.com>
2012-06-28 14:44:20 +02:00
Martin Smith ba89230596 qdoc: Report multiple topic commands as an error
Some documenters are using two topic commands in a single qdoc
comment. This is only allowed for \qmlproperty so that multiple QML
properties can be documented with a single comment. qdoc now reports
an error for all other combinations of multiple topic commands.

Task Nr: QTBUG-26345

Change-Id: I1f9a6d2502ccffa76c2d41f961be3750014a0a56
Reviewed-by: Casper van Donderen <casper.vandonderen@nokia.com>
2012-06-28 12:35:14 +02:00
Albert Astals Cid 175c69108a Add const & to foreach 'iterators'
Change-Id: I8c0600dfd919f45d14a0011f2da9b9fe0b9a0df3
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
Reviewed-by: Robin Burchell <robin+qt@viroteck.net>
2012-06-27 14:43:00 +02:00
Casper van Donderen f717c19469 QDoc: Use the module page as link in qt.ditamap.
If the number of [QML]module pages in a single qdoc run is 1: Use it as the link for the nested group of documentation pages in the automatically generated ditamap.

Change-Id: Idbc3e2e5d65a1e7f0201638102ffab62475a66ec
Reviewed-by: Casper van Donderen <casper.vandonderen@nokia.com>
2012-06-21 12:50:08 +02:00
Casper van Donderen cb74f7b22c QDoc: Use 'Type' instead of 'element' in instantiates.
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>
2012-06-21 12:50:08 +02:00
Oswald Buddenhagen fb36b22269 don't refer to module versions during bootstrap
once we auto-generate the pris while building their respective modules,
the versions won't be available during bootstrap yet.
however, as these are core modules, their version is locked to the global
$$QT_VERSION anyway, so just use that.

Change-Id: I092f5e7d4dfe99c03e0df71f9409cac9be9f2297
Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
2012-06-19 16:40:06 +02:00
Oswald Buddenhagen 7d8578418d properly declare the host tools as such in the project files
don't mess with the qmake cmdline args any more.

Change-Id: I399d87145d31d25e29951b6acd96387a3c7282f0
Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
2012-06-19 16:37:50 +02:00
Casper van Donderen 5bbe8756fd QDoc: Check if index file was already inserted in list.
Previously it was possible to insert exactly the same index file in the
map twice by specifying an -indexdir which is the same as -installdir.
Probably you can also have two indexes with the same name that happen to
have the same creation time, but changes of that happening are slim to
none.

Change-Id: I6be5fb9d04839026830b9948887b282489b379c0
Reviewed-by: Simon Hausmann <simon.hausmann@nokia.com>
2012-06-14 03:03:38 +02:00
Casper van Donderen 0d45699602 QDoc: Also allow dependant modules to be specified on CLI.
Change-Id: I25dfbadc788616a864ecbf322434a3ce45bb94e5
Reviewed-by: Martin Smith <martin.smith@nokia.com>
2012-06-12 04:29:34 +02:00
Martin Smith 14b0722166 qdoc: Better error messages for QML command errors
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>
2012-06-12 04:29:31 +02:00
Casper van Donderen 7525e85798 QDoc: Only print modulename::type on collision pages.
Change-Id: I090698b106456370f6c0982006243304f87dc70c
Reviewed-by: Martin Smith <martin.smith@nokia.com>
2012-06-08 13:38:56 +02:00
Casper van Donderen 21ebd2e4eb QDoc: Look for template and include() under installdir.
The installdir will now also be used to search for include() qdocconf
variables and the stylesheet.

Change-Id: I388392114fd5a8d57bab0b71699b30e4a6ddd46e
Reviewed-by: Martin Smith <martin.smith@nokia.com>
2012-06-05 16:01:29 +02:00
Casper van Donderen 67fc1b893d QDoc: search for example projectPath for manifest.
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>
2012-06-05 09:25:07 +02:00
Casper van Donderen 0dfbb2f553 QDoc: Use the correct DITAiXML for table col/rowspan.
Change-Id: Id5443b4428a5f0b6b9fee92efcf2fd1ae19c0d19
Reviewed-by: Martin Smith <martin.smith@nokia.com>
2012-06-05 06:14:22 +02:00
Casper van Donderen e0bdcf1fc4 QDoc: check if !isNull() before casting prev/next nodes.
Change-Id: Ifac095ef0af0b483fbf53c6a18cf3c3130d37710
Reviewed-by: Martin Smith <martin.smith@nokia.com>
2012-06-04 10:06:17 +02:00