def __init__(self, media_object, parent=None):
super().__init__(parent)
self.setWindowTitle('Preferences')
self.form = QtWidgets.QFormLayout(self)
server = media_object.container.server
settings = server.container(media_object.key)
self.ids = []
for item in settings['_children']:
itype = item['type']
if itype == 'bool':
input_widget = QtWidgets.QCheckBox()
input_widget.setCheckState(QtCore.Qt.Checked if item['value'] == 'true' else QtCore.Qt.Unchecked)
elif itype == 'enum':
input_widget = QtWidgets.QComboBox()
input_widget.addItems(item['values'].split('|'))
input_widget.setCurrentIndex(int(item['value']))
elif itype == 'text':
input_widget = QtWidgets.QLineEdit(item['value'])
if item['secure'] == 'true':
input_widget.setEchoMode(QtWidgets.QLineEdit.PasswordEchoOnEdit)
else:
input_widget = QtWidgets.QLabel('...')
self.form.addRow(QtWidgets.QLabel(item['label']), input_widget)
self.ids.append((item['id'], input_widget))
self.buttons = QtWidgets.QDialogButtonBox(
QtWidgets.QDialogButtonBox.Ok | QtWidgets.QDialogButtonBox.Cancel, QtCore.Qt.Horizontal, self)
self.form.addRow(self.buttons)
self.buttons.rejected.connect(self.reject)
self.buttons.accepted.connect(self.accept)
if self.exec_() == QtWidgets.QDialog.Accepted:
media_object.container.server.request(media_object.key + '/set', params=self.extract_values())
评论列表
文章目录