From: smbaker Date: Wed, 15 Jun 2011 00:46:18 +0000 (-0700) Subject: isolate faults in screens during class creation X-Git-Tag: sface-0.1-15~2 X-Git-Url: http://git.onelab.eu/?p=sface.git;a=commitdiff_plain;h=fd26e02e08369351315c100eba0b97ab7030ef00;ds=sidebyside isolate faults in screens during class creation --- 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)