Commit Graph

22 Commits (173ce3ab93ea1ff40cd68b6fad46f59773a177ca)

Author SHA1 Message Date
Giuseppe D'Angelo 173ce3ab93 Fix Strict Weak Ordering in qdoc's comparator
If both n1 and n2 are "Private", the comment says they're equivalent,
but the function is actually stating that n1 < n2 AND n2 < n1.

Change-Id: I8e30b32c1e5240551ab1808baf6fc476841dfde4
Reviewed-by: Martin Smith <martin.smith@digia.com>
Reviewed-by: Topi Reiniö <topi.reinio@digia.com>
2013-09-13 13:53:53 +02:00
Martin Smith 3260dfc0be qdoc: Better use of versions of QML modules
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 <jerome.pasion@digia.com>
2013-09-10 16:11:15 +02:00
Martin Smith 94dca6d10c qdoc: Fixed the relative link to installdir problem
Instead of using the fake "outputdir" to force qdoc
to generate a relative path to the actual output dir,
it now uses the value of HTML.outputsubdir, or just
"html" if HTML.outputsubdir is not specified.

Task-number: QTBUG-32580
Change-Id: I45c79a788e102213e6d343a7ed108a3d17d94759
Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
2013-08-26 08:53:32 +02:00
Martin Smith bc87acaa1f qdoc: Restore support for output in one directory
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>
2013-08-08 08:58:07 +02:00
Martin Smith 2eb28f51ce qdoc: Implement better handling of QML property groups
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>
2013-07-11 13:36:37 +02:00
Topi Reinio 389b6f5161 qdoc: Handle collision nodes when building index files
Currently qdoc skips collision nodes (and their children)
when reading index files. This means that cross-linking
between modules does not work for nodes that are defined
under a collision page node. Most notably, the QML global
object 'Qt' cannot be linked to from outside Qml module
as it collides with Qt namespace.

This change fixes the issue by skipping collision nodes
and only processing their children when writing index
files. In addition, we need to adjust the function that
searches for nodes to the possibility that there may be
multiple nodes with the same name but different type.

Task-number: QTBUG-31096
Change-Id: Ic71d714f85539d8537021c73d8f1a527006a6f23
Reviewed-by: Martin Smith <martin.smith@digia.com>
2013-05-30 12:49:42 +02:00
Martin Smith e469ee1340 qdoc: Brief attribute was written incorrectly
The brief attribute for a C++ property was being written
after the <property> tag had been closed. This has been
fixed by explicitlty writing the brief attribute for each
XML tag that has a brief text to write.

Task-number: QTBUG-31149
Change-Id: Ic3857b8fa50cfb84536b838771751d8b92ed590e
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Topi Reiniö <topi.reinio@digia.com>
Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
2013-05-20 15:20:26 +02:00
Martin Smith 843b7f1a17 qdoc: Briefs from other modules now show up
The brief text for a documented thing is now output as an
attribute of that thing in the module's index file, and it
is reconstituted in the thing's tree node, when qdoc reads
the module's index file later. Only the verbatim text of
the brief is saved in the index file, i.e. no links or
other markup.

The effect is that brief texts can be used in other modules.

Task-number: QTBUG-31021
Change-Id: I932a0c85259b6d1901138f0c0959ddb9815b7db5
Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
2013-05-08 12:01:29 +02:00
Martin Smith c77f7229d5 qdoc: Add index of obsolete members to obsolete page
qdoc has been modified to emit a compact list of the
classes that have one or more obsolete members. The
command is:

\generatelist obsoletecppmembers

This generates an index of all such classes,
where each class name is a link to the class's
subpage of obsolete members. A class's subpage
of obsolete members is also accessible from the
class's reference page, but now it is also
accessible from this index.

Also, The command shown has been added to the
page obsoleteclasses.html in the generated
output. This page already contains the index
of obsolete classes.

Currently, no such output is generated for
QML types and QML types with obsolete members.
But qdoc does accept commands for those:

\generatelist obsoleteqmltypes

and

\generatelist obsoleteqmlmembers

...but qdoc doesn't know what to do with
those commands yet.

Task-number: QTBUG-30270
Change-Id: If19a3b977f64c948e4bd6f14a9e0a287419baa8a
Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
2013-04-17 12:29:55 +02:00
Montel Laurent ef502d4fb9 Initialize gen_ variable
Change-Id: I87e0b2e11670ea71da8e4d2f718dc97dd32dd57d
Reviewed-by: Martin Smith <martin.smith@digia.com>
Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
2013-03-22 12:11:43 +01:00
Martin Smith bfce04fe5b doc: QML Inheritance is not resolved correctly.
qdoc did not resolve QML Inheritance correctly and the result was that
QML inheritance was not shown correctly in the documentation. Part of
the problem was that information was missing for QML types in the .index
files produced by qdoc. qdoc also did not show inheritance properly
when one of its base types was marked internal. These problems have
now been fixed.

This update also fixes the problem that caused qdoc to slow down to a
snail's pace over time. The group members list for certain group pages
was getting longer and longer, because qdoc added the same member to
the member list an additional time every time qdoc was run in -prepare
mode if you didn't clear the index files first. Now, qdoc only adds a
member to the member list if it isn't already in the member list.

Task-number: QTBUG-29778
Change-Id: Ie4f0458a2ea4ceb1a64cdcd7f60f16b124a20790
Reviewed-by: Topi Reiniö <topi.reinio@digia.com>
Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
2013-02-22 18:34:35 +01:00
Martin Smith 2cb22c6cc0 qdoc: QML Inheritance is not resolved correctly.
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>
2013-02-20 17:22:26 +01:00
Sergio Ahumada 48e0c4df23 Update copyright year in Digia's license headers
Change-Id: Ic804938fc352291d011800d21e549c10acac66fb
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
2013-01-18 09:07:35 +01:00
Martin Smith c72cbfc37f qdoc: Fix problem of missing inherited members
This was another bug resulting from modularization.
qdoc is now run twice for each module in Qt 5.
First, qdoc is run with the -prepare flag for each
module. The only thing qdoc generates is the .index
file for each module. Then qdoc is run with the
-generate flag for each module. Here, for each
module, qdoc first reads the .index files for the
modules on which the current module depends. Then
qdoc generates the docs for the module.

qdoc was not reading the index files for the
prerequisite modules, when it was run in the
-prepare phase. This has now been corrected.
qdoc now reads the prerequisite .index files
in both the -prepare phase and the -generate
phase.

Note that this requires that the order qdoc
runs in the -prepare phase must be the same
as the order of building modules when building
Qt 5.

This change also tells qdoc to ignore nodes,
when traversing its main data structure to
output docs, if the nodes came from reading
a .index file, because the docs for these
nodes are generated in the -generate phase
for their respective modules.

Task-number: QTBUG-28508
Change-Id: Id73652ae1c4022e4c9e4f199caab12a854e5f9b4
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
2013-01-11 12:02:21 +01:00
Martin Smith f03f8431ef qdoc: Make links to \target work intermodule
\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>
2012-12-12 10:55:28 +01:00
Martin Smith 793ed1bf88 qdoc: Listing QML group members across modules
This is a second update, which fixes the
"All QML APIs by Module" page, I think.
I expect there will be more insifious places
where this problem will pop up. qdoc must be
dragged, kicking and screaming into the
modular age.

Task-number: QTBUG-28036
Change-Id: I8dd4733a2b0aac9bab3cb2066b6dbf139a8e98a6
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
2012-11-28 16:21:57 +01:00
Martin Smith 3e33d29a86 qdoc: Listing group members across modules
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>
2012-11-27 15:54:45 +01:00
Martin Smith 2efbf2dbbe qdoc: Added module attribute to most index elements
The index file generated by qdoc when it is run in
-prepare mode has been modified so that most elements
have a module attribute. The value of the module
attribute either came from an \inmodule command, or
it is the value of the project variable specified in
the qdocconf file that was read by qdoc.

Task number: QTBUG-27626

Change-Id: I44198bbbc1738fafc110c6b905eb1d67bc745323
Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
2012-11-06 14:09:59 +01:00
Martin Smith d9d8845d50 qdoc: Fixed the since list for modularized Qt
This required adding a "since" attribute to the index file.

Task number: QTBUG-27695

Change-Id: I97ca96b837ce404ea85ca8086718be4e7a9e21a8
Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
2012-11-02 12:41:43 +01:00
Martin Smith aca24f1146 qdoc: Adding the -log-progress option
qdoc now sends progress log messages to stderr
only if -log-progress appears on the command line.
The progress messages are not printed to stderr
if -log-progress is not used. i.e., -log-progress
is off by default.

Task number: QTBUG-27707

Change-Id: Id605d943506ab38639730bf16473b156d061dc53
Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@digia.com>
Reviewed-by: Martin Smith <martin.smith@digia.com>
2012-10-25 14:19:53 +02:00
Martin Smith 34d2a7e6b6 qdoc: Don't load index in -prepare phase
qdoc was loading index files during the -prepare
phase, which it shouldn't do. The index files it
was loading were from modules other than the one
qdoc was running on. They had not been deleted
because qdoc only clears the output directory of
the module it is running on.

Also added a static function to the Location class
to print information messages on standard error.
This is useful to see what qdoc is doing and when
it is doing it because these log messages are
interleaved in the qdoc error messages. More of
these log messages will be added as needed.

Also removed some unneeded qDebug() stuff in
the code that processes the dependencies from
the qdocconf file.

Task number: QTBUG-27707

Change-Id: I1eec8d6ec89ff040969c2a1f62f21f551f347e05
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
2012-10-25 13:04:31 +02:00
Martin Smith 4b21631f59 qdoc: retrying More refactoring of qdoc data structures
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>
2012-09-26 10:12:04 +02:00