McuSupport: Reduce omnipotence of McuTarget's constructor

... add some setters for optional properties.

Change-Id: I4e1814c36f8294af86bf30d8538f450bc7f70b2b
Reviewed-by: hjk <hjk@qt.io>
This commit is contained in:
Alessandro Portale
2019-11-20 13:32:10 +01:00
parent cd4fe07708
commit b738a9d02d
2 changed files with 49 additions and 49 deletions

View File

@@ -202,36 +202,48 @@ void McuPackage::updateStatus()
}
McuTarget::McuTarget(const QString &vendor, const QString &model,
const QString &toolChainFileName, const QString &qulPlatform,
const QVector<McuPackage*> &packages)
: m_vendor(vendor)
, m_model(model)
, m_toolChainFile(toolChainFileName)
, m_qulPlatform(qulPlatform)
, m_packages(packages)
{
}
QString McuTarget::vendor() const
{
return m_vendor;
}
QString McuTarget::model() const
{
return m_model;
}
QVector<McuPackage *> McuTarget::packages() const
{
return m_packages;
}
void McuTarget::setToolChainFile(const QString &toolChainFile)
{
m_toolChainFile = toolChainFile;
}
QString McuTarget::toolChainFile() const
{
return m_toolChainFile;
}
void McuTarget::setQulPlatform(const QString &qulPlatform)
{
m_qulPlatform = qulPlatform;
}
QString McuTarget::qulPlatform() const
{
return m_qulPlatform;
}
QVector<McuPackage *> McuTarget::packages() const
{
return m_packages;
}
bool McuTarget::isValid() const
{
return !Utils::anyOf(packages(), [](McuPackage *package) {
@@ -239,11 +251,6 @@ bool McuTarget::isValid() const
});
}
QString McuTarget::vendor() const
{
return m_vendor;
}
static McuPackage *createQtForMCUsPackage()
{
auto result = new McuPackage(
@@ -377,38 +384,30 @@ McuSupportOptions::McuSupportOptions(QObject *parent)
const QString vendorNxp = "NXP";
const QString vendorQt = "Qt";
mcuTargets.append(new McuTarget(vendorStm,
"stm32f7508",
"CMake/stm32f7508-discovery.cmake",
"",
stmEvalPackages));
mcuTargets.append(new McuTarget(vendorStm,
"stm32f769i",
"CMake/stm32f769i-discovery.cmake",
"",
stmEvalPackages));
mcuTargets.append(new McuTarget(vendorStm,
"Engineering",
"CMake/<toolchain file>",
"",
stmEngPackages));
// STM
auto mcuTarget = new McuTarget(vendorStm, "stm32f7508", stmEvalPackages);
mcuTarget->setToolChainFile("CMake/stm32f7508-discovery.cmake");
mcuTargets.append(mcuTarget);
mcuTargets.append(new McuTarget(vendorNxp,
"evkbimxrt1050",
"CMake/evkbimxrt1050-toolchain.cmake",
"",
nxpEvalPackages));
mcuTargets.append(new McuTarget(vendorNxp,
"Engineering",
"CMake/<toolchain file>",
"",
nxpEngPackages));
mcuTarget = new McuTarget(vendorStm, "stm32f769i", stmEvalPackages);
mcuTarget->setToolChainFile("CMake/stm32f769i-discovery.cmake");
mcuTargets.append(mcuTarget);
mcuTargets.append(new McuTarget(vendorQt,
"Desktop",
"",
"Qt",
desktopPackages));
mcuTarget = new McuTarget(vendorStm, "Engineering", stmEngPackages);
mcuTargets.append(mcuTarget);
// NXP
mcuTarget = new McuTarget(vendorNxp, "evkbimxrt1050", nxpEvalPackages);
mcuTarget->setToolChainFile("CMake/evkbimxrt1050-toolchain.cmake");
mcuTargets.append(mcuTarget);
mcuTarget = new McuTarget(vendorNxp, "Engineering", nxpEngPackages);
mcuTargets.append(mcuTarget);
// Desktop
mcuTarget = new McuTarget(vendorQt, "Desktop", desktopPackages);
mcuTarget->setQulPlatform("Qt");
mcuTargets.append(mcuTarget);
for (auto package : packages)
connect(package, &McuPackage::changed, [this](){

View File

@@ -101,22 +101,23 @@ class McuTarget : public QObject
Q_OBJECT
public:
McuTarget(const QString &vendor, const QString &model, const QString &toolChainFile,
const QString &qulPlatform, const QVector<McuPackage *> &packages);
McuTarget(const QString &vendor, const QString &model, const QVector<McuPackage *> &packages);
QString vendor() const;
QString model() const;
QString toolChainFile() const;
QString qulPlatform() const;
QVector<McuPackage *> packages() const;
void setToolChainFile(const QString &toolChainFile);
QString toolChainFile() const;
void setQulPlatform(const QString &qulPlatform);
QString qulPlatform() const;
bool isValid() const;
private:
const QString m_vendor;
const QString m_model;
const QString m_toolChainFile;
const QString m_qulPlatform;
const QVector<McuPackage*> m_packages;
QString m_toolChainFile;
QString m_qulPlatform;
};
class McuSupportOptions : public QObject