fix non working timeline text update,
fix non working similar list
from Screens.EventView import EventViewSimple
from Screens.TimeDateInput import TimeDateInput
from Screens.TimerEntry import TimerEntry
from Screens.EventView import EventViewSimple
from Screens.TimeDateInput import TimeDateInput
from Screens.TimerEntry import TimerEntry
+from Screens.EpgSelection import EPGSelection
from Tools.Directories import resolveFilename, SCOPE_SKIN_IMAGE
from RecordTimer import RecordTimerEntry, parseEvent
from ServiceReference import ServiceReference
from Tools.Directories import resolveFilename, SCOPE_SKIN_IMAGE
from RecordTimer import RecordTimerEntry, parseEvent
from ServiceReference import ServiceReference
res.append((eListboxPythonMultiContent.TYPE_PIXMAP_ALPHATEST, left+xpos+ewidth-22, top+height-22, 21, 21, self.clock_pixmap, 0x586d88, 0x808080))
return res
res.append((eListboxPythonMultiContent.TYPE_PIXMAP_ALPHATEST, left+xpos+ewidth-22, top+height-22, 21, 21, self.clock_pixmap, 0x586d88, 0x808080))
return res
- def selEntry(self, dir):
+ def selEntry(self, dir, visible=True):
cur_service = self.cur_service #(service, service_name, events)
if not self.entry_rect:
self.recalcEntrySize()
cur_service = self.cur_service #(service, service_name, events)
if not self.entry_rect:
self.recalcEntrySize()
entries = cur_service[2]
if dir == 0: #current
update = False
entries = cur_service[2]
if dir == 0: #current
update = False
elif dir == +1: #next
if self.cur_event+1 < len(entries):
self.cur_event+=1
else:
self.offs += 1
self.fillMultiEPG(None) # refill
elif dir == +1: #next
if self.cur_event+1 < len(entries):
self.cur_event+=1
else:
self.offs += 1
self.fillMultiEPG(None) # refill
elif dir == -1: #prev
if self.cur_event-1 >= 0:
self.cur_event-=1
elif self.offs > 0:
self.offs -= 1
self.fillMultiEPG(None) # refill
elif dir == -1: #prev
if self.cur_event-1 >= 0:
self.cur_event-=1
elif self.offs > 0:
self.offs -= 1
self.fillMultiEPG(None) # refill
entry = entries[self.cur_event] #(event_id, event_title, begin_time, duration)
time_base = self.time_base+self.offs*self.time_epoch*60
xpos, width = self.calcEntryPosAndWidth(self.event_rect, time_base, self.time_epoch, entry[2], entry[3])
entry = entries[self.cur_event] #(event_id, event_title, begin_time, duration)
time_base = self.time_base+self.offs*self.time_epoch*60
xpos, width = self.calcEntryPosAndWidth(self.event_rect, time_base, self.time_epoch, entry[2], entry[3])
- self.l.setSelectionClip(eRect(xpos, 0, width, self.event_rect.height()), update)
+ self.l.setSelectionClip(eRect(xpos, 0, width, self.event_rect.height()), visible and update)
else:
self.l.setSelectionClip(eRect(self.event_rect.left(), self.event_rect.top(), self.event_rect.width(), self.event_rect.height()), False)
self.selectionChanged()
else:
self.l.setSelectionClip(eRect(self.event_rect.left(), self.event_rect.top(), self.event_rect.width(), self.event_rect.height()), False)
self.selectionChanged()
def queryEPG(self, list, buildFunc=None):
if self.epgcache is not None:
def queryEPG(self, list, buildFunc=None):
if self.epgcache is not None:
return self.time_epoch
def getTimeBase(self):
return self.time_epoch
def getTimeBase(self):
+ return self.time_base + (self.offs * self.time_epoch * 60)
class TimelineText(HTMLComponent, GUIComponent):
def __init__(self):
class TimelineText(HTMLComponent, GUIComponent):
def __init__(self):
self["input_actions"] = ActionMap(["InputActions"],
{
self["input_actions"] = ActionMap(["InputActions"],
{
- "left": self.prevEvent,
- "right": self.nextEvent,
+ "left": self.leftPressed,
+ "right": self.rightPressed,
"1": self.key1,
"2": self.key2,
"3": self.key3,
"1": self.key1,
"2": self.key2,
"3": self.key3,
self.updateTimelineTimer.start(60*1000)
self.onLayoutFinish.append(self.onCreate)
self.updateTimelineTimer.start(60*1000)
self.onLayoutFinish.append(self.onCreate)
- def nextEvent(self):
- self["list"].selEntry(+1)
+ def leftPressed(self):
+ self.prevEvent()
- def prevEvent(self):
- self["list"].selEntry(-1)
+ def rightPressed(self):
+ self.nextEvent()
+
+ def nextEvent(self, visible=True):
+ ret = self["list"].selEntry(+1, visible)
+ if ret:
+ self.moveTimeLines(True)
+
+ def prevEvent(self, visible=True):
+ ret = self["list"].selEntry(-1, visible)
+ if ret:
+ self.moveTimeLines(True)
def key1(self):
self["list"].setEpoch(60)
def key1(self):
self["list"].setEpoch(60)
l = self["list"]
old = l.getCurrent()
if val == -1:
l = self["list"]
old = l.getCurrent()
if val == -1:
cur = l.getCurrent()
if cur[0] is None and cur[1].ref != old[1].ref:
self.eventViewCallback(setEvent, setService, val)
cur = l.getCurrent()
if cur[0] is None and cur[1].ref != old[1].ref:
self.eventViewCallback(setEvent, setService, val)
else:
self["key_red"].setText("")
else:
self["key_red"].setText("")
- def moveTimeLines(self):
+ def moveTimeLines(self, force=False):
l = self["list"]
event_rect = l.getEventRect()
time_epoch = l.getTimeEpoch()
l = self["list"]
event_rect = l.getEventRect()
time_epoch = l.getTimeEpoch()
+ if changecount or force:
self["timeline_text"].setEntries(timeline_entries)
now=time()
self["timeline_text"].setEntries(timeline_entries)
now=time()