forked from M-Labs/artiq
moninj: add tree draft
parent
b5e762854b
commit
5813ccb6b7
|
@ -819,6 +819,48 @@ class _DeviceManager:
|
||||||
await self.mi_connection.close()
|
await self.mi_connection.close()
|
||||||
|
|
||||||
|
|
||||||
|
class MoninjTree(QtWidgets.QTreeWidget):
|
||||||
|
def __init__(self):
|
||||||
|
QtWidgets.QTreeWidget.__init__(self)
|
||||||
|
self.setDragDropMode(QtWidgets.QAbstractItemView.InternalMove)
|
||||||
|
self._groups = dict()
|
||||||
|
self._widgets = dict()
|
||||||
|
|
||||||
|
def add_widget(self, widget, group=None):
|
||||||
|
item = QtWidgets.QTreeWidgetItem([widget.to_model_path()])
|
||||||
|
self.setItemWidget(item, widget)
|
||||||
|
self._widgets[widget.to_model_path()] = widget
|
||||||
|
if group is not None:
|
||||||
|
self._get_group(group).addChild(item)
|
||||||
|
else:
|
||||||
|
self.addTopLevelItem(item)
|
||||||
|
|
||||||
|
def remove_widget(self, item):
|
||||||
|
widget = self.itemWidget(child, 0)
|
||||||
|
self.removeItemWidget(child, 0)
|
||||||
|
del self._widgets[widget.to_model_path()]
|
||||||
|
widget.deleteLater()
|
||||||
|
|
||||||
|
def add_group(self, group=None):
|
||||||
|
if group in self._groups:
|
||||||
|
raise SyntaxError("group name repeated")
|
||||||
|
group_item = QtWidgets.QTreeWidgetItem([group])
|
||||||
|
self.addTopLevelItem(group_item)
|
||||||
|
self._groups[group] = group_item
|
||||||
|
return group_item
|
||||||
|
|
||||||
|
def remove_group(self, group):
|
||||||
|
group_item = self._groups[group]
|
||||||
|
child_items = group_item.takeChildren()
|
||||||
|
for child in child_items:
|
||||||
|
self.remove_widget(child)
|
||||||
|
self.takeTopLevelItem(self.indexOfTopLevelItem(group_item))
|
||||||
|
del self._groups[group]
|
||||||
|
|
||||||
|
def _get_group(self, group):
|
||||||
|
return self._groups[group]
|
||||||
|
|
||||||
|
|
||||||
class MonInjDock(QtWidgets.QDockWidget):
|
class MonInjDock(QtWidgets.QDockWidget):
|
||||||
def __init__(self, schedule_ctl):
|
def __init__(self, schedule_ctl):
|
||||||
QtWidgets.QDockWidget.__init__(self, "MonInj")
|
QtWidgets.QDockWidget.__init__(self, "MonInj")
|
||||||
|
|
Loading…
Reference in New Issue