Source code for pyrpl.widgets.yml_editor
from qtpy import QtCore, QtWidgets
[docs]class YmlEditor(QtWidgets.QWidget):
def __init__(self, module, state):
self.module = module
self.state = state
super(YmlEditor, self).__init__()
if state is None:
state = "current"
self.setWindowTitle(".:Yml editor:. " + "Module: '" + \
str(self.module.name) + "' State: '" + str(state) + "'")
self.editor = QtWidgets.QTextEdit()
self.button_cancel = QtWidgets.QPushButton("Cancel without saving")
self.button_cancel.clicked.connect(self.cancel)
self.button_refresh = QtWidgets.QPushButton("Load data from config file")
self.button_refresh.clicked.connect(self.refresh)
self.button_load_all = QtWidgets.QPushButton("Load all current attributes from memory")
self.button_load_all.clicked.connect(self.load_all)
self.button_save = QtWidgets.QPushButton("Save to file + set to memory" if self.state is None else "Save to file")
self.button_save.clicked.connect(self.save)
self.lay = QtWidgets.QVBoxLayout()
self.setLayout(self.lay)
self.lay.addWidget(self.editor)
self.lay_h = QtWidgets.QHBoxLayout()
self.lay.addLayout(self.lay_h)
self.lay_h.addWidget(self.button_cancel)
self.lay_h.addWidget(self.button_refresh)
self.lay_h.addWidget(self.button_load_all)
self.lay_h.addWidget(self.button_save)
self.refresh()
[docs] def sizeHint(self):
return QtCore.QSize(500,500)
[docs] def cancel(self):
self.close()
[docs] def refresh(self):
self.editor.setText(self.module.get_yml(self.state))
[docs] def load_all(self):
self.editor.setText(self.module.c._get_yml(data=self.module.setup_attributes))
[docs] def save(self):
self.module.set_yml(str(self.editor.toPlainText()), state=self.state)