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

@@ -3,7 +3,6 @@
#include "projectconfiguration.h"
#include "kitinformation.h"
#include "target.h"
#include <utils/algorithm.h>
@@ -17,20 +16,15 @@ const char DISPLAY_NAME_KEY[] = "ProjectExplorer.ProjectConfiguration.DisplayNam
// ProjectConfiguration
ProjectConfiguration::ProjectConfiguration(QObject *parent, Utils::Id id)
ProjectConfiguration::ProjectConfiguration(QObject *parent, Target *target, Utils::Id id)
: AspectContainer(parent)
, m_target(target)
, m_id(id)
{
QTC_CHECK(parent);
QTC_CHECK(target);
QTC_CHECK(id.isValid());
setObjectName(id.toString());
for (QObject *obj = this; obj; obj = obj->parent()) {
m_target = qobject_cast<Target *>(obj);
if (m_target)
break;
}
QTC_CHECK(m_target);
}
ProjectConfiguration::~ProjectConfiguration() = default;