From 36f427fcb34bb0dafa3d395dbc6bfc060494c874 Mon Sep 17 00:00:00 2001 From: Felix Domke Date: Sun, 13 Nov 2005 04:30:57 +0000 Subject: [PATCH] make delete working in movieMenu --- lib/python/Components/MovieList.py | 5 +++ lib/python/Screens/MovieSelection.py | 46 ++++++++++++++++++++++++---- 2 files changed, 45 insertions(+), 6 deletions(-) diff --git a/lib/python/Components/MovieList.py b/lib/python/Components/MovieList.py index ecf50607..9ab58704 100644 --- a/lib/python/Components/MovieList.py +++ b/lib/python/Components/MovieList.py @@ -70,6 +70,7 @@ class MovieList(HTMLComponent, GUIComponent): # nice list self.list = [ ] + self.root = root serviceHandler = eServiceCenter.getInstance() list = serviceHandler.list(root) @@ -88,3 +89,7 @@ class MovieList(HTMLComponent, GUIComponent): # now process them... for ref in movieList: self.list.append(MovieListEntry(ref, serviceHandler)) + + def reload(self): + self.load(self.root) + self.l.setList(self.list) diff --git a/lib/python/Screens/MovieSelection.py b/lib/python/Screens/MovieSelection.py index ccaa4538..ad93a5eb 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): @@ -42,9 +73,12 @@ class MovieSelection(Screen): }) self["actions"].csel = self + def getCurrent(self): + return self["list"].getCurrent()[0] + def movieSelected(self): - self.session.nav.playService(self["list"].getCurrent()[0]) + self.session.nav.playService(self.getCurrent()) self.close() def doContext(self): - self.session.open(ChannelContextMenu, self) + self.session.open(ChannelContextMenu, self, self.getCurrent()) -- 2.30.2