diff --git a/src/plugins/texteditor/markdowneditor.cpp b/src/plugins/texteditor/markdowneditor.cpp index c08fedeb104..93b580a935e 100644 --- a/src/plugins/texteditor/markdowneditor.cpp +++ b/src/plugins/texteditor/markdowneditor.cpp @@ -110,6 +110,21 @@ public: m_textEditorWidget->setTextDocument(m_document); m_textEditorWidget->setupGenericHighlighter(); m_textEditorWidget->setMarksVisible(false); + QObject::connect( + m_textEditorWidget, + &TextEditorWidget::saveCurrentStateForNavigationHistory, + this, + &MarkdownEditor::saveCurrentStateForNavigationHistory); + QObject::connect( + m_textEditorWidget, + &TextEditorWidget::addSavedStateToNavigationHistory, + this, + &MarkdownEditor::addSavedStateToNavigationHistory); + QObject::connect( + m_textEditorWidget, + &TextEditorWidget::addCurrentStateToNavigationHistory, + this, + &MarkdownEditor::addCurrentStateToNavigationHistory); auto context = new IContext(this); context->setWidget(m_textEditorWidget); context->setContext(Context(MARKDOWNVIEWER_TEXT_CONTEXT)); @@ -476,6 +491,18 @@ private: } } + void saveCurrentStateForNavigationHistory() { m_savedNavigationState = saveState(); } + + void addSavedStateToNavigationHistory() + { + EditorManager::addCurrentPositionToNavigationHistory(m_savedNavigationState); + } + + void addCurrentStateToNavigationHistory() + { + EditorManager::addCurrentPositionToNavigationHistory(); + } + private: QTimer m_previewTimer; bool m_performDelayedUpdate = false; @@ -491,6 +518,7 @@ private: QAction *m_togglePreviewVisibleAction; QAction *m_swapViewsAction; std::optional m_previewRestoreScrollPosition; + QByteArray m_savedNavigationState; }; class MarkdownEditorFactory final : public IEditorFactory