aboutsummaryrefslogtreecommitdiffstats
path: root/src/libs
Commit message (Collapse)AuthorAgeFilesLines
* Themes: Prevent Qt from changing the app palette behind our backHEADmasterAlessandro Portale7 hours1-1/+4
| | | | | | | | | | | | | | | | | | | | And remove the "GTK_THEME" hack Even though Qt Creator now looked fine when started with a light/mixed theme on a dark system theme, we still had to force a light default palette on the application at startup. The issue is that when the user switches the system theme to dark during Qt Creator's runtime, Qt notices that and changes the default application palette to dark. Prevent that by setting a detached default palette on the application on startup, even if we do not intend to apply custom colors to it. Task-number: QTCREATORBUG-28497 Change-Id: I7a43f108c2299967a14f382e52b62c31491e673d Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
* TaskTree: Introduce withCancel() helperJarek Kobus10 hours2-0/+34
| | | | | | | | | | | | The withCancel() method takes a function returning the sender and its signal pair. When the signal is emitted, the queued call to the running task tree is scheduled, and when dispatched the *this group is canceled and the returned item finishes with an error. Change-Id: I898a7221d91a78225c73abc6885a18a2e7c2ae45 Reviewed-by: Alessandro Portale <alessandro.portale@qt.io> Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
* Merge remote-tracking branch 'origin/13.0'Eike Ziller16 hours1-1/+2
|\ | | | | | | | | | | | | Conflicts: src/plugins/languageclient/languageclientutils.cpp Change-Id: I8d1945f79d93cecee9b22f409bc5f2eefaf6a4cd
| * Add an environment variable for disabling atomic saveEike Ziller3 days1-1/+2
| | | | | | | | | | | | | | | | | | There are situations where e.g. anti virus software leads to saving files failing. Provide a way to disable atomic save for debugging purposes. Task-number: QTCREATORBUG-30728 Change-Id: I1f3df009f89f6c27b2e0c9f91869b2a75f5575d8 Reviewed-by: Orgad Shaneh <orgads@gmail.com>
* | Merge remote-tracking branch 'origin/qds/dev'Tim Jenssen3 days26-1136/+1302
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: doc/qtcreator/src/overview/creator-only/creator-keyboard-shortcuts.qdoc doc/qtcreator/src/qtquick/qtquick-live-preview-devices.qdoc doc/qtcreator/src/qtquick/qtquick-profiler.qdoc src/plugins/qmlprojectmanager/qmlprojectmanager.qbs src/plugins/remotelinux/linuxdevicetester.cpp Change-Id: I3683c1799df05209d05413383456b285a2daf96e
| * | Merge remote-tracking branch 'origin/13.0' into HEADTim Jenssen4 days4-3/+15
| |\| | | | | | | | | | Change-Id: I1f87297930db420606aab8d7016c290483f262c0
| * | Fix max component versionMarco Bubke4 days1-2/+4
| | | | | | | | | | | | | | | | | | Change-Id: Ib7328c00a461f22e5c924a441844260f15fb0dd3 Reviewed-by: Qt CI Patch Build Bot <ci_patchbuild_bot@qt.io> Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
| * | QmlDesigner: Remove template parameter from project storageMarco Bubke4 days1-2/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | There are now other ways to prevent locking bugs. So we don't need the template parameter anymore. That makes it possible to move much of the code to a cpp file. Maybe later we have to move some functions back for performance reasons. Change-Id: I01269912618d7cf5e070219e7edaa3a00623b7cf Reviewed-by: Qt CI Patch Build Bot <ci_patchbuild_bot@qt.io> Reviewed-by: Tim Jenssen <tim.jenssen@qt.io> Reviewed-by: <github-actions-qt-creator@cristianadam.eu> Reviewed-by: Thomas Hartmann <thomas.hartmann@qt.io>
| * | QmlDesigner: Integrate item library entries from project storageMarco Bubke4 days4-77/+91
| | | | | | | | | | | | | | | | | | | | | Task-number: QDS-12102 Change-Id: Id6fbfcfb44d3b8c290f5e5d74addf33ef4d9a5e5 Reviewed-by: Thomas Hartmann <thomas.hartmann@qt.io> Reviewed-by: Qt CI Patch Build Bot <ci_patchbuild_bot@qt.io>
| * | GoogleTest: Update to v1.14Marco Bubke5 days1-0/+0
| | | | | | | | | | | | | | | | | | | | | Change-Id: I8773824675ed9ed58f4aa191d67dea032ddc533b Reviewed-by: <github-actions-qt-creator@cristianadam.eu> Reviewed-by: Qt CI Patch Build Bot <ci_patchbuild_bot@qt.io> Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
| * | QmlJS: Improve/simplify error messageThomas Hartmann9 days1-2/+3
| | | | | | | | | | | | | | | | | | | | | | | | Task-number: QDS-12149 Change-Id: Idaa9bb2624aa3591cafd3ea6c8b62b9dea7cb61a Reviewed-by: Thomas Hartmann <thomas.hartmann@qt.io> Reviewed-by: Qt CI Patch Build Bot <ci_patchbuild_bot@qt.io> Reviewed-by: Pranta Ghosh Dastider <pranta.dastider@qt.io>
| * | Sqlite: Update to 3.45.3Marco Bubke11 days2-119/+390
| | | | | | | | | | | | | | | | | | Change-Id: I8f52308d56619147393238ec04dfedad75d4139f Reviewed-by: Qt CI Patch Build Bot <ci_patchbuild_bot@qt.io> Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
| * | Merge remote-tracking branch 'origin/13.0' into qds/devTim Jenssen2024-04-109-54/+163
| |\ \ | | | | | | | | | | | | Change-Id: I1f6114244514a2b786a8b0d364a303b925ad7757
| * | | QmlDesigner: silence warning for empty imagesTim Jenssen2024-04-101-4/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Also correct logging category the default type is already QtDebugMsg which adds .debug Change-Id: I87803cd2fe9dc142ca8ce271547706f8d7cba3a1 Reviewed-by: Thomas Hartmann <thomas.hartmann@qt.io>
| * | | Sqlite: Prevent name collisions for indicesMarco Bubke2024-04-091-0/+19
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | There can be unique and not unique indices with the same columns. So we add that attribute to the name to distinguish between the indices. Change-Id: I96eac1f0e95c135d625f09fd5399b16f2293d645 Reviewed-by: Thomas Hartmann <thomas.hartmann@qt.io> Reviewed-by: Qt CI Patch Build Bot <ci_patchbuild_bot@qt.io>
| * | | Merge remote-tracking branch 'origin/13.0' into qds/devTim Jenssen2024-03-264-30/+40
| |\ \ \ | | | | | | | | | | | | | | | Change-Id: I28e2e8cacf9a20c8b2f5073f4a492862d814fb99
| * | | | Sqlite: Fix prepare tracingMarco Bubke2024-03-251-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Change-Id: I2b0c36789886d0924ac8130a4d46f3c13fc7518b Reviewed-by: Tim Jenssen <tim.jenssen@qt.io> Reviewed-by: <github-actions-qt-creator@cristianadam.eu> Reviewed-by: Qt CI Patch Build Bot <ci_patchbuild_bot@qt.io>
| * | | | Nanotrace: Fix static stringMarco Bubke2024-03-212-6/+19
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | It could easily overflow. Change-Id: I82c5611aa082bf3e8af394259ad8e15387b3e920 Reviewed-by: Qt CI Patch Build Bot <ci_patchbuild_bot@qt.io> Reviewed-by: <github-actions-qt-creator@cristianadam.eu> Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
| * | | | Nanotrace: Initialize variablesMarco Bubke2024-03-211-5/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Change-Id: Id80d6324a287e7391a4a7b32c495869a9312bef3 Reviewed-by: Qt CI Patch Build Bot <ci_patchbuild_bot@qt.io> Reviewed-by: <github-actions-qt-creator@cristianadam.eu> Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
| * | | | Nanotrace: Add generic map supportMarco Bubke2024-03-211-1/+40
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Change-Id: I5622697e7c5a34e204d045d61bafa874ce3783d5 Reviewed-by: Qt CI Patch Build Bot <ci_patchbuild_bot@qt.io> Reviewed-by: Tim Jenssen <tim.jenssen@qt.io> Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
| * | | | QmlJS: remove old/unused qmljsindenterTim Jenssen2024-03-214-656/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Change-Id: Ie21d838fc1c67c1a690869081f86e3fe7b242d2c Reviewed-by: Qt CI Patch Build Bot <ci_patchbuild_bot@qt.io> Reviewed-by: Marco Bubke <marco.bubke@qt.io>
| * | | | QmlDesigner: Add more tracing to project storageMarco Bubke2024-03-205-53/+79
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Change-Id: Iee113981ffa49b4f03b7641e7030a2f19f917fc6 Reviewed-by: Tim Jenssen <tim.jenssen@qt.io> Reviewed-by: <github-actions-qt-creator@cristianadam.eu> Reviewed-by: Qt CI Patch Build Bot <ci_patchbuild_bot@qt.io>
| * | | | Sqlite: trace exceptionsMarco Bubke2024-03-207-54/+103
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | That makes it easier to see what got wrong in the trace. So less debugging. Change-Id: I26ec3d6a6f81cbd20871260a2b32123343a20618 Reviewed-by: Qt CI Patch Build Bot <ci_patchbuild_bot@qt.io> Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
| * | | | Nanotrace: Add instant eventMarco Bubke2024-03-201-0/+22
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Sometimes we have events without any duration Change-Id: Iae81585051129b5c6a7983dff5e45161d6b6c389 Reviewed-by: Qt CI Patch Build Bot <ci_patchbuild_bot@qt.io> Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
| * | | | Nanotrace: Use static string for argumentsMarco Bubke2024-03-204-9/+132
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Adding many small strings to a string can have overhead because there have been checks. A static string simply cannot grow, so that overhead is removed. It has the drawback that it can overflow but in that case simply no arguments are shown. Change-Id: Ia9106b6c49e396453eeb75b28df5a543a28dc8c9 Reviewed-by: <github-actions-qt-creator@cristianadam.eu> Reviewed-by: Qt CI Patch Build Bot <ci_patchbuild_bot@qt.io> Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
| * | | | Nanotrace: Use char appendMarco Bubke2024-03-201-19/+19
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Change-Id: I5a37eff39acd787265c5951237a3f17b3ea6eb5f Reviewed-by: <github-actions-qt-creator@cristianadam.eu> Reviewed-by: Tim Jenssen <tim.jenssen@qt.io> Reviewed-by: Qt CI Patch Build Bot <ci_patchbuild_bot@qt.io>
| * | | | Utils: Add char append to SmallStringMarco Bubke2024-03-201-3/+27
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Change-Id: I644db7635010da8bc29d87926a64c4e6939d7c83 Reviewed-by: Qt CI Patch Build Bot <ci_patchbuild_bot@qt.io> Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
| * | | | Nanotrace: Use number append overloadMarco Bubke2024-03-201-5/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Change-Id: I9da305ef75dda69ec21d0ef032adea2fa89c1023 Reviewed-by: Tim Jenssen <tim.jenssen@qt.io> Reviewed-by: Qt CI Patch Build Bot <ci_patchbuild_bot@qt.io>
| * | | | Utils: Add number Smallstring::appendMarco Bubke2024-03-201-22/+40
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Saves some overhead. Change-Id: I7d46e41f29e66cd01f5a11f16e6f78ff7a4d0aa8 Reviewed-by: Tim Jenssen <tim.jenssen@qt.io> Reviewed-by: Qt CI Patch Build Bot <ci_patchbuild_bot@qt.io>
| * | | | NanoTrace: Remove unused std::stringMarco Bubke2024-03-202-2/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Change-Id: I7eddcf946b9519f11e61a71861977ad2714df4e5 Reviewed-by: Tim Jenssen <tim.jenssen@qt.io> Reviewed-by: Qt CI Patch Build Bot <ci_patchbuild_bot@qt.io>
| * | | | Sqlite: Improve tracingMarco Bubke2024-03-204-65/+226
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Change-Id: Id5d6ee448a7f2cf06cda2e2776f3dbbe7c8f66c4 Reviewed-by: Qt CI Patch Build Bot <ci_patchbuild_bot@qt.io> Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
| * | | | Nanotrace: Fix unsed argumentsMarco Bubke2024-03-181-15/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The arguments must be set because we otherwise access old data. Change-Id: I18e83297b80558b112af266bd50779bef8da9e94 Reviewed-by: Qt CI Patch Build Bot <ci_patchbuild_bot@qt.io> Reviewed-by: Tim Jenssen <tim.jenssen@qt.io> Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
| * | | | Nanotrace: Use begin and end slices instead of duraction sliceMarco Bubke2024-03-181-22/+29
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | If an exception is thrown or the program is abortet there is still the begin of a slice. Because a duration slice is only wirtten at the end we get no slice. Change-Id: I8b05e9ae045517a503c2a6f00936b05715b812ca Reviewed-by: Qt CI Patch Build Bot <ci_patchbuild_bot@qt.io> Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
| * | | | Nanotrace: Fix dangling referenceMarco Bubke2024-03-183-54/+31
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | As EventQueueData was derived from EventQueue the order of initialization was inverted. So we got dangling pointer. Merging EventQueueData into EventQueue fixes the dangling references. Change-Id: I3d9cee492304132fa612d6d19324656df597ec99 Reviewed-by: Tim Jenssen <tim.jenssen@qt.io> Reviewed-by: Qt CI Patch Build Bot <ci_patchbuild_bot@qt.io> Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
| * | | | Nanotrace: Fix dangling tupleMarco Bubke2024-03-181-8/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The tuple are constructed on the stack, so we cannot hold references to it. Change-Id: Ia02bf21516c97eb67eca8fd56e68dbd10878ca9e Reviewed-by: Qt CI Patch Build Bot <ci_patchbuild_bot@qt.io> Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
| * | | | QmlDesigner: Avoid dangling pointer to the stackMarco Bubke2024-03-181-4/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Pointer to temporaries create dangling pointer. So we have to copy the tuples. The leafes still only contain references. Change-Id: I37900be569283324178e223829f913fb4ccba16e Reviewed-by: Tim Jenssen <tim.jenssen@qt.io> Reviewed-by: Qt CI Patch Build Bot <ci_patchbuild_bot@qt.io>
| * | | | Nanotrace: If the process is terminated flush the event queuesMarco Bubke2024-03-181-1/+24
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | That terminate handler is only installed if any event queue is activated. That is only the case if you compile with a special option. Change-Id: I4d8661c0fa11d8bb14b49b7b963471f626b3b950 Reviewed-by: Tim Jenssen <tim.jenssen@qt.io> Reviewed-by: Qt CI Patch Build Bot <ci_patchbuild_bot@qt.io>
| * | | | Sqlite: Add convertToString to Sqlite idMarco Bubke2024-03-184-7/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Change-Id: I52d9b6860d24d715fdd6b584ffc2f8345f6b99c4 Reviewed-by: Tim Jenssen <tim.jenssen@qt.io> Reviewed-by: <github-actions-qt-creator@cristianadam.eu> Reviewed-by: Qt CI Patch Build Bot <ci_patchbuild_bot@qt.io>
| * | | | NanoTrace: Add missing category constructorMarco Bubke2024-03-181-1/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The constructor for the category was missing. Otherwise the CTAD is not working. Change-Id: I4d4c2aaba8915fbbade0b8ce4f1310046d748cd1 Reviewed-by: Thomas Hartmann <thomas.hartmann@qt.io> Reviewed-by: Tim Jenssen <tim.jenssen@qt.io> Reviewed-by: Qt CI Patch Build Bot <ci_patchbuild_bot@qt.io>
| * | | | Nanotrace: Support enumeration argumentsMarco Bubke2024-03-181-0/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Change-Id: I75f7576f28231fc35269cbb3bb46654739cf7f18 Reviewed-by: Qt CI Patch Build Bot <ci_patchbuild_bot@qt.io> Reviewed-by: Tim Jenssen <tim.jenssen@qt.io> Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
* | | | | Lua: Add .h files to CMakeLists.txtAlessandro Portale5 days1-0/+22
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | That makes it possible to locate the files in the project tree. Change-Id: Ib7208e91b48be865aa22851d6786e39cf293b2b7 Reviewed-by: Marcus Tillmanns <marcus.tillmanns@qt.io>
* | | | | ExtensionSystem: Don't export test symbols without tests configuredEike Ziller5 days6-21/+32
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We want the plugin manager to support the -test option etc even if Qt Creator is not configured with WITH_TESTS, so 3rdparty plugins can still be built and tested with a released Qt Creator. But we do not want to export functions/classes that are only needed for Qt Creator tests in that case. When Qt Creator is configured with WITH_TESTS, the QtCreatorAPI adds the WITH_TESTS define, and we used the same define for the first case above, where we only want to add the -test option and corresponding API. Use a different define EXTENSIONSYSTEM_WITH_TESTOPTION for this. The EXTENSIONSYSTEM_TEST_EXPORT keeps checking the WITH_TESTS define. Amends e5a4fdaa1b65beb0ca257ef698f685303b867802 Change-Id: I547f1fa7413e3bc452f71ae920c310a05e0193ae Reviewed-by: Marcus Tillmanns <marcus.tillmanns@qt.io>
* | | | | Merge "Merge remote-tracking branch 'origin/13.0'"The Qt Project5 days1-0/+5
|\ \ \ \ \
| * \ \ \ \ Merge remote-tracking branch 'origin/13.0'Eike Ziller5 days1-0/+5
| |\ \ \ \ \ | | | |_|_|/ | | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: doc/qtcreator/src/qtquick/qtquick-live-preview-devices.qdoc src/plugins/projectexplorer/projectexplorer.cpp Change-Id: I682b330a278a329fc6294baeff6a28040abd10bc
| | * | | | Process: Detect a recursive call to waitForSignal()Jarek Kobus7 days1-0/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Assert that we don't call it recursively. If so, the waitForSignal() returns false immediately. Fixes: QTCREATORBUG-30715 Change-Id: I7195b2b1347f67262cc8ae6db5439f5ddd38b5bb Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
* | | | | | ModelEditor: Improve panningJochen Becher5 days2-1/+45
|/ / / / / | | | | | | | | | | | | | | | | | | | | | | | | | Change-Id: Iacb3e2bb9006d306852f18b50bbec322abb5acdf Reviewed-by: Alessandro Portale <alessandro.portale@qt.io> Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
* | | | | Lua: Silence warning regarding redefined macroChristian Stenger5 days1-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | Change-Id: Ib7f6437e82d5c2de67df4ff4d4f6f99eb7ba7fc4 Reviewed-by: Marcus Tillmanns <marcus.tillmanns@qt.io>
* | | | | ExtensionSystem: Rename PluginSpecImpl to CppPluginSpecMarcus Tillmanns8 days3-42/+43
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Since we now have multiple classes inheriting from PluginSpec it makes sense to rename PluginSpecImpl to the more accurate CppPluginSpec as it deals with compiled plugins only. Amends b39b1925189416585933c017e189d04d6e4c478d Change-Id: Icae9daed2be5a258a9918731a881c72cbe4f0fa4 Reviewed-by: Eike Ziller <eike.ziller@qt.io>
* | | | | ExtensionSystem: Fix compile without WITH_TESTSMarcus Tillmanns8 days3-7/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | PluginSpecImpl::read is used outside of tests, but PluginSpecImpl itself is only exported when WITH_TESTS is on. So compilation without WITH_TESTS would fail. To circumvent this the ::read functions are moved outside of the PluginSpecImpl and friend'd to it. Amends b39b1925189416585933c017e189d04d6e4c478d Change-Id: I4bd8ce087267ab4e059cff2470ff882c7db6fd78 Reviewed-by: Eike Ziller <eike.ziller@qt.io>
* | | | | Debugger: add symbolgroup dumper to cdbbridgeDavid Schulz9 days1-0/+17
| | | | | | | | | | | | | | | | | | | | | | | | | Change-Id: I70f9831873cd17f0ee6a59c4345f2a28921c41bf Reviewed-by: Christian Stenger <christian.stenger@qt.io>