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 *)
{
return m_project.addFiles(filePaths);

View File

@@ -39,9 +39,6 @@ public:
NimProjectNode(NimProject &project, const Utils::FileName &projectFilePath);
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 removeFiles(const QStringList &filePaths, QStringList *) override;
bool deleteFiles(const QStringList &) override;

View File

@@ -175,7 +175,7 @@ void JsonSummaryPage::addToProject(const JsonWizard::GeneratorFiles &files)
if (!folder)
return;
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"),
tr("Failed to add subproject \"%1\"\nto project \"%2\".")
.arg(QDir::toNativeSeparators(generatedProject))

View File

@@ -3212,7 +3212,7 @@ void ProjectExplorerPluginPrivate::removeProject()
RemoveFileDialog removeFileDialog(subProjectNode->filePath().toString(), ICore::mainWindow());
removeFileDialog.setDeleteFileVisible(false);
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)
return true;
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\".")
.arg(generatedProject).arg(folder->filePath().toUserOutput());
return false;

View File

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

View File

@@ -278,8 +278,8 @@ public:
QString vcsTopic() const;
virtual bool canAddSubProject(const QString &proFilePath) const;
virtual bool addSubProjects(const QStringList &proFilePaths);
virtual bool removeSubProjects(const QStringList &proFilePaths);
virtual bool addSubProject(const QString &proFile);
virtual bool removeSubProject(const QString &proFilePath);
bool addFiles(const QStringList &filePaths, QStringList *notAdded = 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;
}
bool QmakePriFileNode::addSubProjects(const QStringList &proFilePaths)
bool QmakePriFileNode::addSubProject(const QString &proFilePath)
{
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();
return pri ? pri->removeSubProjects(proFilePaths) : false;
return pri ? pri->removeSubProjects(proFilePath) : false;
}
bool QmakePriFileNode::addFiles(const QStringList &filePaths, QStringList *notAdded)

View File

@@ -53,8 +53,8 @@ public:
bool canAddSubProject(const QString &proFilePath) const override;
bool addSubProjects(const QStringList &proFilePaths) override;
bool removeSubProjects(const QStringList &proFilePaths) override;
bool addSubProject(const QString &proFilePath) override;
bool removeSubProject(const QString &proFilePath) override;
bool addFiles(const QStringList &filePaths, QStringList *notAdded = 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;
}
bool QmakePriFile::addSubProjects(const QStringList &proFilePaths)
bool QmakePriFile::addSubProject(const QString &proFile)
{
QStringList uniqueProFilePaths;
foreach (const QString &proFile, proFilePaths) {
if (!m_recursiveEnumerateFiles.contains(FileName::fromString(proFile)))
uniqueProFilePaths.append(simplifyProFilePath(proFile));
}
QStringList failedFiles;
changeFiles(QLatin1String(Constants::PROFILE_MIMETYPE), uniqueProFilePaths, &failedFiles, AddToProFile);
@@ -488,10 +486,10 @@ bool QmakePriFile::addSubProjects(const QStringList &proFilePaths)
return failedFiles.isEmpty();
}
bool QmakePriFile::removeSubProjects(const QStringList &proFilePaths)
bool QmakePriFile::removeSubProjects(const QString &proFilePath)
{
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);

View File

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