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>
whatever it was used for is long gone.
Change-Id: Ifab7ae7968b1ab65982b1a6414274b3502bbc3d0
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
it's not necessary. it was an artifact of a misguided approach to making
qdoc aware of the qt installation dirs.
Change-Id: I5ff363c8400d17698bf715e70b904aa69f71f0d8
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
When you want qdoc to output the docs in a
single output subdirectory, you would add
these lines to your qdocconf file:
HTML.nosubdirs = "true"
HTML.outputsubdir = "html"
The name of the output subdir can be anything.
But if you leave out the second line, qdoc now
defaults to using "html" as the single output
subdir.
Task-number: QTBUG-32580
Change-Id: Ibfb2a0c578515ef934e816b2d7a516b64f0f9dcf
Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
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>
Specifies the QT variable needed in the .pro file.
The argument of the command is the qmake QT variable.
To use, add "\qtvariable <value>" to a QDoc comment
which contains the \module command.
QDoc will then associate the class with the QT variable.
Only supported for C++ classes at the moment.
Part of work done for QTBUG-32172
Task-number: QTBUG-32172
Change-Id: Ia8eea30fcfc771191c23a5f5994a48732959ea49
Reviewed-by: Martin Smith <martin.smith@digia.com>
In the case where the only obsolete members of a class
were actually non-members but just related functions,
the help file writer didn't include a reference to the
obsolete members file. This update fixes that bug.
Task-number: QTBUG-31379
Change-Id: I065da649bc12e3dcc81244939be0162599d54be9
Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
The placement of the header, since, inherits,
instantiates, and instantiated-by are now in a table.
For C++ classes:
Header: #include <class name>
Since: <version>
Instantiated by: <QML type>
Inherits: <parent class>
Inherited by: <list of classes>
For QML types:
To import: import <QML module>
Since: <version>
Inherited by:<list of QML types>
Instantiates: <C++ class>
Inherits: <parent QML type>
Inherited by: <list of QML types>
This is only a part of the work being done for
QTBUG-32172.
Task-number: QTBUG-32172
Change-Id: Ia9d29e824ef7ab4052ea59c6397b5f8fd24022b9
Reviewed-by: Martin Smith <martin.smith@digia.com>
Reviewed-by: Topi Reiniö <topi.reinio@digia.com>
Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
When qdoc traverses its internal node tree to generate
either the html docs or the help file, it no longer
traverses nodes that were added to the tree as the result
of reading an index file.
Task-number: QTBUG-32622
Change-Id: Iac63ac2ce177b15b85a2aa73850c45891cbbc624
Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
Reviewed-by: Topi Reiniö <topi.reinio@digia.com>
The link to the class reference page for the class that
contains the obsolete members is now embedded in the text
description of what the page contains. This change affects
both the obsolete members papge and the compatibility members
page. Without this change, the link to the class reference
page stands off on its own and makes it look like the class
itself is obsolete or maintained for compatibility with
previous versions. Since this is not the case, the link is
now embedded in the text description of the page.
Task-number: QTBUG-31379
Change-Id: Ic5f4554c8722ee193f2dfae9efd8adab98f32ca1
Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
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>
Scripts are available in internal mkdist repo.
Added license tags, updated licenses and copyrights/contacts
Change-Id: Ibc734275f3000987eaa4f5c57f19d4e1fda2c479
Reviewed-by: Sergio Ahumada <sergio.ahumada@digia.com>
Change-Id: I837eaef4fb114c20a75ffc188b49aa612f07f507
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Martin Smith <martin.smith@digia.com>
qmlvisitor.cpp:248:13: warning: variable 'pgc_idx' set but not used
[-Wunused-but-set-variable].
Change-Id: Ia8ec15add69771ad7b71d2e17c68204c5bffb360
Reviewed-by: Martin Smith <martin.smith@digia.com>
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>
-"qmlclasses" was used in Qt 4.7
-enables the listing of QML types in a page
Task-number: QTBUG-31490
Change-Id: I4f666945067ef1df6e358c488c245792b5aea3ab
Reviewed-by: Martin Smith <martin.smith@digia.com>
For instance, exporting an object with a slot like
QString complexMethod(const MyVariantMap& vars);
(even with a simple typedef QVariantMap MyVariantMap)
used to silently skip that method in the introspection.
Now it outputs:
generateInterfaceXml: Skipped method "complexMethod" : Invalid type in parameter list: MyVariantMap
Change-Id: I7964cfb63e973257ce1abe47b9625e361b2ad23f
Reviewed-by: Kevin Ottens <kevin.ottens@kdab.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
The HTML pages need to display minimal navigation such
as a link to the module landing page or Qt 5's index.html.
-new variables available in qdocconf files:
navigation.landingpage
navigation.homepage
navigation.cppclassespage
navigation.qmltypespage
buildversion
The navigation variables are for the new navigation bar.
The buildversion variable is to insert documentation build
information into the pages.
Note about compatibility with Qt Creator docs:
The HTML template files for Qt Creator is retained to keep
Qt Creator compatible with 5.0.x and 5.1.x.
Change-Id: Ibb4d7cada19644204457d822b6b77b2aa7b70f8d
Reviewed-by: Martin Smith <martin.smith@digia.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
-The navigation bar requires the titles of the landing page and
relevant pages.
Change-Id: I5d5986b2bf74205cd49957b63fd6ac4e32cbb36b
Reviewed-by: Martin Smith <martin.smith@digia.com>
The current implementation does not allow colons in attribute values,
as it's already used as a separator in the form of 'name:value'.
This change allows colons in the value string - one use case is to
have URL attributes, as in 'imageUrl:qthelp://path.to.image'.
Change-Id: I05c5cb32ffc79a39fbe5e4102f7a4b5bdcc2be53
Reviewed-by: Martin Smith <martin.smith@digia.com>
Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
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>
QDoc uses .qdoc files as snippets in other .qdoc files. These snippet
.qdoc files are also parsed, which is not the intent. This change
resolves the issue by renaming the files to have a different
extension.
Task-number: QTBUG-31574
Change-Id: I399c8b714478b9c4b8fbe2db53f601e6a1386cea
Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
make the include dir in the source tree the "main" include path, as
that's where the majority of the headers is. then selectively add the
shadowed dirs.
Change-Id: I03ad13cfcf77175c141b94d41b1221740d851faf
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
Before: <title>QtMultimedia 5.1: Camera</title>
After: <title>Camera | QtMultimedia 5.1</title>
"Camera" is page name and "QtMultimedia 5.1" is the assembled project
name.
-Regular page title is the same.
-It's a readability issue to not see the page title right away
-New arrangement conforms to Qt Project and blog name format:
"<Title> | <Domain>"
-Tested with the tw-parser and it looks compatible with the
qt-project.org site
Change-Id: Iae0eec9e66b5e21285bdad1e525923f60c72e56b
Reviewed-by: Sami Makkonen <sami.makkonen@digia.com>
Reviewed-by: Nico Vertriest <nico.vertriest@digia.com>
Reviewed-by: Venugopal Shivashankar <venugopal.shivashankar@digia.com>
Reviewed-by: Martin Smith <martin.smith@digia.com>
Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
It's no more on QtWidgets.
Task-number: QTBUG-31508
Change-Id: Iba117a4103c2b32173816a4ecb5faa187f169b32
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
It was comparing an absolute path to a relative path.
These could never be the same. Instead of the relative
path, it now gets the canonical absolute path, so the
comparison succeeds when it should.
Task-number: QTBUG-31404
Change-Id: I9c482d4649d493ce6d4f9a522cb61f2c8a5eb21f
Reviewed-by: Topi Reiniö <topi.reinio@digia.com>
Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
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>
This page is generated by a function in qdoc
that was wwrriten especially for this page.
It wasn't checking to see of the group member
pages were marked with \internal. Now it does.
Task-number: QTBUG-31197
Change-Id: If3f0e90f1a3748c47b3975373047b04d011d6748
Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
For grouped properties, the property list in
the summary section was not shown owing to a
bug introduced when implementing the abstract
base class concept for QML types. This has
now been fixed.
Task-number: QTBUG-31317
Change-Id: Idc2344539ecf3da53e1be6816f59e01922c5c6fc
Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
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>
when the type is a pointer to a registerable 1 argument template type.
Task-number: QTBUG-31002
Change-Id: Iac0d6b71b2b805a1876110a0781d02188083c4e5
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
When encountering code such as:
X<a<b>
moc does not have the mean to know if 'a' is a type or a variable, so the
type parser currently assume that '<' always open a template parameter.
(instead of being the operator<)
The type parser do not care about the actual type, it just need to strip
the string out. The problem is that then the whole rest of the file will
be considered as the type.
With this patch, we also stop the parsing at semicolon. The type will
be wrong, but this allow the parser to recover and it will continue to
look for more classes after this.
(In other words, moc will no longer break if it encounter such construct
in a header. But it will still not parse such types correctly if used
within a Q_OBJECT class)
Task-number: QTBUG-31218
Change-Id: I1fef6bc58493d7c00df72401c9ad55463b24eaa7
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
QDoc adds document nodes as files into the .qhp, including nodes with
image subtype. This will generate a lot of unnecessary warnings for
missing '<image>.png.html' files from qhelpgenerator when running
'make docs'.
This change makes qdoc skip the above step for image nodes to remove
the warnings. The images are still always added to .qch in a separate
step.
Change-Id: Ib07fc8a3ce65f5d4dd700daf00f5f6a36f74a696
Reviewed-by: Martin Smith <martin.smith@digia.com>
Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
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>
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>
There is no longer any difference in install directories between demos
and examples (QT_INSTALL_DEMOS is obsolete and points to the same dir
as QT_INSTALL_EXAMPLES for compatibility). This change removes any
special handling of demos' paths used in manifest xml, enabling the
demos to be visible in Creator welcome mode as well.
Change-Id: I5afdf578a42d001fab05979d3ea1102fd52b51da
Reviewed-by: Martin Smith <martin.smith@digia.com>
Reviewed-by: Thomas Hartmann <Thomas.Hartmann@digia.com>
qWarning now depends on QT_MESSAGE_PATTERN, depending on that variable.
It will show things like the moc process id or the Parser::error
function name. We don't want that.
Change-Id: I5b35401200f0f7de2442aa77d700a82402081489
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
If \wrapper appears in a \class comment or a
\qmltype comment, qdoc will not print warnings
when it finds public members of the class or the
QML type that are not documented.
The \wrapper command is added to several
opengl classes. This reduces the number of
qdoc warnings by several thousands.
Task-number: QTBUG-30755
Change-Id: Iba1eebc1590ccf54100e40fe91423240c1b3d09d
Reviewed-by: Topi Reiniö <topi.reinio@digia.com>
Reviewed-by: Venugopal Shivashankar <venugopal.shivashankar@digia.com>
Reviewed-by: Martin Smith <martin.smith@digia.com>
Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
The Config class is further modified to make
use of the current directory information it
stores with each configuration variable.
Task-number: QTBUG-30725
Change-Id: I34c845e6c05d7868266324f1d54e56f94d709f95
Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
The Config class is modified to build a single
multimap containing a record for each variable
found in each .qdocconf file. Each reacord
contains not only the name and value of the
variable, but also its location in the qdocconf
file it was read from and the path to that file.
This single multimap replaces 3 maps in the
Config class.
Task-number: QTBUG-30725
Change-Id: I049a69790f943b24c014a24b55b2b39725a1b56f
Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
Use a slightly better regular expression for splitting module names
into tags used for example manifest files.
This will correctly split words with consecutive capital letters
(e.g. QtDBus)
Change-Id: I1320e08a1fbd44f718b82a1fcfea19eabca035fc
Reviewed-by: Martin Smith <martin.smith@digia.com>
For most bootstrapped tools, the QT_EVAL code will not
have any effect, because most of the tools don't instantiate
a QCoreApplication. However, qdoc is bootstrapped for cross
compilation, and will instantiate QCoreApplication which
calls the QT_EVAL code. Since the QT_EVAL code requires QObject,
and QObject requires moc, it does not make sense to compile the
eval code into the bootstrap library. Instead, we simply disable
it to make sure the build succeeds.
Change-Id: I472803572b070df041014d337c23d3f3dc0749e4
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
This change adds words from the module name (QHP 'project' name defined
in .qdocconf files) as tags for the module's examples. This makes
searching for examples easier in Qt Creator: For example, typing
'multimedia' will list all examples in Qt Multimedia and Qt Multimedia
Widgets modules.
Other minor changes:
- Exclude 'qt' as a tag (not needed)
- Exclude one-character strings as tags
Task-number: QTBUG-28720
Change-Id: I53751b7a87ff39ee7b648f865c9090c52444de76
Reviewed-by: Martin Smith <martin.smith@digia.com>
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>
Apple Clang 4.2 caught private members that aren't used in a class
with no friends. Since this code is in a tool, there's no binary
compatibility requirement.
databaseinfo.h:71:13: error: private field 'driver' is not used [-Werror,-Wunused-private-field]
quoter.h:86:10: error: private field 'validRegExp' is not used [-Werror,-Wunused-private-field]
qmlvisitor.h:123:11: error: private field 'tree' is not used [-Werror,-Wunused-private-field]
Change-Id: Iba9995f28ddef983c9ffc1dc551f042539252704
Reviewed-by: Alan Alpert <aalpert@blackberry.com>
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
The documentation used to have "Main Classes" list for C++ classes,
and qdoc kept track which classes were supposed to be listed as "main"
classes. This is no longer used, so this change removes the code that
marked a C++ class as a main class and tested whether a class was a
main class. This dead code was seen while preparing the way for
changing qdoc to output a documentation page for obsolete C++ classes
and functions and obsolete QML types and functions.
Task-number: QTBUG-30511
Change-Id: Iccc31b46b7c3c144038372cad4771d974f207937
Reviewed-by: Topi Reiniö <topi.reinio@digia.com>
Reviewed-by: Laszlo Papp <lpapp@kde.org>
Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
The -redirect-documentation-to-dev-null option allows to get all qdoc
errors, without creating full documentation. It significantly reduces
amount IO operations.
Change-Id: I80fb6f9e304eb106f1c1d1e6320a1b38d788f6fc
Reviewed-by: Martin Smith <martin.smith@digia.com>
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@digia.com>
this is a qt specific option and really should not be hard-coded.
also, the implementation used undocumented api that is internal to the
bootstrapped process, which made it impossible to de-bootstrap it.
Change-Id: If706960671744e64a9a7c366437977a800a6058e
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
Change-Id: Iab4b28997d9d13645375284083e4e603e02cec5c
Reviewed-by: David Faure <david.faure@kdab.com>
Reviewed-by: Martin Smith <martin.smith@digia.com>
Standarize the qdoc namespace to match all the others configurations.
Change-Id: I364d41f20084b77ab3805e72c870147c05da1d42
Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
qdoc was not including QML signals in the documentation
for a QML type, when the signals were inherited from a
QML type that had been marked abstract. This is now fixed.
Additionally, the QML type qualifier is not shown in the
header for the documentation for a member of a QML type.
The type qualifier was redundant information, and it was
incorrect for members inherited from abstract base types.
Task-number: QTBUG-30111
Change-Id: I73aef40f69a15bca6948bf36596b83800d248b1f
Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
This reverts commit 7b655eef48.
QDeclarativeView is back in QDeclarative.
Task-number: QTBUG-25196
Change-Id: Ibe40e790c98b5129bbd844924f71cf3ca0202b5f
Reviewed-by: Kai Koehne <kai.koehne@digia.com>
It gives a good suggestion on what to do and even shows us how to do
it.
doc.cpp:2681:34: error: adding 'int' to a string does not append to the string [-Werror,-Wstring-plus-int]
result += " " + (column % tabSize);
~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~
doc.cpp:2681:34: note: use array indexing to silence this warning
result += " " + (column % tabSize);
^
& [ ]
Change-Id: Idd2157ab04cd2a3e37a1336bb5e8926ddc14823a
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
The subpage listing all the members of a QML type,
including the inherited members, was trying to use
an old format that works ok for C++ classes but is
not optimal for QML types.
The redesigned format for QML types still lists all
the members but it lists the members for each base
type in a separate list.
The members for a QML type that has been marked as
abstract are listed with the members of the type
that inherits the abstract type.
This fix does not fix QTBUG-30111, which will be
fixed in a separate commit. This means that some
links on the subpage generated by this change
will be links to a page that doesn't actually
contain any documentation for the linked member.
But it will eventually.
Task-number: QTBUG-30114
Change-Id: I8ae4227d1eaecdbc24a4ac9b8119f0ced2cdee92
Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
Change-Id: I87e0b2e11670ea71da8e4d2f718dc97dd32dd57d
Reviewed-by: Martin Smith <martin.smith@digia.com>
Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
this is cleaner than having it parse qmake project files.
the only remaining built-in version extraction is the fallback to
qglobal.h needed for bootstrapping.
as a "side effect", this fixes the build of modules with mismatched
versions centralized in .qmake.conf, as this was simply not handled so
far.
the -mkspecsdir syncqt option goes away, as there is no use case for it
any more.
Task-number: QTBUG-29838
Change-Id: I6912a38f0e93a26bc267a9e3d738506fd3ad431b
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Jocelyn Turcotte <jocelyn.turcotte@digia.com>
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
qdoc was using the method signature (beginning
with the return type) to sort methods for listing
in the HTML output. Now qdoc sorts on the method
name, which makes the list easier to read.
Task-number: QTBUG-29708
Change-Id: If3785ccd5849df53b01043c2dada0b6bf3c00614
Reviewed-by: J-P Nurmi <jpnurmi@digia.com>
If the dir exists, it is added to the list of exclude
dirs. If it does not exist, it is ignored. If it does
not exist, qdoc assumes there is nothing to exclude
there and does not report an error.
Task-number: QTBUG-29736
Change-Id: I657b84f1a967d03f83a803402d8670f9113933eb
Reviewed-by: Martin Smith <martin.smith@digia.com>
Remove all trailing whitespace from the following list of files:
*.cpp *.h *.conf *.qdoc *.pro *.pri *.mm *.rc *.pl *.qps *.xpm *.txt *README
excluding 3rdparty, test-data and auto generated code.
Note A): the only non 3rdparty c++-files that still
have trailing whitespace after this change are:
* src/corelib/codecs/cp949codetbl_p.h
* src/corelib/codecs/qjpunicode.cpp
* src/corelib/codecs/qbig5codec.cpp
* src/corelib/xml/qxmlstream_p.h
* src/tools/qdoc/qmlparser/qqmljsgrammar.cpp
* src/tools/uic/ui4.cpp
* tests/auto/other/qtokenautomaton/tokenizers/*
* tests/benchmarks/corelib/tools/qstring/data.cpp
* util/lexgen/tokenizer.cpp
Note B): in about 30 files some overlapping 'leading tab' and
'TAB character in non-leading whitespace' issues have been fixed
to make the sanity bot happy. Plus some general ws-fixes here
and there as asked for during review.
Change-Id: Ia713113c34d82442d6ce4d93d8b1cf545075d11d
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
project files of bootstrapped modules can, just like those of
bootstrapped tools, benefit from automatic adjustment of QT (and
CONFIG).
Change-Id: I83815e69a2b105caaee0c2e2602828f8eb425eef
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
bootstrapping is only necessary if we are cross-compiling or have a
circular build dependency.
Change-Id: I17244457652ca9d4fc797043e57070c2ae3ee5d1
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
this just factors out the common sources from the qdbus tools, to avoid
double compilation, and to clean up the project files.
Change-Id: I330d108ebffda4bc7c0e0e9ec00e51ddd48d5289
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
we already have the syncqt'd include paths set, so use them.
Change-Id: I9d0047a79b493dd8b65f0f5495f3592ce2e2fb1d
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
it was already bootstrappable, but it was used only for configure.exe.
needed for bootstrapping lupdate
Change-Id: I0c2bf7db293dda47b3342dfe897a28b34383b1b4
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
this required making it compile with QT_NO_QOBJECT. of course this
disables anything related to threading and event processing.
needed for bootstrapping qmldevtools (qmlmin, lupdate)
Change-Id: I6f8bd3996ac7b6eee49a5b8a55143d358abe35ee
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
this is done mainly to resolve spurious dependencies, in preparation
for making some tools not bootstrapped in native builds.
as a nice side effect, there is even more parallelization possible now.
Change-Id: I779cf0059c98c65aba8510bf3d24fdab4eeaa863
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
it's not quite clear why it was here. probably a vestige.
Change-Id: I6768df717ff9605a5833bcc4db56f486c266ea2e
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
qdoc already ignores QML signal handler comments
and does not report errors for missing QML signal
handler documentation. but the test case for this
bug revealed a separate bug. The test case contains
no import statements, which, technically is legal
but probably won't happen. Still, qdoc failed to
generate output for the test case QML file because
it didn't contain an import statement before the
first qdoc comment. This was caused by an
uninitialized variable, which has now been fixed.
Task-number: QTBUG-30043
Change-Id: Iafa2087b85a6c9e354b2be86c779bbd191181218
Reviewed-by: J-P Nurmi <jpnurmi@digia.com>
qdoc now ignores QML signal handler comments
and does not report errors for missing QML
signal handler documentation.
Task-number: QTBUG-29993
Change-Id: If2daae80944c8b85312d38d4ee8c07ebe1f79001
Reviewed-by: J-P Nurmi <jpnurmi@digia.com>
Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
The former applies both on Mac OS X and iOS, but 'macx' is specific to
Mac OS X.
ios.conf and macx.conf now share most of their settings in the common
mac.conf. We set the default QMAKE_MAC_SDK before loading mac.conf, so
that any overrides in the device config will apply afterwards. This
means configure's mkspec parsing will be able to read the QMAKE_MAC_SDK.
Change-Id: I0c7e26a6a0103e19b23ef152aa9e4ab461cee632
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@digia.com>
qdoc was not incrementing the nesting level when parsing
a UiObjectBinding, which can contain a component definition.
qdoc now increments the nesting level when starting to vidit
a UiObjectBinding and decrements it when ending the visit.
Note this fix does not stop qdoc from reporting that public
signal handlers have not been documented. If that is to be
changed, it will be done separately.
Task-number: QTBUG-29993
Change-Id: Ibd5ef81082e989652b3a15dcc95080a2757e0077
Reviewed-by: J-P Nurmi <jpnurmi@digia.com>
This change allows links of the form:
\l{qml-module-name::qml-type}{name}
i.e. no version number provided.
This change does not handle collisions.
There aren't any in Qt5 at the moment.
If a collision occurs, qdoc will link to
the name in one of the colliding QML
modules, but not necessarily the most
recent one. Hence, the link may go to
the wrong page. A further update might
be forthcoming that will handle this
better.
Task-number: QTBUG-29778
Change-Id: Ie2c2b117446ed02852593dd0273c390d39fed927
Reviewed-by: Venugopal Shivashankar <venugopal.shivashankar@digia.com>
Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
Both gcc and clang allow the use of '$' in their identifiers as an
extension. moc should not throw a parse error if there is one in the
file. Instead, consider '$' as valid in identifiers.
Task-number: QTBUG-22720
Change-Id: I8be3a52429c0db5b7e8308b8f4fe475d3d3994bf
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
If the object has only MEMBER properties, without any other property
specifying READ, the generated will fail to compile with this error:
tst_moc.moc: In member function ‘virtual int ClassWithOneMember::qt_metacall(QMetaObject::Call, int, void**)’:
tst_moc.moc:3810:42: error: ‘_v’ was not declared in this scope
That's because the '_v' is only declared if 'needTempVarForGet' is set,
and it should be set when we have a MEMBER property.
Change-Id: I829fad3faf69654b5a3fd540857df19f4a9449d4
Reviewed-by: Gerhard Gappmeier <gerhard.gappmeier@ascolab.com>
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
doc.cpp(3292): error #68: integer conversion resulted in a change of sign
generator.cpp(363): error #68: integer conversion resulted in a change of sign
Change-Id: Ie714ffcb4098debc701ce3fb6fa444154ac02ae5
Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@digia.com>
The drivers were never public API. They were exposed by mistake in
public headers. What's more, they have #include'd a private header
(qsqlcachedresult_p.h) since at least Qt 4.5.1. That means no one used
those headers in Qt 4 (private headers weren't installed then) and
it's unlikely anyone did in 5.0.
Change-Id: Ie0a47bcf0260ee6bdd3d8494b78fd1eec28a2d6b
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Mark Brand <mabrand@mabrand.nl>
There's no need to compile the other codecs if they never get
used. It's possible that a whole-program optimisation would remove the
dead code away, but it's not very likely.
Change-Id: I75d7618c174566beec2fab44f60a9f7120133775
Reviewed-by: Richard J. Moore <rich@kde.org>
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>
When performing macro argument substitution, one should keep the set of
macro to exclude, else we can enter an infinite recursion.
Testcase:
#define M1(A) A
#define M2 M1(M2)
Task-number: QTBUG-29759
Change-Id: I564bbfed65e1c8599592eaf12c6d67285d2fd9ce
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@digia.com>
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>
Adds documentation for example manifest files and the related qdoc
configuration command \manifestmeta into QDoc manual.
Change-Id: I6a627698ab14f57c9a117b6d4b794f352959f5ac
Reviewed-by: Martin Smith <martin.smith@digia.com>
Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
Exhausting the symbol list while looking for the
final right parenthesis means it is missing.
Task-number: QTBUG-29308
Change-Id: Iccf5897b0f5eb719699fd12d6c8e4a16ff189d9b
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
-QDoc doesn't differentiate between \badcode and \code. They both
look the same in the output.
Change-Id: Ifabd51b7e433a1c30cf30c267d3ce63dded1bd43
Reviewed-by: Leena Miettinen <riitta-leena.miettinen@digia.com>
Exhausting the symbol list while looking for the
final right parenthesis means it is missing.
Task-number: QTBUG-29308
Change-Id: Iccf5897b0f5eb719699fd12d6c8e4a16ff189d9b
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
This change makes qdoc support additional attributes and tags written
to example/demo manifest files. The goal is to enable highlighting of
selected items, as well as having additional content to make searching
for specific categories work better in Qt Creator welcome screen.
This meta-content is stored in manifest-meta.qdocconf, which is loaded
globally for all modules.
Tag handling is also changed to use a QSet to eliminate possible
duplicate tags.
Task-number: QTBUG-29354
Change-Id: I2c4b2dff6229172efbecc2bfc1c269017edc4d56
Reviewed-by: Martin Smith <martin.smith@digia.com>
Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
It does not have any effect in a SUBDIRS-type .pro-file.
Fixes 42a6d405e4 .
Change-Id: If2eafacecfd69b916861bf4b0afddb62628d720f
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
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>
the translation infrastructure is disabled in the bootstrapped tools, so
the translations are wasted.
Change-Id: Ief5d13f09242e03aaf0d4a3d9b1645f9c7a1ab3a
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
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>
This change refactors the code for inserting compatibility and
obsolete member pages into a qhp file, detaching it as a new
function and calling it when processing each node.
This ensures that members page, compatibility and obsolete
pages (html files) are added to .QCH files for all processed
nodes that have children or related nodes.
Also renames a variable ('node'->'nodeChildren') to prevent
shadowing.
Task-number: QTBUG-29314
Change-Id: Iccee70ba8768d48b24e68b08651043d0ce4a62a5
Reviewed-by: Martin Smith <martin.smith@digia.com>
-removed extra qdocconf and files
-"make docs" using QMAKE_DOCS
-installs the documentation in QT_INSTALL_DOCS
-updated title of the manual to "QDoc Manual"
-modified listing of contents in Assistant
Change-Id: I22f93c0903c5e672a0e7efa83bf3f592658be66d
Reviewed-by: Martin Smith <martin.smith@digia.com>
Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
Put all translations into the namespace QDoc and fix warnings
about invalid tr()-usage by removing the free tr()-function
from tr.h. Provide QCoreApplication::translate() for bootstrap
builds.
Change-Id: I2b6931188346f290e80e14b84adff8892d8a860f
Reviewed-by: Martin Smith <martin.smith@digia.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Generator::fullDocumentLocation() adds a parent class name twice into
the generated filename for nested classes, which not correct.
This change fixes the issue and makes documentation for nested classes
work in Qt Creator (qch files).
Task-number: QTBUG-29440
Change-Id: I489800ba09f49dda2befef73634cb2b344be0060
Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
Reviewed-by: Martin Smith <martin.smith@digia.com>
This macro is useless from Qt 5.1 on, so:
- Remove comment about using QT_BEGIN_NAMESPACE after QT_BEGIN_HEADER
- There is no need to blacklist these in qt-cpp-ignore.qdocconf
Change-Id: I2c3ceb3d77d294a606b87f7486071a2350b3d42f
Reviewed-by: Laszlo Papp <lpapp@kde.org>
Reviewed-by: hjk <hjk121@nokiamail.com>
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
These classes moved as well, but were missed in commit c07408e2. This
fixes uic generating invalid code if any of these classes are used in
an .ui file.
Change-Id: I0359157f540a5f4979cca781169e5a9b2a0afad7
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
This associates properties with member variables and
avoids writing getter and setter methods manually.
The metaCall() method directly accesses the member variable,
so additional method calls can be avoided.
The metaCall() setter code also supports NOTIFY signals,
which means the according signal is emitted when the property
gets written.
Task-number: QTBUG-16852
Change-Id: I88a1f237ea53a1e9cf65fc9ef2e207718eb8b6c3
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
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>
For moc, rcc and uic, then it's friendly for tools like ccache.
ccache is using md5 to check file modification, but the different
timestamp info will cause different md5 for same meaningful
contents, it will disabled ccache.
Updated the autotest for uic and rcc.
Task-number: QTBUG-26589
Change-Id: I9f1dcf6cd826ad9603af6e183757bcd748c32bd1
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
The first branch is required to MSVC. The bitfield isn't large enough to
represent all possible enum values of Virtualness for MSVC.
In addition, using bitfield is a premature optimisation in this case.
So remove them.
Change-Id: I4c5f85271d2bca1411426e6a321a795a7e783aff
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
\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>
Add a missing 's' for plural form for signals. This fixes the linking
to Signals topic in class references.
Task-number: QTBUG-28450
Change-Id: Ic666e608b4b5b40b1f886ea581e54227e1a94678
Reviewed-by: Martin Smith <martin.smith@digia.com>
Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
This configuration variable now assumes its values,
if relative, are relative to the config file that
contains the extraimages variable.
Task-number: QTBUG-28307
Change-Id: I9b34d1f456b31e36ac77401b957b68cd10590376
Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
Once upon a time, the inherited functions, signals,
slots, etc were not listed on the class reference
page, but they were counted and a link to the base
class was provided for them, eg:
2 public functions inherited from QAbstractListModel
39 public functions inherited from QAbstractItemModel
31 public functions inherited from QObject
Somehow, this got broken, so that all these inherited
things were listed on the class reference page as if
they were members of the class. But they liunked to
the documentation in the base class.
This now works correctly again. It simnplifies the
class reference pages a lot.
Task-number: QTBUG-27496
Change-Id: If493da8cbf81634f1344b12094d9a06f8528e8e5
Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
Now things that are marked internal oe whose parent
is marked internal won't appear in annotated lists.
Task-number: QTBUG-28274
Change-Id: I14ea96e223640cad45e7e4249a3e1fc0642bd9c3
Reviewed-by: J-P Nurmi <jpnurmi@digia.com>
(Currently, the Qt5 windows packages lack the tiff and mng plugins
from qtimageformats because of this issue.)
If Qt is configured to use its bundled zlib, it is compiled into
QtCore, and the public symbols are exported so that it can be used
by other Qt libraries. However, after modularization, this did not
work for libraries outside qtbase, since they did not have access
to the headers of the bundled zlib.
This commit fixes that.
Ref. also 1f461ac45b
Change-Id: Ie986f47e00fd0c16f2ba04d27f4258a20d61b260
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
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>