forked from qt-creator/qt-creator
ProjectExplorer: Add special handling for removing files
... from a project which are pulled in via wildcards. Such files cannot be removed from a project file, because they are not listed verbatim. This kind of failure should not be reported to the user if the file is also deleted, as the file list will have the correct state after the next reparse. Fixes: QTCREATORBUG-22586 Done-with: Christian Kandeler <christian.kandeler@qt.io> Change-Id: I3dc66fe9a6594be7d0b86f46d830cd099ee49fd7 Reviewed-by: hjk <hjk@qt.io>
This commit is contained in:
committed by
Christian Kandeler
parent
90ad2797eb
commit
63e4180242
@@ -195,10 +195,28 @@ bool QmakePriFileNode::addFiles(const QStringList &filePaths, QStringList *notAd
|
||||
return pri->addFiles(actualFilePaths, notAdded);
|
||||
}
|
||||
|
||||
bool QmakePriFileNode::removeFiles(const QStringList &filePaths, QStringList *notRemoved)
|
||||
RemovedFilesFromProject QmakePriFileNode::removeFiles(const QStringList &filePaths,
|
||||
QStringList *notRemoved)
|
||||
{
|
||||
QmakePriFile *pri = priFile();
|
||||
return pri ? pri->removeFiles(filePaths, notRemoved) : false;
|
||||
QmakePriFile * const pri = priFile();
|
||||
if (!pri)
|
||||
return RemovedFilesFromProject::Error;
|
||||
QStringList wildcardFiles;
|
||||
QStringList nonWildcardFiles;
|
||||
for (const QString &file : filePaths) {
|
||||
if (pri->proFile()->isFileFromWildcard(file))
|
||||
wildcardFiles << file;
|
||||
else
|
||||
nonWildcardFiles << file;
|
||||
}
|
||||
const bool success = pri->removeFiles(nonWildcardFiles, notRemoved);
|
||||
if (notRemoved)
|
||||
*notRemoved += wildcardFiles;
|
||||
if (!success)
|
||||
return RemovedFilesFromProject::Error;
|
||||
if (!wildcardFiles.isEmpty())
|
||||
return RemovedFilesFromProject::Wildcard;
|
||||
return RemovedFilesFromProject::Ok;
|
||||
}
|
||||
|
||||
bool QmakePriFileNode::deleteFiles(const QStringList &filePaths)
|
||||
|
||||
Reference in New Issue
Block a user