Add "Zoom" setting to the Help font settings

If the scrollWheelZooming is enabled, this
setting will get updated when using scroll wheel.
It will also be used when zooming in/out
by using keyboard shortcuts.

Fixes: QTCREATORBUG-25109
Fixes: QTCREATORBUG-25230
Fixes: QTCREATORBUG-23731
Change-Id: I9d22632b4c034ce236fa39dba074df4a2746ff84
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
This commit is contained in:
Jarek Kobus
2021-01-14 13:21:15 +01:00
parent aa974e6816
commit 291f46386f
20 changed files with 188 additions and 230 deletions

View File

@@ -29,6 +29,7 @@
#include <coreplugin/icore.h>
#include <utils/fadingindicator.h>
#include <utils/fileutils.h>
#include <utils/temporarydirectory.h>
@@ -91,6 +92,11 @@ HelpViewer::~HelpViewer()
restoreOverrideCursor();
}
void HelpViewer::setFontZoom(int percentage)
{
setScale(percentage / 100.0);
}
void HelpViewer::setScrollWheelZoomingEnabled(bool enabled)
{
m_scrollWheelZoomingEnabled = enabled;
@@ -172,14 +178,45 @@ void HelpViewer::home()
setSource(LocalHelpManager::homePage());
}
void HelpViewer::scaleUp()
{
incrementZoom(1);
}
void HelpViewer::scaleDown()
{
incrementZoom(-1);
}
void HelpViewer::resetScale()
{
applyZoom(100);
}
void HelpViewer::wheelEvent(QWheelEvent *event)
{
if (m_scrollWheelZoomingEnabled && event->modifiers() == Qt::ControlModifier) {
event->accept();
event->angleDelta().y() > 0 ? scaleUp() : scaleDown();
} else {
QWidget::wheelEvent(event);
const int deltaY = event->angleDelta().y();
if (deltaY != 0)
incrementZoom(deltaY / 120);
return;
}
QWidget::wheelEvent(event);
}
void HelpViewer::incrementZoom(int steps)
{
const int incrementPercentage = 10 * steps; // 10 percent increase by single step
const int previousZoom = LocalHelpManager::fontZoom();
applyZoom(previousZoom + incrementPercentage);
}
void HelpViewer::applyZoom(int percentage)
{
const int newZoom = LocalHelpManager::setFontZoom(percentage);
Utils::FadingIndicator::showText(this, QCoreApplication::translate("Help::HelpViewer",
"Zoom: %1%").arg(newZoom), Utils::FadingIndicator::SmallText);
}
void HelpViewer::slotLoadStarted()