Commit Graph

1528 Commits

Author SHA1 Message Date
Oliver Eftevaag 34bc389543 Fix ImageElements example to use a QML module
Removed the 'content' directory, and placed all images into a 'pics'
directory.

CMakeLists.txt is now also using qt_add_qml_module()

Pick-to: 6.2
Change-Id: I673b7adea1832f304003f95e171118b0822b3c83
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
2021-09-03 17:10:32 +02:00
Ulf Hermann 633a85cd39 Install the "shared" example module into macOS bundles
If we build an application bundle we cannot rely on the relative path
between the application's and the shared module's output directories.

This is somewhat ugly, but as we don't have a comprehensive solution for
building application bundles, yet, it's the best we can do right now.

In order for the shared bundle to be loaded from the PlugIns directory,
we need to add the PlugIns directory to the import path on macOS.

Pick-to: 6.2
Change-Id: I5b952420b4bb60af74886a140fa2c6a263d2f730
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
2021-09-03 13:04:55 +02:00
Craig Scott 920a5f727b Fix top level builds where AUTOMOC_EXECUTABLE was unset on some targets
The qt_example_build_end() command tries to recursively find all build
system targets by descending into all source directories. Some sets of
examples re-use the same source directory multiple times with different
build directories, but this hides all but one of those re-used source
directories from the recursive search. This resulted in some targets
being missed, which in turn prevented qt_autogen_tools() from being
called on them. In top level builds, this meant AUTOMOC_EXECUTABLE
wasn't set, so CMake tried to verify the moc it wanted to use, which
doesn't exist for the first configure of a top level build, resulting
in a fatal error. Since we can't find all targets reliably with a
recursive search, manually handle the ones that could be missed.

There was a similar problem with qt_autogen_tools() not being called
for a target created to compile a doc snippet. The error message is
the same as the case above, the cause is again AUTOMOC_EXECUTABLE
not being set, but for a different reason. Apply the same fix and
call it manually, which should have been the case originally.

Fixes: QTBUG-96118
Fixes: QTBUG-96159
Pick-to: 6.2
Change-Id: I079c696cf74f77d7caa2c59e6263d3fb1c55d20e
Reviewed-by: Maximilian Goldstein <max.goldstein@qt.io>
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
2021-09-03 19:37:06 +10:00
Oliver Eftevaag 713bb3ce8f Clean up flipable example
Turning the project structure to be inline with Ulf's ideas.
Such as using qt_add_qml_module().

Previously the path to 5_heart.png and 9_club.png were broken.
This patch updates the path in the qml file, in order to make sure that
the resource is actually loaded.

It also adds a CMakeLists.txt, since it didn't already have one.

Pick-to: 6.2
Change-Id: I4b2ffbfcfff7d2d63d7aab9fd7b40f77c1a1073c
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
2021-09-03 10:52:09 +02:00
Oliver Eftevaag 5d751f3ce6 Simplify the XmlHttpRequest example
The XmlHttpRequest example contains a lot of unnecessary code, and I
felt that most of it could just be removed.

The point of the example project is to showcase how to use the
XMLHttpRequest javascript object to make requests.

Which is why I felt that we could remove any outside dependencies for
the project (like the LauncherList from the 'quick/shared' directory),
and reduce the amount of components down to the minimum.

Fixes: QTBUG-95734
Pick-to: 6.2
Change-Id: I9b062f4d7e942db4a2669a8c65f7488aa4a54740
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
2021-09-03 10:39:37 +02:00
Oliver Eftevaag b0e567e7e3 Fix localstorage example to use a QML module
Removing the directory 'localstorage' that is inside the top-level
'localstorage' directory, and moving the content one level up in the
file hierarchy.

Pick-to: 6.2
Change-Id: I97cf1ff92be9860d9a92bce66c88af927618e2b0
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
2021-09-03 10:39:22 +02:00
Topi Reinio 5e6777be1d Doc: Fix documentation warnings in qtdeclarative
* QtLabsPlatform has its own documentation project, but its source
  directory was pulled into QtQuick docs, causing duplicate generation
  and warnings.

* Fix \snippet paths for files that were renamed/moved around.

* Clean up .qdocconf files, use the {,} syntax to set identical values
  for multiple variables.

* Fix incorrect \sa link.

Pick-to: 6.2
Fixes: QTBUG-96125
Change-Id: I4c83787ac23a5b40019c74d46ee87c968a8d4907
Reviewed-by: Venugopal Shivashankar <Venugopal.Shivashankar@qt.io>
2021-09-03 10:16:39 +02:00
Craig Scott 2e04ba2994 Disable quick examples currently breaking top level builds
The add_subdirectory("../shared" "shared") pattern used by these
examples seems to somehow trigger an AUTOMOC-related generation error.
The cause is not currently known, so this change temporarily disables
those tests until a proper fix can be found.

Task-number: QTBUG-96159
Change-Id: I2525b77d0a25c3e3191ae2956857acabc0aedbf5
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
(cherry picked from commit d83c303b95)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
2021-09-01 21:28:34 +00:00
Shawn Rutledge 270a6f9bba Rename shapes example qml files according to what they demonstrate
The order they are shown in the grid is not important; but users should
be able to run any of these qml files directly without building the
example, and appropriate names make the "right one" easier to find.

Task-number: QTBUG-95739
Pick-to: 6.2
Change-Id: I9751b52ce80bc08e12919ca3396c9d428d700a04
Reviewed-by: Oliver Eftevaag <oliver.eftevaag@qt.io>
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
2021-09-01 18:11:54 +02:00
Ulf Hermann 2dfb912058 Fix dialcontrol example to use a QML module
Also move the QML files out of the "content" subdirectory in order to
avoid the directory import.

Pick-to: 6.2
Change-Id: I84a1f5ef1a45e5098ec3213c6fbce06346f3606a
Reviewed-by: Oliver Eftevaag <oliver.eftevaag@qt.io>
Reviewed-by: Andrei Golubev <andrei.golubev@qt.io>
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
2021-09-01 11:49:15 +02:00
Ulf Hermann 66c011c558 Clean up shapes example
Drop the confusing alias mangling on all the QML files. Instead move
them into the base "shapes" directory. Also, use a QML module in CMake
and use the "shared" module as intended.

Pick-to: 6.2
Change-Id: I6a8fc3f2b2f86f58a54e188cf83ec7e2d4e8f468
Reviewed-by: Oliver Eftevaag <oliver.eftevaag@qt.io>
Reviewed-by: Andrei Golubev <andrei.golubev@qt.io>
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
2021-09-01 11:49:06 +02:00
Oliver Eftevaag 9556a46743 Fix ExternalDragAndDrop example to use qt_add_qml_module()
Pick-to: 6.2
Change-Id: Ic368ce6e36ee41aff519a3ae106d18670c05bb54
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
2021-08-31 23:19:51 +02:00
Ulf Hermann c10427bc04 Convert dynamicview tutorial to use QML modules
Pick-to: 6.2
Change-Id: I98069eea1bd4492aba661e4672ffe297f0dcc4c8
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
2021-08-31 23:19:51 +02:00
Ulf Hermann 255d8a84b3 Fix shadereffects example to use a QML module
Pick-to: 6.2
Change-Id: I3787fdfebfa1e376c2891f16f3fcf4f29f0e26d4
Reviewed-by: Maximilian Goldstein <max.goldstein@qt.io>
Reviewed-by: Oliver Eftevaag <oliver.eftevaag@qt.io>
Reviewed-by: Andrei Golubev <andrei.golubev@qt.io>
2021-08-31 21:20:14 +02:00
Ulf Hermann 405bbc1c0e Remove .prev_CMakeLists.txt
We don't need to use pro2cmake anymore here.

Pick-to: 6.2
Change-Id: Iba8bac70c1fe31e56bf9680608913cc2c336f946
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
2021-08-31 11:26:11 +02:00
Oliver Eftevaag 71a781beb1 DynamicView4 tutorial: add forgotten file to qrc
The FileSelector.qml component for some reason were never added to the
qrc file, which meant that it didn't exist in the eyes of qmake.

It should now be possible to run the program.

Pick-to: 6.2
Change-Id: Iaab67860123e926456c99b775449648f5d8e7c3c
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
2021-08-31 11:26:10 +02:00
Ulf Hermann a3ea7a9938 Fix samegame example to use QML modules
In this case it really makes no sense to use a shared directory because
we want to show the progressive changes between the different versions.
It's actually important to note that we're adding the pictures one by
one. Therefore, the shared directory is dissolved and the pictures added
duplicated into the respective versions of samegame.

Furthermore, moving the code into a "content" directory is a bad idea
because it complicates the import logic. We don't want to make the
"content" directory its own QML module. We might move samegame.qml into
the "content" directory, too, and apply some path wrangling to make it
work, but it's really not worth it here.

Pick-to: 6.2
Change-Id: Ifc45f48832596377c21bc6ef55e918ef487bc94e
Reviewed-by: Andrei Golubev <andrei.golubev@qt.io>
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
2021-08-31 11:26:10 +02:00
Alexandru Croitor 9cbf4d2cc8 CMake: qmake: Fix chapter6-plugins example to build in more configs
Before this change, I tested the following configurations / scenarios

 (1) shared Qt + qmake + macOS bundle -> works
 (2) shared Qt + CMake + macOS bundle -> broken
 (3) static Qt + qmake + macOS bundle -> broken
 (4) static Qt + CMake + macOS bundle -> works

 (2) was broken because the shared qml plugin is not located in the
 expected location (see below)
 (3) was broken because qmake needs a lot of error-prone boilerplate
 to ensure static qml plugin building and linking works.

The change fixes the example to build and run successfully in case
(2).

Tested the following scenarios on macOS with the change

  shared Qt + qmake + macOS bundle -> works
  shared Qt + CMake + macOS bundle -> works
  shared Qt + qmake + no bundle    -> works
  shared Qt + CMake + no bundle    -> works
  static Qt + qmake                -> still broken
  static Qt + CMake                -> works

To make shared qml plugins be found in a macOS bundle, we need to copy
the qmldir and plugin under the bundle's PlugIns subfolder, because
the application adds that as the expected qml import path for macOS.
This basically mimics what the qmake project does with
QMAKE_BUNDLE_DATA.

The change also cleans up the CMake projects a bit so they don't link
PUBLIC-ly against dependencies, install the plugin under a more
sensible location and don't needlessly setup package finding and other
boilerplate that's done in the parent project.

The change also cleans up the qmake projects to adjust to not pollute
the macos bundle dir with static plugin files.

Amends 9e1d2a0eb1

Pick-to: 6.2
Change-Id: I45bb699a67adf598587350a03f778291fad3f850
Reviewed-by: Craig Scott <craig.scott@qt.io>
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
2021-08-31 14:51:25 +10:00
Craig Scott 784af37650 Fix warnings/errors from changes to paths in chapter6-plugins example
Amends 2d2750efc3b5a97a5f1cf09b4265a26fcc393499

Change-Id: Iab27efb7359cfcea9274dcbbc7ac64b647d3e71b
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
2021-08-31 14:51:22 +10:00
Laszlo Agocs d5700949ff Migrate to fixed add_shaders prefix handling
Change-Id: I6c5b0680d32bc3650983c64cc4583f790774da88
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
2021-08-30 20:56:30 +00:00
Oliver Eftevaag 9454685db8 Add qsTr() around 2 strings in imageelements example
Making some strings translatable

Change-Id: I7a088e9e9966996ee20ab8bee29cf17c060120d7
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
2021-08-30 22:56:29 +02:00
Ulf Hermann 76a413bb11 Fix touchinteraction example to use QML modules
Remove the "content" subdirectories. They just add noise.

Pick-to: 6.2
Change-Id: Iae6bf7d91b6804294673be8966e30b11caae0654
Reviewed-by: Andrei Golubev <andrei.golubev@qt.io>
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
2021-08-30 20:34:57 +02:00
Ulf Hermann cb9cc7ca66 Update views example to use modules
The qmake and qmlproject files are adapted to use the "shared" module,
too.

Pick-to: 6.2
Change-Id: I5fc4895416357ba202528b155581b1b5a880a68d
Reviewed-by: Andrei Golubev <andrei.golubev@qt.io>
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
2021-08-30 20:34:49 +02:00
Ulf Hermann 7b6eea37ae Fix the qtquick/window example to use QML modules
The shared code becomes its own module. Due to the ${PROJECT_NAME} trick
it should be possible to include it multiple times, in different
examples.

Pick-to: 6.2
Change-Id: I78cc3211f67fae9a713320fae4041898e6a397ed
Reviewed-by: Andrei Golubev <andrei.golubev@qt.io>
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
Reviewed-by: Oliver Eftevaag <oliver.eftevaag@qt.io>
2021-08-30 20:34:43 +02:00
Oliver Eftevaag 621e583f05 Fix coding style
Pick-to: 6.2
Change-Id: Icfcdcb306dbeb750c8ebad44b431c5364ef63c44
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
2021-08-30 15:01:16 +02:00
Oliver Eftevaag 9e38f4da96 ShaderEffects example: replace custom slider with qqc2
Replacing a custom made slider component with a qqc2 slider.

Task-number: QTBUG-95738
Pick-to: 6.2
Change-Id: I407307a3769a0c9821d311189ed40b0d48dab4d3
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
2021-08-28 17:25:28 +02:00
Oliver Eftevaag 5ae40afa97 Shapes example: use qqc2 components
Changing the example to use qt quick controls where it makes sense

Task-number: QTBUG-95739
Pick-to: 6.2
Change-Id: Id0df227657693234de4481c2316dc6c3e0545043
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
2021-08-28 17:25:03 +02:00
Ulf Hermann 9cb0b528e3 Update the accessibility example to use QML modules
Pick-to: 6.2
Change-Id: Iec3dad42dd08ac230ffde15b422ae7f68d419e81
Reviewed-by: Andrei Golubev <andrei.golubev@qt.io>
Reviewed-by: Maximilian Goldstein <max.goldstein@qt.io>
2021-08-27 17:09:50 +02:00
Oliver Eftevaag e771c12ae7 ImageElements example: Use QQC2 and update copyright
Updating the example to use qt quick controls 2 where it makes sense, as
well as copyright headers.

Task-number: QTBUG-95737
Pick-to: 6.2
Change-Id: Ie22ab8551926916abd0a478adc16d1d4daeb13ad
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
2021-08-27 17:09:49 +02:00
Oliver Eftevaag dad9a15c9c Replace custom button component with QQC2 buttons
Now that we've moved qtquickcontrols2 into the qtdeclarative submodule.
We want our examples to simply use qqc2 controls, rather than custom
made buttons and other controls.

This example used a custom made button component, which this patch will
replace with qqc2.

It will also use qqc2 in other places where it makes sense, like replacing
a TextEdit with a qqc2 TextArea, and Text components with qqc2 Labels.

Task-number: QTBUG-95733
Pick-to: 6.2
Change-Id: Ic733cd592cd10ef2cf45058aaf08a0f6b2f5bd2c
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
2021-08-27 17:09:48 +02:00
Oliver Eftevaag 8976c46f46 ExternalDragAndDrop example: Use controls from Qt Quick Controls 2
This patch changes the external drag and drop example to use qqc2
checkboxes instead of a custom made component.

It also changes the position of the checkbox in order to avoid having
the label text overlap with it.

Task-number: QTBUG-95736
Pick-to: 6.2
Change-Id: If3e798ea0ccd64921138690c7599876ec0584038
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
2021-08-27 17:09:48 +02:00
Oliver Eftevaag 409019bc11 EmbeddedInWidgets example: Use QQC2 components
Replaces the TextBox custom component with a qt quick controls 2
TextField.

Task-number: QTBUG-95735
Pick-to: 6.2
Change-Id: Ic1fb47c8e57cd2d805d4a9941df9bc02a5e7bc17
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
2021-08-27 17:09:47 +02:00
Laszlo Agocs 266b93c9f8 Use add_shaders with CMake in some examples
Take the most obvious candidates, to which users typically turn
when getting started with ShaderEffect or QSGMaterial:

shadereffects
scenegraph/custommaterial
scenegraph/twotextureproviders

As with the parent patch that ports and updates embeddedinwidgets and
quickwidget/qquickviewcomparison to use the proper CMake machinery, we
still need to keep the .qsb files for the sake of qmake. compile.bat and
similar scripts are however removed now. With CMake the .qsb files are
not needed and are autogenerated at build time. Once qmake support
disappears from the examples, the .qsb files can be removed as well.

Pick-to: 6.2
Change-Id: I879354eef2e2179dcd268c9ae9f1402e1eaef379
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
2021-08-24 13:51:52 +02:00
Laszlo Agocs c7093e553c Port leftover effects in some of the examples
For qmake we have no choice but to ship the .qsb files, whereas with
CMake we now rely on qt6_add_shaders.

Pick-to: 6.2
Change-Id: I9bb64a3ffd01cda84fca5a0f7def270975bf71aa
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
2021-08-24 13:51:52 +02:00
Craig Scott a86fd709dd Update quick examples to new QML CMake API
This is a pre-requisite to being able to make
qt6_qml_type_registration() an internal rather than public command.
Not all examples have been updated, only those that were using the
qt6_qml_type_registration() command.

Task-number: QTBUG-95093
Pick-to: 6.2
Change-Id: I3f1814a29af608461daa90477eca0aa2304eb9d1
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
2021-08-24 16:08:21 +10:00
Craig Scott 9e1d2a0eb1 Update qml examples for improved target path handling
Some examples were still using the old "add as ordinary resources"
approach for QML modules, others needed adjustment to the subdirectory
structure to better reflect the URI structure of the QML modules
involved.

Task-number: QTBUG-95144
Pick-to: 6.2
Change-Id: Ie3399410cf6df491eb1e7b4a589ca26c577d82a0
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
2021-08-24 16:08:21 +10:00
Shawn Rutledge ca89437d00 Use qEnvironmentVariableIntValue() instead of qgetenv().toInt()
The docs tell us that it's faster.

Pick-to: 6.2
Change-Id: Ib828ed9a10bbb617670a61e7525cbbe25704815d
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
2021-08-17 16:14:53 +02:00
Joerg Bornemann b4ab58d791 Raise cmake_minimum_required to VERSION 3.16 in examples
Pick-to: 6.2
Task-number: QTBUG-95636
Change-Id: I9f76b787533dad1c469fbb8c69df6c27b20a9aa3
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
2021-08-17 13:48:14 +02:00
Luca Di Sera 6901fb779a Remove deprecation warning from QtQuickControls2 gallery example
In the "Delegates" page of the gallery example the user is allowed to
swipe over the available `SwipeDelegateComponent`s to show a 'remove'
button, which allows the removal of that item from the containing list
when pressed.

When this happens, an animation is played.
In the code, the animation was attached to the signal handler,
as follows:

```
ListView.onRemove: SequentialAnimation {
...
}
```

This form of attachment has been deprecated as of
Qt 6.1.0, in commit 6eb35df60e, in favor of creating a stand-alone
object and calling the relevant slot from the signal handler,
generating a series of warning when the attachment happens
during the creation of the page.

This patch updates the connection to the new format, avoiding
the generation of the warnings.

Pick-to: 6.2 6.1
Fixes: QTBUG-95562
Change-Id: Ib67cb9b8703dad427c49475c00791fdd5d1b0669
Reviewed-by: Paul Wicking <paul.wicking@qt.io>
2021-08-05 09:44:41 +00:00
Mitch Curtis 16436239cd Merge qtquickcontrols2 into qtdeclarative
Task-number: QTBUG-95173
Change-Id: I2cf31e30127e8cc2f10304cabf4ff7f5050633b8
2021-07-28 11:21:25 +02:00
Craig Scott 0c99c17761 CMake: Change the default of OUTPUT_DIRECTORY for qt6_add_qml_module()
The new default is now controlled via a new QT_QML_OUTPUT_DIRECTORY
variable. If that isn't set, the fallback assumes the source directory
structure follows the URI structure and uses
${CMAKE_CURRENT_BINARY_DIR} instead. This pattern means more projects
will have working import paths for qmllint and possibly other tools
out of the box. There should also be fewer cases where the
OUTPUT_DIRECTORY option needs to be used in calls to
qt6_add_qml_module(). The QT_QML_OUTPUT_DIRECTORY variable facilitates
the scenario where QML modules might be distributed across different
parts of the source directory hierarchy, but once collected under a
common base point defined by QT_QML_OUTPUT_DIRECTORY, they form a
coherent set of QML modules whose subdirectory structure below that
base point follows their TARGET_PATH.

Fixes: QTBUG-94164
Fixes: QTBUG-95081
Pick-to: 6.2
Change-Id: I82864c361a2b34f7f1484cdbda0d9b64b34b9950
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
2021-07-20 16:33:48 +10:00
Ulf Hermann fff8d6120a Use "= default" rather than empty bodies for ctors and dtors
Change-Id: Idef0ebaa0074e1e4b6b74d20bd6c70cb22a04f93
Reviewed-by: Maximilian Goldstein <max.goldstein@qt.io>
2021-07-01 08:34:58 +02:00
Ulf Hermann 91e7009aec Use "auto" as type when initializing using "new"
The type is immediately visible from the right hand side then.

Change-Id: Ifc1a15e3eea9b5a91ff8647f759d207a0ee221b8
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
2021-07-01 08:34:54 +02:00
Ulf Hermann 83859221c1 Initialize members in declaration rather than ctor
Change-Id: I084a6865ae37c6612fbcfd44a233234f05e38814
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
Reviewed-by: Andrei Golubev <andrei.golubev@qt.io>
2021-06-30 14:17:12 +02:00
Ulf Hermann 213b890899 Add missing "override" keywords
Our examples should follow best practices.

Change-Id: Ice90a818ae46e921b421e8d297806d8f7200294b
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
Reviewed-by: Andrei Golubev <andrei.golubev@qt.io>
2021-06-30 14:17:01 +02:00
Ulf Hermann b200fbe213 Do not call QGuiApplication::exec() on an instance
It's a static method. It should be called statically.

Change-Id: I15fc8948988b0a2c0a30f8699949e06c66d92fdf
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
Reviewed-by: Andrei Golubev <andrei.golubev@qt.io>
2021-06-30 14:16:55 +02:00
Ulf Hermann 1629fa0c6c Use nullptr rather than 0 for null pointers
Change-Id: I2921298ad2e04001bdee8824c56f01c203efb7d6
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
Reviewed-by: Andrei Golubev <andrei.golubev@qt.io>
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
2021-06-30 14:16:49 +02:00
Eskil Abrahamsen Blomfeldt 07d646d1b0 Update imageelements example to Qt 6 url syntax
The imageelements examples depended on URLs being resolved
relative to the file where it was declared, but in Qt 6
this was changed. Since the source is actually resolved
inside MyBorderImage, which is in content/, we would end
up trying to resolve content/content/foo.png.

To avoid having code depend on the location of types it is
using, URLs have to be packed in Qt.resolvedUrl() in Qt 6.

Change-Id: I16e203e92b3b4c7c573dcdb85dcd556f2103ab80
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
2021-06-17 14:20:01 +02:00
Laszlo Agocs d3412cddab rendercontrol examples: Exercise key event generation as well
Task-number: QTBUG-93489
Change-Id: Ife9db7b066add1f41de964d4c41309568f954320
Reviewed-by: Andy Nichols <andy.nichols@qt.io>
2021-06-15 11:12:21 +02:00
Craig Scott 1c4ba17015 Refactor and update qml CMake API
The existing CMake API for qml modules had a number of
shortcomings. Refactor it to achieve the following:

- Clearly separate public and internal aspects.
- Re-use code from qtbase for adding plugins and module
  targets rather than reimplementing close variations.
- Provide more robust and complete support for qmllint,
  qmlcachegen and automatic generation of qmldir files.
- Reduce the steps needed for more common scenarios.
- Encourage the use of separate backing library and plugin
  targets.
- Automatically generate the plugin class .cpp file where
  possible.
- Specify .qml files directly through qml-specific API
  elements rather than assuming they can be extracted
  out of a set of resources.

[ChangeLog][QtQml] The qml CMake API has changed from 6.1
and is now out of Technical Preview status. The most
notable change is that .qml files should no longer be
specified as resources, there is dedicated handling for
them in the qt6_add_qml_module(). A related change is
that the qt6_target_qml_files() command has been replaced
by qt6_target_qml_sources(). More complete integration
with qmlcachegen, qmllint and qmldir generation is also
part of the CMake API.

Fixes: QTBUG-91621
Task-number: QTBUG-82598
Task-number: QTBUG-88763
Task-number: QTBUG-89274
Task-number: QTBUG-91444
Change-Id: I25aae1b0e89890394dfe2ba2824008164b2ca8d9
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
2021-06-04 16:54:52 +10:00