summaryrefslogtreecommitdiff
path: root/src/plugins/cppeditor/cppeditordocument.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins/cppeditor/cppeditordocument.cpp')
-rw-r--r--src/plugins/cppeditor/cppeditordocument.cpp10
1 files changed, 10 insertions, 0 deletions
diff --git a/src/plugins/cppeditor/cppeditordocument.cpp b/src/plugins/cppeditor/cppeditordocument.cpp
index 6da4ac43fc..85c10e8f0c 100644
--- a/src/plugins/cppeditor/cppeditordocument.cpp
+++ b/src/plugins/cppeditor/cppeditordocument.cpp
@@ -44,10 +44,12 @@
#include <projectexplorer/session.h>
#include <texteditor/icodestylepreferencesfactory.h>
+#include <texteditor/storagesettings.h>
#include <texteditor/textdocumentlayout.h>
#include <texteditor/texteditorsettings.h>
#include <coreplugin/editormanager/editormanager.h>
+#include <utils/executeondestruction.h>
#include <utils/mimetypes/mimedatabase.h>
#include <utils/qtcassert.h>
#include <utils/runextensions.h>
@@ -448,6 +450,8 @@ TextEditor::TabSettings CppEditorDocument::tabSettings() const
bool CppEditorDocument::save(QString *errorString, const QString &fileName, bool autoSave)
{
+ Utils::ExecuteOnDestruction resetSettingsOnScopeExit;
+
if (indenter()->formatOnSave() && !autoSave) {
auto *layout = qobject_cast<TextEditor::TextDocumentLayout *>(document()->documentLayout());
const int documentRevision = layout->lastSaveRevision;
@@ -479,6 +483,12 @@ bool CppEditorDocument::save(QString *errorString, const QString &fileName, bool
indenter()->format(editedRanges);
cursor.endEditBlock();
}
+
+ TextEditor::StorageSettings settings = storageSettings();
+ resetSettingsOnScopeExit.reset(
+ [this, defaultSettings = settings]() { setStorageSettings(defaultSettings); });
+ settings.m_cleanWhitespace = false;
+ setStorageSettings(settings);
}
return TextEditor::TextDocument::save(errorString, fileName, autoSave);