Commit Graph

83 Commits (2473f4fac31fae8b40be0975fbf41b115333bda8)

Author SHA1 Message Date
Topi Reinio 2473f4fac3 qdoc: Check and warn if \relates is used incorrectly
There are instances in the documentation where a member function
tries to set itself also a related non-member of its parent. This
should be treated as invalid behavior, as it likely causes also
problems during deletion of the node tree.

QDoc now checks for and warns about these instances.

Change-Id: I951e0de6be4d48618c60b8a0382e2c70700cc402
Task-number: QTBUG-47751
Reviewed-by: Martin Smith <martin.smith@digia.com>
2015-08-19 12:06:00 +00:00
Topi Reinio d558100aa7 qdoc: Improve resolving related non-members and their overload numbers
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ö <topi.reinio@digia.com>
2015-08-19 11:30:23 +00:00
Martin Smith 330da82cc2 qdoc: Instantiator::objectAt now appear in docs
There was a bug in bool CppCodeParser::splitQmlMethodArg(),
which has now been fixed. The bug occurred when there was a
"::" in the return type.

Change-Id: Id31ed0d4a03d84e76fb69403441a3491ec884ddc
Task-number: QTBUG-47438
Reviewed-by: Topi Reiniö <topi.reinio@digia.com>
Reviewed-by: Andrew Knight <andrew.knight@intopalo.com>
2015-08-16 14:48:06 +00:00
Martin Smith 8c5ce68fcf qdoc: Allow formal parameters in link targets
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 <martin.smith@digia.com>
2015-08-16 14:47:58 +00:00
Martin Smith 1477345990 qdoc: Make private friend public
A friend operator was declared as a friend in the private part of the
class. qdoc thought this meant the operator should be private and
therefore should not be documented. But the friend operator should be
documented, despite being declared in the private part of the
class. This update changes qdoc so that it always treats a friend as
public.

Change-Id: I7f8bcf0c0fdffd32f67041f7d1a03eefa2a8b924
Task-number: QTBUG-46983
Reviewed-by: Martin Smith <martin.smith@digia.com>
2015-07-07 12:59:09 +00:00
Martin Smith 68dec6461e qdoc: Parsing of inline friends
Some functions in qstring.h are marked with both friend and inline,
and qdoc ignores them when it sees the friend keyword. Then, when qdoc
finds the documentation for the functions in the cpp file, it reports
an error that it can't associate the documentation with anything it
saw in a .h file.

This update corrects that problem. It also improves qdoc's parsing of
other inline functions in other files.

Change-Id: If94e403809af3ee3238eac0f2861b027197d6d3c
Task-number: QTBUG-46531
Reviewed-by: Martin Smith <martin.smith@digia.com>
2015-07-07 12:59:00 +00:00
Martin Smith 9b58fe5c26 qdoc: Related non-members are now linked correctly
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 <venugopal.shivashankar@digia.com>
Reviewed-by: Topi Reiniö <topi.reinio@digia.com>
2015-06-10 12:46:53 +00:00
Martin Smith 8b1746b09d qdoc: Just reformatting and removing dead code
Whitespace only.

Change-Id: I6e4b55ad55e22da4150530457202f144fcc7f416
Reviewed-by: Martin Smith <martin.smith@digia.com>
2015-06-05 09:39:12 +00:00
Martin Smith 5891f90846 qdoc: Update documentation of \qmlabstract
The \qmlabstract command was missing from the qdoc user manual, and
qdoc was still allowing the \abstract command to be used for marking
up the abstract of a scientific paper. The \abstract command is now
made a synonym of \qmlabstract, and they are both added to the qdoc
user manual.

Change-Id: I003ac50b8dabbf037f18d9ea3e6d88a12d69bf5f
Task-number: QTBUG-46003
Reviewed-by: Venugopal Shivashankar <venugopal.shivashankar@digia.com>
Reviewed-by: Martin Smith <martin.smith@digia.com>
2015-05-12 05:57:33 +00:00
Martin Smith 74f28ef1ca qdoc: Now parses enum values containing commas
qdoc can now parse enum values in the enum declaration where the
enum value contains a comma. See, for example, thise values in
QSysInfo::MacVersion:

MV_IOS_4_3 = Q_MV_IOS(4, 3),
MV_IOS_5_0 = Q_MV_IOS(5, 0),
MV_IOS_5_1 = Q_MV_IOS(5, 1),
MV_IOS_6_0 = Q_MV_IOS(6, 0),
MV_IOS_6_1 = Q_MV_IOS(6, 1),
MV_IOS_7_0 = Q_MV_IOS(7, 0),
MV_IOS_7_1 = Q_MV_IOS(7, 1),
MV_IOS_8_0 = Q_MV_IOS(8, 0)

Change-Id: Idd7da89330efc0e9fa428a99b0090969ea1d97d9
Task-number: QTBUG-45758
Reviewed-by: Venugopal Shivashankar <venugopal.shivashankar@digia.com>
2015-04-23 13:58:06 +00:00
Liang Qi aed5a71683 Merge remote-tracking branch 'origin/5.5' into dev
Conflicts:
	src/corelib/statemachine/qstatemachine.cpp
	src/corelib/statemachine/qstatemachine_p.h
	src/gui/painting/qdrawhelper.cpp
	src/plugins/platforms/xcb/qxcbnativeinterface.cpp
	src/plugins/platforms/xcb/qxcbwindow.cpp
	src/plugins/platforms/xcb/qxcbwindow.h
	src/testlib/qtestblacklist.cpp
	src/tools/qdoc/node.cpp
	src/tools/qdoc/node.h
	tests/auto/gui/painting/qcolor/tst_qcolor.cpp

Change-Id: I6c78b7b162001712d5774293f501b06b4ff32684
2015-04-22 09:25:54 +02:00
Martin Smith aea74dcaee qdoc: Properly document "private" signals
When a signal declaration is marked with QSignalPrivate,
This note is included in its documentation: "Note: This
is a private signal. It must not be emitted by the user."

For Notifier signals, [see note] is appended to the signature line,
and the Note is printed below the list.

Change-Id: Ie792894ace56cda47fd9a45af9c732f408ac45f6
Task-number: QTBUG-45535
Reviewed-by: Topi Reiniö <topi.reinio@digia.com>
2015-04-16 09:36:39 +00:00
Martin Smith 1d91d155f2 qdoc: Changing InnerNode to Aggregate
An Aggregate node is a tree node that is not a leaf.

Change-Id: I4a3964865fb653a217ee75d0b21e563f7f990a1c
Task-number: QTBUG-45450
Reviewed-by: Topi Reiniö <topi.reinio@digia.com>
2015-04-13 12:28:00 +00:00
Martin Smith 8a2645b8f0 qdoc: More data member name changes
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ö <topi.reinio@digia.com>
2015-04-11 10:25:14 +00:00
Martin Smith 0b17d23285 qdoc: Data member name changes
In preparation for refactoring the Node class hierarchy,
several data member names and some getter and setter names
in the Node hierarchy have been changed to make them more
readable.

Change-Id: Id76ce21c960e4033673f5cf0684aa70e701957b1
Task-number: QTBUG-45450
Reviewed-by: Topi Reiniö <topi.reinio@digia.com>
2015-04-08 11:23:49 +00:00
Friedemann Kleint 58da6f96a8 qdoc: Add details to messages about not finding files.
Print example directories and files.

Change-Id: I58553f45f87ec2c2036a8c4ddf9ffb54baa75870
Reviewed-by: Martin Smith <martin.smith@digia.com>
2015-03-27 13:39:42 +00:00
Martin Smith 100ffb60ef qdoc: Teach qdoc to resolve namespaces
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ö <topi.reinio@digia.com>
2015-03-07 09:47:23 +00:00
Martin Smith 99120ca3cf qdoc: Correct parsing of the using clause
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 <alexander.blasche@theqtcompany.com>
Reviewed-by: Topi Reiniö <topi.reinio@digia.com>
2015-02-26 13:24:13 +00:00
Martin Smith 62a2f46d29 qdoc: Support documentation of JavaScript
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ö <topi.reinio@digia.com>
2015-02-20 11:37:18 +00:00
Martin Smith fe7c2662b5 qdoc: Mark Genus of each Node object
The concept of Genus was introduced to allow link commands
(\l) to specify what kind of entity should be accepted as the
link target. Possible values were CPP, QML, DOC, and DONTCARE.
This became necessary when we started seeing more cases where
the same name was used for a C++ class and a QML type. The
Genus for an entity was returned by a member function of the
specific subclass of Node that represents that entity. For
example, QmlTypeNode::genus() returns QML, while Class::genus()
returns CPP.

Now we are seeing an increasing need to document Javascript.
Rather than add subclasses of all the QmlXxxNode classes to
represent the javascript entities, the Qml Node subclasses
will be used. JS is added to the Genus enum to mark Nodes
that represent javascript entities. But this requires storing
the Genus value in the node, rather than just having a member
function in each subclass return it. Now there are two member
functions in the Node base class, genus() and setGenus(), and
the value is stored in the Node. This doesn't increase the
size, because there was a byte available.

Change-Id: Ifcee78595f4288792e09bb255d2e8c01ebafac46
Task-number: QTBUG-43715
Reviewed-by: Topi Reiniö <topi.reinio@digia.com>
2015-02-20 11:37:07 +00:00
Jani Heikkinen 83a5694dc2 Update copyright headers
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 <matti.paaso@theqtcompany.com>
2015-02-11 06:49:51 +00:00
Martin Smith 699efbe862 qdoc: Change remaining uses of qmlClass to qmlType
After changing the class name QmlClassNode to QmlTypeNode,
there remained several local variables that still used the
name qmlClass. These are now changed to qmlType. There were
also some uses of qmlType that were QString variables. These
have been changed to qmlTypeName.

Change-Id: I18fb05d4d8aeb1e36acabc4574c62c55a44f339a
Task-number: QTBUG-43715
Reviewed-by: Martin Smith <martin.smith@digia.com>
2015-02-03 11:52:13 +00:00
Martin Smith 7708c4b854 qdoc: Change uses of module and qmlModule
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 <martin.smith@digia.com>
2015-02-03 11:52:06 +00:00
Martin Smith fdbf3bec30 qdoc: Change name of node type
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ö <topi.reinio@digia.com>
2015-01-22 07:45:49 +01:00
Alessandro Portale 106487387d Removing a few unneeded "? true : false"
Change-Id: Ib13f0ddd65fe78f5559f343f2fc30756b1d3ef76
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Reviewed-by: Orgad Shaneh <orgads@gmail.com>
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
2014-10-09 09:43:26 +02:00
Matti Paaso 974c210835 Update license headers and add new license files
- Renamed LICENSE.LGPL to LICENSE.LGPLv21
- Added LICENSE.LGPLv3
- Removed LICENSE.GPL

Change-Id: Iec3406e3eb3f133be549092015cefe33d259a3f2
Reviewed-by: Iikka Eklund <iikka.eklund@digia.com>
2014-09-24 12:26:19 +02:00
Martin Smith af7f944dc5 qdoc: Add new checkForCollision()
But don't use it yet. qdoc will check for name
collisions within a module, once we decide what
collisions to look for and what to do about them.
This change puts a rewritten checkForCollision()
function back in, but doesn't use it yet.

Change-Id: I41f9275c3ca29f228268ccf7cb2d99bbe0ce557c
Task-number: QTBUG-40506
Reviewed-by: Topi Reiniö <topi.reinio@digia.com>
2014-08-22 18:23:50 +02:00
Martin Smith a5570bbf9a qdoc: Remove all collision node stuff from qdoc
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ö <topi.reinio@digia.com>
2014-08-22 18:23:39 +02:00
Topi Reinio 338f9c4f7c qdoc: Distinguish between QML property and attached property
A recent change in qtdeclarative (60ed6a43) added an attached
property 'Window' to Item type, with property names identical
to the ones already available in Window. This caused QDoc to
report warnings for duplicate documentation for QML properties,
because there was no distiction between a QML property and an
attached property.

This change fixes the issue by:
    - Allowing identical names for \qmlproperty and
      \qmlattachedproperty
    - Using distinct URLs/UUIDs/anchor references for them
    - Marking attached properties with '[attached]' qualifier
      in 'All Members' page.

This doesn't solve the issue of disambiguating between a
similarly named QML property and attached property when
linking from an external location. However, these can be
solved with the help of the \target command.

Task-number: QTBUG-40674
Change-Id: Icc74de237366e9897334689fe354ab83e4af0356
Reviewed-by: Martin Smith <martin.smith@digia.com>
Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
2014-08-12 07:27:45 +02:00
Martin Smith 46959875cf qdoc: Give documenter more control of linking
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>
2014-06-01 13:40:53 +02:00
Topi Reinio 9e44204bf8 qdoc: Simplify config code for reading file paths
This change greatly simplifies the code used for
reading paths from config files: near-identical
functions Config::getCanonicalPathList() and
Config::getPathList() are combined into one, and
the use of Config::getCleanPathList() is
replaced with the above.

Effectively, all paths read from the config files
are now converted into canonical ones.

It also adds support for absolute paths in config
files.

Task-number: QTBUG-36193
Change-Id: I2dc1ee6a67a400e056404ec1c09c6e81f643aa77
Reviewed-by: Martin Smith <martin.smith@digia.com>
Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@digia.com>
2014-05-02 09:56:24 +02:00
Martin Smith c55d437d29 doc: Remove "current child" code
The current child concept was added to the Name
Collision Node to heuristically provide better
linking when a link operation reached a collision
node. It is doubtful that this improved linking
much, but now that qdoc uses multiple trees, it
is much less likely that collision nodes will
occur. In fact, there are none in in the current
Qt5. Therefore, the current child code is hereby
removed from qdoc.

Task-number: QTBUG-37067
Change-Id: I33aea5d550afb7ceaf941d49112e02c21d44f6dc
Reviewed-by: Martin Smith <martin.smith@digia.com>
2014-03-31 21:05:07 +02:00
Martin Smith a9d75c8eb8 qdoc: Teach qdoc to use multiple trees (part 3)
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>
2014-03-31 21:05:00 +02:00
Martin Smith 5fecc6512f qdoc: Teach qdoc to use multiple trees (part 2)
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>
2014-03-31 21:04:52 +02:00
Martin Smith e9954e3162 qdoc: Teach qdoc to use multiple trees
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>
2014-03-31 21:04:43 +02:00
Topi Reinio 631c3dbc80 qdoc: Fix Q_PROPERTY parsing
When parsing Q_PROPERTY declarations, qdoc tries to always
read an associated value for each matched keyword. This
fails for property declarations including a CONSTANT or
FINAL, as they have no associated values.

This change fixes the above problem and makes the parsing
more robust by checking the return value of matchProperty()
and skipping to closing parenthesis in case of failure.

Task-number: QTBUG-35722
Change-Id: Ia483b8e74aeef19b2e761b21473cd4f765cdca19
Reviewed-by: J-P Nurmi <jpnurmi@digia.com>
Reviewed-by: Martin Smith <martin.smith@digia.com>
2013-12-31 20:37:46 +01:00
Jerome Pasion 4533cc9944 Doc: Adding mark-up to boolean default values.
Default values should have mark-up to denote that they are code.
This commit changes:
-"property is true" to "property is \c true".
-"Returns true" to "Returns \c true".
-"property is false" to "property is \c false".
-"returns true" to "returns \c true".
-"returns false" to "returns \c false".

src/3rdparty and non-documentation instances were ignored.

Task-number: QTBUG-33360
Change-Id: Ie87eaa57af947caa1230602b61c5c46292a4cf4e
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
2013-10-08 00:46:27 +02:00
Martin Smith d84ed9a92a qdoc: Documentation for property groups is back
This bug was marked fixed and closed, but I'm not sure
it was ever completely fixed. The qdoc commands for QML
property groups were not being processed, so although
the property group and its sub-properties appeared on
the page, the documentation text for the property
group and its properties was never written to the HTML
file. This has been corrected with this update.

Task-number: QTBUG-32341
Change-Id: I5b33ab512a53456379c52236496fb7bc74850842
Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
2013-09-18 11:28:28 +02:00
Martin Smith eaac7960f8 doc: Ensure page name does not change
This fix ensures that the page name is
set only once. Also included are a few
internal documentation changes that
bring qdoc's internal terminology up
to date.

Task-number: QTBUG-31578
Change-Id: Ib52a5a9024533d5a695cee0055bf2bc4d9bc2af9
Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
2013-07-23 13:53:09 +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
Frederik Gladhorn e2776b44a0 Merge remote-tracking branch 'origin/stable' into dev
Conflicts:
	src/plugins/platforms/cocoa/qcocoamenubar.mm

Change-Id: I4a699fc8a7f30b2af9de8e496c3d5f027b7495bb
2013-06-12 19:17:07 +02:00
Martin Smith 505a10baf7 qdoc: qdoc was confused by namespace and module with same name
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 <jerome.pasion@digia.com>
2013-06-11 14:33:00 +02:00
Frederik Gladhorn d3a8bc803c Merge remote-tracking branch 'origin/stable' into dev
Conflicts:
	src/corelib/io/qdatastream.cpp
	src/corelib/io/qdatastream.h
	src/corelib/json/qjsonwriter.cpp
	src/plugins/platforms/cocoa/qcocoawindow.mm
	src/plugins/platforms/xcb/qxcbkeyboard.cpp

Change-Id: I46fef1455f5a9f2ce1ec394a3c65881093c51b62
2013-05-23 21:27:07 +02:00
Martin Smith 0317763781 qdoc: Documentation for QMetaObject::Connection now appears
qdoc's faux C++ parser did not recognize class declarations
of the form:

class Name1::Name2 {
...
};

...where class Name2 is nested in class Name1. Now it does,
but this fix doesn't handle deeper nestings. doc needs a
proper C++ parser.

Task-number: QTBUG-28664
Change-Id: I5adf88cc1b2ce03f5565250734416bf9592914b5
Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
2013-05-08 12:01:29 +02:00
Montel Laurent 4a5182e63d Check 'node' for NULL before derefencing it, not after
Change-Id: Iab4b28997d9d13645375284083e4e603e02cec5c
Reviewed-by: David Faure <david.faure@kdab.com>
Reviewed-by: Martin Smith <martin.smith@digia.com>
2013-04-02 01:40:04 +02:00
Martin Smith cd84491aad qdoc: inherited members do not show up for QML components
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>
2013-02-13 10:11:48 +01:00
Martin Smith 4866fcf008 qdoc: Missing links to qRegisterMetaType()
A serious problem in the design of qdoc is its
C++ parser. It is an ad hoc recursive descent
parser, which has not kept pace with Qt's use
of the more esoteric aspects of C++. Part of
the problem is that qdoc does not send files
through the preprocessor before processing
them. The bottom line is qdoc needs the C++
parser used in Qt Creator.

But that is a long-term solution. In the short
term, we have to introduce minor hacks like
this one to keep qdoc going until the parser
can be replaced.

The problem in this case is that qdoc doesn't
handle the QT_PREPEND_NAMESPACE macro in
function declarations. The solution is to let
qdoc ignore the macro and just use the macro's
parameter, which is what qdoc wants anyway.

Task-number: QTBUG-28953
Change-Id: I5b9efcc10fa8fb500a44854ee995c2e50e9e16b5
Reviewed-by: Topi Reiniö <topi.reinio@digia.com>
Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
2013-02-08 17:37:51 +01:00
Sze Howe Koh 63569a68d2 Doc: Fix module name format
Follow the conventions at
http://qt-project.org/wiki/Spelling_Module_Names_in_Qt_Documentation

QtCore         -> Qt Core
QtDBus         -> Qt D-Bus
QtDesigner     -> Qt Designer
QtGui          -> Qt GUI
QtImageFormats -> Qt Image Formats
QtNetwork      -> Qt Network
QtPrintSupport -> Qt Print Support
QtScript       -> Qt Script
QtSql          -> Qt SQL
QtSvg          -> Qt SVG
QtTest         -> Qt Test
QtWebKit       -> Qt WebKit
QtWidgets      -> Qt Widgets
QtXml          -> Qt XML

QtConcurrent   -> Qt Concurrent (partial)
QtQuick        -> Qt Quick      (partial)

Also, distinguish between "module" and "library"

Change-Id: Icb8aa695ae60b0e45920b0c8fce4dc763a12b0cd
Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
2013-01-25 17:27:44 +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 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