def __init__(self, parent=None):
QWidget.__init__(self, parent)
- self.logWindow = LogWindow(self)
- self.rspecWindow = RSpecWindow(self)
+ # These are top-level windows and should be initialized with parent set
+ # to our parent. Otherwise, getting a segfault on exit in Ubuntu.
+ self.logWindow = LogWindow(parent)
+ self.rspecWindow = RSpecWindow(parent)
self.pix = QLabel(self)
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)
+