diff options
author | Eike Ziller <eike.ziller@qt.io> | 2023-05-09 09:38:51 +0200 |
---|---|---|
committer | Eike Ziller <eike.ziller@qt.io> | 2023-05-10 13:02:15 +0000 |
commit | 349a3a5872b8287329ae48466a19aaf43cd43dd6 (patch) | |
tree | 995a1e5389a5f68cca2051b522af25763af54942 /src/plugins/texteditor/markdowneditor.cpp | |
parent | 062db6b3a527c59f3c0ee6ee329e9175f550c2b7 (diff) |
Markdown: Save visible views as default
Remember if editor and/or preview are visible and use it as default for
when a markdown editor is opened.
Change-Id: I19414adfd118003628783fadeae472b7bb7915f5
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: David Schulz <david.schulz@qt.io>
Diffstat (limited to 'src/plugins/texteditor/markdowneditor.cpp')
-rw-r--r-- | src/plugins/texteditor/markdowneditor.cpp | 29 |
1 files changed, 25 insertions, 4 deletions
diff --git a/src/plugins/texteditor/markdowneditor.cpp b/src/plugins/texteditor/markdowneditor.cpp index 0e76c893315..6310bd32689 100644 --- a/src/plugins/texteditor/markdowneditor.cpp +++ b/src/plugins/texteditor/markdowneditor.cpp @@ -26,7 +26,11 @@ const char MARKDOWNVIEWER_ID[] = "Editors.MarkdownViewer"; const char MARKDOWNVIEWER_TEXT_CONTEXT[] = "Editors.MarkdownViewer.Text"; const char MARKDOWNVIEWER_MIME_TYPE[] = "text/markdown"; const char MARKDOWNVIEWER_TEXTEDITOR_RIGHT[] = "Markdown.TextEditorRight"; +const char MARKDOWNVIEWER_SHOW_EDITOR[] = "Markdown.ShowEditor"; +const char MARKDOWNVIEWER_SHOW_PREVIEW[] = "Markdown.ShowPreview"; const bool kTextEditorRightDefault = true; +const bool kShowEditorDefault = true; +const bool kShowPreviewDefault = true; class MarkdownEditor : public Core::IEditor { @@ -39,6 +43,9 @@ public: QSettings *s = Core::ICore::settings(); const bool textEditorRight = s->value(MARKDOWNVIEWER_TEXTEDITOR_RIGHT, kTextEditorRightDefault).toBool(); + const bool showPreview = s->value(MARKDOWNVIEWER_SHOW_PREVIEW, kShowPreviewDefault).toBool(); + const bool showEditor = s->value(MARKDOWNVIEWER_SHOW_EDITOR, kShowEditorDefault).toBool() + || !showPreview; // ensure at least one is visible m_splitter = new Core::MiniSplitter; @@ -86,15 +93,18 @@ public: auto togglePreviewVisible = new QToolButton; togglePreviewVisible->setText(Tr::tr("Show Preview")); togglePreviewVisible->setCheckable(true); - togglePreviewVisible->setChecked(true); + togglePreviewVisible->setChecked(showPreview); + browser->setVisible(showPreview); m_toggleEditorVisible = new QToolButton; m_toggleEditorVisible->setText(Tr::tr("Show Editor")); m_toggleEditorVisible->setCheckable(true); - m_toggleEditorVisible->setChecked(true); + m_toggleEditorVisible->setChecked(showEditor); + m_textEditorWidget->setVisible(showEditor); auto swapViews = new QToolButton; swapViews->setText(Tr::tr("Swap Views")); + swapViews->setEnabled(showEditor && showPreview); auto toolbarLayout = new QHBoxLayout(&m_toolbar); toolbarLayout->setSpacing(0); @@ -144,22 +154,33 @@ public: } swapViews->setEnabled(view->isVisible() && otherView->isVisible()); }; + const auto saveViewSettings = [this, togglePreviewVisible] { + Utils::QtcSettings *s = Core::ICore::settings(); + s->setValueWithDefault(MARKDOWNVIEWER_SHOW_PREVIEW, + togglePreviewVisible->isChecked(), + kShowPreviewDefault); + s->setValueWithDefault(MARKDOWNVIEWER_SHOW_EDITOR, + m_toggleEditorVisible->isChecked(), + kShowEditorDefault); + }; connect(m_toggleEditorVisible, &QToolButton::toggled, this, - [this, browser, togglePreviewVisible, viewToggled](bool visible) { + [this, browser, togglePreviewVisible, viewToggled, saveViewSettings](bool visible) { viewToggled(m_textEditorWidget, visible, browser, togglePreviewVisible); + saveViewSettings(); }); connect(togglePreviewVisible, &QToolButton::toggled, this, - [this, browser, viewToggled, updatePreview](bool visible) { + [this, browser, viewToggled, updatePreview, saveViewSettings](bool visible) { viewToggled(browser, visible, m_textEditorWidget, m_toggleEditorVisible); if (visible && m_performDelayedUpdate) { m_performDelayedUpdate = false; updatePreview(); } + saveViewSettings(); }); connect(swapViews, &QToolButton::clicked, m_textEditorWidget, [this, toolbarLayout] { |