Add markdown viewer plugin

Fixes: QTCREATORBUG-27883
Change-Id: Ie4099b8a322797d300bc15a80333bcb361ecafc3
Reviewed-by: André Hartmann <aha_1980@gmx.de>
This commit is contained in:
Tasuku Suzuki
2020-01-27 17:35:38 +09:00
parent 0bb9798c30
commit 8b70e59cdb
20 changed files with 518 additions and 0 deletions

View File

@@ -0,0 +1,58 @@
// Copyright (C) 2023 Tasuku Suzuki
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#include "markdownviewerwidget.h"
#include "markdowneditor.h"
#include "markdownbrowser.h"
#include <texteditor/textdocument.h>
namespace Markdown {
namespace Internal {
struct MarkdownViewerWidgetPrivate
{
MarkdownBrowser *browser;
MarkdownEditor *editor;
};
MarkdownViewerWidget::MarkdownViewerWidget()
: d(new MarkdownViewerWidgetPrivate)
{
d->browser = new MarkdownBrowser(this);
d->browser->setOpenExternalLinks(true);
d->browser->setFrameShape(QFrame::NoFrame);
d->editor = new MarkdownEditor(this);
connect(d->editor->document(), &QTextDocument::contentsChanged,
this, [this]() {
const auto plainText = d->editor->textDocument()->plainText();
d->browser->setMarkdown(plainText);
});
}
MarkdownViewerWidget::~MarkdownViewerWidget()
{
delete d;
}
Core::IDocument *MarkdownViewerWidget::document() const
{
return d->editor->textDocument();
}
bool MarkdownViewerWidget::isEditorVisible() const
{
return d->editor->isVisible();
}
void MarkdownViewerWidget::setEditorVisible(bool editorVisible)
{
if (d->editor->isVisible() == editorVisible)
return;
d->editor->setVisible(editorVisible);
emit editorVisibleChanged(editorVisible);
}
} // namespace Internal
} // namespace Markdown