mirror of
https://github.com/fergalmoran/picard.git
synced 2026-01-06 16:44:06 +00:00
PICARD-2063: Make automatic horizontal scrolling in file browser configurable
This commit is contained in:
@@ -128,15 +128,18 @@ class FileBrowser(QtWidgets.QTreeView):
|
||||
|
||||
def scrollTo(self, index, scrolltype=QtWidgets.QAbstractItemView.EnsureVisible):
|
||||
# QTreeView.scrollTo resets the horizontal scroll position to 0.
|
||||
# Reimplemented to instead scroll to horizontal parent position.
|
||||
level = -1
|
||||
# Reimplemented to instead scroll to horizontal parent position or keep previous position.
|
||||
if index and config.setting['filebrowser_horizontal_autoscroll']:
|
||||
level = -1
|
||||
parent = index.parent()
|
||||
root = self.rootIndex()
|
||||
while parent.isValid() and parent != root:
|
||||
parent = parent.parent()
|
||||
level += 1
|
||||
pos_x = max(self.indentation() * level, 0)
|
||||
else:
|
||||
pos_x = self.horizontalScrollBar().value()
|
||||
super().scrollTo(index, scrolltype)
|
||||
parent = self.currentIndex().parent()
|
||||
root = self.rootIndex()
|
||||
while parent.isValid() and parent != root:
|
||||
parent = parent.parent()
|
||||
level += 1
|
||||
pos_x = max(self.indentation() * level, 0)
|
||||
self.horizontalScrollBar().setValue(pos_x)
|
||||
|
||||
def mousePressEvent(self, event):
|
||||
|
||||
@@ -136,6 +136,7 @@ class InterfaceOptionsPage(OptionsPage):
|
||||
config.BoolOption("setting", "quit_confirmation", True),
|
||||
config.TextOption("setting", "ui_language", ""),
|
||||
config.BoolOption("setting", "use_system_theme", False),
|
||||
config.BoolOption("setting", "filebrowser_horizontal_autoscroll", True),
|
||||
config.BoolOption("setting", "starting_directory", False),
|
||||
config.TextOption("setting", "starting_directory_path", _default_starting_dir),
|
||||
config.TextOption("setting", "load_image_behavior", "append"),
|
||||
@@ -205,6 +206,7 @@ class InterfaceOptionsPage(OptionsPage):
|
||||
self.ui.use_system_theme.setChecked(config.setting["use_system_theme"])
|
||||
current_ui_language = config.setting["ui_language"]
|
||||
self.ui.ui_language.setCurrentIndex(self.ui.ui_language.findData(current_ui_language))
|
||||
self.ui.filebrowser_horizontal_autoscroll.setChecked(config.setting["filebrowser_horizontal_autoscroll"])
|
||||
self.ui.starting_directory.setChecked(config.setting["starting_directory"])
|
||||
self.ui.starting_directory_path.setText(config.setting["starting_directory_path"])
|
||||
self.populate_action_list()
|
||||
@@ -242,6 +244,7 @@ class InterfaceOptionsPage(OptionsPage):
|
||||
dialog.exec_()
|
||||
config.setting["use_system_theme"] = self.ui.use_system_theme.isChecked()
|
||||
config.setting["ui_language"] = self.ui.ui_language.itemData(self.ui.ui_language.currentIndex())
|
||||
config.setting["filebrowser_horizontal_autoscroll"] = self.ui.filebrowser_horizontal_autoscroll.isChecked()
|
||||
config.setting["starting_directory"] = self.ui.starting_directory.isChecked()
|
||||
config.setting["starting_directory_path"] = os.path.normpath(self.ui.starting_directory_path.text())
|
||||
self.update_layout_config()
|
||||
|
||||
@@ -35,6 +35,9 @@ class Ui_InterfaceOptionsPage(object):
|
||||
self.quit_confirmation = QtWidgets.QCheckBox(self.groupBox_2)
|
||||
self.quit_confirmation.setObjectName("quit_confirmation")
|
||||
self.vboxlayout1.addWidget(self.quit_confirmation)
|
||||
self.filebrowser_horizontal_autoscroll = QtWidgets.QCheckBox(self.groupBox_2)
|
||||
self.filebrowser_horizontal_autoscroll.setObjectName("filebrowser_horizontal_autoscroll")
|
||||
self.vboxlayout1.addWidget(self.filebrowser_horizontal_autoscroll)
|
||||
self.starting_directory = QtWidgets.QCheckBox(self.groupBox_2)
|
||||
self.starting_directory.setObjectName("starting_directory")
|
||||
self.vboxlayout1.addWidget(self.starting_directory)
|
||||
@@ -134,6 +137,7 @@ class Ui_InterfaceOptionsPage(object):
|
||||
self.builtin_search.setText(_("Use builtin search rather than looking in browser"))
|
||||
self.use_adv_search_syntax.setText(_("Use advanced query syntax"))
|
||||
self.quit_confirmation.setText(_("Show a quit confirmation dialog for unsaved changes"))
|
||||
self.filebrowser_horizontal_autoscroll.setText(_("Adjust horizontal position in file browser automatically"))
|
||||
self.starting_directory.setText(_("Begin browsing in the following directory:"))
|
||||
self.starting_directory_browse.setText(_("Browse..."))
|
||||
self.label.setText(_("User interface language:"))
|
||||
|
||||
@@ -59,6 +59,13 @@
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QCheckBox" name="filebrowser_horizontal_autoscroll">
|
||||
<property name="text">
|
||||
<string>Adjust horizontal position in file browser automatically</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QCheckBox" name="starting_directory">
|
||||
<property name="text">
|
||||
|
||||
Reference in New Issue
Block a user