Preliminary Navigation Bar

This commit is contained in:
BasioMeusPuga
2019-03-16 10:27:07 -04:00
parent 4cf0a9e78c
commit f358ad169c
8 changed files with 5864 additions and 5635 deletions

View File

@@ -76,6 +76,7 @@ class PliantQGraphicsView(QtWidgets.QGraphicsView):
self.ignore_wheel_event = False self.ignore_wheel_event = False
self.ignore_wheel_event_number = 0 self.ignore_wheel_event_number = 0
self.mousePosition = None
self.setMouseTracking(True) self.setMouseTracking(True)
self.setDragMode(QtWidgets.QGraphicsView.ScrollHandDrag) self.setDragMode(QtWidgets.QGraphicsView.ScrollHandDrag)
@@ -313,12 +314,26 @@ class PliantQGraphicsView(QtWidgets.QGraphicsView):
self.common_functions.update_model() self.common_functions.update_model()
def mouseMoveEvent(self, event): def mouseMoveEvent(self, event):
# Compare mouse positions
# This allows to filter out scrolling
# from a normal mouseEvent
QtWidgets.QGraphicsView.mouseMoveEvent(self, event)
if not self.mousePosition:
self.mousePosition = event.pos()
return
current_position = event.pos()
if current_position == self.mousePosition:
return
else:
self.mousePosition = event.pos()
self.parent.navBar.show()
if QtWidgets.QApplication.mouseButtons() == QtCore.Qt.NoButton: if QtWidgets.QApplication.mouseButtons() == QtCore.Qt.NoButton:
self.viewport().setCursor(QtCore.Qt.OpenHandCursor) self.viewport().setCursor(QtCore.Qt.OpenHandCursor)
else: else:
self.viewport().setCursor(QtCore.Qt.ClosedHandCursor) self.viewport().setCursor(QtCore.Qt.ClosedHandCursor)
self.parent.mouse_hide_timer.start(2000) self.parent.mouse_hide_timer.start(2000)
QtWidgets.QGraphicsView.mouseMoveEvent(self, event)
def generate_graphicsview_context_menu(self, position): def generate_graphicsview_context_menu(self, position):
contextMenu = QtWidgets.QMenu() contextMenu = QtWidgets.QMenu()
@@ -465,6 +480,7 @@ class PliantQTextBrowser(QtWidgets.QTextBrowser):
self.setMouseTracking(True) self.setMouseTracking(True)
self.verticalScrollBar().sliderMoved.connect( self.verticalScrollBar().sliderMoved.connect(
self.record_position) self.record_position)
self.mousePosition = None
self.ignore_wheel_event = False self.ignore_wheel_event = False
self.ignore_wheel_event_number = 0 self.ignore_wheel_event_number = 0
@@ -736,12 +752,27 @@ class PliantQTextBrowser(QtWidgets.QTextBrowser):
self.main_window.closeEvent() self.main_window.closeEvent()
def mouseMoveEvent(self, event): def mouseMoveEvent(self, event):
# Compare mouse positions
# This allows to filter out scrolling
# from a normal mouseEvent
QtWidgets.QTextBrowser.mouseMoveEvent(self, event)
if not self.mousePosition:
self.mousePosition = event.pos()
return
current_position = event.pos()
if current_position == self.mousePosition:
return
else:
self.mousePosition = event.pos()
self.parent.navBar.show()
if self.annotation_mode: if self.annotation_mode:
self.viewport().setCursor(QtCore.Qt.IBeamCursor) self.viewport().setCursor(QtCore.Qt.IBeamCursor)
else: else:
self.viewport().setCursor(QtCore.Qt.ArrowCursor) self.viewport().setCursor(QtCore.Qt.ArrowCursor)
self.parent.mouse_hide_timer.start(2000) self.parent.mouse_hide_timer.start(2000)
QtWidgets.QTextBrowser.mouseMoveEvent(self, event)
class PliantWidgetsCommonFunctions: class PliantWidgetsCommonFunctions:

View File

@@ -525,3 +525,66 @@ class PliantLabelWidget(QtWidgets.QLabel):
def mousePressEvent(self, QMouseEvent): def mousePressEvent(self, QMouseEvent):
self.navigate_to_search_result(self.index) self.navigate_to_search_result(self.index)
QtWidgets.QLabel.mousePressEvent(self, QMouseEvent) QtWidgets.QLabel.mousePressEvent(self, QMouseEvent)
class PliantNavBarWidget(QtWidgets.QDockWidget):
def __init__(self, main_window, contentView, parent):
super(PliantNavBarWidget, self).__init__(parent)
self.main_window = main_window
self.contentView = contentView
self.parent = parent
# Animate appearance
self.animation = QtCore.QPropertyAnimation(self, b'windowOpacity')
self.animation.setDuration(200)
self.animation.setStartValue(0)
self.animation.setEndValue(1)
background = self.main_window.settings['dialog_background']
self.setStyleSheet(
"QDockWidget {{background-color: {0}}}".format(background.name()))
self.backButton = QtWidgets.QPushButton('Previous')
self.nextButton = QtWidgets.QPushButton('Next')
self.tocBox = QtWidgets.QComboBox()
self.navLayout = QtWidgets.QHBoxLayout()
self.navLayout.addWidget(self.backButton)
self.navLayout.addWidget(self.tocBox)
self.navLayout.addWidget(self.nextButton)
self.navWidget = QtWidgets.QWidget()
self.navWidget.setLayout(self.navLayout)
self.setWidget(self.navWidget)
def showEvent(self, event):
# TODO
# See what happens when the size of the viewport is smaller
# than the size of the dock
viewport_bottomLeft = self.contentView.mapToGlobal(
self.contentView.viewport().rect().bottomLeft())
viewport_width = self.contentView.viewport().width()
# Dock dimensions
desktop_size = QtWidgets.QDesktopWidget().screenGeometry()
dock_width = desktop_size.width() // 4
dock_height = 60
dock_x = viewport_bottomLeft.x() + (viewport_width - dock_width) // 2
dock_y = viewport_bottomLeft.y() - 100
self.main_window.active_docks.append(self)
self.setGeometry(dock_x, dock_y, dock_width, dock_height)
# Rounded
radius = 15
path = QtGui.QPainterPath()
path.addRoundedRect(QtCore.QRectF(self.rect()), radius, radius)
try:
mask = QtGui.QRegion(path.toFillPolygon().toPolygon())
self.setMask(mask)
except TypeError: # Required for older versions of Qt
pass
self.animation.start()

View File

@@ -70,6 +70,22 @@
</property> </property>
</widget> </widget>
</item> </item>
<item>
<spacer name="horizontalSpacer_3">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeType">
<enum>QSizePolicy::Minimum</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
<item> <item>
<widget class="QSpinBox" name="readAtPercent"> <widget class="QSpinBox" name="readAtPercent">
<property name="minimum"> <property name="minimum">
@@ -177,6 +193,13 @@
</item> </item>
<item> <item>
<layout class="QHBoxLayout" name="horizontalLayout_16"> <layout class="QHBoxLayout" name="horizontalLayout_16">
<item>
<widget class="QCheckBox" name="navBarVisible">
<property name="text">
<string>Show NavBar</string>
</property>
</widget>
</item>
<item> <item>
<widget class="QCheckBox" name="autoCover"> <widget class="QCheckBox" name="autoCover">
<property name="toolTip"> <property name="toolTip">
@@ -241,6 +264,22 @@ Reopen book to see changes</string>
</property> </property>
</widget> </widget>
</item> </item>
<item>
<spacer name="horizontalSpacer_4">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeType">
<enum>QSizePolicy::Minimum</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
<item> <item>
<widget class="QSpinBox" name="smallIncrementBox"> <widget class="QSpinBox" name="smallIncrementBox">
<property name="toolTip"> <property name="toolTip">
@@ -267,6 +306,22 @@ Reopen book to see changes</string>
</property> </property>
</widget> </widget>
</item> </item>
<item>
<spacer name="horizontalSpacer_5">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeType">
<enum>QSizePolicy::Minimum</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
<item> <item>
<widget class="QSpinBox" name="largeIncrementBox"> <widget class="QSpinBox" name="largeIncrementBox">
<property name="toolTip"> <property name="toolTip">
@@ -308,7 +363,30 @@ Reopen book to see changes</string>
</widget> </widget>
</item> </item>
<item> <item>
<widget class="QComboBox" name="languageBox"/> <spacer name="horizontalSpacer_2">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeType">
<enum>QSizePolicy::Preferred</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
<item>
<widget class="QComboBox" name="languageBox">
<property name="sizePolicy">
<sizepolicy hsizetype="Minimum" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
</widget>
</item> </item>
</layout> </layout>
</item> </item>
@@ -327,6 +405,22 @@ Reopen book to see changes</string>
</property> </property>
</widget> </widget>
</item> </item>
<item>
<spacer name="horizontalSpacer_6">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeType">
<enum>QSizePolicy::Minimum</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
<item> <item>
<widget class="QSlider" name="scrollSpeedSlider"> <widget class="QSlider" name="scrollSpeedSlider">
<property name="sizePolicy"> <property name="sizePolicy">

File diff suppressed because it is too large Load Diff

View File

@@ -2,12 +2,13 @@
# Form implementation generated from reading ui file 'raw/settings.ui' # Form implementation generated from reading ui file 'raw/settings.ui'
# #
# Created by: PyQt5 UI code generator 5.11.3 # Created by: PyQt5 UI code generator 5.12
# #
# WARNING! All changes made in this file will be lost! # WARNING! All changes made in this file will be lost!
from PyQt5 import QtCore, QtGui, QtWidgets from PyQt5 import QtCore, QtGui, QtWidgets
class Ui_Dialog(object): class Ui_Dialog(object):
def setupUi(self, Dialog): def setupUi(self, Dialog):
Dialog.setObjectName("Dialog") Dialog.setObjectName("Dialog")
@@ -60,6 +61,8 @@ class Ui_Dialog(object):
self.readAtLabel.setAlignment(QtCore.Qt.AlignLeading|QtCore.Qt.AlignLeft|QtCore.Qt.AlignVCenter) self.readAtLabel.setAlignment(QtCore.Qt.AlignLeading|QtCore.Qt.AlignLeft|QtCore.Qt.AlignVCenter)
self.readAtLabel.setObjectName("readAtLabel") self.readAtLabel.setObjectName("readAtLabel")
self.horizontalLayout_14.addWidget(self.readAtLabel) self.horizontalLayout_14.addWidget(self.readAtLabel)
spacerItem = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Minimum)
self.horizontalLayout_14.addItem(spacerItem)
self.readAtPercent = QtWidgets.QSpinBox(self.groupBox) self.readAtPercent = QtWidgets.QSpinBox(self.groupBox)
self.readAtPercent.setMinimum(90) self.readAtPercent.setMinimum(90)
self.readAtPercent.setProperty("value", 95) self.readAtPercent.setProperty("value", 95)
@@ -108,6 +111,9 @@ class Ui_Dialog(object):
self.verticalLayout_2.addLayout(self.horizontalLayout_9) self.verticalLayout_2.addLayout(self.horizontalLayout_9)
self.horizontalLayout_16 = QtWidgets.QHBoxLayout() self.horizontalLayout_16 = QtWidgets.QHBoxLayout()
self.horizontalLayout_16.setObjectName("horizontalLayout_16") self.horizontalLayout_16.setObjectName("horizontalLayout_16")
self.navBarVisible = QtWidgets.QCheckBox(self.groupBox)
self.navBarVisible.setObjectName("navBarVisible")
self.horizontalLayout_16.addWidget(self.navBarVisible)
self.autoCover = QtWidgets.QCheckBox(self.groupBox) self.autoCover = QtWidgets.QCheckBox(self.groupBox)
self.autoCover.setObjectName("autoCover") self.autoCover.setObjectName("autoCover")
self.horizontalLayout_16.addWidget(self.autoCover) self.horizontalLayout_16.addWidget(self.autoCover)
@@ -136,6 +142,8 @@ class Ui_Dialog(object):
self.smallIncrementLabel = QtWidgets.QLabel(self.groupBox_2) self.smallIncrementLabel = QtWidgets.QLabel(self.groupBox_2)
self.smallIncrementLabel.setObjectName("smallIncrementLabel") self.smallIncrementLabel.setObjectName("smallIncrementLabel")
self.horizontalLayout_15.addWidget(self.smallIncrementLabel) self.horizontalLayout_15.addWidget(self.smallIncrementLabel)
spacerItem1 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Minimum)
self.horizontalLayout_15.addItem(spacerItem1)
self.smallIncrementBox = QtWidgets.QSpinBox(self.groupBox_2) self.smallIncrementBox = QtWidgets.QSpinBox(self.groupBox_2)
self.smallIncrementBox.setMinimum(4) self.smallIncrementBox.setMinimum(4)
self.smallIncrementBox.setMaximum(10) self.smallIncrementBox.setMaximum(10)
@@ -145,6 +153,8 @@ class Ui_Dialog(object):
self.largeIncrementLabel = QtWidgets.QLabel(self.groupBox_2) self.largeIncrementLabel = QtWidgets.QLabel(self.groupBox_2)
self.largeIncrementLabel.setObjectName("largeIncrementLabel") self.largeIncrementLabel.setObjectName("largeIncrementLabel")
self.horizontalLayout_15.addWidget(self.largeIncrementLabel) self.horizontalLayout_15.addWidget(self.largeIncrementLabel)
spacerItem2 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Minimum)
self.horizontalLayout_15.addItem(spacerItem2)
self.largeIncrementBox = QtWidgets.QSpinBox(self.groupBox_2) self.largeIncrementBox = QtWidgets.QSpinBox(self.groupBox_2)
self.largeIncrementBox.setMinimum(1) self.largeIncrementBox.setMinimum(1)
self.largeIncrementBox.setMaximum(10) self.largeIncrementBox.setMaximum(10)
@@ -166,7 +176,14 @@ class Ui_Dialog(object):
self.languageLabel.setAlignment(QtCore.Qt.AlignLeading|QtCore.Qt.AlignLeft|QtCore.Qt.AlignVCenter) self.languageLabel.setAlignment(QtCore.Qt.AlignLeading|QtCore.Qt.AlignLeft|QtCore.Qt.AlignVCenter)
self.languageLabel.setObjectName("languageLabel") self.languageLabel.setObjectName("languageLabel")
self.horizontalLayout_5.addWidget(self.languageLabel) self.horizontalLayout_5.addWidget(self.languageLabel)
spacerItem3 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Minimum)
self.horizontalLayout_5.addItem(spacerItem3)
self.languageBox = QtWidgets.QComboBox(self.groupBox_2) self.languageBox = QtWidgets.QComboBox(self.groupBox_2)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Fixed)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.languageBox.sizePolicy().hasHeightForWidth())
self.languageBox.setSizePolicy(sizePolicy)
self.languageBox.setObjectName("languageBox") self.languageBox.setObjectName("languageBox")
self.horizontalLayout_5.addWidget(self.languageBox) self.horizontalLayout_5.addWidget(self.languageBox)
self.horizontalLayout_8.addLayout(self.horizontalLayout_5) self.horizontalLayout_8.addLayout(self.horizontalLayout_5)
@@ -180,6 +197,8 @@ class Ui_Dialog(object):
self.scrollSpeedLabel.setSizePolicy(sizePolicy) self.scrollSpeedLabel.setSizePolicy(sizePolicy)
self.scrollSpeedLabel.setObjectName("scrollSpeedLabel") self.scrollSpeedLabel.setObjectName("scrollSpeedLabel")
self.horizontalLayout.addWidget(self.scrollSpeedLabel) self.horizontalLayout.addWidget(self.scrollSpeedLabel)
spacerItem4 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Minimum)
self.horizontalLayout.addItem(spacerItem4)
self.scrollSpeedSlider = QtWidgets.QSlider(self.groupBox_2) self.scrollSpeedSlider = QtWidgets.QSlider(self.groupBox_2)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Fixed) sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Fixed)
sizePolicy.setHorizontalStretch(0) sizePolicy.setHorizontalStretch(0)
@@ -196,8 +215,8 @@ class Ui_Dialog(object):
self.gridLayout_3.addLayout(self.verticalLayout_3, 2, 0, 1, 1) self.gridLayout_3.addLayout(self.verticalLayout_3, 2, 0, 1, 1)
self.verticalLayout.addWidget(self.groupBox_2) self.verticalLayout.addWidget(self.groupBox_2)
self.gridLayout_2.addLayout(self.verticalLayout, 0, 0, 1, 1) self.gridLayout_2.addLayout(self.verticalLayout, 0, 0, 1, 1)
spacerItem = QtWidgets.QSpacerItem(20, 40, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding) spacerItem5 = QtWidgets.QSpacerItem(20, 40, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding)
self.gridLayout_2.addItem(spacerItem, 1, 0, 1, 1) self.gridLayout_2.addItem(spacerItem5, 1, 0, 1, 1)
self.stackedWidget.addWidget(self.switchPage) self.stackedWidget.addWidget(self.switchPage)
self.annotationsPage = QtWidgets.QWidget() self.annotationsPage = QtWidgets.QWidget()
self.annotationsPage.setObjectName("annotationsPage") self.annotationsPage.setObjectName("annotationsPage")
@@ -215,8 +234,8 @@ class Ui_Dialog(object):
self.horizontalLayout_11.setObjectName("horizontalLayout_11") self.horizontalLayout_11.setObjectName("horizontalLayout_11")
self.verticalLayout_6 = QtWidgets.QVBoxLayout() self.verticalLayout_6 = QtWidgets.QVBoxLayout()
self.verticalLayout_6.setObjectName("verticalLayout_6") self.verticalLayout_6.setObjectName("verticalLayout_6")
spacerItem1 = QtWidgets.QSpacerItem(20, 40, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding) spacerItem6 = QtWidgets.QSpacerItem(20, 40, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding)
self.verticalLayout_6.addItem(spacerItem1) self.verticalLayout_6.addItem(spacerItem6)
self.newAnnotation = QtWidgets.QPushButton(self.textTab) self.newAnnotation = QtWidgets.QPushButton(self.textTab)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Fixed) sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Fixed)
sizePolicy.setHorizontalStretch(0) sizePolicy.setHorizontalStretch(0)
@@ -272,8 +291,8 @@ class Ui_Dialog(object):
self.moveDown.setText("") self.moveDown.setText("")
self.moveDown.setObjectName("moveDown") self.moveDown.setObjectName("moveDown")
self.verticalLayout_6.addWidget(self.moveDown) self.verticalLayout_6.addWidget(self.moveDown)
spacerItem2 = QtWidgets.QSpacerItem(20, 40, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding) spacerItem7 = QtWidgets.QSpacerItem(20, 40, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding)
self.verticalLayout_6.addItem(spacerItem2) self.verticalLayout_6.addItem(spacerItem7)
self.horizontalLayout_11.addLayout(self.verticalLayout_6) self.horizontalLayout_11.addLayout(self.verticalLayout_6)
self.annotationsList = QtWidgets.QListView(self.textTab) self.annotationsList = QtWidgets.QListView(self.textTab)
self.annotationsList.setEditTriggers(QtWidgets.QAbstractItemView.NoEditTriggers) self.annotationsList.setEditTriggers(QtWidgets.QAbstractItemView.NoEditTriggers)
@@ -337,8 +356,8 @@ class Ui_Dialog(object):
self.clearLogButton = QtWidgets.QPushButton(Dialog) self.clearLogButton = QtWidgets.QPushButton(Dialog)
self.clearLogButton.setObjectName("clearLogButton") self.clearLogButton.setObjectName("clearLogButton")
self.horizontalLayout_10.addWidget(self.clearLogButton) self.horizontalLayout_10.addWidget(self.clearLogButton)
spacerItem3 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum) spacerItem8 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
self.horizontalLayout_10.addItem(spacerItem3) self.horizontalLayout_10.addItem(spacerItem8)
self.okButton = QtWidgets.QPushButton(Dialog) self.okButton = QtWidgets.QPushButton(Dialog)
self.okButton.setObjectName("okButton") self.okButton.setObjectName("okButton")
self.horizontalLayout_10.addWidget(self.okButton) self.horizontalLayout_10.addWidget(self.okButton)
@@ -371,6 +390,7 @@ class Ui_Dialog(object):
self.performCulling.setText(_translate("Dialog", "Load covers only when needed")) self.performCulling.setText(_translate("Dialog", "Load covers only when needed"))
self.autoTags.setText(_translate("Dialog", "Generate tags from files")) self.autoTags.setText(_translate("Dialog", "Generate tags from files"))
self.attenuateTitles.setText(_translate("Dialog", "Shrink long book titles")) self.attenuateTitles.setText(_translate("Dialog", "Shrink long book titles"))
self.navBarVisible.setText(_translate("Dialog", "Show NavBar"))
self.autoCover.setToolTip(_translate("Dialog", "<html><head/><body><p>Attempt to download missing book covers from Google books - SLOW</p></body></html>")) self.autoCover.setToolTip(_translate("Dialog", "<html><head/><body><p>Attempt to download missing book covers from Google books - SLOW</p></body></html>"))
self.autoCover.setText(_translate("Dialog", "Download missing covers")) self.autoCover.setText(_translate("Dialog", "Download missing covers"))
self.groupBox_2.setTitle(_translate("Dialog", "Reading")) self.groupBox_2.setTitle(_translate("Dialog", "Reading"))
@@ -401,4 +421,5 @@ class Ui_Dialog(object):
self.okButton.setText(_translate("Dialog", "Scan Library")) self.okButton.setText(_translate("Dialog", "Scan Library"))
self.cancelButton.setText(_translate("Dialog", "Close")) self.cancelButton.setText(_translate("Dialog", "Close"))
from lector.widgets import SaysHelloWhenClicked from lector.widgets import SaysHelloWhenClicked

View File

@@ -124,6 +124,8 @@ class Settings:
'hideScrollBars', 'False').capitalize()) 'hideScrollBars', 'False').capitalize())
self.parent.settings['auto_cover'] = literal_eval(self.settings.value( self.parent.settings['auto_cover'] = literal_eval(self.settings.value(
'autoCover', 'False').capitalize()) 'autoCover', 'False').capitalize())
self.parent.settings['nav_bar'] = literal_eval(self.settings.value(
'navBar', 'False').capitalize())
self.parent.settings['scroll_speed'] = int(self.settings.value('scrollSpeed', 7)) self.parent.settings['scroll_speed'] = int(self.settings.value('scrollSpeed', 7))
self.parent.settings['consider_read_at'] = int(self.settings.value('considerReadAt', 95)) self.parent.settings['consider_read_at'] = int(self.settings.value('considerReadAt', 95))
self.parent.settings['small_increment'] = int(self.settings.value('smallIncrement', 4)) self.parent.settings['small_increment'] = int(self.settings.value('smallIncrement', 4))
@@ -215,6 +217,7 @@ class Settings:
self.settings.setValue('cachingEnabled', str(current_settings['caching_enabled'])) self.settings.setValue('cachingEnabled', str(current_settings['caching_enabled']))
self.settings.setValue('hideScrollBars', str(current_settings['hide_scrollbars'])) self.settings.setValue('hideScrollBars', str(current_settings['hide_scrollbars']))
self.settings.setValue('attenuateTitles', str(current_settings['attenuate_titles'])) self.settings.setValue('attenuateTitles', str(current_settings['attenuate_titles']))
self.settings.setValue('navBar', str(current_settings['nav_bar']))
self.settings.setValue('autoCover', str(current_settings['auto_cover'])) self.settings.setValue('autoCover', str(current_settings['auto_cover']))
self.settings.setValue('scrollSpeed', current_settings['scroll_speed']) self.settings.setValue('scrollSpeed', current_settings['scroll_speed'])
self.settings.setValue('considerReadAt', current_settings['consider_read_at']) self.settings.setValue('considerReadAt', current_settings['consider_read_at'])

View File

@@ -103,6 +103,7 @@ class SettingsUI(QtWidgets.QDialog, settingswindow.Ui_Dialog):
self.cachingEnabled.setChecked(self.main_window.settings['caching_enabled']) self.cachingEnabled.setChecked(self.main_window.settings['caching_enabled'])
self.hideScrollBars.setChecked(self.main_window.settings['hide_scrollbars']) self.hideScrollBars.setChecked(self.main_window.settings['hide_scrollbars'])
self.attenuateTitles.setChecked(self.main_window.settings['attenuate_titles']) self.attenuateTitles.setChecked(self.main_window.settings['attenuate_titles'])
self.navBarVisible.setChecked(self.main_window.settings['nav_bar'])
self.autoCover.setChecked(self.main_window.settings['auto_cover']) self.autoCover.setChecked(self.main_window.settings['auto_cover'])
self.scrollSpeedSlider.setValue(self.main_window.settings['scroll_speed']) self.scrollSpeedSlider.setValue(self.main_window.settings['scroll_speed'])
self.readAtPercent.setValue(self.main_window.settings['consider_read_at']) self.readAtPercent.setValue(self.main_window.settings['consider_read_at'])
@@ -117,6 +118,7 @@ class SettingsUI(QtWidgets.QDialog, settingswindow.Ui_Dialog):
self.cachingEnabled.clicked.connect(self.manage_checkboxes) self.cachingEnabled.clicked.connect(self.manage_checkboxes)
self.hideScrollBars.clicked.connect(self.manage_checkboxes) self.hideScrollBars.clicked.connect(self.manage_checkboxes)
self.attenuateTitles.clicked.connect(self.manage_checkboxes) self.attenuateTitles.clicked.connect(self.manage_checkboxes)
self.navBarVisible.clicked.connect(self.manage_checkboxes)
self.autoCover.clicked.connect(self.manage_checkboxes) self.autoCover.clicked.connect(self.manage_checkboxes)
self.scrollSpeedSlider.valueChanged.connect(self.change_scroll_speed) self.scrollSpeedSlider.valueChanged.connect(self.change_scroll_speed)
self.readAtPercent.valueChanged.connect(self.change_read_at) self.readAtPercent.valueChanged.connect(self.change_read_at)
@@ -427,6 +429,7 @@ class SettingsUI(QtWidgets.QDialog, settingswindow.Ui_Dialog):
'cachingEnabled': 'caching_enabled', 'cachingEnabled': 'caching_enabled',
'hideScrollBars': 'hide_scrollbars', 'hideScrollBars': 'hide_scrollbars',
'attenuateTitles': 'attenuate_titles', 'attenuateTitles': 'attenuate_titles',
'navBarVisible': 'nav_bar',
'autoCover': 'auto_cover'} 'autoCover': 'auto_cover'}
self.main_window.settings[ self.main_window.settings[

View File

@@ -24,7 +24,7 @@ import logging
from PyQt5 import QtWidgets, QtGui, QtCore from PyQt5 import QtWidgets, QtGui, QtCore
from lector.sorter import resize_image from lector.sorter import resize_image
from lector.dockwidgets import PliantDockWidget from lector.dockwidgets import PliantDockWidget, PliantNavBarWidget
from lector.contentwidgets import PliantQGraphicsView, PliantQTextBrowser from lector.contentwidgets import PliantQGraphicsView, PliantQTextBrowser
logger = logging.getLogger(__name__) logger = logging.getLogger(__name__)
@@ -136,6 +136,19 @@ class Tab(QtWidgets.QWidget):
self.contentView.setVerticalScrollBarPolicy( self.contentView.setVerticalScrollBarPolicy(
QtCore.Qt.ScrollBarAsNeeded) QtCore.Qt.ScrollBarAsNeeded)
# Create a NavBar widget
if self.main_window.settings['nav_bar']:
self.navBar = PliantNavBarWidget(
self.main_window, self.contentView, self)
self.navBar.setFloating(True)
self.navBar.setTitleBarWidget(QtWidgets.QWidget(self))
self.navBar.hide()
else:
# This keeps from having to set visibility conditions
# everywhere
self.navBar = QtWidgets.QWidget()
self.navBar.setFixedSize(0, 0)
# Create a common dock for bookmarks, annotations, and search # Create a common dock for bookmarks, annotations, and search
self.sideDock = PliantDockWidget( self.sideDock = PliantDockWidget(
self.main_window, False, self.contentView, self) self.main_window, False, self.contentView, self)
@@ -570,6 +583,7 @@ class Tab(QtWidgets.QWidget):
def hide_mouse(self): def hide_mouse(self):
self.contentView.viewport().setCursor(QtCore.Qt.BlankCursor) self.contentView.viewport().setCursor(QtCore.Qt.BlankCursor)
self.navBar.hide()
def sneaky_change(self): def sneaky_change(self):
direction = -1 direction = -1