Extend Node and Module widgets

- put nodeinfo elements into ui file
- add per-module detailed view
- add first version of grouping (cleanup in a follow-up commit)

Change-Id: If35bc4a8f4ed0a313e97f88797e70186d7c0d9bc
Reviewed-on: https://forge.frm2.tum.de/review/c/secop/frappy/+/30631
Tested-by: Jenkins Automated Tests <pedersen+jenkins@frm2.tum.de>
Reviewed-by: Alexander Zaft <a.zaft@fz-juelich.de>
This commit is contained in:
Alexander Zaft
2023-03-09 07:13:42 +01:00
parent 1b38a989d8
commit 16a3b1dc35
9 changed files with 4500 additions and 4114 deletions

View File

@@ -1,9 +1,9 @@
import json
from collections import OrderedDict
from frappy.gui.qt import QCursor, QFont, QFontMetrics, QGridLayout, QIcon, \
QInputDialog, QLabel, QMenu, QPlainTextEdit, QTextCursor, QVBoxLayout, \
QWidget, pyqtSignal, pyqtSlot, toHtmlEscaped
from frappy.gui.qt import QCursor, QFont, QFontMetrics, QIcon, QInputDialog, \
QMenu, QTextCursor, QVBoxLayout, QWidget, pyqtSignal, pyqtSlot, \
toHtmlEscaped
from frappy.errors import SECoPError
from frappy.gui.modulectrl import ModuleCtrl
@@ -96,6 +96,7 @@ class NodeWidget(QWidget):
self._node = node
self._node.stateChange.connect(self._set_node_state)
self.detailed = False
self._modules = OrderedDict()
self._detailedModules = {}
self._detailedParams = {}
@@ -123,6 +124,7 @@ class NodeWidget(QWidget):
self.plotParam(module, param))
widget.plotAdd.connect(lambda param, module=module:
self._plotPopUp(module, param))
widget.showDetails(self.detailed)
self.noPlots.connect(widget.plotsPresent)
self._modules[module] = widget
details = ModuleCtrl(node, module)
@@ -150,28 +152,10 @@ class NodeWidget(QWidget):
self.tree.itemChanged.connect(self.changeViewContent)
self.tree.customContextMenuRequested.connect(self._treeContextMenu)
self._description = QPlainTextEdit(
self.descriptionEdit.setPlainText(
self._node.properties.get('description','no description available'))
self._description_label = QLabel('Description:')
self._description.setReadOnly(True)
self._host = QLabel(self._node.conn.uri)
self._host.hide()
self._host_label = QLabel('Host:')
self._host_label.hide()
self._protocoll = QLabel(self._node.conn.secop_version)
self._protocoll.setWordWrap(True)
self._protocoll.hide()
self._protocoll_label = QLabel('Protocoll Version:')
self._protocoll_label.hide()
layout = QGridLayout()
layout.addWidget(self._host_label, 0, 0)
layout.addWidget(self._host, 0, 1)
layout.addWidget(self._protocoll_label, 1, 0)
layout.addWidget(self._protocoll, 1, 1)
layout.addWidget(self._description_label, 2, 0)
layout.addWidget(self._description, 3, 0, -1, -1)
self.nodeinfo.setLayout(layout)
self.hostLabel.setText(self._node.conn.uri)
self.protocolLabel.setText(self._node.conn.secop_version)
def _set_node_state(self, nodename, online, state):
p = self.palette()
@@ -186,13 +170,10 @@ class NodeWidget(QWidget):
def _rebuildAdvanced(self, advanced):
self._host.setHidden(not advanced)
self._host_label.setHidden(not advanced)
self._protocoll.setHidden(not advanced)
self._protocoll_label.setHidden(not advanced)
self.detailed = advanced
self.tree._rebuildAdvanced(advanced)
for m in self._modules.values():
m.rebuildAdvanced(advanced)
m.showDetails(advanced)
def getSecNode(self):
return self._node