BuildStepList: Pass ProjectConfiguration into c'tor

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>
This commit is contained in:
Jarek Kobus
2023-07-10 10:02:37 +02:00
parent 02ffee322b
commit 6a8fe161cb
8 changed files with 29 additions and 35 deletions

View File

@@ -19,13 +19,10 @@ namespace ProjectExplorer {
const char STEPS_COUNT_KEY[] = "ProjectExplorer.BuildStepList.StepsCount";
const char STEPS_PREFIX[] = "ProjectExplorer.BuildStepList.Step.";
BuildStepList::BuildStepList(QObject *parent, Utils::Id id)
: QObject(parent), m_id(id)
BuildStepList::BuildStepList(ProjectConfiguration *config, Utils::Id id)
: QObject(config), m_projectConfiguration(config), m_id(id)
{
QTC_ASSERT(parent, return);
QTC_ASSERT(parent->parent(), return);
m_target = qobject_cast<Target *>(parent->parent());
QTC_ASSERT(m_target, return);
QTC_CHECK(config);
}
BuildStepList::~BuildStepList()
@@ -39,6 +36,11 @@ void BuildStepList::clear()
m_steps.clear();
}
Target *BuildStepList::target() const
{
return m_projectConfiguration->target();
}
QVariantMap BuildStepList::toMap() const
{
QVariantMap map;