ProjectExplorer: Add a cancel option to the rename dialog

... in the project tree.
Also properly handle the situation where the dialog is closed by other
means than one of the buttons.

Task-number: QTCREATORBUG-26268
Change-Id: Ic0b613be2413f96355c1b33bb4753bd1170e0671
Reviewed-by: hjk <hjk@qt.io>
This commit is contained in:
Christian Kandeler
2021-09-16 16:17:40 +02:00
parent b74b5a3ee6
commit b771bdf4c1

View File

@@ -315,8 +315,11 @@ bool FlatModel::setData(const QModelIndex &index, const QVariant &value, int rol
const QMessageBox::StandardButton reply = QMessageBox::question( const QMessageBox::StandardButton reply = QMessageBox::question(
Core::ICore::dialogParent(), tr("Rename More Files?"), Core::ICore::dialogParent(), tr("Rename More Files?"),
tr("Would you like to rename these files as well?\n %1") tr("Would you like to rename these files as well?\n %1")
.arg(fileNames.join("\n "))); .arg(fileNames.join("\n ")),
if (reply == QMessageBox::Yes) { QMessageBox::Yes | QMessageBox::No | QMessageBox::Cancel,
QMessageBox::Yes);
switch (reply) {
case QMessageBox::Yes:
for (Node * const n : candidateNodes) { for (Node * const n : candidateNodes) {
QString targetFilePath = orgFileInfo.absolutePath() + '/' QString targetFilePath = orgFileInfo.absolutePath() + '/'
+ newFilePath.completeBaseName(); + newFilePath.completeBaseName();
@@ -326,6 +329,11 @@ bool FlatModel::setData(const QModelIndex &index, const QVariant &value, int rol
toRename.emplace_back(std::make_tuple(n, n->filePath(), toRename.emplace_back(std::make_tuple(n, n->filePath(),
FilePath::fromString(targetFilePath))); FilePath::fromString(targetFilePath)));
} }
break;
case QMessageBox::Cancel:
return false;
default:
break;
} }
} }
} }