Skip to content

Commit dfaa35d

Browse files
committed
Add slot for .aboutToQuit the app, start transition to this cleanup
1 parent 57964f0 commit dfaa35d

File tree

3 files changed

+14
-6
lines changed

3 files changed

+14
-6
lines changed

BlocksScreen/BlocksScreen.py

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
import typing
44

55
from lib.panels.mainWindow import MainWindow
6-
from logger import setup_logging
6+
from logger import setup_logging, LogManager
77
from PyQt6 import QtCore, QtGui, QtWidgets
88

99
QtGui.QGuiApplication.setAttribute(
@@ -30,6 +30,11 @@ def show_splash(window: typing.Optional[QtWidgets.QWidget] = None):
3030
splash.finish(window)
3131

3232

33+
def on_quit() -> None:
34+
logging.info("Final exit cleanup")
35+
LogManager.shutdown()
36+
37+
3338
if __name__ == "__main__":
3439
setup_logging(
3540
filename="logs/BlocksScreen.log",
@@ -47,5 +52,6 @@ def show_splash(window: typing.Optional[QtWidgets.QWidget] = None):
4752
BlocksScreen.setDesktopFileName("BlocksScreen")
4853
main_window = MainWindow()
4954
BlocksScreen.processEvents()
55+
BlocksScreen.aboutToQuit.connect(on_quit)
5056
main_window.show()
5157
sys.exit(BlocksScreen.exec())

BlocksScreen/devices/storage/usb_controller.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,10 @@ def restart(self) -> None:
5353
self.udisks.close()
5454
self.need_restart = True
5555

56+
def close(self) -> None:
57+
self.udisks.close()
58+
self.deleteLater()
59+
5660
def _handle_full_restart(self) -> None:
5761
if self.need_restart:
5862
self.udisks.start(self.udisks.Priority.InheritPriority)

BlocksScreen/lib/panels/mainWindow.py

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,6 @@
2929
from lib.ui.resources.main_menu_resources_rc import *
3030
from lib.ui.resources.system_resources_rc import *
3131
from lib.ui.resources.top_bar_resources_rc import *
32-
from logger import LogManager
3332
from PyQt6 import QtCore, QtGui, QtWidgets
3433
from screensaver import ScreenSaver
3534

@@ -786,15 +785,14 @@ def set_header_nozzle_diameter(self, diam: str):
786785
self.ui.nozzle_size_icon.setText(f"{diam}mm")
787786
self.ui.nozzle_size_icon.update()
788787

789-
def closeEvent(self, a0: typing.Optional[QtGui.QCloseEvent]) -> None:
788+
def closeEvent(self, a0: QtGui.QCloseEvent | None) -> None:
790789
"""Handles GUI closing"""
791790
try:
792791
self.networkPanel.close()
792+
self.usb_manager.close()
793793
except Exception as e:
794-
_logger.warning("Network panel shutdown error: %s", e)
795-
794+
_logger.warning("Error shutting down: %s", e)
796795
self.ws.wb_disconnect()
797-
LogManager.shutdown()
798796
if a0 is None:
799797
return
800798
QtWidgets.QMainWindow.closeEvent(self, a0)

0 commit comments

Comments
 (0)