Author: dmeyer
Date: Wed Nov 7 15:05:03 2007
New Revision: 10091
Log:
tv and gridmenu updates by Joost Kop
Modified:
trunk/ui/share/skins/main/blurr.fxd
trunk/ui/src/gui/areas/grid_area.py
trunk/ui/src/menu/gridmenu.py
trunk/ui/src/tv/plugins/testguide.py
trunk/ui/src/tv/program.py
Modified: trunk/ui/share/skins/main/blurr.fxd
==============================================================================
--- trunk/ui/share/skins/main/blurr.fxd (original)
+++ trunk/ui/share/skins/main/blurr.fxd Wed Nov 7 15:05:03 2007
@@ -597,7 +597,7 @@
<screen layout="screen" x="0" y="0" width="800" height="600"/>
<title visible="no"/>
<info layout="tv info" x="10" y="90" width="780" height="140"/>
- <grid layout="grid" x="10" y="240" width="780" height="350">
+ <grid layout="tv grid" x="10" y="240" width="780" height="350">
<image x="765" y="240" width="32" height="32" label="uparrow"
filename="up.png"/>
<image x="765" y="max-32" width="32" height="32"
label="downarrow"
@@ -607,6 +607,36 @@
</grid>
</menuset>
+ <!-- default tv grid area -->
+ <layout label="tv grid">
+ <content type="text" spacing="0">
+ <item type="row" font="item" width="80">
+ <rectangle bgcolor="0x88000066" size="1"
color="0x000000" x="-5" y="-5"
+ width="max+10" height="max+10"/>
+ </item>
+ <item type="column" font="item" width="175">
+ <rectangle bgcolor="0x88000066" size="1"
color="0x000000" x="-5" y="-5"
+ width="max+10" height="max+10"/>
+ </item>
+ <item type="default" font="item">
+ <rectangle bgcolor="0xff000000" size="1"
color="0x000000" x="-5"
+ y="-5" width="max+10" height="max+10"/>
+ </item>
+ <item type="selected" font="selected">
+ <rectangle bgcolor="selection" size="1"
color="0x000000" x="-5"
+ y="-5" width="max+10" height="max+10"/>
+ </item>
+ <item type="scheduled" font="selected">
+ <rectangle bgcolor="0x14ba05" size="1"
color="0x000000" x="-5"
+ y="-5" width="max+10" height="max+10"/>
+ </item>
+ <item type="recording" font="selected">
+ <rectangle bgcolor="0xba1405" size="1"
color="0x000000" x="-5"
+ y="-5" width="max+10" height="max+10"/>
+ </item>
+ </content>
+ </layout>
+
<!-- GUIDE -->
<menuset label="tv menu">
Modified: trunk/ui/src/gui/areas/grid_area.py
==============================================================================
--- trunk/ui/src/gui/areas/grid_area.py (original)
+++ trunk/ui/src/gui/areas/grid_area.py Wed Nov 7 15:05:03 2007
@@ -247,6 +247,16 @@
menu = self.menu
settings = self.settings
+ if not len(menu.choices):
+ if not self.objects:
+ self.clear()
+ t = _('This directory is empty')
+ self.objects.append(self.drawstring(t, settings.font,
+ settings,
+ settings.x +
settings.spacing,
+ settings.y +
settings.spacing))
+ return
+
if menu.update_view:
menu.update_view = False
# layout change, clean everything
@@ -317,10 +327,13 @@
else:
data = item
width = self.col_width
+ #Item layout
val = self.default_val
- #is the item selected?
- if data == menu.selected:
+ layout = self.menu.get_item_state(draw_row, draw_col)
+ if layout == 'selected':
val = self.selected_val
+ elif self.settings.types.has_key(layout):
+ val = self.settings.types[layout]
str = data.name
if x0 == col_x:
# draw left arrow
Modified: trunk/ui/src/menu/gridmenu.py
==============================================================================
--- trunk/ui/src/menu/gridmenu.py (original)
+++ trunk/ui/src/menu/gridmenu.py Wed Nov 7 15:05:03 2007
@@ -178,6 +178,21 @@
except (IndexError, KeyError):
return None
+ def get_item_state(self, row, col):
+ """
+ Return the state for this item.
+ """
+ if self.advanced_mode:
+ if self.selected == self.get_item(row, col)[1]:
+ return 'selected'
+ else:
+ return 'default'
+ else:
+ if self.selected == self.get_item(row, col):
+ return 'selected'
+ else:
+ return 'default'
+
def get_column_name(self, col):
"""
Modified: trunk/ui/src/tv/plugins/testguide.py
==============================================================================
--- trunk/ui/src/tv/plugins/testguide.py (original)
+++ trunk/ui/src/tv/plugins/testguide.py Wed Nov 7 15:05:03 2007
@@ -103,11 +103,27 @@
Return the data for that col, row.
"""
try:
- item = self.grid[self.base_row+row][col]
+ item = self.choices[self.base_row+row][col]
except:
return None
return item
+ def get_item_state(self, row, col):
+ """
+ Return the state for this item
+ """
+ item = self.get_item(row, col)[1]
+ if self.selected == item:
+ return 'selected'
+ elif item.scheduled:
+ if item.scheduled.status in ('conflict', 'scheduled'):
+ return 'scheduled'
+ elif item.scheduled.status == 'recording':
+ return 'recording'
+ else:
+ return 'default'
+ else:
+ return 'default'
@kaa.notifier.yield_execution()
def update(self):
@@ -192,10 +208,10 @@
"""
Select program for the new row
"""
- for program in self.grid[self.selected_row]:
+ for program in self.choices[self.selected_row]:
size, data = program
if data.start <= self.selected_start_time and data.stop >
self.selected_start_time:
- self.select(row=self.selected_row,
col=self.grid[self.selected_row].index(program))
+ self.select(row=self.selected_row,
col=self.choices[self.selected_row].index(program))
def eventhandler(self, event):
handled = False
Modified: trunk/ui/src/tv/program.py
==============================================================================
--- trunk/ui/src/tv/program.py (original)
+++ trunk/ui/src/tv/program.py Wed Nov 7 15:05:03 2007
@@ -105,6 +105,17 @@
self.genre = ''
# TODO: add ratings support
self.rating = ''
+
+ # check if this is a recording
+ self.scheduled = tvserver.recordings.get(self.channel,
+ self.start,
+ self.stop)
+ # check if this is a favorite
+ self.favorite = tvserver.favorites.get(self.title,
+ self.channel,
+ self.start,
+ self.stop)
+
def __unicode__(self):
"""
@@ -159,7 +170,7 @@
"""
Return start time and stop time as formated unicode string.
"""
- return self.get_start + u' - ' + self.get_stop()
+ return self.get_start() + u' - ' + self.get_stop()
def get_date(self):
@@ -201,16 +212,6 @@
create a list of actions for the submenu
"""
- # check if this is a recording
- self.scheduled = tvserver.recordings.get(self.channel,
- self.start,
- self.stop)
- # check if this is a favorite
- self.favorite = tvserver.favorites.get(self.title,
- self.channel,
- self.start,
- self.stop)
-
# empty item list
items = []
@@ -297,6 +298,10 @@
result = result()
if result == tvserver.recordings.SUCCESS:
msg = _('"%s" has been scheduled for recording') % self.title
+ #reload scheduled
+ self.scheduled = tvserver.recordings.get(self.channel,
+ self.start,
+ self.stop)
else:
msg = _('Scheduling failed: %s') % result
MessageWindow(msg).show()
@@ -314,6 +319,10 @@
result = result()
if result == tvserver.recordings.SUCCESS:
msg = _('"%s" has been removed') % self.title
+ #reload scheduled
+ self.scheduled = tvserver.recordings.get(self.channel,
+ self.start,
+ self.stop)
else:
msg = _('Removing failed: %s') % result
MessageWindow(msg).show()
@@ -385,6 +394,11 @@
Create a new FavoriteItem and open its submenu
"""
favorite.FavoriteItem(self, self).submenu()
+ # Reload favorite
+ self.favorite = tvserver.favorites.get(self.title,
+ self.channel,
+ self.start,
+ self.stop)
def edit_favorite(self):
@@ -393,6 +407,11 @@
and open its submenu to edit this item
"""
favorite.FavoriteItem(self, self.favorite).submenu()
+ # Reload favorite
+ self.favorite = tvserver.favorites.get(self.title,
+ self.channel,
+ self.start,
+ self.stop)
def remove_favorite(self):
@@ -401,4 +420,9 @@
and delete this favorite.
"""
favorite.FavoriteItem(self, self.favorite).remove()
+ # Reload favorite
+ self.favorite = tvserver.favorites.get(self.title,
+ self.channel,
+ self.start,
+ self.stop)
-------------------------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc.
Still grepping through log files to find problems? Stop.
Now Search log events and configuration files using AJAX and a browser.
Download your FREE copy of Splunk now >> http://get.splunk.com/
_______________________________________________
Freevo-cvslog mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/freevo-cvslog