X-Git-Url: https://git.cweiske.de/enigma2.git/blobdiff_plain/5e70994aff1e028f4e67e66e9b838305c02ecf8c..7abf1d06a7a051f55708af14aef49ad7fea093ac:/lib/python/Screens/MovieSelection.py diff --git a/lib/python/Screens/MovieSelection.py b/lib/python/Screens/MovieSelection.py index ccaa4538..ce3a9732 100644 --- a/lib/python/Screens/MovieSelection.py +++ b/lib/python/Screens/MovieSelection.py @@ -5,13 +5,15 @@ from Components.ActionMap import ActionMap from Components.MovieList import MovieList from Components.DiskInfo import DiskInfo +from Screens.MessageBox import MessageBox from Screens.FixedMenu import FixedMenu -from enigma import eServiceReference +from enigma import eServiceReference, eServiceCenter class ChannelContextMenu(FixedMenu): - def __init__(self, session, csel): + def __init__(self, session, csel, service): self.csel = csel + self.service = service menu = [("back", self.close), ("delete...", self.delete)] @@ -19,8 +21,37 @@ class ChannelContextMenu(FixedMenu): self.skinName = "Menu" def delete(self): - print "deleting ALL SERVICES! HA HA HA!" - pass + serviceHandler = eServiceCenter.getInstance() + offline = serviceHandler.offlineOperations(self.service) + result = False + if offline is not None: + # simulate first + if not offline.deleteFromDisk(1): + result = True + + if result == True: + self.session.openWithCallback(self.deleteConfirmed, MessageBox, "Do you really want to delete this recording?") + else: + self.session.openWithCallback(self.close, MessageBox, "You cannot delete this!") + + def deleteConfirmed(self, confirmed): + if not confirmed: + return self.close() + + serviceHandler = eServiceCenter.getInstance() + offline = serviceHandler.offlineOperations(self.service) + result = False + if offline is not None: + # really delete! + if not offline.deleteFromDisk(0): + result = True + + if result == False: + self.session.openWithCallback(self.close, MessageBox, "Delete failed!") + else: + self.csel["list"].reload() + self.close() + class MovieSelection(Screen): def __init__(self, session): @@ -36,15 +67,20 @@ class MovieSelection(Screen): self["actions"] = ActionMap(["OkCancelActions", "ContextMenuActions"], { - "cancel": self.close, + "cancel": self.abort, "ok": self.movieSelected, "contextMenu": self.doContext, }) self["actions"].csel = self + def getCurrent(self): + return self["list"].getCurrent()[0] + def movieSelected(self): - self.session.nav.playService(self["list"].getCurrent()[0]) - self.close() + self.close(self.getCurrent()) def doContext(self): - self.session.open(ChannelContextMenu, self) + self.session.open(ChannelContextMenu, self, self.getCurrent()) + + def abort(self): + self.close(None)