summaryrefslogtreecommitdiff
path: root/src/qdoc/cppcodeparser.cpp
Commit message (Collapse)AuthorAgeFilesLines
...
* Replace nodeType() comparisons to Node:X with isX() testsMartin Smith2019-01-221-1/+1
| | | | | | Change-Id: I62692b4b667a32fe77ee9dc51be15114aae9387b Reviewed-by: Paul Wicking <paul.wicking@qt.io> Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
* qdoc: Remove the \indexpage commandMartin Smith2018-12-031-4/+0
| | | | | | | | | The \indexpage command is no longer used. This update removes it from qdoc and from the qdoc manual. Change-Id: I7ac0cdc2d7fffc91dda01024740478e7da5570f0 Reviewed-by: Paul Wicking <paul.wicking@qt.io> Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
* qdoc: Reorganize Qdoc's Node class hierarchyMartin Smith2018-10-231-103/+65
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is a significant refactoring of QDoc's Node class hierarchy, which is meant to make maintenance of QDoc easier, and which will enable further development of QDoc as a library and plugin. Class DocumentNode is renamed to class PageNode, and it inherits the Node base class instead of inheriting class Aggregate. Class Aggregate inherits class PageNode instead of the Node base class. IOW, class DocumentNode and class Aggregate have swapped places in the class hierarchy, and DocumentNode has changed its name to PageNode. This makes the Node hierarchy more logical because: 1. Every entity that causes a documentation page to be written is a PageNode. 2. Only those PageNodes that can have children are Aggregates. Thus the HeaderFile subtype of the former DocumentNode has been promoted to class HeaderNode, which is a subclass of Aggregate. This makes sense because the old HeaderFile DocumentNode caused a documentation page to be generated, and that documentation page was very much like a class reference page. The \headerfile command is not used a lot in the Qt documentation but there are some useful cases, so it is worth making a subclass of Aggregate to handle them. The HeaderNode is now processed very much like the ClassNode and the NamespaceNode. Developers should be advised that isDocumentNode() is now isPageNode(), but isPageNode() can no longer be used to decide if an Aggregate* is a PageNode* (DocumentNode*), because Aggregate is now a subclass of PageNode. So a new convenience function is added: isTextPageNode(), which returns true if your Node* is a PageNode but not an Aggregate. IOW, isTextPageNode() returns true if the Node* is some kind of text page that doesn't represent a C++ or QML declaration. Class ExampleNode is a subclass of PageNode, not Aggregate. IOW, an ExampleNode no longer has children. Instead, the example files and example images that belong to the example are stored as string lists. It seems to work, but there might be problems in help files I haven't found yet. Class CollectionNode is now a subclass of Node instead of LeafNode. Class LeafNode is removed. All former subclasses of LeafNode are now subclasses of Node. This change also removes a lot of DITA bitrot. Work remaining to be done: 1. Remove the remaining DITA bitrot. 2. Consider letting QmlProperty and JsProperty be instances of Property and use the Genus value to distiguish them. 3. Also consider replacing QmlPropertyGroup and JsPropertyGroup with a single PropertyGroup and use the Genus value to distinguish them. This update also rearranges the parameters passed to the clang parser, and it removes some diff conflict lines that got saved by mistake. Change-Id: I918f83030c48d96db4a5588ab53458f221a5374e Reviewed-by: Martin Smith <martin.smith@qt.io> Reviewed-by: Paul Wicking <paul.wicking@qt.io>
* qdoc: Remove support for \compat commandMartin Smith2018-06-011-23/+0
| | | | | | | | | The \compat command is no longer needed in QDoc, and the code that supports it makes some parts of QDoc needlessly complex. This update removes it, along with the documentation for it in the QDoc manual. Change-Id: I249b571e24ff8c3530d1ae5dbb4fff9186dba49d Reviewed-by: Martin Smith <martin.smith@qt.io>
* qdoc: Document a namespace in multiple modulesMartin Smith2018-06-011-2/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | qdoc didn't handle this. This update fixes most of what was wrong, but tuning the details of the namespace reference pages might follow. We have namespace Qt as an example. Most of the elements in the Qt namespace are in QtCore, but a few functions are declared in QtGui. Before this update, qdoc used the hack of using #ifdef to remove the declarations from qtextdocument.h in QtGui and .cpp and then added them back into qtnamespace.h and .cpp in QtCore. Now that hack is no longer necessary. The functions in the Qt namespace that are declared in QtGui are documented there, but the documentation is linked to from the namespace reference page, which remains in QtCore. That is, only one \namespace command is used to document the Qt namespace, and it appears in qnamespace.qdoc where it always did, but the documentation for the Qt namespace functions declared in QtGui is now appears in qtextdocument.cpp where it belongs. This also allows qdoc to report when a namespace contains elements that are public and documented, but the namespace itself is not documented, which was not possible before this change. qdoc also reports if a namespace is documented in more than one module. That is, for example, when \namespace Qt is used in both QtCore and QtGui. Note that this change will increase the number of qdoc warnings in QtBase, but the new warnings are expacted. Change-Id: If978a59209b7b2ae90713d3ae809ae03361df72f Task-number: QTBUG-67267 Reviewed-by: Martin Smith <martin.smith@qt.io>
* qdoc: Fix bugs in resolving inheritance and finding overridden functionsMartin Smith2018-02-231-22/+6
| | | | | | | | | | | | | | | | | | | | | A class node must have pointers to the class nodes of its base classes, but these pointers might not exist when qdoc creates the class node for the class. They might not exist until all the index files and include files have been parsewd. qdoc was trying to resolve the base classes too early. This update lets qdoc wait until it is known that everything has been built before attempting to resolve inheritance. This update also delays finding the pointer to the function node for the overridden function for a function marked "override" until the pointer is needed. Instead of storing the pointer to the node, the qualification path to the function is stored as a string, and the string is used to look up the overridden function when it is needed, which is only when the \reimp command is processed during output. The function that resolves the pointer to the overridden function was moved to the function node class, where it makes more sense. The way a few qdoc warnings are reported was also changed. Change-Id: Ia54642d11242386ae75139065f481e5d30f79fb5 Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
* qdoc/Config::findFile() Make userFriendlyFilePath an optional out parameterv5.11.0-alpha1Friedemann Kleint2018-02-141-10/+3
| | | | | | Task-number: PYSIDE-363 Change-Id: If076c9a77a5a11c05035f6fc30e6d68e60a35045 Reviewed-by: Martin Smith <martin.smith@qt.io>
* qdoc: Fix regression for wrongly reporting multiple topicsMartin Smith2018-02-051-0/+7
| | | | | | | | | | | | | | | We have the case where multiple different topic commands can appear in a qdoc comment in a .cpp file, when C++ is being documented as QML. Specifically, a \qmlpropertygroup command can be used with multiple \qmlproperty commands. The clang code parser was reporting this as an error, even though clang would never see these commaqndes because they are parsed by the old qdoc command parser. The hasTooManyTopics() function was changed to allow this case. It fixes many qdoc warnings in QtDeclarative. Change-Id: Iaea9a4b9c531f022544749819f65a48111ad0cc1 Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
* qdoc: Fix processing for \macro and QML method/signal topic commandsTopi Reinio2018-01-051-0/+122
| | | | | | | | | | | | | | | Because processing these commands do not use clang, their implementation is moved from ClangCodeParser to CppCodeParser - this ensures that these topic commands are processed also when they appear in .qdoc files (PureDocParser, used for .qdoc, derives from CppCodeParser). Also, these functions did nothing when qdoc was running in prepare phase which in turn meant that they were not written to .index, thus breaking cross-module linking for macros/QML methods/signals. That check is now removed and the functions always do their thing. Change-Id: I8d9333b02092708955b619b573254eda5d82f038 Reviewed-by: Martin Smith <martin.smith@qt.io>
* qdoc: Handle shared comments betterMartin Smith2017-11-161-62/+204
| | | | | | | | | | | | | | | The shared comment in qdoc was originally meant only for use with the \fn command, and only for multiple \fn commands in the same class. But it proved to be useful for other things, so people started using it in other contexts, even though it didn't work there. This update should handle them all. For example, when listing multiple \fn commands, they no longer need be for functions in the same class. Also, multiple \typedef commands are handled correctly. Change-Id: I4be86026a227d74822f5f2295577adf0fe170d49 Reviewed-by: Martin Smith <martin.smith@qt.io>
* Merge remote-tracking branch 'origin/wip/qdoc-clang' into devLiang Qi2017-11-131-1464/+79
|\ | | | | | | | | | | | | | | | | Conflicts: src/qdoc/cppcodeparser.h src/qdoc/location.cpp src/qdoc/qmlcodeparser.h Change-Id: I2e579ca5d83cd1c4b42acc9a07066d800cbc02cb
| * qdoc: This ends use of qdoc's old C++ parserMartin Smith2017-09-081-620/+2
| | | | | | | | | | | | | | | | | | | | This change replaces the last uses of qdoc's old, ad hoc C++ parser. Clang is now used for parsing all C++ code. \macro, \qmlxxx, and \jsxxx commands are parsed by simple pattern matching functions using QString::split(). Change-Id: If6f95b0487d1dd3206373bc55ec8e6b8b9c55b1e Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
| * qdoc: Better support for multi-\fn documentation blocksMartin Smith2017-08-101-51/+58
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This change is a partial fix for the multi-\fn documentation concept. It outputs the documentation once but listing all the function signatures from the \fn commands found in the qdoc comment. Multiple \since commands are not implemented; the \until command is not implemented, and providing text applicable to a specific \fn signature is not implemented. This change requires clang, which means it requires a sequence of other updates as well, so you can't test it unless you have all that stuff. Task-number: QTBUG-60420 Change-Id: Ib316b6f97fa427ef730c4badfc785101bff55dce Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
| * qdoc: Make qdoc handle ref qualifiers correctlyMartin Smith2017-08-101-0/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This update makes qdoc parse and record the presence of ref qualifiers on the end of function declarations. It unfortunately increases the number of qdoc errors reported in QtBase, but that is because these functions are not documented correctly. There will be another update to qdoc to allow documenting multiple functions with a single comment, which is needed for documenting these ref qualified functions but also can be useful in other contexts. Change-Id: If2efb1a71c683a465d66608a20e238d84ea45d9a Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
| * qdoc: Teach parser for \fn commands to parse array parametersMartin Smith2017-08-101-0/+18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | The old qdoc C++ parser is still used for parsing function signatures in \fn commands. The parser could not handle the case where a formal parameter is an array declaration. Now it parses the formal parameter, so the syntax errors have disappeared. But there is a separate problem involving the matching of the declaration to the same declaration in the header file, which is parsed by clang. However, this is a separate issue not addressed by this fix. Change-Id: I61be810b02ac50a6ee380664a41915cc85633c66 Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
| * qdoc: Use documentation for implicit special functionsMartin Smith2017-08-101-8/+28
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Allow implicitly declared special member functions to be explicitly documented. For example, in class QFuture, the destructor, copy constructor and assignment operatore are implicitly declared, but they are explicitly documented in qfuture.qdoc. clangqdoc no longer complains that it can't find these functions in any header file. It creates them for documentation purposes, and they are documented as expected. Where these function signatures appear on the class reference page, " = default" is appended to the end to indicate that the function is implicitly declared. Change-Id: I7bcf16c31099439f424b438eb41589435d7254b6 Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
| * qdoc: Clean up the Parameter classMartin Smith2017-08-101-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The way function signatures are specified is changing. A basic assumption of qdoc was that in the function signature specified with the \fn command, each formal parameter would have a name, and the name would be documentede in the text using the \a markup. This is no longer valid. There are now several cases in Qt where std::nullptr_t is used to specify a formal parameter, and no parameter name is provided. Furthermore, there are a few cases where some other type is used as the parameter type and no parameter name is given. The meaning in the first case is that the function must be called with NULL, and the meaning in the second case is that the parameter is not used in the function implementation. This clean up task must be accomplished in preparation for implementing the changes described above. The Parameter class had become a kludge. The so-called "rightType_" data member (which has not been used for quite a long time now and which was marked for removal long ago) is removed here. The change also affects the <parameter> element in the .index file, where the "right" item is removed and the "left" item is renamed to "type" . This index file change might break 3rd party applications that parse qdoc's index files, but I think there is only one, so be on the lookout for a complaint from that guy. Task-number: QTBUG-58277 Change-Id: I721bebdd5d0f2fcd65324373c3a3ec3ea1c33e26 Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
| * qdoc: A different way to fix the "signed" problemMartin Smith2017-08-101-3/+16
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The old qdoc parser is still used for parsing \fn commands because clang can't be used to parse code fragments. This causes a problem when the "signed" reserved word is used because clang doesn't keep it if it doesn't add anything to the type, while the old qdoc parser always appends it to the type under construction. The fix here is to let the old qdoc parser hold the "signed" reserved word aside until it knows what the next lexeme is. Then it either appends the held "signed" or discards it, depending on what the next lexeme is. e.g., if the next word is "int" discard "signed" but if the next word is "char" append the held "signed" before appending "char". Change-Id: I67953d964cd09410126d64fa3305c669111e74ce Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
| * qdoc: Enable documentation of type alias as typedefMartin Smith2017-08-101-0/+2
| | | | | | | | | | | | | | | | | | | | clangqdoc now handles the type alias declaraction and provides the \typealias command for documenting it. It is documented as a typedef. Task-number: QTBUG-58158 Change-Id: Iee0c8dea66026a89b3625b40b92b056cada893c1 Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
| * qdoc: Don't report error for things marked \internalMartin Smith2017-08-101-12/+17
| | | | | | | | | | | | | | | | | | | | | | | | | | This change allows qdoc to avoid printing warnings about a qdoc comment, if the comment contains the \internal command. In these cases, the comment will not be used in the documentation, so there is no point reporting warnings about it. However, if the showinternal option is used, warnings about comments marked internal are printed anyway. Change-Id: Idcb329958681523c79e9f6a3a144ae26d44a6906 Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
| * Parse function pointer types the same way clang doesOlivier Goffart2017-08-101-8/+15
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When an argument to a function is itself a function, use the same representation of its type that clang uses. - Omit spaces adjacent to parentheses - The argument name is not part of the argument type. This is required so types parsed with our parser lead to the same string as libclang gives us. The only function affected in QtCore is qRegisterAnimationInterpolator. Before: void qRegisterAnimationInterpolator(QVariant(* ) ( const T & from, const T & to, qreal progress ) func) After: void qRegisterAnimationInterpolator(QVariant (*)(const T &, const T &, qreal) func) Unfortunately, this means the documentation does not contain the parameter names in the function type. We will probably have to adapt the documentation of qRegisterAnimationInterpolator() to mention the meaning explicitly. Change-Id: I00ba1854869c061fb54c6a53e6eb02b934c20459 Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
| * Use clang as a parser in qdocOlivier Goffart2017-08-101-865/+18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The file qt_find_clang.prf is inspired by qtcreator's clang_installation.pri. The code from the while loop in ClangVisitor::parseProperty contains code moved from CppCodeParser::matchProperty. The code in the for loop of ClangCodeParser::parseSourceFile (from the "Doc parses the comment"), is mostly moved from CppCodeParser::matchDocsAndStuff. In CppCodeParser, most of the code is removed since clang is used for parsing. We just need to leave enough to parse the declaration in the comments which still use the old parser (\fn, ...) Known issues: - When the parameter name is a comment, it is lost. (e.g. QObject::eventFilter(QObject * /* watched */, QEvent * /* event */) - I can't compute default parameters when they are expanded from a macro. (e.g. QObject::tr) - Instances of #ifndef Q_QDOC need to be reviewed Change-Id: I92d4ca4fc52810d9d3de433147a9953eea3a1802 Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
* | qdoc: Improve linking of QML typesTopi Reinio2017-10-271-1/+3
|/ | | | | | | | | | | | | | | | | | | | | | QML types and QML basic types were not autolinked correctly in many instances. - Provide correct context (genus) for code quote commands. This guarantees that the types resolve correctly for a \qml snippet even if there are colliding C++ target names. Note: we do not enforce 'CPP' genus for \code command, as it is commonly used also with QML code. - Similarly for examples, each .qml source file is set to have QML genus. - Remove QML basic types from the hard-coded map for known (C++) types/keywords. This prevented linking to these types. Task-number: QTBUG-62440 Change-Id: I578d8d4675e99cb4ba54171031efd8dc93040160 Reviewed-by: Martin Smith <martin.smith@qt.io>
* qdoc: Further improve example file listingTopi Reinio2017-07-041-2/+4
| | | | | | | | | | | | | | | Fix a bug where '\generatelist examplefiles' with no second parameter produced an empty list, instead of listing all files. Also, no longer restrict the searching of example image files to the images/ subdirectory. All images under a project directory are now listed, except those under doc/images. Minor fixes to related QDoc documentation. Change-Id: Id4516ba2feb98466a0e893a85f85118e3d21eae2 Reviewed-by: Martin Smith <martin.smith@qt.io> Reviewed-by: Venugopal Shivashankar <Venugopal.Shivashankar@qt.io>
* Fix GCC 7 warnings about unmarked case statement fallthroughsThiago Macieira2017-06-041-1/+1
| | | | | | | doc.cpp:632:39: error: this statement may fall through [-Werror=implicit-fallthrough=] Change-Id: Ia3e896da908f42939148fffd14c48709a6772552 Reviewed-by: Martin Smith <martin.smith@qt.io>
* Use join(QChar), join(QLatin1String) where applicableMarc Mutz2017-03-231-1/+1
| | | | | | | | They're faster/expand to less code. Change-Id: I4d79abb870c7b49784be17dc174ab68d98b1a75d Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io> Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
* qdoc: Implement C++11 'override' specifier supportRainer Keller2017-01-121-3/+5
| | | | | | | Change-Id: Iad837dbdaf492eff77ced4d93dc05095e1d89400 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io> Reviewed-by: Michael Winkelmann <Michael.winkelmann@qt.io> Reviewed-by: Karsten Heimrich <karsten.heimrich@qt.io>
* Merge remote-tracking branch 'origin/5.7' into 5.8Liang Qi2016-09-051-1/+0
|\ | | | | | | Change-Id: I29e1f5d7d146cc77f8cf92bfbe2e41ffad50a041
| * qdoc: Improve resolution of QML type inheritanceTopi Reinio2016-08-161-1/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | QDoc maintains a global map of base types for all QML types. This caused issues whenever QML modules have conflicting type names; for example, types from Qt Quick Controls (v1) were incorrectly marked as deriving from QQC v2 'Control' type. To improve the situation, make following changes: - Manage 'inherited by' map in a single location. Types are added to this map in a pre-generate step (QDocDatabase::resolveQmlInheritance()) after parsing all sources. This allows better control of searching - if the QML type node has an import list, the search is now always based on it. - Add a safeguard against using a base type from a module with major version different to the import statement. - Use node pointers as keys in 'Inherited by' map, instead of type-name strings. Task-number: QTBUG-53529 Change-Id: I6665a520c9197fa90e84d67b12e3405b5b3f0901 Reviewed-by: Mitch Curtis <mitch.curtis@qt.io> Reviewed-by: Martin Smith <martin.smith@theqtcompany.com>
* | qdoc: Add support for attribution pagesKai Koehne2016-08-081-0/+2
|/ | | | | | | | | | | | | | "\page xx attribution" now marks a page as describing a code attribution, and \generatelist{attributions} generates an overview of all attribution pages. Originally code attributions were meant to be handled by \legalese ... \endlegalese and \generatelist{legalese}. Anyhow, this fails giving more details than the pure license text. Change-Id: I3543f077051b361ce59fe27e50f9719dfa52ced3 Reviewed-by: Topi Reiniö <topi.reinio@theqtcompany.com>
* Merge remote-tracking branch 'origin/5.6' into 5.7Liang Qi2016-06-291-2/+3
|\ | | | | | | | | | | | | Conflicts: src/assistant/assistant/doc/src/assistant-manual.qdoc Change-Id: I136caf5f26eff4d1c2574459b8dff9937c2c372d
| * Less randomness in qdoc output part IISune Vuorela2016-06-161-2/+3
| | | | | | | | | | | | | | | | | | Sort more lists before writing output Extract an existing function for comparing nodes, and use it across the code base Fix up the function to also sort private nodes, it is needed for reliable sorting. Change-Id: I934c875ef3e8a36d0e684f5b67d0ca1b81e5716f Reviewed-by: Martin Smith <martin.smith@theqtcompany.com>
* | Updated license headers and license testsAntti Kokko2016-06-101-17/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | From Qt 5.7 -> tools & applications are licensed under GPL v3 with some exceptions, see http://blog.qt.io/blog/2016/01/13/new-agreement-with-the-kde-free-qt-foundation/ Updated license headers to use new GPL-EXCEPT header instead of LGPL21 one (in those files which will be under GPL 3 with exceptions) License header tests also updated to match current headers. Change-Id: Ia6bdacaa3c5bbc9d31334e1a0cabfe502a484dc4 Reviewed-by: Jani Heikkinen <jani.heikkinen@qt.io>
* | qdoc: Allow example files to be excludedTopi Reinio2016-05-121-3/+11
|/ | | | | | | | | | | | | | | | | | | | | Documentation configuration variables 'excludedirs' and 'excludefiles' had no effect on what source and image files were listed as belonging to an example. This commit fixes that, and refactors excludedirs/files handling: Remove duplicated code blocks, amd simplify the code reading the variables: - Drop checks whether an excluded directory exists - Drop conversion of native separators for excluded paths Both are unnecessary; QDoc expects '/'-separated paths for many other variables, and if an excluded dir does not exist, it won't exclude anything. Change-Id: Ie25511e20d33888653c23bb84975368317eb4306 Reviewed-by: Alex Blasche <alexander.blasche@theqtcompany.com> Reviewed-by: Martin Smith <martin.smith@theqtcompany.com>
* qdoc: Correct source line numbers in index fileMartin Smith2016-04-051-8/+24
| | | | | | | | | | Many function clauses in the .index files show the wrong source file line number for the function declaration. This update ensures that the source file line number is correct. Change-Id: I8494b649be1d1a74e5b057391566503f3d6f1424 Task-number: QTBUG-52290 Reviewed-by: Topi Reiniö <topi.reinio@theqtcompany.com>
* qdoc: Allows properties in QML basic typesMartin Smith2016-03-091-4/+6
| | | | | | | | | | qdoc now accepts \qmlproperty comments for QML basic types. I didn't test it, but I think most of what was required was added in QTBUG-51125. Change-Id: I81fa6fa75e73f9ac2fab4794191c37730a4e7561 Task-number: QTBUG-40428 Reviewed-by: Topi Reiniö <topi.reinio@theqtcompany.com>
* qdoc: Avoid more unnecessary qdoc warningsMartin Smith2016-02-261-24/+45
| | | | | | | | | | | Now avoids qdoc warnings for undocumented copy-assignment operators and move-assignment operators. This update also improves the text output by surrounding it with <p> and </p>. There was also a bit of refactoring. Change-Id: I922c7083d17b9b911d81f818f51fe7623a78eb22 Task-number: QTBUG-50630 Reviewed-by: Topi Reiniö <topi.reinio@theqtcompany.com>
* qdoc: Avoid unnecessary qdoc warningsMartin Smith2016-02-261-17/+26
| | | | | | | | | | | Generates default docs when special class member functions are declared but not documented, thereby avoiding the "No documentation for..." error. The member functions now handled are the destructor, the copy constructor, the move-copy constructor, and the default constructor. Change-Id: I9ddd7841b1dfec907ab3c2ccd7636dc898df1fce Task-number: QTBUG-50630 Reviewed-by: Topi Reiniö <topi.reinio@theqtcompany.com>
* qdoc: QML basic types can now have methodsMartin Smith2016-02-221-5/+7
| | | | | | | | | | | \qmlmethod now works for QML basic types. Use it the same way it is used for QML types. \qmlsignal should work now too, but I only tested this for methods. There is now not much difference between QML types and basic types. Change-Id: Ie7dfb01dd2ff0b68944b864ebe29d4a95ba7d550 Task-number: QTBUG-51125 Reviewed-by: Topi Reiniö <topi.reinio@theqtcompany.com>
* qdoc: Second try on Q_PROPERTY with default and final.Karsten Heimrich2016-02-151-2/+6
| | | | | | | | | | This is just because someone decided to use a C++ keyword as property, normaly this should fail, and it will for others like e.g. explicit, friend etc... Change-Id: Ie7f5b295c849d41291adeb3ad89f56800b2b10dd Reviewed-by: Martin Smith <martin.smith@theqtcompany.com> Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
* qdoc: accepts C++11 variadic templates ellipsis operatorKarsten Heimrich2016-02-151-1/+1
| | | | | | | Change-Id: I8211aa66a3b8f95a0f75b7b15714efeef71e26ff Task-number: QTBUG-47085 Reviewed-by: Martin Smith <martin.smith@theqtcompany.com> Reviewed-by: Alex Blasche <alexander.blasche@theqtcompany.com>
* Make sure we allow final and default in Q_PROPERTY.Karsten Heimrich2016-02-111-1/+1
| | | | | Change-Id: I194d9c041d94fc08032003e8a69329902c352e81 Reviewed-by: Martin Smith <martin.smith@theqtcompany.com>
* qdoc: Implement support for C++11 default member initialization.Karsten Heimrich2016-02-091-2/+2
| | | | | | Task-number: QTBUG-49732 Change-Id: Ic30a748359e956affbfddc2162c0f29af1458c31 Reviewed-by: Martin Smith <martin.smith@theqtcompany.com>
* qdoc: Implement C++11 'final' specifier support.Karsten Heimrich2016-02-081-1/+6
| | | | | Change-Id: I9248c0481c44f9ebbbe9df86cad182689288f810 Reviewed-by: Martin Smith <martin.smith@theqtcompany.com>
* qdoc: Implement support for C++11 default/delete declarations.Karsten Heimrich2016-02-081-4/+12
| | | | | | Task-number: QTBUG-50870 Change-Id: I8ce46e41e880ece93c9e6e09f2e01f1047de1622 Reviewed-by: Martin Smith <martin.smith@theqtcompany.com>
* qdoc: Implement support for C++11 scoped enumerations.Karsten Heimrich2016-02-081-0/+7
| | | | | | Task-number: QTBUG-41958 Change-Id: I290dc3f2f3072a1b6884d1484aa9109aa0b99dcc Reviewed-by: Martin Smith <martin.smith@theqtcompany.com>
* move qdoc back to qttoolsOswald Buddenhagen2015-10-231-0/+2611
we can do that now, as the bootstrap lib is now a properly exported module, and qmldevtools is now bootstrapped as well. this removes the abomination of a copy of the qml parser in qtbase. unfortunately qtbase/2422251ee5025a067b14b989153764ab36e43f10 is reverted, as qtdeclarative is still missing the respective change. this introduces no regression in discoverability or usability, as a full doc build already needed qttools - for qhelpgenerator. Change-Id: Ic9c4c9732ddf5998637b9e42e27939ba50b31479 Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@theqtcompany.com> Reviewed-by: Martin Smith <martin.smith@digia.com> Reviewed-by: Lars Knoll <lars.knoll@theqtcompany.com> Reviewed-by: Topi Reiniö <topi.reinio@digia.com>