ProjectNode: Let add/removeSubprojects operate on single files

That's the only way that is used.

Change-Id: I57e7942f9dccf74ff7588c3bca0ccf05f528a3df
Reviewed-by: Tobias Hunger <tobias.hunger@qt.io>
This commit is contained in:
hjk
2017-03-15 14:45:54 +01:00
parent 8b5867dd8e
commit 8b8ba51ef3
11 changed files with 22 additions and 42 deletions

View File

@@ -57,21 +57,6 @@ QList<ProjectAction> NimProjectNode::supportedActions(Node *node) const
} }
} }
bool NimProjectNode::addSubProjects(const QStringList &)
{
return false;
}
bool NimProjectNode::canAddSubProject(const QString &) const
{
return false;
}
bool NimProjectNode::removeSubProjects(const QStringList &)
{
return false;
}
bool NimProjectNode::addFiles(const QStringList &filePaths, QStringList *) bool NimProjectNode::addFiles(const QStringList &filePaths, QStringList *)
{ {
return m_project.addFiles(filePaths); return m_project.addFiles(filePaths);

View File

@@ -39,9 +39,6 @@ public:
NimProjectNode(NimProject &project, const Utils::FileName &projectFilePath); NimProjectNode(NimProject &project, const Utils::FileName &projectFilePath);
QList<ProjectExplorer::ProjectAction> supportedActions(Node *node) const override; QList<ProjectExplorer::ProjectAction> supportedActions(Node *node) const override;
bool canAddSubProject(const QString &) const override;
bool addSubProjects(const QStringList &) override;
bool removeSubProjects(const QStringList &) override;
bool addFiles(const QStringList &filePaths, QStringList *) override; bool addFiles(const QStringList &filePaths, QStringList *) override;
bool removeFiles(const QStringList &filePaths, QStringList *) override; bool removeFiles(const QStringList &filePaths, QStringList *) override;
bool deleteFiles(const QStringList &) override; bool deleteFiles(const QStringList &) override;

View File

@@ -175,7 +175,7 @@ void JsonSummaryPage::addToProject(const JsonWizard::GeneratorFiles &files)
if (!folder) if (!folder)
return; return;
if (kind == IWizardFactory::ProjectWizard) { if (kind == IWizardFactory::ProjectWizard) {
if (!static_cast<ProjectNode *>(folder)->addSubProjects(QStringList(generatedProject))) { if (!static_cast<ProjectNode *>(folder)->addSubProject(generatedProject)) {
QMessageBox::critical(m_wizard, tr("Failed to Add to Project"), QMessageBox::critical(m_wizard, tr("Failed to Add to Project"),
tr("Failed to add subproject \"%1\"\nto project \"%2\".") tr("Failed to add subproject \"%1\"\nto project \"%2\".")
.arg(QDir::toNativeSeparators(generatedProject)) .arg(QDir::toNativeSeparators(generatedProject))

View File

@@ -3212,7 +3212,7 @@ void ProjectExplorerPluginPrivate::removeProject()
RemoveFileDialog removeFileDialog(subProjectNode->filePath().toString(), ICore::mainWindow()); RemoveFileDialog removeFileDialog(subProjectNode->filePath().toString(), ICore::mainWindow());
removeFileDialog.setDeleteFileVisible(false); removeFileDialog.setDeleteFileVisible(false);
if (removeFileDialog.exec() == QDialog::Accepted) if (removeFileDialog.exec() == QDialog::Accepted)
projectNode->removeSubProjects(QStringList() << subProjectNode->filePath().toString()); projectNode->removeSubProject(subProjectNode->filePath().toString());
} }
} }

View File

@@ -181,7 +181,7 @@ bool ProjectFileWizardExtension::processProject(
if (!folder) if (!folder)
return true; return true;
if (m_context->wizard->kind() == IWizardFactory::ProjectWizard) { if (m_context->wizard->kind() == IWizardFactory::ProjectWizard) {
if (!static_cast<ProjectNode *>(folder)->addSubProjects(QStringList(generatedProject))) { if (!static_cast<ProjectNode *>(folder)->addSubProject(generatedProject)) {
*errorMessage = tr("Failed to add subproject \"%1\"\nto project \"%2\".") *errorMessage = tr("Failed to add subproject \"%1\"\nto project \"%2\".")
.arg(generatedProject).arg(folder->filePath().toUserOutput()); .arg(generatedProject).arg(folder->filePath().toUserOutput());
return false; return false;

View File

@@ -720,15 +720,15 @@ bool ProjectNode::canAddSubProject(const QString &proFilePath) const
return false; return false;
} }
bool ProjectNode::addSubProjects(const QStringList &proFilePaths) bool ProjectNode::addSubProject(const QString &proFilePath)
{ {
Q_UNUSED(proFilePaths) Q_UNUSED(proFilePath)
return false; return false;
} }
bool ProjectNode::removeSubProjects(const QStringList &proFilePaths) bool ProjectNode::removeSubProject(const QString &proFilePath)
{ {
Q_UNUSED(proFilePaths) Q_UNUSED(proFilePath)
return false; return false;
} }

View File

@@ -278,8 +278,8 @@ public:
QString vcsTopic() const; QString vcsTopic() const;
virtual bool canAddSubProject(const QString &proFilePath) const; virtual bool canAddSubProject(const QString &proFilePath) const;
virtual bool addSubProjects(const QStringList &proFilePaths); virtual bool addSubProject(const QString &proFile);
virtual bool removeSubProjects(const QStringList &proFilePaths); virtual bool removeSubProject(const QString &proFilePath);
bool addFiles(const QStringList &filePaths, QStringList *notAdded = 0) override; bool addFiles(const QStringList &filePaths, QStringList *notAdded = 0) override;
bool removeFiles(const QStringList &filePaths, QStringList *notRemoved = 0) override; bool removeFiles(const QStringList &filePaths, QStringList *notRemoved = 0) override;

View File

@@ -148,16 +148,16 @@ bool QmakePriFileNode::canAddSubProject(const QString &proFilePath) const
return pri ? pri->canAddSubProject(proFilePath) : false; return pri ? pri->canAddSubProject(proFilePath) : false;
} }
bool QmakePriFileNode::addSubProjects(const QStringList &proFilePaths) bool QmakePriFileNode::addSubProject(const QString &proFilePath)
{ {
QmakePriFile *pri = priFile(); QmakePriFile *pri = priFile();
return pri ? pri->addSubProjects(proFilePaths) : false; return pri ? pri->addSubProject(proFilePath) : false;
} }
bool QmakePriFileNode::removeSubProjects(const QStringList &proFilePaths) bool QmakePriFileNode::removeSubProject(const QString &proFilePath)
{ {
QmakePriFile *pri = priFile(); QmakePriFile *pri = priFile();
return pri ? pri->removeSubProjects(proFilePaths) : false; return pri ? pri->removeSubProjects(proFilePath) : false;
} }
bool QmakePriFileNode::addFiles(const QStringList &filePaths, QStringList *notAdded) bool QmakePriFileNode::addFiles(const QStringList &filePaths, QStringList *notAdded)

View File

@@ -53,8 +53,8 @@ public:
bool canAddSubProject(const QString &proFilePath) const override; bool canAddSubProject(const QString &proFilePath) const override;
bool addSubProjects(const QStringList &proFilePaths) override; bool addSubProject(const QString &proFilePath) override;
bool removeSubProjects(const QStringList &proFilePaths) override; bool removeSubProject(const QString &proFilePath) override;
bool addFiles(const QStringList &filePaths, QStringList *notAdded = nullptr) override; bool addFiles(const QStringList &filePaths, QStringList *notAdded = nullptr) override;
bool removeFiles(const QStringList &filePaths, QStringList *notRemoved = nullptr) override; bool removeFiles(const QStringList &filePaths, QStringList *notRemoved = nullptr) override;

View File

@@ -474,13 +474,11 @@ static QString simplifyProFilePath(const QString &proFilePath)
return proFilePath; return proFilePath;
} }
bool QmakePriFile::addSubProjects(const QStringList &proFilePaths) bool QmakePriFile::addSubProject(const QString &proFile)
{ {
QStringList uniqueProFilePaths; QStringList uniqueProFilePaths;
foreach (const QString &proFile, proFilePaths) {
if (!m_recursiveEnumerateFiles.contains(FileName::fromString(proFile))) if (!m_recursiveEnumerateFiles.contains(FileName::fromString(proFile)))
uniqueProFilePaths.append(simplifyProFilePath(proFile)); uniqueProFilePaths.append(simplifyProFilePath(proFile));
}
QStringList failedFiles; QStringList failedFiles;
changeFiles(QLatin1String(Constants::PROFILE_MIMETYPE), uniqueProFilePaths, &failedFiles, AddToProFile); changeFiles(QLatin1String(Constants::PROFILE_MIMETYPE), uniqueProFilePaths, &failedFiles, AddToProFile);
@@ -488,10 +486,10 @@ bool QmakePriFile::addSubProjects(const QStringList &proFilePaths)
return failedFiles.isEmpty(); return failedFiles.isEmpty();
} }
bool QmakePriFile::removeSubProjects(const QStringList &proFilePaths) bool QmakePriFile::removeSubProjects(const QString &proFilePath)
{ {
QStringList failedOriginalFiles; QStringList failedOriginalFiles;
changeFiles(QLatin1String(Constants::PROFILE_MIMETYPE), proFilePaths, &failedOriginalFiles, RemoveFromProFile); changeFiles(QLatin1String(Constants::PROFILE_MIMETYPE), QStringList(proFilePath), &failedOriginalFiles, RemoveFromProFile);
QStringList simplifiedProFiles = Utils::transform(failedOriginalFiles, &simplifyProFilePath); QStringList simplifiedProFiles = Utils::transform(failedOriginalFiles, &simplifyProFilePath);

View File

@@ -134,8 +134,8 @@ public:
// ProjectNode interface // ProjectNode interface
virtual bool canAddSubProject(const QString &proFilePath) const; virtual bool canAddSubProject(const QString &proFilePath) const;
virtual bool addSubProjects(const QStringList &proFilePaths); virtual bool addSubProject(const QString &proFile);
virtual bool removeSubProjects(const QStringList &proFilePaths); virtual bool removeSubProjects(const QString &proFilePath);
virtual bool addFiles(const QStringList &filePaths, QStringList *notAdded = nullptr); virtual bool addFiles(const QStringList &filePaths, QStringList *notAdded = nullptr);
virtual bool removeFiles(const QStringList &filePaths, QStringList *notRemoved = nullptr); virtual bool removeFiles(const QStringList &filePaths, QStringList *notRemoved = nullptr);