Commit Graph

660 Commits

Author SHA1 Message Date
Assam Boudjelthia
c290e742c6 Fix qt android notifier example name for qtdoc
Rename from QtAndroidExtras/Qt Notifier to QtCore/Qt Android Notifier.

Task-number: QTBUG-110230
Change-Id: I18ad45ce85b57977f32af5fc735119df88f93144
Reviewed-by: Ville Voutilainen <ville.voutilainen@qt.io>
2023-01-20 16:11:30 +00:00
Ville Voutilainen
fee977b18b Remove android tag from QtOpenGL examples
Task-number: QTBUG-110230
Change-Id: I6997c1c0eb91f4ee6ff9e9579a742c6617310267
Reviewed-by: Assam Boudjelthia <assam.boudjelthia@qt.io>
2023-01-20 06:42:45 +00:00
Ville Voutilainen
e8626fb1fa Remove android tag from Widgets examples
Task-number: QTBUG-110230
Change-Id: Ic03fcafcf6a9beea3e8c847ede8eaff924b8788b
Reviewed-by: Assam Boudjelthia <assam.boudjelthia@qt.io>
2023-01-20 06:42:32 +00:00
Ville Voutilainen
c5bd2b6c12 Remove android tag from QuickControls1 examples
Task-number: QTBUG-110230
Change-Id: Ib97ce416c56de7dcb3a47013c539845bd9206f7a
Reviewed-by: Assam Boudjelthia <assam.boudjelthia@qt.io>
2023-01-20 06:42:17 +00:00
Venugopal Shivashankar
725b641d87 Doc: Add margins to all anchors in a translated page
Google translate drops the space around the non-translatable
inline text. This should ensure that inline anchors have extra
margins.

Change-Id: I1c204a9a27d0a39256ef04aa3f03ba1b8433aa54
Done-with: Topi Reinio <topi.reinio@qt.io>
Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
2022-12-12 14:14:22 +00:00
Kai Köhne
486c8aae62 Doc: Change links from froglogic to qt domain
Pick-to: 5.15 6.2 6.4
Change-Id: Ic249f8dfa168948eddc83f35314708ffb40e75b1
Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io>
2022-12-09 11:40:49 +01:00
Eike Ziller
436467134e Doc: Add a dark offline CSS
Which can be used by Qt Creator and Assistant.

Task-number: QTBUG-97125
Task-number: QTCREATORBUG-26557
Change-Id: I03e5ac0a15f84101c73887724693e9eb27670754
Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
Reviewed-by: Jarek Kobus <jaroslaw.kobus@qt.io>
2022-11-11 18:48:50 +02:00
Thibaut Cuvelier
dd1b21dbf3 Adapt qdoc macros and documentation for DocBook
Change-Id: I91e380e7670964937d90e478029f367177bf339b
Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
2022-11-04 18:39:03 +01:00
Kai Köhne
b77da049bc Move i18n example to qttools
Move i18n example out of qtbase. In qttools, it can use lrelease,
avoiding the need to store .qm files in the repository.

Change-Id: I8ba36a1372c2a743b809e3f7ea95a67825558f41
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
2022-11-01 15:52:12 +01:00
Laszlo Papp
faeeb42b85 Add a shortcut editor example
Many applications offer shortcuts for quick interaction with the
application. It is also common in such applications to offer a shortcut
editor in the preferences or separately in a dialog.

However, even though this is a fairly common use case for applications
with more than a couple of shortcuts, there is no good and comprehensive
official Qt example how this could be achieved.

This change is an attempt to bridge the gap.

Change-Id: Ic01a404e6157bda1b0a75a0b792cbfe5d910d48f
Reviewed-by: Paul Wicking <paul.wicking@qt.io>
2022-10-25 14:38:46 +01:00
Thibaut Cuvelier
fd28c97075 qdoc: improve \youtube documentation for DocBook images
The same kind of line is required for DocBook as HTML or QHP. This
change makes that requirement clear.

It was suggested by Nicholas Bennett in a change in existing
configuration for this exact line.

Change-Id: I664300f229bac9931c6f1ac4a08bd7c8c42bf37c
Reviewed-by: Nicholas Bennett <nicholas.bennett@qt.io>
2022-10-05 18:14:09 +00:00
Bartlomiej Moskal
7ae9632929 Examples doc: Tags fix for QtQuick examples
Four examples in QtQuick module had wrong tag in qdocconf file:
-QQuickRenderControl D3D11 Example
-Scene Graph - Direct3D 11 Under QML
-Scene Graph - Metal Texture Import
-Scene Graph - Metal Under QML

The first two are specific to Windows. The other two are IOS specific.
They were all marked as "android".
This commit changed those tags to correct one.

Pick-to: 6.4 6.4.0 6.3
Fixes: QTBUG-106436
Fixes: QTBUG-106438
Fixes: QTBUG-106439
Fixes: QTBUG-106469
Change-Id: I3d8d3cb54e4e552d7574c7c2f1d59437374c6446
Reviewed-by: Nicholas Bennett <nicholas.bennett@qt.io>
2022-09-19 11:25:36 +00:00
Alexandru Croitor
3eb2918f2e CMake: Add reference documentation for QT_IOS_LAUNCH_SCREEN
Amends 578f4ba00c

Pick-to: 6.4
Task-number: QTBUG-104519
Change-Id: I02ea0694ead0e5b8c7a70a09cc14b51d8e374dd5
Reviewed-by: Jörg Bornemann <joerg.bornemann@qt.io>
2022-09-02 17:00:23 +02:00
Mitch Curtis
2d7b67d491 Doc: fix example repo URL
qtquickcontrols2 was merged into qtdeclarative in Qt 6.2.

Fixes: QTBUG-105004
Pick-to: 6.2 6.3 6.4
Change-Id: Icbec8a74f1269b270be42b6a93930fb28d64af37
Reviewed-by: Paul Wicking <paul.wicking@qt.io>
Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
2022-09-01 12:23:55 +08:00
Lucie Gérard
32df595275 Change the license of all CMakeLists.txt and *.cmake files to BSD
Task-number: QTBUG-105718
Change-Id: I5d3ef70a31235868b9be6cb479b7621bf2a8ba39
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Jörg Bornemann <joerg.bornemann@qt.io>
2022-08-23 23:58:42 +02:00
Lucie Gérard
fb1b20eab3 Add license headers to cmake files
CMakeLists.txt and .cmake files of significant size
(more than 2 lines according to our check in tst_license.pl)
now have the copyright and license header.

Existing copyright statements remain intact

Task-number: QTBUG-88621
Change-Id: I3b98cdc55ead806ec81ce09af9271f9b95af97fa
Reviewed-by: Jörg Bornemann <joerg.bornemann@qt.io>
2022-08-03 17:14:55 +02:00
Sona Kurazyan
90f3e1d349 Move the docs for porting to QRegularExpression to a common place
Copy them from QRegExp docs in qt5compat to
doc/global/includes/corelib/port-from-qregexp.qdocinc, so that the
porting docs can be included from both Qt 6 porting guide and qt5compat.

Task-number: QTBUG-89702
Pick-to: 6.4 6.3 6.2
Change-Id: I616e2333f60f36e4851398479939fd062016748d
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
2022-07-20 13:15:59 +02:00
Kai Köhne
440f91bd0d Clean up qt-cpp-defines.qdocconf
Cpp.ignoretokens, Cpp.ignoredirectives, falsehoods are not
used anymore by clang based qdoc.

Most defines are not needed, either, because clang based qdoc
will get these defined by scanning the normal headers. And QDOC,
Q_CLANG_QDOC is actually set by qdoc itself.

What's left is Q_GUI_LIB, Q_WIDGETS_LIB, which is used in headers
modules to make some API conditionally available. Finally, there's
QT_KEYPAD_NAVIGATION, which seems to be a Qt 3 thing, but still
some documentation depending on it ;)

Pick-to: 6.4
Change-Id: Ib9cf0debac8d569cc21271087168a46c0f8635ca
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Paul Wicking <paul.wicking@qt.io>
2022-07-20 13:15:56 +02:00
Kai Köhne
f71aeea932 Doc: Hide weak overload template magic from documentation
Hide the 'template magic' to implement Q_WEAK_OVERLOAD from the
documentation. So far Q_WEAK_OVERLOAD void foo() lead to

  template <typename> void foo()

in the generated documentation, which is arguably confusing to the
uninitiated. And people interested in implementation details & exact
overload resolution will arguably just read the .h files themselves.

Fixes: QTBUG-104851
Pick-to: 6.4 6.3 6.2 5.15
Change-Id: I5e0b1b337b28e621e6a627241aa8037da0a879a7
Reviewed-by: Marc Mutz <marc.mutz@qt.io>
2022-07-13 10:51:59 +00:00
Topi Reinio
0c82d6a75a Doc: Fix online macros for commercial template
qt-module-defaults-online.qdocconf includes online-specific overrides
for some of the documentation macros. This needs to happen also in
the commercial template to have equivalent behavior.

Pick-to: 6.4 6.3
Change-Id: I2ca3246fbf16cef502e8eada056df6e8db573d5d
Reviewed-by: Nicholas Bennett <nicholas.bennett@qt.io>
2022-06-21 22:08:34 +00:00
Kai Köhne
9d2cc4dd76 Fix typos in docs and comments
Found by codespell

Pick-to: 6.4
Change-Id: Ie3e301a23830c773a2e9aff487c702a223d246eb
Reviewed-by: Nicholas Bennett <nicholas.bennett@qt.io>
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
2022-06-15 21:31:02 +02:00
Topi Reinio
11ccd2a68e Doc: Fix typo in the online documentation template
Pick-to: 5.15 6.2 6.3
Change-Id: I15e6db96722f5139f35dcffe70f796c4d7c17327
Reviewed-by: Venugopal Shivashankar <Venugopal.Shivashankar@qt.io>
2022-05-31 10:41:36 +02:00
Topi Reinio
7ecbac21ff Doc: Link to page documenting Qt trademarks in the copyright footer
Use an unversioned link to the online documentation, ensuring we
link to the latest version of this page.

Pick-to: 6.3 6.2 5.15
Task-number: QTBUG-102787
Change-Id: I285356687a3873fb861a54d003185f2b751c1b72
Reviewed-by: Kai Koehne <kai.koehne@qt.io>
2022-05-30 21:33:07 +02:00
Lucie Gérard
05fc3aef53 Use SPDX license identifiers
Replace the current license disclaimer in files by
a SPDX-License-Identifier.
Files that have to be modified by hand are modified.
License files are organized under LICENSES directory.

Task-number: QTBUG-67283
Change-Id: Id880c92784c40f3bbde861c0d93f58151c18b9f1
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
Reviewed-by: Jörg Bornemann <joerg.bornemann@qt.io>
2022-05-16 16:37:38 +02:00
Andreas Eliasson
1ae30395f3 Doc: Fix syntax in \tab macro example
Pick-to: 6.3
Change-Id: I490ecc3a810b911f9e6b242fc01f5a03800e9bc9
Reviewed-by: Venugopal Shivashankar <Venugopal.Shivashankar@qt.io>
2022-05-09 19:12:14 +02:00
Andreas Eliasson
0e087c9612 Doc: Fix padding inside tab content
The previously defined padding for the tab content was
overwritten to 0 by a more specific css selector. In addition,
code snippets should not have any extra padding, hence the :not(.pre)
css selector.

Pick-to: 6.3
Change-Id: I8f331924c5d01c8971660bb7a5b3aad25e3dee8a
Reviewed-by: Venugopal Shivashankar <Venugopal.Shivashankar@qt.io>
2022-05-09 17:12:14 +00:00
Kai Köhne
b8b3a8047f Fix alignment of next/prev links in offline style
With the old value, they were placed above the
header bar. Moving them a few pixels below looks
less broken.

Pick-to: 6.2 6.3 5.15
Change-Id: Iddd9d5e0b5c199fe35a9c8b8a7cac9a472901a21
Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
2022-05-06 00:55:34 +00:00
Venugopal Shivashankar
242633430b Doc: Fix typo in the HTML tabs config
Pick-to: 6.2 6.3
Change-Id: I00fad2e1e686f977bd508109c1a6a5d064d7a3d6
Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
2022-04-25 10:07:05 +02:00
Giuseppe D'Angelo
e996253774 Add a marker for post-C++17 APIs in exported classes
MSVC will export any function in an exported class, including inline
ones. Conversely: client code calling inline functions in imported
classes will end up simply calling the symbol of the function, even if
the function is fully inline.

This is a problem for adding post-C++17 APIs in Qt. Such APIs are added
as inline functions protected by feature-macro tests, so that both Qt
and client apps can use any C++ version they want (any combination
works).

However, if we add a function using post-C++17 API to an exported class,
then the combination "Qt built in C++17" + "client built in post-C++17"
won't work any more. The client will expect the symbol for that function
to be exported by Qt, but Qt won't have it (built in C++17).

As a workaround, add a marker that turns these functions into "faux
templates", like Q_WEAK_OVERLOAD does.

Change-Id: I2adab81e3129c881c5a8e0772948b176fa4db1b6
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2022-04-11 23:26:00 +02:00
Venugopal Shivashankar
98a94cd6da Doc: Add qdoc macro for tabbed content
The macro enables tabbed content in the online style
only. It's usage must be gaurded with a conditional
block as shown in the following example to handle
the offline style usecase:

 \if(onlinedocs)
   \tab {build-qt-app}{tab-cmake}{CMake}{selected}
   \tab {build-qt-app}{tab-qmake}{qmake}{}
   \tabcontent {tab-cmake}
 \else
   \section1 Using CMake
 \endif
   CMake-specific instructions go here
 \if(onlinedocs)
   \endtabcontent
   \tabcontent {tab-qmake}
 \else
   \section1 Using qmake
 \endif
   qmake-specific instructions go here
 \if(onlinedocs)
   \endtabcontent
 \endif

Pick-to: 6.2 6.3
Change-Id: I02d50c057280a9ffea913642284e67ddcda7aa94
Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
2022-04-05 10:30:00 +02:00
Edward Welbourne
0e5c39ee13 Document what QtTest's various loggers do
Provide basic (internal) documentation of each logging class and link
the command-line documentation to pages relevant to the formats not
defined by Qt.

Change-Id: I3251dd1304203c6ab87dfe1f2dec0e9787ab69f8
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
2022-03-22 17:43:13 +01:00
Topi Reinio
dd0c886783 Doc: Use \QtVersion macro to display correct version in code snippet
Pick-to: 6.3
Fixes: QTBUG-100770
Change-Id: Iec0e91bfb98781e63e5379bd0aa67d37df7c6cac
Reviewed-by: Luca Di Sera <luca.disera@qt.io>
Reviewed-by: Venugopal Shivashankar <Venugopal.Shivashankar@qt.io>
2022-03-14 16:13:06 +01:00
Thiago Macieira
30e90841bc QProcess/Doc: update the information on how the program is found
Pick-to: 5.15 6.2 6.3
Change-Id: I54f205f6b7314351b078fffd16d05b1eecb24544
Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io>
2022-03-10 18:20:13 -08:00
Assam Boudjelthia
1956ca7d70 Document use of android:allowNativeHeapPointerTagging in the manifest
Document the tag for more clarity on why it's needed, and for what
platforms.

Pick-to: 6.2 6.3
Task-number: QTBUG-97009
Task-number: QTBUG-91150
Change-Id: Ie4522fb582583be07270d3cdbf83992897b51669
Reviewed-by: Nicholas Bennett <nicholas.bennett@qt.io>
2022-03-05 17:37:33 +02:00
Andreas Eliasson
354e4e867a Doc: Add \include snippets with optional parameters
There are many different wordings for how to use the module across the
module landing pages. The goal here is to provide consistent wording
and code formatting, which can be used across all landing pages.
The style and wording is based on what has been implemented in the
Qt CoAP module landing page.

This is the syntax in a qdoc file:
\include {module-use.qdoc} {<snippet-id>} {<argument1>}
Inside qdocinc, you can then get the value of the argument1 using the
parameter \1.

Task-number: QTBUG-100369
Change-Id: Ib25e509e119008157e69db629eb011e5a9074022
Pick-to: 6.3
Reviewed-by: Kai Koehne <kai.koehne@qt.io>
2022-02-28 12:39:55 +01:00
Lorn Potter
af36dc7d76 wasm: move user configurable settings
Both INITIAL_MEMORY and PTHREAD_POOL_SIZE are settings users can
change, they are not interface settings.

Fixes: QTBUG-100693
Pick-to: 6.3 6.2
Change-Id: Ie1547c7f52c9fe109a313260616705728024b6b8
Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io>
Reviewed-by: David Skoland <david.skoland@qt.io>
2022-02-23 12:04:37 +10:00
Thiago Macieira
ea89d0a36c qglobal: add a way to selectively export in Qt 6 XOR Qt 7
Because at least one compiler *cough*MSVC*cough* is unable to dllexport
a method that is in a dllexport'ed class.

Change-Id: I54f205f6b7314351b078fffd16d06b4e6ef0c086
Reviewed-by: Marc Mutz <marc.mutz@qt.io>
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
2022-02-09 10:49:37 -08:00
Kai Köhne
c6d221f0a9 Doc: Update cmake documentation link
http://www.cmake.org/cmake/help/documentation.html works, but is
nowadays just a redirect.

Change-Id: Ic443eb5e16ef92f523391bcb94cd7763d0e39151
Reviewed-by: Nicholas Bennett <nicholas.bennett@qt.io>
2022-02-09 16:53:27 +01:00
Joerg Bornemann
0ad8dd4805 Doc: State Qt versions for when CMake commands etc. were introduced
Introduce the qdoc macros \cmakecommandsince, \cmakepropertysince, and
\cmakevariablesince that insert a paragraph akin to the \since context
command.

Example:
    \cmakecommandsince 6.3
produces the paragraph
    This command was introduced in Qt 6.3

The macro text is wrapped in \n\n to ensure that we always generate a
new paragraph.

Pick-to: 6.2 6.3
Task-number: QTBUG-100212
Change-Id: Id5c8e8812e6b0b915674d108a0e775091e9eacd8
Reviewed-by: Kai Koehne <kai.koehne@qt.io>
2022-02-01 16:51:01 +01:00
Leena Miettinen
ec57418ecf Doc: Update Notepad tutorial
Update to use Qt Creator 7.0 and CMake as the build system.

Fixes: QTBUG-100075
Pick-to: 6.3
Change-Id: I71e1d1446a2c79c98423ca5d4427b4b4eb00021b
Reviewed-by: Venugopal Shivashankar <Venugopal.Shivashankar@qt.io>
2022-01-31 14:24:11 +01:00
Marc Mutz
f29566c5a4 Prevent repeated instantiations of some qRegisterNormalizedMetaType<>s [1/N] (QtGui)
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>
2022-01-21 11:22:35 +00:00
Albert Astals Cid
ea10fe66e5 Document that QStandardPath::findExecutable works with absolute paths
Change-Id: Ib993fa9a5f2c68febac9820e241c8617bb8ba5bc
Pick-to: 6.3 6.2 5.15
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2022-01-21 00:48:23 +01:00
Topi Reinio
869f14fb35 Doc: Fix typo in \externalpage command
Pick-to: 6.3 6.2 5.15
Change-Id: I7a2dd1057dae5424f27da314e56dbfad6e34e438
Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io>
2022-01-07 17:13:18 +01:00
Leena Miettinen
c68b057510 Doc: Update external links to Qt Creator Manual
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>
2022-01-04 13:01:31 +01:00
Kai Köhne
6205cb161d Update copyright year to 2022
Pick-to: 5.15 6.2 6.3
Change-Id: If6f1d6f9f82a601f8e2b6d36650d6e737518aa60
Reviewed-by: Paul Wicking <paul.wicking@qt.io>
Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
2022-01-04 12:44:19 +01:00
Leena Miettinen
25406a6526 Doc: Add link targets for Qt Design Studio Manual topics
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>
2022-01-03 15:32:56 +00:00
Ivan Tkachenko
b781915c39 Drop Qt4 support
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>
2021-12-07 01:56:17 +03:00
Marc Mutz
d06a686cad Remove unused Q_DECLARE_SHARED_NOT_MOVABLE_UNTIL_QT6
There are no users left in the tree.

Change-Id: I336f4e15c0ec1f5933c1fcfa661bad85bd38ed35
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2021-12-03 03:42:01 +01:00
Ivan Tkachenko
e8531e4c1f Drop Qt3 support
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>
2021-11-27 16:04:03 +03:00
Marc Mutz
a0f9aef11b Long live Q_GADGET_EXPORT!
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>
2021-11-27 01:25:10 +01:00