Commit Graph

48760 Commits

Author SHA1 Message Date
Volker Hilsheimer
979c8cf1b7 Always return initialized data from QBindable::value
clang warned about result being uninitialized if iface is nullptr. Return
a properly initialized result in that case as well.

This might break RVO, but the alternative is to always initialize result,
even if we are going to call the getter anyway, which I assume would be
more expensive.

Change-Id: I5d6d243b3094b79bf021725d017be5c72b1089bb
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
2020-10-28 22:14:37 +01:00
Fabian Kosmale
bcd2f3f99e Add QVariant/meta-type system migration guide
Fixes: QTBUG-87100
Change-Id: Ib87b8d566f11bf226345101f665c675489a06d6a
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
2020-10-28 20:37:50 +01:00
Volker Hilsheimer
39aa070e96 QSurfaceFormat: Make comparison operators hidden friends
Reduce ADL noise. Also add noexcept.

Task-number: QTBUG-87973
Change-Id: I83787264b00b084ecdc85b6b3c2a8d95db94a05e
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
2020-10-28 20:36:18 +01:00
Volker Hilsheimer
a3d71792ca Make comparison operators hidden friends
Reduce ADL noise from QKeyEvent, QKeySequence::StandardKey, and
QPointingDeviceUniqueId.

Task-number: QTBUG-87973
Change-Id: Ib4a3190d03046949acb25b3fe68c611689b82565
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
2020-10-28 20:36:12 +01:00
Kai Koehne
9b35f22b58 Doc: Remove mentioning of old macos versions from QSettings
The specific mentioning of macOS 10.2, 10.3 goes back to Qt
4 times. Anyhow, both versions aren't supported anymore, and
the logic in qsettings_mac.cpp is the same for all versions.

Pick-to: 5.15
Change-Id: Ibac503cb7c8563dec8560cc41c471c1db0f20566
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
2020-10-28 17:15:09 +01:00
Kai Koehne
1f6543902d Fix qdoc builds for non-top-level developer builds
Fixes a regression introduced in commit 748b3b9c89 for builds
that are both not a QT_SUPERBUILD and not QT_WILL_INSTALL.

Change-Id: I52b920176a2696fa6206b89b2b69ae1a7f3fbc25
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
2020-10-28 17:14:57 +01:00
Tor Arne Vestbø
5c2656cfb6 cmake: Allow specifying module 'uses' entries
Change-Id: Iee02654e0f52e36e026b8074e0eacb0ea1804685
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
2020-10-28 16:52:32 +01:00
Liang Qi
53da9f5816 tests: blacklist tst_QUdpSocket::multicast() on CentOS
Task-number: QTBUG-84254
Change-Id: Icf50e7c85a0434ecdf29ae70776b274789b9eb45
Reviewed-by: Tony Sarajärvi <tony.sarajarvi@qt.io>
2020-10-28 16:13:33 +01:00
Allan Sandfeld Jensen
375a8b735b Remove qstring_compat left-over
Was missed when it was removed

Change-Id: I36c33be9240fa5567a65488d6fd0e14b8c3ad8cd
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
2020-10-28 15:57:34 +01:00
Andrei Golubev
6b0330317c Fix QList snippets to use qsizetype instead of int
Task-number: QTBUG-86553
Change-Id: I37e9607e014deaeebfa9fddf2e49a04ee2194cce
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
2020-10-28 15:45:53 +01:00
Allan Sandfeld Jensen
5dc1780369 Pass SameSite through QNetworkCookie
It is an important new details in cookies, as a minimum pass it through,
before we add API for it.

Pick-to: 5.15
Change-Id: I5222a24e0f50f3822a94cce126b5055fed1a8008
Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
2020-10-28 16:42:12 +02:00
Jarek Kobus
c34673e5d9 QtConcurrent: Handle running with promise inside QTaskBuilder
Please note, that in case of run with promise it doesn't make
sense to provide the overload taking the FutureResult, as if we are
going to ignore the returned QFuture object, we can't communicate
with the passed QPromise.

Fixes: QTBUG-87083
Change-Id: I4066506736c2bbeea3e42030b9495f13e06cb27e
Reviewed-by: Sona Kurazyan <sona.kurazyan@qt.io>
2020-10-28 15:38:52 +01:00
Jarek Kobus
cf043a785a QtConcurrent: Integrate runWithPromise into run
Change-Id: I6eb95aa66ff847e8bb9aac348fded3a5d55015b6
Reviewed-by: Paul Wicking <paul.wicking@qt.io>
Reviewed-by: Sona Kurazyan <sona.kurazyan@qt.io>
2020-10-28 15:38:44 +01:00
Konstantin Ritt
bb8c24e467 QFontEngine: get rid of userData() trickery
it is only used by QWin32PrintEngine and we know for sure
QWindowsFontEngine::handle() returns HFONT

Change-Id: I7656801e4642caf7df612d2f686061dca92707e0
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
2020-10-28 17:27:37 +03:00
Andrei Golubev
f9f2107cef Clean QList documentation
Updated QList documentation pieces:
- Several descriptions revised
- Irrelevant things removed
- Descriptions wrapped at 80 characters

Task-number: QTBUG-86553
Change-Id: Ic6de44520a76677aa5e8d9e91caa03e5aa198812
Reviewed-by: Paul Wicking <paul.wicking@qt.io>
2020-10-28 15:27:37 +01:00
Timur Pocheptsov
524b19fc23 Selftest - copy XAUTHORITY environment variable
Otherwise XOpenDisplay in a newly spawned process may fail with
a 'No protocol specified' message (as it recently happened in
CentOS 8.1 vm).

Fixes: QTBUG-87621
Pick-to: 5.15
Change-Id: Ib6c08c7f154fb2a126d32a4aa52b535e5daa1589
Reviewed-by: Liang Qi <liang.qi@qt.io>
2020-10-28 14:27:37 +00:00
Edward Welbourne
07ff70a0da Remove QItemSelectionRange's operator<()
As advocated in a ### Qt 6 comment.

[ChangeLog][QtCore][QItemSelectionRange] QItemSelectionRange no longer
supports ordering. The prior ordering was inconsistent with equality
and should not be needed.

Task-number: QTBUG-85700
Change-Id: I5eb372c203cae19db40fa67f706d911785652d5f
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
2020-10-28 15:27:37 +01:00
Edward Welbourne
29c113d912 Deprecate ordering on QItemSelectionRange
Ready for removal at Qt 6, as advocated in a ### comment.
It was never done consistently with operator==(), apparently, and
should not be needed in any case.

[ChangeLog][QtCore][QItemSelectionRange] Ordering of
QItemSelectionRange is now deprecated. It was not consistent with
equality and should not be needed.

Task-number: QTBUG-85700
Pick-to: 5.15 5.15.2
Change-Id: Ie99294bd7fc18f2a497598ae08840886b0a6d62d
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
2020-10-28 15:27:37 +01:00
Joerg Bornemann
da1854c683 CMake: Re-work documentation targets
The top-level prepare_docs target is supposed to run before the
generate_docs target.

The repository-level targets like prepare_docs_qtbase now also run
before their respective generate targets.

To achieve that, several intermediate targets had to be introduced.
The dependencies for top-level generate_docs look like this:

              /--> generate_top_level_docs_Core --\
generate_docs ---> generate_top_level_docs_Gui  -----> prepare_docs
              \--> ...                          --/

The dependencies for repo-level generate_docs_<repo> look like this:

                     /--> generate_repo_docs_Core
generate_docs_qtbase ---> generate_repo_docs_Gui
                     \--> ...

generate_repo_docs_Core --\
generate_repo_docs_Gui  -----> prepare_docs_qtbase
...                     --/

Analoguous for qch_docs.

And last but not least, the module-level generate_docs_<module> depends
on prepare_docs_<module>, just like before.

The strangely named top-level install targets have been renamed to
install_html_docs, install_qch_docs and install_docs.

The html_docs target is now merely an alias for generate_docs.

Apart from prepare_docs, the top-level targets do not depend on the
repository-level targets anymore. Targets that are just an alias (docs,
install_docs, ...) have been re-defined to depend just on the respective
top-level targets.

Fixes: QTBUG-87758
Change-Id: I24466d3a252d518a30a2064bf876be881c46231f
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
2020-10-28 10:38:28 +01:00
Mårten Nordheim
dfca01e186 Update the HTTP example
- Extended the documentation talking about it
- Initialize members in the header rather than in the ctor
- Some formatting changes
- Prefer connect-ing to QNetworkReply rather than QNAM for sslErrors
    - Because we didn't use the QNetworkReply* argument
- Put the QNetworkReply pointer in a managed pointer
- Removed the code explicitly handling a redirect (it's the new default)
- Edited HttpWindow::httpFinished so that there're less places to reset
    the reply pointer
- Updated some ifdefs I didn't update when I was revamping this example
    3 years ago

Task-number: QTBUG-87306
Change-Id: I10a6f756c09908f199ac9c61e28b49625af10105
Reviewed-by: Paul Wicking <paul.wicking@qt.io>
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
2020-10-28 08:48:26 +02:00
Mårten Nordheim
cf03874dbb qsslsocket_schannel: update QMutexLocker usage
Following 77d812683f QMutexLocker is now a
templated class which should in most cases be deduced automatically.
Doesn't work here because of the global static wrapper.

Change-Id: I62fda0651eac12f3234396cb7e41a26df8cc8b46
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
2020-10-28 07:48:24 +01:00
Mårten Nordheim
205629bb62 QByteArray: make (ap|pre)pend(const QByteArray &) consider reserved
Append was previously optimized for lhs being empty but it should've
also taken into account if space had been reserved.
Apply the same optimization to prepend while we're at it.

Change-Id: I5e5d33a3189b9ad88d45e858a2ac412cbc294f79
Reviewed-by: Andrei Golubev <andrei.golubev@qt.io>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2020-10-28 08:48:23 +02:00
Edward Welbourne
2c4874be40 Deprecate old aliases for two countries and several languages
[ChangeLog][QtCore][QLocale] Deprecated several Language and Country
aliases, ready for removal in Qt 6.0, in favor of their newer names.

Task-number: QTBUG-84669
Pick-to: 5.15 5.15.2
Change-Id: Iebaa0a5a77bfa12f7014de53fab4a25b5f1cc92c
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
2020-10-28 06:26:01 +01:00
Edward Welbourne
2575a8ced3 Deprecate QLocale::Language entries that no locale data relates to
These are languages for which CLDR does not even recognize the claimed
language code (three-letter codes except for bh = Bihari, which might
be an old name for bho = Bhojpuri, which CLDR does give, but provides
no locale data using it).

[ChangeLog][QtCore][QLocale::Language] Many obsolete language names
are now deprecated in preparation for removal at Qt 6.0. No data has
been available for any locale using these languages since CLDR v29 (at
least; Qt now uses v37).

Task-number: QTBUG-84669
Pick-to: 5.15 5.15.2
Change-Id: I2bf2d49211ade7cc511277f35fb1a247e7048b31
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
2020-10-28 06:25:47 +01:00
Timur Pocheptsov
3857f104ca QMacStyle - more pixel refinements
There is 1 pixel of a rounded corner visible both on NSButton and
NSPopupButton in a tab widget (all orientations) - adjust the rectangle
for this.

Pick-to: 5.15
Pick-to: 5.12
Task-number: QTBUG-86513
Change-Id: I5e203adc583d2fba6323b18328ccbc8b0c0666ea
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
2020-10-28 05:54:57 +01:00
Volker Hilsheimer
7ae1dcbb04 Remove QT_NO_FLOAT16_OPERATORS macro
It's documented to be a workaround for VC++2017 and earlier, which are
all not supported in Qt 6 anymore. VC++2019 does not show the problem.

Change-Id: Ie66b303a75bb5791675fc9e62bf4a84510068d6d
Reviewed-by: Keith Kyzivat <keith.kyzivat@qt.io>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2020-10-28 00:25:58 +01:00
Tor Arne Vestbø
e24be7b6c3 cmake: Avoid -NOTFOUND suffix in module pri config
Change-Id: I1407a661c482d918dd143f291ee648bc7b18feef
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
2020-10-28 00:22:30 +01:00
Tor Arne Vestbø
1ce3a89487 cmake: Add missing aliases for entrypoint implementation
Change-Id: I2fda3a84ca2d12f74b68a8bbe6c6ae9cd04b5aea
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
2020-10-28 00:22:27 +01:00
Tor Arne Vestbø
ba661f6bf1 cmake: Don't limit qt_internal_add_cmake_library to tests
Change-Id: I2dbe8075de6704a7a6557b877dc279a4b4cddd54
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
2020-10-28 00:22:22 +01:00
Tor Arne Vestbø
598e873c84 cmake: Don't add module header for interface libs without headers
Change-Id: Ifba869586a65f28d5ff47bb2c01ce638110f493f
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
2020-10-28 00:22:19 +01:00
Elvis Lee
4b899a29fa webOS: Support mapping evdev keyboard and touchscreen to specific window
First we refactor QTouchOutputMapping into a QOutputMapping base class and
a QDefaultOutputMapping subclass, because it will be used to map more kinds
of devices, not only touchscreens.

On WebOS, the plan is to have a custom subclass that overrides an
additional windowForDeviceNode() virtual function, so that events from
specific devices can be sent to specific windows.  But in the future,
Qt may have a more generic mechanism for mapping devices to screens,
and of course windows are displayed on screens; so this direct
device->window mapping is likely to be temporary.

In the QT_QPA_EGLFS_KMS_CONFIG JSON configuration, symlinked device
nodes are now supported.

Task-number: QTBUG-85268
Change-Id: Id1f0bb59f4a439abaec6bd35016c95de1cbdb26a
Reviewed-by: Elvis Lee <kwangwoong.lee@lge.com>
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
2020-10-27 23:37:41 +01:00
Volker Hilsheimer
fd8e6a203e QPushButton: if mouse tracking is off, ignore state only updated when tracking
Amends 3310e13a17. The explicit hovering state
is only updated when handling MouseMove events, and those are only
delivered when mouseTracking is set. Without mouseTracking set, the state
was always false, and QPushButton didn't set the MouseOver style flag.

Ignore the new state if mouse tracking is not set.

Task-number: QTBUG-87706
Change-Id: I2718fb23c206fd8dfd427edc987ff193ba1be8a0
Reviewed-by: Doris Verria <doris.verria@qt.io>
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
2020-10-27 22:29:05 +01:00
Volker Hilsheimer
6949bfaa92 Skip flakey dialogs testcase on all platforms except windows
Testing the mouseMoveCount before XFAIL'ing before then testing the
mouseRelaseCount was anyway wrong.

Change-Id: I666f143ff15088562fc63f833f5785f870de6f26
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
2020-10-27 21:29:05 +00:00
Alexandru Croitor
638ac41293 CMake: Fix painting examples to build as standalone projects
The examples use an intermediate object library to avoid duplicate
file compilation. The examples worked when built as part of Qt
because the shared directory was always added, and Qt::OpenGL is
available implicitly.

Change each project to add_subdirectory(../shared) if the object
library is not available, thus making the examples build as standalone
projects.

Call find_package inside the shared project, to ensure the Qt packages
are found.

Create an alias called 'painting_shared::painting_shared' and link
against that to ensure that any failure is caught at configure time
rather than build time.

Adapt the pathstroke example to use the object library.

Comment out the code for the OpenGL scopes, because it's handled
by the object library.

Make sure the OpenGL dependency is public.
Make sure to run moc and compile the OpenGL specific files as well.

Task-number: QTBUG-87444
Change-Id: Ib0ecb68948581c5267ca04f19d8043fa44ff3d54
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
2020-10-27 19:26:45 +01:00
Alexandru Croitor
f65abc6344 CMake: Export QT_QPA_DEFAULT_PLATFORM in QtBuildInternalsExtra
The value is useful for QPA plugins built in repos other than qtbase,
to decide if it should be a default plugin or not.
Currently useful for qtwayland.

Also export a qmake value assignment when doing static builds, just
like src/gui/configure.pri does.

Change-Id: I1253f1a7e178b24b16e2615ba20d1e92b0b87b1a
Reviewed-by: Cristian Adam <cristian.adam@qt.io>
2020-10-27 19:26:35 +01:00
Allan Sandfeld Jensen
c61f90fbe6 Remove left over friend declaration
Was not removed when it was inlined above it.

Change-Id: Ie81bd9273108920031b235bdf1f13439711e5fec
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
2020-10-27 16:43:12 +01:00
Allan Sandfeld Jensen
72ccb4fa7b Make QVersionNumber and QArrayDataPointer comparisons hidden
Change-Id: I8de0407843103b49877621534c14046e3a7d1b2f
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
2020-10-27 16:43:12 +01:00
Fabian Kosmale
331a200b97 Revert "QObject: simplify part of connection logic"
This reverts commit 1918c689d7.
The template gets always instantiated in QObjectPrivate::connect, even
if the connection types is not Qt::(Blocking)QueuedConnection. For
non-queued connections we however support using incomplete types in
connect. The only way to fix this would be to make the connection type a
template parameter of QObjectPrivate::connect (or at lesat pass some
compile time constant indicating "blocking"-ness) along, so that we can
use if constexpr instead of if. As all involved classes are private, we
can postpone investigating this solution to 6.1

Change-Id: Ieffaf015f8e60ca6ac6f85eb9e2756e480060b4f
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
2020-10-27 16:43:12 +01:00
Jarek Kobus
c293ab71bd Fix tst_QDeadlineTimer::stdchrono() flaky test
This patch reverts the last attempt to fix it:
4a1de178c9.
In addition, instead of using imprecise QTest::qSleep()
we trigger a single shot PreciseTimer twice
and gather the measurements in lambdas.
We wait for lambdas to be executed - we give it
twice as much time as is in theory needed.
Afterwards we verify all the data collected in lambdas.

Fixes: QTBUG-82825
Change-Id: Ib691f5f23a92fb8b41a24f7b603981d9c9450ddc
Reviewed-by: Andrei Golubev <andrei.golubev@qt.io>
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
2020-10-27 17:43:12 +02:00
Karsten Heimrich
d5050dcec4 Fix copy and past error, add minor doc update
Change-Id: I50d58086bf20d96993ab7c5e4790f07bbfdb8089
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
Reviewed-by: Sona Kurazyan <sona.kurazyan@qt.io>
2020-10-27 12:49:40 +01:00
Karsten Heimrich
626a9b66f2 Doc: Add notes on how to use View classes in Qt6
Task-number: QTBUG-87168
Change-Id: I631937ebaf7cfa3ed54c6c8a3641693fda910b36
Reviewed-by: Sona Kurazyan <sona.kurazyan@qt.io>
Reviewed-by: Andrei Golubev <andrei.golubev@qt.io>
2020-10-27 12:49:40 +01:00
Paul Wicking
5c352f47b9 Add doc target for qmake
qmake currently doesn't have a doc target in CMake. In qmake builds, the
doc target is in qtbase/ (not in qtbase/qmake). This patch mimics the
mechanic used in QDoc, and adds this as a special case (as the project
file doesn't contain the doc target).

Fixes: QTBUG-87868
Change-Id: Ib1ca249465c5df2f22ba73084c680781e595c30a
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
2020-10-27 12:49:39 +01:00
Ulf Hermann
d0bc2cefd2 CMake: Do not overrun the list end in qt_remove_args
Otherwise we get error messages from CMake.

Change-Id: I374b87e38550062b841b7eacf5fbb6bb5ccbdbde
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
2020-10-27 12:49:39 +01:00
Paul Wicking
6d496a2421 Doc: Add macro to exclude examples from Creator
Done-with: Topi Reinö <topi.reinio@qt.io>
Change-Id: I069214e3139c8b9993b5b8f86e4b5cda1dcc2bfd
Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
2020-10-27 11:49:39 +00:00
Jarek Kobus
bdc34bfb8e Compile fix on Windows
Task-number: QTBUG-87719
Change-Id: I9dd12b4579b40ec9c91a5751e12d371ed6ff5ac4
Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
2020-10-27 12:49:39 +01:00
Volker Hilsheimer
dc77b86be5 Make QElapsedTimer comparison operators hidden friends
Reduce ADL noise.

Clean up documentation and parameter naming a bit, while at it.

Change-Id: Ie9eb2a63b8e87a9ffc019b8fff5bd1c6bafaaf43
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2020-10-27 12:49:39 +01:00
Assam Boudjelthia
f8a83fc5c0 CMake: allow using ANDORID_NDK_ROOT for user projects
Allow CMake for Android to use ANDROID_NDK_ROOT to deduce the path for
QT_CHAINLOAD_TOOLCHAIN_FILE instead of the user providing it manually.

Change-Id: Ida728011d5ca8d5a723d341ea77b173e8f105f8c
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
2020-10-27 13:49:39 +02:00
Alexandru Croitor
397b372517 CMake: Regenerate examples to set the WIN32_EXECUTABLE property
As well as the MACOSX_BUNDLE properties as necessary.

Task-number: QTBUG-87664
Task-number: QTBUG-86827
Change-Id: I7677449a26d51fa853bd67bab6b3b61afbd2b12f
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
2020-10-27 12:49:39 +01:00
Alexandru Croitor
65fe5b2ce2 CMake: pro2cmake: Handle CONFIG+=console app_bundle in examples
Now that qt_add_executable doesn't set the WIN32_EXECUTABLE and
MACOSX_BUNDLE properties anymore, pro2cmake needs to look at the qmake
example projects and generate appropriate set_target_properties calls.

The relevant CONFIG entries to look at are windows, console,
app_bundle and cmdline.

CONFIG += windows implies 'subsystem windows' on Windows, which maps
to WIN32_EXECUTABLE == TRUE.

CONFIG += console implies 'subsystem console' on Windows, which maps
to WIN32_EXECUTABLE == FALSE. Aka the opposite of CONFIG += windows.
Whichever is the last one set, cancels out the other one.

CONFIG += app_bundle implies a macOS bundle executable, which maps
to MACOSX_BUNDLE == TRUE.

CONFIG += cmdline is the same as CONFIG += console and CONFIG -=
app_bundle, aka WIN32_EXECUTABLE and MACOSX_BUNDLE set to false.

In qmake, if no CONFIG is specified in an example project,
the default is CONFIG += windows app_bundle, aka WIN32_EXECUTABLE
and MACOSX_BUNDLE set to true.

The script uses a heuristic to try and not write the properties for
every single subscope, except for values different from the default.
This is not strictly correct, but it covers most use cases, and keeps
the generated projects a bit cleaner.

Task-number: QTBUG-87664
Task-number: QTBUG-86827
Change-Id: If05606ec3205e0fe7c1803c07e114d9fd9c3e4f7
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
2020-10-27 12:49:39 +01:00
Ahmad Samir
1e904ab342 QLayout docs: explain better what the QWidget ctor arg does
Make it clear in the docs that an alternative to calling QWidget::setLayout()
is to pass the parent widget to the Q*BoxLayout constructor. This basically
just copies the relevant bits from the the docs of QWidget and Q*Layout.

Change-Id: Id196dcdf9a876d9141aa145f23a83c45f8cda5f8
Pick-to: 5.15 5.12
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
2020-10-27 13:49:39 +02:00