BuildSettingsWidget::BuildSettingsWidget(Target *target) : m_target(target), m_buildConfiguration(0) { Q_ASSERT(m_target); QVBoxLayout *vbox = new QVBoxLayout(this); vbox->setContentsMargins(0, 0, 0, 0); if (!IBuildConfigurationFactory::find(m_target)) { QLabel *noSettingsLabel = new QLabel(this); noSettingsLabel->setText(tr("No build settings available")); QFont f = noSettingsLabel->font(); f.setPointSizeF(f.pointSizeF() * 1.2); noSettingsLabel->setFont(f); vbox->addWidget(noSettingsLabel); return; } { // Edit Build Configuration row QHBoxLayout *hbox = new QHBoxLayout(); hbox->setContentsMargins(0, 0, 0, 0); hbox->addWidget(new QLabel(tr("Edit build configuration:"), this)); m_buildConfigurationComboBox = new QComboBox(this); m_buildConfigurationComboBox->setSizeAdjustPolicy(QComboBox::AdjustToContents); m_buildConfigurationComboBox->setModel(new BuildConfigurationModel(m_target, this)); hbox->addWidget(m_buildConfigurationComboBox); m_addButton = new QPushButton(this); m_addButton->setText(tr("Add")); m_addButton->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed); hbox->addWidget(m_addButton); m_addButtonMenu = new QMenu(this); m_addButton->setMenu(m_addButtonMenu); m_removeButton = new QPushButton(this); m_removeButton->setText(tr("Remove")); m_removeButton->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed); hbox->addWidget(m_removeButton); m_renameButton = new QPushButton(this); m_renameButton->setText(tr("Rename...")); m_renameButton->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed); hbox->addWidget(m_renameButton); hbox->addSpacerItem(new QSpacerItem(0, 0, QSizePolicy::Expanding, QSizePolicy::Fixed)); vbox->addLayout(hbox); } m_buildConfiguration = m_target->activeBuildConfiguration(); BuildConfigurationModel *model = static_cast<BuildConfigurationModel *>(m_buildConfigurationComboBox->model()); m_buildConfigurationComboBox->setCurrentIndex(model->indexFor(m_buildConfiguration).row()); updateAddButtonMenu(); updateBuildSettings(); connect(m_buildConfigurationComboBox, SIGNAL(currentIndexChanged(int)), this, SLOT(currentIndexChanged(int))); connect(m_removeButton, SIGNAL(clicked()), this, SLOT(deleteConfiguration())); connect(m_renameButton, SIGNAL(clicked()), this, SLOT(renameConfiguration())); connect(m_target, SIGNAL(activeBuildConfigurationChanged(ProjectExplorer::BuildConfiguration*)), this, SLOT(updateActiveConfiguration())); connect(m_target, SIGNAL(kitChanged()), this, SLOT(updateAddButtonMenu())); }
MiniTargetWidget::MiniTargetWidget(Target *target, QWidget *parent) : QWidget(parent), m_target(target) { Q_ASSERT(m_target); if (hasBuildConfiguration()) { m_buildComboBox = new QComboBox; m_buildComboBox->setProperty("alignarrow", true); m_buildComboBox->setProperty("hideborder", true); m_buildComboBox->setSizePolicy(QSizePolicy::MinimumExpanding, QSizePolicy::Preferred); m_buildComboBox->setToolTip(tr("Select active build configuration")); m_buildComboBox->setModel(new BuildConfigurationModel(m_target, this)); } else { m_buildComboBox = 0; } m_runComboBox = new QComboBox; m_runComboBox ->setProperty("alignarrow", true); m_runComboBox ->setProperty("hideborder", true); m_runComboBox->setSizePolicy(QSizePolicy::MinimumExpanding, QSizePolicy::Preferred); m_runComboBox->setToolTip(tr("Select active run configuration")); RunConfigurationModel *model = new RunConfigurationModel(m_target, this); m_runComboBox->setModel(model); int fontSize = font().pointSize(); setStyleSheet(QString::fromLatin1("QLabel { font-size: %2pt; color: white; } " "#target { font: bold %1pt;} " "#buildLabel{ font: bold; color: rgba(255, 255, 255, 160)} " "#runLabel { font: bold ; color: rgba(255, 255, 255, 160)} " ).arg(fontSize).arg(fontSize - 2)); QGridLayout *gridLayout = new QGridLayout(this); m_targetName = new QLabel(m_target->displayName()); m_targetName->setObjectName(QString::fromUtf8("target")); m_targetIcon = new QLabel(); updateIcon(); if (hasBuildConfiguration()) { Q_FOREACH(BuildConfiguration* bc, m_target->buildConfigurations()) addBuildConfiguration(bc); BuildConfigurationModel *model = static_cast<BuildConfigurationModel *>(m_buildComboBox->model()); m_buildComboBox->setCurrentIndex(model->indexFor(m_target->activeBuildConfiguration()).row()); connect(m_target, SIGNAL(addedBuildConfiguration(ProjectExplorer::BuildConfiguration*)), SLOT(addBuildConfiguration(ProjectExplorer::BuildConfiguration*))); connect(m_target, SIGNAL(removedBuildConfiguration(ProjectExplorer::BuildConfiguration*)), SLOT(removeBuildConfiguration(ProjectExplorer::BuildConfiguration*))); connect(m_target, SIGNAL(activeBuildConfigurationChanged(ProjectExplorer::BuildConfiguration*)), SLOT(setActiveBuildConfiguration())); connect(m_buildComboBox, SIGNAL(currentIndexChanged(int)), SLOT(setActiveBuildConfiguration(int))); } m_runComboBox->setEnabled(m_target->runConfigurations().count() > 1); m_runComboBox->setCurrentIndex(model->indexFor(m_target->activeRunConfiguration()).row()); connect(m_target, SIGNAL(addedRunConfiguration(ProjectExplorer::RunConfiguration*)), SLOT(addRunConfiguration(ProjectExplorer::RunConfiguration*))); connect(m_target, SIGNAL(removedRunConfiguration(ProjectExplorer::RunConfiguration*)), SLOT(removeRunConfiguration(ProjectExplorer::RunConfiguration*))); connect(m_runComboBox, SIGNAL(currentIndexChanged(int)), SLOT(setActiveRunConfiguration(int))); connect(m_target, SIGNAL(activeRunConfigurationChanged(ProjectExplorer::RunConfiguration*)), SLOT(setActiveRunConfiguration())); connect(m_target, SIGNAL(iconChanged()), this, SLOT(updateIcon())); QHBoxLayout *buildHelperLayout = 0; if (hasBuildConfiguration()) { buildHelperLayout= new QHBoxLayout; buildHelperLayout->setMargin(0); buildHelperLayout->setSpacing(0); buildHelperLayout->addWidget(m_buildComboBox); } QHBoxLayout *runHelperLayout = new QHBoxLayout; runHelperLayout->setMargin(0); runHelperLayout->setSpacing(0); runHelperLayout->addWidget(m_runComboBox); QFormLayout *formLayout = new QFormLayout; formLayout->setLabelAlignment(Qt::AlignRight); QLabel *lbl; int indent = 10; if (hasBuildConfiguration()) { lbl = new QLabel(tr("Build:")); lbl->setObjectName(QString::fromUtf8("buildLabel")); lbl->setMinimumWidth(lbl->fontMetrics().width(lbl->text()) + indent + 4); lbl->setIndent(indent); formLayout->addRow(lbl, buildHelperLayout); } lbl = new QLabel(tr("Run:")); lbl->setObjectName(QString::fromUtf8("runLabel")); lbl->setMinimumWidth(lbl->fontMetrics().width(lbl->text()) + indent + 4); lbl->setIndent(indent); formLayout->addRow(lbl, runHelperLayout); gridLayout->addWidget(m_targetName, 0, 0); gridLayout->addWidget(m_targetIcon, 0, 1, 2, 1, Qt::AlignTop|Qt::AlignHCenter); gridLayout->addLayout(formLayout, 1, 0); }