forked from M-Labs/artiq
draft export_list extend
This commit is contained in:
parent
2e48426bf7
commit
784cac4d48
|
@ -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
|
||||
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):
|
||||
|
|
Loading…
Reference in New Issue