diff --git a/src/plugins/coreplugin/externaltool.cpp b/src/plugins/coreplugin/externaltool.cpp index a5638788c10420f542edae3614f816d57d8e0a8a..4ea68bc67afd331790c6da1be2cfb67566eb23e4 100644 --- a/src/plugins/coreplugin/externaltool.cpp +++ b/src/plugins/coreplugin/externaltool.cpp @@ -337,9 +337,14 @@ void ExternalToolRunner::run() } if (m_tool->outputHandling() == ExternalTool::ReloadDocument || m_tool->errorHandling() == ExternalTool::ReloadDocument) { - // TODO ask modified file to save if (IEditor *editor = EditorManager::instance()->currentEditor()) { m_expectedFileName = editor->file()->fileName(); + bool cancelled = false; + FileManager::instance()->saveModifiedFiles(QList<IFile *>() << editor->file(), &cancelled); + if (cancelled) { + deleteLater(); + return; + } FileManager::instance()->expectFileChange(m_expectedFileName); } }