1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
|
from Screen import Screen
from Components.Button import Button
from Components.ServiceList import ServiceList
from Components.ActionMap import ActionMap
from Components.MovieList import MovieList
from Components.DiskInfo import DiskInfo
from Components.Label import Label
from Screens.MessageBox import MessageBox
from Screens.FixedMenu import FixedMenu
from Tools.Directories import *
from enigma import eServiceReference, eServiceCenter, eTimer
class ChannelContextMenu(FixedMenu):
def __init__(self, session, csel, service):
self.csel = csel
self.service = service
menu = [(_("back"), self.close), (_("delete..."), self.delete)]
FixedMenu.__init__(self, session, _("Movie Menu"), menu)
self.skinName = "Menu"
def delete(self):
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!"), MessageBox.TYPE_ERROR)
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!"), MessageBox.TYPE_ERROR)
else:
list = self.csel["list"]
currentIndex = list.getCurrentIndex()
list.moveDown()
if list.getCurrentIndex() == currentIndex:
currentIndex -= 1
list.reload()
list.moveToIndex(currentIndex)
self.close()
class MovieSelection(Screen):
def __init__(self, session, selectedmovie = None):
Screen.__init__(self, session)
self.movemode = False
self.bouquet_mark_edit = False
self.delayTimer = eTimer()
self.delayTimer.timeout.get().append(self.updateHDDData)
self["waitingtext"] = Label(_("Please wait... Loading list..."))
self["list"] = MovieList(None)
self.selectedmovie = selectedmovie
#self["okbutton"] = Button("ok", [self.channelSelected])
self["freeDiskSpace"] = DiskInfo(resolveFilename(SCOPE_HDD), DiskInfo.FREE, update=False)
self["actions"] = ActionMap(["OkCancelActions", "MovieSelectionActions"],
{
"cancel": self.abort,
"ok": self.movieSelected,
"contextMenu": self.doContext,
})
self["actions"].csel = self
self.onShown.append(self.go)
def go(self):
self.delayTimer.start(0, 1)
def updateHDDData(self):
self["list"].reload(eServiceReference("2:0:1:0:0:0:0:0:0:0:" + resolveFilename(SCOPE_HDD)))
if (self.selectedmovie is not None):
self.moveTo()
self["waitingtext"].instance.hide()
self["freeDiskSpace"].update()
def moveTo(self):
self["list"].moveTo(self.selectedmovie)
def getCurrent(self):
return self["list"].getCurrent()[0]
def movieSelected(self):
self.close(self.getCurrent())
def doContext(self):
self.session.open(ChannelContextMenu, self, self.getCurrent())
def abort(self):
self.close(None)
|