MakeStepConfigWidget::MakeStepConfigWidget(MakeStep *makeStep) : m_makeStep(makeStep) { QFormLayout *fl = new QFormLayout(this); fl->setMargin(0); fl->setFieldGrowthPolicy(QFormLayout::ExpandingFieldsGrow); setLayout(fl); m_additionalArguments = new QLineEdit(this); fl->addRow(tr("Additional arguments:"), m_additionalArguments); m_additionalArguments->setText(m_makeStep->additionalArguments()); m_buildTargetsList = new QListWidget; m_buildTargetsList->setMinimumHeight(200); fl->addRow(tr("Targets:"), m_buildTargetsList); // TODO update this list also on rescans of the CMakeLists.txt // TODO shouldn't be accessing project CMakeProject *pro = m_makeStep->cmakeBuildConfiguration()->cmakeTarget()->cmakeProject(); foreach(const QString& buildTarget, pro->buildTargetTitles()) { QListWidgetItem *item = new QListWidgetItem(buildTarget, m_buildTargetsList); item->setFlags(item->flags() | Qt::ItemIsUserCheckable); item->setCheckState(m_makeStep->buildsBuildTarget(item->text()) ? Qt::Checked : Qt::Unchecked); } updateDetails(); connect(m_additionalArguments, SIGNAL(textEdited(const QString &)), this, SLOT(additionalArgumentsEdited())); connect(m_buildTargetsList, SIGNAL(itemChanged(QListWidgetItem*)), this, SLOT(itemChanged(QListWidgetItem*))); connect(ProjectExplorer::ProjectExplorerPlugin::instance(), SIGNAL(settingsChanged()), this, SLOT(updateDetails())); connect(pro, SIGNAL(buildTargetsChanged()), this, SLOT(buildTargetsChanged())); }
// used to show the list of possible additons to a project, returns a list of ids QList<Core::Id> CMakeRunConfigurationFactory::availableCreationIds(ProjectExplorer::Target *parent) const { if (!canHandle(parent)) return QList<Core::Id>(); CMakeProject *project = static_cast<CMakeProject *>(parent->project()); QList<Core::Id> allIds; foreach (const QString &buildTarget, project->buildTargetTitles(true)) allIds << idFromBuildTarget(buildTarget); return allIds; }
void MakeStepConfigWidget::buildTargetsChanged() { disconnect(m_buildTargetsList, SIGNAL(itemChanged(QListWidgetItem*)), this, SLOT(itemChanged(QListWidgetItem*))); m_buildTargetsList->clear(); CMakeProject *pro = m_makeStep->cmakeBuildConfiguration()->cmakeTarget()->cmakeProject(); foreach(const QString& buildTarget, pro->buildTargetTitles()) { QListWidgetItem *item = new QListWidgetItem(buildTarget, m_buildTargetsList); item->setFlags(item->flags() | Qt::ItemIsUserCheckable); item->setCheckState(m_makeStep->buildsBuildTarget(item->text()) ? Qt::Checked : Qt::Unchecked); } connect(m_buildTargetsList, SIGNAL(itemChanged(QListWidgetItem*)), this, SLOT(itemChanged(QListWidgetItem*))); updateSummary(); }
void CMakeLocatorFilter::prepareSearch(const QString &entry) { m_result.clear(); foreach (Project *p, SessionManager::projects()) { CMakeProject *cmakeProject = qobject_cast<CMakeProject *>(p); if (!cmakeProject) continue; foreach (const QString &title, cmakeProject->buildTargetTitles()) { if (title.contains(entry)) { Core::LocatorFilterEntry entry(this, title, cmakeProject->projectFilePath().toString()); entry.extraInfo = FileUtils::shortNativePath(cmakeProject->projectFilePath()); m_result.append(entry); } } }
MakeStepConfigWidget::MakeStepConfigWidget(MakeStep *makeStep) : m_makeStep(makeStep) { QFormLayout *fl = new QFormLayout(this); fl->setMargin(0); fl->setFieldGrowthPolicy(QFormLayout::ExpandingFieldsGrow); setLayout(fl); m_makePathChooser = new Utils::PathChooser(this); m_makePathChooser->setExpectedKind(Utils::PathChooser::ExistingCommand); m_makePathChooser->setBaseDirectory(Utils::PathChooser::homePath()); m_makePathChooser->setHistoryCompleter(QLatin1String("PE.MakeCommand.History")); m_makePathChooser->setPath(m_makeStep->userMakeCommand()); fl->addRow(tr("Override command:"), m_makePathChooser); m_additionalArguments = new QLineEdit(this); fl->addRow(tr("Additional arguments:"), m_additionalArguments); m_additionalArguments->setText(m_makeStep->additionalArguments()); m_buildTargetsList = new QListWidget; m_buildTargetsList->setFrameStyle(QFrame::NoFrame); m_buildTargetsList->setMinimumHeight(200); QFrame *frame = new QFrame(this); frame->setFrameStyle(QFrame::StyledPanel); QVBoxLayout *frameLayout = new QVBoxLayout(frame); frameLayout->setMargin(0); frameLayout->addWidget(Core::ItemViewFind::createSearchableWrapper(m_buildTargetsList, Core::ItemViewFind::LightColored)); fl->addRow(tr("Targets:"), frame); auto itemAddRunConfigurationArgument = new QListWidgetItem(tr(ADD_RUNCONFIGURATION_TEXT), m_buildTargetsList); itemAddRunConfigurationArgument->setFlags(itemAddRunConfigurationArgument->flags() | Qt::ItemIsUserCheckable); itemAddRunConfigurationArgument->setCheckState(m_makeStep->addRunConfigurationArgument() ? Qt::Checked : Qt::Unchecked); QFont f; f.setItalic(true); itemAddRunConfigurationArgument->setFont(f); CMakeProject *pro = static_cast<CMakeProject *>(m_makeStep->project()); QStringList targetList = pro->buildTargetTitles(); targetList.sort(); foreach (const QString &buildTarget, targetList) { QListWidgetItem *item = new QListWidgetItem(buildTarget, m_buildTargetsList); item->setFlags(item->flags() | Qt::ItemIsUserCheckable); item->setCheckState(m_makeStep->buildsBuildTarget(item->text()) ? Qt::Checked : Qt::Unchecked); }