forked from qt-creator/qt-creator
Changing string based api to BuildConfiguration based api.
Builds, but I'm pretty sure it doesn't *work* :)
This commit is contained in:
@@ -66,9 +66,9 @@ void Project::insertBuildStep(int position, BuildStep *step)
|
||||
{
|
||||
m_buildSteps.insert(position, step);
|
||||
// check that the step has all the configurations
|
||||
foreach (const QString &name, buildConfigurations())
|
||||
if (!step->getBuildConfiguration(name))
|
||||
step->addBuildConfiguration(name);
|
||||
foreach (const BuildConfiguration *bc, buildConfigurations())
|
||||
if (!step->getBuildConfiguration(bc->name()))
|
||||
step->addBuildConfiguration(bc->name());
|
||||
}
|
||||
|
||||
void Project::removeBuildStep(int position)
|
||||
@@ -87,9 +87,9 @@ void Project::insertCleanStep(int position, BuildStep *step)
|
||||
{
|
||||
m_cleanSteps.insert(position, step);
|
||||
// check that the step has all the configurations
|
||||
foreach (const QString &name, buildConfigurations())
|
||||
if (!step->getBuildConfiguration(name))
|
||||
step->addBuildConfiguration(name);
|
||||
foreach (const BuildConfiguration *bc, buildConfigurations())
|
||||
if (!step->getBuildConfiguration(bc->name()))
|
||||
step->addBuildConfiguration(bc->name());
|
||||
}
|
||||
|
||||
void Project::removeCleanStep(int position)
|
||||
@@ -104,49 +104,75 @@ void Project::moveCleanStepUp(int position)
|
||||
m_cleanSteps.insert(position - 1, bs);
|
||||
}
|
||||
|
||||
void Project::addBuildConfiguration(const QString &name)
|
||||
void Project::addBuildConfiguration(BuildConfiguration *configuration)
|
||||
{
|
||||
if (buildConfigurations().contains(name) )
|
||||
return;
|
||||
QStringList buildConfigurationNames;
|
||||
foreach (const BuildConfiguration *bc, buildConfigurations())
|
||||
buildConfigurationNames << bc->name();
|
||||
|
||||
m_buildConfigurationValues.push_back(new BuildConfiguration(name));
|
||||
// Check that the internal name is not taken and use a different one otherwise
|
||||
QString configurationName = configuration->name();
|
||||
if (buildConfigurationNames.contains(configurationName)) {
|
||||
int i = 2;
|
||||
while (buildConfigurationNames.contains(configurationName + QString::number(i)))
|
||||
++i;
|
||||
configurationName += QString::number(i);
|
||||
}
|
||||
configuration->setName(configurationName);
|
||||
|
||||
// Check that we don't have a configuration with the same displayName
|
||||
QString configurationDisplayName = configuration->displayName();
|
||||
QStringList displayNames;
|
||||
foreach (const BuildConfiguration *bc, m_buildConfigurationValues)
|
||||
displayNames << bc->displayName();
|
||||
if (displayNames.contains(configurationDisplayName)) {
|
||||
int i = 2;
|
||||
while (displayNames.contains(configurationDisplayName + QString::number(i)))
|
||||
++i;
|
||||
configurationDisplayName += QString::number(i);
|
||||
}
|
||||
configuration->setDisplayName(configurationDisplayName);
|
||||
|
||||
// add it
|
||||
m_buildConfigurationValues.push_back(configuration);
|
||||
|
||||
// update build steps
|
||||
for (int i = 0; i != m_buildSteps.size(); ++i)
|
||||
m_buildSteps.at(i)->addBuildConfiguration(name);
|
||||
|
||||
m_buildSteps.at(i)->addBuildConfiguration(configuration->name());
|
||||
for (int i = 0; i != m_cleanSteps.size(); ++i)
|
||||
m_cleanSteps.at(i)->addBuildConfiguration(name);
|
||||
emit addedBuildConfiguration(this, name);
|
||||
m_cleanSteps.at(i)->addBuildConfiguration(configuration->name());
|
||||
|
||||
emit addedBuildConfiguration(this, configuration->name());
|
||||
}
|
||||
|
||||
void Project::removeBuildConfiguration(const QString &name)
|
||||
void Project::removeBuildConfiguration(BuildConfiguration *configuration)
|
||||
{
|
||||
if (!buildConfigurations().contains(name))
|
||||
//todo: this might be error prone
|
||||
if (!buildConfigurations().contains(configuration))
|
||||
return;
|
||||
|
||||
for (int i = 0; i != m_buildConfigurationValues.size(); ++i)
|
||||
if (m_buildConfigurationValues.at(i)->name() == name) {
|
||||
if (m_buildConfigurationValues.at(i)->name() == configuration->name()) {
|
||||
delete m_buildConfigurationValues.at(i);
|
||||
m_buildConfigurationValues.removeAt(i);
|
||||
break;
|
||||
}
|
||||
|
||||
for (int i = 0; i != m_buildSteps.size(); ++i)
|
||||
m_buildSteps.at(i)->removeBuildConfiguration(name);
|
||||
m_buildSteps.at(i)->removeBuildConfiguration(configuration->name());
|
||||
for (int i = 0; i != m_cleanSteps.size(); ++i)
|
||||
m_cleanSteps.at(i)->removeBuildConfiguration(name);
|
||||
m_cleanSteps.at(i)->removeBuildConfiguration(configuration->name());
|
||||
|
||||
emit removedBuildConfiguration(this, name);
|
||||
emit removedBuildConfiguration(this, configuration->name());
|
||||
}
|
||||
|
||||
void Project::copyBuildConfiguration(const QString &source, const QString &dest)
|
||||
{
|
||||
if (!buildConfigurations().contains(source))
|
||||
BuildConfiguration *sourceConfiguration = buildConfiguration(source);
|
||||
if (!sourceConfiguration)
|
||||
return;
|
||||
|
||||
for (int i = 0; i != m_buildConfigurationValues.size(); ++i)
|
||||
if (m_buildConfigurationValues.at(i)->name() == source)
|
||||
m_buildConfigurationValues.push_back(new BuildConfiguration(dest, m_buildConfigurationValues.at(i)));
|
||||
m_buildConfigurationValues.push_back(new BuildConfiguration(dest, sourceConfiguration));
|
||||
|
||||
for (int i = 0; i != m_buildSteps.size(); ++i)
|
||||
m_buildSteps.at(i)->copyBuildConfiguration(source, dest);
|
||||
@@ -156,12 +182,9 @@ void Project::copyBuildConfiguration(const QString &source, const QString &dest)
|
||||
emit addedBuildConfiguration(this, dest);
|
||||
}
|
||||
|
||||
QStringList Project::buildConfigurations() const
|
||||
QList<BuildConfiguration *> Project::buildConfigurations() const
|
||||
{
|
||||
QStringList result;
|
||||
foreach (BuildConfiguration *bc, m_buildConfigurationValues)
|
||||
result << bc->name();
|
||||
return result;
|
||||
return m_buildConfigurationValues;
|
||||
}
|
||||
|
||||
bool Project::hasBuildSettings() const
|
||||
@@ -194,7 +217,7 @@ bool Project::restoreSettings()
|
||||
return false;
|
||||
|
||||
if (m_activeBuildConfiguration.isEmpty() && !m_buildConfigurations.isEmpty())
|
||||
setActiveBuildConfiguration(m_buildConfigurations.at(0));
|
||||
setActiveBuildConfiguration(m_buildConfigurationValues.at(0));
|
||||
|
||||
if (!m_activeRunConfiguration && !m_runConfigurations.isEmpty())
|
||||
setActiveRunConfiguration(m_runConfigurations.at(0));
|
||||
@@ -213,10 +236,11 @@ void Project::saveSettingsImpl(PersistentSettingsWriter &writer)
|
||||
writer.saveValue("project", m_values);
|
||||
|
||||
//save buildsettings
|
||||
foreach (const QString &buildConfigurationName, buildConfigurations()) {
|
||||
QMap<QString, QVariant> temp =
|
||||
buildConfiguration(buildConfigurationName)->toMap();
|
||||
writer.saveValue("buildConfiguration-" + buildConfigurationName, temp);
|
||||
QStringList buildConfigurationNames;
|
||||
foreach (const BuildConfiguration *bc, buildConfigurations()) {
|
||||
QMap<QString, QVariant> temp = bc->toMap();
|
||||
writer.saveValue("buildConfiguration-" + bc->name(), temp);
|
||||
buildConfigurationNames << bc->name();
|
||||
}
|
||||
|
||||
QStringList buildStepNames;
|
||||
@@ -228,7 +252,6 @@ void Project::saveSettingsImpl(PersistentSettingsWriter &writer)
|
||||
foreach (BuildStep *cleanStep, cleanSteps())
|
||||
cleanStepNames << cleanStep->name();
|
||||
writer.saveValue("cleansteps", cleanStepNames);
|
||||
QStringList buildConfigurationNames = buildConfigurations();
|
||||
writer.saveValue("buildconfigurations", buildConfigurationNames );
|
||||
|
||||
//save buildstep configuration
|
||||
@@ -294,10 +317,11 @@ bool Project::restoreSettingsImpl(PersistentSettingsReader &reader)
|
||||
// restoring BuldConfigurations from settings
|
||||
const QStringList buildConfigurationNames = reader.restoreValue("buildconfigurations").toStringList();
|
||||
foreach (const QString &buildConfigurationName, buildConfigurationNames) {
|
||||
addBuildConfiguration(buildConfigurationName);
|
||||
BuildConfiguration *bc = new BuildConfiguration(buildConfigurationName);
|
||||
addBuildConfiguration(bc);
|
||||
QMap<QString, QVariant> temp =
|
||||
reader.restoreValue("buildConfiguration-" + buildConfigurationName).toMap();
|
||||
buildConfiguration(buildConfigurationName)->setValuesFromMap(temp);
|
||||
bc->setValuesFromMap(temp);
|
||||
}
|
||||
|
||||
const QList<IBuildStepFactory *> buildStepFactories =
|
||||
@@ -434,20 +458,19 @@ QVariant Project::value(const QString &buildConfigurationName, const QString &na
|
||||
return QVariant();
|
||||
}
|
||||
|
||||
QString Project::activeBuildConfiguration() const
|
||||
BuildConfiguration *Project::activeBuildConfiguration() const
|
||||
{
|
||||
return m_activeBuildConfiguration;
|
||||
return buildConfiguration(m_activeBuildConfiguration); //TODO
|
||||
}
|
||||
|
||||
void Project::setActiveBuildConfiguration(const QString &config)
|
||||
void Project::setActiveBuildConfiguration(BuildConfiguration *configuration)
|
||||
{
|
||||
if (m_activeBuildConfiguration != config && buildConfigurations().contains(config)) {
|
||||
m_activeBuildConfiguration = config;
|
||||
if (m_activeBuildConfiguration != configuration->name() && m_buildConfigurationValues.contains(configuration)) {
|
||||
m_activeBuildConfiguration = configuration->name();
|
||||
emit activeBuildConfigurationChanged();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
QList<QSharedPointer<RunConfiguration> > Project::runConfigurations() const
|
||||
{
|
||||
return m_runConfigurations;
|
||||
@@ -468,7 +491,7 @@ void Project::removeRunConfiguration(QSharedPointer<RunConfiguration> runConfigu
|
||||
if(!m_runConfigurations.contains(runConfiguration)) {
|
||||
qWarning()<<"Not removing runConfiguration"<<runConfiguration->name()<<"becasue it doesn't exist";
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
if (m_activeRunConfiguration == runConfiguration) {
|
||||
if (m_runConfigurations.size() <= 1)
|
||||
|
||||
Reference in New Issue
Block a user