summaryrefslogtreecommitdiffstats
path: root/src/common-lib/qml-utilities.h
Commit message (Collapse)AuthorAgeFilesLines
* Change all appman libraries to use Qt's default regarding shared/staticRobert Griebl7 days1-6/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | The idea of using static libraries only was to shave off any milli-second possible from the startup time. This does bring a lot of problems though, in that a lot of valid use-cases where you need access to an internal symbol are not possible, because you cannot link to the static libraries from a Qt or QML plugin, because you get duplicate symbols. As we need the possibility to access Appman symbols from auto-generated plugins for a new intent overhaul, we are doing 2 things now: 1) This patch will simply convert the existing libs over to building as static/shared, depending on how Qt itself was built. 2) The follow-up patch will consolidate the library zoo into more managable and logical chunks. Plus this will also help with keeping the hit to the startup performance in check. A few destructors used in std::unique_ptrs had to made explicit to make MSVC happy. Change-Id: I1bdbb6d8f4c16a6bf70bd98b9a146203d9036a57 Pick-to: 6.11 Reviewed-by: Bernd Weimer <bernd.weimer@qt.io>
* 6.9 cleanup commitRobert Griebl2024-12-011-2/+0
| | | | | | | | | | | - bumped the minimum Qt version to 6.8 (latest LTS) - went through and fixed all TODO comments for 6.9 work - removed deprecated functions slated for removal in 6.9 - due to the growing number of deprecated command-line options, their handling is now unified and removed from --help Change-Id: I1fad746beab6d62e0a37161f5c18179c6fc90a56 Reviewed-by: Bernd Weimer <bernd.weimer@qt.io>
* Warn users about wrongly instantiating QML typesRobert Griebl2024-05-231-0/+6
| | | | | | | | | | | | | Technically we cannot hide SystemUI types in an Application context and vice versa in single-process mode. To make matters worse, we also cannot reasonably check each invocation of a function or property accessor for singletons. But we CAN at least make sure that the instantiatable types are not instantiated in the wrong context. Change-Id: I44ea14f59578f1b3e5230ccfb52e0358896d3d37 Reviewed-by: Dominik Holland <dominik.holland@qt.io>
* QVariants from QML often have QJSValues, which cannot be serializedRobert Griebl2024-03-181-0/+3
| | | | | | | | | | | | | Using anything more complex than a plain string or int for window properties stopped working with Qt 6, as those QJSValues cannot be serialized via QDataStream << anymore. Most QJSValues inside QVariant however can easily be converted to C++ datatypes inside QVariant, so we do that. Change-Id: Iacbc4331d1b5dee514b421db274288df7224f902 Pick-to: 6.7 6.6 6.5 Reviewed-by: Bernd Weimer <bernd.weimer@qt.io>
* Replace all #pragma once with old-style #ifdef include guardsRobert Griebl2024-03-051-1/+4
| | | | | | | | Change-Id: I1805fbccf4d9398fddfe8f4ab977236afc49ca45 Fixes: QTBUG-122951 Pick-to: 6.7 Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Dominik Holland <dominik.holland@qt.io>
* Switch to declarative registrationRobert Griebl2023-11-081-1/+10
| | | | | | | | | | | | | | | | | | | | | | After reworking all the sys-ui/app shared classes, we can now finally switch to declarative registration. As each QML namespace can only have one qt_internal_add_qml_module assigned, we need a dedicated lib/module for each of our namespaces. Due to this problem and in order to keep the code clean, all declarative registrations are kept out of the actual classes (as these are spread over multiple static libs). Instead they are all done in one place (src/qml/../) using the "foreign" syntax. The internal AmTest class (only used for the QML auto tests) had to be moved to a new QtApplicationManager.Test namespace, because adding an imperative registration to a declaratively registered namespace hides all the existing classes. Change-Id: I2e5b782da33a470a6d267cf45b42866fe6a9c14e Task-number: QTBUG-103266 Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Dominik Holland <dominik.holland@qt.io>
* Fix include style to what's mandated for public headersAlexandru Croitor2022-12-121-2/+2
| | | | | | | | | | This fixes errors for the developer-build. Task-number: QTBUG-109337 Change-Id: I145e5eb5074f6e8b03e3304f58f0dd57ee1dfe95 Reviewed-by: Zoltan Gera <zoltan.gera@qt.io> Reviewed-by: Alexey Edelev <alexey.edelev@qt.io> Reviewed-by: Robert Griebl <robert.griebl@qt.io>
* Use SPDX license identifiersDominik Holland2022-06-151-30/+4
| | | | | | | | | | | | 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>
* Remove the old deprecated ApplicationIPCManager IPC mechanismRobert Griebl2021-07-271-4/+0
| | | | | | | | The unit tests that needed an IPC side channel have been updated to use intents instead. Change-Id: Ifbd82728557eadaea08425e9eacf2cbf8a08293e Reviewed-by: Dominik Holland <dominik.holland@qt.io>
* Update copyright headers to 2021 an finally switch to the GPLRobert Griebl2021-06-011-24/+13
| | | | | | | | | 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>
* Rename from Luxoft AM to Qt AMRobert Griebl2019-08-051-1/+1
| | | | | | Change-Id: I84bbd9e7f735ed1864804a9887d3a02b7c925e53 Reviewed-by: Vladimir Minenko <vladimir.minenko@pelagicore.com> Reviewed-by: Bernd Weimer <bernd.weimer@pelagicore.com>
* Update copyright statementsRobert Griebl2018-12-181-1/+2
| | | | | | | | - added 2019 - everything is (c) Luxoft instead of Pelagicore from now on Change-Id: I82f874f0b0601deae1bb39347821edaf3c4cc6d8 Reviewed-by: Dominik Holland <dominik.holland@pelagicore.com>
* Remove the retakeSingletonOwnershipFromQmlEngine hackDominik Holland2018-04-271-2/+0
| | | | | | | | | This was needed to fix the ownership issue of C++ singletons given to QML. This is fixed inside Qt since 5.6 by setting the ownership of the object to C++ using QQmlEngine::setObjectOwnership() Change-Id: I3985890b90fedf42673e0d835e91ac0195ba2af5 Reviewed-by: Robert Griebl <robert.griebl@pelagicore.com>
* Update Pelagicore copyright headers to 2018Robert Griebl2018-02-071-1/+1
| | | | | Change-Id: I8d9278053ccdef5a57e51753aa6157941ebcee52 Reviewed-by: Dominik Holland <dominik.holland@pelagicore.com>
* Refactor the interface between the AM and runtime launchersRobert Griebl2017-12-151-0/+2
| | | | | | | | | | | | | * A lot of shared code was moved to the new shared-main library, making it easier to write custom runtime launchers * Simplified the qml runtime launcher * The new OpenGL versioning was extended to apps using the QML runtime * Settings are communicated to the apps as plain text YAML documents now, which makes it very easy to verify and extended this interface. Task-number: AUTOSUITE-162 Change-Id: I0c1be3ac2e38ab492e69182058098cf31d34484b Reviewed-by: Dominik Holland <dominik.holland@pelagicore.com>
* Introduce config file cachingRobert Griebl2017-04-251-0/+4
| | | | | | | | | | | After parsing all config files specified on the command line, the appman will write a binary dump of the resulting configuration QVariantMap to a cache file via QDataStream. This cache file includes absolute paths and checksums of all config files, so that the appman can verify if the cache is still up-to-date on subsequent starts. Change-Id: I1d6f6621f75d1bba7849b3514177fc2c245c4c23 Reviewed-by: Dominik Holland <dominik.holland@pelagicore.com>
* Updated Pelagicore AG copyright to 2017Robert Griebl2017-01-161-1/+1
| | | | | | | Also added a few pro file tweaks to make this search&replace easier next year. Change-Id: I2d1153d62bfe558075009abcd8cad491f149c93f Reviewed-by: Dominik Holland <dominik.holland@pelagicore.com>
* Make the build warning freeRobert Griebl2016-10-191-2/+2
| | | | | | | | | Replaced all AM_*_NAMESPACE with the undocumented QT_*_NAMESPACE_<foo> mechanism. Add dummy "we mean it" comments to _p.h headers, even though all of the AM's C++ API is private anyway. Change-Id: I45c1b7490f3d519e79350a19dab129ad20623d92 Reviewed-by: Thomas Senyk <thomas.senyk@pelagicore.com>
* Reimplemented build-system as a real Qt moduleRobert Griebl2016-10-171-0/+52
This should help with doc generation and actually running the unit-tests in the CI system. Please note that the binaries are now installed into $$[QT_INSTALL_BINS] Change-Id: I6f27ba39f8e5d923e1aeff550ba11c1fbd8ac5cf Reviewed-by: Robert Griebl <robert.griebl@pelagicore.com>