Implement scroll speed slider

This commit is contained in:
BasioMeusPuga
2018-03-27 21:58:35 +05:30
parent d417a94829
commit 5fa724ae69
5 changed files with 75 additions and 4 deletions

View File

@@ -182,7 +182,7 @@ Reopen book to see changes</string>
</sizepolicy> </sizepolicy>
</property> </property>
<property name="text"> <property name="text">
<string>Dictionary language:</string> <string>Dictionary language</string>
</property> </property>
<property name="alignment"> <property name="alignment">
<set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter</set> <set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter</set>
@@ -194,6 +194,42 @@ Reopen book to see changes</string>
</item> </item>
</layout> </layout>
</item> </item>
<item>
<layout class="QHBoxLayout" name="horizontalLayout">
<item>
<widget class="QLabel" name="scrollSpeedLabel">
<property name="sizePolicy">
<sizepolicy hsizetype="Maximum" vsizetype="Preferred">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="text">
<string>Scroll speed</string>
</property>
</widget>
</item>
<item>
<widget class="QSlider" name="scrollSpeedSlider">
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="minimum">
<number>3</number>
</property>
<property name="maximum">
<number>15</number>
</property>
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
</widget>
</item>
</layout>
</item>
</layout> </layout>
</item> </item>
</layout> </layout>

View File

@@ -116,6 +116,28 @@ class Ui_Dialog(object):
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)
self.horizontalLayout = QtWidgets.QHBoxLayout()
self.horizontalLayout.setObjectName("horizontalLayout")
self.scrollSpeedLabel = QtWidgets.QLabel(self.groupBox_2)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Maximum, QtWidgets.QSizePolicy.Preferred)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.scrollSpeedLabel.sizePolicy().hasHeightForWidth())
self.scrollSpeedLabel.setSizePolicy(sizePolicy)
self.scrollSpeedLabel.setObjectName("scrollSpeedLabel")
self.horizontalLayout.addWidget(self.scrollSpeedLabel)
self.scrollSpeedSlider = QtWidgets.QSlider(self.groupBox_2)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Fixed)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.scrollSpeedSlider.sizePolicy().hasHeightForWidth())
self.scrollSpeedSlider.setSizePolicy(sizePolicy)
self.scrollSpeedSlider.setMinimum(3)
self.scrollSpeedSlider.setMaximum(15)
self.scrollSpeedSlider.setOrientation(QtCore.Qt.Horizontal)
self.scrollSpeedSlider.setObjectName("scrollSpeedSlider")
self.horizontalLayout.addWidget(self.scrollSpeedSlider)
self.horizontalLayout_8.addLayout(self.horizontalLayout)
self.verticalLayout_3.addLayout(self.horizontalLayout_8) self.verticalLayout_3.addLayout(self.horizontalLayout_8)
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)
@@ -187,7 +209,8 @@ class Ui_Dialog(object):
self.hideScrollBars.setText(_translate("Dialog", "Hide scrollbars when reading")) self.hideScrollBars.setText(_translate("Dialog", "Hide scrollbars when reading"))
self.cachingEnabled.setToolTip(_translate("Dialog", "Greatly reduces page transition time at the cost of more memory")) self.cachingEnabled.setToolTip(_translate("Dialog", "Greatly reduces page transition time at the cost of more memory"))
self.cachingEnabled.setText(_translate("Dialog", "Cache comic / pdf pages")) self.cachingEnabled.setText(_translate("Dialog", "Cache comic / pdf pages"))
self.languageLabel.setText(_translate("Dialog", "Dictionary language:")) self.languageLabel.setText(_translate("Dialog", "Dictionary language"))
self.scrollSpeedLabel.setText(_translate("Dialog", "Scroll speed"))
self.tabWidget.setTabText(self.tabWidget.indexOf(self.textTab), _translate("Dialog", "Text")) self.tabWidget.setTabText(self.tabWidget.indexOf(self.textTab), _translate("Dialog", "Text"))
self.tabWidget.setTabText(self.tabWidget.indexOf(self.imageTab), _translate("Dialog", "Comic/PDF")) self.tabWidget.setTabText(self.tabWidget.indexOf(self.imageTab), _translate("Dialog", "Comic/PDF"))
self.okButton.setText(_translate("Dialog", "Scan Library")) self.okButton.setText(_translate("Dialog", "Scan Library"))

View File

@@ -104,6 +104,7 @@ class Settings:
'cachingEnabled', 'True').capitalize()) 'cachingEnabled', 'True').capitalize())
self.parent.settings['hide_scrollbars'] = literal_eval(self.settings.value( self.parent.settings['hide_scrollbars'] = literal_eval(self.settings.value(
'hideScrollBars', 'False').capitalize()) 'hideScrollBars', 'False').capitalize())
self.parent.settings['scroll_speed'] = int(self.settings.value('scrollSpeed', 7))
self.settings.endGroup() self.settings.endGroup()
self.settings.beginGroup('dialogSettings') self.settings.beginGroup('dialogSettings')
@@ -174,6 +175,7 @@ class Settings:
self.settings.setValue('dictionaryLanguage', current_settings['dictionary_language']) self.settings.setValue('dictionaryLanguage', current_settings['dictionary_language'])
self.settings.setValue('cachingEnabled', current_settings['caching_enabled']) self.settings.setValue('cachingEnabled', current_settings['caching_enabled'])
self.settings.setValue('hideScrollBars', current_settings['hide_scrollbars']) self.settings.setValue('hideScrollBars', current_settings['hide_scrollbars'])
self.settings.setValue('scrollSpeed', current_settings['scroll_speed'])
self.settings.endGroup() self.settings.endGroup()
self.settings.beginGroup('dialogSettings') self.settings.beginGroup('dialogSettings')

View File

@@ -35,6 +35,7 @@ class SettingsUI(QtWidgets.QDialog, settingswindow.Ui_Dialog):
def __init__(self, parent=None): def __init__(self, parent=None):
super(SettingsUI, self).__init__() super(SettingsUI, self).__init__()
self.setupUi(self) self.setupUi(self)
self.verticalLayout_4.setContentsMargins(0, 0, 0, 0)
self._translate = QtCore.QCoreApplication.translate self._translate = QtCore.QCoreApplication.translate
self.parent = parent self.parent = parent
@@ -90,6 +91,7 @@ class SettingsUI(QtWidgets.QDialog, settingswindow.Ui_Dialog):
self.performCulling.setChecked(self.parent.settings['perform_culling']) self.performCulling.setChecked(self.parent.settings['perform_culling'])
self.cachingEnabled.setChecked(self.parent.settings['caching_enabled']) self.cachingEnabled.setChecked(self.parent.settings['caching_enabled'])
self.hideScrollBars.setChecked(self.parent.settings['hide_scrollbars']) self.hideScrollBars.setChecked(self.parent.settings['hide_scrollbars'])
self.scrollSpeedSlider.setValue(self.parent.settings['scroll_speed'])
self.autoTags.clicked.connect(self.manage_checkboxes) self.autoTags.clicked.connect(self.manage_checkboxes)
self.coverShadows.clicked.connect(self.manage_checkboxes) self.coverShadows.clicked.connect(self.manage_checkboxes)
@@ -98,6 +100,7 @@ class SettingsUI(QtWidgets.QDialog, settingswindow.Ui_Dialog):
self.performCulling.clicked.connect(self.manage_checkboxes) self.performCulling.clicked.connect(self.manage_checkboxes)
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.scrollSpeedSlider.valueChanged.connect(self.change_scroll_speed)
# Generate the QStandardItemModel for the listView # Generate the QStandardItemModel for the listView
self.listModel = QtGui.QStandardItemModel() self.listModel = QtGui.QStandardItemModel()
@@ -131,7 +134,7 @@ class SettingsUI(QtWidgets.QDialog, settingswindow.Ui_Dialog):
self.parent.generate_library_filter_menu(paths) self.parent.generate_library_filter_menu(paths)
directory_data = {} directory_data = {}
if not paths: if not paths:
print('Database returned no paths for settings...') print('Database: No paths for settings...')
else: else:
# Convert to the dictionary format that is # Convert to the dictionary format that is
# to be fed into the QFileSystemModel # to be fed into the QFileSystemModel
@@ -297,6 +300,9 @@ class SettingsUI(QtWidgets.QDialog, settingswindow.Ui_Dialog):
2: 'hi'} 2: 'hi'}
self.parent.settings['dictionary_language'] = language_dict[self.languageBox.currentIndex()] self.parent.settings['dictionary_language'] = language_dict[self.languageBox.currentIndex()]
def change_scroll_speed(self, event):
self.parent.settings['scroll_speed'] = self.scrollSpeedSlider.value()
def manage_checkboxes(self, event=None): def manage_checkboxes(self, event=None):
sender = self.sender().objectName() sender = self.sender().objectName()

View File

@@ -114,7 +114,8 @@ class Tab(QtWidgets.QWidget):
# the graphics view # the graphics view
self.contentView.setFrameShape(QtWidgets.QFrame.NoFrame) self.contentView.setFrameShape(QtWidgets.QFrame.NoFrame)
self.contentView.setObjectName('contentView') self.contentView.setObjectName('contentView')
self.contentView.verticalScrollBar().setSingleStep(7) self.contentView.verticalScrollBar().setSingleStep(
self.main_window.settings['scroll_speed'])
if self.main_window.settings['hide_scrollbars']: if self.main_window.settings['hide_scrollbars']:
self.contentView.setHorizontalScrollBarPolicy(QtCore.Qt.ScrollBarAlwaysOff) self.contentView.setHorizontalScrollBarPolicy(QtCore.Qt.ScrollBarAlwaysOff)
@@ -193,10 +194,13 @@ class Tab(QtWidgets.QWidget):
search_text = search_data[1] search_text = search_data[1]
if search_text: if search_text:
# textCursor() RETURNS a copy of the textcursor
cursor = self.contentView.textCursor() cursor = self.contentView.textCursor()
cursor.movePosition(QtGui.QTextCursor.Start, QtGui.QTextCursor.KeepAnchor) cursor.movePosition(QtGui.QTextCursor.Start, QtGui.QTextCursor.KeepAnchor)
self.contentView.setTextCursor(cursor) self.contentView.setTextCursor(cursor)
# This is needed so that search results are always at the top
# of the window
self.contentView.verticalScrollBar().setValue( self.contentView.verticalScrollBar().setValue(
self.contentView.verticalScrollBar().maximum()) self.contentView.verticalScrollBar().maximum())