From 03beb10c4bc63a9285961a5c49546b50520bad1f Mon Sep 17 00:00:00 2001 From: Sven Augustin Date: Mon, 19 Dec 2022 13:38:54 +0100 Subject: [PATCH] added and use MDIArea.findSubWindow --- mainwin.py | 29 ++++++++++++----------------- mdi.py | 6 ++++++ 2 files changed, 18 insertions(+), 17 deletions(-) diff --git a/mainwin.py b/mainwin.py index 4e99ffb..2438ab4 100644 --- a/mainwin.py +++ b/mainwin.py @@ -44,30 +44,25 @@ class MainWindow(QMainWindow): def new_plot(self, name, cfg): desc = PlotDescription(**cfg) self.lst.add(name, desc) - for sub in self.mdi.subWindowList(): - if sub.windowTitle() == name: - return - self.sig_make_new_plot.emit(name, desc) + if not self.mdi.findSubWindow(name): + self.sig_make_new_plot.emit(name, desc) def append_data(self, name, point): - lst = self.lst - lst.append(name, point) - for sub in self.mdi.subWindowList(): - if sub.windowTitle() == name: - desc = lst.data[name] - sub.plot.setData(*desc.data) + self.lst.append(name, point) + sub = self.mdi.findSubWindow(name) + if sub: + desc = self.lst.data[name] + sub.plot.setData(*desc.data) def on_select_list_item(self, index): name, desc = self.lst.get(index) - - for sub in self.mdi.subWindowList(): - if sub.windowTitle() == name: - self.mdi.setActiveSubWindow(sub) - return - - self.on_make_new_plot(name, desc) + sub = self.mdi.findSubWindow(name) + if sub: + self.mdi.setActiveSubWindow(sub) + else: + self.on_make_new_plot(name, desc) def on_make_new_plot(self, *args, **kwargs): diff --git a/mdi.py b/mdi.py index 54612fa..8943f34 100644 --- a/mdi.py +++ b/mdi.py @@ -62,6 +62,12 @@ class MDIArea(QMdiArea): painter.end() + def findSubWindow(self, name): + for sub in self.subWindowList(): + if sub.windowTitle() == name: + return sub + + class MDISubPlot(QMdiSubWindow):