summaryrefslogtreecommitdiffstats
path: root/examples/applicationmanager/frame-timer
Commit message (Collapse)AuthorAgeFilesLines
* Re-organize the appman libraries into more manageable chunksRobert Griebl8 days2-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is part 2 of this patch series. Part 1 was about converting the libs from static to shared. This patch now consolidates the library zoo into more manageable and logical chunks. Plus this will also help with keeping the hit to the startup performance (incurred by part 1) in check. The new setup closely follows the QML module nomenclature, but needs to account for the tool builds as well. The new libs are: - Common no changes - Package a combination of Package, Application and Crypto - Shared renamed from SharedMain and combined with Monitor and IntentClient - SystemUI renamed from Main and combined with Manager, DBus, IntentServer and Window - Application renamed from ApplicationMain Because the CrashHandler is using a "constructor" function, it had to be moved from the Common to the Shared lib to avoid having the custom crash handler also in the tools, as they need to install their own CTRL+C handler at times. In addition the 3 QML import modules are now built as official QML plugins and they are installed into $QTDIR/qml as any other import library. NB! There is a problem we still have to solve: custom appman binaries (system-ui's) are currently built by linking against Qt::AppManMain, but this no longer exists. It would be ideal if we could add an alias here. The other renamed modules are not that problematic, as they shouldn't be used outside of the appman project itself. If an alias is not possible, a dummy library which depends on the new "SystemUI" one should also do the trick. Change-Id: Id07e05a523c48e773c295c5be2f27804229155e0 Pick-to: 6.11 Reviewed-by: Bernd Weimer <bernd.weimer@qt.io>
* Fix all cmake warnings in the examples and testsRobert Griebl14 days1-11/+5
| | | | | | | | | | | | All the warnings in the examples came from qt_internal_add_example in qtbase changing and nobody applying the necessary fixes to the appman examples. The bubblewrap example on the other hand just had a package name that conflicted with QML module conventions. Change-Id: Id63ccb9b02c16ae581a1796c09d1308f61a85511 Reviewed-by: Dominik Holland <dominik.holland@qt.io>
* Examples: enable development modeRobert Griebl2025-11-191-0/+3
| | | | | Change-Id: I050cee2f770ee7dd86ca1e52c0c956244ac60853 Reviewed-by: Dominik Holland <dominik.holland@qt.io>
* Examples: Move to 'Embedded' categoryKai Köhne2025-06-241-0/+1
| | | | | | | | | This makes sure the example are shown under 'Embedded' in Qt Creator's welcome screen, and not under 'Other'. Pick-to: 6.9 6.10 Change-Id: Ib4f39f9ddc65b70d5f6b3cd7ea36ecdf7157b99f Reviewed-by: Robert Griebl <robert.griebl@qt.io>
* Add a new monitoring component to detect unneccesary renderingRobert Griebl2024-12-012-5/+23
| | | | | | | | FrameContentTracker helps with detecting non-visible animations or Wayland clients that are rendering off-screen only. Change-Id: I827179f76df75e96b7c5dd6742fc2240cd79fd71 Reviewed-by: Bernd Weimer <bernd.weimer@qt.io>
* Fix frame-timer example and MonitorModelRobert Griebl2024-11-131-9/+17
| | | | | | | | | | | | | | | | | * The fps bar graph should have been aligned at the bottom, but ListView delegate x/y positioning changed in Qt 6. * The combination of QAIM::beginMoveRows and QML's ListView results in a steady ~7 fps render load (with spikes into the 60s), even with no move animations enabled. Switching to manually calling layoutChanged gets us back to 1 fps. * The dataChanged signal for a new datapoint was emitted for the wrong model index. Change-Id: I1969b08f36ebfebb4f51cc32cc6d7745ef96e78e Pick-to: 6.5 6.8 6.8.1 Reviewed-by: Dominik Holland <dominik.holland@qt.io>
* CMake: Use versionless commands everywhereDominik Holland2024-09-041-2/+2
| | | | | | Change-Id: I3bd2bde0ffc04e57ae852c92828626f97e04a0f6 Pick-to: 6.8 Reviewed-by: Robert Griebl <robert.griebl@qt.io>
* Add missing install destinations to all examplesDominik Holland2024-08-191-0/+2
| | | | | | | | | | Install destinations for BUNDLE and LIBRARY are needed for android and ios deployment. Change-Id: I8370e3155534f9d0c99c9ea1ca6ecbe2e1543884 Pick-to: 6.8 Fixes: QTBUG-127933 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* Remove the now defunct qmake pro files for the examplesRobert Griebl2024-07-301-29/+0
| | | | | | | | Also fixed some docs that still reference qmake functionality. Pick-to: 6.8 Change-Id: I9244248b3a6252ef10cbd44c6e51de01ca22b2d6 Reviewed-by: Bernd Weimer <bernd.weimer@qt.io>
* Switch all examples to the modern am-package manifest formatRobert Griebl2024-07-262-6/+10
| | | | | | Change-Id: Ia4cf62be2e793ccab269b64d7188c9202b160360 Pick-to: 6.8 Reviewed-by: Dominik Holland <dominik.holland@qt.io>
* Rewrite all examples using modern Qt APIsDominik Holland2024-07-193-15/+58
| | | | | | | | | | | | * Use new CMake API * Add a main.cpp to every example * Compile the system-ui and am-config.yaml into the every binary * Compile all apps in the application-feature example into binaries * Use the new package CMake API in all examples Pick-to: 6.8 Change-Id: I97112bde1631c142a65824f30233835076f6cab6 Reviewed-by: Robert Griebl <robert.griebl@qt.io>
* doc: Document the problem with missing libwayland-dev packagesRobert Griebl2024-03-071-0/+2
| | | | | | | Change-Id: If225fd8e4aaff922375f96c573a7996e8ed21f74 Pick-to: 6.7 6.6 6.5 Fixes: QTBUG-123088 Reviewed-by: Dominik Holland <dominik.holland@qt.io>
* Make all example and doc QML imports versionlessRobert Griebl2023-06-173-9/+9
| | | | | | Pick-to: 6.6 Change-Id: Ie3292ac14ce07c5eda08fc7869c21a788eddd1c8 Reviewed-by: Dominik Holland <dominik.holland@qt.io>
* Make sure that no example throws qmllint warningsRobert Griebl2023-06-121-18/+28
| | | | | | Pick-to: 6.6 Change-Id: I8915fce95eaa0f2c80290f403088c842b02c9657 Reviewed-by: Bernd Weimer <bernd.weimer@qt.io>
* CMake: document qt6_am_add_systemui_wrapperRobert Griebl2022-09-271-0/+1
| | | | | | Fixes: AUTOSUITE-1673 Change-Id: I95bb5768aa96f35a9941ea29492d52eb789d4075 Reviewed-by: Dominik Holland <dominik.holland@qt.io>
* Use SPDX license identifiersDominik Holland2022-06-154-181/+16
| | | | | | | | | | | | 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: I09660e42dea769d720ff30e652485d9861cea965 Reviewed-by: Robert Griebl <robert.griebl@qt.io>
* Migrate examples from 6.2 to 6.3Bernd Weimer2022-03-221-1/+1
| | | | | | Change-Id: I82424fe66172851f3652ca6acbb4f4d6694a71c2 Pick-to: 6.3 6.3.0 Reviewed-by: Robert Griebl <robert.griebl@qt.io>
* Raise cmake_minimum_required to VERSION 3.16 in examplesRobert Griebl2021-09-221-1/+1
| | | | | | | Change-Id: Ib75913d86e42c3fa8c2a6e5347d110836d0e1c50 Pick-to: 6.2 Task-number: QTBUG-95636 Reviewed-by: Dominik Holland <dominik.holland@qt.io>
* cmake: remove all comments from the pro2cmake tool conversionRobert Griebl2021-06-301-1/+0
| | | | | Change-Id: Id162a38debf7c801dfefb519274a7761e742b7f1 Reviewed-by: Dominik Holland <dominik.holland@qt.io>
* Make all qml-only examples usable from within QtCreatorDominik Holland2021-06-281-14/+4
| | | | | | | | | This adds a new qt6_am_add_systemui_wrapper cmake function which generates a wrapper script and makes sure this is callable from within QtCreator. Change-Id: I8270d31167ef5572514d294d634f55962af04355 Reviewed-by: Robert Griebl <robert.griebl@qt.io>
* cmake: Nearly full cmake buildRobert Griebl2021-06-181-0/+35
| | | | | | | | | | | | | | | | | | | | | | | | | | Had to rename a lot of things to conform with the standard Qt module layout that the cmake system expects: - all non-manual tests were moved to a sub-dir named auto/ - the benchmark was moved to tests/ - the 3rdparty folder was moved into src/ Other changes: - libyaml was updated to 2.2.5 while fixing a weird build issue that led to crashes on 64bit systems. - fixed build issues with the new 8.1 MingW compiler. - added support for QT_NO_OPENGL builds. The remaining issues are: - examples still don't build with qmake due to a potential bug in module.pri generation. - tests do run, but the test data is not generated yet dynamically. - qml-only tests are not built and run yet. - qml-only examples are not built yet. Fixes: AUTOSUITE-1632 Change-Id: Ic5fe0148e738b05835c73bed78e624b55861b75e Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Dominik Holland <dominik.holland@qt.io>
* Update copyright headers to 2021 an finally switch to the GPLRobert Griebl2021-06-014-38/+36
| | | | | | | | | Also removed all the SPDX tags and -QTAS license extensions. Change-Id: Ibd10fe37afcbba832831d027cf2f1891ca0226c0 Fixes: AUTOSUITE-1648 Fixes: AUTOSUITE-1646 Reviewed-by: Dominik Holland <dominik.holland@qt.io>
* Define functions in QML Connections explicitlyBernd Weimer2020-05-271-1/+3
| | | | | | | | | Don't use implicitly defined handler, since this is deprecated from Qt 5.15. This works since Qt 5.14 only, but we are tied to 5.15, anyways. Change-Id: I82e66b0c6186237757e060bfb21d86c91ec8498b Reviewed-by: Robert Griebl <robert.griebl@qt.io>
* Fully transparent and generic cache for config and app databaseRobert Griebl2019-11-071-1/+1
| | | | | | | | | | The existing caching mechanism for config files was abstracted and extended, so that it could be re-used to parse and cache the info.yaml files. This results in a much more robust application database and should get rid of 99.9% of all the -r/--recreate-database option usages. Change-Id: Ic37fcd3b0e55d481712d469b6e331b9c433a9c5d Reviewed-by: Dominik Holland <dominik.holland@qt.io>
* Rename from Luxoft AM to Qt AMRobert Griebl2019-08-054-4/+4
| | | | | | Change-Id: I84bbd9e7f735ed1864804a9887d3a02b7c925e53 Reviewed-by: Vladimir Minenko <vladimir.minenko@pelagicore.com> Reviewed-by: Bernd Weimer <bernd.weimer@pelagicore.com>
* [docs] Review some of Qt Application Manager's examplesKavindra Palaraja2019-04-231-16/+28
| | | | | | | | | * Minor changes to the explanations to improve readability * Sync the section headers for consistency, in a Qt-like style Task-number: AUTOSUITE-927 Change-Id: I60d2ac14f8878ede91ee5489ceefdef0b7811d1d Reviewed-by: Robert Griebl <robert.griebl@pelagicore.com>
* Better automatic dbus setup during developmentRobert Griebl2019-03-141-1/+1
| | | | | | | | | | | | | | | | The default is now to always start a private session bus, unless explicitly configured otherwise. This solves 2 problems: 1) There's no difference between Linux and Mac/Win in regards to configuration default values 2) The 'notifications end up in the desktop environment' problems on Linux desktops cannot happen anymore with a default setup. The --start-session-dbus command line option is now the default and thus obsolete. Change-Id: Ib0487307668ba6d5edfb9c4b0daa5888d1e3b327 Reviewed-by: Kavindra Palaraja <kpalaraja@luxoft.com> Reviewed-by: Dominik Holland <dominik.holland@pelagicore.com>
* Add a runtime warning on non-Linux platforms to both monitoring examplesRobert Griebl2019-01-152-0/+25
| | | | | | | | | | Non-Linux platforms will not generate all required cpu/memory stats to get useful output and graphs in these examples. Disabling the examples via qmake would have been an option, but would have led to problems with the examples' documentation. Change-Id: Id195187961d10c68e4611517f72ec54d2ecba7b9 Reviewed-by: Dominik Holland <dominik.holland@pelagicore.com>
* Update copyright statementsRobert Griebl2018-12-184-4/+8
| | | | | | | | - added 2019 - everything is (c) Luxoft instead of Pelagicore from now on Change-Id: I82f874f0b0601deae1bb39347821edaf3c4cc6d8 Reviewed-by: Dominik Holland <dominik.holland@pelagicore.com>
* Bump all QtApplicationManager QML imports to 2.0Robert Griebl2018-12-183-4/+4
| | | | | | | Change-Id: I98bab2070b7a35cefae46bca8a06bac4a1cf1487 Reviewed-by: Dominik Holland <dominik.holland@pelagicore.com> Reviewed-by: Ilya A, Galkin <igalkin@luxoft.com> Reviewed-by: Bramastyo Harimukti Santoso <bramastyo.harimukti.santoso@pelagicore.com>
* Introduce MonitorModel & friendsDaniel d'Andrada2018-12-0711-0/+667
A better, more flexible, API for monitor-lib. Fixes: AUTOSUITE-692 Fixes: AUTOSUITE-250 Fixes: AUTOSUITE-686 Change-Id: Ib672e6a19beca4e83a51bcdca530c50be1bf00b7 Reviewed-by: Robert Griebl <robert.griebl@pelagicore.com>