forked from qt-creator/qt-creator
Fill the "Add" build configuration menu with values from factory.
Default creation type implementation are still missing for cmake and generic projects.
This commit is contained in:
@@ -164,12 +164,7 @@ BuildSettingsWidget::BuildSettingsWidget(Project *project)
|
|||||||
m_subWidgets = new BuildSettingsSubWidgets(this);
|
m_subWidgets = new BuildSettingsSubWidgets(this);
|
||||||
vbox->addWidget(m_subWidgets);
|
vbox->addWidget(m_subWidgets);
|
||||||
|
|
||||||
QMenu *addButtonMenu = new QMenu(this);
|
createAddButtonMenu();
|
||||||
addButtonMenu->addAction(tr("Create &New"),
|
|
||||||
this, SLOT(createConfiguration()));
|
|
||||||
addButtonMenu->addAction(tr("&Clone Selected"),
|
|
||||||
this, SLOT(cloneConfiguration()));
|
|
||||||
m_addButton->setMenu(addButtonMenu);
|
|
||||||
|
|
||||||
m_buildConfiguration = m_project->activeBuildConfiguration()->name();
|
m_buildConfiguration = m_project->activeBuildConfiguration()->name();
|
||||||
|
|
||||||
@@ -185,6 +180,21 @@ BuildSettingsWidget::BuildSettingsWidget(Project *project)
|
|||||||
updateBuildSettings();
|
updateBuildSettings();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void BuildSettingsWidget::createAddButtonMenu()
|
||||||
|
{
|
||||||
|
QMenu *addButtonMenu = new QMenu(this);
|
||||||
|
addButtonMenu->addAction(tr("&Clone Selected"),
|
||||||
|
this, SLOT(cloneConfiguration()));
|
||||||
|
IBuildConfigurationFactory *factory = m_project->buildConfigurationFactory();
|
||||||
|
if (factory) {
|
||||||
|
foreach (const QString &type, factory->availableCreationTypes()) {
|
||||||
|
QAction *action = addButtonMenu->addAction(factory->displayNameForType(type), this, SLOT(createConfiguration()));
|
||||||
|
action->setData(type);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
m_addButton->setMenu(addButtonMenu);
|
||||||
|
}
|
||||||
|
|
||||||
void BuildSettingsWidget::buildConfigurationDisplayNameChanged(const QString &buildConfiguration)
|
void BuildSettingsWidget::buildConfigurationDisplayNameChanged(const QString &buildConfiguration)
|
||||||
{
|
{
|
||||||
for (int i=0; i<m_buildConfigurationComboBox->count(); ++i) {
|
for (int i=0; i<m_buildConfigurationComboBox->count(); ++i) {
|
||||||
@@ -256,41 +266,16 @@ void BuildSettingsWidget::activeBuildConfigurationChanged()
|
|||||||
|
|
||||||
void BuildSettingsWidget::createConfiguration()
|
void BuildSettingsWidget::createConfiguration()
|
||||||
{
|
{
|
||||||
// TODO!
|
QAction *action = qobject_cast<QAction *>(sender());
|
||||||
// bool ok;
|
const QString &type = action->data().toString();
|
||||||
// QString newBuildConfiguration = QInputDialog::getText(this, tr("New configuration"), tr("New Configuration Name:"), QLineEdit::Normal, QString(), &ok);
|
QList<BuildConfiguration *> configurations = m_project->buildConfigurationFactory()->create(type);
|
||||||
// if (!ok || newBuildConfiguration.isEmpty())
|
if (!configurations.isEmpty()) {
|
||||||
// return;
|
foreach (BuildConfiguration *configuration, configurations) {
|
||||||
//
|
m_project->addBuildConfiguration(configuration);
|
||||||
// QString newDisplayName = newBuildConfiguration;
|
}
|
||||||
// // Check that the internal name is not taken and use a different one otherwise
|
m_buildConfiguration = configurations.first()->name();
|
||||||
// const QStringList &buildConfigurations = m_project->buildConfigurations();
|
updateBuildSettings();
|
||||||
// if (buildConfigurations.contains(newBuildConfiguration)) {
|
}
|
||||||
// int i = 2;
|
|
||||||
// while (buildConfigurations.contains(newBuildConfiguration + QString::number(i)))
|
|
||||||
// ++i;
|
|
||||||
// newBuildConfiguration += QString::number(i);
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
// // Check that we don't have a configuration with the same displayName
|
|
||||||
// QStringList displayNames;
|
|
||||||
// foreach (const QString &bc, buildConfigurations)
|
|
||||||
// displayNames << m_project->buildConfiguration(bc)->displayName();
|
|
||||||
//
|
|
||||||
// if (displayNames.contains(newDisplayName)) {
|
|
||||||
// int i = 2;
|
|
||||||
// while (displayNames.contains(newDisplayName + QString::number(i)))
|
|
||||||
// ++i;
|
|
||||||
// newDisplayName += QString::number(i);
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
// if (m_project->newBuildConfiguration(newBuildConfiguration)) {
|
|
||||||
// m_project->addBuildConfiguration(newBuildConfiguration);
|
|
||||||
// m_project->setDisplayNameFor(newBuildConfiguration, newDisplayName);
|
|
||||||
// m_buildConfiguration = newBuildConfiguration;
|
|
||||||
//
|
|
||||||
// updateBuildSettings();
|
|
||||||
// }
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void BuildSettingsWidget::cloneConfiguration()
|
void BuildSettingsWidget::cloneConfiguration()
|
||||||
|
|||||||
@@ -102,6 +102,7 @@ private slots:
|
|||||||
private:
|
private:
|
||||||
void cloneConfiguration(const QString &toClone);
|
void cloneConfiguration(const QString &toClone);
|
||||||
void deleteConfiguration(const QString &toDelete);
|
void deleteConfiguration(const QString &toDelete);
|
||||||
|
void createAddButtonMenu();
|
||||||
|
|
||||||
Project *m_project;
|
Project *m_project;
|
||||||
QPushButton *m_addButton;
|
QPushButton *m_addButton;
|
||||||
|
|||||||
@@ -242,17 +242,17 @@ Qt4BuildConfigurationFactory::~Qt4BuildConfigurationFactory()
|
|||||||
|
|
||||||
QStringList Qt4BuildConfigurationFactory::availableCreationTypes() const
|
QStringList Qt4BuildConfigurationFactory::availableCreationTypes() const
|
||||||
{
|
{
|
||||||
return QStringList() << "Create";
|
return QStringList() << "DefaultQt";
|
||||||
}
|
}
|
||||||
|
|
||||||
QString Qt4BuildConfigurationFactory::displayNameForType(const QString &type) const
|
QString Qt4BuildConfigurationFactory::displayNameForType(const QString &type) const
|
||||||
{
|
{
|
||||||
return tr("Create");
|
return tr("Using Default Qt Version");
|
||||||
}
|
}
|
||||||
|
|
||||||
QList<BuildConfiguration *> Qt4BuildConfigurationFactory::create(const QString &type) const
|
QList<BuildConfiguration *> Qt4BuildConfigurationFactory::create(const QString &type) const
|
||||||
{
|
{
|
||||||
QTC_ASSERT(type == "Create", return QList<BuildConfiguration*>());
|
QTC_ASSERT(type == "DefaultQt", return QList<BuildConfiguration*>());
|
||||||
bool ok;
|
bool ok;
|
||||||
QString buildConfigurationName = QInputDialog::getText(0,
|
QString buildConfigurationName = QInputDialog::getText(0,
|
||||||
tr("New configuration"),
|
tr("New configuration"),
|
||||||
|
|||||||
Reference in New Issue
Block a user