X-Git-Url: https://git.cweiske.de/enigma2.git/blobdiff_plain/da33fac1675caf4aa30f19c65878e1ea26936df6..ed6ab83ab71bbef6d8df689f9ea7f9c1474f625f:/lib/python/Screens/InfoBarGenerics.py diff --git a/lib/python/Screens/InfoBarGenerics.py b/lib/python/Screens/InfoBarGenerics.py index 978a1134..cd9719bd 100644 --- a/lib/python/Screens/InfoBarGenerics.py +++ b/lib/python/Screens/InfoBarGenerics.py @@ -1,7 +1,7 @@ from Screen import Screen from Components.ActionMap import ActionMap, HelpableActionMap from Components.ActionMap import NumberActionMap -from Components.Label import Label +from Components.Label import * from Components.config import configfile, configsequencearg from Components.config import config, configElement, ConfigSubsection, configSequence from ChannelSelection import ChannelSelection @@ -17,9 +17,12 @@ from EpgSelection import EPGSelection from Screens.MessageBox import MessageBox from Screens.Volume import Volume from Screens.Mute import Mute +from Screens.Dish import Dish from Screens.Standby import Standby from Screens.EventView import EventView +from Tools import Notifications + #from enigma import eTimer, eDVBVolumecontrol, quitMainloop from enigma import * @@ -87,6 +90,11 @@ class InfoBarVolumeControl: else: self.muteDialog.instance.hide() +class InfoBarDish: + def __init__(self): + self.dishDialog = self.session.instantiateDialog(Dish) + self.onShown.append(self.dishDialog.instance.show) + class InfoBarShowHide: """ InfoBar show/hide control, accepts toggleShow and hide actions, might start fancy animations. """ @@ -435,7 +443,7 @@ class InfoBarInstantRecord: self.recording = None self["BlinkingPoint"] = BlinkingPixmapConditional() - self.onShown.append(self["BlinkingPoint"].hidePixmap) + self.onShown.append(self["BlinkingPoint"].hideWidget) self["BlinkingPoint"].setConnect(self.session.nav.RecordTimer.isRecording) def stopCurrentRecording(self): @@ -504,6 +512,26 @@ class InfoBarAudioSelection: if n > 0: self.session.open(AudioSelection, audio) +from Screens.SubserviceSelection import SubserviceSelection + +class InfoBarSubserviceSelection: + def __init__(self): + self["SubserviceSelectionAction"] = HelpableActionMap(self, "InfobarSubserviceSelectionActions", + { + "subserviceSelection": (self.subserviceSelection, "Subservice list..."), + }) + + def subserviceSelection(self): + service = self.session.nav.getCurrentService() + subservices = service.subServices() + n = subservices.getNumberOfSubservices() + if n > 0: + self.session.openWithCallback(self.subserviceSelected, SubserviceSelection, subservices) + + def subserviceSelected(self, service): + if not service is None: + self.session.nav.playService(service) + class InfoBarAdditionalInfo: def __init__(self): self["DolbyActive"] = PixmapConditional() @@ -520,6 +548,32 @@ class InfoBarAdditionalInfo: self["ButtonRed"] = Pixmap() self["ButtonRedText"] = Label(_("Record")) - self["ButtonGreen"] = Pixmap() - self["ButtonYellow"] = Pixmap() - self["ButtonBlue"] = Pixmap() \ No newline at end of file + self["ButtonGreen"] = PixmapConditional() + self["ButtonGreen"].setConnect(lambda: self.session.nav.getCurrentService().subServices().getNumberOfSubservices() > 0) +# self["ButtonGreenText"] = Label(text = _("Subservices")) + self["ButtonGreenText"] = LabelConditional(text = _("Subservices"), withTimer = True) + self["ButtonGreenText"].setConnect(lambda: self.session.nav.getCurrentService().subServices().getNumberOfSubservices() > 0) +# self["ButtonGreenText"].hide() +# self["ButtonGreen"].hidePixmap() +# self["ButtonYellow"] = Pixmap() +# self["ButtonBlue"] = Pixmap() + +class InfoBarNotifications: + def __init__(self): + self.onExecBegin.append(self.checkNotifications) + Notifications.notificationAdded.append(self.checkNotificationsIfExecing) + + def checkNotificationsIfExecing(self): + if self.execing: + self.checkNotifications() + + def checkNotifications(self): + if len(Notifications.notifications): + n = Notifications.notifications[0] + Notifications.notifications = Notifications.notifications[1:] + print "open",n + cb = n[0] + if cb is not None: + self.session.openWithCallback(cb, *n[1:]) + else: + self.session.open(*n[1:])