summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTobias Hunger <tobias.hunger@nokia.com>2010-04-13 12:37:55 +0200
committercon <qtc-committer@nokia.com>2010-04-13 17:23:24 +0200
commitdfc0d1009d4e086eac1013fa6e87baee7f4751f8 (patch)
tree0a0d6a41c03e953c309b80823efd43978c8609ed
parenta1e9e697f6b1bc072586acb7e2ac0387e9001c92 (diff)
downloadqt-creator-dfc0d1009d4e086eac1013fa6e87baee7f4751f8.tar.gz
Only offer to import directories building the sources
Reviewed-by: dt (cherry picked from commit 6186e13057ef76411e4c09ef6045d28caa24e3c4)
-rw-r--r--src/plugins/qt4projectmanager/projectloadwizard.cpp8
-rw-r--r--src/plugins/qt4projectmanager/wizards/targetsetuppage.cpp14
-rw-r--r--src/plugins/qt4projectmanager/wizards/targetsetuppage.h5
3 files changed, 20 insertions, 7 deletions
diff --git a/src/plugins/qt4projectmanager/projectloadwizard.cpp b/src/plugins/qt4projectmanager/projectloadwizard.cpp
index 892291cbe9..8e9d4cbe6d 100644
--- a/src/plugins/qt4projectmanager/projectloadwizard.cpp
+++ b/src/plugins/qt4projectmanager/projectloadwizard.cpp
@@ -94,11 +94,15 @@ void ProjectLoadWizard::setupTargetPage()
if (m_targetSetupPage)
return;
- QList<TargetSetupPage::ImportInfo> importVersions = TargetSetupPage::recursivelyCheckDirectoryForBuild(m_project->projectDirectory());
- importVersions.append(TargetSetupPage::recursivelyCheckDirectoryForBuild(m_project->defaultTopLevelBuildDirectory()));
+ QList<TargetSetupPage::ImportInfo> importVersions =
+ TargetSetupPage::recursivelyCheckDirectoryForBuild(m_project->projectDirectory(),
+ m_project->file()->fileName());
+ importVersions.append(TargetSetupPage::recursivelyCheckDirectoryForBuild(m_project->defaultTopLevelBuildDirectory(),
+ m_project->file()->fileName()));
importVersions.append(TargetSetupPage::importInfosForKnownQtVersions(m_project));
m_targetSetupPage = new TargetSetupPage(this);
+ m_targetSetupPage->setProFilePath(m_project->file()->fileName());
m_targetSetupPage->setImportInfos(importVersions);
m_targetSetupPage->setImportDirectoryBrowsingEnabled(true);
m_targetSetupPage->setImportDirectoryBrowsingLocation(m_project->projectDirectory());
diff --git a/src/plugins/qt4projectmanager/wizards/targetsetuppage.cpp b/src/plugins/qt4projectmanager/wizards/targetsetuppage.cpp
index 7ed813cd49..ef0fc555a8 100644
--- a/src/plugins/qt4projectmanager/wizards/targetsetuppage.cpp
+++ b/src/plugins/qt4projectmanager/wizards/targetsetuppage.cpp
@@ -283,6 +283,11 @@ void TargetSetupPage::setPreferMobile(bool mobile)
m_preferMobile = mobile;
}
+void TargetSetupPage::setProFilePath(const QString &path)
+{
+ m_proFilePath = path;
+}
+
QList<TargetSetupPage::ImportInfo>
TargetSetupPage::importInfosForKnownQtVersions(Qt4ProjectManager::Qt4Project *project)
{
@@ -321,7 +326,7 @@ QList<TargetSetupPage::ImportInfo> TargetSetupPage::filterImportInfos(const QSet
}
QList<TargetSetupPage::ImportInfo>
-TargetSetupPage::recursivelyCheckDirectoryForBuild(const QString &directory, int maxdepth)
+TargetSetupPage::recursivelyCheckDirectoryForBuild(const QString &directory, const QString &proFile, int maxdepth)
{
QList<ImportInfo> results;
@@ -332,10 +337,11 @@ TargetSetupPage::recursivelyCheckDirectoryForBuild(const QString &directory, int
QString qmakeBinary = QtVersionManager::findQMakeBinaryFromMakefile(directory);
// Recurse into subdirectories:
- if (qmakeBinary.isNull()) {
+ if (qmakeBinary.isNull() || !QtVersionManager::makefileIsFor(directory, proFile)) {
QStringList subDirs = QDir(directory).entryList(QDir::Dirs | QDir::NoDotAndDotDot);
foreach (QString subDir, subDirs)
- results.append(recursivelyCheckDirectoryForBuild(directory + QChar('/') + subDir, maxdepth - 1));
+ results.append(recursivelyCheckDirectoryForBuild(QDir::cleanPath(directory + QChar('/') + subDir),
+ proFile, maxdepth - 1));
return results;
}
@@ -383,7 +389,7 @@ void TargetSetupPage::importDirectoryAdded(const QString &directory)
m_directoryChooser->setPath(QString());
QList<ImportInfo> tmp = m_infos;
m_infos.clear(); // Clear m_infos without deleting temporary QtVersions!
- tmp.append(recursivelyCheckDirectoryForBuild(directory));
+ tmp.append(recursivelyCheckDirectoryForBuild(directory, m_proFilePath));
setImportInfos(tmp);
}
diff --git a/src/plugins/qt4projectmanager/wizards/targetsetuppage.h b/src/plugins/qt4projectmanager/wizards/targetsetuppage.h
index cec4c2cfa1..9cd23791ae 100644
--- a/src/plugins/qt4projectmanager/wizards/targetsetuppage.h
+++ b/src/plugins/qt4projectmanager/wizards/targetsetuppage.h
@@ -95,12 +95,14 @@ public:
void setImportDirectoryBrowsingLocation(const QString &directory);
void setShowLocationInformation(bool location);
void setPreferMobile(bool mobile);
+ void setProFilePath(const QString &dir);
static QList<ImportInfo> importInfosForKnownQtVersions(Qt4ProjectManager::Qt4Project *project);
static QList<ImportInfo> filterImportInfos(const QSet<QString> &validTargets,
const QList<ImportInfo> &infos);
- static QList<ImportInfo> recursivelyCheckDirectoryForBuild(const QString &directory, int maxdepth = 3);
+ static QList<ImportInfo> recursivelyCheckDirectoryForBuild(const QString &directory,
+ const QString &proFile, int maxdepth = 3);
bool hasSelection() const;
bool isTargetSelected(const QString &targetid) const;
@@ -120,6 +122,7 @@ private:
Utils::PathChooser *m_directoryChooser;
QLabel *m_directoryLabel;
bool m_preferMobile;
+ QString m_proFilePath;
};
} // namespace Internal