refactor
This commit is contained in:
@ -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)
|
||||
|
||||
|
||||
|
||||
|
Reference in New Issue
Block a user