Create macros that wrap the magic developed in
7d63efc16f and apply it to all
Q_DECLARE_METATYPE invocations that show up in Clang -ftime-trace for
a PCH'ed QtGui build.
Effects on compile times:
Clang 10 -ftme-trace:
$ ClangBuildAnalyzer --analyze qtgui-before.trace | head -n6
Analyzing build trace from 'qtgui-before.trace'...
**** Time summary:
Compilation (523 times):
Parsing (frontend): 628.3 s
Codegen & opts (backend): 304.5 s
$ ClangBuildAnalyzer --analyze qtgui-after.trace | head -n6
Analyzing build trace from 'qtgui-after.trace'...
**** Time summary:
Compilation (523 times):
Parsing (frontend): 546.0 s
Codegen & opts (backend): 304.4 s
GCC 11 time (bash builtin):
before:
$ time for ((i=0; i < 3; ++i)) do touch src/gui/painting/qpolygon.h ; ninja libQt6Gui.so; done
real 4m13,539s
user 49m24,416s
sys 3m18,177s
after:
$ time for ((i=0; i < 3; ++i)) do touch src/gui/painting/qpolygon.h ; ninja libQt6Gui.so; done
real 3m55,697s
user 45m19,941s
sys 3m7,370s
Task-number: QTBUG-97601
Pick-to: 6.3
Change-Id: Ia8e37a58937568a7ed21cfeb4b27274deca4d53b
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
Sync with Qt Creator Manual 6.0.0.
Remove topics related to using Qt Quick Designer plugin
because they are now in the Qt Design Studio Manual, only.
Add new topics and fix some topic titles.
Some topics also exist in Qt Design Studio Manual and can
be accessed with the "Qt Design Studio:" prefix.
Pick-to: 5.15 6.2
Change-Id: Ie4f07b0a1602f3318ca5335ee72130ddce12801e
Reviewed-by: Venugopal Shivashankar <Venugopal.Shivashankar@qt.io>
You can use these link targets in Qt docs to refer to
QDS topics.
Pick-to: 6.2
Change-Id: I4d4e288e1456ef92c5e8d9949390a431220eab75
Reviewed-by: Venugopal Shivashankar <Venugopal.Shivashankar@qt.io>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Last pieces of code guarded by these defined were cleaned up back in 2016.
Task-number: QTBUG-98650
Change-Id: I52d971c2b476b7d8d362be7807b71b71e657c70b
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
QDoc does not need those defines anymore because there is no Qt3Support
library anymore; they are simply not #ifdef guarding any code anymore.
Task-number: QTBUG-98650
Change-Id: I42b9c3ce025f639ce6282102b5eadb52fea7fa8e
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
Like Q_NAMESPACE_EXPORT for Q_NAMESPACE, this variant of Q_GADGET
allows passing an export macro. This is useful to avoid exporting the
whole class just to get the staticMetaObject hidden therein exported.
Before anyone asks: No, we don't need Q_OBJECT_EXPORT, because QObject
subclasses, being polymorphic, always need to have a class-level
export macro (to export their vtable), but while that technique also
works for value classes (the Q_GADGET audience), it is not desirable
for them, because it makes inline functions exported in Windows debug
builds, which is not what we want, because it needlessly restricts
what you can to with the inline functions (e.g. remove).
[ChangeLog][QtCore] Added the Q_GADGET_EXPORT macro, which is like
Q_GADGET, but allows passing an export macro (like Q_NAMESPACE_EXPORT
for Q_NAMESPACE).
Fixes: QTBUG-55458
Change-Id: I546297de1e8aa45d83381991bcd3fbca61e1eef0
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
This macro expands to the major version of Qt, complementing the
already existing \QtMinorVersion macro.
Pick-to: 6.2 5.15
Change-Id: I64861f8cc50d73f34369311a19b5e554645a4127
Reviewed-by: Paul Wicking <paul.wicking@qt.io>
The offline CSS already had some related rules, but at some point
QDoc lost the ability to produce the required markup. It has now
been reintroduced.
Pick-to: 6.2 5.15
Task-number: QTBUG-97448
Change-Id: I5165cd01f3653dfb35854ca6b8040e8daa434347
Reviewed-by: Paul Wicking <paul.wicking@qt.io>
The macro takes only one parameter, sentences must be wrapped in {}.
Pick-to: 6.2
Fixes: QTBUG-97441
Change-Id: I7177548a32a67d720c2b551d16c09d898b0fda51
Reviewed-by: Paul Wicking <paul.wicking@qt.io>
For normal \page elements, \brief is just showing in the
\generatelist or \annotatedlist commands. Make sure the description
is also visible in the actual CMake command/variable/property
page by defining a \summary macro.
Pick-to: 6.2
Change-Id: I12bc854d547059a2f6309a5922bb0b2a36d4e41c
Reviewed-by: Craig Scott <craig.scott@qt.io>
Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
The documentation links on `msdn.microsoft.com` now redirect to
`docs.microsoft.com`.
While the redirection works, our script to catch broken links on
dev-snapshots builds of the documentation doesn't handle redirection
correctly, reporting it as broken.
Both to appease the broken-links script and to avoid an unneccesary
redirection, the links were modified to point to the equivalent address
in the new domain.
Furthermore, the link to the `Winsock 2 Socket Handle` was moved to be
an `\externalpage` link, as it was used in two different places.
Additionally, the `\externalpage` link titled `Dirext X SDK` was removed
as it was not used in any part of the documentation.
Task-number: QTBUG-96127
Pick-to: 6.2 6.2.0
Change-Id: I07f0ae8d610a7f8322b892a2fa37a5cc1769289e
Reviewed-by: Paul Wicking <paul.wicking@qt.io>
In the effort of repairing broken links as per QTBUG-96127,
a series of RFC links referring to `tools.ietf.org/html/*` were modified
to point to the new address that the site redirected to.
To simplify executing a similar task and to diminish the duplication of
manually inserted urls, the already existing `rfc.qdoc` file, containing
`\externalpage` commands directing to RFC locations, was enhanced with
links to all RFCs that were mentioned in the current documentation, so
as to aggregate this common category of links.
All links pointing to a `ietf` domain inside QDoc documentation blocks
were then changed to use the newly provided external-references.
Task-number: QTBUG-96127
Pick-to: 6.2
Change-Id: I2a52eb6aa8c9e346f64ef1a627b039220d9f6c2a
Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
The link was replaced with an equivalent one from the Internet Archive's
Wayback Machine, as it is the one used in
RFC-6265 (https://datatracker.ietf.org/doc/html/rfc6265#ref-Netscape) to
deliver the same information.
Task-number: QTBUG-96127
Pick-to: 6.2
Change-Id: I3d8b7ac511e040c1b4651b59ddedfa580c45ce90
Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
The `rfc.qdoc` file was modified to order the external RFC link by RFC
number.
Furthermore, the links were modified to use the `datatracker.ietf.org`
domain to be consistent with the recent changes to the old
`tools.ietf.org` links.
Task-number: QTBUG-96127
Pick-to: 6.2
Change-Id: I865e7ea131264d0b123f34d796b7ec8007931adc
Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
The documentation links on `msdn.microsoft.com` and
`msdn2.microsoft.com` now redirect to `docs.microsoft.com`.
Some of the links in the documentation were to those domains.
In particular:
- An `\externalpage` link to the `Mitigating Cross-site Scripting With
HTTP-only Cookies` article.
- An `\externalpage` link to `Microsoft Actibe Accessibility Event
Constants`
- A link to the `RtlGetVersion` function in
`qoperatingsystemversion.cpp`
- A link to the `GetCommandLine` function in `qcoreapplication.cpp`
- A link to the `KNOWNFOLDERID` constant in `qfiledialog.cpp`
While the redirection works, our script to catch broken links on
dev-snapshots builds of the documentation doesn't handle redirection
correctly, reporting it as broken.
Both to appease the broken-links script and to avoid an unneccesary
redirection, the above links were modified to
point to the equivalent address in the new domain.
Task-number: QTBUG-96127
Pick-to: 6.2
Change-Id: I0e9a132f06af7fc43bca6c8ad2054feb6e3e27cd
Reviewed-by: Paul Wicking <paul.wicking@qt.io>
QDesktopServices::openUrl(const QUrl &url) is already implemented
on Android. But even if it is possible to set an URL handler, the
mechanism to invoke it is missing. With this commit the URL handler
will work on Android like it is already working on iOS.
Task-number: QTBUG-84382
Pick-to: 6.2
Change-Id: Ic560bd380f1cc59586861aa1a6a3ea064276a39e
Reviewed-by: Assam Boudjelthia <assam.boudjelthia@qt.io>
When documenting a CMake command, document the unversioned command
'qt_foo' and use '\versionlessCMakeCommandNote qt6_foo' to refer to the
versioned command. This avoids duplicating the command signature.
Use the new macro where applicable.
Pick-to: 6.2
Task-number: QTBUG-95796
Change-Id: I2e4180fbda0b89acf3d8c036459f591eb2f46475
Reviewed-by: Craig Scott <craig.scott@qt.io>
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* Change all outbound links in user-facing documentation.
* Reflow lines that exceed 100 cols as mandated by clang-format.
* Add unicode.org as a global \externalsite.
Pick-to: 6.2 6.1 5.15
Change-Id: I2ba1e434aa913e678406d62c2801f1a8b2d9e4f4
Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
Certain targets on the generated HTML still use the obsolete
<a name=""> method of creating an anchor. Add a rule for a
replacement <span> element, using the id attribute.
This ensures that the highlighting animations continue to work
after the use of obsolete HTML is dropped from QDoc.
Change-Id: I2b70470b08d0e0f70702ad2820f4e065f2c08ff5
Reviewed-by: Paul Wicking <paul.wicking@qt.io>
The vspan was originally added for iframes. They are not needed
(and look weird) for normal images/links.
Pick-to: 6.1
Fixes: QTBUG-92266
Change-Id: I9da2b52234b2e49bc0cdef4bf8f0865fb092bb31
Reviewed-by: Paul Wicking <paul.wicking@qt.io>
Using a dark theme with the simplified offline style in Qt Assistant
results in hard to see links against a dark background. Let the
backend style the hyperlinks instead.
Pick-to: 6.1 6.0 5.15
Fixes: QTBUG-32778
Change-Id: I51ca87f8a526a07a385e42a3c978712ac4d1e91b
Reviewed-by: Paul Wicking <paul.wicking@qt.io>
- Add links to new topics
- Remove links to obsolete topics
- Update changed topic titles (might break links in module docs)
- Fix HTML file name of the Creating a Mobile Application topic
Change-Id: I8f06171946d85ed0fbfd457ed115f41cb5a9e2d0
Reviewed-by: Nico Vertriest <nico.vertriest@qt.io>
Reviewed-by: Paul Wicking <paul.wicking@qt.io>
There are still other parts of the CMake API that are not yet
documented. This change only addresses qt_add_executable() and the
Android-related commands it uses.
Fixes: QTBUG-88839
Task-number: QTBUG-84482
Pick-to: 6.0
Change-Id: I761b5ce908d1f62284baabe2d414cd37a0efe83d
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io>
Reviewed-by: Assam Boudjelthia <assam.boudjelthia@qt.io>
Use list-style-type correctly and replace background-image with
::before content for external link icons.
Pick-to: 6.0
Fixes: QTBUG-89470
Fixes: QTBUG-89471
Change-Id: Ib11a45baf5e92565b22e21f3bd1a929cbbbef608
Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io>
C++ comment was terminated by "/" instead of "*/"
Task-number: QTBUG-88533
Pick-to: 6.0
Change-Id: I560b69602856009509781e56df36fee5879a297f
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
The old link zstd.net is not working any more. Zstandard is now at
http://facebook.github.io/zstd/. To ease maintenance in the future,
those links now point to "Zstandard Site" which is maintained in
external-resources.qdoc.
Task-number: QTBUG-88533
Pick-to: 6.0
Change-Id: Ic8f067fd5d7ce1a088d0272797fca98fd506a26e
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Unlike the QTextBrowser backend, litehtml does not render elements
inside <iframe> correctly. This prevented external links to
YouTube from working in offline documentation.
Move the <iframe> to a macro override specific to online doc builds.
Pick-to: 6.0 6.0.0
Fixes: QTBUG-88975
Change-Id: Iff7828ddeed353620eaa9ac669a3e0c03749daa2
Reviewed-by: Paul Wicking <paul.wicking@qt.io>
The example won't show up in Qt Creator's Welcome mode without either
an \image or a generic thumbnail. Add the latter for now.
Pick-to: 6.0
Fixes: QTBUG-88970
Change-Id: Id5ec236ef4760e678921bc2a90608d66ac35394d
Reviewed-by: Paul Wicking <paul.wicking@qt.io>
We don't use it yet in qtbase, but will need it in various other sub-modules,
so it's arguably better to maintain it here.
Change-Id: I5c10c9b34cafd435251918280ad0405189900337
Reviewed-by: Paul Wicking <paul.wicking@qt.io>
* Rearrange the documention to match the enumeration order.
Fixes: QTBUG-87037
Change-Id: Iad001351e0f309e694b8bbd503813017e6586a21
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
Reviewed-by: Alex Blasche <alexander.blasche@qt.io>
It was way too small, and should match the margins
for other content such as paragraphs, so that an
inline table in between two paragraphs has a balanced
spacing.
Change-Id: I2adb434ac7773e9796199f40d5318368ca380aca
Reviewed-by: Paul Wicking <paul.wicking@qt.io>
Qt for Python can be linked with \externalpage QDoc command
Task-number: QTBUG-87158
Change-Id: I68acc028f89af09cbd069e098a0fbbfa72234cdc
Reviewed-by: Venugopal Shivashankar <Venugopal.Shivashankar@qt.io>
Link to the website with the QDoc \l command
Task-number: QTBUG-87158
Change-Id: I1ae93f4ecf917dbb06e4ebd1eb1ca1b8fe31562b
Reviewed-by: Venugopal Shivashankar <Venugopal.Shivashankar@qt.io>
Enables linking to them using QDoc \l command
Task-number: QTBUG-85517
Change-Id: I23073a5c7b2f06a8ecf66116c538dcd3fff08f61
Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io>
These were now always defined, hence redundant.
Leave the #define in place so that we can verify we actually do always
define it, in a #else of an existing #if check on it.
Change-Id: Iea4c3dbc8f9982268bcf81da5ef17fe2ebf5c462
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Drop deprecation warnings for now-dropped items
* Use the 'qt6' define and a new \nothing doc macro to conditionally
document items on Qt 6
* Add a custom module header for docs that pulls in also Vulkan headers
* Add \internal command for internal classes/functions
* Move QtGUI-related code snippets from widgets to gui docs
Change-Id: Ieb386b96631a49568d09059906d307c45c01d93a
Reviewed-by: Paul Wicking <paul.wicking@qt.io>