summaryrefslogtreecommitdiffstats
path: root/src/manager-lib/quicklauncher.cpp
Commit message (Collapse)AuthorAgeFilesLines
* Make watchdog kills use a distinct Unix signal and ExitStatusRobert Griebl2025-06-061-2/+2
| | | | | | | | | | | | | By raising an otherwise unused system signal (*), the System UI can now distinguish between crashes, forced kills from the sys-ui and also kills by the watchdog. (*) SIGSTKFLT on Linux x86 and ARM and SIGEMT on Linux MIPS, BSD and QNX. Change-Id: I5cdb9084c1f822c36d24cbb0905479e18a3f1b69 Pick-to: 6.10 Reviewed-by: Dominik Holland <[email protected]>
* Refactor the representation of the YAML configurationRobert Griebl2024-05-291-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is a bit of a kitchen sink commit for a lot of things touching the YAML parsing code. Splitting it up would have been a nightmare though and touched a lot of code lines multiple times. - Adding a new field to the YAML confguration was quite involved: 1) add it to the parser in loadFromSource() 2) add it to loadFromCache() 3) add it to saveToCache() (same order as in step 2) 4) add it to merge() 5) bump dataStreamVersion() 6) add one or more public getter function(s) to Configuration, depending on the complexity of the data-type. In order to get around this problem, a lot of fields just used an un-typed QVariantMap. This patch eliminates step 3) and 6) loadFromCache() and saveToCache() now use a common serialize() function and some template magic to do both tasks. - The YAML file is now mostly resembled by a publicly accessible nested struct of structs: this makes the code (a) more readable (as the C++ code matches the YAML structure) and (b) does away with the gazillions of getters. - This was also the perfect time to finally use a real data structure for the OpenGL config, replacing the QVariantMap hack. - While at it, the actual field parsing was made a lot more readble: - got rid of the unnecessary YamlParse* lambda arguments - added helper parseFoo() functions to make code more concise - used the same parseFields(<temp list>) syntax everywhere - added specialized parsing for time duration values Change-Id: Ia811056f7220bf7509af146f69f99c6f7e4b09ea Reviewed-by: Dominik Holland <[email protected]>
* Modernize string literalsRobert Griebl2024-01-081-5/+7
| | | | | | | | | Replace all our custom qSL/qL1S/qL1C macros with standard C++ and QString unicode string literals. Change-Id: I9e0b69fb46525421f408f260518a69b8f8125d99 Pick-to: 6.7 Reviewed-by: Dominik Holland <[email protected]>
* Quicklaunch: improve the runtimesPerContainer settingRobert Griebl2023-12-121-7/+38
| | | | | | | | | Instead of just having a global value for any container/runtime combination, you can now have fine grained control. Change-Id: Ibfa523893bfb30716b9a5a69d116e29709a9c9d8 Pick-to: 6.7 Reviewed-by: Dominik Holland <[email protected]>
* Quick-launch enhancementsRobert Griebl2023-06-301-28/+95
| | | | | | | | | The quick-launcher now detects failing containers and runtimes and will disable any combination that fails too often. Change-Id: I323bc07d81dd353a8910963243bf99ad510c00db Pick-to: 6.6 Reviewed-by: Dominik Holland <[email protected]>
* Improve the debug output when an app failsRobert Griebl2023-06-261-1/+1
| | | | | | Pick-to: 6.6 Change-Id: Iebc7ad4e4fd287efd156d41ab839f6ebc24483a9 Reviewed-by: Bernd Weimer <[email protected]>
* Allow container plugins to check if we have root privilegesRobert Griebl2023-06-251-3/+5
| | | | | | Pick-to: 6.6 Change-Id: Iccd1418023a2cdf171e090346dfe133167009aec Reviewed-by: Dominik Holland <[email protected]>
* Port from qAsConst to std::as_constMarc Mutz2023-01-141-1/+1
| | | | | | | | QT_NO_AS_CONST is now globally enabled in qtbase. Pick-to: 6.5 Change-Id: Ifc2eab1c902e75f5dbfc38ef9a62b29b5c91bc61 Reviewed-by: Jörg Bornemann <[email protected]>
* 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 <[email protected]>
* Fix QScopedPointer::take deprecation warningMårten Nordheim2022-03-241-5/+7
| | | | | | | | | By switching to unique_ptr. Fixes: QTBUG-101999 Pick-to: 6.3 Change-Id: I39959da8561991b1657d1210692afff0c25e36a1 Reviewed-by: Robert Griebl <[email protected]>
* 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 <[email protected]>
* Build optimization: include all moc cpps directly in the main cpp fileRobert Griebl2020-08-111-0/+2
| | | | | | | | This is a Qt module policy and helps a lot with build times -- especially on CI setups. Change-Id: I90574deb7e7b215054a5037b99ee4e7c7a040568 Reviewed-by: Thomas Senyk <[email protected]>
* Avoid missleading quicklaunch logging outputBernd Weimer2020-06-191-7/+10
| | | | | | | | If the quicklaunch feature isn't used, there shouldn't be any application specific mention in the logging output. Change-Id: Ica6c0fb14f2d66f925e20c331afc58e19ff355e5 Reviewed-by: Robert Griebl <[email protected]>
* Rename from Luxoft AM to Qt AMRobert Griebl2019-08-051-1/+1
| | | | | | Change-Id: I84bbd9e7f735ed1864804a9887d3a02b7c925e53 Reviewed-by: Vladimir Minenko <[email protected]> Reviewed-by: Bernd Weimer <[email protected]>
* 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 <[email protected]>
* Get rid of all 0-timeout single-shot timersRobert Griebl2018-10-261-1/+2
| | | | | | | | and replace them with the much more meaningful QMetaObject::invokeMethod, now that we can use this with the C++11 connect syntax. Change-Id: Ib16d214fc41d6994a3badab81094c32457dacd3a Reviewed-by: Daniel d'Andrada <[email protected]>
* Fix Main cleanupDaniel d'Andrada2018-07-231-0/+1
| | | | | | | | | | | | | After Main is shutDown and destroyed everything should be back at the state before Main was first created (all singletons destroyed and their instance pointers reset etc) The author of 95% of this patch is actually Robert Griebl <[email protected]> Change-Id: I70947d95db658f2a123a580323bb894f37ca24ca Reviewed-by: Dominik Holland <[email protected]>
* Update Pelagicore copyright headers to 2018Robert Griebl2018-02-071-1/+1
| | | | | Change-Id: I8d9278053ccdef5a57e51753aa6157941ebcee52 Reviewed-by: Dominik Holland <[email protected]>
* Improve shutdown behavior to avoid crashes when quittingRobert Griebl2017-05-031-7/+30
| | | | | | | | | | Closing the appman via QML, Unix signals or the window [x] button will not just simply call qApp->quit() anymore, but it will send the appman into a "shutdown mode": the event loop keeps running, until all runtimes have quit and all Wayland windows have been released. Change-Id: I4215ae549811970caa78a6460629f62300aede35 Reviewed-by: Dominik Holland <[email protected]>
* Move all monitor related classes to the monitor-libNedim Hadzic2017-04-251-9/+21
| | | | | | | | | | * Created new monitor-lib * Removed dependencies from window and other libs towards monitor classes. Monitor classes should depend on manager and window lib. Change-Id: Ie6f7a82b3a22808eb7414251c996072e47fd2687 Reviewed-by: Bernd Weimer <[email protected]>
* Replace all foreach loops with C++11 ranged-for loopsRobert Griebl2017-03-141-2/+4
| | | | | | | Also replaced a few loops with more efficient implementations. Change-Id: I56f9242a410741fc5e7a291be7c6090c599b7666 Reviewed-by: Thomas Senyk <[email protected]>
* common-lib cleanupRobert Griebl2017-03-131-0/+1
| | | | | | | | | | global.{h,cpp} and utilities.{h,cpp} have become the kitchensink of the AM. This commit splits out the logging functionality from global.{h,cpp} into the new files logging.{h,cpp} and also the crash handling functionality from utilities.{h,cpp} into the new crashhandler.{h,cpp} Change-Id: Idffdb424b1cbd8d92eb60b0ac7f08e17a46c749b Reviewed-by: Dominik Holland <[email protected]>
* Fix for clazy and clang static code analysis findingsRobert Griebl2017-02-271-1/+1
| | | | | Change-Id: I97b29073903f0d7bab6c9e1cc4cc5eacf5357393 Reviewed-by: Dominik Holland <[email protected]>
* 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 <[email protected]>
* Nicer and more consistent debug output during startupRobert Griebl2017-01-091-3/+15
| | | | | | | Also add useful information that was not output before. Change-Id: I4db1219d73e0127fa45d35b3dfa2aece941cd4ae Reviewed-by: Dominik Holland <[email protected]>
* Extended the container interface to make it aware of the app it is executingRobert Griebl2016-12-201-1/+1
| | | | | | | | This is needed for any container solution that needs to map a minimal amount of filesystem directories into the container. Change-Id: Ie6082e8427f1fb3b3068b0a912584d2cc736f63b Reviewed-by: Bernd Weimer <[email protected]>
* Add SystemMonitor documentationBernd Weimer2016-12-141-1/+1
| | | | | | | | | | | | Added SystemMonitor documentation and fixed some issues: * removed interval parameter in CPU and I/O load change signal, since it is not really useful * fixed fpsJitter calculation * properly initialized I/O load reader * deprecated idleLoadAverage in favor of idleLoadThreshold Change-Id: I7a213ba6c75bcf1000d35b611e49e4af96e885e0 Reviewed-by: Robert Griebl <[email protected]>
* 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 <[email protected]>
* Reimplemented build-system as a real Qt moduleRobert Griebl2016-10-171-1/+1
| | | | | | | | | | 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 <[email protected]>
* Stop all runtimes within quicklaunchers on exitRobert Griebl2016-10-071-0/+14
| | | | | Change-Id: I913e0fadb7082cff66a535439484a6484a33800f Reviewed-by: Bernd Weimer <[email protected]>
* Moved all symbols to a private namespaceRobert Griebl2016-09-231-0/+3
| | | | | | | | | This was done to avoid conflicts with C++ plugins that get loaded into both the system-ui or the QML app runtime. Change-Id: I03fc222d806292f0f0734709568514862b6da56d Reviewed-by: Bernd Weimer <[email protected]> Reviewed-by: Dominik Holland <[email protected]>
* Fixed shutdown behavior in multi-process modeRobert Griebl2016-08-101-1/+1
| | | | | | Change-Id: I53d223d5e41c9b706bf42623b8becfe6c31963d1 Task-number: QTAUTO-98 Reviewed-by: Dominik Holland <[email protected]>
* Fixed license header to align with the final QtAS contract.Robert Griebl2016-06-021-6/+16
| | | | | | | | | | | The AppMan is triple-licensed now, like the rest of Qt: commercial, LGPL3 and GPL2/3 To be more aligned with Qt, the docs are also FDL and the tests, as well as the tools are GPL-EXCEPT now. Change-Id: Ib0168a112c3bcd340576f92416a6fe36fa315240 Reviewed-by: Dominik Holland <[email protected]>
* Use the same license wording for GPL3 as the standard Qt 5.7 license.Robert Griebl2016-04-111-13/+14
| | | | | Change-Id: I0f8cb01cd1239bf70434f3b39392a1464c32620e Reviewed-by: Dominik Holland <[email protected]>
* Updated copyright year to 2016Robert Griebl2016-03-171-1/+1
| | | | | Change-Id: I2630c098272ec75bed0333d7eab0610c0c621893 Reviewed-by: Robert Griebl <[email protected]>
* Containers are owned by their runtimes now, so do not delete them explicitlyRobert Griebl2015-12-161-3/+25
| | | | | Change-Id: I3417c775148decb76e757722c92f9751788d13d8 Reviewed-by: Dominik Holland <[email protected]>
* Integrate the SystemMonitor and the QuickLauncher.Robert Griebl2015-12-081-3/+14
| | | | | | | | Basic support for making the QuickLauncher use the current system state for making decisions when to quick-launch containers and runtimes. Change-Id: I9dbb45acc30dc96f26056526ec1fab39b2443b06 Reviewed-by: Dominik Holland <[email protected]>
* Refactored the runtime and container APIRobert Griebl2015-12-081-0/+157
Finally added back quick-launching of runtimes: the new implementation works in a generic way across any container and runtime combination, as long as at least the container supports quick-launching in the first place. The only thing missing is the re-integration of Pelagicore's "pelagicontain" LXC integration, but this will be added in a later commit, preferably via a new plugin interface. Change-Id: I8ba46b21b7123450dea5fc8bac824518abf2e51f Reviewed-by: Dominik Holland <[email protected]>