This commit is contained in:
2023-01-11 17:43:21 +01:00
parent 16bdd69c24
commit 11fa6ac0db

View File

@ -74,15 +74,7 @@ class MainWindow(QMainWindow):
def on_select_list_item(self, item):
item.set_alarm(False)
name = item.key
desc = item.value
sub = self.mdi.findSubWindow(name)
if sub:
self.mdi.setActiveSubWindow(sub)
else:
self.on_make_new_plot(name, desc)
self.plot_single_item(item)
def on_plot_selected(self):
selected = self.lst.selectedItems()
@ -90,22 +82,38 @@ class MainWindow(QMainWindow):
return
if len(selected) == 1:
item = selected[0]
name, desc = item.key, item.value
self.on_make_new_plot(name, desc)
self.plot_single_item(item)
else:
pairs = ((i.key, i.value) for i in selected)
names, descs = zip(*pairs)
name = " | ".join(names)
self.on_make_new_multi_plot(name, descs)
self.plot_multiple_items(selected)
def plot_single_item(self, item):
item.set_alarm(False)
name, desc = item.key, item.value
self.activate_or_make_subwin(MDISubPlot, name, desc)
def plot_multiple_items(self, items):
#TODO: unset alarm status for all items?
pairs = ((i.key, i.value) for i in items)
names, descs = zip(*pairs)
name = " | ".join(names)
self.activate_or_make_subwin(MDISubMultiPlot, name, descs)
def activate_or_make_subwin(self, MDISubType, name, *args, **kwargs):
sub = self.mdi.findSubWindow(name)
if sub: #TODO check type? what to do for mismatches?
self.mdi.setActiveSubWindow(sub)
else:
self.make_subwin(MDISubType, name, *args, **kwargs)
def make_subwin(self, MDISubType, name, *args, **kwargs):
sub = MDISubType(name, *args, **kwargs)
self.mdi.add(sub)
def on_make_new_plot(self, *args, **kwargs):
sub = MDISubPlot(*args, **kwargs)
self.mdi.add(sub)
def on_make_new_multi_plot(self, *args, **kwargs):
sub = MDISubMultiPlot(*args, **kwargs)
self.mdi.add(sub)
self.make_subwin(MDISubPlot, *args, **kwargs)