CompilerExplorer: Fix crash on undo

We need to store the source text document so that when the editor
is remove and the user triggers undo/read, the pointer is still valid.

Change-Id: I571906db1c4424455172a42d72351cd9ba1e7c03
Reviewed-by: David Schulz <david.schulz@qt.io>
This commit is contained in:
Marcus Tillmanns
2023-11-08 16:47:21 +01:00
parent e4805b88c9
commit 6e1d7fc961
2 changed files with 15 additions and 3 deletions

View File

@@ -209,14 +209,17 @@ SourceEditorWidget::SourceEditorWidget(const std::shared_ptr<SourceSettings> &se
connect(m_codeEditor, &CodeEditorWidget::gotFocus, this, &SourceEditorWidget::gotFocus);
TextDocumentPtr document = TextDocumentPtr(new SourceTextDocument(m_sourceSettings, undoStack));
auto sourceTextDocument = settings->sourceTextDocument();
if (!sourceTextDocument)
sourceTextDocument = TextDocumentPtr(new SourceTextDocument(m_sourceSettings, undoStack));
settings->setSourceTextDocument(sourceTextDocument);
connect(document.get(),
connect(sourceTextDocument.get(),
&SourceTextDocument::changed,
this,
&SourceEditorWidget::sourceCodeChanged);
m_codeEditor->setTextDocument(document);
m_codeEditor->setTextDocument(sourceTextDocument);
m_codeEditor->updateHighlighter();
auto addCompilerButton = new QToolButton;