mirror of
https://github.com/kovidgoyal/calibre.git
synced 2025-07-07 10:14:46 -04:00
Viewer: Allow right clicking in the lookup panel to zoom in/out. Fixes #1857989 [Increase font size of "Lookup" pop-up [enhancement]](https://bugs.launchpad.net/calibre/+bug/1857989)
This commit is contained in:
parent
4bc07eba10
commit
b966cdcef7
@ -20,7 +20,7 @@ from PyQt5.QtWebEngineWidgets import (
|
||||
from calibre import prints, random_user_agent
|
||||
from calibre.constants import cache_dir
|
||||
from calibre.gui2 import error_dialog
|
||||
from calibre.gui2.viewer.web_view import vprefs
|
||||
from calibre.gui2.viewer.web_view import apply_font_settings, vprefs
|
||||
from calibre.gui2.webengine import create_script, insert_scripts, secure_webengine
|
||||
from calibre.gui2.widgets2 import Dialog
|
||||
|
||||
@ -209,6 +209,26 @@ class Page(QWebEnginePage):
|
||||
prints('%s: %s:%s: %s' % (prefix, source_id, linenumber, msg), file=sys.stderr)
|
||||
sys.stderr.flush()
|
||||
|
||||
def zoom_in(self):
|
||||
self.setZoomFactor(min(self.zoomFactor() + 0.25, 5))
|
||||
|
||||
def zoom_out(self):
|
||||
self.setZoomFactor(max(0.25, self.zoomFactor() - 0.25))
|
||||
|
||||
def default_zoom(self):
|
||||
self.setZoomFactor(1)
|
||||
|
||||
|
||||
class View(QWebEngineView):
|
||||
|
||||
def contextMenuEvent(self, ev):
|
||||
menu = self.page().createStandardContextMenu()
|
||||
menu.addSeparator()
|
||||
menu.addAction(_('Zoom in'), self.page().zoom_in)
|
||||
menu.addAction(_('Zoom out'), self.page().zoom_out)
|
||||
menu.addAction(_('Default zoom'), self.page().default_zoom)
|
||||
menu.exec_(ev.globalPos())
|
||||
|
||||
|
||||
class Lookup(QWidget):
|
||||
|
||||
@ -226,8 +246,9 @@ class Lookup(QWidget):
|
||||
self.source_box = sb = QComboBox(self)
|
||||
self.label = la = QLabel(_('Lookup &in:'))
|
||||
h.addWidget(la), h.addWidget(sb), la.setBuddy(sb)
|
||||
self.view = QWebEngineView(self)
|
||||
self.view = View(self)
|
||||
self._page = Page(create_profile(), self.view)
|
||||
apply_font_settings(self._page)
|
||||
secure_webengine(self._page, for_viewer=True)
|
||||
self.view.setPage(self._page)
|
||||
l.addWidget(self.view)
|
||||
|
@ -504,7 +504,7 @@ class WebView(RestartingWebEngineView):
|
||||
# TODO: Add UI for this
|
||||
ss = vprefs['session_data'].get('zoom_step_size') or 20
|
||||
amt = (ss / 100) * steps
|
||||
self._page.setZoomFactor(self._page.zoomFactor() + amt)
|
||||
self._page.setZoomFactor(max(0.25, min(self._page.zoomFactor() + amt, 5)))
|
||||
|
||||
def render_process_died(self):
|
||||
if self.dead_renderer_error_shown:
|
||||
|
Loading…
x
Reference in New Issue
Block a user