X-Git-Url: https://git.cweiske.de/enigma2.git/blobdiff_plain/c942b1c829bf49d77dcdb2bfda776e6288c99828..7ee8589392aca17526ca30264689f204afc9646a:/lib/python/Screens/InfoBarGenerics.py diff --git a/lib/python/Screens/InfoBarGenerics.py b/lib/python/Screens/InfoBarGenerics.py index ddfac4a0..1b080d9b 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 @@ -20,6 +20,7 @@ from Screens.Mute import Mute from Screens.Dish import Dish from Screens.Standby import Standby from Screens.EventView import EventView +from Components.Harddisk import harddiskmanager from Tools import Notifications @@ -93,7 +94,7 @@ class InfoBarVolumeControl: class InfoBarDish: def __init__(self): self.dishDialog = self.session.instantiateDialog(Dish) - self.onShown.append(self.dishDialog.instance.show) + self.onShown.append(self.dishDialog.instance.hide) class InfoBarShowHide: """ InfoBar show/hide control, accepts toggleShow and hide actions, might start @@ -443,7 +444,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): @@ -512,6 +513,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() @@ -526,11 +547,23 @@ class InfoBarAdditionalInfo: # TODO: get the info from c++ somehow self["FormatActive"].setConnect(lambda: False) - self["ButtonRed"] = Pixmap() - self["ButtonRedText"] = Label(_("Record")) - self["ButtonGreen"] = Pixmap() - self["ButtonYellow"] = Pixmap() - self["ButtonBlue"] = Pixmap() + self["ButtonRed"] = PixmapConditional(withTimer = False) + self["ButtonRed"].setConnect(lambda: harddiskmanager.HDDCount() > 0) + self.onShown.append(self["ButtonRed"].update) + self["ButtonRedText"] = LabelConditional(text = _("Record"), withTimer = False) + self["ButtonRedText"].setConnect(lambda: harddiskmanager.HDDCount() > 0) + self.onShown.append(self["ButtonRedText"].update) + + self["ButtonGreen"] = PixmapConditional() + self["ButtonGreen"].setConnect(lambda: self.session.nav.getCurrentService().subServices().getNumberOfSubservices() > 0) + self["ButtonGreenText"] = LabelConditional(text = _("Subservices")) + self["ButtonGreenText"].setConnect(lambda: self.session.nav.getCurrentService().subServices().getNumberOfSubservices() > 0) + + self["ButtonYellow"] = PixmapConditional() + self["ButtonYellow"].setConnect(lambda: False) + + self["ButtonBlue"] = PixmapConditional() + self["ButtonBlue"].setConnect(lambda: False) class InfoBarNotifications: def __init__(self):