Add TOC to context menu in distraction free mode
This commit is contained in:
		| @@ -556,6 +556,9 @@ class MainUI(QtWidgets.QMainWindow, mainwindow.Ui_MainWindow): | ||||
|         self.lib_ref.update_proxymodels() | ||||
|         self.lib_ref.generate_library_tags() | ||||
|  | ||||
|         self.statusMessage.setText( | ||||
|             str(self.lib_ref.item_proxy_model.rowCount()) + ' books') | ||||
|  | ||||
|         if not self.settings['perform_culling']: | ||||
|             self.load_all_covers() | ||||
|  | ||||
|   | ||||
| @@ -678,11 +678,17 @@ class PliantQGraphicsView(QtWidgets.QGraphicsView): | ||||
|  | ||||
|     def generate_graphicsview_context_menu(self, position): | ||||
|         contextMenu = QtWidgets.QMenu() | ||||
|         viewSubMenu = contextMenu.addMenu('View') | ||||
|  | ||||
|         saveAction = contextMenu.addAction( | ||||
|             self.main_window.QImageFactory.get_image('filesaveas'), | ||||
|             self._translate('PliantQGraphicsView', 'Save page as...')) | ||||
|         toggleAction = contextMenu.addAction( | ||||
|             self.main_window.QImageFactory.get_image('visibility'), | ||||
|             self._translate('PliantQGraphicsView', 'Toggle distraction free mode')) | ||||
|  | ||||
|         viewSubMenu = contextMenu.addMenu('View') | ||||
|         viewSubMenu.setIcon( | ||||
|             self.main_window.QImageFactory.get_image('mail-thread-watch')) | ||||
|  | ||||
|         zoominAction = viewSubMenu.addAction( | ||||
|             self.main_window.QImageFactory.get_image('zoom-in'), | ||||
| @@ -704,9 +710,17 @@ class PliantQGraphicsView(QtWidgets.QGraphicsView): | ||||
|             self.main_window.QImageFactory.get_image('zoom-original'), | ||||
|             self._translate('PliantQGraphicsView', 'Original size (O)')) | ||||
|  | ||||
|         toggleAction = contextMenu.addAction( | ||||
|             self.main_window.QImageFactory.get_image('visibility'), | ||||
|             self._translate('PliantQGraphicsView', 'Toggle distraction free mode')) | ||||
|         if not self.main_window.settings['show_bars']: | ||||
|             tocSubMenu = contextMenu.addMenu( | ||||
|                 self._translate('PliantQGraphicsView', 'Table of Contents')) | ||||
|             tocSubMenu.setIcon( | ||||
|                 self.main_window.QImageFactory.get_image('tableofcontents')) | ||||
|  | ||||
|             current_toc = [i[0] for i in self.parent.metadata['content']] | ||||
|             for count, i in enumerate(current_toc): | ||||
|                 this_action = tocSubMenu.addAction(i) | ||||
|                 this_action.setData(count) | ||||
|                 this_action.triggered.connect(self.set_chapter) | ||||
|  | ||||
|         action = contextMenu.exec_(self.sender().mapToGlobal(position)) | ||||
|  | ||||
| @@ -733,6 +747,9 @@ class PliantQGraphicsView(QtWidgets.QGraphicsView): | ||||
|         if action in view_action_dict: | ||||
|             self.main_window.modify_comic_view(view_action_dict[action]) | ||||
|  | ||||
|     def set_chapter(self): | ||||
|         self.common_functions.set_chapter(self.sender().data()) | ||||
|  | ||||
|     def closeEvent(self, *args): | ||||
|         # In case the program is closed when a contentView is fullscreened | ||||
|         self.main_window.closeEvent() | ||||
| @@ -805,25 +822,37 @@ class PliantQTextBrowser(QtWidgets.QTextBrowser): | ||||
|         selected_word = self.textCursor().selection() | ||||
|         selected_word = selected_word.toPlainText() | ||||
|  | ||||
|         context_menu = QtWidgets.QMenu() | ||||
|         contextMenu = QtWidgets.QMenu() | ||||
|  | ||||
|         defineAction = 'Caesar si viveret, ad remum dareris' | ||||
|         if selected_word and selected_word != '': | ||||
|             selected_word = selected_word.split()[0] | ||||
|             define_string = self._translate('PliantQTextBrowser', 'Define') | ||||
|             defineAction = context_menu.addAction( | ||||
|             defineAction = contextMenu.addAction( | ||||
|                 self.main_window.QImageFactory.get_image('view-readermode'), | ||||
|                 f'{define_string} "{selected_word}"') | ||||
|  | ||||
|         searchAction = context_menu.addAction( | ||||
|         searchAction = contextMenu.addAction( | ||||
|             self.main_window.QImageFactory.get_image('search'), | ||||
|             self._translate('PliantQTextBrowser', 'Search')) | ||||
|  | ||||
|         toggleAction = context_menu.addAction( | ||||
|         toggleAction = contextMenu.addAction( | ||||
|             self.main_window.QImageFactory.get_image('visibility'), | ||||
|             self._translate('PliantQTextBrowser', 'Toggle distraction free mode')) | ||||
|  | ||||
|         action = context_menu.exec_(self.sender().mapToGlobal(position)) | ||||
|         if not self.main_window.settings['show_bars']: | ||||
|             tocSubMenu = contextMenu.addMenu( | ||||
|                 self._translate('PliantQTextBrowser', 'Table of Contents')) | ||||
|             tocSubMenu.setIcon( | ||||
|                 self.main_window.QImageFactory.get_image('tableofcontents')) | ||||
|  | ||||
|             current_toc = [i[0] for i in self.parent.metadata['content']] | ||||
|             for count, i in enumerate(current_toc): | ||||
|                 this_action = tocSubMenu.addAction(i) | ||||
|                 this_action.setData(count) | ||||
|                 this_action.triggered.connect(self.set_chapter) | ||||
|  | ||||
|         action = contextMenu.exec_(self.sender().mapToGlobal(position)) | ||||
|  | ||||
|         if action == defineAction: | ||||
|             self.main_window.definitionDialog.find_definition(selected_word) | ||||
| @@ -832,6 +861,9 @@ class PliantQTextBrowser(QtWidgets.QTextBrowser): | ||||
|         if action == toggleAction: | ||||
|             self.main_window.toggle_distraction_free() | ||||
|  | ||||
|     def set_chapter(self): | ||||
|         self.common_functions.set_chapter(self.sender().data()) | ||||
|  | ||||
|     def closeEvent(self, *args): | ||||
|         self.main_window.closeEvent() | ||||
|  | ||||
| @@ -907,6 +939,10 @@ class PliantWidgetsCommonFunctions(): | ||||
|             if not was_button_pressed: | ||||
|                 self.pw.ignore_wheel_event = True | ||||
|  | ||||
|     def set_chapter(self, chapter_index): | ||||
|         self.main_window.bookToolBar.tocBox.setCurrentIndex( | ||||
|             chapter_index) | ||||
|  | ||||
|  | ||||
| class PliantDockWidget(QtWidgets.QDockWidget): | ||||
|     def __init__(self, parent=None): | ||||
|   | ||||
| @@ -1,5 +1,7 @@ | ||||
| <RCC> | ||||
|   <qresource prefix="images"> | ||||
|     <file>DarkIcons/tableofcontents.svg</file> | ||||
|     <file>LightIcons/tableofcontents.svg</file> | ||||
|     <file>DarkIcons/filesaveas.svg</file> | ||||
|     <file>LightIcons/filesaveas.svg</file> | ||||
|     <file>DarkIcons/search.svg</file> | ||||
|   | ||||
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
		Reference in New Issue
	
	Block a user