diff --git a/src/plugins/diffeditor/diffeditordocument.cpp b/src/plugins/diffeditor/diffeditordocument.cpp index 9928ef61972..aac0ba2f063 100644 --- a/src/plugins/diffeditor/diffeditordocument.cpp +++ b/src/plugins/diffeditor/diffeditordocument.cpp @@ -203,11 +203,19 @@ QString DiffEditorDocument::fallbackSaveAsPath() const return QDir::homePath(); } +bool DiffEditorDocument::isSaveAsAllowed() const +{ + return !isReloading(); +} + bool DiffEditorDocument::save(QString *errorString, const QString &fileName, bool autoSave) { Q_UNUSED(errorString) Q_UNUSED(autoSave) + if (isReloading()) + return false; + const bool ok = write(fileName, format(), plainText(), errorString); if (!ok) @@ -330,6 +338,7 @@ void DiffEditorDocument::beginReload() { emit aboutToReload(); m_isReloading = true; + emit changed(); const bool blocked = blockSignals(true); setDiffFiles(QList(), QString()); setDescription(QString()); @@ -339,6 +348,7 @@ void DiffEditorDocument::beginReload() void DiffEditorDocument::endReload(bool success) { m_isReloading = false; + emit changed(); emit reloadFinished(success); } diff --git a/src/plugins/diffeditor/diffeditordocument.h b/src/plugins/diffeditor/diffeditordocument.h index c61d17ad909..18c73b61cee 100644 --- a/src/plugins/diffeditor/diffeditordocument.h +++ b/src/plugins/diffeditor/diffeditordocument.h @@ -70,7 +70,7 @@ public: QString fallbackSaveAsPath() const override; QString fallbackSaveAsFileName() const override; - bool isSaveAsAllowed() const override { return true; } + bool isSaveAsAllowed() const override; bool save(QString *errorString, const QString &fileName, bool autoSave) override; void reload(); bool reload(QString *errorString, ReloadFlag flag, ChangeType type) override;