The QML module identifier is no longer useful.
The function to generate it is retained for now.
Task-number: QTBUG-32173
Change-Id: Ic811ed432f2059c0370e9e0d86b2e334b5c82a3c
Reviewed-by: Martin Smith <martin.smith@digia.com>
Remove a piece a debug code from qmlvisitor.cpp
Change-Id: I3a1a72d11597c36d277310c92bf9590633844d03
Reviewed-by: Martin Smith <martin.smith@digia.com>
This change allows an empty string to be used as a common prefix
for class/type compact lists, and uses it for QML types as they
do not have a common prefix like public C++ Qt classes do.
This fixes the issue with sorting order for QML type lists.
Task-number: QTBUG-33715
Change-Id: I28ab689d28017ae28eccbf590d1dbbe107665e33
Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
Reviewed-by: Martin Smith <martin.smith@digia.com>
Updated qdoc to handle QML references without using the
QML module version.
Task-number: QTBUG-32173
Change-Id: Ibfba9bc92458ae04017706e904625e7d32fc0be4
Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
For typedef nodes that have an associated enumeration, qdoc
generates incorrect location info (written to index files)
by simply appending '-typedef' to the node name. The correct
location to link to is the associated enumeration, if one
exists.
Task-number: QTBUG-33684
Change-Id: I749171ccae9ccc10f084a40fda14e72d5f4d44cf
Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
Reviewed-by: Martin Smith <martin.smith@digia.com>
Not needed anymore now that it's using the new commandline parser.
Change-Id: I1a44c8658d128e4fbb9a6fc5000025f55e5293c2
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
-one argument: assume it is the Qt version
-more than one argument: copy verbatim
Task-number: QTBUG-32172
Change-Id: Iaf5ec538f23abf4d1dfdf50bffcbbdede56d0b22
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
Reviewed-by: Martin Smith <martin.smith@digia.com>
The Import statement shown at the top of each QML type
page now always gets the version number from the QML
module page for the QML type's module.
Task-number: QTBUG-32153
Change-Id: I57649c07ea680806bc92ad62fb3bc4d4fb56f717
Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
Commit 310031188c (Fix moc stumbling over gcc __attribute__
extensions, 2012-10-01) applied similar logic for GNU style
attributes.
Change-Id: I550eaefd703b4e974e6ffae7716f02074c8a8823
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
The problem was they were being incorrectly written to
and read from the index files.
Task-number: QTBUG-33510
Change-Id: Ib0b34265cd22fff5ed88ae2fd5d5d7ea58b3761d
Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
Valgrind blamed CppCodeMarker::addMarkUp as slow, the patch improves
situation by ~12%
Use of QStringLiterals instead of const char* reduce amount of
allocations on startup.
Change-Id: I8737e02785506bba7e23868ab3952eab09d543d2
Reviewed-by: Martin Smith <martin.smith@digia.com>
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>
Currently, qdoc reports duplicate pages, when it should be reporting
duplicate page titles. Sometimes the duplicate titles actually refer
to the same page, but often they are different pages with the same
title. This update changes the error message to better indicate that
two identical page titles were seen.
A further complication was that the qdoc warnings for these duplate
page title errors were useless when the duplicates were in different Qt5
modules, because the support for file location information in the qdoc
index files was inadequate. This update adds better location information
to each section in the index file. This makes the index files bigger
and will increase qdoc runtimes, hopefully not too much.
Task-number: QTBUG-33506
Change-Id: I35db3c5e1551b9ef748d63377e94453da80c1e26
Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
Prevent qdoc from reporting duplicate pages for external pages with
the same URL and title.
Task-number: QTBUG-33462
Change-Id: Idabdb241aaa4fe105f7b3ea78229ff1ae8776ecf
Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
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>
A module plugin in qml belongs to a URI/namespace. This
uri is resolved run-time by QtDeclarative by knowing the
path of the qmldir that references the plugin.
For static plugins this becomes a problem, since we lost
the information regarding which plugin belongs to which
qmldir, since a static plugin has no file path.
To avoid pushing the responsibility of clarifying this
onto the application developer, it is better to embed this
information into the meta data of the plugins themselves.
Since this information can be resolved by the
build system, a new option to moc has been added:
-M<key=value>
that will let you add meta tags to the meta data from
the command line to each class that has an IID specified.
For the URI case, we can then e.g do:
-Muri=QtQuick.Controls -Muri=QtQuick.Controls.Private
Change-Id: I81a156660148fc94db6f3cac0473e9e1c8458c58
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
In a while loop, when the first QML type encountered was
abstract, qdoc didn't create a class map on the heap, but
later in the loop, the class map was used anyway. This
caused a crash because of a null pointer to the class map.
Now qdoc creates a class map if one hasn't been created
yet, even if the QML type is abstract. This might not be
correct, but the real problem is probably the order in
which qdoc processes the QML types. It should probably
always start with a non-abstract type. But this fix will
at least avoid the crash.
Task-number: QTBUG-33387
Change-Id: Icecb165261469856820f81e3866218b15416ae3b
Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
This required special care because of @option-file where additional args can be read from.
Found again one undocumented option, --ignore-option-clashes.
Usage: moc [options] [header-file] [@option-file]
Qt Meta Object Compiler version 67 (Qt 5.2.0)
Options:
-h, --help Displays this help.
-v, --version Displays version information.
-o <file> Write output to file rather than stdout.
-I <dir> Add dir to the include path for header files.
-F <framework> Add Mac framework to the include path for header fil
es.
-E Preprocess only; do not generate meta object code.
-D <macro[=def]> Define macro, with optional definition.
-U <macro> Undefine macro.
-i Do not generate an #include statement.
-p <path> Path prefix for included file.
-f <file> Force #include [optional <file>] (overwrite default)
.
-b <file> Prepend #include <file> (preserve default include).
-n <which> Do not display notes (-nn) or warnings (-nw). Compat
ibility option.
--no-notes Do not display notes.
--no-warnings Do not display warnings (implies --no-notes).
--ignore-option-clashes Ignore all options that conflict with compilers, lik
e -pthread conflicting with moc's -p option.
Arguments:
[header-file] Header file to read from, otherwise stdin.
[@option-file] Read additional options from option-file.
Change-Id: I0dfa8e029f95ad8084832530d701e30f315df98e
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
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>
qdoc-manual.qdoc is now an overview document
Each section is a separate qdoc file
Title modification in minimal qdocconf qdoc file
Task-number: QTBUG-31801
Change-Id: I9e50eb8c4f1f501e9c0bc768372d4393b73053ed
Reviewed-by: Topi Reiniö <topi.reinio@digia.com>
Reviewed-by: Martin Smith <martin.smith@digia.com>
Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
To be consistent with signals which are public since Qt5.
Change-Id: I633077e37d0851b118c22da0681e8b8b1892ddbb
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
The declaration for addToQmlModule() in class Tree
is removed.
Task-number: QTBUG-33350
Change-Id: I2278a67cd6daf0e7723b4bf6d33ff9ed33cf9266
Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
-The qdb->findModule() call creates a module node even if the module
name is empty. This creates the extra module.html pages in some
doc projects.
-The fix is to create a condition for calling findModule()
Task-number: QTBUG-32990
Change-Id: I6c1d1c53f3814ea483df2cd05b8d39dc14b0fb7b
Reviewed-by: Martin Smith <martin.smith@digia.com>
This is (!a) == b which is not what is intended here.
This exact bug was fixed in a couple of other instances of the QmlJSParser
(in QtCreator and Qt itself) by now.
Change-Id: I46a50153d7c349f21e0a888e2e3b4c4fa65c27c0
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
qdoc interprets the double-ampersand in function parameters
using rvalue references (e.g. 'Type &&other') incorrectly
as a logical AND operator, resulting in a syntax error.
This change works around the issue by treating '&' the same
as '*', and defining Q_COMPILER_RVALUE_REFS for qdoc.
Task-number: QTBUG-32675
Change-Id: I499611f16f22c33ff5b878da0cd59d67ddf53d72
Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
Reviewed-by: Martin Smith <martin.smith@digia.com>
Before:
=======
Qt User Interface Compiler version 5.2.0
Usage: uic [options] <uifile>
-h, -help display this help and exit
-v, -version display version
-d, -dependencies display the dependencies
-o <file> place the output into <file>
-tr <func> use func() for i18n
-p, -no-protection disable header protection
-n, -no-implicit-includes disable generation of #include-directives
for forms generated by uic3
-g <name> change generator
After:
======
Usage: uic [options] [uifile]
Qt User Interface Compiler version 5.2.0
Options:
-h, --help Displays this help.
-v, --version Displays version information.
-d, --dependencies Display the dependencies.
-o, --output <file> Place the output into <file>
-p, --no-protection Disable header protection.
-n, --no-implicit-includes Disable generation of #include-directives.
--postfix <postfix> Postfix to add to all generated classnames.
--tr, --translate <function> Use <function> for i18n.
-g, --generator <java|cpp> Select generator.
Arguments:
[uifile] Input file (*.ui), otherwise stdin.
Notes:
* "-dependencies" etc. still work.
* -n option still has effect, but technically not only for ui3 files
* the fact that the <uifile> parameter is optional wasn't documented
* -postfix option was undocumented
* -translate alternative for -tr was undocumented
The last two points show the benefit of using QCommandLineParser.
Change-Id: Ie05cfb9bbe50f4ac2788aa7b6011b2daa1acde6a
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Laszlo Papp <lpapp@kde.org>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Before:
=======
Qt resource compiler
Usage: rcc [options] <inputs>
Options:
-o file write output to file rather than stdout
-name name create an external initialization function with name
-threshold level threshold to consider compressing files
-compress level compress input files by level
-root path prefix resource access path with root path
-no-compress disable all compression
-binary output a binary file for use as a dynamic resource
-namespace turn off namespace macros
-project Output a resource file containing all
files from the current directory
-version display version
-help display this information
Undocumented: -verbose and -list !
After:
======
Usage: rcc [options] inputs
Qt Resource Compiler version 5.2.0
Options:
-h, --help Displays this help.
-v, --version Displays version information.
-o, --output <file> Write output to <file> rather than stdout.
--name <name> Create an external initialization function with <name>.
--root <path> Prefix resource access path with root path.
--compress <level> Compress input files by <level>.
--no-compress Disable all compression.
--threshold <level> Threshold to consider compressing files.
--binary Output a binary file for use as a dynamic resource.
--namespace Turn off namespace macros.
--verbose Enable verbose mode.
--list Only list the files, do not generate code.
--project Output a resource file containing all files from the current directory.
Arguments:
inputs Input files (*.qrc).
Change-Id: If20958afd6c01df5d0d755e13e8581bc1cb9af51
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
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>
Corrected style issues pointed out in review.
Task-number: QTBUG-31801
Change-Id: Ibbc4e5f8dcd8ca129ae945b5e62b15daed47d86d
Reviewed-by: Martin Smith <martin.smith@digia.com>
qdoc's \include command now works as expected.
This command is only for including a file that
contains qdoc comments that contain qdoc commands
to be processed by qdoc. The file to be included
should have the .qdocinc suffix, although qdoc
will accept any suffix now. The file must be in
one of the directories specified by the sourcedirs
variable in the qdocconf file.
Task-number: QTBUG-33046
Change-Id: I45ea08932b4218aae369469968117fb5132f764b
Reviewed-by: Alex Blasche <alexander.blasche@digia.com>
Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
To avoid duplicate files for examples, the files
are named this way. Suppose you have an example
called mandelbrot. The example is in a subdirectory
named mandelbrot, and there is a \example command
somewhere like this:
\example mandelbrot
In this case, the mandelbrot example is in the QtCore
module. Then the name of the example page will be:
"qtcore-mandelbrot-example"
...and the names of the example files will be:
"qtcore-mandelbrot-main-cpp.html"
"qtcore-mandelbrot-mandelbrot-pro.html"
"qtcore-mandelbrot-mandelbrotwidget-cpp.html"
"qtcore-mandelbrot-mandelbrotwidget-h.html"
"qtcore-mandelbrot-renderthread-cpp.html"
"qtcore-mandelbrot-renderthread-h.html"
Task-number: QTBUG-32580
Change-Id: Ic4445fd65b679523d6d94a8b0c19289d049ef0b0
Reviewed-by: Martin Smith <martin.smith@digia.com>
Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
Don't use the 'emit' keyword in the moc generated code for properties
with MEMBER
Task-number: QTBUG-33094
Change-Id: I5a0950e9c7a0dee347a6a6c79098e3e7d4776014
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
This may happen when we have namespaces and the qualified name is used
to scope an enum.
Task-number: QTBUG-32933
Change-Id: Ic4923bbfb138387bae1e3694172661ace8342089
Reviewed-by: Alan Alpert <aalpert@blackberry.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
moc's C++ is not 100% accurate, so better process the invalid macro with
a warning rather than an error.
Such errors occurred in the QSKIP macro with variadic arguments since
that macro is defined conditionally.
It is also causing problem in boost header (cf task QTBUG-29331)
Task-number: QTBUG-29331
Change-Id: Ice6a01b675286540d6470c8e36920b7efd39b540
Reviewed-by: Lars Knoll <lars.knoll@digia.com>