From 5e3987dc0426e6a28d248ab6725eefe96dffa0aa Mon Sep 17 00:00:00 2001 From: BasioMeusPuga Date: Thu, 17 Jan 2019 23:03:28 +0530 Subject: [PATCH] Improve comic view --- lector/__main__.py | 4 ++++ lector/contentwidgets.py | 22 ++++++++++------------ lector/widgets.py | 12 ++++++++---- 3 files changed, 22 insertions(+), 16 deletions(-) diff --git a/lector/__main__.py b/lector/__main__.py index bfc8343..36dae67 100755 --- a/lector/__main__.py +++ b/lector/__main__.py @@ -779,6 +779,10 @@ class MainUI(QtWidgets.QMainWindow, mainwindow.Ui_MainWindow): #____________________________________________ def change_page_view(self, key_pressed=False): + # Set zoom mode to best fit to + # make the transition less jarring + self.comic_profile['zoom_mode'] = 'bestFit' + # Toggle Double page mode / manga mode on keypress if key_pressed == QtCore.Qt.Key_D: self.bookToolBar.doublePageButton.setChecked( diff --git a/lector/contentwidgets.py b/lector/contentwidgets.py index 0ae45ad..30fb592 100644 --- a/lector/contentwidgets.py +++ b/lector/contentwidgets.py @@ -220,6 +220,9 @@ class PliantQGraphicsView(QtWidgets.QGraphicsView): self.setScene(graphicsScene) self.show() + # This prevents a partial page scroll on first load + self.verticalScrollBar().setValue(0) + def wheelEvent(self, event): self.common_functions.wheelEvent(event) @@ -281,29 +284,24 @@ class PliantQGraphicsView(QtWidgets.QGraphicsView): def generate_graphicsview_context_menu(self, position): contextMenu = QtWidgets.QMenu() - - saveAction = contextMenu.addAction( - self.main_window.QImageFactory.get_image('filesaveas'), - self._translate('PliantQGraphicsView', 'Save page as...')) - fsToggleAction = dfToggleAction = 'Caesar si viveret, ad remum dareris' if self.parent.is_fullscreen: fsToggleAction = contextMenu.addAction( self.main_window.QImageFactory.get_image('view-fullscreen'), self._translate('PliantQGraphicsView', 'Exit fullscreen')) - else: - if self.main_window.settings['show_bars']: - distraction_free_prompt = self._translate( - 'PliantQGraphicsView', 'Distraction Free mode') - else: - distraction_free_prompt = self._translate( - 'PliantQGraphicsView', 'Exit Distraction Free mode') + elif not self.main_window.settings['show_bars']: + distraction_free_prompt = self._translate( + 'PliantQGraphicsView', 'Exit Distraction Free mode') dfToggleAction = contextMenu.addAction( self.main_window.QImageFactory.get_image('visibility'), distraction_free_prompt) + saveAction = contextMenu.addAction( + self.main_window.QImageFactory.get_image('filesaveas'), + self._translate('PliantQGraphicsView', 'Save page as...')) + view_submenu_string = self._translate('PliantQGraphicsView', 'View') viewSubMenu = contextMenu.addMenu(view_submenu_string) viewSubMenu.setIcon( diff --git a/lector/widgets.py b/lector/widgets.py index a48a937..580ff20 100644 --- a/lector/widgets.py +++ b/lector/widgets.py @@ -116,11 +116,15 @@ class Tab(QtWidgets.QWidget): self.main_window.settings['scroll_speed']) if self.main_window.settings['hide_scrollbars']: - self.contentView.setHorizontalScrollBarPolicy(QtCore.Qt.ScrollBarAlwaysOff) - self.contentView.setVerticalScrollBarPolicy(QtCore.Qt.ScrollBarAlwaysOff) + self.contentView.setHorizontalScrollBarPolicy( + QtCore.Qt.ScrollBarAlwaysOff) + self.contentView.setVerticalScrollBarPolicy( + QtCore.Qt.ScrollBarAlwaysOff) else: - self.contentView.setHorizontalScrollBarPolicy(QtCore.Qt.ScrollBarAsNeeded) - self.contentView.setVerticalScrollBarPolicy(QtCore.Qt.ScrollBarAsNeeded) + self.contentView.setHorizontalScrollBarPolicy( + QtCore.Qt.ScrollBarAsNeeded) + self.contentView.setVerticalScrollBarPolicy( + QtCore.Qt.ScrollBarAsNeeded) # Create a common dock for annotations and bookmarks # And add a vertical layout to it for requisite widgets