Preliminary Navigation Bar
This commit is contained in:
@@ -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):
|
||||||
if QtWidgets.QApplication.mouseButtons() == QtCore.Qt.NoButton:
|
# Compare mouse positions
|
||||||
self.viewport().setCursor(QtCore.Qt.OpenHandCursor)
|
# This allows to filter out scrolling
|
||||||
else:
|
# from a normal mouseEvent
|
||||||
self.viewport().setCursor(QtCore.Qt.ClosedHandCursor)
|
|
||||||
self.parent.mouse_hide_timer.start(2000)
|
|
||||||
QtWidgets.QGraphicsView.mouseMoveEvent(self, event)
|
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:
|
||||||
|
self.viewport().setCursor(QtCore.Qt.OpenHandCursor)
|
||||||
|
else:
|
||||||
|
self.viewport().setCursor(QtCore.Qt.ClosedHandCursor)
|
||||||
|
self.parent.mouse_hide_timer.start(2000)
|
||||||
|
|
||||||
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):
|
||||||
if self.annotation_mode:
|
# Compare mouse positions
|
||||||
self.viewport().setCursor(QtCore.Qt.IBeamCursor)
|
# This allows to filter out scrolling
|
||||||
else:
|
# from a normal mouseEvent
|
||||||
self.viewport().setCursor(QtCore.Qt.ArrowCursor)
|
|
||||||
self.parent.mouse_hide_timer.start(2000)
|
|
||||||
QtWidgets.QTextBrowser.mouseMoveEvent(self, event)
|
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:
|
||||||
|
self.viewport().setCursor(QtCore.Qt.IBeamCursor)
|
||||||
|
else:
|
||||||
|
self.viewport().setCursor(QtCore.Qt.ArrowCursor)
|
||||||
|
self.parent.mouse_hide_timer.start(2000)
|
||||||
|
|
||||||
|
|
||||||
class PliantWidgetsCommonFunctions:
|
class PliantWidgetsCommonFunctions:
|
||||||
|
@@ -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()
|
||||||
|
@@ -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
@@ -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
|
||||||
|
@@ -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'])
|
||||||
|
@@ -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[
|
||||||
|
@@ -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
|
||||||
|
Reference in New Issue
Block a user