Allow the user to restrict rc creation to certain .pro

Task-number: QTCREATORBUG-10953
Change-Id: Iff1a31c007ac777bfa390d48237480ef56ffc0e4
Reviewed-by: Eike Ziller <eike.ziller@digia.com>
This commit is contained in:
Daniel Teske
2014-06-12 16:24:52 +02:00
parent d15e0aa9e7
commit c78258cd57
31 changed files with 127 additions and 53 deletions

View File

@@ -59,7 +59,11 @@ namespace Internal {
static QString pathFromId(const Core::Id id)
{
return id.suffixAfter(IOS_RC_ID_PREFIX);
QString pathStr = id.toString();
const QString prefix = QLatin1String(IOS_RC_ID_PREFIX);
if (!pathStr.startsWith(prefix))
return QString();
return pathStr.mid(prefix.size());
}
IosRunConfigurationFactory::IosRunConfigurationFactory(QObject *parent)
@@ -88,19 +92,19 @@ bool IosRunConfigurationFactory::canClone(Target *parent, RunConfiguration *sour
return canCreate(parent, source->id());
}
QList<Core::Id> IosRunConfigurationFactory::availableCreationIds(Target *parent) const
QList<Core::Id> IosRunConfigurationFactory::availableCreationIds(Target *parent, CreationMode mode) const
{
QList<Core::Id> ids;
if (!IosManager::supportsIos(parent))
return ids;
Core::Id baseId(IOS_RC_ID_PREFIX);
return QList<Core::Id>();
QmakeProject *project = static_cast<QmakeProject *>(parent->project());
QList<QmakeProFileNode *> nodes = project->allProFiles(QList<QmakeProjectType>()
<< ApplicationTemplate
<< LibraryTemplate
<< AuxTemplate);
if (mode == AutoCreate)
nodes = QmakeProject::nodesWithQtcRunnable(nodes);
Core::Id baseId(IOS_RC_ID_PREFIX);
return QmakeProject::idsForNodes(baseId, nodes);
}

View File

@@ -51,7 +51,7 @@ public:
explicit IosRunConfigurationFactory(QObject *parent = 0);
QString displayNameForId(const Core::Id id) const QTC_OVERRIDE;
QList<Core::Id> availableCreationIds(ProjectExplorer::Target *parent) const QTC_OVERRIDE;
QList<Core::Id> availableCreationIds(ProjectExplorer::Target *parent, CreationMode mode = UserCreate) const QTC_OVERRIDE;
bool canCreate(ProjectExplorer::Target *parent, const Core::Id id) const QTC_OVERRIDE;