diff options
author | Tobias Hunger <tobias.hunger@nokia.com> | 2010-04-13 12:37:55 +0200 |
---|---|---|
committer | con <qtc-committer@nokia.com> | 2010-04-13 17:23:24 +0200 |
commit | dfc0d1009d4e086eac1013fa6e87baee7f4751f8 (patch) | |
tree | 0a0d6a41c03e953c309b80823efd43978c8609ed | |
parent | a1e9e697f6b1bc072586acb7e2ac0387e9001c92 (diff) | |
download | qt-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.cpp | 8 | ||||
-rw-r--r-- | src/plugins/qt4projectmanager/wizards/targetsetuppage.cpp | 14 | ||||
-rw-r--r-- | src/plugins/qt4projectmanager/wizards/targetsetuppage.h | 5 |
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 |