Add option to include TOC with bookmarks
Shift dock positions
This commit is contained in:
@@ -150,7 +150,12 @@ class Tab(QtWidgets.QWidget):
|
||||
|
||||
# Create the dock widget for context specific display
|
||||
self.bookmarkDock = PliantDockWidget(self.main_window, 'bookmarks', self.contentView)
|
||||
self.bookmarkDock.setWindowTitle(self._translate('Tab', 'Bookmarks'))
|
||||
|
||||
title_string = self._translate('Tab', 'Bookmarks')
|
||||
if self.main_window.settings['toc_with_bookmarks']:
|
||||
title_string = self._translate('Tab', 'TOC + Bookmarks')
|
||||
self.bookmarkDock.setWindowTitle(title_string)
|
||||
|
||||
self.bookmarkDock.setFeatures(QtWidgets.QDockWidget.DockWidgetClosable)
|
||||
self.bookmarkDock.hide()
|
||||
|
||||
@@ -505,11 +510,11 @@ class Tab(QtWidgets.QWidget):
|
||||
|
||||
# In case no parent item exists
|
||||
bookmarkParent = QtGui.QStandardItem()
|
||||
bookmarkParent.setData(True, QtCore.Qt.UserRole + 10) # Is Parent
|
||||
bookmarkParent.setFlags(bookmarkParent.flags() & ~QtCore.Qt.ItemIsEditable)
|
||||
chapter_name = self.metadata['content'][chapter - 1][0]
|
||||
bookmarkParent.setData(True, QtCore.Qt.UserRole + 10) # Is Parent
|
||||
bookmarkParent.setFlags(bookmarkParent.flags() & ~QtCore.Qt.ItemIsEditable) # Is Editable
|
||||
chapter_name = self.metadata['content'][chapter - 1][0] # Chapter Name
|
||||
bookmarkParent.setData(chapter_name, QtCore.Qt.DisplayRole)
|
||||
bookmarkParent.setData(chapter, QtCore.Qt.UserRole)
|
||||
bookmarkParent.setData(chapter, QtCore.Qt.UserRole) # Chapter Number
|
||||
|
||||
bookmarkParent.appendRow(bookmark)
|
||||
self.bookmarkModel.appendRow(bookmarkParent)
|
||||
@@ -521,9 +526,10 @@ class Tab(QtWidgets.QWidget):
|
||||
if not index.isValid():
|
||||
return
|
||||
|
||||
is_parent = self.bookmarkProxyModel.data(
|
||||
index, QtCore.Qt.UserRole + 10)
|
||||
is_parent = self.bookmarkProxyModel.data(index, QtCore.Qt.UserRole + 10)
|
||||
if is_parent:
|
||||
chapter_number = self.bookmarkProxyModel.data(index, QtCore.Qt.UserRole)
|
||||
self.main_window.bookToolBar.tocBox.setCurrentIndex(chapter_number - 1)
|
||||
return
|
||||
|
||||
chapter = self.bookmarkProxyModel.data(index, QtCore.Qt.UserRole)
|
||||
@@ -535,6 +541,16 @@ class Tab(QtWidgets.QWidget):
|
||||
|
||||
def generate_bookmark_model(self):
|
||||
self.bookmarkModel = QtGui.QStandardItemModel(self)
|
||||
|
||||
if self.main_window.settings['toc_with_bookmarks']:
|
||||
for chapter_number, i in enumerate(self.metadata['content']):
|
||||
chapterItem = QtGui.QStandardItem()
|
||||
chapterItem.setData(i[0], QtCore.Qt.DisplayRole) # Display name
|
||||
chapterItem.setData(chapter_number + 1, QtCore.Qt.UserRole) # Chapter Number
|
||||
chapterItem.setData(True, QtCore.Qt.UserRole + 10) # Is Parent
|
||||
chapterItem.setFlags(chapterItem.flags() & ~QtCore.Qt.ItemIsEditable) # Is Editable
|
||||
self.bookmarkModel.appendRow(chapterItem)
|
||||
|
||||
for i in self.metadata['bookmarks'].items():
|
||||
description = i[1]['description']
|
||||
chapter = i[1]['chapter']
|
||||
@@ -568,8 +584,7 @@ class Tab(QtWidgets.QWidget):
|
||||
if not index.isValid():
|
||||
return
|
||||
|
||||
is_parent = self.bookmarkProxyModel.data(
|
||||
index, QtCore.Qt.UserRole + 10)
|
||||
is_parent = self.bookmarkProxyModel.data(index, QtCore.Qt.UserRole + 10)
|
||||
if is_parent:
|
||||
return
|
||||
|
||||
@@ -614,7 +629,8 @@ class Tab(QtWidgets.QWidget):
|
||||
def sneaky_exit(self):
|
||||
self.contentView.hide()
|
||||
self.main_window.closeEvent()
|
||||
|
||||
|
||||
|
||||
class PliantDockWidget(QtWidgets.QDockWidget):
|
||||
def __init__(self, main_window, intended_for, contentView, parent=None):
|
||||
super(PliantDockWidget, self).__init__()
|
||||
@@ -631,17 +647,17 @@ class PliantDockWidget(QtWidgets.QDockWidget):
|
||||
self.contentView.viewport().rect().topLeft())
|
||||
|
||||
desktop_size = QtWidgets.QDesktopWidget().screenGeometry()
|
||||
dock_y = viewport_topRight.y() + (viewport_height * .10)
|
||||
dock_height = viewport_height * .80
|
||||
dock_y = viewport_topRight.y() # + (viewport_height * .10)
|
||||
dock_height = viewport_height * .999
|
||||
|
||||
if self.intended_for == 'bookmarks':
|
||||
dock_width = desktop_size.width() // 5.5
|
||||
dock_x = viewport_topRight.x() - dock_width + 1
|
||||
dock_x = viewport_topLeft.x()
|
||||
self.main_window.bookToolBar.bookmarkButton.setChecked(True)
|
||||
|
||||
elif self.intended_for == 'annotations':
|
||||
dock_width = desktop_size.width() // 5.5
|
||||
dock_x = viewport_topLeft.x()
|
||||
dock_x = viewport_topRight.x() - dock_width + 1
|
||||
self.main_window.bookToolBar.annotationButton.setChecked(True)
|
||||
|
||||
elif self.intended_for == 'notes':
|
||||
|
Reference in New Issue
Block a user