Merge branch 'master' of git.opendreambox.org:/git/enigma2
[enigma2.git] / lib / python / Screens / Scart.py
index 3bb2ca9cea7234ebdb3af4e9d6cc3734c66c5d67..dc511448d1fcd0cb123a01db14b20b25f50f28ba 100644 (file)
@@ -1,25 +1,37 @@
 from Screen import Screen
 from MessageBox import MessageBox
-
 from Components.AVSwitch import AVSwitch
 
-from enigma import *
-
 class Scart(Screen):
-       def __init__(self, session):
+       def __init__(self, session, start_visible=True):
                Screen.__init__(self, session)
-               
+
                self.avswitch = AVSwitch()
-               
-               self.avswitch.setInput("SCART")
-               
-               self.onExecBegin.append(self.showMessageBox)
-                               
+
+               if start_visible:
+                       self.onExecBegin.append(self.showMessageBox)
+                       self.msgVisible = None
+               else:
+                       self.msgVisible = False
+
        def showMessageBox(self):
-               # only open messagebox on first execBegin
-               self.onExecBegin.remove(self.showMessageBox)
-               self.session.openWithCallback(self.switchToTV, MessageBox, _("If you see this, something is wrong with\nyour scart connection. Press OK to return."), MessageBox.TYPE_ERROR)
-               
+               if self.msgVisible is None:
+                       self.onExecBegin.remove(self.showMessageBox)
+                       self.msgVisible = False
+
+               if not self.msgVisible:
+                       self.msgVisible = True
+                       self.avswitch.setInput("SCART")
+                       self.msgBox = self.session.openWithCallback(self.MsgBoxClosed, MessageBox, _("If you see this, something is wrong with\nyour scart connection. Press OK to return."), MessageBox.TYPE_ERROR)
+
+       def MsgBoxClosed(self, *val):
+               self.msgBox = None
+               self.switchToTV()
+
        def switchToTV(self, *val):
-               self.avswitch.setInput("ENCODER")
-               self.close()
+               if self.msgVisible:
+                       if self.msgBox:
+                               self.msgBox.close() # ... MsgBoxClosed -> switchToTV again..
+                               return
+                       self.avswitch.setInput("ENCODER")
+                       self.msgVisible = False