| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Introduce 'outputsuffixes' QDoc configuration variable, which
allows defining a module name suffix inserted into the
generated html file names. The suffix can currently be applied
to QML and JS documentation.
This is useful in cases where we have multiple versions
of a module as part of the documentation build, and
writing to a common output directory would otherwise result
in file name clashes.
Change-Id: I1437874fad09f041e506b93b62b6a4a8cae49ec9
Reviewed-by: Martin Smith <martin.smith@digia.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
QDocDatabase provided a way to search for a collection node in
the primary tree only. This was insufficient for use cases where
we want to list groups, C++ classes or QML types in other modules
using the \generatelist or \annotatedlist commands.
This commit does the following changes:
- Add a function to find a collection node across all
trees, use it for generating output for the list commands
and generating C++ class/QML/JS type requisite tables.
- Modify the code for \generatelist command to accept
'qmltypesbymodule' and 'jstypesbymodule' as parameters.
- Modify constness of some functions to enable above
changes.
Change-Id: I3dbdadfd224754db4bdc1602a5ffab9d46c51f00
Reviewed-by: Martin Smith <martin.smith@digia.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Replace a lot of c strings with QLatin1String to avoid
utf conversions. Make one constant data structure static to
avoid it being recreated the whole time, and optimize our
tag replacement code.
Change-Id: I6513f3c70781a1bac658cbb3164c45d4cab36f57
Reviewed-by: Martin Smith <martin.smith@digia.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
We get rid of the last usage of QDom and the old
xml parser in our build tools, and it makes parsing
of index files a lot faster.
Change-Id: Iccf01a4a73cc74a77806470fb4c4625f5331a7be
Reviewed-by: Martin Smith <martin.smith@digia.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
An attribute is not allowed twice in XML. So change the
associated-property attribute, so that it contains a list
of associated properties is required instead of listing them
a couple of times.
Change-Id: Ibfb21c1a1de5ed39cda2eb29ac318bdbbf0eab4e
Reviewed-by: Martin Smith <martin.smith@digia.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This avoids a couple of more string/memory
allocations, giving another 5% speed gain
for qdoc --prepare.
Change-Id: I455f615bb4388d883dca5a8cd31bf50629db23e0
Reviewed-by: Martin Smith <martin.smith@digia.com>
|
| |
| |
| |
| |
| | |
Change-Id: I7036ea7ee9e533670ebed425e6c4a8bb0063f751
Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
|
| |
| |
| |
| |
| |
| |
| |
| | |
This cuts away another 15% of the running time of
qdoc -prepare.
Change-Id: I81bc32fa191b73fad5d7bd27ff22ac845f83a9ce
Reviewed-by: Martin Smith <martin.smith@digia.com>
|
| |
| |
| |
| |
| |
| |
| | |
This makes generation of the index files 3 times as fast.
Change-Id: I89af86e54d932fa19330f36a33af6ed9ea81461d
Reviewed-by: Martin Smith <martin.smith@digia.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
The types are either too large or too small for QList, which
only has acceptable performance with movable types of size
= sizeof(void*).
Change-Id: I5a2354e9400baad44095f1eac18d76ef915f6545
Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
|
| |
| |
| |
| |
| |
| |
| | |
They are held in QList or QVector.
Change-Id: Ic0e379560e554e5cd3de4319e402ec1655e77874
Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
|
| |
| |
| |
| |
| |
| |
| | |
This removes the temporary QList allocations.
Change-Id: I1f255e94730202f719e0a97b9ab4a83e28b805c1
Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Prefer -std=gnu++11 unless strict_c++11 is defined. You can enable
strict C++11/C++14 mode by using
CONFIG += strict_c++
That is enabled for Qt's own code, so we we don't accidentally use GNU
extensions in portable code.
There's no support for strict C++98 mode (that is, the -ansi option).
[ChangeLog][qmake] By default, GNU extensions are now enabled with
Clang, GCC and ICC even in C++11 and C++14 modes. To disable the GNU
extensions, add to your .pro file: CONFIG += strict_c++.
Change-Id: Ib056b47dde3341ef9a52ffff13ef14de2169bef5
Reviewed-by: Kai Koehne <kai.koehne@theqtcompany.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
|
|\|
| |
| |
| |
| |
| |
| | |
Conflicts:
src/plugins/platforms/windows/qwindowsopengltester.cpp
Change-Id: Ia7abeba9395ccf84e2fa81b91a5725a86dedb9fe
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Previously, directory nodes in the resource tree generated empty
file names in the --list output. They do not add value.
Change-Id: I04ac495ba5f57802de9796ec663c28facfee89f2
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
Reviewed-by: Simon Warta
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
In the common case, macroExpandIdentifier was called in the
"not a macro" case, and a temporary vector with a single item was
allocated. Now, we catch this common case at the caller site
and put the single item directly into the result set, bypassing
the temporary list.
Change-Id: I71d92afc486ccdaae5930405d028f53f48073b8c
Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Previously, a temporary list was allocated and then fed into the
bigger list of results. Now, we push data into the final list
directly, removing the overhead of the temporary allocation.
Change-Id: I9bea0fd3c23b1434b4be2728c60ac22a66908efc
Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
Reviewed-by: Milian Wolff <milian.wolff@kdab.com>
|
| |
| |
| |
| |
| |
| |
| |
| | |
This allows the compiler to inline the function call into the
std::sort instantiation.
Change-Id: If2b948c1d7202d6a81afd8a58cc9fab50a9709c1
Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This update adds the \noautolist command to qdoc.
This command can be used in the qdoc comment for
a \module or \qmlmodule to tell qdoc not to write
the automatic annotated list of C++ classes or
QML types to the HTML page because the documenter
has listed them manually. The qdoc manual is also
updated to include the \noautolist command.
Change-Id: I2eac5ceebfcd83a41bca7384b3da038fffbe6e66
Task-number: QTBUG-46821
Reviewed-by: Topi Reiniö <topi.reinio@digia.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Previously, this allocated temporary QByteArrays in the frequent
QVector<Symbols>::indexOf calls (macro.arguments.indexOf(s)).
Now, the we reuse the fast SubArray::operator== implementation.
Change-Id: Idbc6e3cf5fd353e8e36d51ba88d31e4c3bfd121d
Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
ParsedParameter is larger than a void*, so holding it in QList
is needlessly inefficient. Worse, the code could come to depend
on the fragile property of (inefficient) QLists that references
to elements therein never are invalidated.
Fix by marking it movable, and holding in a QVector instead.
Change-Id: I5b1bea9ef7b796a790d8e86404531ae19a4aca66
Reviewed-by: Martin Smith <martin.smith@digia.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
A friend operator was declared as a friend in the private part of the
class. qdoc thought this meant the operator should be private and
therefore should not be documented. But the friend operator should be
documented, despite being declared in the private part of the
class. This update changes qdoc so that it always treats a friend as
public.
Change-Id: I7f8bcf0c0fdffd32f67041f7d1a03eefa2a8b924
Task-number: QTBUG-46983
Reviewed-by: Martin Smith <martin.smith@digia.com>
|
| |
| |
| |
| |
| |
| |
| |
| | |
The debug code in puredocparser.cpp and qmlvisitor.cpp was no linger needed.
Change-Id: Idac0b7afe58febb2f89cdce7928b0d806a02d67e
Task-number: QTBUG-46958
Reviewed-by: Martin Smith <martin.smith@digia.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Some functions in qstring.h are marked with both friend and inline,
and qdoc ignores them when it sees the friend keyword. Then, when qdoc
finds the documentation for the functions in the cpp file, it reports
an error that it can't associate the documentation with anything it
saw in a .h file.
This update corrects that problem. It also improves qdoc's parsing of
other inline functions in other files.
Change-Id: If94e403809af3ee3238eac0f2861b027197d6d3c
Task-number: QTBUG-46531
Reviewed-by: Martin Smith <martin.smith@digia.com>
|
| |
| |
| |
| |
| |
| |
| |
| | |
Criteria: Linux x86_64, sizeof(T) > 8
Change-Id: I78c2b776ff219fa1ff6632fde17ae25fae66c54e
Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
|
|\|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Conflicts:
src/corelib/global/qglobal.cpp
src/corelib/global/qglobal.h
src/corelib/global/qsysinfo.h
src/corelib/global/qsystemdetection.h
src/corelib/kernel/qobjectdefs.h
src/plugins/plugins.pro
tests/auto/widgets/itemviews/qlistview/qlistview.pro
Change-Id: Ib55aa79d707c4c1453fb9d697f6cf92211ed665c
|
| |
| |
| |
| |
| |
| | |
Task-number: QTBUG-46374
Change-Id: I7bc633ab551740bd328a24b0ccae1d534af47138
Reviewed-by: Martin Smith <martin.smith@digia.com>
|
| |\
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Conflicts:
src/plugins/platforms/cocoa/qcocoafiledialoghelper.h
Manually fixed src/testlib/qtestcase.cpp to return the right type.
Change-Id: Id1634dbe3d73fefe9431b9f5378846cb187624e4
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
The content written to example manifest files can be extended with
additional metadata in the form of xml attributes. In order to
avoid invalid (duplicated) input from generating malformed xml,
QDoc now keeps track of the attributes and only writes metadata
that hasn't already been written.
Task-number: QTBUG-46692
Change-Id: I645935fa8f32b915b7335c400f5a8f2cf72802b7
Reviewed-by: Martin Smith <martin.smith@digia.com>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
To avoid conflicting anchors within an HTML page, QDoc keeps
the used anchors in a map, and appends 'x' to new anchors if
it was already used. However, this map was never cleared, so
anchors on one page affected the ones generated for another
page.
This commit clears the map for each page when generating the
page header.
Change-Id: Id30baced46917bb4d48cf58dde047f4fbcdf74cf
Task-number: QTBUG-46153
Reviewed-by: Martin Smith <martin.smith@digia.com>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Location is self-referential, so explicitly mark it as Q_COMPLEX_TYPE.
Location::StackEntry is held in QVector, by way of QStack.
Change-Id: I4d9001b55b86f0387ae41b93da17d06fb2857ee4
Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
Reviewed-by: Martin Smith <martin.smith@digia.com>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Location is a self-referential type that is very expensive to copy.
So don't.
Instead, just remember the iterator, and use value()->location()
(which returns a reference, so doesn't copy).
Change-Id: I9a2b72b05b8051e793cf67179a0195f2f3551a10
Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
Reviewed-by: Martin Smith <martin.smith@digia.com>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
QQmlJS::AST::SourceLocation wasn't marked as movable, and it is larger
than void*, so QList<SourceLocation> is horribly inefficient.
Fix by marking as movable primitive and holding in QVector instead.
The same fix probably is required in QtDeclarative, too.
Change-Id: I4e0d2cd32b7e03205d59cbc9900287f77045154a
Reviewed-by: Martin Smith <martin.smith@digia.com>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
QQmlJS::Engine::comments() returns a QList<QQmlJ::AST::SourceLocation> by value.
The QList is horribly inefficient, but that will be topic of a separate patch.
The loop in QmlMarkupVisitor did not store the result of comments() in a local
variable, it called engine->comments() whenever it referenced it, which was
_three_ times per loop iteration. Two of those references applied op[] to
the rvalue engine->comments(), which, being mutable, detaches. _Twice_ per
loop, with a QList that heap-allocates its elements!.
And that was followed by a similar loop.
Fix by using a local const copy of the list to iterate over.
The loop termination condition also looks fishy (j is used to index into
the comments, but is not checked against comments.size()), but apparently
qdoc works fine with it so far, so don't try to fix.
The copy of QQmlJS in QtDeclarative is not affected by this (qdoc-specific
code).
Change-Id: I133c35dc9293609dfb8ad633e2d82399223b508b
Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
This update changes how qdoc handles getter, setter, resetter,
and notifier functions for properties. With this update, if you
provide documentation for any of these functions associated with
a property, links to that function will go to the documentation
for that function, instead of to the associated property.
Additionally, the documentation for the function will have a note
added, e.g. "Note: Notifier signal for property fubar," where the
fubar property name is a link to the documentation for property
fubar.
Change-Id: I1f821fd4a6c2de142da4718ef3bdde314dc59627
Task-number: QTBUG-45620
Reviewed-by: Venugopal Shivashankar <venugopal.shivashankar@digia.com>
Reviewed-by: Topi Reiniö <topi.reinio@digia.com>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
It was harder to fix this tan you might think, but the
fix cleans up the overload mechanism a lot, so if no
regressions are introduced by the fix, the code will
be easier to manage.
The related non-members are now added to the class
node's list of secondary (overload) functions. This
way, they get an overload number just like overloaded
member functions.
Change-Id: I68d7a314b0bb5ec0fbba15dc1fd40a5b870c659d
Task-number: QTBUG-46148
Reviewed-by: Venugopal Shivashankar <venugopal.shivashankar@digia.com>
Reviewed-by: Topi Reiniö <topi.reinio@digia.com>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
qdoc now always tries to use an element's declaration location
for the "location," "filepath," and "lineno" attributes in the
index file, when it makes sense to use the declaration location.
That's pretty much everything in C++.
qdoc records both the declaration location and the definition
location in the element's tree node. When it writes the element
to the index file, it asks for the declaration location.
Change-Id: I2d169a0f028bb0d46717e6f822dacc6dd20673b2
Task-number: QTBUG-46034
Reviewed-by: Venugopal Shivashankar <venugopal.shivashankar@digia.com>
Reviewed-by: Topi Reiniö <topi.reinio@digia.com>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
HtmlGenerator::highlightedCode() contained a potential
out-of-range- memory reference, which is prevented by
this fix.
Change-Id: I3bc87a8287e1d51c2786f5ec42384dbac04c9636
Task-number: QTBUG-45643
Reviewed-by: Martin Smith <martin.smith@digia.com>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Whitespace only.
Change-Id: I6e4b55ad55e22da4150530457202f144fcc7f416
Reviewed-by: Martin Smith <martin.smith@digia.com>
|
|\| |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Conflicts:
src/corelib/global/qnamespace.qdoc
src/corelib/io/qwindowspipereader.cpp
src/corelib/io/qwindowspipereader_p.h
src/corelib/statemachine/qstatemachine.cpp
src/corelib/statemachine/qstatemachine_p.h
src/plugins/platforms/xcb/qxcbconnection.h
tests/auto/network/access/qnetworkreply/tst_qnetworkreply.cpp
tests/auto/tools/qmake/tst_qmake.cpp
tests/manual/touch/main.cpp
Change-Id: I917d694890e79ee3da7d65134b5b085e23e0dd62
|
| |/
| |
| |
| |
| |
| |
| |
| | |
It should also be possible to use QT_STRICT_ITERATORS in Qt's own code base
Change-Id: I0914db480d4d2b06e71e3a2588163efdd3ff6d27
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
When invoking a macro with less argument than it expect, we would
crash trying to access the vector of arguments from the invocation
as we are trying to substitute an argument.
(Note that we do not show an error in case of argument mismatch
because ithat might happen parsing valid code as moc's c++ parser
is not 100% accurate (that was QTBUG-29331))
Task-number: QTBUG-46210
Change-Id: I3f08d7f5049e593a5bdc02a594ea63cadf66e7a4
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@theqtcompany.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
QDoc generates tags for examples based on the example title and the
name of the module. This change makes the following improvements:
- Edit regular expression to match strings like 'OpenGL' and
'Qt3D' as a single tag.
- Strip off enclosing parentheses.
- Filter out common words ('and', 'the')
- When cleaning/modifying generated tags, keep them in a QSet
to eliminate duplicates.
Change-Id: I288104df12bf23a224068d40bce1f980148a412a
Reviewed-by: Martin Smith <martin.smith@digia.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Prior to this, moc would not generate the function unless the
gadget class had a property or a non-constructor invokable.
Change-Id: Ic020ea5f8f59702f5e9e194a46e26850e53e5cfe
Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
An error similar to the one below would be emitted
by the compiler on the moc generated file:
error: assigning to 'QObject *' from incompatible type 'Gadget *'
if (_a[0]) *reinterpret_cast<QObject**>(_a[0]) = _r; } break;
Change-Id: I75ae7bd6c46d20db2d47a80eaa08aae302d7d6c8
Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
In single-exec mode, QDoc must never skip documentation warnings
as there is no subsequent QDoc run to re-execute the same code
paths (in generate phase) that generate warnings.
Change-Id: I8da2f16cfb12b3b3509249d1c9941d63733176a9
Reviewed-by: Martin Smith <martin.smith@digia.com>
|
| |
| |
| |
| |
| |
| |
| |
| | |
Reduce the size of .text section in QtCore by 4.5KB and in QtNetwork
by 26.5KB.
Change-Id: If7998776166b9681c1e4b24c51d40444aa996d7a
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
The \qmlabstract command was missing from the qdoc user manual, and
qdoc was still allowing the \abstract command to be used for marking
up the abstract of a scientific paper. The \abstract command is now
made a synonym of \qmlabstract, and they are both added to the qdoc
user manual.
Change-Id: I003ac50b8dabbf037f18d9ea3e6d88a12d69bf5f
Task-number: QTBUG-46003
Reviewed-by: Venugopal Shivashankar <venugopal.shivashankar@digia.com>
Reviewed-by: Martin Smith <martin.smith@digia.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
The new connection syntax is a bit tricky to use, when the signal or
the slot is overloaded, because one must explicitly cast to the
correct signal type.
This patch adds an example to the documentation of each overloaded
signal. The example shows how to do the cast to the correct signal
type.
Change-Id: Ifc9f28d05c2ae126a674d2ca5887935fc59cd83b
Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
|
|\|
| |
| |
| |
| |
| |
| |
| | |
Conflicts:
src/tools/qdoc/tree.cpp
tests/auto/gui/painting/qcolor/tst_qcolor.cpp
Change-Id: Iaa78f601a63191fa643aabf853520f913f2f0fdc
|