diff --git a/src/plugins/texteditor/refactoringchanges.cpp b/src/plugins/texteditor/refactoringchanges.cpp index 5905fb5f681..9370a5f0c19 100644 --- a/src/plugins/texteditor/refactoringchanges.cpp +++ b/src/plugins/texteditor/refactoringchanges.cpp @@ -29,6 +29,7 @@ #include #include +#include #include #include #include @@ -178,8 +179,11 @@ RefactoringFile::RefactoringFile(const QString &fileName, const QSharedPointer editors = DocumentModel::editorsForFilePath(fileName); - if (!editors.isEmpty()) - m_editor = qobject_cast(editors.first()->widget()); + if (!editors.isEmpty()) { + auto editorWidget = qobject_cast(editors.first()->widget()); + if (editorWidget && !editorWidget->isReadOnly()) + m_editor = editorWidget; + } } RefactoringFile::~RefactoringFile() @@ -378,6 +382,8 @@ bool RefactoringFile::apply() if (!m_editor && m_textFileFormat.codec) { QTC_ASSERT(!m_fileName.isEmpty(), return false); QString error; + // suppress "file has changed" warnings if the file is open in a read-only editor + Core::FileChangeBlocker block(m_fileName); if (!m_textFileFormat.writeFile(m_fileName, doc->toPlainText(), &error)) { qWarning() << "Could not apply changes to" << m_fileName << ". Error: " << error; result = false;