diff --git a/b_asic/scheduler-gui/main_window.py b/b_asic/scheduler-gui/main_window.py index ed96d12ca6cee6ac3c5528882c03b82bc2e3b6e9..7afae02822f9920c71109679945a3abd2ccdb284 100644 --- a/b_asic/scheduler-gui/main_window.py +++ b/b_asic/scheduler-gui/main_window.py @@ -86,10 +86,11 @@ class MainWindow(QMainWindow, Ui_MainWindow): def _init_ui(self) -> None: + """Initialize the ui""" # self._ui = uic.loadUi("main_window.ui", None) # Load the .ui file # #self._ui.setupUi(self) - # print('self:\t\t' + str(type(self))) - # print('self._ui:\t' + str(type(self._ui))) + # print('self:\t\t',str(type(self))) + # print('self._ui:\t',str(type(self._ui))) # self._ui.pushbutton_add.clicked.connect(self.callback_pushButton) # self._ui.menu_load_sfg.triggered.connect(self.load_sfg) # self._ui.menu_save_schedule.triggered.connect(self.save_schedule) @@ -107,6 +108,7 @@ class MainWindow(QMainWindow, Ui_MainWindow): self._settings = QSettings() self.setupUi(self) + self.closeEvent = self._close_event # Init signals/slots self.pushbutton_add.clicked.connect(self.callback_pushButton) @@ -128,18 +130,13 @@ class MainWindow(QMainWindow, Ui_MainWindow): self.splitter_center.setCollapsible(1, True) def _init_graphics_view(self) -> None: - pass - #self.setCentralWidget(self.graphicsView) - # pass + """Initialize the QGraphics""" self.graphic_scene = QGraphicsScene(self) self.graphic_view.setScene(self.graphic_scene) - #self.graphic_view = QGraphicsView(self.scene, self) self.graphic_view.setRenderHint(QPainter.Antialiasing) self.graphic_view.setGeometry(20, 20, self.width(), self.height()) self.graphic_view.setDragMode(QGraphicsView.RubberBandDrag) - # print(self.centralwidget.baseSize()) - #self.setupUi(self) # Need to setup ui again ############### @@ -148,24 +145,25 @@ class MainWindow(QMainWindow, Ui_MainWindow): @Slot() def callback_pushButton(self) -> None: #diagram = Diagram() - self.printButtonPressed('callback_pushButton') + self.printButtonPressed(self.tr('callback_pushButton')) @Slot() def open(self) -> None: """This method loads an SFG and create a base schedule in gui.""" #TODO: all self.printButtonPressed('load_sfg()') - self.update_statusbar('SFG loaded successfully') + self.update_statusbar(self.tr('SFG loaded successfully')) @Slot() def save(self) -> None: """This method save an schedule.""" #TODO: all self.printButtonPressed('save_schedule()') - self.update_statusbar('Schedule saved successfully') + self.update_statusbar(self.tr('Schedule saved successfully')) @Slot(bool) def _toggle_component_info(self, checked: bool) -> None: + """This method toggles the right hand side info window.""" widths = list(self.splitter_center.sizes()) max_range = widths[0] + widths[1] if checked: @@ -176,6 +174,8 @@ class MainWindow(QMainWindow, Ui_MainWindow): @Slot(int, int) def _splitter_center_moved(self, pos: int, index: int) -> None: + """Callback method used to check if the right widget (info window) + has collapsed. Update the checkbutton accordingly.""" widths: list[int, int] = list(self.splitter_center.sizes()) #TODO: Custom move handler, save state on click-release? if widths[1] == 0: @@ -187,14 +187,16 @@ class MainWindow(QMainWindow, Ui_MainWindow): ################ #### Events #### ################ - # def closeEvent(self, event: QCloseEvent) -> None: - # """Overloads QMainWindow default closeEvent(QCloseEvent) event""" - # QMessageBox.StandardButton resBtn = QMessageBox::question( this, APP_NAME, - # self.tr("Are you sure?\n"), - # QMessageBox::Cancel | QMessageBox::No | QMessageBox::Yes, - # QMessageBox::Yes); - # pass - + def _close_event(self, event: QCloseEvent) -> None: + """Overloads QMainWindow default closeEvent(QCloseEvent) event""" + ret = QMessageBox.question(self, self.tr("Application"), + self.tr("Do you want to exit?")) + if ret == QMessageBox.StandardButton.Yes: + event.accept() + else: + event.ignore() + + ################################# #### Helper member functions ####