Fork PyRPL on GitHub

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)