forked from M-Labs/artiq
1
0
Fork 0

draft export_list extend

Simon Renblad 2024-04-19 17:32:44 +08:00
parent 2e48426bf7
commit 784cac4d48
1 changed files with 35 additions and 7 deletions

View File

@ -868,11 +868,22 @@ class MoninjTreeWidget(pg.TreeWidget):
return False
return True
def add_widget(self, widget):
def _find_group(self, group):
for i in range(self.topLevelItemCount()):
item = self.topLevelItem(i)
if item.text(0) == group:
return item
return self.invisibleRootItem()
def add_widget(self, widget, group=None):
item = pg.TreeWidgetItem()
item.setFlags(item.flags() & ~QtCore.Qt.ItemFlag.ItemIsDropEnabled)
self._widgets[widget.uid] = widget
self.addTopLevelItem(item)
if group is None:
self.addTopLevelItem(item)
else:
group_item = self._find_group(group)
group_item.addChild(item)
self.setItemWidget(item, 0, widget)
def _remove_item_action(self):
@ -906,13 +917,30 @@ class MoninjTreeWidget(pg.TreeWidget):
self.remove_widget(child)
def extend(self, d):
pass
def clear(self):
pass
for item in d:
if isinstance(item, dict):
self.add_group(item["name"])
for widget in item["widgets"]:
self.add_widget(widget, group=item["name"])
else:
self.add_widget(item)
def export_list(self):
pass
export_list = list()
for i in range(self.topLevelItemCount()):
item = self.topLevelItem(i)
widget = self.itemWidget(item, 0)
if widget is None:
group = dict()
group["name"] = item.text(0)
group["widgets"] = list()
for j in item.childCount():
child = item.child(j)
widget = self.itemWidget(child, 0)
group["widgets"].append(widget.uid)
export_list.append(group)
else:
export_list.append(widget.uid)
class MonInjDock(QtWidgets.QDockWidget):