added shortcuts to zoom and page change

This commit is contained in:
Bachir Soussi Chiadmi
2017-06-05 19:33:40 +02:00
parent a798007dde
commit 556a638d4e
+52 -8
View File
@@ -12,7 +12,7 @@
import os, re
# sys,
from PyQt5 import QtCore
from PyQt5.QtCore import QUrl, QSettings, QSizeF
from PyQt5.QtCore import QUrl, QSettings, QSizeF, Qt
from PyQt5.QtGui import QKeySequence, QFont
from PyQt5.QtWidgets import QWidget, QTabWidget, QVBoxLayout, QHBoxLayout, QSplitter, QPlainTextEdit, QShortcut, QPushButton, QCheckBox, QSpinBox, QLabel
from PyQt5.QtWebKit import QWebSettings
@@ -89,9 +89,19 @@ class WebkitView(QWebView):
command = """document.documentElement.classList."""+togg+"""('"""+c+"""')"""
self.evaluateJS(command)
def zoom(self,z):
self.setZoomFactor(z/100)
# command = """
# var zoomLevel = """+str(z)+""" / 100;
# var elt = document.documentElement.querySelector("#pages");
# elt.style.webkitTransform = "scale(" + zoomLevel + ")";
# elt.style.webkitTransformOrigin = "0 0";
# """
# self.evaluateJS(command)
def changePage(self,p=0):
command = """
var pageNumber = """+str(p)+""";
var pageNumber = """+str(p-1)+""";
var target = document.documentElement.querySelectorAll('.paper')[pageNumber];
var offsetTop = target.offsetTop;
var offsetLeft = target.offsetLeft;
@@ -161,17 +171,30 @@ class WebViewToolBar(QWidget):
# zoom
self.hbox.addWidget(QLabel("Zoom:"))
self.zoom = QSpinBox(self)
# TODO: action
self.zoom.setMinimum(-100)
self.zoom.setMaximum(200)
self.zoom.setSingleStep(10)
self.zoom.setValue(90)
self.zoom.valueChanged.connect(self.onZoomChanged)
self.hbox.addWidget(self.zoom)
self.zoomon_shortcut = QShortcut(QKeySequence(Qt.ControlModifier+Qt.Key_Plus), self)
self.zoomon_shortcut.activated.connect(self.onZoomOn)
self.zoomout_shortcut = QShortcut(QKeySequence(Qt.ControlModifier+Qt.Key_Minus), self)
self.zoomout_shortcut.activated.connect(self.onZoomOut)
# page
self.gotopage = QLabel("Go to Page: /"+self.parent.core.docsettings['np'])
self.hbox.addWidget(self.gotopage)
self.page = QSpinBox()
self.page.setMinimum(0)
self.page = QSpinBox(self)
self.page.setMinimum(1)
self.page.setMaximum(int(self.parent.core.docsettings['np']))
self.page.valueChanged.connect(self.onChangePage)
self.hbox.addWidget(self.page)
self.pagenext_shortcut = QShortcut(QKeySequence(Qt.ControlModifier+Qt.ShiftModifier+Qt.Key_Right), self)
self.pagenext_shortcut.activated.connect(self.onNextPage)
self.pageprev_shortcut = QShortcut(QKeySequence(Qt.ControlModifier+Qt.ShiftModifier+Qt.Key_Left), self)
self.pageprev_shortcut.activated.connect(self.onPrevPage)
self.addpage = QPushButton("&Add Page", self)
self.addpage.clicked.connect(self.onAddPage)
@@ -224,10 +247,30 @@ class WebViewToolBar(QWidget):
self.parent.webkitview.toggleDocClass('facing', self.facing.isChecked())
self.recToolbarState('facing', self.facing.isChecked())
def onZoomChanged(self,i):
# print("onZoomChanged : "+str(i))
self.parent.webkitview.zoom(i)
def onZoomOn(self):
# print("onZoomOn")
self.zoom.setValue(self.zoom.value()+self.zoom.singleStep())
def onZoomOut(self):
# print("onZoomOut")
self.zoom.setValue(self.zoom.value()-self.zoom.singleStep())
def onChangePage(self, i):
print("onChangePage : "+str(i))
# print("onChangePage : "+str(i))
self.parent.webkitview.changePage(i)
def onNextPage(self):
# print('onNextPage')
self.page.setValue(self.page.value()+self.page.singleStep())
def onPrevPage(self):
# print('onPrevPage')
self.page.setValue(self.page.value()-self.page.singleStep())
def onAddPage(self):
# print("onAddPage")
self.parent.core.addPage()
@@ -267,6 +310,7 @@ class WebViewToolBar(QWidget):
self.parent.webkitview.toggleDocClass('spread', self.spread.isChecked())
self.gotopage.setText("Go to Page: /"+str(self.parent.core.docsettings['np']))
self.page.setMaximum(int(self.parent.core.docsettings['np']))
self.parent.webkitview.changePage(self.page.value())
# ______ ___ __
# / ____/___/ (_) /_____ _____
@@ -286,8 +330,8 @@ class CodeEditor(QPlainTextEdit):
self.textChanged.connect(self.onTextChanged)
self.shortcut = QShortcut(QKeySequence("Ctrl+s"), self)
self.shortcut.activated.connect(self.save)
self.save_shortcut = QShortcut(QKeySequence("Ctrl+s"), self)
self.save_shortcut.activated.connect(self.save)
def setText(self):
# try: