Markdown: Implement navigation history

The text editor widget now tells us when it thinks a new navigation
point should be added, so do it.

Change-Id: I20e65134420cb1d94d7bc5310791d07ff951647c
Reviewed-by: David Schulz <david.schulz@qt.io>
This commit is contained in:
Eike Ziller
2024-05-27 11:44:17 +02:00
parent 3aee50f5fd
commit cf64d46bbe

View File

@@ -110,6 +110,21 @@ public:
m_textEditorWidget->setTextDocument(m_document); m_textEditorWidget->setTextDocument(m_document);
m_textEditorWidget->setupGenericHighlighter(); m_textEditorWidget->setupGenericHighlighter();
m_textEditorWidget->setMarksVisible(false); 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); auto context = new IContext(this);
context->setWidget(m_textEditorWidget); context->setWidget(m_textEditorWidget);
context->setContext(Context(MARKDOWNVIEWER_TEXT_CONTEXT)); 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: private:
QTimer m_previewTimer; QTimer m_previewTimer;
bool m_performDelayedUpdate = false; bool m_performDelayedUpdate = false;
@@ -491,6 +518,7 @@ private:
QAction *m_togglePreviewVisibleAction; QAction *m_togglePreviewVisibleAction;
QAction *m_swapViewsAction; QAction *m_swapViewsAction;
std::optional<QPoint> m_previewRestoreScrollPosition; std::optional<QPoint> m_previewRestoreScrollPosition;
QByteArray m_savedNavigationState;
}; };
class MarkdownEditorFactory final : public IEditorFactory class MarkdownEditorFactory final : public IEditorFactory