aboutsummaryrefslogtreecommitdiff
path: root/lib/python/Screens
diff options
context:
space:
mode:
Diffstat (limited to 'lib/python/Screens')
-rw-r--r--lib/python/Screens/ChannelSelection.py3
-rw-r--r--lib/python/Screens/InfoBarGenerics.py16
-rwxr-xr-xlib/python/Screens/PluginBrowser.py23
3 files changed, 35 insertions, 7 deletions
diff --git a/lib/python/Screens/ChannelSelection.py b/lib/python/Screens/ChannelSelection.py
index 36a54e77..5fbfd591 100644
--- a/lib/python/Screens/ChannelSelection.py
+++ b/lib/python/Screens/ChannelSelection.py
@@ -22,6 +22,7 @@ from Components.Input import Input
profile("ChannelSelection.py 3")
from Components.ParentalControl import parentalControl
from Components.ChoiceList import ChoiceList, ChoiceEntryComponent
+from Components.SystemInfo import SystemInfo
from Screens.InputBox import InputBox, PinInput
from Screens.MessageBox import MessageBox
from Screens.ServiceInfo import ServiceInfo
@@ -126,7 +127,7 @@ class ChannelContextMenu(Screen):
append_when_current_valid(current, menu, (_("remove entry"), self.removeCurrentService), level = 0)
if current_root and current_root.getPath().find("flags == %d" %(FLAG_SERVICE_NEW_FOUND)) != -1:
append_when_current_valid(current, menu, (_("remove new found flag"), self.removeNewFoundFlag), level = 0)
- if isPlayable:
+ if isPlayable and SystemInfo.get("NumVideoDecoders", 1) > 1:
append_when_current_valid(current, menu, (_("Activate Picture in Picture"), self.showServiceInPiP), level = 0, key = "blue")
self.pipAvailable = True
else:
diff --git a/lib/python/Screens/InfoBarGenerics.py b/lib/python/Screens/InfoBarGenerics.py
index 6dd80533..7ae0b123 100644
--- a/lib/python/Screens/InfoBarGenerics.py
+++ b/lib/python/Screens/InfoBarGenerics.py
@@ -725,6 +725,7 @@ class InfoBarSeek:
iPlayableService.evEOF: self.__evEOF,
iPlayableService.evSOF: self.__evSOF,
})
+ self.fast_winding_hint_message_showed = False
class InfoBarSeekActionMap(HelpableActionMap):
def __init__(self, screen, *args, **kwargs):
@@ -851,6 +852,7 @@ class InfoBarSeek:
# print "seekable"
def __serviceStarted(self):
+ self.fast_winding_hint_message_showed = False
self.seekstate = self.SEEK_STATE_PLAY
self.__seekableStatusChanged()
@@ -941,6 +943,13 @@ class InfoBarSeek:
self.showAfterSeek()
def seekFwd(self):
+ seek = self.getSeek()
+ if seek and not (seek.isCurrentlySeekable() & 2):
+ if not self.fast_winding_hint_message_showed and (seek.isCurrentlySeekable() & 1):
+ self.session.open(MessageBox, _("No fast winding possible yet.. but you can use the number buttons to skip forward/backward!"), MessageBox.TYPE_INFO, timeout=10)
+ self.fast_winding_hint_message_showed = True
+ return
+ return 0 # trade as unhandled action
if self.seekstate == self.SEEK_STATE_PLAY:
self.setSeekState(self.makeStateForward(int(config.seek.enter_forward.value)))
elif self.seekstate == self.SEEK_STATE_PAUSE:
@@ -970,6 +979,13 @@ class InfoBarSeek:
self.setSeekState(self.makeStateSlowMotion(speed))
def seekBack(self):
+ seek = self.getSeek()
+ if seek and not (seek.isCurrentlySeekable() & 2):
+ if not self.fast_winding_hint_message_showed and (seek.isCurrentlySeekable() & 1):
+ self.session.open(MessageBox, _("No fast winding possible yet.. but you can use the number buttons to skip forward/backward!"), MessageBox.TYPE_INFO, timeout=10)
+ self.fast_winding_hint_message_showed = True
+ return
+ return 0 # trade as unhandled action
seekstate = self.seekstate
if seekstate == self.SEEK_STATE_PLAY:
self.setSeekState(self.makeStateBackward(int(config.seek.enter_backward.value)))
diff --git a/lib/python/Screens/PluginBrowser.py b/lib/python/Screens/PluginBrowser.py
index 61bb7d0a..cce08aed 100755
--- a/lib/python/Screens/PluginBrowser.py
+++ b/lib/python/Screens/PluginBrowser.py
@@ -9,7 +9,7 @@ from Components.Label import Label
from Screens.MessageBox import MessageBox
from Screens.Console import Console
from Plugins.Plugin import PluginDescriptor
-from Tools.Directories import resolveFilename, SCOPE_PLUGINS, SCOPE_SKIN_IMAGE
+from Tools.Directories import resolveFilename, fileExists, SCOPE_PLUGINS, SCOPE_SKIN_IMAGE
from Tools.LoadPixmap import LoadPixmap
from time import time
@@ -22,19 +22,23 @@ class PluginBrowser(Screen):
def __init__(self, session):
Screen.__init__(self, session)
- self["red"] = Label(_("Remove Plugins"))
- self["green"] = Label(_("Download Plugins"))
+ self["red"] = Label()
+ self["green"] = Label()
self.list = []
self["list"] = PluginList(self.list)
- self["actions"] = ActionMap(["WizardActions", "ColorActions"],
+ self["actions"] = ActionMap(["WizardActions"],
{
"ok": self.save,
"back": self.close,
+ })
+ self["PluginDownloadActions"] = ActionMap(["ColorActions"],
+ {
"red": self.delete,
"green": self.download
})
+ self["PluginDownloadActions"].setEnabled(False)
self.onFirstExecBegin.append(self.checkWarnings)
self.onShown.append(self.updateList)
@@ -47,7 +51,6 @@ class PluginBrowser(Screen):
self.session.open(MessageBox, text = text, type = MessageBox.TYPE_WARNING)
def save(self):
- #self.close()
self.run()
def run(self):
@@ -58,7 +61,15 @@ class PluginBrowser(Screen):
self.pluginlist = plugins.getPlugins(PluginDescriptor.WHERE_PLUGINMENU)
self.list = [PluginEntryComponent(plugin) for plugin in self.pluginlist]
self["list"].l.setList(self.list)
-
+ if fileExists(resolveFilename(SCOPE_PLUGINS, "SystemPlugins/SoftwareManager/plugin.py")):
+ self["red"].setText("")
+ self["green"].setText("")
+ self["PluginDownloadActions"].setEnabled(False)
+ else:
+ self["red"].setText(_("Remove Plugins"))
+ self["green"].setText(_("Download Plugins"))
+ self["PluginDownloadActions"].setEnabled(True)
+
def delete(self):
self.session.openWithCallback(self.PluginDownloadBrowserClosed, PluginDownloadBrowser, PluginDownloadBrowser.REMOVE)