Offer to import builds not done by this Qt Creator instance

Change-Id: I7dd8d3b8ae919808fd7089079dcd5583ebc89913
Reviewed-by: Daniel Teske <daniel.teske@digia.com>
This commit is contained in:
Tobias Hunger
2012-10-01 11:46:36 +02:00
parent cd807f974d
commit ceb9319e4b

View File

@@ -511,20 +511,25 @@ void TargetSetupPage::setupImports()
if (!m_importSearch || m_proFilePath.isEmpty()) if (!m_importSearch || m_proFilePath.isEmpty())
return; return;
QString sourceDir = QFileInfo(m_proFilePath).absolutePath(); QFileInfo pfi(m_proFilePath);
import(Utils::FileName::fromString(sourceDir), true); const QString prefix = pfi.baseName();
QStringList toImport;
toImport << pfi.absolutePath();
QList<ProjectExplorer::Kit *> kitList = ProjectExplorer::KitManager::instance()->kits(); QList<ProjectExplorer::Kit *> kitList = ProjectExplorer::KitManager::instance()->kits();
foreach (ProjectExplorer::Kit *k, kitList) { foreach (ProjectExplorer::Kit *k, kitList) {
QFileInfo fi(Qt4Project::shadowBuildDirectory(m_proFilePath, k, QString())); QFileInfo fi(Qt4Project::shadowBuildDirectory(m_proFilePath, k, QString()));
const QString baseDir = fi.absolutePath(); const QString baseDir = fi.absolutePath();
const QString prefix = fi.baseName();
foreach (const QString &dir, QDir(baseDir).entryList()) { foreach (const QString &dir, QDir(baseDir).entryList()) {
if (dir.startsWith(prefix)) const QString path = baseDir + QLatin1Char('/') + dir;
import(Utils::FileName::fromString(baseDir + QLatin1Char('/') + dir), true); if (dir.startsWith(prefix) && !toImport.contains(path))
toImport << path;
} }
} }
foreach (const QString &path, toImport)
import(Utils::FileName::fromString(path), true);
} }
void TargetSetupPage::handleKitAddition(ProjectExplorer::Kit *k) void TargetSetupPage::handleKitAddition(ProjectExplorer::Kit *k)