From: smbaker Date: Thu, 14 Jul 2011 00:41:49 +0000 (-0700) Subject: add hooks for graceful screen cleanup X-Git-Tag: sface-0.1-17~15 X-Git-Url: http://git.onelab.eu/?p=sface.git;a=commitdiff_plain;h=cc8ab984a1f9d51d61368b3602b5059bffbfa2a6;ds=sidebyside add hooks for graceful screen cleanup --- 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