Scroll Module area instead of replacing widgets

Change-Id: Id06eaabee294e032a71e7b28255a9b818763737e
Reviewed-on: https://forge.frm2.tum.de/review/c/secop/frappy/+/30638
Tested-by: Jenkins Automated Tests <pedersen+jenkins@frm2.tum.de>
Reviewed-by: Georg Brandl <g.brandl@fz-juelich.de>
Reviewed-by: Alexander Zaft <a.zaft@fz-juelich.de>
This commit is contained in:
Alexander Zaft 2023-03-09 13:43:36 +01:00 committed by Markus Zolliker
parent 23c9aa6038
commit d8621bdc2c
2 changed files with 11 additions and 39 deletions

View File

@ -102,12 +102,12 @@ class ModuleItem(QTreeWidgetItem):
class ModuleOverview(QTreeWidget):
itemChanged = pyqtSignal(str, str, str, str)
# current module/param, prev module/param
itemChanged = pyqtSignal(str, str)
def __init__(self, node, parent=None):
super().__init__(parent)
self._node = node
self._modules = {}
self.last_was_clear = False
#self.setHeaderHidden(True)
#self.setChildIndicatorPolicy(QTreeWidgetItem.DontShowIndicator)
@ -145,15 +145,7 @@ class ModuleOverview(QTreeWidget):
return super().mouseReleaseEvent(event)
def handleCurrentItemChanged(self, current, previous):
if previous is None or self.last_was_clear:
pmod = ''
pparam = ''
self.last_was_clear = False
else:
pmod = previous.module
pparam = previous.param or ''
cparam = current.param or ''
self.itemChanged.emit(current.module, cparam, pmod, pparam)
self.itemChanged.emit(current.module, current.param or '')
def setToDisconnected(self):
for module in self._modules.values():
@ -184,8 +176,6 @@ class ModuleOverview(QTreeWidget):
selected = self.selectedItems()
if not selected:
return
prev = selected[0]
pmod, pparam = prev.module, prev.param
self.clearSelection()
self.itemChanged.emit('', '', pmod, pparam)
self.itemChanged.emit('', '')
self.last_was_clear = True

View File

@ -6,7 +6,6 @@ from frappy.gui.qt import QCursor, QFont, QFontMetrics, QIcon, QInputDialog, \
toHtmlEscaped
from frappy.errors import SECoPError
from frappy.gui.modulectrl import ModuleCtrl
from frappy.gui.moduleoverview import ModuleOverview
from frappy.gui.modulewidget import ModuleWidget
from frappy.gui.paramview import ParameterView
@ -98,7 +97,6 @@ class NodeWidget(QWidget):
self.detailed = False
self._modules = OrderedDict()
self._detailedModules = {}
self._detailedParams = {}
self._activePlots = {}
@ -127,16 +125,10 @@ class NodeWidget(QWidget):
widget.showDetails(self.detailed)
self.noPlots.connect(widget.plotsPresent)
self._modules[module] = widget
details = ModuleCtrl(node, module)
self._detailedModules[module] = details
viewLayout.addWidget(details)
details.setHidden(True)
self._detailedParams[module] = {}
for param in node.getParameters(module):
view = ParameterView(node, module, param)
self._detailedParams[module][param] = view
view.setHidden(True)
viewLayout.addWidget(view)
viewLayout.addWidget(widget)
self._initNodeInfo()
@ -178,24 +170,14 @@ class NodeWidget(QWidget):
def getSecNode(self):
return self._node
def changeViewContent(self, module, param, prevmod, prevparam):
if prevmod == '':
for mod in self._modules.values():
mod.setHidden(True)
elif prevparam == '':
self._detailedModules[prevmod].setHidden(True)
def changeViewContent(self, module, param):
if module == '' and param == '':
return # for now, don't do anything when resetting selection
if param == '':
self.view.ensureWidgetVisible(self._modules[module])
else:
self._detailedParams[prevmod][prevparam].setHidden(True)
if module == '':
# no module -> reset to overview
for mod in self._modules.values():
mod.setHidden(False)
elif param == '':
# set to single module view
self._detailedModules[module].setHidden(False)
else:
# set to single param view
self._detailedParams[module][param].setHidden(False)
pw = self._modules[module]._paramWidgets[param][0]
self.view.ensureWidgetVisible(pw)
def _treeContextMenu(self, pos):
index = self.tree.indexAt(pos)