aboutsummaryrefslogtreecommitdiffstats
path: root/src/plugins/projectexplorer/target.cpp
Commit message (Collapse)AuthorAgeFilesLines
* ProjectExplorer: Remove Project::aboutToRemoveProjectConfiguration()hjk2019-08-201-3/+0
| | | | | | | Nobody listened to that signal. Change-Id: I456d663fdec7ac67507a8f9f7ed1e5d7b520b7cc Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* ProjectExplorer: Replace Project::projectConfigurationChangedhjk2019-08-021-3/+1
| | | | | | | | | | | | | | | | ... by a Project::buildConfigurationChanged. That's the only case used, and saves filtering on the receiver side. Also, the passed bc is (in non-null) the active one, so isActive checks are not necessary. The null case seems to be only possible to trigger when removing the currently active build configuration manually i.e. happens rarely, so having it trigger an unneeded final display update on the dying build config is tolerable, so drop the null check in such cases to achieve a more uniform pattern. Change-Id: I46f72e9e277767214dbd6920dd86b026a7084f46 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* ProjectExplorer: Remove Target::*ProjectConfiguration(...) signalshjk2019-08-011-13/+12
| | | | | | | | The only listener left is the target's project, which is known at each emitting location and can be called directly. Change-Id: If07d2c1c43fcf5d2094c0b6d59f773d12b4f6d6b Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* ProjectExplorer: Don't remove build configurationhjk2019-07-311-2/+0
| | | | | | | ... before announcing it and trying to remove it a second time. Change-Id: I0f0238974fa317051d99b8f096cfc472e4f0cbe3 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* ProjectExplorer: Move *ConfigurationModel ownership to targethjk2019-07-311-10/+35
| | | | | | | | | | | | | The models hold essentially duplicated information besides the actual configuration lists that are already in the target and are only used in a context where the target is known and accessible. As the models keep track of all added or removed configurations and can be fed configurations of the right types only, the need to filter is gone. Change-Id: Iec2c6879223893297c71e7632310ac526b704237 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* ProjectExplorer: Remove ProjectConfiguration base from Targethjk2019-07-311-16/+37
| | | | | | | | | Targets are different from {Run,Build,Deployment}Configurations, both regarding the level in the ProjectExplorer hierarchy, and also by the set of supported operations (e.g. aspects). Change-Id: Ia8490e2280a9ecc518395c5e48ce2fd5d6d58fd2 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* ProjectExplorer: Add a ProjectConfiguration::target()hjk2019-07-291-0/+3
| | | | | | | | | ... with a suitable default implementation accessing a member populated at construction time instead of walking the parent chains on each access. Change-Id: I58dae6da80ed0b023cc603fca13a5a205b123672 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* ProjectExplorer: Update run config list centrallyChristian Kandeler2019-07-221-0/+6
| | | | | | | | | | | | | | This prodecure requires no further information from the specific project managers, so we can start it from the ProjectExplorer itself. Also wait until after project parsing has officially finished and the run configurations have updated their "enabled" state. Otherwise, RunConfiguration::isEnabled() will always return false, potentially leading to the active run configuration getting switched unintentionally. Fixes: QTCREATORBUG-21692 Change-Id: I32f4f758b5baa6222329d07b811993568eff1ee3 Reviewed-by: hjk <hjk@qt.io>
* Merge remote-tracking branch 'origin/4.10'Tim Jenssen2019-07-041-1/+1
|\ | | | | | | | | | | | | | | | | | | | | | | Conflicts: qbs/modules/qtc/qtc.qbs qtcreator_ide_branding.pri src/libs/utils/synchronousprocess.cpp src/plugins/baremetal/iarewtoolchain.cpp src/plugins/cmakeprojectmanager/cmakeproject.cpp tests/unit/unittest/CMakeLists.txt Change-Id: I124ad492df403286751e175d27fe36487ddf6d07
| * More Utils::toSet/toListhjk2019-07-041-1/+1
| | | | | | | | | | | | | | ... and unrelated cosmetic changes. Change-Id: I591b17fd5289831e701b683f8fb47816efd1fa67 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* | ProjectExplorer etc: More FilePath usagehjk2019-06-261-1/+1
|/ | | | | | | Mostly for project files. Change-Id: Icb6059f80758865e42cc9f9c092ec6782770dfd7 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* ProjectExplorer: Remove BuildTargetInfoList wrapper classhjk2019-05-141-5/+5
| | | | | Change-Id: I1a2ae06ec8c5b7278abca2386834d7edd31597d7 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* Revert "ProjectExplorer: Upstream CMake's handling of outdated builds"hjk2019-05-031-7/+0
| | | | | | | | | This reverts commit 8536504caa216e599a6332261cd9fcafcbba296c. Break CustomRunConfigurations. Change-Id: I43020bd34780cb5fd02bbe640a817370d73cca18 Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
* RemoteLinux: Retrieve deployment info from local install rootChristian Kandeler2019-04-231-0/+5
| | | | | | | | | | | | | | | | This provides correct deployment information as seen by the build system when Qt Creator cannot retrieve it directly. It's most useful for autotools and cmake projects, but can also help with qmake in certain edge cases. [ChangeLog] It is no longer necessary to provide a QtCreatorDeployment.txt file when using CMake projects with remote Linux devices. Fixes: QTCREATORBUG-21855 Change-Id: I27e07a45dd1565e489f4b573cc3fff8191c57d9b Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io> Reviewed-by: hjk <hjk@qt.io>
* ProjectExplorer: Upstream CMake's handling of outdated buildshjk2019-02-221-0/+7
| | | | | | | | | This is mainly there to make the local runconfiguration implementations more uniform. Both qmake and qbs will drop runconfigs for builds that are not available anymore, so that's a no-op for them. Change-Id: I8aa32d779f67cce7a4d4733cfbe0c9a136bfd3f7 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* ProjectExplorer: Introduce Target::buildTarget(buildKey)hjk2019-02-201-1/+8
| | | | | | | | | | | | | | A convenience wrapper for applicationTargets().buildTargetInfo(buildKey), the only context using the BuildTargetInfoList member. Also, only one of the free comparison functions is ever used, only in one place. Inline it there. Change-Id: I7565e9d51d429af34352649e235243e5b3328fe9 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* ProjectExplorer: Rename KitInformation to KitAspectChristian Kandeler2019-02-111-2/+2
| | | | | | | | | | | The name "KitInformation" does not properly convey the fact that it represents a certain *aspect* of a kit. The same goes for "KitConfigWidget", which in addition was inconsistent with "KitInformation". We now use "KitAspect" and "KitAspectWidget". Change-Id: I9804ee4cedc4d61fad533ea1dd4e4720e67fde97 Reviewed-by: hjk <hjk@qt.io>
* ProjectExplorer: Collapse BuildInfo hierarchyhjk2019-01-301-7/+3
| | | | | | | | | | | | | | ... to pass it around as real values, avoiding, among others, the need of occasional explicit deletion. The formerly extra members of the derived stuff are handled via an extra variant (for data) and via a functor in the build configuration factory. The change is mechanical. Change-Id: I19ca4e0c5f0a5b196fc16dfb98bb005dc679f855 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* ProjectExplorer: Rename IBuildConfigurationFactoryhjk2019-01-291-3/+3
| | | | | | | | ... to BuildConfigurationFactory. It hasn't been an Interface for a while and the new name matches Run- and DeployConfigurationFactory Change-Id: I923c6a27e18a99628251b69e0270e910836e7b2a Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* ProjectExplorer: Remove some Id use from DeployConfig interfacehjk2019-01-241-2/+2
| | | | | | | | | | | | | There's a 1:1 relation between the involved types, having either the factory or the id implies having the other. So shorten interfaces that used both so far. Also canCreate() == canHandle() && id matches, so use that directly. Also drop/QTC_ASSERT former canHandle() checks that are implicit in preceding ::find() calls. Change-Id: I686ea5774c5a01b05b3b4882b3d59080a812a677 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* ProjectExplorer: Simplify availableCreationIds(Target *parent) usehjk2019-01-161-1/+1
| | | | | | | | | | Similarly to before, it's either an empty list, or a single id. So use a function with bool return saying whether an id is returned and a plain accessor the the id. Change-Id: Ied2900f23bdb4c264d9fb1944c60bed734d1d8bb Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* ProjectExplorer: Add an option for automatic generation of runconfigshjk2018-08-301-38/+44
| | | | | | | | | Default to 'on'. Task-number: QTCREATORBUG-18578 Change-Id: Ib430542b00d93138827fe8930db6a4e5a03c014c Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io> Reviewed-by: Tobias Hunger <tobias.hunger@qt.io>
* QmlDesigner: Do not require a qmake project for designer import pathsChristian Kandeler2018-08-201-0/+5
| | | | | | | | | | Let's enable all build system plugins to provide this information. Task-number: QTCREATORBUG-20810 Change-Id: I0ef953e3c2c9a2be1fc4187e93232e9a2aeacafd Reviewed-by: hjk <hjk@qt.io> Reviewed-by: Tim Jenssen <tim.jenssen@qt.io> Reviewed-by: Thomas Hartmann <thomas.hartmann@qt.io>
* ProjectExplorer: Modernize even moreTobias Hunger2018-07-241-2/+1
| | | | | | | | Use unique_ptr for all *Private classes, except for those in singletons. Change-Id: Ib56c31ddedc6e9cf321f15de1f1e697a27ad4089 Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
* Introduce static_container_castEike Ziller2018-05-291-3/+3
| | | | | | | | Casting all elements of a container, similar to qobject_container_cast. Change-Id: Ib455fe8c7fa0d4acda7e29685c3100638a0152f8 Reviewed-by: hjk <hjk@qt.io> Reviewed-by: Tobias Hunger <tobias.hunger@qt.io>
* Merge remote-tracking branch 'origin/4.7'Eike Ziller2018-05-281-3/+3
|\ | | | | | | | | | | | | Conflicts: src/plugins/qmlprojectmanager/qmlprojectrunconfiguration.h Change-Id: I192b9e88f967182f3275b4b98abed1220c26daac
| * Remove some lambdas from Utils::transform callsEike Ziller2018-05-281-3/+3
| | | | | | | | | | | | | | | | | | | | | | It is often possible to user (member) functions or members directly. That improves readablility and potentially reduces the total number of symbols. Also use qobject_container_cast at places where it is appropriate. Change-Id: Ia2591bca356591e001e2c53eeebcf753e5bc3c37 Reviewed-by: Tobias Hunger <tobias.hunger@qt.io> Reviewed-by: hjk <hjk@qt.io>
* | ProjectExplorer: Use unique_ptr to hold targets in projectsTobias Hunger2018-05-241-4/+4
|/ | | | | Change-Id: I8f793f5e552b65939d6c7c5e0eb42b89f9f45c3d Reviewed-by: Eike Ziller <eike.ziller@qt.io>
* ProjectExplorer: Consolidate RunConfiguration identificationshjk2018-04-121-5/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The previously per-Project/RunConfiguration changing meanings of BuildTargetInfo::buildTarget have by now been split into separate values in BuildTargetInfo: - buildKey a handle to one item in Target::applicationTargetList - displayName a user-visible string in the run settings page The buildKey was tweaked to coincide with the previous 'extraId', i.e. the non-RunConfiguration-type part of the project configuration id that (still) use id mangling. This allows replacing the cases of locally stored seven different versions of buildKey(-ish) data by one RunConfiguration::m_buildKey, and do all remaining extraId handling in RC::{from,to}Map only, i.e. remove the base ProjectConfiguration::extraId() virtual and remove the "re-try fromMap with mangled id" hack entirely. The id mangling is still used to temporarily maintain .user file compatibility in some cases for now, but should be replaced by storing the build key and the RunConfiguration type soon. Qbs already changes in here to only use the uniqueProductName as buildKey, without the previously added display name which is stored as part of the ProjectConfiguration already. It turns out that RunConfiguration::buildSystemTarget was intended and used to retrieve an item from the Target::applicationTargetList for some configurations, coinciding with what buildKey does always. So use that insteand and drop RunConfiguration::buildSystemTarget. There is clearly is further consolidation potential left. handling of (default)displayNames is still a per-runconfiguration mess and there is further consolidation potential left. Change-Id: I448ed30f1b562fb91b970e328a42fa5f6fb2e43e Reviewed-by: Tobias Hunger <tobias.hunger@qt.io>
* Move Project::makeUnique to UtilsEike Ziller2018-04-111-4/+5
| | | | | | | This is more generic than projects Change-Id: Ifdbc57ff48f9fd4a40e6149ba636e0a55cbac502 Reviewed-by: Tobias Hunger <tobias.hunger@qt.io>
* ProjectExplorer: Simplify IBuildConfigurationFactory interfacehjk2018-04-041-7/+2
| | | | | | | | | | | Following the RunConfigurationFactory lead this replaces f = Foo::find(); f->do() by static Foo::do() stanzas. Also de-virtualize/private-ize IBuildConfigurationFactory::canCreate() as it is only a local helper nowadays. Change-Id: Id36ba514f426ebd054592189aa29c170ba00d92f Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* ProjectExplorer: Simplify DeployConfigurationFactory interfacehjk2018-03-151-7/+2
| | | | | | | | | | | Following the RunConfigurationFactory lead this replaces f = Foo::find(); f->do() by static Foo::do() stanzas. Also protect DeployConfigurationFactory::canCreate() Change-Id: I80fa491f836c3b9186f6ce6dccac4d52d4b80fc8 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io> Reviewed-by: Tobias Hunger <tobias.hunger@qt.io>
* Partially decouple local CMakeRunConfiguration from CMakeProjecthjk2018-03-131-2/+2
| | | | | | | | | | | Funnel all relevant data through target.applicationTargets() as done for the non-local CMake-supporting setups and QBS already. There is cleanup potential left for later changes. Change-Id: I49ed6abd98c058a7fd1545e41b3bcd6ecb758a8b Task-number: QTCREATORBUG-19985 Reviewed-by: Tobias Hunger <tobias.hunger@qt.io>
* QbsRunConfiguration: Re-model based on RemoteLinux precedencehjk2018-03-121-1/+2
| | | | | | | Task-number: QTCREATORBUG-19985 Change-Id: Ifd95187b72fed3565552ecd14f3353b7e7df0069 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io> Reviewed-by: hjk <hjk@qt.io>
* RunConfigurationFactory: Simplify RunConfigFactory::create usehjk2018-03-091-19/+10
| | | | | | | | | A for (f : X.allFs()) if (f.canHandle(t)) { f.doIt() ... } } pattern can be replaced by some static X.doIt(t), and item.factory->create(target, item) by some item.create(target). Change-Id: I65df8b71e03272d60f41a16795ea43a0fdb262ef Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* Rename IRunConfigurationFactory to RunConfigurationFactoryhjk2018-03-071-2/+2
| | | | | | | | | | | It's not an *I*nterface anymore Also, remove the in-all-but-one case unused QObject parent and the object name that was only there for debugging purposes. The class type serves the same purpose in the debugger. Change-Id: I0dafb01e6b4fd7c7df04a63aaa3ef3e4bd693f6f Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* ProjectExplorer: Use RunConfigCreationInfo struct for rc creationhjk2018-03-051-1/+1
| | | | | | | | The struct will likely gain qtcrunnanable/terminal members, better pass all to where it is needed. Change-Id: Ieb0dae8b56ce5c0992955dbfc0cd89cdd7bfe848 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* ProjectExplorer: Consolidate RunConfig creation codepathshjk2018-03-021-4/+1
| | | | | | | | Move some code around to make interfaces slimmer. Also no need to check canHandle() twice per creation. Change-Id: I7c86e2dc78ebd53a0f8e9609e9fa135aaf31e7b7 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* RunConfiguration: Avoid unneeded calls to availableCreators()hjk2018-02-231-17/+16
| | | | | | | | | | | It has been used twice on each Target::updateDefaultRunConfigurations(): Once to help filter out potentially interesting factories, and then to actually retrieve the creators from the interesting factories. The same result can be obtained with less effort and less code. Change-Id: Ic83423bbbc172c842ec5a55fcd6ad83106e268aa Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* ProjectExplorer: Simplify collection of RunConfigurationCreationInfoshjk2018-02-151-8/+13
| | | | | | | | | Instead of calling twice for AutoCreated and UserCreated, call once and record to which case it belongs. Only the 'both' and 'user only' combination are ever used. Change-Id: I9c15085bcbb4bf6584a6156135f2084dbfc51c1c Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* ProjectExplorer: Remove allDeployConfigurationFactories() accessorhjk2018-01-161-3/+0
| | | | | | | | | | It's only used once to check whether there exist at least one. Since there's always the DefaultConfigurationFactory when the ProjectExplorer is present, this check will always succeed. Change-Id: Id457701bd6c8f68b91a0e225507181a878faac4a Reviewed-by: Christian Stenger <christian.stenger@qt.io>
* De-emphasize PluginManager::getObjects<Type>()hjk2017-12-151-8/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | ... by additionally keeping local (currently non-owning) pools per "interesting" type. Current situation: - The global object pool does not scale well for looking up objects, as iteration plus qobject_cast typically iterates over all pooled objects. - User code that can use typed results from the object pool need to have access to the full type definition anyway, i.e. depend on the plugin of the target class anyway. The patch here solves the scaling problem is to have local type-specific pools to which objects register in their constructors and deregister in their destructors. This patch here does *not* change the ownership model of the pooled objects, however, it opens the possibility to change the ownership model per type (e.g. by not putting things into the global pool at all anymore and make the local pool 'owning') and the intent is to handle that in later patchs. Even without the follow-up patches this here is a performance improvement for the cases that access the local pools instead the global one, i.e. "practically all". Change-Id: Ib11a42df2c4ecf5e1155534730083a520dd1995b Reviewed-by: Eike Ziller <eike.ziller@qt.io> Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* ProjectExplorer/all: Re-organize BuildSteps/{Deploy,Build}Config setuphjk2017-12-081-28/+31
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This follow the rough pattern of recent *RunConfigurationFactory changes for build and deploy configurations. - Collapse the two lines of constructors similar to what 890c1906e6fb2ec did for RunConfigurations * Deploy* was purely mechanical * Build* ctors are split in connects() in the ctor body to create "empty shell for clone" etc and build step additions in initialize() functions which are only used in the create() case. -- Allows to collapse the shared 'ctor()' functions, too. - Move FooBuildConfigurationFactory::create() implementations to FooBuildConfiguration() constructor. That was a strange and unneeded ping-pong between factories and objects, and furthermore allows one level less of indirection (and for a later, left out here, some reduction of the FooBuildConfiguration interfaces that were only used to accommodate the *Factory::create() functions. - Most {Build,Deploy}Configuration{,Factory} classes had a canHandle(), but there wasn't one in the base classses. Have one there. - Most canHandle() functions were checking simple restrictions on e.g. project or target types, specify those by setters in the constructors instead and check them in the base canHandle() - clone() is generally replaced by a creation of a "shell object" and a fromMap(source->toMap()), implemented in the base, there are two cases left for Android and Qbs that needed(?) some extra polish - generally use canHandle() in base implementation, instead of doing that in all Derived::canFoo() - as a result, canCreate/create/canClone/clone reimplementations are not needed anymore, keep the base implementation for now (could be inlined into their only users later), but de-virtualize them. - Combine Ios{Preset,DSym}BuildStepFactory. There was only one 'dsym' build step they could create. - Split the 'mangled' id into the ProjectConfiguration subtype specific constant identifier, and a QString extraId() bit. Only maintain the mangled id in saved settings. - Make ProjectConfiguration::m_id a constant member, adapt all constructors of derived classe. Not done in this patch: - Finish possible cosmetic changes on top - Add a way to specify restrictions to supported Qt versions (used in Android/Ios), as the base implementation does not depend on the qtsupport plugin - Combine the QList<X> availableFoo() + createFoo(X) function pairs to somthing like a direct QList<struct { X; std::function<X()>; }> fooCreators() to avoid e.g. the baseId.withSuffix() <-> id.suffixAfter(base) pingpong - Remove the *Factories from the global object pool - Do something about priority(). Falling back to plain qmake in android+qmake setup is not helpful. Change-Id: I2be7d88d554c5aa8b7db8edf5b93278e1ae0112a Reviewed-by: Tobias Hunger <tobias.hunger@qt.io>
* ProjectExplorer: Re-organize RunConfiguration constructorshjk2017-09-131-1/+2
| | | | | | | | | | | | | | | | | | | | The idea is to massage the setup in a way to make implementation of new configurations less error prone by identifying recurring patterns and sharing repetitive code that tends to be forgotten (see Android cloning). The former two lines of constructors (owner-and-id, owner-and-source) are split into a simple, shared, constructor and new setId() and copyFrom() functions. The change is mostly mechanical, some multiple calls to fromMap have been removed, though, some consts added. Otherwise, to keep the patch small it temporarily introduces two helper templates in IRunConfigurationFactory. Also, setId() signatures have not been unified yet. These won't be needed in the final setup. Change-Id: I8c0734496caae744a9883fe6d92c1d8f8e0234ea Reviewed-by: hjk <hjk@qt.io>
* Project: Get rid of *EnabledChanged signals on Project and TargetTobias Hunger2017-08-021-33/+0
| | | | | Change-Id: I87529e4eed73fedf34a1482c99129ecc3a5c0e98 Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
* Project: Get rid of builddirectoryChanged signalTobias Hunger2017-08-021-10/+0
| | | | | | | | Get rid of Project::buildDirectoryChanged signal as well as Target::buildDirectoryChanged (and the infrastructure). Change-Id: Ia749e62eec7e182e558d81115dc2a3d07b72b346 Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
* ProjectExplorer: Add subscribeSignal method to targets and projectsTobias Hunger2017-08-021-10/+0
| | | | | | | | | | | | | | | | Add a subscribeSignal method to targets and projects that will make sure all signals of all project configurations added during the lifetime of the project/target will get connected (if the type matches). Use this to connect to some signal in all BuildConfigurations of a project and get rid of code that keeps connecting to the current build configuration. Use Project::buildEnvironmentChanged as an example and convert its usages. Change-Id: I689bcebac4b191bf3f8a18765bf18eaac371c5fe Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
* ProjectExplorer: Add ProjectConfiguration * to activeProjectConfigurationChangedTobias Hunger2017-08-021-3/+3
| | | | | | | | Add ProjectConfiguration * to activeProjectConfigurationChanged signal on Projects and Targets. Change-Id: I56f71e034eacaaa043b19c7fd5d82e6c5ea58517 Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
* ProjectConfiguration: Add isActive() methodTobias Hunger2017-08-021-0/+5
| | | | | | | | | | Returns true if the ProjectConfiguration element is currently active and false otherwise. Just a convenience method. Change-Id: If75809ae7e78149d264deaaf6adc4ca8a8be43c2 Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
* ProjectExplorer: Simplify *ConfigurationModelsTobias Hunger2017-08-011-0/+9
| | | | | | | Do not duplicate the code three times! Change-Id: Ia2d7656242ae8270f51cd787f1261ff1aa135967 Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>