use single signal for creating new subwins

This commit is contained in:
2023-04-17 23:09:50 +02:00
parent f80a7759fb
commit 3ef9032499

View File

@ -22,8 +22,7 @@ DESC_TYPE_TO_MDI_SUB_TYPE = {
class MainWindow(QMainWindow):
sig_make_new_plot = pyqtSignal(str, Description)
sig_make_new_image = pyqtSignal(str, Description)
sig_make_new_subwin = pyqtSignal(str, Description)
def __init__(self, *args, title="grum", host="localhost", port=8000, offline=False, add_examples=False, window_mode=MDIWindowMode.MULTI, **kwargs):
super().__init__(*args, **kwargs)
@ -97,8 +96,7 @@ class MainWindow(QMainWindow):
rst.server.register_function(self.set_data)
rst.server.register_function(self.new_image)
self.sig_make_new_plot.connect(self.on_make_new_plot)
self.sig_make_new_image.connect(self.on_make_new_image)
self.sig_make_new_subwin.connect(self.on_make_new_subwin)
def keyPressEvent(self, event):
@ -117,7 +115,7 @@ class MainWindow(QMainWindow):
desc = self.add_new_desc_to_list(PlotDescription, name, cfg)
if self.menu_settings.checkboxes["Open new plots"].isChecked():
if not self.mdi.findSubWindow(name):
self.sig_make_new_plot.emit(name, desc)
self.sig_make_new_subwin.emit(name, desc)
def append_data(self, name, point):
"""
@ -161,16 +159,15 @@ class MainWindow(QMainWindow):
if sub:
sub.pw.setImage(desc.data) #TODO lacks the list sync
else:
self.sig_make_new_image.emit(name, desc)
self.sig_make_new_subwin.emit(name, desc)
# Signal callbacks
def on_make_new_plot(self, name, desc):
self.make_subwin(MDISubPlot, name, desc)
def on_make_new_image(self, name, desc):
self.make_subwin(MDISubImage, name, desc)
def on_make_new_subwin(self, name, desc):
DescType = type(desc)
MDISubType = DESC_TYPE_TO_MDI_SUB_TYPE[DescType]
self.make_subwin(MDISubType, name, desc)
def on_dclick_list_item(self, item):
self.plot_single_item(item)