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:
parent
0464d60f68
commit
23c9aa6038
@ -171,6 +171,7 @@ class MainWindow(QMainWindow):
|
||||
node = QSECNode(host, self.log, parent=self)
|
||||
nodeWidget = NodeWidget(node)
|
||||
nodeWidget.setParent(self)
|
||||
nodeWidget._rebuildAdvanced(self.actionDetailed_View.isChecked())
|
||||
|
||||
# Node and NodeWidget created without error
|
||||
nodename = node.nodename
|
||||
|
@ -1,5 +1,5 @@
|
||||
from frappy.gui.qt import QDialog, QIcon, QLabel, QLineEdit, QMessageBox, \
|
||||
QPushButton, QToolButton, QWidget, pyqtSignal
|
||||
from frappy.gui.qt import QDialog, QHBoxLayout, QIcon, QLabel, QLineEdit, \
|
||||
QMessageBox, QPushButton, Qt, QToolButton, QWidget, pyqtSignal, pyqtSlot
|
||||
|
||||
from frappy.gui.util import Colors, loadUi
|
||||
from frappy.gui.valuewidgets import get_widget
|
||||
@ -88,15 +88,17 @@ class ModuleWidget(QWidget):
|
||||
loadUi(self, 'modulewidget.ui')
|
||||
self._node = node
|
||||
self._name = name
|
||||
self.detailed = False
|
||||
self._paramDisplays = {}
|
||||
self._paramInputs = {}
|
||||
self._addbtns = []
|
||||
self._paramWidgets = {}
|
||||
self._groups = {}
|
||||
self._groupStatus = {}
|
||||
self.independentParams = []
|
||||
|
||||
self.moduleName.setText(name)
|
||||
props = self._node.getModuleProperties(self._name)
|
||||
description = props.get('description', '')
|
||||
self.moduleDescription.setText(description)
|
||||
self._initModuleInfo()
|
||||
self.infoGrid.hide()
|
||||
|
||||
row = 0
|
||||
params = dict(self._node.getParameters(self._name))
|
||||
@ -112,14 +114,70 @@ class ModuleWidget(QWidget):
|
||||
params.pop('target')
|
||||
self._addRWParam('target', row)
|
||||
row += 1
|
||||
|
||||
allGroups = set()
|
||||
for param in params:
|
||||
paramProps = self._node.getProperties(self._name, param)
|
||||
if paramProps['readonly']:
|
||||
self._addRParam(param, row)
|
||||
props = self._node.getProperties(self._name, param)
|
||||
group = props.get('group', '')
|
||||
if group:
|
||||
allGroups.add(group)
|
||||
self._groups.setdefault(group, []).append(param)
|
||||
else:
|
||||
self._addRWParam(param, row)
|
||||
row += 1
|
||||
self._setParamHidden(param, True)
|
||||
self.independentParams.append(param)
|
||||
for key in sorted(allGroups.union(set(self.independentParams))):
|
||||
if key in allGroups:
|
||||
if key in self._groups[key]:
|
||||
# Param with same name as group
|
||||
self._addParam(key, row)
|
||||
name = QLabel(key)
|
||||
button = QToolButton()
|
||||
button.setToolButtonStyle(Qt.ToolButtonStyle.ToolButtonTextOnly)
|
||||
button.setText('+')
|
||||
button.pressed.connect(
|
||||
lambda group=key: self._toggleGroupCollapse(group))
|
||||
box = QHBoxLayout()
|
||||
box.addWidget(name)
|
||||
box.addWidget(button)
|
||||
groupLabel = QWidget()
|
||||
groupLabel.setLayout(box)
|
||||
|
||||
l = self.moduleDisplay.layout()
|
||||
label = l.itemAtPosition(row, 0).widget()
|
||||
l.replaceWidget(label, groupLabel)
|
||||
row += 1
|
||||
old = self._paramWidgets[key].pop(0)
|
||||
old.setParent(None)
|
||||
self._paramWidgets[key].append(groupLabel)
|
||||
self._setParamHidden(key, True)
|
||||
else:
|
||||
name = QLabel(key)
|
||||
button = QToolButton()
|
||||
button.setToolButtonStyle(Qt.ToolButtonStyle.ToolButtonTextOnly)
|
||||
button.setText('+')
|
||||
button.pressed.connect(
|
||||
lambda group=key: self._toggleGroupCollapse(group))
|
||||
box = QHBoxLayout()
|
||||
box.addWidget(name)
|
||||
box.addWidget(button)
|
||||
groupLabel = QWidget()
|
||||
groupLabel.setLayout(box)
|
||||
|
||||
l = self.moduleDisplay.layout()
|
||||
l.addWidget(groupLabel, row, 0)
|
||||
row += 1
|
||||
self._paramWidgets[key] = [groupLabel]
|
||||
self._groups[key].append(key)
|
||||
self._setParamHidden(key, True)
|
||||
for p in self._groups[key]:
|
||||
if p == key:
|
||||
continue
|
||||
self._addParam(p, row)
|
||||
row += 1
|
||||
self._setParamHidden(p, True)
|
||||
else:
|
||||
self._addParam(key, row)
|
||||
row += 1
|
||||
self._setParamHidden(key, True)
|
||||
|
||||
self._addCommands(row)
|
||||
|
||||
@ -129,6 +187,40 @@ class ModuleWidget(QWidget):
|
||||
|
||||
node.newData.connect(self._updateValue)
|
||||
|
||||
def _initModuleInfo(self):
|
||||
props = dict(self._node.getModuleProperties(self._name))
|
||||
self.moduleName.setText(self._name)
|
||||
self.moduleDescription.setText(props.get('description',
|
||||
'no description provided'))
|
||||
|
||||
self.groupInfo.setText(props.get('group', '-'))
|
||||
feats = ','.join(props.get('features', [])) or '-'
|
||||
self.featuresInfo.setText(feats)
|
||||
self.implementationInfo.setText(props.pop('implementation', 'MISSING'))
|
||||
ifaces = ','.join(props.pop('interface_classes', [])) or '-'
|
||||
self.interfaceClassesInfo.setText(ifaces)
|
||||
|
||||
# any additional properties are added after the standard ones
|
||||
row = 2
|
||||
count = 0
|
||||
for prop, value in props.items():
|
||||
l = QHBoxLayout()
|
||||
l.setContentsMargins(0,0,0,0)
|
||||
name = QLabel('<b>%s:</b>' % prop.capitalize())
|
||||
val = QLabel(str(value))
|
||||
val.setWordWrap(True)
|
||||
l.addWidget(name)
|
||||
l.addWidget(val)
|
||||
additional = QWidget()
|
||||
additional.setLayout(l)
|
||||
self.infoGrid.layout().addWidget(
|
||||
additional, row + count // 2, count % 2)
|
||||
count += 1
|
||||
|
||||
@pyqtSlot()
|
||||
def on_showDetailsBtn_pressed(self):
|
||||
self.showDetails(not self.detailed)
|
||||
|
||||
def _updateValue(self, mod, param, val):
|
||||
if mod != self._name:
|
||||
return
|
||||
@ -141,6 +233,13 @@ class ModuleWidget(QWidget):
|
||||
else '%s') % (val.value,)
|
||||
self._paramDisplays[param].setText(strvalue)
|
||||
|
||||
def _addParam(self, param, row):
|
||||
paramProps = self._node.getProperties(self._name, param)
|
||||
if paramProps['readonly']:
|
||||
self._addRParam(param, row)
|
||||
else:
|
||||
self._addRWParam(param, row)
|
||||
|
||||
def _addRParam(self, param, row):
|
||||
props = self._node.getProperties(self._name, param)
|
||||
|
||||
@ -248,14 +347,32 @@ class ModuleWidget(QWidget):
|
||||
for w in self._paramWidgets[param]:
|
||||
w.setHidden(hidden)
|
||||
|
||||
def _setGroupHidden(self, group):
|
||||
pass
|
||||
def _toggleGroupCollapse(self, group):
|
||||
collapsed = not self._groupStatus.get(group, True)
|
||||
self._groupStatus[group] = collapsed
|
||||
for param in self._groups[group]:
|
||||
if param == group: # dont hide the top level
|
||||
continue
|
||||
self._setParamHidden(param, collapsed)
|
||||
|
||||
def rebuildAdvanced(self, advanced):
|
||||
for param in self._paramWidgets:
|
||||
def _setGroupHidden(self, group, show):
|
||||
for param in self._groups[group]:
|
||||
if show and param == group: # dont hide the top level
|
||||
self._setParamHidden(param, False)
|
||||
elif show and self._groupStatus.get(group, False):
|
||||
self._setParamHidden(param, False)
|
||||
else:
|
||||
self._setParamHidden(param, True)
|
||||
|
||||
def showDetails(self, show):
|
||||
self.detailed = show
|
||||
self.infoGrid.setHidden(not show)
|
||||
for param in self.independentParams:
|
||||
if param in ['value', 'status', 'target']:
|
||||
continue
|
||||
self._setParamHidden(param, not advanced)
|
||||
self._setParamHidden(param, not show)
|
||||
for group in self._groups:
|
||||
self._setGroupHidden(group, show)
|
||||
|
||||
def _button_pressed(self, param):
|
||||
target = self._paramInputs[param].text()
|
||||
|
@ -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
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -8323,6 +8323,52 @@ a\x9a\x8f4}u\xca\xb4\xaf\xec\xff\x06\x8c2\xc4\xc2\
|
||||
\x8f\xbaV\xd0(wdV\x7f\xc8\xd8\x90> Z}\
|
||||
\xa3\xb8\xff\x12`\x00\x16\xa7\x22\x09\x8f\x08\x940\x00\x00\
|
||||
\x00\x00IEND\xaeB`\x82\
|
||||
\x00\x00\x02\xbc\
|
||||
\x89\
|
||||
PNG\x0d\x0a\x1a\x0a\x00\x00\x00\x0dIHDR\x00\
|
||||
\x00\x00\x10\x00\x00\x00\x10\x08\x06\x00\x00\x00\x1f\xf3\xffa\
|
||||
\x00\x00\x00\x19tEXtSoftware\
|
||||
\x00Adobe ImageRead\
|
||||
yq\xc9e<\x00\x00\x02^IDATx\xda\x8c\
|
||||
\x93Mh\x13Q\x10\xc7\xdf~\x9ad\x93l\xb6\xb2Z\
|
||||
\xabM\xfa\x15\xb1!m\xb5U\xe3\xa1\xa41\x15\x04\x8b\
|
||||
\xa9\x14\x14\x11\x02\x05\x0b\xea\xb5\xad\x87\x9e\xedU(\x08\
|
||||
\xbdi\xc1\x8b(\xf5\x10\x10\xe9A\xd0\x83\x1f\x84B!\
|
||||
P\x1bM)\xbd\xa4\x11\x83&\xa91\xc9n6\xbb\xeb\
|
||||
\xbc\x90b\xb3n\xc1\x81\x1f\xef\x83\xff\xcc\x9b\x99\xf7\x1e\
|
||||
\x11\x89D\x90\x99Q\x14\x85\x11\x08\x82\x18\x80e\x1b\xc0\
|
||||
\x01% \xa3\xebzBU\xd5<\x80ht\xb0u\xda\
|
||||
\xec\xfc\xc5\xf3\xa3\x91\xde3\x83\xe7z\xdaDgkU\
|
||||
\x96s\xf1x\xfc\xeb\x9bW/\xbb\x8a\xbb\xb9\xb7\xa0\xd9\
|
||||
\xa6\xbc^/\x82\x88M\x80\x09\x9c\xd356q{6\
|
||||
\xd8}\xf2\x94\xdf}\xc4)\xd2$A\xb3\x0c\xe3\xf0t\
|
||||
txZ\xbb\xfa\x1c\xc9\xc4*)K\xe5m\x12\xa7a\
|
||||
\xa4V\xab\x0d\x06\xc2\x11\x9fC8\xec\x118\x96%\x09\
|
||||
D\xec\xa5\x85\xe7\xee\x13\xc7z\x86/_\xeb\xc3:\xba\
|
||||
Z\xad\x9a\xa5\xdf\xee\xf5\x0f\xb9\xf1$\x93\xafH\x18\xa3\
|
||||
\xc07p\xb6sy\xe9Q;\xad(\x8aY\x00\xdeb\
|
||||
\xb5\xb6\xa8Z\xbd\x1c\xd4{\xdc\xe94\x0a\xd2\xb9\x0a\x03\
|
||||
\xbe\xfcA\x19\x945E*\x22\xea\x10o\xe6\x5c/E\
|
||||
\xad\x16\xc1\xb7L\xca\xb2\x8cLH'\xd7>eh\x8a\
|
||||
\xa4\x94\x9a\xae\x1a\x9dqb\xebk\x1fw\xb0\x8e\x14\x04\
|
||||
\x01\xf1<\x8f\x1c\x0e\x07\xb2\xdb\xed\x88\xe38\xc4\xb2\xec\
|
||||
f\xec\xf9R\x9a\xa9\xfdV\xaa\xaa\xd6|2IP\xbb\
|
||||
?\xbfg\x1f/.$K\xa5\xd2*i\x8c\x0e\xd7\xe8\
|
||||
a\x18f\xfc\xde\x9d\xbb\xf3S7\xaf\xc6Wb/R\
|
||||
\xba\x22\x95\xad,e!T\xb9\xb2\x12[\xfer}\xfc\
|
||||
\xca\x87\x8d\xcf\xeb\xaf%I\xfaA\x84\xc3a\xa4i\xda\
|
||||
\x1e>\x9b\x8d\x9b\x98\x9e\xbe\xff \x1a\xbd5\x9f\xcf\xe7\
|
||||
\x9eAL?\xd0\x0d\xe0^\xfc\x02\xb6\x80w6\x9b-\
|
||||
\xebr\xb9\xfe\xbeD8\xf9\x82(\x1e\x8d\xcc\xcc\xcc\xcd\
|
||||
E\xa37\x1e\x82\xf3S\xd8\xde\x046\xcc\x9a\x08o\x00\
|
||||
e\xb3Y\x84B\xa1\x10\x0a\x06\x83c\x93\x93S\x0b\x89\
|
||||
\xc4\x96\xde\xdf\x7fz\x91\xa6\xe9!\xfc\x17\xe0\x1f@\xcd\
|
||||
\xe4?4\x99\xdb\xedF\x81@`6\x95\xca\xea##\
|
||||
\xa3O\xc0\xf9\x12v\xfc_\xc3J\x8b(\x8a\xc3PB\
|
||||
\xa8P(|\x83\xd4\xde\xc3\x1e\xbe\xbaZ\x03e\xdf\xa8\
|
||||
\xec[c\x8d\x8a\x03\xe0>\xb44F\xbd\x81f\x82j\
|
||||
\x18\xeb\xba?\x02\x0c\x00\xdbg#\xc50\xdaG\x97\x00\
|
||||
\x00\x00\x00IEND\xaeB`\x82\
|
||||
\x00\x00\x02\xd9\
|
||||
\x89\
|
||||
PNG\x0d\x0a\x1a\x0a\x00\x00\x00\x0dIHDR\x00\
|
||||
@ -8619,6 +8665,10 @@ qt_resource_name = b"\
|
||||
\x0aeKd\
|
||||
\x00c\
|
||||
\x00o\x00n\x00n\x00e\x00c\x00t\
|
||||
\x00\x07\
|
||||
\x0a\xca\x80\xf3\
|
||||
\x00d\
|
||||
\x00e\x00t\x00a\x00i\x00l\x00s\
|
||||
\x00\x04\
|
||||
\x00\x07\xab`\
|
||||
\x00s\
|
||||
@ -8640,58 +8690,60 @@ qt_resource_name = b"\
|
||||
qt_resource_struct = b"\
|
||||
\x00\x00\x00\x00\x00\x02\x00\x00\x00\x03\x00\x00\x00\x01\
|
||||
\x00\x00\x00\x00\x00\x00\x00\x00\
|
||||
\x00\x00\x00\x10\x00\x02\x00\x00\x00\x08\x00\x00\x00\x1b\
|
||||
\x00\x00\x00\x10\x00\x02\x00\x00\x00\x08\x00\x00\x00\x1c\
|
||||
\x00\x00\x00\x00\x00\x00\x00\x00\
|
||||
\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\x15\
|
||||
\x00\x00\x00\x00\x00\x02\x00\x00\x00\x07\x00\x00\x00\x15\
|
||||
\x00\x00\x00\x00\x00\x00\x00\x00\
|
||||
\x00\x00\x00\x1e\x00\x02\x00\x00\x00\x11\x00\x00\x00\x04\
|
||||
\x00\x00\x00\x00\x00\x00\x00\x00\
|
||||
\x00\x00\x008\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\
|
||||
\x00\x00\x01\x84\xcd\xf2r)\
|
||||
\x00\x00\x01\x86\xc5\x04*\x88\
|
||||
\x00\x00\x01,\x00\x00\x00\x00\x00\x01\x00\x00\x9bI\
|
||||
\x00\x00\x01\x84\xcd\xf2r)\
|
||||
\x00\x00\x01\x86\xc5\x04*\x88\
|
||||
\x00\x00\x00\x5c\x00\x00\x00\x00\x00\x01\x00\x00,\xba\
|
||||
\x00\x00\x01\x84\xcd\xf2r)\
|
||||
\x00\x00\x01\x86\xc5\x04*\x89\
|
||||
\x00\x00\x02\x0a\x00\x00\x00\x00\x00\x01\x00\x01\x5c\x85\
|
||||
\x00\x00\x01\x84\xcd\xf2r)\
|
||||
\x00\x00\x01\x86\xc5\x04*\x88\
|
||||
\x00\x00\x01N\x00\x00\x00\x00\x00\x01\x00\x00\xa9\xb9\
|
||||
\x00\x00\x01\x84\xcd\xf2r)\
|
||||
\x00\x00\x01\x86\xc5\x04*\x88\
|
||||
\x00\x00\x01\x04\x00\x00\x00\x00\x00\x01\x00\x00\x83\xa0\
|
||||
\x00\x00\x01\x84\xcd\xf2r)\
|
||||
\x00\x00\x01\x86\xc5\x04*\x88\
|
||||
\x00\x00\x01\x8c\x00\x00\x00\x00\x00\x01\x00\x00\xc5<\
|
||||
\x00\x00\x01\x84\xcd\xf2r*\
|
||||
\x00\x00\x01\x86\xc5\x04*\x89\
|
||||
\x00\x00\x00\x8a\x00\x00\x00\x00\x00\x01\x00\x00Gz\
|
||||
\x00\x00\x01\x84\xcd\xf2r)\
|
||||
\x00\x00\x01\x86\xc5\x04*\x89\
|
||||
\x00\x00\x01\xa2\x00\x00\x00\x00\x00\x01\x00\x00\xce\x02\
|
||||
\x00\x00\x01\x84\xcd\xf2r*\
|
||||
\x00\x00\x01\x86\xc5\x04*\x89\
|
||||
\x00\x00\x01\xc0\x00\x01\x00\x00\x00\x01\x00\x01\x11\xd6\
|
||||
\x00\x00\x01\x84\xcd\xf2r)\
|
||||
\x00\x00\x01\x86\xc5\x04*\x89\
|
||||
\x00\x00\x00\xe4\x00\x00\x00\x00\x00\x01\x00\x00q\xfa\
|
||||
\x00\x00\x01\x84\xcd\xf2r*\
|
||||
\x00\x00\x01\x86\xc5\x04*\x89\
|
||||
\x00\x00\x01v\x00\x00\x00\x00\x00\x01\x00\x00\xbc\xec\
|
||||
\x00\x00\x01\x84\xcd\xf2r*\
|
||||
\x00\x00\x01\x86\xc5\x04*\x89\
|
||||
\x00\x00\x01\xf4\x00\x00\x00\x00\x00\x01\x00\x01Ij\
|
||||
\x00\x00\x01\x84\xcd\xf2r)\
|
||||
\x00\x00\x01\x86\xc5\x04*\x89\
|
||||
\x00\x00\x00\xca\x00\x00\x00\x00\x00\x01\x00\x00fq\
|
||||
\x00\x00\x01\x84\xcd\xf2r)\
|
||||
\x00\x00\x01\x86\xc5\x04*\x89\
|
||||
\x00\x00\x01\xd8\x00\x00\x00\x00\x00\x01\x00\x01\x12\x91\
|
||||
\x00\x00\x01\x84\xcd\xf2r)\
|
||||
\x00\x00\x01\x86\xc5\x04*\x88\
|
||||
\x00\x00\x00p\x00\x00\x00\x00\x00\x01\x00\x005\xfe\
|
||||
\x00\x00\x01\x84\xcd\xf2r)\
|
||||
\x00\x00\x01\x86\xc5\x04*\x88\
|
||||
\x00\x00\x00\xaa\x00\x00\x00\x00\x00\x01\x00\x00]\xc9\
|
||||
\x00\x00\x01\x84\xcd\xf2r)\
|
||||
\x00\x00\x03\x0c\x00\x00\x00\x00\x00\x01\x00\x02\x0c \
|
||||
\x00\x00\x01\x86\xc5\x04*\x88\
|
||||
\x00\x00\x03 \x00\x00\x00\x00\x00\x01\x00\x02\x0e\xe0\
|
||||
\x00\x00\x01\x86\xb5\xb8\x9e\xf4\
|
||||
\x00\x00\x02\xd6\x00\x00\x00\x00\x00\x01\x00\x02\x04&\
|
||||
\x00\x00\x02\xea\x00\x00\x00\x00\x00\x01\x00\x02\x06\xe6\
|
||||
\x00\x00\x01\x86\xb5\xb8\x9e\xf4\
|
||||
\x00\x00\x02\xb2\x00\x00\x00\x00\x00\x01\x00\x01\xfe\xab\
|
||||
\x00\x00\x01\x86\xb5\xb8\x9e\xf4\
|
||||
\x00\x00\x02\xf6\x00\x00\x00\x00\x00\x01\x00\x02\x09\x8e\
|
||||
\x00\x00\x03\x0a\x00\x00\x00\x00\x00\x01\x00\x02\x0cN\
|
||||
\x00\x00\x01\x86\xb5\xb8\x9e\xf4\
|
||||
\x00\x00\x02\xe4\x00\x00\x00\x00\x00\x01\x00\x02\x07\x03\
|
||||
\x00\x00\x02\xf8\x00\x00\x00\x00\x00\x01\x00\x02\x09\xc3\
|
||||
\x00\x00\x01\x86\xb5\xb8\x9e\xf4\
|
||||
\x00\x00\x02\xc2\x00\x00\x00\x00\x00\x01\x00\x02\x017\
|
||||
\x00\x00\x01\x86\xb5\xb8\x9e\xf4\
|
||||
\x00\x00\x02\xd6\x00\x00\x00\x00\x00\x01\x00\x02\x04&\
|
||||
\x00\x00\x01\x86\xc5\x04*\x8e\
|
||||
\x00\x00\x02@\x00\x00\x00\x00\x00\x01\x00\x01\x96\xda\
|
||||
\x00\x00\x01\x86\xb5\xb8\x9e\xf4\
|
||||
\x00\x00\x02\xa4\x00\x00\x00\x00\x00\x01\x00\x01\xf8\xb7\
|
||||
|
@ -13,9 +13,15 @@
|
||||
<property name="windowTitle">
|
||||
<string>Form</string>
|
||||
</property>
|
||||
<layout class="QGridLayout" name="gridLayout_2">
|
||||
<item row="0" column="0">
|
||||
<layout class="QHBoxLayout" name="horizontalLayout" stretch="1,1,10,0">
|
||||
<layout class="QVBoxLayout" name="verticalLayout">
|
||||
<property name="topMargin">
|
||||
<number>3</number>
|
||||
</property>
|
||||
<property name="bottomMargin">
|
||||
<number>6</number>
|
||||
</property>
|
||||
<item>
|
||||
<layout class="QHBoxLayout" name="horizontalLayout" stretch="1,1,10,0,0">
|
||||
<item>
|
||||
<widget class="QLabel" name="moduleName">
|
||||
<property name="font">
|
||||
@ -28,6 +34,9 @@
|
||||
<property name="text">
|
||||
<string>moduleName</string>
|
||||
</property>
|
||||
<property name="alignment">
|
||||
<set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop</set>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
@ -46,7 +55,10 @@
|
||||
<item>
|
||||
<widget class="QLabel" name="moduleDescription">
|
||||
<property name="text">
|
||||
<string>TextLabel</string>
|
||||
<string>description</string>
|
||||
</property>
|
||||
<property name="alignment">
|
||||
<set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter</set>
|
||||
</property>
|
||||
<property name="wordWrap">
|
||||
<bool>true</bool>
|
||||
@ -66,12 +78,132 @@
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QToolButton" name="showDetailsBtn">
|
||||
<property name="text">
|
||||
<string>...</string>
|
||||
</property>
|
||||
<property name="icon">
|
||||
<iconset resource="../../../resources/frappy-gui.qrc">
|
||||
<normaloff>:/icons/details</normaloff>:/icons/details</iconset>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
<item row="1" column="0">
|
||||
<item>
|
||||
<widget class="QWidget" name="infoGrid" native="true">
|
||||
<layout class="QGridLayout" name="infoGrid_0">
|
||||
<property name="leftMargin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="topMargin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="rightMargin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="bottomMargin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="horizontalSpacing">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="verticalSpacing">
|
||||
<number>3</number>
|
||||
</property>
|
||||
<item row="0" column="0">
|
||||
<layout class="QHBoxLayout" name="horizontalLayout_2">
|
||||
<item>
|
||||
<widget class="QLabel" name="label">
|
||||
<property name="text">
|
||||
<string><b>Implementation:</b></string>
|
||||
</property>
|
||||
<property name="textFormat">
|
||||
<enum>Qt::RichText</enum>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QLabel" name="implementationInfo">
|
||||
<property name="text">
|
||||
<string><impl></string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
<item row="0" column="1">
|
||||
<layout class="QHBoxLayout" name="horizontalLayout_3">
|
||||
<item>
|
||||
<widget class="QLabel" name="label_4">
|
||||
<property name="text">
|
||||
<string><b>Features:</b></string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QLabel" name="featuresInfo">
|
||||
<property name="text">
|
||||
<string><features></string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
<item row="1" column="0">
|
||||
<layout class="QHBoxLayout" name="horizontalLayout_4">
|
||||
<item>
|
||||
<widget class="QLabel" name="label_6">
|
||||
<property name="text">
|
||||
<string><b>Interface Classes:</b></string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QLabel" name="interfaceClassesInfo">
|
||||
<property name="text">
|
||||
<string><interfaces></string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
<item row="1" column="1">
|
||||
<layout class="QHBoxLayout" name="horizontalLayout_5">
|
||||
<item>
|
||||
<widget class="QLabel" name="label_8">
|
||||
<property name="text">
|
||||
<string><b>Group:</b></string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QLabel" name="groupInfo">
|
||||
<property name="text">
|
||||
<string><group></string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<layout class="QGridLayout" name="moduleDisplay"/>
|
||||
</item>
|
||||
<item row="2" column="0">
|
||||
<item>
|
||||
<widget class="QFrame" name="frame">
|
||||
<property name="frameShape">
|
||||
<enum>QFrame::HLine</enum>
|
||||
</property>
|
||||
<property name="frameShadow">
|
||||
<enum>QFrame::Raised</enum>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<spacer name="verticalSpacer">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Vertical</enum>
|
||||
@ -86,6 +218,8 @@
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
<resources/>
|
||||
<resources>
|
||||
<include location="../../../resources/frappy-gui.qrc"/>
|
||||
</resources>
|
||||
<connections/>
|
||||
</ui>
|
||||
|
@ -73,6 +73,53 @@
|
||||
<property name="title">
|
||||
<string>NodeInfo</string>
|
||||
</property>
|
||||
<layout class="QGridLayout" name="gridLayout" columnstretch="1,3">
|
||||
<item row="0" column="0">
|
||||
<widget class="QLabel" name="label">
|
||||
<property name="text">
|
||||
<string>Host:</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="1">
|
||||
<widget class="QLabel" name="hostLabel">
|
||||
<property name="text">
|
||||
<string><host></string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="0">
|
||||
<widget class="QLabel" name="label_2">
|
||||
<property name="text">
|
||||
<string>Protocoll Version:</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="1">
|
||||
<widget class="QLabel" name="protocolLabel">
|
||||
<property name="text">
|
||||
<string><version></string>
|
||||
</property>
|
||||
<property name="wordWrap">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="2" column="0">
|
||||
<widget class="QLabel" name="label_5">
|
||||
<property name="text">
|
||||
<string>Description:</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="3" column="0" colspan="2">
|
||||
<widget class="QPlainTextEdit" name="descriptionEdit">
|
||||
<property name="readOnly">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</widget>
|
||||
</item>
|
||||
|
@ -29,6 +29,7 @@
|
||||
<file alias="save.png">cfg_editor/icons/save.png</file>
|
||||
</qresource>
|
||||
<qresource prefix="icons">
|
||||
<file alias="details">icons/magnifier.png</file>
|
||||
<file alias="stop">icons/cross-circle.png</file>
|
||||
<file alias="trash">icons/bin.png</file>
|
||||
<file alias="plot-add">icons/system-monitor--plus.png</file>
|
||||
|
BIN
resources/icons/magnifier.png
Normal file
BIN
resources/icons/magnifier.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 700 B |
Loading…
x
Reference in New Issue
Block a user