Every instance of AUTO_RESOURCE_PREFIX has been replaced by either
qt_standard_project_setup(REQUIRES 6.5) or with
qt_policy(SET QTP0001 NEW), mainly in tests.
In addition, I added a warning message for the case where
AUTO_RESOURCE_PREFIX is used.
Pick-to: 6.5
Task-number: QTBUG-96233
Change-Id: I323a15e9d0bb5fe6ba649365314af9fc2ad67bda
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
Reviewed-by: Oliver Eftevaag <oliver.eftevaag@qt.io>
In d270c51f81 the DECLARATIVE_EXAMPLE_MAIN
macro was modified to prepend the "qrc:/qt/qml" prefix to file paths that
should be loaded by the engine. But the patch forgot to update the
shared.qrc prefix, which means that the examples that relied on the
shared module, would no longer build out-of-the-box with qmake.
This patch solve the issue, so that the examples work with qmake
once again.
Pick-to: 6.5
Change-Id: I677c1e61423cf98c6a1030ce591707888456ef19
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
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: I72c89a98c42bbc9234d8495e9e503bec81d11037
Reviewed-by: Jörg Bornemann <joerg.bornemann@qt.io>
Examples that don't explicitly set NO_RESOURCE_TARGET_PATH get the
AUTO_RESOURCE_PREFIX now.
Task-number: QTBUG-103452
Change-Id: I6b41e96ce5620079f60ca2f967b0a2e611c1f738
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Sami Shalayel <sami.shalayel@qt.io>
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.
Pick-to: 6.4
Task-number: QTBUG-67283
Change-Id: I63563bbeb6f60f89d2c99660400dca7fab78a294
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
- Remove # generated from xyz.pro comment from pro2cmake
- Remove "# special case" markers for pro2cmake
- Remove automatic use of CMAKE_AUTORCC
- Only opt into CMAKE_AUTOUIC if .ui files are involved
- Remove explicit setting of CMAKE_INCLUDE_CURRENT_DIR
- Combine multiple find_package(Qt6 ... calls)
- use REQUIRED COMPONENTS
- sort components alphabetically
- Fix wrong indentations
- Use (only) one empty line after multi-line commands
Pick-to: 6.3
Change-Id: I0d6bfb06c4b25e9921d3d2bf31d977150f12b31b
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Jörg Bornemann <joerg.bornemann@qt.io>
The sliders adjust maximumFlickVelocity and flickDeceleration.
Also in the shared Slider: try harder to end up with value being
the same as init, after initialization, by making the range of movement
divisible by more numbers, by default. 180 is highly divisible, and
keeps the default Slider size reasonable. You can still override the
size of the Slider arbitrarily, though.
Task-number: QTBUG-97055
Change-Id: I6fb41ccb87e401a747d5a8add3100053a06d9d88
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
Refactor the logic of bundle_shared into a more reusable
add_qml_module_to_macos_app_bundle function that can be used in
QtQuick examples that need to bundle the qml plugin on macOS, but don't
use the 'shared' qml module plugin.
The new function is placed in a QtBundleQmlModuleForMacOS.cmake file
which can be included separately from the shared/CMakeLists.txt
project.
Amends 633a85cd39
Pick-to: 6.2
Task-number: QTBUG-96805
Change-Id: Iebb3f4734b9a6bd8a8316bf5ae01d9740c442645
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
When using a static Qt, linking of examples that use the 'shared' Qml
module would fail with the following error
Undefined symbols for architecture x86_64:
"qt_static_plugin_sharedPlugin()", referenced from:
StaticsharedPluginPluginInstance::StaticsharedPluginPluginInstance()
in window_shared_init.cpp.o
This happened because the 'shared' project pre-created its
plugin target with qt_add_library instead of qt_add_plugin.
qt_add_plugin passes an additional QT_STATICPLUGIN compile definition
when compiling the moc'ed file to ensure that the QT_MOC_EXPORT_PLUGIN
macro creates a qt_plugin_instance_PLUGIN_NAME symbol.
Unfortunately we can't use qt_add_plugin for shared Qt builds, because
some of the projects link directly against the plugin target and it's
not possible to link against a MODULE_LIBRARY target which
qt_add_plugin creates in shared Qt build.
We could try to conditionally switch between using qt_add_library for
a shared Qt build and qt_add_plugin for a static Qt build, but that
further complicates the build system code because it requires
specifying a class name and plugin type explicitly.
Remove the direct linkage against the libraries in the examples and
instead rely on plugin loading.
This simplifies the logic of not having to pre-create a target.
Amends 7b6eea37ae
Pick-to: 6.2
Fixes: QTBUG-96805
Change-Id: I5b2f3992ccda29b59f1e99748005381c73daca69
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Ensure the shared qml module is built before it is bundled into the
app's bundle dir on macOS.
Pick-to: 6.2
Change-Id: I0b93fc54d1caa86070335347f5d2735eafe6819a
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
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>
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>
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>
Replace QLibaryInfo::location with QLibraryInfo::path, and remove usage of
Qt::AA_EnableHighDpiScaling, which doesn't have any effect anymore.
Change-Id: I347e8a83e0f4c2b4405f2512e569ad3234f05a98
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
In particular, use required properties where applicable, explicitly
import QtQml where we use it, avoid unqualified access into the root
scope of a component, use JavaScript functions with explicit parameters
as signal handlers.
Change-Id: I3eaaba47cc3c7a2a12d488e36f9eec145cedbb0e
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
Since the button is a simple Item, and the MouseArea is gone, the
"pressed" property we're interested in is actually the TapHandler's
"pressed".
Change-Id: Idc7262325c9e2db761041b1ae1151e62702e3eb8
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
Unqualified lookup in the root object of a component is bad.
Change-Id: I7772216fb81e68824519408998c73dbb1ca60c4d
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
This change is to facilite moving the XmlListModel code to the
qtxmlpatterns repo, but still keep all the Particles examples
together.
Also fixed:
- the old TODO about darkening images according to depth,
and make it generally look a bit better.
- move the visualdatamodel examples to a directory called
delegatemodel, since that's how they work now. And add them
to the main "views" example launcher so that they become more
visible to users.
Change-Id: I78f9f19e1e110608580adedcf4cd3be554222515
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
The binding for x to -width will take effect after the enter-transition
finishes animating x from -page.width to 0, but will not update the x
value for some reason, so the item stays at the correct position at
the end of the transition, even if the binding is still active.
Once the window is resized though, and the new window width gets
propagated to the page component, the x-value will be re-evaluated
and the page component ends up on -width again, hiding it.
It doesn't look like the explicit property binding adds anything to
the example, as the transition takes care of starting at -width, so
by removing it we fix the issue.
Change-Id: If0e693ae85fe3e0aa49f59832cbb1ba2804b7b6b
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
The platform handles this through the ShowIsMaximized and
ShowIsFullScreen platform integration style-hints, as well
as QPlatformIntegration::defaultWindowState(), which was
added specifically so that we wouldn't have to hard-code
the behavior in user code.
Change-Id: Ic019ccc2edd871a78bf94fd5fe572b9659416582
Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
4e7041c652 added a convenient feature
to launch a specific test rather than needing to use the menu;
e8f3645827 broke it; and at some point
the functions removed there were added back in a way that couldn't
work (during a merge?) addExample is in use everywhere; showExample
is in use only for the pointer handlers manual test; and hideExample
isn't in use, so we can remove it again.
Change-Id: I19cacbd3324889da9768b73ec2640aa0c1de96ef
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
Nothing over the top, just some page animations on enter/exit.
Change-Id: I822efe3e25928ff7797dd2911b9d2ce8dce00936
Reviewed-by: Gunnar Sletta <gunnar@crimson.no>
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
This makes it easier to repeatedly launch the same test: specify
the qml file on the command line instead of having to click the
list item each time. e.g. ./pointer tapHandler.qml
Change-Id: I30b449b161107b1746418fc45518d202ba7d8381
Reviewed-by: Jan Arve Sæther <jan-arve.saether@qt.io>
The generic backend uses the triangulator from QtGui, but is in
fact OpenGL-only for now due to materials.
The NVPR backend uses GL_NV_path_rendering on NVIDIA hardware with
OpenGL 4.3+ or OpenGL ES 3.1+.
The software backend simply uses QPainter.
With the generic backend each PathItem is backed by a non-visual root node
and 0, 1 or 2 child geometry nodes, depending on the presence of visible
stroking and filling. The potentially expensive triangulation happens on
updatePolish(), on the gui thread. This is proven to provide much smoother
results when compared to doing the geometry generation on the render thread
in updatePaintNode(), in particular on power-limited embedded devices.
The NVPR backend uses a QSGRenderNode in DepthAware mode so that the batch
renderer can continue to rely on the depth buffer and use opaque batches.
Due to not relying on slow CPU-side triangulation, this backend uses 5-10
times less CPU, even when properties of the path or its elements are
animated.
The path itself is specified with the PathView's Path, PathLine, PathArc,
PathQuad, etc. types. This allows for consistency with PathView and the
2D Canvas and avoids a naming mess in the API. However, there won't be a
100% symmetry: backends like NVPR will not rely on QPainterPath but process
the path elements on their own (as QPainterPath is essentially useless with
these APIs), which can lead to differences in the supported path elements.
The supported common set is currently Move, Line, Quad, Cubic, Arc.
The patch introduces PathMove, which is essentially PathLine but maps to
moveTo instead of lineTo. More types may get added later (e.g. NVPR can do
a wide variety of optimized rounded rects, but this requires directly
specifying a GL_ROUNDED_RECTx_NV command, thus neededing a dedicated Path
type on our side too)
For filling with gradients only linear gradients are supported at the
moment.
In addition to the declarative API, a more lightweight, QObject-less
JS-callable API should be considered as well for the future.
Change-Id: I335ad64b425ee279505d60e3e57ac6841e1cbd24
Reviewed-by: Andy Nichols <andy.nichols@qt.io>
It just saves the trouble of setting the Text color to the correct
palette text color repeatedly, and avoids having black text on
a dark background in case a dark theme is in use.
Change-Id: If5c38fabe7f047fa5f6956a9d8b235886ab7ab5c
Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
This change also fixes the build of two benchmarks, tst_affectors
and tst_emission.
Conflicts:
src/plugins/qmltooling/qmldbg_native/qmldbg_native.pro
src/qml/qml/ftw/qhashfield_p.h
tests/benchmarks/particles/affectors/tst_affectors.cpp
tests/benchmarks/particles/emission/tst_emission.cpp
tests/benchmarks/qml/pointers/pointers.pro
tests/benchmarks/qml/pointers/tst_pointers.cpp
tests/benchmarks/qml/qmltime/qmltime.pro
tests/benchmarks/qml/qquickwindow/qquickwindow.pro
Change-Id: I595309d1e183c18371cb9b07af6e4681059de3b2
Subjects each *.png file that matched grep -law "sRGB" to:
pngcrush -ow -brute -rem allb -reduce
Various tools grumble about sRGB tables in PNG images; and our
handling of them doesn't pay attention to these, so purging them
makes the images smaller with no loss to the images.
Change-Id: If3baf60fb7c0045446ddfddecef96374845e739e
Reviewed-by: Topi Reiniö <topi.reinio@theqtcompany.com>
From Qt 5.7 -> examples are lisenced under BSD license, see
http://blog.qt.io/blog/2016/01/13/new-agreement-with-the-kde-free-qt-foundation/
Updated license headers to use new BSD header instead of LGPL21 one
(in those files which will be under BSD)
Change-Id: I09ba19590e9425d5116a6c27cbc183debb485dde
Reviewed-by: Lars Knoll <lars.knoll@theqtcompany.com>
Use new connection syntax and return -1 on load failures, which
avoids hanging processes and empty windows in case some module is not
installed.
Change-Id: I4966c9657b752eee8612fa893a0489bc8a64ccfc
Reviewed-by: Shawn Rutledge <shawn.rutledge@theqtcompany.com>
So far there are manual tests for Flickable and
MultiPointTouchArea. It can be expanded later.
Change-Id: Ifa838b68f137a49647a208dc15f22c90f1e02d1f
Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com>
Qt copyrights are now in The Qt Company, so we could update the source
code headers accordingly. In the same go we should also fix the links to
point to qt.io.
Change-Id: I61120571787870c0ed17066afb31779b1e6e30e9
Reviewed-by: Iikka Eklund <iikka.eklund@theqtcompany.com>
This affects the location of the QSettings files or registry entries.
Other parts of Qt are using this organization name so it's good to
have all the settings in the same place.
[ChangeLog][QtQuick] tools and examples consistently use the
QtProject organization name
Change-Id: I1fae4eaed0248411fe95dda9572d38006648b162
Reviewed-by: J-P Nurmi <jpnurmi@digia.com>