forked from qt-creator/qt-creator
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:
@@ -37,6 +37,25 @@
|
|||||||
namespace Utils
|
namespace Utils
|
||||||
{
|
{
|
||||||
|
|
||||||
|
template<typename T, typename F>
|
||||||
|
bool anyOf(const T &container, F predicate)
|
||||||
|
{
|
||||||
|
return std::any_of(container.begin(), container.end(), predicate);
|
||||||
|
}
|
||||||
|
|
||||||
|
template<typename T, typename F>
|
||||||
|
bool allOf(const T &container, F predicate)
|
||||||
|
{
|
||||||
|
return std::all_of(container.begin(), container.end(), predicate);
|
||||||
|
}
|
||||||
|
|
||||||
|
template<typename T, typename F>
|
||||||
|
void erase(QList<T> &container, F predicate)
|
||||||
|
{
|
||||||
|
container.erase(std::remove_if(container.begin(), container.end(), predicate),
|
||||||
|
container.end());
|
||||||
|
}
|
||||||
|
|
||||||
// Note: add overloads for other container types as needed
|
// Note: add overloads for other container types as needed
|
||||||
template<typename T, typename F>
|
template<typename T, typename F>
|
||||||
Q_REQUIRED_RESULT
|
Q_REQUIRED_RESULT
|
||||||
|
@@ -85,17 +85,20 @@ bool AndroidRunConfigurationFactory::canClone(Target *parent, RunConfiguration *
|
|||||||
return canCreate(parent, source->id());
|
return canCreate(parent, source->id());
|
||||||
}
|
}
|
||||||
|
|
||||||
QList<Core::Id> AndroidRunConfigurationFactory::availableCreationIds(Target *parent) const
|
QList<Core::Id> AndroidRunConfigurationFactory::availableCreationIds(Target *parent, CreationMode mode) const
|
||||||
{
|
{
|
||||||
QList<Core::Id> ids;
|
|
||||||
if (!AndroidManager::supportsAndroid(parent))
|
if (!AndroidManager::supportsAndroid(parent))
|
||||||
return ids;
|
return QList<Core::Id>();
|
||||||
|
|
||||||
QmakeProject *project = static_cast<QmakeProject *>(parent->project());
|
QmakeProject *project = static_cast<QmakeProject *>(parent->project());
|
||||||
|
|
||||||
QList<QmakeProFileNode *> nodes = project->allProFiles(QList<QmakeProjectType>()
|
QList<QmakeProFileNode *> nodes = project->allProFiles(QList<QmakeProjectType>()
|
||||||
<< ApplicationTemplate
|
<< ApplicationTemplate
|
||||||
<< LibraryTemplate);
|
<< LibraryTemplate);
|
||||||
|
|
||||||
|
if (mode == AutoCreate)
|
||||||
|
nodes = QmakeProject::nodesWithQtcRunnable(nodes);
|
||||||
|
|
||||||
const Core::Id base = Core::Id(ANDROID_RC_ID_PREFIX);
|
const Core::Id base = Core::Id(ANDROID_RC_ID_PREFIX);
|
||||||
return QmakeProject::idsForNodes(base, nodes);
|
return QmakeProject::idsForNodes(base, nodes);
|
||||||
}
|
}
|
||||||
|
@@ -51,7 +51,7 @@ public:
|
|||||||
explicit AndroidRunConfigurationFactory(QObject *parent = 0);
|
explicit AndroidRunConfigurationFactory(QObject *parent = 0);
|
||||||
|
|
||||||
QString displayNameForId(const Core::Id id) const;
|
QString displayNameForId(const Core::Id id) const;
|
||||||
QList<Core::Id> availableCreationIds(ProjectExplorer::Target *parent) const;
|
QList<Core::Id> availableCreationIds(ProjectExplorer::Target *parent, CreationMode mode = UserCreate) const;
|
||||||
|
|
||||||
bool canCreate(ProjectExplorer::Target *parent, const Core::Id id) const;
|
bool canCreate(ProjectExplorer::Target *parent, const Core::Id id) const;
|
||||||
|
|
||||||
|
@@ -84,8 +84,9 @@ bool BareMetalRunConfigurationFactory::canClone(Target *parent, RunConfiguration
|
|||||||
return bmrc && canCreate(parent, source->id());
|
return bmrc && canCreate(parent, source->id());
|
||||||
}
|
}
|
||||||
|
|
||||||
QList<Core::Id> BareMetalRunConfigurationFactory::availableCreationIds(Target *parent) const
|
QList<Core::Id> BareMetalRunConfigurationFactory::availableCreationIds(Target *parent, CreationMode mode) const
|
||||||
{
|
{
|
||||||
|
Q_UNUSED(mode)
|
||||||
QList<Core::Id> result;
|
QList<Core::Id> result;
|
||||||
if (!canHandle(parent))
|
if (!canHandle(parent))
|
||||||
return result;
|
return result;
|
||||||
|
@@ -42,7 +42,7 @@ public:
|
|||||||
~BareMetalRunConfigurationFactory();
|
~BareMetalRunConfigurationFactory();
|
||||||
|
|
||||||
QString displayNameForId(const Core::Id id) const;
|
QString displayNameForId(const Core::Id id) const;
|
||||||
QList<Core::Id> availableCreationIds(ProjectExplorer::Target *parent) const;
|
QList<Core::Id> availableCreationIds(ProjectExplorer::Target *parent, CreationMode mode) const;
|
||||||
|
|
||||||
bool canCreate(ProjectExplorer::Target *parent, const Core::Id id) const;
|
bool canCreate(ProjectExplorer::Target *parent, const Core::Id id) const;
|
||||||
|
|
||||||
|
@@ -352,8 +352,9 @@ CMakeRunConfigurationFactory::~CMakeRunConfigurationFactory()
|
|||||||
}
|
}
|
||||||
|
|
||||||
// used to show the list of possible additons to a project, returns a list of ids
|
// used to show the list of possible additons to a project, returns a list of ids
|
||||||
QList<Core::Id> CMakeRunConfigurationFactory::availableCreationIds(Target *parent) const
|
QList<Core::Id> CMakeRunConfigurationFactory::availableCreationIds(Target *parent, CreationMode mode) const
|
||||||
{
|
{
|
||||||
|
Q_UNUSED(mode)
|
||||||
if (!canHandle(parent))
|
if (!canHandle(parent))
|
||||||
return QList<Core::Id>();
|
return QList<Core::Id>();
|
||||||
CMakeProject *project = static_cast<CMakeProject *>(parent->project());
|
CMakeProject *project = static_cast<CMakeProject *>(parent->project());
|
||||||
|
@@ -138,7 +138,7 @@ public:
|
|||||||
bool canClone(ProjectExplorer::Target *parent, ProjectExplorer::RunConfiguration *product) const;
|
bool canClone(ProjectExplorer::Target *parent, ProjectExplorer::RunConfiguration *product) const;
|
||||||
ProjectExplorer::RunConfiguration *clone(ProjectExplorer::Target *parent, ProjectExplorer::RunConfiguration *product);
|
ProjectExplorer::RunConfiguration *clone(ProjectExplorer::Target *parent, ProjectExplorer::RunConfiguration *product);
|
||||||
|
|
||||||
QList<Core::Id> availableCreationIds(ProjectExplorer::Target *parent) const;
|
QList<Core::Id> availableCreationIds(ProjectExplorer::Target *parent, CreationMode mode) const;
|
||||||
QString displayNameForId(const Core::Id id) const;
|
QString displayNameForId(const Core::Id id) const;
|
||||||
|
|
||||||
static Core::Id idFromBuildTarget(const QString &target);
|
static Core::Id idFromBuildTarget(const QString &target);
|
||||||
|
@@ -59,7 +59,11 @@ namespace Internal {
|
|||||||
|
|
||||||
static QString pathFromId(const Core::Id id)
|
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)
|
IosRunConfigurationFactory::IosRunConfigurationFactory(QObject *parent)
|
||||||
@@ -88,19 +92,19 @@ bool IosRunConfigurationFactory::canClone(Target *parent, RunConfiguration *sour
|
|||||||
return canCreate(parent, source->id());
|
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))
|
if (!IosManager::supportsIos(parent))
|
||||||
return ids;
|
return QList<Core::Id>();
|
||||||
Core::Id baseId(IOS_RC_ID_PREFIX);
|
|
||||||
QmakeProject *project = static_cast<QmakeProject *>(parent->project());
|
QmakeProject *project = static_cast<QmakeProject *>(parent->project());
|
||||||
|
|
||||||
QList<QmakeProFileNode *> nodes = project->allProFiles(QList<QmakeProjectType>()
|
QList<QmakeProFileNode *> nodes = project->allProFiles(QList<QmakeProjectType>()
|
||||||
<< ApplicationTemplate
|
<< ApplicationTemplate
|
||||||
<< LibraryTemplate
|
<< LibraryTemplate
|
||||||
<< AuxTemplate);
|
<< AuxTemplate);
|
||||||
|
if (mode == AutoCreate)
|
||||||
|
nodes = QmakeProject::nodesWithQtcRunnable(nodes);
|
||||||
|
Core::Id baseId(IOS_RC_ID_PREFIX);
|
||||||
return QmakeProject::idsForNodes(baseId, nodes);
|
return QmakeProject::idsForNodes(baseId, nodes);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -51,7 +51,7 @@ public:
|
|||||||
explicit IosRunConfigurationFactory(QObject *parent = 0);
|
explicit IosRunConfigurationFactory(QObject *parent = 0);
|
||||||
|
|
||||||
QString displayNameForId(const Core::Id id) const QTC_OVERRIDE;
|
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;
|
bool canCreate(ProjectExplorer::Target *parent, const Core::Id id) const QTC_OVERRIDE;
|
||||||
|
|
||||||
|
@@ -217,7 +217,8 @@ public:
|
|||||||
explicit IRunConfigurationFactory(QObject *parent = 0);
|
explicit IRunConfigurationFactory(QObject *parent = 0);
|
||||||
virtual ~IRunConfigurationFactory();
|
virtual ~IRunConfigurationFactory();
|
||||||
|
|
||||||
virtual QList<Core::Id> availableCreationIds(Target *parent) const = 0;
|
enum CreationMode {UserCreate, AutoCreate};
|
||||||
|
virtual QList<Core::Id> availableCreationIds(Target *parent, CreationMode mode = UserCreate) const = 0;
|
||||||
virtual QString displayNameForId(const Core::Id id) const = 0;
|
virtual QString displayNameForId(const Core::Id id) const = 0;
|
||||||
|
|
||||||
virtual bool canCreate(Target *parent, const Core::Id id) const = 0;
|
virtual bool canCreate(Target *parent, const Core::Id id) const = 0;
|
||||||
|
@@ -599,26 +599,31 @@ void Target::updateDefaultRunConfigurations()
|
|||||||
int configuredCount = existingConfigured.count();
|
int configuredCount = existingConfigured.count();
|
||||||
|
|
||||||
// find all RC ids that can get created:
|
// find all RC ids that can get created:
|
||||||
QList<Core::Id> factoryIds;
|
QList<Core::Id> availableFactoryIds;
|
||||||
foreach (IRunConfigurationFactory *rcFactory, rcFactories)
|
foreach (IRunConfigurationFactory *rcFactory, rcFactories)
|
||||||
factoryIds.append(rcFactory->availableCreationIds(this));
|
availableFactoryIds.append(rcFactory->availableCreationIds(this));
|
||||||
|
|
||||||
|
QList<Core::Id> autoCreateFactoryIds;
|
||||||
|
foreach (IRunConfigurationFactory *rcFactory, rcFactories)
|
||||||
|
autoCreateFactoryIds.append(rcFactory->availableCreationIds(this,
|
||||||
|
IRunConfigurationFactory::AutoCreate));
|
||||||
|
|
||||||
// Put outdated RCs into toRemove, do not bother with factories
|
// Put outdated RCs into toRemove, do not bother with factories
|
||||||
// that produce already existing RCs
|
// that produce already existing RCs
|
||||||
QList<RunConfiguration *> toRemove;
|
QList<RunConfiguration *> toRemove;
|
||||||
QList<Core::Id> toIgnore;
|
QList<Core::Id> toIgnore;
|
||||||
foreach (RunConfiguration *rc, existingConfigured) {
|
foreach (RunConfiguration *rc, existingConfigured) {
|
||||||
if (factoryIds.contains(rc->id()))
|
if (availableFactoryIds.contains(rc->id()))
|
||||||
toIgnore.append(rc->id()); // Already there
|
toIgnore.append(rc->id()); // Already there
|
||||||
else
|
else
|
||||||
toRemove << rc;
|
toRemove << rc;
|
||||||
}
|
}
|
||||||
foreach (Core::Id i, toIgnore)
|
foreach (Core::Id i, toIgnore)
|
||||||
factoryIds.removeAll(i);
|
autoCreateFactoryIds.removeAll(i);
|
||||||
configuredCount -= toRemove.count();
|
configuredCount -= toRemove.count();
|
||||||
|
|
||||||
// Create new RCs and put them into newConfigured/newUnconfigured
|
// Create new RCs and put them into newConfigured/newUnconfigured
|
||||||
foreach (Core::Id id, factoryIds) {
|
foreach (Core::Id id, autoCreateFactoryIds) {
|
||||||
IRunConfigurationFactory *factory = 0;
|
IRunConfigurationFactory *factory = 0;
|
||||||
foreach (IRunConfigurationFactory *i, rcFactories) {
|
foreach (IRunConfigurationFactory *i, rcFactories) {
|
||||||
if (i->canCreate(this, id)) {
|
if (i->canCreate(this, id)) {
|
||||||
|
@@ -550,8 +550,9 @@ RunConfiguration *QbsRunConfigurationFactory::clone(Target *parent, RunConfigura
|
|||||||
return new QbsRunConfiguration(parent, old);
|
return new QbsRunConfiguration(parent, old);
|
||||||
}
|
}
|
||||||
|
|
||||||
QList<Core::Id> QbsRunConfigurationFactory::availableCreationIds(Target *parent) const
|
QList<Core::Id> QbsRunConfigurationFactory::availableCreationIds(Target *parent, CreationMode mode) const
|
||||||
{
|
{
|
||||||
|
Q_UNUSED(mode)
|
||||||
QList<Core::Id> result;
|
QList<Core::Id> result;
|
||||||
if (!canHandle(parent))
|
if (!canHandle(parent))
|
||||||
return result;
|
return result;
|
||||||
|
@@ -181,7 +181,7 @@ public:
|
|||||||
bool canClone(ProjectExplorer::Target *parent, ProjectExplorer::RunConfiguration *source) const;
|
bool canClone(ProjectExplorer::Target *parent, ProjectExplorer::RunConfiguration *source) const;
|
||||||
ProjectExplorer::RunConfiguration *clone(ProjectExplorer::Target *parent, ProjectExplorer::RunConfiguration *source);
|
ProjectExplorer::RunConfiguration *clone(ProjectExplorer::Target *parent, ProjectExplorer::RunConfiguration *source);
|
||||||
|
|
||||||
QList<Core::Id> availableCreationIds(ProjectExplorer::Target *parent) const;
|
QList<Core::Id> availableCreationIds(ProjectExplorer::Target *parent, CreationMode mode) const;
|
||||||
QString displayNameForId(const Core::Id id) const;
|
QString displayNameForId(const Core::Id id) const;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
@@ -667,14 +667,15 @@ RunConfiguration *DesktopQmakeRunConfigurationFactory::clone(Target *parent, Run
|
|||||||
return new DesktopQmakeRunConfiguration(parent, old);
|
return new DesktopQmakeRunConfiguration(parent, old);
|
||||||
}
|
}
|
||||||
|
|
||||||
QList<Core::Id> DesktopQmakeRunConfigurationFactory::availableCreationIds(Target *parent) const
|
QList<Core::Id> DesktopQmakeRunConfigurationFactory::availableCreationIds(Target *parent, CreationMode mode) const
|
||||||
{
|
{
|
||||||
QList<Core::Id> result;
|
|
||||||
if (!canHandle(parent))
|
if (!canHandle(parent))
|
||||||
return result;
|
return QList<Core::Id>();
|
||||||
|
|
||||||
QmakeProject *project = static_cast<QmakeProject *>(parent->project());
|
QmakeProject *project = static_cast<QmakeProject *>(parent->project());
|
||||||
QList<QmakeProFileNode *> nodes = project->applicationProFiles();
|
QList<QmakeProFileNode *> nodes = project->applicationProFiles();
|
||||||
|
if (mode == AutoCreate)
|
||||||
|
nodes = QmakeProject::nodesWithQtcRunnable(nodes);
|
||||||
return QmakeProject::idsForNodes(Core::Id(QMAKE_RC_PREFIX), nodes);
|
return QmakeProject::idsForNodes(Core::Id(QMAKE_RC_PREFIX), nodes);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -193,7 +193,7 @@ public:
|
|||||||
bool canClone(ProjectExplorer::Target *parent, ProjectExplorer::RunConfiguration *source) const;
|
bool canClone(ProjectExplorer::Target *parent, ProjectExplorer::RunConfiguration *source) const;
|
||||||
ProjectExplorer::RunConfiguration *clone(ProjectExplorer::Target *parent, ProjectExplorer::RunConfiguration *source);
|
ProjectExplorer::RunConfiguration *clone(ProjectExplorer::Target *parent, ProjectExplorer::RunConfiguration *source);
|
||||||
|
|
||||||
QList<Core::Id> availableCreationIds(ProjectExplorer::Target *parent) const;
|
QList<Core::Id> availableCreationIds(ProjectExplorer::Target *parent, CreationMode mode) const;
|
||||||
QString displayNameForId(const Core::Id id) const;
|
QString displayNameForId(const Core::Id id) const;
|
||||||
|
|
||||||
QList<ProjectExplorer::RunConfiguration *> runConfigurationsForNode(ProjectExplorer::Target *t,
|
QList<ProjectExplorer::RunConfiguration *> runConfigurationsForNode(ProjectExplorer::Target *t,
|
||||||
|
@@ -1591,6 +1591,12 @@ bool QmakeProFileNode::isDebugAndRelease() const
|
|||||||
return configValues.contains(QLatin1String("debug_and_release"));
|
return configValues.contains(QLatin1String("debug_and_release"));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool QmakeProFileNode::isQtcRunnable() const
|
||||||
|
{
|
||||||
|
const QStringList configValues = m_varValues.value(ConfigVar);
|
||||||
|
return configValues.contains(QLatin1String("qtc_runnable"));
|
||||||
|
}
|
||||||
|
|
||||||
QmakeProjectType QmakeProFileNode::projectType() const
|
QmakeProjectType QmakeProFileNode::projectType() const
|
||||||
{
|
{
|
||||||
return m_projectType;
|
return m_projectType;
|
||||||
|
@@ -410,6 +410,7 @@ public:
|
|||||||
|
|
||||||
bool showInSimpleTree(QmakeProjectType projectType) const;
|
bool showInSimpleTree(QmakeProjectType projectType) const;
|
||||||
bool isDebugAndRelease() const;
|
bool isDebugAndRelease() const;
|
||||||
|
bool isQtcRunnable() const;
|
||||||
|
|
||||||
void setParseInProgress(bool b);
|
void setParseInProgress(bool b);
|
||||||
void setParseInProgressRecursive(bool b);
|
void setParseInProgressRecursive(bool b);
|
||||||
|
@@ -1103,6 +1103,17 @@ bool QmakeProject::hasApplicationProFile(const QString &path) const
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
QList<QmakeProFileNode *> QmakeProject::nodesWithQtcRunnable(QList<QmakeProFileNode *> nodes)
|
||||||
|
{
|
||||||
|
std::function<bool (QmakeProFileNode *)> hasQtcRunnable = [](QmakeProFileNode *node) {
|
||||||
|
return node->isQtcRunnable();
|
||||||
|
};
|
||||||
|
|
||||||
|
if (anyOf(nodes, hasQtcRunnable))
|
||||||
|
erase(nodes, std::not1(hasQtcRunnable));
|
||||||
|
return nodes;
|
||||||
|
}
|
||||||
|
|
||||||
QList<Core::Id> QmakeProject::idsForNodes(const Core::Id base, const QList<QmakeProFileNode *> &nodes)
|
QList<Core::Id> QmakeProject::idsForNodes(const Core::Id base, const QList<QmakeProFileNode *> &nodes)
|
||||||
{
|
{
|
||||||
return Utils::transform(nodes, [&base](QmakeProFileNode *node) {
|
return Utils::transform(nodes, [&base](QmakeProFileNode *node) {
|
||||||
|
@@ -92,6 +92,7 @@ public:
|
|||||||
QList<QmakeProFileNode *> applicationProFiles(Parsing parse = ExactParse) const;
|
QList<QmakeProFileNode *> applicationProFiles(Parsing parse = ExactParse) const;
|
||||||
bool hasApplicationProFile(const QString &path) const;
|
bool hasApplicationProFile(const QString &path) const;
|
||||||
|
|
||||||
|
static QList<QmakeProFileNode *> nodesWithQtcRunnable(QList<QmakeProFileNode *> nodes);
|
||||||
static QList<Core::Id> idsForNodes(const Core::Id base, const QList<QmakeProFileNode *> &nodes);
|
static QList<Core::Id> idsForNodes(const Core::Id base, const QList<QmakeProFileNode *> &nodes);
|
||||||
|
|
||||||
void notifyChanged(const QString &name);
|
void notifyChanged(const QString &name);
|
||||||
|
@@ -50,8 +50,9 @@ QmlProjectRunConfigurationFactory::~QmlProjectRunConfigurationFactory()
|
|||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
QList<Core::Id> QmlProjectRunConfigurationFactory::availableCreationIds(ProjectExplorer::Target *parent) const
|
QList<Core::Id> QmlProjectRunConfigurationFactory::availableCreationIds(ProjectExplorer::Target *parent, CreationMode mode) const
|
||||||
{
|
{
|
||||||
|
Q_UNUSED(mode)
|
||||||
if (!canHandle(parent))
|
if (!canHandle(parent))
|
||||||
return QList<Core::Id>();
|
return QList<Core::Id>();
|
||||||
|
|
||||||
|
@@ -43,7 +43,7 @@ public:
|
|||||||
explicit QmlProjectRunConfigurationFactory(QObject *parent = 0);
|
explicit QmlProjectRunConfigurationFactory(QObject *parent = 0);
|
||||||
~QmlProjectRunConfigurationFactory();
|
~QmlProjectRunConfigurationFactory();
|
||||||
|
|
||||||
QList<Core::Id> availableCreationIds(ProjectExplorer::Target *parent) const;
|
QList<Core::Id> availableCreationIds(ProjectExplorer::Target *parent, CreationMode mode) const;
|
||||||
QString displayNameForId(const Core::Id id) const;
|
QString displayNameForId(const Core::Id id) const;
|
||||||
|
|
||||||
bool canCreate(ProjectExplorer::Target *parent, const Core::Id id) const;
|
bool canCreate(ProjectExplorer::Target *parent, const Core::Id id) const;
|
||||||
|
@@ -37,6 +37,7 @@
|
|||||||
#include <projectexplorer/kitinformation.h>
|
#include <projectexplorer/kitinformation.h>
|
||||||
#include <projectexplorer/target.h>
|
#include <projectexplorer/target.h>
|
||||||
#include <qmakeprojectmanager/qmakeproject.h>
|
#include <qmakeprojectmanager/qmakeproject.h>
|
||||||
|
#include <qmakeprojectmanager/qmakenodes.h>
|
||||||
|
|
||||||
using namespace Qnx;
|
using namespace Qnx;
|
||||||
using namespace Qnx::Internal;
|
using namespace Qnx::Internal;
|
||||||
@@ -51,18 +52,20 @@ BlackBerryRunConfigurationFactory::BlackBerryRunConfigurationFactory(QObject *pa
|
|||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
QList<Core::Id> BlackBerryRunConfigurationFactory::availableCreationIds(ProjectExplorer::Target *parent) const
|
QList<Core::Id> BlackBerryRunConfigurationFactory::availableCreationIds(ProjectExplorer::Target *parent, CreationMode mode) const
|
||||||
{
|
{
|
||||||
QList<Core::Id> ids;
|
using QmakeProjectManager::QmakeProject;
|
||||||
if (!canHandle(parent))
|
if (!canHandle(parent))
|
||||||
return ids;
|
return QList<Core::Id>();
|
||||||
|
|
||||||
QmakeProjectManager::QmakeProject *qt4Project = qobject_cast<QmakeProjectManager::QmakeProject *>(parent->project());
|
QmakeProject *qt4Project = qobject_cast<QmakeProject *>(parent->project());
|
||||||
if (!qt4Project)
|
if (!qt4Project)
|
||||||
return ids;
|
return QList<Core::Id>();
|
||||||
|
|
||||||
QList<QmakeProjectManager::QmakeProFileNode *> nodes = qt4Project->applicationProFiles();
|
QList<QmakeProjectManager::QmakeProFileNode *> nodes = qt4Project->applicationProFiles();
|
||||||
return QmakeProjectManager::QmakeProject::idsForNodes(Core::Id(Constants::QNX_BB_RUNCONFIGURATION_PREFIX),
|
if (mode == AutoCreate)
|
||||||
|
nodes = QmakeProject::nodesWithQtcRunnable(nodes);
|
||||||
|
return QmakeProject::idsForNodes(Core::Id(Constants::QNX_QNX_RUNCONFIGURATION_PREFIX),
|
||||||
nodes);
|
nodes);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -34,6 +34,8 @@
|
|||||||
|
|
||||||
#include <projectexplorer/runconfiguration.h>
|
#include <projectexplorer/runconfiguration.h>
|
||||||
|
|
||||||
|
namespace QmakeProjectManager { class QmakeProFileNode; }
|
||||||
|
|
||||||
namespace Qnx {
|
namespace Qnx {
|
||||||
namespace Internal {
|
namespace Internal {
|
||||||
|
|
||||||
@@ -43,7 +45,7 @@ class BlackBerryRunConfigurationFactory : public ProjectExplorer::IRunConfigurat
|
|||||||
public:
|
public:
|
||||||
explicit BlackBerryRunConfigurationFactory(QObject *parent = 0);
|
explicit BlackBerryRunConfigurationFactory(QObject *parent = 0);
|
||||||
|
|
||||||
QList<Core::Id> availableCreationIds(ProjectExplorer::Target *parent) const;
|
QList<Core::Id> availableCreationIds(ProjectExplorer::Target *parent, CreationMode mode) const;
|
||||||
QString displayNameForId(const Core::Id id) const;
|
QString displayNameForId(const Core::Id id) const;
|
||||||
|
|
||||||
bool canCreate(ProjectExplorer::Target *parent, const Core::Id id) const;
|
bool canCreate(ProjectExplorer::Target *parent, const Core::Id id) const;
|
||||||
|
@@ -38,6 +38,7 @@
|
|||||||
#include <projectexplorer/kitinformation.h>
|
#include <projectexplorer/kitinformation.h>
|
||||||
#include <projectexplorer/target.h>
|
#include <projectexplorer/target.h>
|
||||||
#include <qmakeprojectmanager/qmakeproject.h>
|
#include <qmakeprojectmanager/qmakeproject.h>
|
||||||
|
#include <qmakeprojectmanager/qmakenodes.h>
|
||||||
|
|
||||||
using namespace Qnx;
|
using namespace Qnx;
|
||||||
using namespace Qnx::Internal;
|
using namespace Qnx::Internal;
|
||||||
@@ -52,17 +53,21 @@ QnxRunConfigurationFactory::QnxRunConfigurationFactory(QObject *parent) :
|
|||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
QList<Core::Id> QnxRunConfigurationFactory::availableCreationIds(ProjectExplorer::Target *parent) const
|
QList<Core::Id> QnxRunConfigurationFactory::availableCreationIds(ProjectExplorer::Target *parent, CreationMode mode) const
|
||||||
{
|
{
|
||||||
QList<Core::Id> ids;
|
using QmakeProjectManager::QmakeProject;
|
||||||
if (!canHandle(parent))
|
if (!canHandle(parent))
|
||||||
return ids;
|
return QList<Core::Id>();
|
||||||
|
|
||||||
QmakeProjectManager::QmakeProject *qt4Project = qobject_cast<QmakeProjectManager::QmakeProject *>(parent->project());
|
QmakeProject *qt4Project = qobject_cast<QmakeProject *>(parent->project());
|
||||||
if (!qt4Project)
|
if (!qt4Project)
|
||||||
return ids;
|
return QList<Core::Id>();
|
||||||
QList<QmakeProjectManager::QmakeProFileNode *> nodes = qt4Project->applicationProFiles();
|
QList<QmakeProjectManager::QmakeProFileNode *> nodes = qt4Project->applicationProFiles();
|
||||||
return QmakeProjectManager::QmakeProject::idsForNodes(Core::Id(Constants::QNX_QNX_RUNCONFIGURATION_PREFIX),
|
|
||||||
|
if (mode == AutoCreate)
|
||||||
|
nodes = QmakeProject::nodesWithQtcRunnable(nodes);
|
||||||
|
|
||||||
|
return QmakeProject::idsForNodes(Core::Id(Constants::QNX_QNX_RUNCONFIGURATION_PREFIX),
|
||||||
nodes);
|
nodes);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -34,6 +34,8 @@
|
|||||||
|
|
||||||
#include <projectexplorer/runconfiguration.h>
|
#include <projectexplorer/runconfiguration.h>
|
||||||
|
|
||||||
|
namespace QmakeProjectManager { class QmakeProFileNode; }
|
||||||
|
|
||||||
namespace Qnx {
|
namespace Qnx {
|
||||||
namespace Internal {
|
namespace Internal {
|
||||||
|
|
||||||
@@ -43,7 +45,7 @@ class QnxRunConfigurationFactory : public ProjectExplorer::IRunConfigurationFact
|
|||||||
public:
|
public:
|
||||||
explicit QnxRunConfigurationFactory(QObject *parent = 0);
|
explicit QnxRunConfigurationFactory(QObject *parent = 0);
|
||||||
|
|
||||||
QList<Core::Id> availableCreationIds(ProjectExplorer::Target *parent) const;
|
QList<Core::Id> availableCreationIds(ProjectExplorer::Target *parent, CreationMode mode) const;
|
||||||
QString displayNameForId(const Core::Id id) const;
|
QString displayNameForId(const Core::Id id) const;
|
||||||
|
|
||||||
bool canCreate(ProjectExplorer::Target *parent, const Core::Id id) const;
|
bool canCreate(ProjectExplorer::Target *parent, const Core::Id id) const;
|
||||||
|
@@ -367,8 +367,9 @@ bool CustomExecutableRunConfigurationFactory::canHandle(Target *parent) const
|
|||||||
return parent->project()->supportsKit(parent->kit());
|
return parent->project()->supportsKit(parent->kit());
|
||||||
}
|
}
|
||||||
|
|
||||||
QList<Core::Id> CustomExecutableRunConfigurationFactory::availableCreationIds(Target *parent) const
|
QList<Core::Id> CustomExecutableRunConfigurationFactory::availableCreationIds(Target *parent, CreationMode mode) const
|
||||||
{
|
{
|
||||||
|
Q_UNUSED(mode)
|
||||||
if (!canHandle(parent))
|
if (!canHandle(parent))
|
||||||
return QList<Core::Id>();
|
return QList<Core::Id>();
|
||||||
return QList<Core::Id>() << Core::Id(CUSTOM_EXECUTABLE_ID);
|
return QList<Core::Id>() << Core::Id(CUSTOM_EXECUTABLE_ID);
|
||||||
|
@@ -112,7 +112,7 @@ public:
|
|||||||
explicit CustomExecutableRunConfigurationFactory(QObject *parent = 0);
|
explicit CustomExecutableRunConfigurationFactory(QObject *parent = 0);
|
||||||
~CustomExecutableRunConfigurationFactory();
|
~CustomExecutableRunConfigurationFactory();
|
||||||
|
|
||||||
QList<Core::Id> availableCreationIds(ProjectExplorer::Target *parent) const;
|
QList<Core::Id> availableCreationIds(ProjectExplorer::Target *parent, CreationMode mode) const;
|
||||||
QString displayNameForId(const Core::Id id) const;
|
QString displayNameForId(const Core::Id id) const;
|
||||||
|
|
||||||
bool canCreate(ProjectExplorer::Target *parent, const Core::Id id) const;
|
bool canCreate(ProjectExplorer::Target *parent, const Core::Id id) const;
|
||||||
|
@@ -49,7 +49,10 @@ namespace Internal {
|
|||||||
namespace {
|
namespace {
|
||||||
QString pathFromId(Core::Id id)
|
QString pathFromId(Core::Id id)
|
||||||
{
|
{
|
||||||
return id.suffixAfter(RemoteLinuxRunConfiguration::IdPrefix);
|
QByteArray idStr = id.name();
|
||||||
|
if (!idStr.startsWith(RemoteLinuxRunConfiguration::IdPrefix))
|
||||||
|
return QString();
|
||||||
|
return QString::fromUtf8(idStr.mid(strlen(RemoteLinuxRunConfiguration::IdPrefix)));
|
||||||
}
|
}
|
||||||
|
|
||||||
} // namespace
|
} // namespace
|
||||||
@@ -88,8 +91,9 @@ bool RemoteLinuxRunConfigurationFactory::canClone(Target *parent, RunConfigurati
|
|||||||
return rlrc && canCreate(parent, source->id());
|
return rlrc && canCreate(parent, source->id());
|
||||||
}
|
}
|
||||||
|
|
||||||
QList<Core::Id> RemoteLinuxRunConfigurationFactory::availableCreationIds(Target *parent) const
|
QList<Core::Id> RemoteLinuxRunConfigurationFactory::availableCreationIds(Target *parent, CreationMode mode) const
|
||||||
{
|
{
|
||||||
|
Q_UNUSED(mode)
|
||||||
QList<Core::Id> result;
|
QList<Core::Id> result;
|
||||||
if (!canHandle(parent))
|
if (!canHandle(parent))
|
||||||
return result;
|
return result;
|
||||||
|
@@ -43,7 +43,7 @@ public:
|
|||||||
~RemoteLinuxRunConfigurationFactory();
|
~RemoteLinuxRunConfigurationFactory();
|
||||||
|
|
||||||
QString displayNameForId(const Core::Id id) const;
|
QString displayNameForId(const Core::Id id) const;
|
||||||
QList<Core::Id> availableCreationIds(ProjectExplorer::Target *parent) const;
|
QList<Core::Id> availableCreationIds(ProjectExplorer::Target *parent, CreationMode mode) const;
|
||||||
|
|
||||||
bool canCreate(ProjectExplorer::Target *parent, const Core::Id id) const;
|
bool canCreate(ProjectExplorer::Target *parent, const Core::Id id) const;
|
||||||
|
|
||||||
|
@@ -72,8 +72,9 @@ WinRtRunConfigurationFactory::WinRtRunConfigurationFactory()
|
|||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
QList<Core::Id> WinRtRunConfigurationFactory::availableCreationIds(Target *parent) const
|
QList<Core::Id> WinRtRunConfigurationFactory::availableCreationIds(Target *parent, CreationMode mode) const
|
||||||
{
|
{
|
||||||
|
Q_UNUSED(mode)
|
||||||
QList<Core::Id> result;
|
QList<Core::Id> result;
|
||||||
if (isKitCompatible(parent->kit()))
|
if (isKitCompatible(parent->kit()))
|
||||||
result.append(Core::Id(winrtConfigurationIdC));
|
result.append(Core::Id(winrtConfigurationIdC));
|
||||||
|
@@ -43,7 +43,7 @@ class WinRtRunConfigurationFactory : public ProjectExplorer::IRunConfigurationF
|
|||||||
public:
|
public:
|
||||||
WinRtRunConfigurationFactory();
|
WinRtRunConfigurationFactory();
|
||||||
|
|
||||||
QList<Core::Id> availableCreationIds(ProjectExplorer::Target *parent) const;
|
QList<Core::Id> availableCreationIds(ProjectExplorer::Target *parent, CreationMode mode) const;
|
||||||
QString displayNameForId(const Core::Id id) const;
|
QString displayNameForId(const Core::Id id) const;
|
||||||
bool canCreate(ProjectExplorer::Target *parent, const Core::Id id) const;
|
bool canCreate(ProjectExplorer::Target *parent, const Core::Id id) const;
|
||||||
bool canRestore(ProjectExplorer::Target *parent, const QVariantMap &map) const;
|
bool canRestore(ProjectExplorer::Target *parent, const QVariantMap &map) const;
|
||||||
|
Reference in New Issue
Block a user