Help/litehtml: Support scaling

Scale the paint area for the HTML document

Change-Id: I75aa5f2bf057df7b2b160b2a005172ff88dbb2b7
Reviewed-by: hjk <hjk@qt.io>
This commit is contained in:
Eike Ziller
2019-09-17 12:33:01 +02:00
parent 93ed44bfea
commit 12ea33446d
4 changed files with 93 additions and 24 deletions

View File

@@ -65,6 +65,7 @@ LiteHtmlHelpViewer::LiteHtmlHelpViewer(QWidget *parent)
, m_viewer(new QLiteHtmlWidget)
{
m_viewer->setResourceHandler([](const QUrl &url) { return getData(url); });
m_viewer->viewport()->installEventFilter(this);
connect(m_viewer, &QLiteHtmlWidget::linkClicked, this, &LiteHtmlHelpViewer::setSource);
connect(m_viewer,
&QLiteHtmlWidget::contextMenuRequested,
@@ -99,28 +100,28 @@ void LiteHtmlHelpViewer::setViewerFont(const QFont &newFont)
void LiteHtmlHelpViewer::scaleUp()
{
// TODO
setScale(scale() * 1.1);
}
void LiteHtmlHelpViewer::scaleDown()
{
// TODO
setScale(scale() * .9);
}
void LiteHtmlHelpViewer::resetScale()
{
// TODO
m_viewer->setZoomFactor(1);
}
qreal LiteHtmlHelpViewer::scale() const
{
// TODO
return 1;
return m_viewer->zoomFactor();
}
void LiteHtmlHelpViewer::setScale(qreal scale)
{
// TODO
// interpret 0 as "default"
m_viewer->setZoomFactor(scale == 0 ? qreal(1) : scale);
}
QString LiteHtmlHelpViewer::title() const
@@ -253,6 +254,16 @@ void LiteHtmlHelpViewer::print(QPrinter *printer)
// TODO
}
bool LiteHtmlHelpViewer::eventFilter(QObject *src, QEvent *e)
{
if (isScrollWheelZoomingEnabled() && e->type() == QEvent::Wheel) {
auto we = static_cast<QWheelEvent *>(e);
if (we->modifiers() == Qt::ControlModifier)
return true;
}
return HelpViewer::eventFilter(src, e);
}
void LiteHtmlHelpViewer::setSourceInternal(const QUrl &url, Utils::optional<int> vscroll)
{
slotLoadStarted();