diff --git a/frappy/gui/modulewidget.py b/frappy/gui/modulewidget.py index b8c3197..5731a7a 100644 --- a/frappy/gui/modulewidget.py +++ b/frappy/gui/modulewidget.py @@ -123,6 +123,7 @@ class AnimatedLabelHandthrough(QWidget): class ModuleWidget(QWidget): plot = pyqtSignal(str) plotAdd = pyqtSignal(str) + paramDetails = pyqtSignal(str, str) def __init__(self, node, name, parent=None): super().__init__(parent) loadUi(self, 'modulewidget.ui') @@ -285,7 +286,7 @@ class ModuleWidget(QWidget): l.addWidget(nameLabel, row,0,1,1) l.addWidget(display, row,1,1,5) l.addWidget(unitLabel, row,6) - self._addPlotButtons(param, row) + self._addButtons(param, row) def _addRWParam(self, param, row): props = self._node.getProperties(self._name, param) @@ -316,9 +317,9 @@ class ModuleWidget(QWidget): l.addWidget(inputEdit, row,4,1,2) l.addWidget(unitLabel2, row,6,1,1) l.addWidget(submitButton, row, 7) - self._addPlotButtons(param, row) + self._addButtons(param, row) - def _addPlotButtons(self, param, row): + def _addButtons(self, param, row): if param == 'status': return plotButton = QToolButton() @@ -328,17 +329,24 @@ class ModuleWidget(QWidget): plotAddButton.setIcon(QIcon(':/icons/plot-add')) plotAddButton.setToolTip('Plot With...') + detailsButton= QToolButton() + detailsButton.setIcon(QIcon(':/icons/plot-add')) + detailsButton.setToolTip('show parameter details') + plotButton.clicked.connect(lambda: self.plot.emit(param)) plotAddButton.clicked.connect(lambda: self.plotAdd.emit(param)) + detailsButton.clicked.connect(lambda: self.showParamDetails(param)) self._addbtns.append(plotAddButton) plotAddButton.setDisabled(True) self._paramWidgets[param].append(plotButton) self._paramWidgets[param].append(plotAddButton) + self._paramWidgets[param].append(detailsButton) l = self.moduleDisplay.layout() l.addWidget(plotButton, row, 8) l.addWidget(plotAddButton, row, 9) + l.addWidget(detailsButton, row, 10) def _addCommands(self, startrow): cmdicons = { @@ -401,6 +409,9 @@ class ModuleWidget(QWidget): for group in self._groups: self._setGroupHidden(group, show) + def showParamDetails(self, param): + self.paramDetails.emit(self._name, param) + def _button_pressed(self, param): target = self._paramInputs[param].text() try: diff --git a/frappy/gui/nodewidget.py b/frappy/gui/nodewidget.py index 6f9fcd5..3b7c78c 100644 --- a/frappy/gui/nodewidget.py +++ b/frappy/gui/nodewidget.py @@ -148,12 +148,14 @@ class NodeWidget(QWidget): self.plotParam(module, param)) widget.plotAdd.connect(lambda param, module=module: self._plotPopUp(module, param)) + widget.paramDetails.connect(self.showDetailedParam) widget.showDetails(self.detailed) self.noPlots.connect(widget.plotsPresent) self._modules[module] = widget self._detailedParams[module] = {} for param in node.getParameters(module): view = ParameterView(node, module, param) + view.setWindowTitle('%s:%s:%s - Properties' % (self._node.equipmentId, module, param)) self._detailedParams[module][param] = view viewLayout.addWidget(widget) @@ -208,6 +210,9 @@ class NodeWidget(QWidget): if settings.value('highlightanimation', True, bool): widget.triggerAnimation() + def showDetailedParam(self, module, param): + self._detailedParams[module][param].show() + def _treeContextMenu(self, pos): index = self.tree.indexAt(pos) if not index.isValid(): diff --git a/frappy/gui/ui/paramview.ui b/frappy/gui/ui/paramview.ui index 9234e45..c2c9636 100644 --- a/frappy/gui/ui/paramview.ui +++ b/frappy/gui/ui/paramview.ui @@ -6,56 +6,68 @@ 0 0 - 100 - 100 + 387 + 190 Form - - - - - Qt::Vertical - - - - 20 - 40 - - - - - - + + + - + + 12 75 - false true + true - Parameter name: + <html><head/><body><p><span style=" font-size:12pt; font-weight:600; text-decoration: underline;">TextLabel</span></p></body></html> - - - - - - TextLabel + + Qt::RichText + + + Qt::AlignCenter - + + + + Qt::Vertical + + + QSizePolicy::Fixed + + + + 20 + 10 + + + + + + + + 0 + 0 + + - Properties + + + + Qt::AlignCenter @@ -76,22 +88,6 @@ - - - - Qt::Vertical - - - QSizePolicy::Fixed - - - - 20 - 20 - - - -