mirror of
https://github.com/kovidgoyal/calibre.git
synced 2025-07-08 10:44:09 -04:00
E-book viewer: Allow scrolling of the ToC, highlights, bookmarks, etc. with touch gestures. Fixes #1963875 [Make the Viewer TOC touch friendly](https://bugs.launchpad.net/calibre/+bug/1963875)
This commit is contained in:
parent
894f7d547a
commit
9a73323fa3
@ -5,9 +5,9 @@
|
||||
import json
|
||||
from operator import itemgetter
|
||||
from qt.core import (
|
||||
QAction, QComboBox, QGridLayout, QHBoxLayout, QIcon, QInputDialog,
|
||||
QItemSelectionModel, QLabel, QListWidget, QListWidgetItem, QPushButton, Qt,
|
||||
QWidget, pyqtSignal
|
||||
QAbstractItemView, QAction, QComboBox, QGridLayout, QHBoxLayout, QIcon,
|
||||
QInputDialog, QItemSelectionModel, QLabel, QListWidget, QListWidgetItem,
|
||||
QPushButton, QScroller, Qt, QWidget, pyqtSignal
|
||||
)
|
||||
|
||||
from calibre.gui2 import choose_files, choose_save_file
|
||||
@ -32,6 +32,8 @@ class BookmarksList(QListWidget):
|
||||
self.addAction(ac)
|
||||
self.ac_delete = ac = QAction(QIcon(I('trash.png')), _('Remove this bookmark'), self)
|
||||
self.addAction(ac)
|
||||
QScroller.grabGesture(self.viewport(), QScroller.ScrollerGestureType.TouchGesture)
|
||||
self.setVerticalScrollMode(QAbstractItemView.ScrollMode.ScrollPerPixel)
|
||||
|
||||
@property
|
||||
def current_non_removed_item(self):
|
||||
|
@ -10,7 +10,7 @@ from qt.core import (
|
||||
QAbstractItemView, QColor, QDialog, QFont, QHBoxLayout, QIcon, QImage,
|
||||
QItemSelectionModel, QKeySequence, QLabel, QMenu, QPainter, QPainterPath,
|
||||
QPalette, QPixmap, QPushButton, QRect, QSizePolicy, QStyle, Qt, QTextCursor,
|
||||
QTextEdit, QTreeWidget, QTreeWidgetItem, QVBoxLayout, QWidget, pyqtSignal
|
||||
QTextEdit, QTreeWidget, QTreeWidgetItem, QVBoxLayout, QWidget, pyqtSignal, QScroller
|
||||
)
|
||||
|
||||
from calibre.constants import (
|
||||
@ -175,6 +175,8 @@ class Highlights(QTreeWidget):
|
||||
self.uuid_map = {}
|
||||
self.section_font = QFont(self.font())
|
||||
self.section_font.setItalic(True)
|
||||
QScroller.grabGesture(self.viewport(), QScroller.ScrollerGestureType.TouchGesture)
|
||||
self.setVerticalScrollMode(QAbstractItemView.ScrollMode.ScrollPerPixel)
|
||||
|
||||
def show_context_menu(self, point):
|
||||
index = self.indexAt(point)
|
||||
|
@ -6,8 +6,9 @@ import regex
|
||||
from collections import Counter, OrderedDict
|
||||
from html import escape
|
||||
from qt.core import (
|
||||
QCheckBox, QComboBox, QFont, QHBoxLayout, QIcon, QLabel, Qt, QToolButton,
|
||||
QTreeWidget, QTreeWidgetItem, QVBoxLayout, QWidget, pyqtSignal
|
||||
QAbstractItemView, QCheckBox, QComboBox, QFont, QHBoxLayout, QIcon, QLabel,
|
||||
QScroller, Qt, QToolButton, QTreeWidget, QTreeWidgetItem, QVBoxLayout, QWidget,
|
||||
pyqtSignal
|
||||
)
|
||||
from threading import Thread
|
||||
|
||||
@ -471,6 +472,8 @@ class Results(QTreeWidget): # {{{
|
||||
self.section_map = {}
|
||||
self.search_results = []
|
||||
self.item_map = {}
|
||||
QScroller.grabGesture(self.viewport(), QScroller.ScrollerGestureType.TouchGesture)
|
||||
self.setVerticalScrollMode(QAbstractItemView.ScrollMode.ScrollPerPixel)
|
||||
|
||||
def current_item_changed(self, current, previous):
|
||||
if current is not None:
|
||||
|
@ -4,11 +4,10 @@
|
||||
|
||||
import re
|
||||
from functools import partial
|
||||
|
||||
from qt.core import (
|
||||
QApplication, QFont, QHBoxLayout, QIcon, QMenu, QModelIndex, QStandardItem,
|
||||
QStandardItemModel, QStyledItemDelegate, Qt, QToolButton, QToolTip, QTreeView,
|
||||
QWidget, pyqtSignal, QEvent
|
||||
QAbstractItemView, QApplication, QEvent, QFont, QHBoxLayout, QIcon, QMenu,
|
||||
QModelIndex, QScroller, QStandardItem, QStandardItemModel, QStyledItemDelegate,
|
||||
Qt, QToolButton, QToolTip, QTreeView, QWidget, pyqtSignal
|
||||
)
|
||||
|
||||
from calibre.gui2 import error_dialog
|
||||
@ -48,6 +47,8 @@ class TOCView(QTreeView):
|
||||
self.setContextMenuPolicy(Qt.ContextMenuPolicy.CustomContextMenu)
|
||||
self.customContextMenuRequested.connect(self.context_menu)
|
||||
QApplication.instance().palette_changed.connect(self.set_style_sheet, type=Qt.ConnectionType.QueuedConnection)
|
||||
QScroller.grabGesture(self.viewport(), QScroller.ScrollerGestureType.TouchGesture)
|
||||
self.setVerticalScrollMode(QAbstractItemView.ScrollMode.ScrollPerPixel)
|
||||
|
||||
def setModel(self, model):
|
||||
QTreeView.setModel(self, model)
|
||||
|
Loading…
x
Reference in New Issue
Block a user