From abd961024accfc54ffea8a36999417b44861c52b Mon Sep 17 00:00:00 2001 From: Stefan Pluecken Date: Tue, 3 Jan 2006 12:19:14 +0000 Subject: [PATCH] display "please wait" message in movieselection while hdd spins up --- data/skin.xml | 3 ++- lib/python/Components/DiskInfo.py | 5 +++-- lib/python/Components/MovieList.py | 15 +++++++++------ lib/python/Screens/MovieSelection.py | 25 +++++++++++++++++++------ 4 files changed, 33 insertions(+), 15 deletions(-) diff --git a/data/skin.xml b/data/skin.xml index 6ffd6782..d57d86c4 100644 --- a/data/skin.xml +++ b/data/skin.xml @@ -255,7 +255,8 @@ - + + diff --git a/lib/python/Components/DiskInfo.py b/lib/python/Components/DiskInfo.py index 68674e99..9490a0f8 100644 --- a/lib/python/Components/DiskInfo.py +++ b/lib/python/Components/DiskInfo.py @@ -11,12 +11,13 @@ class DiskInfo(GUIComponent, VariableText): USED = 1 SIZE = 2 - def __init__(self, path, type): + def __init__(self, path, type, update = True): GUIComponent.__init__(self) VariableText.__init__(self) self.type = type self.path = path - self.update() + if update: + self.update() def update(self): try: diff --git a/lib/python/Components/MovieList.py b/lib/python/Components/MovieList.py index 7ec8a9ff..b31f7ff5 100644 --- a/lib/python/Components/MovieList.py +++ b/lib/python/Components/MovieList.py @@ -59,8 +59,8 @@ class MovieList(HTMLComponent, GUIComponent): def __init__(self, root): GUIComponent.__init__(self) self.l = eListboxPythonMultiContent() - self.load(root) - self.l.setList(self.list) + if root is not None: + self.reload(root) self.l.setFont(0, gFont("Regular", 30)) self.l.setFont(1, gFont("Regular", 18)) @@ -82,6 +82,13 @@ class MovieList(HTMLComponent, GUIComponent): self.instance.setContent(None) self.instance = None + def reload(self, root = None): + if root is not None: + self.load(root) + else: + self.load(self.root) + self.l.setList(self.list) + def load(self, root): # this lists our root service, then building a # nice list @@ -116,9 +123,5 @@ class MovieList(HTMLComponent, GUIComponent): count += 1 self.instance.moveSelectionTo(found) - def reload(self): - self.load(self.root) - self.l.setList(self.list) - def moveDown(self): self.instance.moveSelection(self.instance.moveDown) diff --git a/lib/python/Screens/MovieSelection.py b/lib/python/Screens/MovieSelection.py index 6bb18721..9e1879ce 100644 --- a/lib/python/Screens/MovieSelection.py +++ b/lib/python/Screens/MovieSelection.py @@ -4,13 +4,14 @@ 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 +from enigma import eServiceReference, eServiceCenter, eTimer class ChannelContextMenu(FixedMenu): def __init__(self, session, csel, service): @@ -67,13 +68,17 @@ class MovieSelection(Screen): self.movemode = False self.bouquet_mark_edit = False - self["list"] = MovieList(eServiceReference("2:0:1:0:0:0:0:0:0:0:" + resolveFilename(SCOPE_HDD))) - if (selectedmovie is not None): - self.onShown.append(self.moveTo) - self.selectedmovie = selectedmovie + self.delayTimer = eTimer() + self.delayTimer.timeout.get().append(self.updateHDDData) + self.delayTimer.start(0, 1) + + 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) + self["freeDiskSpace"] = DiskInfo(resolveFilename(SCOPE_HDD), DiskInfo.FREE, update=False) self["actions"] = ActionMap(["OkCancelActions", "ContextMenuActions"], { @@ -83,6 +88,14 @@ class MovieSelection(Screen): }) self["actions"].csel = self + 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) -- 2.30.2