mirror of
https://gitee.com/vnotex/vnote.git
synced 2025-07-05 13:59:52 +08:00
show hover link
This commit is contained in:
parent
5d9103b933
commit
66554819a6
@ -7,7 +7,6 @@
|
||||
#include <QMimeData>
|
||||
#include <QScopedPointer>
|
||||
|
||||
#include "../webpage.h"
|
||||
#include "markdownvieweradapter.h"
|
||||
#include "previewhelper.h"
|
||||
#include <utils/clipboardutils.h>
|
||||
@ -28,25 +27,15 @@ MarkdownViewer::MarkdownViewer(MarkdownViewerAdapter *p_adapter,
|
||||
const QColor &p_background,
|
||||
qreal p_zoomFactor,
|
||||
QWidget *p_parent)
|
||||
: WebViewer(p_parent),
|
||||
: WebViewer(p_background, p_zoomFactor, p_parent),
|
||||
m_adapter(p_adapter)
|
||||
{
|
||||
m_adapter->setParent(this);
|
||||
|
||||
auto page = new WebPage(this);
|
||||
setPage(page);
|
||||
|
||||
// Avoid white flash before loading content.
|
||||
// Setting Qt::transparent will force GrayScale antialias rendering.
|
||||
page->setBackgroundColor(p_background);
|
||||
|
||||
if (!Utils::fuzzyEqual(p_zoomFactor, 1.0)) {
|
||||
setZoomFactor(p_zoomFactor);
|
||||
}
|
||||
|
||||
auto channel = new QWebChannel(this);
|
||||
channel->registerObject(QStringLiteral("vxAdapter"), m_adapter);
|
||||
page->setWebChannel(channel);
|
||||
|
||||
page()->setWebChannel(channel);
|
||||
|
||||
connect(QApplication::clipboard(), &QClipboard::changed,
|
||||
this, &MarkdownViewer::handleClipboardChanged);
|
||||
|
@ -414,6 +414,11 @@ void MarkdownViewWindow::setupViewer()
|
||||
showZoomFactor(p_factor);
|
||||
});
|
||||
|
||||
connect(m_viewer, &WebViewer::linkHovered,
|
||||
this, [this](const QString &p_url) {
|
||||
showMessage(p_url);
|
||||
});
|
||||
|
||||
// Connect outline pipeline.
|
||||
connect(adapter, &MarkdownViewerAdapter::headingsChanged,
|
||||
this, [this]() {
|
||||
|
@ -1,14 +1,33 @@
|
||||
#include "webviewer.h"
|
||||
|
||||
#include "webpage.h"
|
||||
|
||||
#include <utils/utils.h>
|
||||
|
||||
using namespace vnotex;
|
||||
|
||||
WebViewer::WebViewer(QWidget *p_parent)
|
||||
WebViewer::WebViewer(const QColor &p_background,
|
||||
qreal p_zoomFactor,
|
||||
QWidget *p_parent)
|
||||
: QWebEngineView(p_parent)
|
||||
{
|
||||
setAcceptDrops(false);
|
||||
|
||||
auto viewPage = new WebPage(this);
|
||||
setPage(viewPage);
|
||||
|
||||
connect(viewPage, &QWebEnginePage::linkHovered,
|
||||
this, &WebViewer::linkHovered);
|
||||
|
||||
// Avoid white flash before loading content.
|
||||
// Setting Qt::transparent will force GrayScale antialias rendering.
|
||||
viewPage->setBackgroundColor(p_background);
|
||||
|
||||
if (!Utils::fuzzyEqual(p_zoomFactor, 1.0)) {
|
||||
setZoomFactor(p_zoomFactor);
|
||||
}
|
||||
}
|
||||
|
||||
WebViewer::~WebViewer()
|
||||
{
|
||||
|
||||
}
|
||||
|
@ -9,9 +9,14 @@ namespace vnotex
|
||||
{
|
||||
Q_OBJECT
|
||||
public:
|
||||
explicit WebViewer(QWidget *p_parent = nullptr);
|
||||
explicit WebViewer(const QColor &p_background,
|
||||
qreal p_zoomFactor,
|
||||
QWidget *p_parent = nullptr);
|
||||
|
||||
virtual ~WebViewer();
|
||||
|
||||
signals:
|
||||
void linkHovered(const QString &p_url);
|
||||
};
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user