summaryrefslogtreecommitdiffstats
path: root/src
Commit message (Collapse)AuthorAgeFilesLines
...
* Compile ifcodegen into a binaryDominik Holland2023-03-314-18/+155
| | | | | | | | | | | | | | | | | | | | The generator is packaged using nuitka as a standalone onefile binary package. The resulting binary doesn't depend on a lot of files and contains everything which is needed for the generator to work. The binary replaces the error prone virtualenv packaging. The compilation takes some time and doesn't have any benefit for qt-module developers. Because of that, the compilation needs to be enabled by using the -compiled-ifcodegen configure option. The current virtualenv packaging is not removed from the repository yet, but once the new binary proves to be a good replacement the code can be removed. Change-Id: I43cc97429553b72bac7391d0d558615277988151 Fixes: QTBUG-105233 Reviewed-by: Robert Griebl <robert.griebl@qt.io>
* Fix 6.6 QSqlDatabase deprecationsRobert Griebl2023-03-131-7/+8
| | | | | | | | | Also, the db.commit() doesn't do anything as there is no transaction. Task-number: QTBUG-111898 Change-Id: I42cde44cb405f42075b6943c82e82e976ebba338 Reviewed-by: Zoltan Gera <zoltan.gera@qt.io> Reviewed-by: Robert Griebl <robert.griebl@qt.io>
* doc: Add a "What's New" Page with all new featuresDominik Holland2023-02-154-0/+44
| | | | | | Pick-to: 6.5 Change-Id: Icf3fe3cda8cf64cec4d1c1cf1543af24638b734f Reviewed-by: Robert Griebl <robert.griebl@qt.io>
* Fix the venv creation using Python 3.11 on DebianRobert Griebl2023-02-152-5/+14
| | | | | | | | | | | - re is not just re.py anymore - libssl is not a hard dependency anymore - the lib64 directory may not even be there to begin with Pick-to: 6.5 6.4 6.2 Change-Id: I945f8edbb11f58278b42a6893214ff82e4f882fb Reviewed-by: Zoltan Gera <zoltan.gera@qt.io> Reviewed-by: Dominik Holland <dominik.holland@qt.io>
* ifcodegen: Fix windows virtualenv deploymentDominik Holland2023-02-071-1/+1
| | | | | | | | | | | Also copy the python.exe from the original installation into the virtualenv. The python.exe created by virtualenv seems to be special wrapper, which always forwards to the original installation. Fixes: QAA-1724 Pick-to: 6.5 6.4 6.2 Change-Id: I7b175fc8416a895f4edc933adba6dd32f2985b87 Reviewed-by: Robert Griebl <robert.griebl@qt.io>
* Add QIfConfiguration based settings to the autogenerated codeDominik Holland2023-01-2411-44/+317
| | | | | | | | | | | | | | * Exposes the serviceSettings as property of the backend to the QML simulation * Adds a way to set and change the connectionUrl for every backend * If the connectionUrl changes the QtRO node will be reconnecting to the new url * Adds a setting to define the connectionTimeout Task-number: QTBUG-99079 Pick-to: 6.5 Change-Id: I277e304b31bed0073f559b79eec64cf47cf8260f Reviewed-by: Robert Griebl <robert.griebl@qt.io>
* Add QIfConfiguration based settings to qtifmediaDominik Holland2023-01-2428-107/+499
| | | | | | | | | | | | | | | | * All feature classes use "qtifmedia" as default configurationId * In addition to control the simulation using env variables settings can now be passed as serviceSettings * Adds a way to set and change the connectionUrl for every instance within the qtifmedia_qtro backend. * If the connectionUrl changes the QtRO node will be reconnecting to the new url * Adds a setting to define the connectionTimeout Task-number: QTBUG-99079 Pick-to: 6.5 Change-Id: Ie125ea33eaaa4f3d04e061bcf23857cafae78d39 Reviewed-by: Robert Griebl <robert.griebl@qt.io>
* Add documentation for the new featuresDominik Holland2023-01-175-3/+742
| | | | | | Pick-to: 6.5 Change-Id: I8db93d48211394f6861fa6c2ba9f19525c9a59c7 Reviewed-by: Robert Griebl <robert.griebl@qt.io>
* Make test template generate Android runner compatible codeZoltan Gera2023-01-123-19/+38
| | | | | | | | | | | | | | | | | | | The executable generated by the test template used to call all interface tests one by one. Android testrunner drives test results into output files and gets attention of failures by examining those files. However, these files are not appended, but rewritten by all successive tests which caused broken tests going undetected if they are not in the last pass. The test template is modified in a way that all interface level tests are called from a main test class. This way, all interfaces are tested in one pass resulting in a single test output file while keeping all test functionality intact. Fixes: QAA-1611 Pick-to: 6.5 Change-Id: I6574c0ba76e2330a3fef17a3fba8834515bb5c6a Reviewed-by: Dominik Holland <dominik.holland@qt.io>
* Improve the deploy-virtualenv.bat to work with a python from the app storeDominik Holland2023-01-121-18/+5
| | | | | | | | | | | | | | | | | | When python is installed from the Microsoft App Store the installation is split. Usually the created virtualenv indicates where the base_prefix is and we can use that to copy all needed files. With that special python version the virtualenv doesn't contain the base_prefix location and we don't know where to copy the files from. Instead of relying on the virtualenv config files, we now ask python itself about it's base_prefix. Pick-to: 6.5 6.4 6.2 Fixes: QTBUG-109936 Change-Id: Ic2576f32fe01d50a2d575e3332ef2fc7124ca2d6 Reviewed-by: Robert Griebl <robert.griebl@qt.io> Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
* qtifglobal_p.h: remove 5.6 backportsMarc Mutz2023-01-111-19/+0
| | | | | | | | | | Support for 5.6 ended 2019-03-16. And this is the Qt 6 code, anyway. Pick-to: 6.5 Change-Id: I3ee8e944c5db2211470f8344c498d1a3f9c50015 Reviewed-by: Dominik Holland <dominik.holland@qt.io>
* doc: Fix all paths in the qt_attribution.json filesDominik Holland2023-01-112-4/+4
| | | | | | | | | Some of the files have been moved, but the attribution files were still pointing to the old location. Pick-to: 6.5 6.4 6.2 Change-Id: I6c53e90802775bdad055f3dcf66f4c8124b708e7 Reviewed-by: Assam Boudjelthia <assam.boudjelthia@qt.io>
* Fix deploy-virtualenv.bat to handle new python versionsDominik Holland2023-01-111-2/+6
| | | | | | | | | | | In newer python versions the dlls are not located in the Scripts folder. Without the dlls the created virtualenv is not fully relocatable. Also fixes some errors when the path contains some spaces. Pick-to: 6.5 6.4 6.2 Change-Id: Iac9db12f411d39e9a6674bdc082da084ca8d0b35 Reviewed-by: Assam Boudjelthia <assam.boudjelthia@qt.io>
* Use std::as_const instead of qAsConstDominik Holland2023-01-119-18/+18
| | | | | | Pick-to: 6.5 Change-Id: I2606d1168dbd0061118e5e05fb44d22dcfac248c Reviewed-by: Robert Griebl <robert.griebl@qt.io>
* qface-tutorial: Improve qml plugin codeDominik Holland2022-12-151-1/+1
| | | | | | | | | Also add the CLASS_NAME for static linking and IMPORTS statement for a QML dependency to qt_add_qml_module. Pick-to: 6.4 6.5 Change-Id: Ia12600994b3046104bb1a7128f3ef7e34039543d Reviewed-by: Robert Griebl <robert.griebl@qt.io>
* ifcodegen: Add all headers to target_sources when building with CMakeDominik Holland2022-12-155-0/+9
| | | | | | | | | This extends 3050a2a1e47325fb002386312ecc97c2c2e3222c to all other templates. Pick-to: 6.5 6.4 6.2 Change-Id: Ibac0238ff789ec2bbe97e9b3e2763f77c3fb5566 Reviewed-by: Robert Griebl <robert.griebl@qt.io>
* Fix calling initialize() twice in QIfMediaDeviceDiscoveryModelDominik Holland2022-12-131-3/+0
| | | | | | | | | | | | | This caused the signals to be emitted twice as well and calling resetModel() a second time. resetModel() deleted all elements although it didn't own them and this caused a crash when calling resetModel() again with a list of dangling pointers. Pick-to: 6.2 6.3 6.4 6.5 Change-Id: Iad0455e10867235aae2478704acdcb53fbce1930 Reviewed-by: Robert Griebl <robert.griebl@qt.io>
* Fix QML type registration for some typesDominik Holland2022-12-133-1/+4
| | | | | | | | | * QIfAbstractZonedFeature was registered with the wrong name * QIfAbstractFeatureListModel wasn't registered at all Pick-to: 6.3 6.4 6.5 Change-Id: I0fed94fd2fcf1b1ef231d3a33991224db4f7aed4 Reviewed-by: Robert Griebl <robert.griebl@qt.io>
* CMake: Fix IfVehicleFunctions to build with syncqt/cppAlexandru Croitor2022-12-121-0/+7
| | | | | | | | | | | | | The headers generated by ifcodegen were not passed via target_sources in the generated/included cmake file, so syncqt didn't know it was supposed to create forwarding headers. Adjust the frontend template to pass the header files to target_sources. Fixes: QTBUG-109355 Change-Id: I50e0eb1d8cff959ba05294650758772bddc244a3 Reviewed-by: Dominik Holland <dominik.holland@qt.io>
* ifcodegen: Correctly register also the base class to QMLDominik Holland2022-12-093-0/+9
| | | | | | | | | | | | | Because of the newly added properties in QAbstractFeature and friends and the usage of REVISION the base class needs to be registered to QML as well to make it known and expose the new properties. Also automatically import the InterfaceFramework QML module when importing the autogenerated module. This makes sure all InterfaceFramework QML types are available in QML as well without an additional import. Change-Id: I30124c0818ac90f1f0474d0c30865095301f68e9 Reviewed-by: Robert Griebl <robert.griebl@qt.io>
* Also specify the major version in all REVISION statementsDominik Holland2022-12-093-15/+15
| | | | | Change-Id: Ib42fe9fd1a89743610e2c1762ddf9daf63e9d535 Reviewed-by: Robert Griebl <robert.griebl@qt.io>
* doc: Ignore qdoc warnings until the new features are documentedDominik Holland2022-12-071-1/+1
| | | | | | Change-Id: Idfdd672746be4902976b387c9d99652d54e296c1 Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Robert Griebl <robert.griebl@qt.io>
* QIfSimulationEngine: Also accept local file paths instead of urlsDominik Holland2022-12-071-0/+2
| | | | | Change-Id: Icc0159665e03497b970ac8177eebb765ac659e2a Reviewed-by: Robert Griebl <robert.griebl@qt.io>
* QIfConfiguration: Add the registration also to QtInterfaceFrameworkModuleDominik Holland2022-12-071-0/+2
| | | | | Change-Id: I1263736bbbea7c9dd968e9f75a6f08b6d962ec99 Reviewed-by: Robert Griebl <robert.griebl@qt.io>
* QIfConfiguration: Fix creation from within QMLDominik Holland2022-12-072-2/+35
| | | | | | | | | | | A QIfConfiguration always needs to have a name until it is valid. For usage in QML we need to store all values internally and check for the name once the component has been completed. Change-Id: Ifeb16a73eaa1acd8c4df21e71fd98991508a1ee4 Reviewed-by: Robert Griebl <robert.griebl@qt.io>
* QIfConfiguration: Fix backendSettings ini parsingDominik Holland2022-12-072-5/+21
| | | | | | | | | | | Reading QVariantMaps from a ini file using QSettings is only possible when the binary format is used. To make the ini human-readable, we use '/' as a separator in key names and parse the values ourself. Change-Id: Id9203913052e04eab442903142006a1a57491be2 Reviewed-by: Robert Griebl <robert.griebl@qt.io>
* QIfConfiguration: Add an autotestDominik Holland2022-12-072-9/+7
| | | | | Change-Id: Icb8c06a88ee942fdbca54b1f0184cc163ea9ea30 Reviewed-by: Robert Griebl <robert.griebl@qt.io>
* QIfConfiguration: Add a way to set a QIfServiceObjectDominik Holland2022-12-073-0/+75
| | | | | | | | | | | | This can be used to change all the ServiceObject of all Features which belong to a QIfConfiguration by a single call. This is useful for usecases where the auto discovery system cannot be used. Change-Id: Ic2480e5dfc08414afcc28638554d9604ecb2059b Reviewed-by: Robert Griebl <robert.griebl@qt.io>
* QIfConfiguration: Show override warnings in QMLDominik Holland2022-12-074-21/+53
| | | | | | | Also add a ignoreOverrideWarnings property to disable those warnings. Change-Id: I2c37082fa7f49d0b394da404ebf3caf1cf9547a2 Reviewed-by: Robert Griebl <robert.griebl@qt.io>
* Improve the auto discovery systemDominik Holland2022-12-0715-12/+195
| | | | | | | | | | | | | | | | | | | | The auto discovery system works fine when only a single production or a single simulation backend were found. In case multiple backends were found the first backend was used, which was not always the desired backend. The QIfServiceManager can now also use an additional list of preferred backends. This list can contain wildcards and tries to find a single matching backend. A new preferredBackends property is also added to QIfAbstractFeature and QIfAbstractFeatureListModel. Task-number: QTBUG-99081 Task-number: QTBUG-99082 Change-Id: Ic5834c826f157d9b457dea769ef88c29ab90f617 Reviewed-by: Robert Griebl <robert.griebl@qt.io>
* QIfConfiguration: Add Feature related propertiesDominik Holland2022-12-079-7/+217
| | | | | | | | | | This adds a way to change the auto discovery mode of all features belonging to a QIfConfiguration. Task-number: QTBUG-99078 Task-number: QTBUG-99081 Change-Id: Ie73f1cb778c89c6cb371463b7dee36d55f47c477 Reviewed-by: Robert Griebl <robert.griebl@qt.io>
* QIfConfiguration: Add simulation related propertiesDominik Holland2022-12-074-53/+198
| | | | | | | | | | | This moves the parsing of QTIF_SIMULATION_OVERRIDE and QTIF_SIMULATION_DATA_OVERRIDE to the new configuration class and makes sure the values can also be updated with the new class and from QML. Task-number: QTBUG-99081 Change-Id: Icfd5624c8e808675940fbf2c29fe45c448f1a465 Reviewed-by: Robert Griebl <robert.griebl@qt.io>
* Add a new QIfConfiguration classDominik Holland2022-12-0711-0/+456
| | | | | | | | | | | | | | | | | | | | | | | This class provides a way to store and update settings for ServiceObjects, Features and the SimulationEngine. The configurationId of an Object decides to which configuration group it belongs. Default values for Configurations are loaded from a ini file and can be overridden using environment variables. This first commit adds the API for storing service settings. Those service settings are passed to the matching ServiceObjects. This can be used for backend specific settings e.g. a server url for the autogenerated remote objects backends. Fixes: QTBUG-99078 Task-number: QTBUG-99079 Task-number: QTBUG-99081 Change-Id: I814335af1944b87921ecde7873f035d71d183721 Reviewed-by: Robert Griebl <robert.griebl@qt.io>
* Doc: Fix paths for Files property in qt_attribution.json filesKai Köhne2022-12-071-1/+1
| | | | | | Pick-to: 6.2 6.4 Change-Id: I10bba78ffce32be9495d2490e9aea991be3691fe Reviewed-by: Jörg Bornemann <joerg.bornemann@qt.io>
* Doc: Fix link to CMake Commands in Qt6 InterfaceFrameworkKai Köhne2022-12-061-1/+1
| | | | | | | | Amends fea34864fd12f812728 Pick-to: 6.4 Change-Id: I326c5b61a9379384e35793d9bd961795cc6c4bce Reviewed-by: Dominik Holland <dominik.holland@qt.io>
* Fully qualify all enums in the QIfServicerManagerDominik Holland2022-11-031-2/+2
| | | | | | Pick-to: 6.2 6.3 6.4 Change-Id: I60af6cfa2ce8cc8b74b34395be324052785b7247 Reviewed-by: Robert Griebl <robert.griebl@qt.io>
* Doc: Add online sidebar to improve navigationTopi Reinio2022-11-032-1/+51
| | | | | | Pick-to: 6.4 Change-Id: I3c7515c0082308727ec21880e0695db0fbb6fe8d Reviewed-by: Dominik Holland <dominik.holland@qt.io>
* Doc: Add overview pages to CMake APIKai Köhne2022-11-023-8/+49
| | | | | | | | | | | | | | | Provide a landing page for InterfaceFramework commands and variables, making it easier to navigate between them in the breadcrumb menu. Also, add details on where the respective command is found. Finally, for variables, normalize the .html name (this is done otherwise by qdoc). Pick-to: 6.4 Task-number: QTBUG-96239 Change-Id: I06411168f6bd0959a4a5a54ebf435718a167656a Reviewed-by: Dominik Holland <dominik.holland@qt.io>
* Doc: Show CMake command/variable summary also in page itselfKai Köhne2022-11-022-6/+6
| | | | | | | | | \summary macro in qbase makes sure that the sentence is both shown in the overview (\brief), but also in the actual page. Pick-to: 6.4 Change-Id: Ie7b7c3e092db483af67a132b09bfd1ba76465974 Reviewed-by: Dominik Holland <dominik.holland@qt.io>
* ifcodegen: Improvements on python cache handling and error reportingDominik Holland2022-10-191-2/+6
| | | | | | | | | | | | | | | | | | Make sure to call python using the -B flag. This makes sure new byte code is NOT written into a __pycache__ folder next to the python file. This keeps the git repository clean from unwanted files and help in case of errors introduced from that cache at the cost of slight performance degradation. Reporting ifcodegen errors using FATAL_ERROR does add additional newlines and doesn't allow the command to be copied easily. To fix that, the command and error log is now reported as a normal cmake message and building is stopped with a FATAL_ERROR afterwards. Pick-to: 6.2 6.3 6.4 Change-Id: I9f300959fa47a8d895f224beb0645fc32f5179b5 Reviewed-by: Robert Griebl <robert.griebl@qt.io> Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
* ifcodegen: Don't set CMake wide environment variablesDominik Holland2022-10-191-6/+7
| | | | | | | | | | | Instead of setting the environment variables for ifcodegen using CMakes set command, we now set the environment variables only for the call itself using "cmake -E env". Fixes: QTBUG-107661 Pick-to: 6.2 6.3 6.4 Change-Id: I1f2b85e90d30f43a201e08d2632666fe709c4340 Reviewed-by: Robert Griebl <robert.griebl@qt.io>
* ifcodegen: Add support to load extra jinja filtersDominik Holland2022-10-184-0/+58
| | | | | | | | | | | | | | In addition to allow a filters.py which can be part of a custom template folder, there is now also a way to load filters from other locations. The extra_filters are configured in the generation yaml file and can load files from other templates or common folders within the template search path. Fixes: QTBUG-107005 Change-Id: I518ff96659a3792fbb2a1d64ffc1d5c40eb69767 Reviewed-by: Robert Griebl <robert.griebl@qt.io>
* Improve logging of QIfServiceManagerDominik Holland2022-09-211-4/+5
| | | | | | | | | Add add additional information about what type of backend is added. Pick-to: 6.2 6.3 6.4 Change-Id: I7d08834eb25761cc9ad13952813f596b629ae07f Reviewed-by: Robert Griebl <robert.griebl@qt.io>
* ifcodegen: Fix plugin metadata for the backend_simulator templateDominik Holland2022-09-211-1/+2
| | | | | | | | | Add the "simulation" keyword to the plugin metadata to make sure it can be identified as a simulation backend when using static linking. Pick-to: 6.2 6.3 6.4 Change-Id: If9591abc3778fecf4e2992861d3f1dbc01088429 Reviewed-by: Robert Griebl <robert.griebl@qt.io>
* Extend the tutorial by a chapter for own templatesDominik Holland2022-09-161-0/+1
| | | | | | | Pick-to: 6.4 6.4.0 Fixes: QTBUG-98998 Change-Id: Iec90f15b2d2854dbd3c7d0be3fea0c078c64f440 Reviewed-by: Robert Griebl <robert.griebl@qt.io>
* CMake: Regenerate the qifquerryparser files with flex and qlalrDominik Holland2022-09-155-161/+190
| | | | | | | | Always update the files when flex and qlalr are available and we are not cross-compiling. Change-Id: I55706a78eb6194329bf8b16b3f4f17dc861917c3 Reviewed-by: Robert Griebl <robert.griebl@qt.io>
* Doc: Fix broken snippets and other thingsDominik Holland2022-09-073-8/+6
| | | | | | | | | Also enforce zero warnings. Pick-to: 6.2 6.3 6.4 6.4.0 Change-Id: I15a9d32022deb339aefe805267eed9b28a8e14e9 Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
* Don't rely on the Q_ARG and Q_RETURN_ARG macrosDominik Holland2022-09-062-2/+2
| | | | | | | | | | | | | | QMethaObject::invokeMethod and friends have new variadic versions and the macros have been ported to use the new version. Directly use QReturnArgument and QArgument where needed until the QIfSimulationProxy has been ported as well. Fixes: QTBUG-106193 Change-Id: I7074cd8de443fe2348b14e46c6275bbe4d74ddb4 Reviewed-by: Bernd Weimer <bernd.weimer@qt.io>
* Fix CMake warningsDominik Holland2022-09-011-1/+3
| | | | | | Pick-to: 6.4 Change-Id: Ieb4616cd2c12c97edef7d8970429e97437fbb973 Reviewed-by: Robert Griebl <robert.griebl@qt.io>
* Fix all remaining warnings and mark the module as warning freeDominik Holland2022-09-017-10/+10
| | | | | | | | ... at least compile-time warnings. Pick-to: 6.4 Change-Id: Ie14e5eb8ffbd4867f5809b5ebe77945816a50a25 Reviewed-by: Robert Griebl <robert.griebl@qt.io>