Set unique splitter names in scripting and renaming options screens

This commit is contained in:
Bob Swift
2021-05-17 10:42:01 -06:00
parent c83acb6c3e
commit 7cb7da7ddd
5 changed files with 20 additions and 40 deletions

View File

@@ -34,7 +34,6 @@ from picard.config import (
BoolOption,
IntOption,
ListOption,
Option,
get_config,
)
from picard.const.sys import IS_MACOS
@@ -97,7 +96,6 @@ class ScriptingOptionsPage(OptionsPage):
BoolOption("setting", "enable_tagger_scripts", False),
ListOption("setting", "list_of_scripts", []),
IntOption("persist", "last_selected_script_pos", 0),
Option("persist", "scripting_splitter", QtCore.QByteArray()),
]
def __init__(self, parent=None):
@@ -105,8 +103,7 @@ class ScriptingOptionsPage(OptionsPage):
self.ui = Ui_ScriptingOptionsPage()
self.ui.setupUi(self)
self.ui.tagger_script.setEnabled(False)
self.ui.splitter.setStretchFactor(0, 1)
self.ui.splitter.setStretchFactor(1, 2)
self.ui.scripting_options_splitter.setStretchFactor(1, 2)
self.move_view = MoveableListView(self.ui.script_list, self.ui.move_up_button,
self.ui.move_down_button)
self.ui.scripting_documentation_button.clicked.connect(self.show_scripting_documentation)
@@ -170,25 +167,16 @@ class ScriptingOptionsPage(OptionsPage):
self.ui.script_list.setCurrentItem(last_selected_script)
last_selected_script.setSelected(True)
self.restore_state()
def _all_scripts(self):
for row in range(0, self.ui.script_list.count()):
item = self.ui.script_list.item(row)
yield item.get_all()
@restore_method
def restore_state(self):
# Preserve previous splitter position
config = get_config()
self.ui.splitter.restoreState(config.persist["scripting_splitter"])
def save(self):
config = get_config()
config.setting["enable_tagger_scripts"] = self.ui.enable_tagger_scripts.isChecked()
config.setting["list_of_scripts"] = list(self._all_scripts())
config.persist["last_selected_script_pos"] = self.ui.script_list.currentRow()
config.persist["scripting_splitter"] = self.ui.splitter.saveState()
def display_error(self, error):
# Ignore scripting errors, those are handled inline

View File

@@ -11,7 +11,7 @@ class Ui_RenamingOptionsPage(object):
def setupUi(self, RenamingOptionsPage):
RenamingOptionsPage.setObjectName("RenamingOptionsPage")
RenamingOptionsPage.setEnabled(True)
RenamingOptionsPage.resize(453, 552)
RenamingOptionsPage.resize(453, 566)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Preferred)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
@@ -79,10 +79,10 @@ class Ui_RenamingOptionsPage(object):
self.verticalLayout_6 = QtWidgets.QVBoxLayout(self.groupBox)
self.verticalLayout_6.setContentsMargins(3, 3, 3, 3)
self.verticalLayout_6.setObjectName("verticalLayout_6")
self.splitter = QtWidgets.QSplitter(self.groupBox)
self.splitter.setOrientation(QtCore.Qt.Horizontal)
self.splitter.setObjectName("splitter")
self.frame = QtWidgets.QFrame(self.splitter)
self.renaming_options_examples_splitter = QtWidgets.QSplitter(self.groupBox)
self.renaming_options_examples_splitter.setOrientation(QtCore.Qt.Horizontal)
self.renaming_options_examples_splitter.setObjectName("renaming_options_examples_splitter")
self.frame = QtWidgets.QFrame(self.renaming_options_examples_splitter)
self.frame.setMinimumSize(QtCore.QSize(100, 0))
self.frame.setFrameShape(QtWidgets.QFrame.NoFrame)
self.frame.setFrameShadow(QtWidgets.QFrame.Raised)
@@ -97,9 +97,7 @@ class Ui_RenamingOptionsPage(object):
self.example_filename_before = QtWidgets.QListWidget(self.frame)
self.example_filename_before.setObjectName("example_filename_before")
self.verticalLayout.addWidget(self.example_filename_before)
self.example_filename_before_label.raise_()
self.example_filename_before.raise_()
self.frame_2 = QtWidgets.QFrame(self.splitter)
self.frame_2 = QtWidgets.QFrame(self.renaming_options_examples_splitter)
self.frame_2.setMinimumSize(QtCore.QSize(100, 0))
self.frame_2.setFrameShape(QtWidgets.QFrame.NoFrame)
self.frame_2.setFrameShadow(QtWidgets.QFrame.Raised)
@@ -114,9 +112,7 @@ class Ui_RenamingOptionsPage(object):
self.example_filename_after = QtWidgets.QListWidget(self.frame_2)
self.example_filename_after.setObjectName("example_filename_after")
self.verticalLayout_3.addWidget(self.example_filename_after)
self.verticalLayout_6.addWidget(self.splitter)
self.frame_2.raise_()
self.frame.raise_()
self.verticalLayout_6.addWidget(self.renaming_options_examples_splitter)
self.verticalLayout_5.addWidget(self.groupBox)
self.example_selection_note = QtWidgets.QLabel(RenamingOptionsPage)
self.example_selection_note.setText("")

View File

@@ -20,16 +20,16 @@ class Ui_ScriptingOptionsPage(object):
self.enable_tagger_scripts.setObjectName("enable_tagger_scripts")
self.verticalLayout = QtWidgets.QVBoxLayout(self.enable_tagger_scripts)
self.verticalLayout.setObjectName("verticalLayout")
self.splitter = QtWidgets.QSplitter(self.enable_tagger_scripts)
self.scripting_options_splitter = QtWidgets.QSplitter(self.enable_tagger_scripts)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Expanding)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.splitter.sizePolicy().hasHeightForWidth())
self.splitter.setSizePolicy(sizePolicy)
self.splitter.setOrientation(QtCore.Qt.Horizontal)
self.splitter.setChildrenCollapsible(False)
self.splitter.setObjectName("splitter")
self.script_list = ScriptListWidget(self.splitter)
sizePolicy.setHeightForWidth(self.scripting_options_splitter.sizePolicy().hasHeightForWidth())
self.scripting_options_splitter.setSizePolicy(sizePolicy)
self.scripting_options_splitter.setOrientation(QtCore.Qt.Horizontal)
self.scripting_options_splitter.setChildrenCollapsible(False)
self.scripting_options_splitter.setObjectName("scripting_options_splitter")
self.script_list = ScriptListWidget(self.scripting_options_splitter)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.MinimumExpanding, QtWidgets.QSizePolicy.Expanding)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
@@ -37,7 +37,7 @@ class Ui_ScriptingOptionsPage(object):
self.script_list.setSizePolicy(sizePolicy)
self.script_list.setMinimumSize(QtCore.QSize(120, 0))
self.script_list.setObjectName("script_list")
self.formWidget = QtWidgets.QWidget(self.splitter)
self.formWidget = QtWidgets.QWidget(self.scripting_options_splitter)
self.formWidget.setObjectName("formWidget")
self.verticalLayout_2 = QtWidgets.QVBoxLayout(self.formWidget)
self.verticalLayout_2.setContentsMargins(0, 0, 0, 0)
@@ -46,7 +46,7 @@ class Ui_ScriptingOptionsPage(object):
self.tagger_script.setAcceptRichText(False)
self.tagger_script.setObjectName("tagger_script")
self.verticalLayout_2.addWidget(self.tagger_script)
self.verticalLayout.addWidget(self.splitter)
self.verticalLayout.addWidget(self.scripting_options_splitter)
self.horizontalLayout = QtWidgets.QHBoxLayout()
self.horizontalLayout.setObjectName("horizontalLayout")
self.add_button = QtWidgets.QToolButton(self.enable_tagger_scripts)

View File

@@ -10,7 +10,7 @@
<x>0</x>
<y>0</y>
<width>453</width>
<height>552</height>
<height>566</height>
</rect>
</property>
<property name="sizePolicy">
@@ -152,7 +152,7 @@
<number>3</number>
</property>
<item>
<widget class="QSplitter" name="splitter">
<widget class="QSplitter" name="renaming_options_examples_splitter">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
@@ -196,8 +196,6 @@
<widget class="QListWidget" name="example_filename_before"/>
</item>
</layout>
<zorder>example_filename_before_label</zorder>
<zorder>example_filename_before</zorder>
</widget>
<widget class="QFrame" name="frame_2">
<property name="minimumSize">
@@ -243,8 +241,6 @@
</widget>
</item>
</layout>
<zorder>frame_2</zorder>
<zorder>frame</zorder>
</widget>
</item>
<item>

View File

@@ -36,7 +36,7 @@
</property>
<layout class="QVBoxLayout" name="verticalLayout">
<item>
<widget class="QSplitter" name="splitter">
<widget class="QSplitter" name="scripting_options_splitter">
<property name="sizePolicy">
<sizepolicy hsizetype="Expanding" vsizetype="Expanding">
<horstretch>0</horstretch>