From 21dc290360f80b007d36545f18b316f8236d659e Mon Sep 17 00:00:00 2001 From: Kudryavtsev Alexander Date: Mon, 1 Aug 2016 12:45:03 +0300 Subject: [PATCH] Nim: Fix build configuration factory priority Change-Id: I3cdae467f14bf4fa76c3a477a715271a3d7f353b Reviewed-by: Filippo Cucchetto Reviewed-by: hjk --- .../project/nimbuildconfigurationfactory.cpp | 18 +++++++++++++----- .../nim/project/nimbuildconfigurationfactory.h | 1 + 2 files changed, 14 insertions(+), 5 deletions(-) diff --git a/src/plugins/nim/project/nimbuildconfigurationfactory.cpp b/src/plugins/nim/project/nimbuildconfigurationfactory.cpp index cc40f00241d..6e67d602c37 100644 --- a/src/plugins/nim/project/nimbuildconfigurationfactory.cpp +++ b/src/plugins/nim/project/nimbuildconfigurationfactory.cpp @@ -40,6 +40,7 @@ #include #include #include +#include #include #include @@ -159,15 +160,22 @@ BuildConfiguration *NimBuildConfigurationFactory::clone(Target *parent, BuildCon int NimBuildConfigurationFactory::priority(const Kit *k, const QString &projectPath) const { - Q_UNUSED(k); - Q_UNUSED(projectPath); - return 0; + MimeDatabase mdb; + if (k && mdb.mimeTypeForFile(projectPath).matchesName(Constants::C_NIM_PROJECT_MIMETYPE)) + return 0; + return -1; } int NimBuildConfigurationFactory::priority(const Target *parent) const { - Q_UNUSED(parent); - return 0; + return canHandle(parent) ? 0 : -1; +} + +bool NimBuildConfigurationFactory::canHandle(const Target *t) const +{ + if (!t->project()->supportsKit(t->kit())) + return false; + return qobject_cast(t->project()); } FileName NimBuildConfigurationFactory::defaultBuildDirectory(const Kit *k, diff --git a/src/plugins/nim/project/nimbuildconfigurationfactory.h b/src/plugins/nim/project/nimbuildconfigurationfactory.h index bcf34c3b2e1..40532ca2eeb 100644 --- a/src/plugins/nim/project/nimbuildconfigurationfactory.h +++ b/src/plugins/nim/project/nimbuildconfigurationfactory.h @@ -61,6 +61,7 @@ public: int priority(const ProjectExplorer::Target *parent) const override; private: + bool canHandle(const ProjectExplorer::Target *t) const; static Utils::FileName defaultBuildDirectory(const ProjectExplorer::Kit *k, const QString &projectPath, const QString &bc, ProjectExplorer::BuildConfiguration::BuildType buildType);