From fd26e02e08369351315c100eba0b97ab7030ef00 Mon Sep 17 00:00:00 2001 From: smbaker Date: Tue, 14 Jun 2011 17:46:18 -0700 Subject: [PATCH] isolate faults in screens during class creation --- sface/mainwindow.py | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/sface/mainwindow.py b/sface/mainwindow.py index cefec17..153336f 100644 --- a/sface/mainwindow.py +++ b/sface/mainwindow.py @@ -131,15 +131,23 @@ class MainWindow(QWidget): self.screens = QStackedWidget(self) for screen in screenClasses: - screenWidget = screen(self) - self.screenWidgets.append(screenWidget) - self.screens.addWidget(screenWidget) + # use a try/catch block to isolate the screen. Third-party plugins + # could be buggy. + try: + screenWidget = screen(self) + self.screenWidgets.append(screenWidget) + self.screens.addWidget(screenWidget) + except: + print "Exception while creating screen", screen.__name__ + traceback.print_exc() self.screens.addWidget(self.pix) self.next_screen = None self.nav = Nav(self.screenWidgets, self) - self.nav.setTitle(self.screenWidgets[0].getTitleText()) + + if self.screenWidgets: + self.nav.setTitle(self.screenWidgets[0].getTitleText()) self.status = Status(self) self.log = QLabel("Show Log", self) -- 2.43.0