summaryrefslogtreecommitdiff
path: root/src/plugins/texteditor/refactoringchanges.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins/texteditor/refactoringchanges.cpp')
-rw-r--r--src/plugins/texteditor/refactoringchanges.cpp10
1 files changed, 8 insertions, 2 deletions
diff --git a/src/plugins/texteditor/refactoringchanges.cpp b/src/plugins/texteditor/refactoringchanges.cpp
index 5905fb5f68..9370a5f0c1 100644
--- a/src/plugins/texteditor/refactoringchanges.cpp
+++ b/src/plugins/texteditor/refactoringchanges.cpp
@@ -29,6 +29,7 @@
#include <coreplugin/icore.h>
#include <coreplugin/dialogs/readonlyfilesdialog.h>
+#include <coreplugin/documentmanager.h>
#include <coreplugin/editormanager/editormanager.h>
#include <utils/qtcassert.h>
#include <utils/fileutils.h>
@@ -178,8 +179,11 @@ RefactoringFile::RefactoringFile(const QString &fileName, const QSharedPointer<R
, m_appliedOnce(false)
{
QList<IEditor *> editors = DocumentModel::editorsForFilePath(fileName);
- if (!editors.isEmpty())
- m_editor = qobject_cast<TextEditorWidget *>(editors.first()->widget());
+ if (!editors.isEmpty()) {
+ auto editorWidget = qobject_cast<TextEditorWidget *>(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;