From cc8ab984a1f9d51d61368b3602b5059bffbfa2a6 Mon Sep 17 00:00:00 2001 From: smbaker Date: Wed, 13 Jul 2011 17:41:49 -0700 Subject: [PATCH] add hooks for graceful screen cleanup --- sface/mainwindow.py | 14 ++++++++++++++ sface/screens/sfascreen.py | 6 ++++++ 2 files changed, 20 insertions(+) diff --git a/sface/mainwindow.py b/sface/mainwindow.py index 153336f..436756a 100644 --- a/sface/mainwindow.py +++ b/sface/mainwindow.py @@ -230,3 +230,17 @@ class MainWindow(QWidget): def nodeSelectionChanged(self, hostname): if self.rspecWindow.isVisible(): self.rspecWindow.showNode(hostname) + + def closeEvent(self, event): + # give the screens an opportunity to veto the close + for screen in self.screenWidgets: + if not screen.canClose(): + event.ignore() + return + + # give the screens an opportunity to close gracefully + for screen in self.screenWidgets: + screen.mainWindowClose() + + QWidget.closeEvent(self, event) + diff --git a/sface/screens/sfascreen.py b/sface/screens/sfascreen.py index e3c584a..c1d8b93 100644 --- a/sface/screens/sfascreen.py +++ b/sface/screens/sfascreen.py @@ -46,3 +46,9 @@ class SfaScreen(QWidget): def configurationChanged(self): pass + + def canClose(self): + return True + + def mainWindowClose(self): + pass -- 2.43.0