aboutsummaryrefslogtreecommitdiffstats
path: root/src/plugins/projectexplorer/runconfiguration.cpp
Commit message (Collapse)AuthorAgeFilesLines
* Use LayoutBuilder V2hjk4 days1-2/+2
| | | | | | | | | | | | This puts the implementation introduced in acf1ecb47fdf into use, after significant simplifications in the class hierarchy. CRTP is not used anymore, and the new tag based dispatch is also used for Layout::addItem, effectively reducing the number of different code paths. The Lua based settings access is disabled for now. Change-Id: Idb6d1a25675378757c5267bdb630bcd4c1f52d34 Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
* iOS: Disable anything but running for iOS 17+ devicesEike Ziller2024-01-291-2/+2
| | | | | | | | | | | | We currently cannot support anything than running for devices with iOS 17 and later. Make it possible for RunConfigurations to state that they are disabled depending on run mode. Change-Id: I13df4dd482f6381cda15168c38ede00d95e1d692 Reviewed-by: <github-actions-qt-creator@cristianadam.eu> Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* ProjectExplorer: Don't leak runconfig's GlobalOrProjectAspectshjk2023-12-141-1/+1
| | | | | | Fixes: QTCREATORBUG-30075 Change-Id: Ic82f8257521f72d6e3ccd436d17bff8434f11a1d Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* Merge remote-tracking branch 'origin/12.0'Eike Ziller2023-12-061-1/+1
|\ | | | | | | | | | | | | | | | | Conflicts: src/plugins/clangcodemodel/clangdfollowsymbol.cpp src/plugins/debugger/debuggerruncontrol.cpp src/plugins/projectexplorer/miniprojecttargetselector.cpp Change-Id: I45b7fee1a1d784c44f2139fb1ede69190d23d6fd
| * ProjectExplorer: Fix "unavailable" annotation of fixed run configsChristian Kandeler2023-12-041-1/+1
| | | | | | | | | | | | | | | | | | Amends 058a931d271ee544ffce48654ff1c21f67da47e1. Fixes: QTCREATORBUG-29983 Change-Id: I4db546d1370909b55d6662d403be10e263c4e878 Reviewed-by: <github-actions-qt-creator@cristianadam.eu> Reviewed-by: hjk <hjk@qt.io>
* | Fix crash when loading a .pyproject into Qt Creator with empty settingsFriedemann Kleint2023-12-011-1/+2
|/ | | | | | | | The build system is 0 as long as no kits are created. Change-Id: Ia7f283071740dabe76ff3dd6b2f59e5ca214b7c2 Reviewed-by: David Schulz <david.schulz@qt.io> Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
* ProjectExplorer: Manually check whether a runconfig has a creatorhjk2023-10-171-6/+24
| | | | | | | | | | This is used in ProjectConfigurationModel::data() Constructing the full list is comparatively expensive, and the extra decoration is not needed. Change-Id: I5b6c76376f806ea92444916a87d1f2e671e16d5f Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* All: Remove some unneeded #includeshjk2023-09-271-1/+0
| | | | | Change-Id: If9a8fb5e0b32424e3b37ecf3adefc060f86b3630 Reviewed-by: Marcus Tillmanns <marcus.tillmanns@qt.io>
* Utils: Temporarily introdce Key Id::toKey()hjk2023-08-291-2/+2
| | | | | | | | | To avoid complications on the user code side during the Key/Store transition. Change-Id: I49ae9d496c9c1ee07f17245616fdefefe9abfc2e Reviewed-by: Marcus Tillmanns <marcus.tillmanns@qt.io> Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
* ProjectExplorer: And more Key and Storehjk2023-08-241-2/+2
| | | | | Change-Id: Id5787890bdb46bfeef8e3f37923e6dc26cb56c31 Reviewed-by: Marcus Tillmanns <marcus.tillmanns@qt.io>
* Utils: Rename the new Storage to Storehjk2023-08-241-12/+12
| | | | | | | | | Apparently that's what the young people on the web use for such a thing. Change-Id: I75d5396ff3cb3c26efd6008b5f2261354c4f7896 Reviewed-by: Marcus Tillmanns <marcus.tillmanns@qt.io> Reviewed-by: Jarek Kobus <jaroslaw.kobus@qt.io> Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
* Use Utils::Storage instead of QVariantMap in a few placeshjk2023-08-231-12/+12
| | | | | Change-Id: I02833cf2bc3caaadc22ff93ae530e4aebe4c3868 Reviewed-by: Marcus Tillmanns <marcus.tillmanns@qt.io>
* Utils: Rename ProjectExplorer::Runnable into Utils::ProcessRunDataJarek Kobus2023-08-171-3/+3
| | | | | | | Move it into Utils lib. Change-Id: I3b6c16d18439cabddf59afc03116f13c1970102c Reviewed-by: hjk <hjk@qt.io>
* Runnable: Keep extraData separatelyJarek Kobus2023-08-171-2/+8
| | | | | | | It's rarely used. Change-Id: I11e6546e5991ba2332943eb4900190f937d1db1d Reviewed-by: hjk <hjk@qt.io>
* ProjectExplorer: Rename kitinformation.{h,cpp} to kitaspects.{h,cpp}hjk2023-08-151-2/+1
| | | | | Change-Id: I069bddeb457366210d339edcbb8ffb359a40fab8 Reviewed-by: Jarek Kobus <jaroslaw.kobus@qt.io>
* ProjectExplorer: Don't use QObject parents for ProjectConfigurationshjk2023-07-311-1/+1
| | | | | | | | | | | | ... for ownership. It was not really used anymore, the target manually deletes build/run/deploy configurations, steplist their steps and steplists themselves are proper members in build/deploy config. Change-Id: I8addd1db0700342629fdab004ab42aa64291e93a Reviewed-by: Jarek Kobus <jaroslaw.kobus@qt.io> Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* ProjectExplorer: Dissolve ISettingsAspecthjk2023-07-251-22/+3
| | | | | | | Covered by AspectContainer nowadays. Change-Id: Id7eadaf089059031e6bd4c4b3e742e4ed0a1dc96 Reviewed-by: Christian Stenger <christian.stenger@qt.io>
* ProjectExplorer: Replace the fromMap error return valuehjk2023-07-241-6/+6
| | | | | | | | | | | | | | | ... by some out-of-band mechanism, keeping previous functionality. The driving reason is to get the same fromMap signature as in the AspectContainer base, however, the whole mechanism seems rather useless: There are only a few places that actually ever could report errors, in those places "moving on" looks ok, too, and these few places are not conceptually different than a lot others. Removal of this (new) mechanism is left for later. Change-Id: Ibe7a0456bc3b84a84e942231f14446e783372d76 Reviewed-by: Jarek Kobus <jaroslaw.kobus@qt.io>
* ProjectExplorer: Change ProjectConfiguration::toMap signaturehjk2023-07-211-10/+11
| | | | | | | To match better with the rest, especially the base AspectContainer. Change-Id: Ide0966cab3219800aa6b7b9e6012731a3fbe7a6f Reviewed-by: Jarek Kobus <jaroslaw.kobus@qt.io>
* QmlProfiler: Move to new settings setup also for project settingshjk2023-07-211-0/+2
| | | | | | Change-Id: I204f052ddbc2956ff3bca8e6faaf2f758e4fee17 Reviewed-by: Christian Stenger <christian.stenger@qt.io> Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
* BuildStepList: Pass ProjectConfiguration into c'torJarek Kobus2023-07-111-2/+1
| | | | | | | | | | | Instead of relying on parent-child qobject hierarchy. Add explicit BuildStepList::projectConfiguration() getter. Add explicit Target arg into ProjectConfiguration c'tor and avoid qobject_cast. Change-Id: I0b3105f7f8aea950e9679857887baffe9b321a33 Reviewed-by: <github-actions-qt-creator@cristianadam.eu> Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* ProjectExplorer: Do not auto-remove customized run configurationsChristian Kandeler2023-06-301-1/+40
| | | | | | | | | | | | | | | Until now, it could easily happen that a user's carefully fine-tuned run configurations disappeared just because of e.g. a temporarily broken build system file or simply a switch to a different build configuration. As this is clearly not acceptable, we now make sure customized run configurations are not thrown away even when there is currently no matching factory for them. Fixes: QTCREATORBUG-23163 Fixes: QTCREATORBUG-28273 Change-Id: Ic011a650d15a2897108df986c7e9fe410852e926 Reviewed-by: <github-actions-qt-creator@cristianadam.eu> Reviewed-by: hjk <hjk@qt.io>
* ProjectExplorer/RemoteLinux: Consolidate X11ForwardingAspect handlinghjk2023-06-261-0/+2
| | | | | | Change-Id: I7e74f58ab50c84c74ba65f9f64aaa4d0ea73bbb6 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io> Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
* ProjectExplorer: always map working directory path to command deviceDavid Schulz2023-06-231-1/+1
| | | | | Change-Id: I0d2d54df118b70c2874b77b4ec2792fb8e114416 Reviewed-by: hjk <hjk@qt.io>
* ProjectExplorer: Make ProjectConfiguration an AspectContainerhjk2023-05-231-4/+4
| | | | | | | | | | | | ... instead of having one. AspectContainer are de-factor (q)objects with "fat" properties, conceptionally not much different from QObject itself, so there's not real need to differentiate between the QObject interface and the (forwarded) aspectcontainer interface. As a side-effect, this saves one QObject base object per instance. Change-Id: I6eefe739b3aebcef1ece196ff8d70aa36738997b Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* Layouting: Make aspects operate on parent items, not LayoutBuilderhjk2023-05-031-1/+3
| | | | | | | LayoutBuilder is meant to be an implementation detail nowadays. Change-Id: I777ab934d3d405873e819eeddd27428d8c652f9a Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
* Layouting: Handle attach types via setterhjk2023-05-031-2/+2
| | | | | | Change-Id: I862f5cd109db3582b4f029787ec0cded2da39ce6 Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
* LayoutBuilder: Reworkhjk2023-05-031-3/+3
| | | | | | | | | | | | | | | Everying is a LayoutItem now, and everything is split into a proper setup and execution phase. Execution happens only via LayoutBuilder (directly or via convenience wrappers in LayoutItem). No direct access to the widget in creation, funnel out is via the new bindTo() facility. Change-Id: I7eb38fd736ae57a68f9a72a6add5c767da82b49f Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
* ProjectExplorer: Optionally show run environment in app output paneChristian Kandeler2023-04-261-0/+7
| | | | | | | | Fixes: QTCREATORBUG-28427 Change-Id: I1022a377d3728ad5e91fa62514082110b86db9f4 Reviewed-by: hjk <hjk@qt.io> Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
* Utils: Replace FilePath::onDevice() by new FilePath::withMappedPath()hjk2023-04-041-1/+1
| | | | | | | | | | | | | | Basically a.onDevice(b) == b.withNewMappedPath(a), matching the order of b.withNewPath(a). Whether the (curretly docker-specific) path mapping is useful /there/, and whether some of the calls are needed at all is dubious. I added some FIXME and changed a few cases directly. Change-Id: I7514736ce922f632f1f737bc496f6783389a42b6 Reviewed-by: Marcus Tillmanns <marcus.tillmanns@qt.io> Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
* ProjectExplorer: Move some not-fully-session related bitshjk2023-03-011-3/+2
| | | | | | | | | | | | | | | ... out of SessionManager. The idea is to later move SessionManager into the Core plugin, which both is sensible conceptually and also prerequisite to merge the Bookmark plugin into TextEditor plugin. Currently, only the interface is split, as the load/save implemetations are non-mechanical to disentangle. Change-Id: I31631db3094ea192825a2ccaa6add6188662940b Reviewed-by: Eike Ziller <eike.ziller@qt.io> Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
* ProjectExplorer: Tr::trhjk2023-01-161-8/+9
| | | | | Change-Id: I8f1b463c5cc7a53627f7a9ad261998b92f13e56a Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
* Remove GPL-3.0+ from license identifiersKai Köhne2023-01-061-1/+1
| | | | | | | | | | | | | | | Since we also license under GPL-3.0 WITH Qt-GPL-exception-1.0, this applies only to a hypothetical newer version of GPL, that doesn't exist yet. If such a version emerges, we can still decide to relicense... While at it, replace (deprecated) GPL-3.0 with more explicit GPL-3.0-only Change was done by running find . -type f -exec perl -pi -e "s/LicenseRef-Qt-Commercial OR GPL-3.0\+ OR GPL-3.0 WITH Qt-GPL-exception-1.0/LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0/g" {} \; Change-Id: I5097e6ce8d10233993ee30d7e25120e2659eb10b Reviewed-by: Eike Ziller <eike.ziller@qt.io>
* Remove unused includes of QFormLayoutJarek Kobus2022-11-181-1/+0
| | | | | | | Change-Id: Ia877cb57037342f2a7b332b29d9cb45e9b01c4bc Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: <github-actions-qt-creator@cristianadam.eu> Reviewed-by: hjk <hjk@qt.io>
* ProjectExplorer: Fix starting a docker project on windowsDavid Schulz2022-11-161-1/+1
| | | | | | | | | ... by mapping the executable and working directory to the target device. Change-Id: I0a220fe9bae980cb279fae776962f23335eac248 Reviewed-by: Marcus Tillmanns <marcus.tillmanns@qt.io> Reviewed-by: hjk <hjk@qt.io>
* Port from qAsConst() to std::as_const()Marc Mutz2022-10-071-3/+3
| | | | | | | | | | | | | | We've been requiring C++17 since Qt 6.0, and our qAsConst use finally starts to bother us (QTBUG-99313), so time to port away from it now. Since qAsConst has exactly the same semantics as std::as_const (down to rvalue treatment, constexpr'ness and noexcept'ness), there's really nothing more to it than a global search-and-replace. Task-number: QTBUG-99313 Change-Id: I88edd91395849574436299b8badda21bb93bea39 Reviewed-by: hjk <hjk@qt.io>
* Use SPDX license identifiersLucie Gérard2022-08-261-24/+2
| | | | | | | | | Replace the current license disclaimer in files by a SPDX-License-Identifier. Task-number: QTBUG-67283 Change-Id: I708fd1f9f2b73d60f57cc3568646929117825813 Reviewed-by: Eike Ziller <eike.ziller@qt.io>
* Utils: Make the second parameter to LayoutBuilder::attach() an enumhjk2022-07-261-1/+1
| | | | | | | | More explicit and more potential options (e.g. "treat grid as form") than a bool. Change-Id: I89413efe30410160c38b0e524ba64288dde2332e Reviewed-by: Eike Ziller <eike.ziller@qt.io>
* Code cosmeticshjk2022-06-241-2/+4
| | | | | | | | | | Mostly unused #include's, also sort them or reduce scope. A few namespaces, ... Change-Id: I9ee71e07de7157c9942125672addf87dd41e78f1 Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: hjk <hjk@qt.io>
* Utils: Pass MacroExpander to ArgumentsAspect constructorhjk2022-05-201-9/+3
| | | | | | | | | | | | | In the past we wanted to keep the aspect constructor simple but it turned out that exceptions were needed and accumulating, so those are likely here to stay. By passing also the MacroExpander to the ArgumentsAspect constructor allows other single-purpose warts like the ProjectConfiguration::doPostInit() machinery can be removed. Change-Id: I148b0ca1ab0740270eecd0d3134620de65a86d4f Reviewed-by: Jarek Kobus <jaroslaw.kobus@qt.io>
* ProjectExplorer: Shift full FilePath creation into Executable aspecthjk2022-05-181-3/+0
| | | | | | | | | | Less need for correction: When a target is given, the executable produced by the aspect will be on the target device. Change-Id: I86c38e9f9fa5b4d4fe9b2ef7f21a0b3aa5b28670 Reviewed-by: Christian Stenger <christian.stenger@qt.io> Reviewed-by: Jarek Kobus <jaroslaw.kobus@qt.io> Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
* ProjectExplorer: Create Runnables with full device paths in RunConfighjk2022-05-161-1/+5
| | | | | | | | | | | | | | ... instead of fixing them later in the ApplicationLauncher as used by all SimpleTargetRunners. The mapping to device paths happens now in the default commandline getter on paths from the ExecutableAspect. This is (only) wrong in the case of (local) custom runconfig with a device present, so this needs a custom commmandline getter not doing the transformation. Change-Id: I525bc0ea59b5e7caf7a445a1a723d6f5b152162d Reviewed-by: Jarek Kobus <jaroslaw.kobus@qt.io> Reviewed-by: Christian Stenger <christian.stenger@qt.io>
* ProjectExplorer: Pass envAspect directly to WorkingDirectory constructorhjk2022-04-221-1/+0
| | | | | | | | | This trades a now necessary order of setup for the now removed "acquaintSiblings" facility. Change-Id: I85058578b792e210f24573e2ab4e3a40a8813a11 Reviewed-by: David Schulz <david.schulz@qt.io> Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
* IDevice: Make it possible to forward declare Ptr and ConstPtrJarek Kobus2022-04-141-3/+3
| | | | | | | | | | | | | | | | | | | | | | | Most inclusions of idevice.h inside other headers are required just because of IDevice::Ptr or IDevice::ConstPtr was used there. Unfortunately, since these "using" are defined inside a IDevice class, we just can't forward declare IDevice::Ptr nor IDevice::ConstPtr. Instead, create a separate header that defines IDevicePtr and IDeviceConstPtr while having IDevice forward declared. Redefine IDevice::Ptr/ConstPtr inside IDevice to use IDevicePtr/IDeviceConstPtr. Now, instead of forward declaring a IDevice::Ptr it's sufficient to include the idevicefwd.h. This drops the number of files being recompiled after touching idevice.h from ~770 to ~210. Change-Id: Ib6f2982aa0761fb4cd6593badb9c3c0c527ea535 Reviewed-by: <github-actions-qt-creator@cristianadam.eu> Reviewed-by: hjk <hjk@qt.io>
* Debugger: Avoid one use of RunControl::runConfiguration()hjk2022-04-141-2/+4
| | | | | Change-Id: Iaf9fb0cee4544121a4df433c3726d98ae0175ff2 Reviewed-by: David Schulz <david.schulz@qt.io>
* ProjectExplorer: Copy more RunConfiguration data to RunControlhjk2022-04-121-3/+12
| | | | | | | | | | | | | | | | | | | The aspects are now responsible for defining what data needs to be copied and also to provide a suitable interface (kind of source-compatible to direct use) for access. The important change here is that RunControl::aspect(...) doesn't need to access RunControl::runConfiguration() in fully aspectified RunConfigurations anymore. In not-fully aspectified the runConfig access is moved to the user code to make the problem visible there. Long term, aspectification should be finished. As an additional benefit, the resolving of macros etc can now be done at the correct time. Change-Id: I690d9f8f696ce9b4efd42082ba3f81b514efcb77 Reviewed-by: <github-actions-qt-creator@cristianadam.eu> Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* Project Explorer: Fix UI textLeena Miettinen2022-02-171-2/+2
| | | | | | Task-number: QTCREATORBUG-27055 Change-Id: I9b0e4f02ea7d1ebb14a9581f21c76b8908589334 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* ProjectExplorer: Simplify retrieval of WorkingDirectoryAspect valueshjk2021-09-231-4/+8
| | | | | | | | | | Drop the macroExpander argument, at the cost of complicating internal ProjectConfiguration setup a bit. Simpler code at the user side. Change-Id: Ie9ea0b719f6e402b44d9ba7ce6047aa4e15441fe Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* ProjectExplorer: Make sure the working dir is properly expandedChristian Kandeler2021-09-231-0/+2
| | | | | | | | ... in the path chooser. Fixes: QTCREATORBUG-26274 Change-Id: I4aa920888b9bef2820ed883e1f34a5c670a545d6 Reviewed-by: hjk <hjk@qt.io>
* ProjectExplorer: Use Utils::CommandLine in ProjectExplorer::Runnablehjk2021-08-131-1/+1
| | | | | | Change-Id: Id965f1f9047dcbc3ea5c9ddaa550d12668cf8ae6 Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Christian Stenger <christian.stenger@qt.io>