Qt4Project: Fix ordering of buildconfigurations for new/open

Task-number: QTCREATORBUG-7152

Change-Id: I4c7c0d2f89cdde2ed8dc13adc4187adf91b10f29
Reviewed-by: Tobias Hunger <tobias.hunger@nokia.com>
This commit is contained in:
Daniel Teske
2012-03-28 14:17:24 +02:00
parent fbf6bc5530
commit acb4ebeafa

View File

@@ -970,10 +970,33 @@ bool less(const BuildConfigurationInfo &a, const BuildConfigurationInfo &b)
return true; return true;
if (a.qtVersionId > b.qtVersionId) if (a.qtVersionId > b.qtVersionId)
return false; return false;
if (a.buildConfig < b.buildConfig)
return true; if (a.buildConfig != b.buildConfig) {
if (a.buildConfig > b.buildConfig) QtSupport::BaseQtVersion *version = a.version();
return false; QtSupport::BaseQtVersion::QmakeBuildConfigs defaultBuildConfigs = QtSupport::BaseQtVersion::DebugBuild;
if (version)
defaultBuildConfigs = version->defaultBuildConfig();
bool adebug = a.buildConfig & QtSupport::BaseQtVersion::DebugBuild;
bool bdebug = b.buildConfig & QtSupport::BaseQtVersion::DebugBuild;
bool defaultdebug = defaultBuildConfigs & QtSupport::BaseQtVersion::DebugBuild;
if (adebug != bdebug)
return (adebug == defaultdebug);
bool abuildall = a.buildConfig & QtSupport::BaseQtVersion::BuildAll;
bool bbuildall = b.buildConfig & QtSupport::BaseQtVersion::BuildAll;
bool defaultbuildall = defaultBuildConfigs & QtSupport::BaseQtVersion::BuildAll;
if (abuildall != bbuildall)
return (abuildall == defaultbuildall);
// Those cases can't happen
if (a.buildConfig < b.buildConfig)
return true;
if (a.buildConfig > b.buildConfig)
return false;
}
if (a.additionalArguments < b.additionalArguments) if (a.additionalArguments < b.additionalArguments)
return true; return true;
if (a.additionalArguments > b.additionalArguments) if (a.additionalArguments > b.additionalArguments)
@@ -986,8 +1009,6 @@ bool less(const BuildConfigurationInfo &a, const BuildConfigurationInfo &b)
void Qt4DefaultTargetSetupWidget::setBuildConfigurationInfos(QList<BuildConfigurationInfo> infos, bool resetDirectories) void Qt4DefaultTargetSetupWidget::setBuildConfigurationInfos(QList<BuildConfigurationInfo> infos, bool resetDirectories)
{ {
// This is somewhat ugly in that we used to sort the buildconfigurations in the order
// that the default for that qt version is first
qSort(infos.begin(), infos.end(), less); qSort(infos.begin(), infos.end(), less);
// Existing builds, to figure out which newly added // Existing builds, to figure out which newly added