From c976024c2646dbb5781eeed6089215672aa6170b Mon Sep 17 00:00:00 2001 From: Daniel Teske Date: Wed, 18 Apr 2012 11:50:32 +0200 Subject: [PATCH] File renaming: Show a warning message if a project could not be changed Except if we expect the changing to do nothing, e.g. if the file is added via a folder deployment. Change-Id: Ic6a8caa27e6ce3e779ac9cd13a43a6898360bfea Reviewed-by: Leena Miettinen Reviewed-by: Daniel Teske --- src/plugins/projectexplorer/projectexplorer.cpp | 9 +++++++-- src/plugins/qt4projectmanager/qt4nodes.cpp | 6 ++++-- 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/src/plugins/projectexplorer/projectexplorer.cpp b/src/plugins/projectexplorer/projectexplorer.cpp index d0ea50a4687..8efb360ea99 100644 --- a/src/plugins/projectexplorer/projectexplorer.cpp +++ b/src/plugins/projectexplorer/projectexplorer.cpp @@ -2844,8 +2844,13 @@ void ProjectExplorerPlugin::renameFile(Node *node, const QString &to) Core::DocumentManager::renamedFile(orgFilePath, newFilePath); // Tell the project plugin about it ProjectNode *projectNode = fileNode->projectNode(); - projectNode->renameFile(fileNode->fileType(), orgFilePath, newFilePath); - // TODO emit a signal? + if (!projectNode->renameFile(fileNode->fileType(), orgFilePath, newFilePath)) { + QMessageBox::warning(Core::ICore::mainWindow(), tr("Project Editing Failed"), + tr("The file %1 was renamed to %2, but the project file %3 could not be automatically changed.") + .arg(orgFilePath) + .arg(newFilePath) + .arg(projectNode->displayName())); + } } } diff --git a/src/plugins/qt4projectmanager/qt4nodes.cpp b/src/plugins/qt4projectmanager/qt4nodes.cpp index 065594ff388..6698dc68da2 100644 --- a/src/plugins/qt4projectmanager/qt4nodes.cpp +++ b/src/plugins/qt4projectmanager/qt4nodes.cpp @@ -992,12 +992,14 @@ bool Qt4PriFileNode::renameFile(const FileType fileType, const QString &filePath if (newFilePath.isEmpty()) return false; + bool changeProFileOptional = deploysFolder(QFileInfo(filePath).absolutePath()); + QStringList dummy; changeFiles(fileType, QStringList() << filePath, &dummy, RemoveFromProFile); - if (!dummy.isEmpty()) + if (!dummy.isEmpty() && !changeProFileOptional) return false; changeFiles(fileType, QStringList() << newFilePath, &dummy, AddToProFile); - if (!dummy.isEmpty()) + if (!dummy.isEmpty() && !changeProFileOptional) return false; return true; }