def __init__(self, config, parent=None): super(PygestureMainWindow, self).__init__(parent) self.cfg = config self.session = None self.ui = Ui_PygestureMainWindow() self.ui.setupUi(self) self.record_thread = recorder.RecordThread(self.cfg.daq) self.init_paths() self.init_tabs() self.statusbar_label = QtWidgets.QLabel("not signed in") self.ui.statusbar.addPermanentWidget(self.statusbar_label) self.ui.actionNew.triggered.connect(self.show_new_session_dialog)
def __init__(self, config, parent=None): super(PygestureMainWindow, self).__init__(parent) self.cfg = config self.session = None self.ui = Ui_PygestureMainWindow() self.ui.setupUi(self) self.record_thread = recorder.RecordThread(self.cfg.daq) self.init_tabs() self.statusbar_label = QtWidgets.QLabel("not signed in") self.ui.statusbar.addPermanentWidget(self.statusbar_label) self.ui.actionNew.triggered.connect(self.show_new_session_dialog)
class PygestureMainWindow(QtWidgets.QMainWindow): def __init__(self, config, parent=None): super(PygestureMainWindow, self).__init__(parent) self.cfg = config self.session = None self.ui = Ui_PygestureMainWindow() self.ui.setupUi(self) self.record_thread = recorder.RecordThread(self.cfg.daq) self.init_tabs() self.statusbar_label = QtWidgets.QLabel("not signed in") self.ui.statusbar.addPermanentWidget(self.statusbar_label) self.ui.actionNew.triggered.connect(self.show_new_session_dialog) def closeEvent(self, event): if self.record_thread is not None: self.record_thread.kill() def init_tabs(self): self.permanent_tabs = [ ( "Signals", tabs.SignalWidget( self.cfg, self.record_thread, parent=self) ), ( "View", tabs.RecordingViewerWidget( self.cfg, parent=self), ), ( "Process", tabs.ProcessWidget( self.cfg, parent=self), ) ] for name, widget in self.permanent_tabs: self.ui.tabWidget.addTab(widget, name) def show_new_session_dialog(self): dialog = widgets.NewSessionDialog(self) if dialog.exec_(): data = dialog.get_data() self.new_session(data) def new_session(self, data): if data['pid'] == '' or data['sid'] == '': QtWidgets.QMessageBox.critical( self, "Error", "Session info incomplete.") return self.session = Session( self.cfg.data_path, data['pid'], data['sid'], data['task'], data['configuration'], data['hand']) # if session exists, make sure the user wants to overwrite it try: self.session.init_file_structure() except IOError: message = QtWidgets.QMessageBox().warning( self, "Warning", "Session directory already exists.\nOverwrite?", QtWidgets.QMessageBox.Yes | QtWidgets.QMessageBox.No) if message == QtWidgets.QMessageBox.No: self.session = None return else: self.session.init_file_structure(force=True) self.remove_session_tab() if self.session.task == "train": name = "Train" widget = train.TrainWidget( self.cfg, self.record_thread, self.session, parent=self) else: name = "Test" widget = test.TestWidget( self.cfg, self.record_thread, self.session, parent=self) self.ui.tabWidget.addTab(widget, name) self.ui.tabWidget.setCurrentIndex(self.ui.tabWidget.count()-1) self.statusbar_label.setText("Session " + str(self.session)) def remove_session_tab(self): """Removes a session tab (train or test) if one exists.""" count = self.ui.tabWidget.count() if count > len(self.permanent_tabs): self.ui.tabWidget.removeTab(count-1)
class PygestureMainWindow(QtWidgets.QMainWindow): def __init__(self, config, parent=None): super(PygestureMainWindow, self).__init__(parent) self.cfg = config self.session = None self.ui = Ui_PygestureMainWindow() self.ui.setupUi(self) self.record_thread = recorder.RecordThread(self.cfg.daq) self.init_paths() self.init_tabs() self.statusbar_label = QtWidgets.QLabel("not signed in") self.ui.statusbar.addPermanentWidget(self.statusbar_label) self.ui.actionNew.triggered.connect(self.show_new_session_dialog) def closeEvent(self, event): if self.record_thread is not None: self.record_thread.kill() def init_paths(self): if not os.path.isdir(self.cfg.data_path): os.makedirs(self.cfg.data_path) def init_tabs(self): self.permanent_tabs = [("Signals", tabs.SignalWidget(self.cfg, self.record_thread, parent=self)), ( "View", tabs.RecordingViewerWidget(self.cfg, parent=self), ), ( "Process", tabs.ProcessWidget(self.cfg, parent=self), )] for name, widget in self.permanent_tabs: self.ui.tabWidget.addTab(widget, name) def show_new_session_dialog(self): dialog = widgets.NewSessionDialog(self) dialog.set_task_list(list(self.cfg.ui_tabs.keys())) if dialog.exec_(): data = dialog.get_data() self.new_session(data) def new_session(self, data): if data['pid'] == '' or data['sid'] == '': QtWidgets.QMessageBox.critical(self, "Error", "Session info incomplete.") return self.session = Session(self.cfg.data_path, data['pid'], data['sid'], data['task'], data['configuration'], data['hand']) # if session exists, make sure the user wants to overwrite it try: self.session.init_file_structure() except IOError: message = QtWidgets.QMessageBox().warning( self, "Warning", "Session directory already exists.\nOverwrite?", QtWidgets.QMessageBox.Yes | QtWidgets.QMessageBox.No) if message == QtWidgets.QMessageBox.No: self.session = None return else: self.session.init_file_structure(force=True) self.remove_session_tab() widgetcls = self.cfg.ui_tabs[self.session.task] widget = widgetcls(self.cfg, self.record_thread, self.session, parent=self) self.ui.tabWidget.addTab(widget, self.session.task) self.ui.tabWidget.setCurrentIndex(self.ui.tabWidget.count() - 1) self.statusbar_label.setText("Session " + str(self.session)) def remove_session_tab(self): """Removes a session tab (train or test) if one exists.""" count = self.ui.tabWidget.count() if count > len(self.permanent_tabs): self.ui.tabWidget.removeTab(count - 1)