CMake's moc file scanning is rather primitive: It will run moc on any
file containing a line that starts with Q_OBJECT (and similar macros).
We have four files in QtBase that contain such a macro at the start
of the line in a qdoc comment. These four files were excluded from
automatic moc handling by cmake, which is not ideal, since this will
silently fail when somebody actually adds a Q_OBJECT macro in code.
This patch introduces a macro Q_OBJECT for qdoc. This macro will be
replaced with Q_OBJECT in the generated documentation. While not nice,
at least a failure to use \Q_OBJECT is noticeable: Moc will warn about
the file.
Change-Id: I829893c1166eee306fe30058d4ea0256affd45ea
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
Reviewed-by: Paul Wicking <paul.wicking@qt.io>
Versioning of some QML modules follows the Qt major and minor
version exactly. Add a documentation macro that expands to the short
version string to help automate the QML plugin documentation.
Task-number: QTBUG-67818
Change-Id: I45e7a2a1adfd6a82b828222e49b1d02b7c05897e
Reviewed-by: Venugopal Shivashankar <Venugopal.Shivashankar@qt.io>
Add a global QDoc macro \QtMinorVersion that
expands into the minor version of Qt, or more
specifically, the minor version contained in
the QT_VER environment variable.
The main use case for the new macro is to
document the QML modules whose minor versions
track the minor version of Qt:
\qmlmodule QtQuick 2.\QtMinorVersion
Task-number: QTBUG-67818
Change-Id: I2b4fcbb18de0f8f95718099309090017c237622f
Reviewed-by: Martin Smith <martin.smith@qt.io>
The browser backend for offline documentation has fewer capabilities
when it comes to CSS and JavaScript support. These defines allow us
to use \if conditionals when needed:
/*!
\if defined(onlinedocs)
<Content that is rendered in online documentation>
\else
<Fallback for offline docs>
\endif
*/
Change-Id: Ia51acb937754f22f2ece2836b4fb1470bf9ade90
Reviewed-by: Martin Smith <martin.smith@qt.io>
The title of the external page 'Creating a Mobile Application' in the
Qt Creator docs has changed to include a space between 'Qt' and
'Creator'. This caused the filename to change, thus breaking the
incoming links from the Qt for (iOS|Android) Examples pages.
Task-number: QTBUG-69678
Change-Id: I7819a9e2b483bc760af5bb636841bccf0c6cb739
Reviewed-by: Nico Vertriest <nico.vertriest@qt.io>
Specifically, commit e80a3b49c0 introduced
the use of some QT_VERSION_CHECK macros to distinguish some methods'
visibility between Qt 5 and Qt 6, however the QDoc falsehoods variable
(added sometime prior) was sensitive to whitespace, and did not
correctly recognize those version checks. This resulted in some methods
being incorrectly documented as public instead of protected, or vice
versa.
This change simply makes the QT_VERSION_CHECK in QDoc falsehoods allow
for optional whitespace.
Methods affected by this change (in documentation only):
* QListWidget::dropEvent()
* QTableWidget::items(), ::indexFromItem(), itemFromIndex()
* QTreeWidget::items(), ::indexFromItem(), and itemFromIndex()
Task-number: QTBUG-68005
Change-Id: Ibe3e780334a9a915989ed43b5cdda6915c9161ec
Reviewed-by: Luca Beldi <v.ronin@yahoo.it>
Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
Reviewed-by: Paul Wicking <paul.wicking@qt.io>
Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
QDoc links to the homepage in the navigation bar; use
index.html for linking instead of "Qt $QT_VER" to prevent
incorrect links to section titles that clash with that
string.
Task-number: QTBUG-62484
Change-Id: I53ced31b7ce35d69579a8c70cbc475e306fd3b18
Reviewed-by: Martin Smith <martin.smith@qt.io>
__cplusplus was removed from the list of defines passed to
qdoc because it should not be there for clang-qdoc.
Change-Id: I32802e68d915f7a5b717f16ba26a1cd57d7ff645
Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
We do add, remove or update third party code in minor releases,
sometimes even in patch level releases. However, the documentation is
supposed to be valid for all existing Qt 5 versions, but doing this for
attributions would require infrastructure we don't have.
Therefore rather make it explicit which Qt version the attributions
apply to. Also mention since when Qt is available under LGPLv3
(starting with Qt 5.4).
Task-number: QTBUG-65665
Change-Id: I328b5bf0c143f78ea61aad51f0644c3cbb6dee49
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
Each module now maintain the list of examples to highlight separately.
Change-Id: Ib9bca8d945bb3e81d4176cbbebcb89b1309dc0d4
Reviewed-by: Nico Vertriest <nico.vertriest@qt.io>
The highlighted examples list for QQC2 is maintained separately.
Task-number: QTBUG-60647
Change-Id: Ib64ff7a44c6fcaf99058422d76ef6680df310911
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
Reviewed-by: J-P Nurmi <jpnurmi@qt.io>
Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io>
Conflicts:
examples/examples.pro
qmake/library/qmakebuiltins.cpp
src/corelib/global/qglobal.cpp
Re-apply b525ec2 to qrandom.cpp(code movement in 030782e)
src/corelib/global/qnamespace.qdoc
src/corelib/global/qrandom.cpp
src/gui/kernel/qwindow.cpp
Re-apply a3d59c7 to QWindowPrivate::setVisible() (code movement in d7a9e08)
src/network/ssl/qsslkey_openssl.cpp
src/plugins/platforms/android/androidjniinput.cpp
src/plugins/platforms/xcb/qxcbconnection.cpp
src/plugins/platforms/xcb/qxcbconnection_xi2.cpp
src/widgets/widgets/qmenu.cpp
tests/auto/widgets/kernel/qwidget_window/tst_qwidget_window.cpp
Change-Id: If7ab427804408877a93cbe02079fca58e568bfd3
If the style changes after the browser already jumped to an anchor,
the resulting browser position will be messed up.
So, after we changed the style we need to make sure that we jump
to the anchor again.
Since browsers do not jump to anchors that they already jumped to,
that means first jumping to the top, then to the actual anchor.
Task-number: QTCREATORBUG-18448
Change-Id: I86c736adab6940903276f8a896b4054ddae11ebe
Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
Add CSS rules for grouped function documentation; that is, multiple
function signatures sharing the same documentation body.
Change-Id: I28de3805a8f5f972a59f6ea4ae32262ac36b69a6
Reviewed-by: Martin Smith <martin.smith@qt.io>
We're only supporting builds with MinGW-w64 these days.
Change-Id: I1198551ba85132c3f0f81e32f11aa149126ca61f
Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
When the switching to the non-simple offline style is done after
document load, the navigation to anchors completely breaks. So, do
the switch without the additional delay.
Task-number: QTCREATORBUG-18448
Change-Id: I5abbc3bbe1c743d2a5e493bb9e0916c5d092942a
Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
QX11Info class from the Qt X11 Extras module is documented in
qx11info_x11.cpp, and it needs to be parsed.
Change-Id: I32e8415d93e67dbf16267d4af63979c1db0870b0
Reviewed-by: Andy Shaw <andy.shaw@qt.io>
- Qt Bluetooth: Bluetooth Low Energy Heart Rate Game
- Qt Charts: Chart Themes Example
- Qt Data Visualization: Bars Example
- Qt Data Visualization: Surface Example
Task-number: QTBUG-53728
Change-Id: I960532deedc7e24dc5cd3e452ab1908b367e6d8e
Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io>
Reviewed-by: Venugopal Shivashankar <Venugopal.Shivashankar@qt.io>
Only example app that demonstrates the use of Qt for a wearable device.
Change-Id: I7656f809b0219e9a2c8cd61985445ecff8b2c174
Reviewed-by: J-P Nurmi <jpnurmi@qt.io>
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
This enables a number of functions declared in the qalgorithms.h to be
successfully documented.
Change-Id: I20c5827bb8f9e2ada98fd368b7827c5b156a518e
Reviewed-by: Martin Smith <martin.smith@qt.io>
This was dropped by commit 740ff1b8 in preparation for clang-based
C++ parser in qdoc. However, the old (current) parser still needs it,
as some of the functions to document are wrapped with those macros.
It does not interfere with the clang parser anyway; unlike the old
parser, clang will not resolve the wildcards in macros.
Change-Id: I3135a263e8eb200a11b1e918c776e3a2c3ec5fb6
Reviewed-by: Martin Smith <martin.smith@qt.io>
Some of the public APIs are still documented in private (_p.cpp)
source files. Let qdoc parse them.
Change-Id: I29ad87c21d663504f2b947d8b9ed76609c7946f3
Reviewed-by: Martin Smith <martin.smith@qt.io>
Since commit bf2160e72c, we can rely on
charNN_t support in all compilers except MSVC 2013, and since that
commit, we use (in 5.10, not 5.9, yet)
!defined(Q_OS_WIN) || defined(Q_COMPILER_UNICODE_STRINGS)
when we only need charNN_t, the type, as opposed to its library
support (u16string, char_traits<char16_t>, ...).
This patch splits the Q_C_UNICODE_STRINGS macro into two, adding
Q_STDLIB_UNICODE_STRINGS for when we need std::uNNstring, leaving
Q_C_UNICODE_STRINGS for when we need just charNN_t support.
In QDebug, when constructing a QChar out of a char16_t, cast to ushort
first, since QChar(char16_t) was only officially introduced in Qt 5.10.
[ChangeLog][Potentially Source-Incompatible Changes] The internal
Q_COMPILER_UNICODE_STRINGS macro is now defined if the compiler
supports charNN_t, even if the standard library does not. To check for
availability of std::uNNstring, use the new Q_STDLIB_UNICODE_STRINGS
macro.
Change-Id: I8f210fd7f1799fe21faf54506475a759b1f76a59
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Later, the Windows XP style will be removed entirely by means of
being merged with the Windows Vista style (which inherits from the
XP style).
There was actually no reason for these styles being separate
classes in the first place, because both result in the same
appearance for controls on the running version of Windows.
Therefore, the windowsxp style merely appears as a "broken"
version of the windowsvista style, with only minor differences
based on the additional metrics that the vista style provides.
The windowsxp style does NOT, and never did, allow users to get
a Windows XP style appearance on Windows 7 and above (which is
currently Qt's minimum supported platform). Therefore, now that
Qt no longer supports Windows XP, the windowsxp style is unusable.
[ChangeLog][QtWidgets] The windowsxp style is no longer available
as a separate style, because it did not (and cannot) actually
provide an XP-style appearance on currently supported Qt platforms.
Change-Id: I513d9bce3f247f97cfb28dfee88fe888469e0a6f
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@qt.io>
qtquickcontrols2-customize.qdoc:28: warning: Can't link to 'Creating C++ Classes'
Change-Id: I7e8e84d7a0d03a84f32d860bc646640e5cf6258f
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
QSysInfo has a customized deprecation directive that QDoc needs to
ignore to generate documentation for the deprecated functionality.
Change-Id: I1c378f14a2f842f1e9a55614d43fe509bb77fd89
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
This macro adds a \youtube <ID> command that embeds a YouTube link
into the documentation.
The video container scales to a specified percentage of the available
horizontal area. It assumes a source aspect ratio of 16:9, but looks
acceptable with other ratios.
For backends that do not support <iframe> (e.g. QTextBrowser), shows
a clickable video thumbnail that open the YouTube link in an external
browser window. Unfortunately, QTextBrowser cannot load images from
a remote URL, so we need to store a thumbnail image in the .qch file.
Change-Id: I3a3a0c5a20dd90e5cec6357ba70a23ee47dbe825
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
Reviewed-by: Venugopal Shivashankar <Venugopal.Shivashankar@qt.io>
QDoc supports the --showinternal command line option, but it's
not integrated to the build system.
This commit documents an alternative way to get documentation marked as
internal generated, replacing every instance of \internal with a text
string '[internal]'
Change-Id: Ib48ade21adf32d430e62b95c4baa64be620d7eb0
Reviewed-by: Andy Shaw <andy.shaw@qt.io>
Reviewed-by: Venugopal Shivashankar <Venugopal.Shivashankar@qt.io>
Reviewed-by: Martin Smith <martin.smith@qt.io>
QDoc reports warnings for every QML code snippet that's not a
complete QML type declaration - ignore these warnings because
in majority of the cases, they're not indicative of any actual
problems in the code.
Change-Id: I53d13e2ae683ca8c5473f68eda17c61199de1ff8
Reviewed-by: Venugopal Shivashankar <Venugopal.Shivashankar@qt.io>
Also add a basic test for constexpr expressions involving QSizePolicy.
GCC < 4.8.0 has problems with initializing variant members in constexpr ctors:
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=54922
Instead of revoking its Q_COMPILER_CONSTEXPR, which is a source-incompatible
change, simply note the fact so we can selectively provide constexpr for
QSizePolicy.
Change-Id: Iba8e5a7cdf847d73e8e2b6bb6211fb3c9846aa0a
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>