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 import os, re
# sys, # sys,
from PyQt5 import QtCore 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.QtGui import QKeySequence, QFont
from PyQt5.QtWidgets import QWidget, QTabWidget, QVBoxLayout, QHBoxLayout, QSplitter, QPlainTextEdit, QShortcut, QPushButton, QCheckBox, QSpinBox, QLabel from PyQt5.QtWidgets import QWidget, QTabWidget, QVBoxLayout, QHBoxLayout, QSplitter, QPlainTextEdit, QShortcut, QPushButton, QCheckBox, QSpinBox, QLabel
from PyQt5.QtWebKit import QWebSettings from PyQt5.QtWebKit import QWebSettings
@@ -89,9 +89,19 @@ class WebkitView(QWebView):
command = """document.documentElement.classList."""+togg+"""('"""+c+"""')""" command = """document.documentElement.classList."""+togg+"""('"""+c+"""')"""
self.evaluateJS(command) 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): def changePage(self,p=0):
command = """ command = """
var pageNumber = """+str(p)+"""; var pageNumber = """+str(p-1)+""";
var target = document.documentElement.querySelectorAll('.paper')[pageNumber]; var target = document.documentElement.querySelectorAll('.paper')[pageNumber];
var offsetTop = target.offsetTop; var offsetTop = target.offsetTop;
var offsetLeft = target.offsetLeft; var offsetLeft = target.offsetLeft;
@@ -161,17 +171,30 @@ class WebViewToolBar(QWidget):
# zoom # zoom
self.hbox.addWidget(QLabel("Zoom:")) self.hbox.addWidget(QLabel("Zoom:"))
self.zoom = QSpinBox(self) 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.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 # page
self.gotopage = QLabel("Go to Page: /"+self.parent.core.docsettings['np']) self.gotopage = QLabel("Go to Page: /"+self.parent.core.docsettings['np'])
self.hbox.addWidget(self.gotopage) self.hbox.addWidget(self.gotopage)
self.page = QSpinBox() self.page = QSpinBox(self)
self.page.setMinimum(0) self.page.setMinimum(1)
self.page.setMaximum(int(self.parent.core.docsettings['np'])) self.page.setMaximum(int(self.parent.core.docsettings['np']))
self.page.valueChanged.connect(self.onChangePage) self.page.valueChanged.connect(self.onChangePage)
self.hbox.addWidget(self.page) 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 = QPushButton("&Add Page", self)
self.addpage.clicked.connect(self.onAddPage) self.addpage.clicked.connect(self.onAddPage)
@@ -224,10 +247,30 @@ class WebViewToolBar(QWidget):
self.parent.webkitview.toggleDocClass('facing', self.facing.isChecked()) self.parent.webkitview.toggleDocClass('facing', self.facing.isChecked())
self.recToolbarState('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): def onChangePage(self, i):
print("onChangePage : "+str(i)) # print("onChangePage : "+str(i))
self.parent.webkitview.changePage(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): def onAddPage(self):
# print("onAddPage") # print("onAddPage")
self.parent.core.addPage() self.parent.core.addPage()
@@ -267,6 +310,7 @@ class WebViewToolBar(QWidget):
self.parent.webkitview.toggleDocClass('spread', self.spread.isChecked()) self.parent.webkitview.toggleDocClass('spread', self.spread.isChecked())
self.gotopage.setText("Go to Page: /"+str(self.parent.core.docsettings['np'])) 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()) self.parent.webkitview.changePage(self.page.value())
# ______ ___ __ # ______ ___ __
# / ____/___/ (_) /_____ _____ # / ____/___/ (_) /_____ _____
@@ -286,8 +330,8 @@ class CodeEditor(QPlainTextEdit):
self.textChanged.connect(self.onTextChanged) self.textChanged.connect(self.onTextChanged)
self.shortcut = QShortcut(QKeySequence("Ctrl+s"), self) self.save_shortcut = QShortcut(QKeySequence("Ctrl+s"), self)
self.shortcut.activated.connect(self.save) self.save_shortcut.activated.connect(self.save)
def setText(self): def setText(self):
# try: # try: