Update of /cvsroot/freevo/freevo/src/tv
In directory sc8-pr-cvs1:/tmp/cvs-serv32590/tv

Modified Files:
        edit_favorite.py program_display.py record_types.py tvguide.py 
        tvmenu.py view_favorites.py 
Log Message:
Patch from Matthieu Weber to revive add/edit favorites support from the
TV interface.  


Index: edit_favorite.py
===================================================================
RCS file: /cvsroot/freevo/freevo/src/tv/edit_favorite.py,v
retrieving revision 1.5
retrieving revision 1.6
diff -C2 -d -r1.5 -r1.6
*** edit_favorite.py    16 Nov 2003 17:38:48 -0000      1.5
--- edit_favorite.py    9 Jan 2004 02:10:00 -0000       1.6
***************
*** 10,13 ****
--- 10,17 ----
  #-----------------------------------------------------------------------
  # $Log$
+ # Revision 1.6  2004/01/09 02:10:00  rshortt
+ # Patch from Matthieu Weber to revive add/edit favorites support from the
+ # TV interface.
+ #
  # Revision 1.5  2003/11/16 17:38:48  dischi
  # i18n patch from David Sagnol
***************
*** 45,49 ****
  # ----------------------------------------------------------------------
  
! import time
  
  import config, tv.epg_xmltv, tv.view_favorites
--- 49,53 ----
  # ----------------------------------------------------------------------
  
! from time import gmtime, strftime
  
  import config, tv.epg_xmltv, tv.view_favorites
***************
*** 54,57 ****
--- 58,62 ----
  import tv.record_types
  from tv.epg_types import TvProgram
+ from tv.view_favorites  import ViewFavorites
  
  from gui.GUIObject      import *
***************
*** 61,64 ****
--- 66,70 ----
  from gui.OptionBox      import *
  from gui.LetterBoxGroup import *
+ from gui.ConfirmBox     import ConfirmBox
  
  DEBUG = 1
***************
*** 74,86 ****
      width     Integer
      height    Integer
      """
      
      def __init__(self, parent=None, subject=None, left=None, top=None, width=500,
!                  height=350):
  
          self.oldname = None
  
!         print 'DEBUG::subject: %s' % dir(subject)
!         print 'DEBUG::subject::__module__ %s' % subject.__module__
          #if isinstance(subject, tv.record_types.Favorite):
          #    print 'DEBUG::subject: FUCK'
--- 80,97 ----
      width     Integer
      height    Integer
+     context   Context in which the object is instanciated
      """
      
      def __init__(self, parent=None, subject=None, left=None, top=None, width=500,
!                  height=350, context=None):
  
          self.oldname = None
+         if context:
+             self.context = context
+         else:
+             context = 'guide'
  
!         #print 'DEBUG::subject: %s' % dir(subject)
!         #print 'DEBUG::subject::__module__ %s' % subject.__module__
          #if isinstance(subject, tv.record_types.Favorite):
          #    print 'DEBUG::subject: FUCK'
***************
*** 117,121 ****
          guide = tv.epg_xmltv.get_guide()
  
!         name = Label(_('Name:\t'), self, Align.LEFT)
          self.name_input = LetterBoxGroup(text=self.fav.name)
          self.name_input.h_align = Align.NONE
--- 128,132 ----
          guide = tv.epg_xmltv.get_guide()
  
!         name = Label(_('Name:'), self, Align.LEFT)
          self.name_input = LetterBoxGroup(text=self.fav.name)
          self.name_input.h_align = Align.NONE
***************
*** 123,129 ****
  
  
!         title = Label(_('Title:\t%s') % self.fav.title, self, Align.LEFT)
  
!         chan = Label(_('Channel:\t'), self, Align.LEFT)
  
          self.chan_box = OptionBox('ANY')
--- 134,140 ----
  
  
!         title = Label(_('Title:%s') % self.fav.title, self, Align.LEFT)
  
!         chan = Label(_('Channel:'), self, Align.LEFT)
  
          self.chan_box = OptionBox('ANY')
***************
*** 131,224 ****
          self.chan_box.add_item(text='ANY', value='ANY')
        
!         i = 0
          chan_index = 0
          for ch in guide.chan_list:
!             if ch.id == self.fav.channel_id:
                  chan_index = i
              i += 1
!             self.chan_box.add_item(text=ch.id, value=ch.id)
  
  
          self.chan_box.toggle_selected_index(chan_index)
          self.add_child(self.chan_box)
  
!         dow = Label(_('Day of Week:\t'), self, Align.LEFT)
          self.dow_box = OptionBox('ANY DAY')
          self.dow_box.h_align = Align.NONE
  
          self.dow_box.add_item(text=_('ANY DAY'), value='ANY')
-         self.dow_box.add_item(text=_('Mon'), value=0)
-         self.dow_box.add_item(text=_('Tues'), value=1)
-         self.dow_box.add_item(text=_('Wed'), value=2)
-         self.dow_box.add_item(text=_('Thurs'), value=3)
-         self.dow_box.add_item(text=_('Fri'), value=4)
-         self.dow_box.add_item(text=_('Sat'), value=5)
-         self.dow_box.add_item(text=_('Sun'), value=6)
  
!         self.dow_box.toggle_selected_index(0)
          self.add_child(self.dow_box)
  
!         tod = Label(_('Time of Day:\t'), self, Align.LEFT)
          self.tod_box = OptionBox('ANY')
          self.tod_box.h_align = Align.NONE
          self.tod_box.add_item(text=_('ANY TIME'), value='ANY')
!         self.tod_box.add_item(text='12:00 AM', value=0)
!         self.tod_box.add_item(text='11:30 AM', value=30)
!         self.tod_box.add_item(text='1:00 AM', value=60)
!         self.tod_box.add_item(text='1:30 AM', value=90)
!         self.tod_box.add_item(text='2:00 AM', value=120)
!         self.tod_box.add_item(text='2:30 AM', value=150)
!         self.tod_box.add_item(text='3:00 AM', value=180)
!         self.tod_box.add_item(text='3:30 AM', value=210)
!         self.tod_box.add_item(text='4:00 AM', value=240)
!         self.tod_box.add_item(text='4:30 AM', value=270)
!         self.tod_box.add_item(text='5:00 AM', value=300)
!         self.tod_box.add_item(text='5:30 AM', value=330)
!         self.tod_box.add_item(text='6:00 AM', value=360)
!         self.tod_box.add_item(text='6:30 AM', value=390)
!         self.tod_box.add_item(text='7:00 AM', value=420)
!         self.tod_box.add_item(text='7:30 AM', value=450)
!         self.tod_box.add_item(text='8:00 AM', value=480)
!         self.tod_box.add_item(text='8:30 AM', value=510)
!         self.tod_box.add_item(text='9:00 AM', value=540)
!         self.tod_box.add_item(text='9:30 AM', value=570)
!         self.tod_box.add_item(text='10:00 AM', value=600)
!         self.tod_box.add_item(text='10:30 AM', value=630)
!         self.tod_box.add_item(text='11:00 AM', value=660)
!         self.tod_box.add_item(text='11:30 AM', value=690)
!         self.tod_box.add_item(text='12:00 PM', value=720)
!         self.tod_box.add_item(text='12:30 PM', value=750)
!         self.tod_box.add_item(text='1:00 PM', value=780)
!         self.tod_box.add_item(text='1:30 PM', value=810)
!         self.tod_box.add_item(text='2:00 PM', value=840)
!         self.tod_box.add_item(text='2:30 PM', value=870)
!         self.tod_box.add_item(text='3:00 PM', value=900)
!         self.tod_box.add_item(text='3:30 PM', value=930)
!         self.tod_box.add_item(text='4:00 PM', value=960)
!         self.tod_box.add_item(text='4:30 PM', value=990)
!         self.tod_box.add_item(text='5:00 PM', value=1020)
!         self.tod_box.add_item(text='5:30 PM', value=1050)
!         self.tod_box.add_item(text='6:00 PM', value=1080)
!         self.tod_box.add_item(text='6:30 PM', value=1110)
!         self.tod_box.add_item(text='7:00 PM', value=1140)
!         self.tod_box.add_item(text='7:30 PM', value=1170)
!         self.tod_box.add_item(text='8:00 PM', value=1200)
!         self.tod_box.add_item(text='8:30 PM', value=1230)
!         self.tod_box.add_item(text='9:00 PM', value=1260)
!         self.tod_box.add_item(text='9:30 PM', value=1290)
!         self.tod_box.add_item(text='10:00 PM', value=1320)
!         self.tod_box.add_item(text='10:30 PM', value=1350)
!         self.tod_box.add_item(text='11:00 PM', value=1380)
!         self.tod_box.add_item(text='11:30 PM', value=1410)
!       
!         self.tod_box.toggle_selected_index(0)
          self.add_child(self.tod_box)
  
          self.save = Button(_('Save'))
          self.add_child(self.save)
  
  
      def eventhandler(self, event, menuw=None):
!         print 'SELECTED CHILD: %s' % self.get_selected_child()
          if self.get_selected_child() == self.name_input:
              if event == em.INPUT_LEFT:
--- 142,239 ----
          self.chan_box.add_item(text='ANY', value='ANY')
        
!         i = 1
          chan_index = 0
          for ch in guide.chan_list:
!             #if ch.id == self.fav.channel_id:
!             if ch.displayname == self.fav.channel:
                  chan_index = i
              i += 1
!             self.chan_box.add_item(text=ch.displayname, value=ch.displayname)
  
  
          self.chan_box.toggle_selected_index(chan_index)
+         # This is a hack for setting the OptionBox's label to the current
+         # value. It should be done by OptionBox when drawing, but it doesn't
+         # work :(
+         self.chan_box.change_item(None)
          self.add_child(self.chan_box)
  
!         dow = Label(_('Day of Week:'), self, Align.LEFT)
          self.dow_box = OptionBox('ANY DAY')
          self.dow_box.h_align = Align.NONE
  
          self.dow_box.add_item(text=_('ANY DAY'), value='ANY')
  
!         i=1
!         dow_index = 0
!         for dow in ('Mon', 'Tues', 'Wed', 'Thurs', 'Fri', 'Sat', 'Sun'):
!             val = "%d" % (i-1)
!             self.dow_box.add_item(text=_(dow), value=val )
!             if val == self.fav.dow:
!                 dow_index = i
!             i += 1
!         self.dow_box.toggle_selected_index(dow_index)
!         # This is a hack for setting the OptionBox's label to the current
!         # value. It should be done by OptionBox when drawing, but it doesn't
!         # work :(
!         self.dow_box.change_item(None)
          self.add_child(self.dow_box)
  
!         tod = Label(_('Time of Day:'), self, Align.LEFT)
          self.tod_box = OptionBox('ANY')
          self.tod_box.h_align = Align.NONE
          self.tod_box.add_item(text=_('ANY TIME'), value='ANY')
! 
!         i = 0
!         tod_index = 0
!         
!         for h in range(0,24):
!             for m in (00, 30):
!                 val = i*30
!                 # Little hack: we calculate the hours from Jan 1st, 1970 GMT,
!                 # and then use strftime to get the string representation
!                 text = strftime(config.TV_TIMEFORMAT, gmtime(h * 3600 + 60 * m))
!                 self.tod_box.add_item(text=text, value=val)
!                 if val == self.fav.mod:
!                     tod_index = i+1
!                 i += 1
!         self.tod_box.toggle_selected_index(tod_index)
!         # This is a hack for setting the OptionBox's label to the current
!         # value. It should be done by OptionBox when drawing, but it doesn't
!         # work :(
!         self.tod_box.change_item(None)
          self.add_child(self.tod_box)
  
          self.save = Button(_('Save'))
          self.add_child(self.save)
+         if self.oldname:
+             self.remove = Button(_('Remove'))
+             self.add_child(self.remove)
+         else:
+             self.remove = None
+         self.cancel = Button(_('CANCEL'))
+         self.add_child(self.cancel)
  
+     def removeFavorite(self):
+        (result, msg) = record_client.removeFavorite(self.oldname) 
+        if result:
+            searcher = None
+            if self.parent and self.context == 'favorites':
+                for child in self.parent.children:
+                    if isinstance(child, ViewFavorites):
+                        searcher = child
+                        break 
+                if searcher:
+                    searcher.refreshList()
+                self.destroy()
+                if searcher:
+                    searcher.draw()
+                    self.osd.update()
+        else:
+            AlertBox(parent=self,
+                     text=_('Remove Failed: %s') % msg).show()
  
      def eventhandler(self, event, menuw=None):
!         #print 'SELECTED CHILD: %s' % self.get_selected_child()
          if self.get_selected_child() == self.name_input:
              if event == em.INPUT_LEFT:
***************
*** 263,267 ****
              elif event == em.INPUT_ENTER:
                  if self.chan_box.selected or self.chan_box.list.is_visible():
!                     if DEBUG: print '  Want to toggle_box'
                      self.chan_box.toggle_box()
                      self.draw()
--- 278,282 ----
              elif event == em.INPUT_ENTER:
                  if self.chan_box.selected or self.chan_box.list.is_visible():
!                     #if DEBUG: print '  Want to toggle_box'
                      self.chan_box.toggle_box()
                      self.draw()
***************
*** 331,343 ****
                               self.name_input.get_word(), 
                               self.fav.title, 
!                              self.fav.channel_id, 
                               self.dow_box.list.get_selected_item().value, 
                               self.tod_box.list.get_selected_item().value, 
                               self.fav.priority)
                  if result:
!                     tv.view_favorites.ViewFavorites(parent=self.parent, 
text='Favorites').show()
                      self.destroy()
                  else:
!                     AlertBox(parent=self, text=_('Failed: %s') % msg)
                  return
              elif event in (em.INPUT_LEFT, em.MENU_PAGEUP):
--- 346,359 ----
                               self.name_input.get_word(), 
                               self.fav.title, 
!                              self.chan_box.list.get_selected_item().value,
                               self.dow_box.list.get_selected_item().value, 
                               self.tod_box.list.get_selected_item().value, 
                               self.fav.priority)
                  if result:
!                     #tv.view_favorites.ViewFavorites(parent=self.parent, 
text='Favorites').show()
                      self.destroy()
+                     AlertBox(parent='osd', text=_('Favorite %s has been saved') % 
self.name_input.get_word()).show()
                  else:
!                     AlertBox(parent=self, text=_('Failed: %s') % msg).show()
                  return
              elif event in (em.INPUT_LEFT, em.MENU_PAGEUP):
***************
*** 345,352 ****
--- 361,409 ----
                  self.tod_box.toggle_selected()
                  self.draw()
+             elif event in (em.INPUT_RIGHT, em.MENU_PAGEDOWN):
+                 self.save.toggle_selected()
+                 if self.remove:
+                     self.remove.toggle_selected()
+                 else:
+                     self.cancel.toggle_selected()
+                 self.draw()
              elif event == em.INPUT_EXIT:
                  self.destroy()
                  return
+             self.osd.update(self.get_rect())
+             return
  
+         elif self.get_selected_child() == self.remove:
+             if event == em.INPUT_ENTER:
+                 ConfirmBox(text=_('Do you want to remove %s?') % 
self.name_input.get_word(),
+                            handler=self.removeFavorite).show()
+                 return
+             elif event in (em.INPUT_LEFT, em.MENU_PAGEUP):
+                 self.save.toggle_selected()
+                 self.remove.toggle_selected()
+                 self.draw()
+             elif event in (em.INPUT_RIGHT, em.MENU_PAGEDOWN):
+                 self.remove.toggle_selected()
+                 self.cancel.toggle_selected()
+                 self.draw()
+             elif event in (em.INPUT_ENTER, em.INPUT_EXIT):
+                 self.destroy()
+                 return
+             self.osd.update(self.get_rect())
+             return
+         
+         elif self.get_selected_child() == self.cancel:
+             if event in (em.INPUT_LEFT, em.MENU_PAGEUP):
+                 if self.remove:
+                     self.remove.toggle_selected()
+                 else:
+                     self.save.toggle_selected()
+                 self.cancel.toggle_selected()
+                 self.draw()
+             elif event in (em.INPUT_ENTER, em.INPUT_EXIT):
+                 self.destroy()
+                 return
+             self.osd.update(self.get_rect())
+             return
          if event == em.INPUT_EXIT:
              self.destroy()

Index: program_display.py
===================================================================
RCS file: /cvsroot/freevo/freevo/src/tv/program_display.py,v
retrieving revision 1.23
retrieving revision 1.24
diff -C2 -d -r1.23 -r1.24
*** program_display.py  28 Nov 2003 20:08:58 -0000      1.23
--- program_display.py  9 Jan 2004 02:10:00 -0000       1.24
***************
*** 10,13 ****
--- 10,17 ----
  #-----------------------------------------------------------------------
  # $Log$
+ # Revision 1.24  2004/01/09 02:10:00  rshortt
+ # Patch from Matthieu Weber to revive add/edit favorites support from the
+ # TV interface.
+ #
  # Revision 1.23  2003/11/28 20:08:58  dischi
  # renamed some config variables
***************
*** 178,197 ****
          used_height += chan.font.height + start.font.height + stop.font.height + \
                         (4 *self.v_spacing)
! 
          if self.context == 'guide':
!             self.b0 = Button(_('Record'), width=(width-60)/2)
!             # self.options.add_item(text='Search for more of this program', value=2)
!             # self.options.add_item(text='Add "%s" to favorites' % prog.title, 
value=3)
          else:
!             self.b0 = Button(_('Remove'), width=(width-60)/2)
  
!         self.b0.set_h_align(Align.CENTER)
!         self.add_child(self.b0)
!         self.b0.toggle_selected()
          
-         self.b1 = Button(_('CANCEL'), width=(width-60)/2)
-         self.b1.set_h_align(Align.CENTER)
-         self.add_child(self.b1)
- 
          if desc:
              desc.width  = self.width - 30
--- 182,208 ----
          used_height += chan.font.height + start.font.height + stop.font.height + \
                         (4 *self.v_spacing)
!         
!         self.buttons = []
!         all_buttons = { 'record': 'Record',
!                         'search': 'Search for more of this program',
!                         'favorites': 'Add to favorites',
!                         'remove': 'Remove',
!                         'cancel': 'CANCEL',
!                       }
!         self.button_config = []
          if self.context == 'guide':
!             self.button_config = ['record', 'favorites', 'cancel']
          else:
!             self.button_config = ['remove', 'cancel']
!             
!         for bname in self.button_config:
!             b = Button(_(all_buttons[bname]), width=(width-60)/2)
!             b.set_h_align(Align.CENTER)
!             self.add_child(b)
!             self.buttons.append(b)
  
!         self.buttons[0].toggle_selected()
!         self.current_button = 0
          
          if desc:
              desc.width  = self.width - 30
***************
*** 218,224 ****
  
  
!         if event in (em.INPUT_UP, em.INPUT_DOWN):
!             self.b0.toggle_selected()
!             self.b1.toggle_selected()
              self.draw()
              self.osd.update(self.get_rect())
--- 229,247 ----
  
  
!         #if event in (em.INPUT_UP, em.INPUT_DOWN):
!         if event == em.INPUT_UP:
!             if self.current_button > 0:
!                 self.buttons[self.current_button].toggle_selected()
!                 self.current_button -= 1
!                 self.buttons[self.current_button].toggle_selected()
!             self.draw()
!             self.osd.update(self.get_rect())
!             return
! 
!         elif event == em.INPUT_DOWN:
!             if self.current_button < len(self.buttons) - 1:
!                 self.buttons[self.current_button].toggle_selected()
!                 self.current_button += 1
!                 self.buttons[self.current_button].toggle_selected()
              self.draw()
              self.osd.update(self.get_rect())
***************
*** 236,240 ****
  
          elif event == em.INPUT_ENTER:
!             if self.b0.selected and self.context == 'guide':
                  (result, msg) = record_client.scheduleRecording(self.prog)
                  if result:
--- 259,263 ----
  
          elif event == em.INPUT_ENTER:
!             if self.button_config[self.current_button] == 'record' and self.context 
== 'guide':
                  (result, msg) = record_client.scheduleRecording(self.prog)
                  if result:
***************
*** 252,261 ****
  
              # XXX: add to favorites - should go to an edit favorites screen
!             elif 0:
                  tv.edit_favorite.EditFavorite(parent=self, 
                                             subject=self.prog).show()
  
              # next will only happen if we are not viewing from the guide
!             elif self.b0.selected:
                  (result, msg) = record_client.removeScheduledRecording(self.prog)
                  if result:
--- 275,285 ----
  
              # XXX: add to favorites - should go to an edit favorites screen
!             elif self.button_config[self.current_button] == 'favorites' and 
self.context == 'guide':
!                 self.destroy()
                  tv.edit_favorite.EditFavorite(parent=self, 
                                             subject=self.prog).show()
  
              # next will only happen if we are not viewing from the guide
!             elif self.button_config[self.current_button] == 'remove':
                  (result, msg) = record_client.removeScheduledRecording(self.prog)
                  if result:
***************
*** 289,293 ****
                               text=_('Remove Failed: %s') % msg).show()
  
!             elif self.b1.selected:
                  self.destroy()
  
--- 313,317 ----
                               text=_('Remove Failed: %s') % msg).show()
  
!             elif self.button_config[self.current_button] == 'cancel':
                  self.destroy()
  

Index: record_types.py
===================================================================
RCS file: /cvsroot/freevo/freevo/src/tv/record_types.py,v
retrieving revision 1.6
retrieving revision 1.7
diff -C2 -d -r1.6 -r1.7
*** record_types.py     20 Oct 2003 01:41:55 -0000      1.6
--- record_types.py     9 Jan 2004 02:10:00 -0000       1.7
***************
*** 10,13 ****
--- 10,17 ----
  # -----------------------------------------------------------------------
  # $Log$
+ # Revision 1.7  2004/01/09 02:10:00  rshortt
+ # Patch from Matthieu Weber to revive add/edit favorites support from the
+ # TV interface.
+ #
  # Revision 1.6  2003/10/20 01:41:55  rshortt
  # Moving tv_util from src/tv/ to src/util/.
***************
*** 143,147 ****
--- 147,171 ----
                   exacttod=FALSE, priority=0):
          self.TYPES_VERSION = TYPES_VERSION
+         translation_table = \
+                             '                ' \
+                             + '                ' \
+                             + ' !"#$%&' + "'" + '()*+,-./' \
+                             + '0123456789:;<=>?' \
+                             + '@ABCDEFGHIJKLMNO' \
+                             + 'PQRSTUVWXYZ[\]^_' \
+                             + '`abcdefghijklmno' \
+                             + 'pqrstuvwxyz{|}~�' \
+                             + '                ' \
+                             + '                ' \
+                             + '                ' \
+                             + '                ' \
+                             + 'AAAAAAACEEEEIIII' \
+                             + 'DNOOOOOxOUUUUYPS' \
+                             + 'aaaaaaaceeeeiiii' \
+                             + 'dnooooo/ouuuuypy'
+ 
          self.name = name
+         if name:
+             self.name = name.translate(translation_table)
          self.priority = priority
  

Index: tvguide.py
===================================================================
RCS file: /cvsroot/freevo/freevo/src/tv/tvguide.py,v
retrieving revision 1.21
retrieving revision 1.22
diff -C2 -d -r1.21 -r1.22
*** tvguide.py  4 Dec 2003 21:48:11 -0000       1.21
--- tvguide.py  9 Jan 2004 02:10:00 -0000       1.22
***************
*** 10,13 ****
--- 10,17 ----
  # -----------------------------------------------------------------------
  # $Log$
+ # Revision 1.22  2004/01/09 02:10:00  rshortt
+ # Patch from Matthieu Weber to revive add/edit favorites support from the
+ # TV interface.
+ #
  # Revision 1.21  2003/12/04 21:48:11  dischi
  # also add the plugin area
***************
*** 198,202 ****
              self.menuw.refresh()
  
!         elif event == em.MENU_SUBMENU or event == em.TV_START_RECORDING:
              if self.selected.scheduled:
                  program_display.ProgramDisplay(parent=self, context='recording',
--- 202,211 ----
              self.menuw.refresh()
  
!         #elif event == em.MENU_SUBMENU or event == em.TV_START_RECORDING:
!         elif event == em.MENU_SUBMENU:
!             
!             pass
! 
!         elif event == em.TV_START_RECORDING:
              if self.selected.scheduled:
                  program_display.ProgramDisplay(parent=self, context='recording',

Index: tvmenu.py
===================================================================
RCS file: /cvsroot/freevo/freevo/src/tv/tvmenu.py,v
retrieving revision 1.10
retrieving revision 1.11
diff -C2 -d -r1.10 -r1.11
*** tvmenu.py   31 Dec 2003 16:10:30 -0000      1.10
--- tvmenu.py   9 Jan 2004 02:10:00 -0000       1.11
***************
*** 10,13 ****
--- 10,17 ----
  # -----------------------------------------------------------------------
  # $Log$
+ # Revision 1.11  2004/01/09 02:10:00  rshortt
+ # Patch from Matthieu Weber to revive add/edit favorites support from the
+ # TV interface.
+ #
  # Revision 1.10  2003/12/31 16:10:30  rshortt
  # Make it possible to have a tv mainmenu plugin.
***************
*** 195,199 ****
                                     action=self.view_schedule))
          items.append(menu.MenuItem(_('Search Guide'), action=self.show_search))
!         # items.append(menu.MenuItem('View Favorites', action=self.show_favorites))
  
          plugins_list = plugin.get('mainmenu_tv')
--- 199,203 ----
                                     action=self.view_schedule))
          items.append(menu.MenuItem(_('Search Guide'), action=self.show_search))
!         items.append(menu.MenuItem('View Favorites', action=self.show_favorites))
  
          plugins_list = plugin.get('mainmenu_tv')

Index: view_favorites.py
===================================================================
RCS file: /cvsroot/freevo/freevo/src/tv/view_favorites.py,v
retrieving revision 1.5
retrieving revision 1.6
diff -C2 -d -r1.5 -r1.6
*** view_favorites.py   16 Nov 2003 17:38:48 -0000      1.5
--- view_favorites.py   9 Jan 2004 02:10:00 -0000       1.6
***************
*** 12,15 ****
--- 12,19 ----
  # -----------------------------------------------------------------------
  # $Log$
+ # Revision 1.6  2004/01/09 02:10:00  rshortt
+ # Patch from Matthieu Weber to revive add/edit favorites support from the
+ # TV interface.
+ #
  # Revision 1.5  2003/11/16 17:38:48  dischi
  # i18n patch from David Sagnol
***************
*** 44,48 ****
  #endif
  
! import time
  
  import config, record_client, edit_favorite
--- 48,52 ----
  #endif
  
! from time import gmtime, strftime
  
  import config, record_client, edit_favorite
***************
*** 76,80 ****
          
      def __init__(self, parent='osd', text=None, search=None, handler=None, 
!                  left=None, top=None, width=600, height=520, bg_color=None, 
                   fg_color=None, icon=None, border=None, bd_color=None, 
                   bd_width=None):
--- 80,84 ----
          
      def __init__(self, parent='osd', text=None, search=None, handler=None, 
!                  left=None, top=None, width=600, height=400, bg_color=None, 
                   fg_color=None, icon=None, border=None, bd_color=None, 
                   bd_width=None):
***************
*** 94,101 ****
          self.internal_h_align = Align.CENTER
  
!         legend = Label(_('Name\tTitle\tChannel\tDOW\tTOD'), self, Align.CENTER)
  
!         items_height = 40
!         self.num_shown_items = 7
          self.results = ListBox(width=(self.width-2*self.h_margin),
                                 height=self.num_shown_items*items_height,
--- 98,106 ----
          self.internal_h_align = Align.CENTER
  
!         #legend = Label(_('Name Title Channel DOW TOD'), self, Align.CENTER)
  
!         #items_height = 40
!         items_height = Button('foo').height + 2
!         self.num_shown_items = 8
          self.results = ListBox(width=(self.width-2*self.h_margin),
                                 height=self.num_shown_items*items_height,
***************
*** 107,114 ****
          self.add_child(self.results)
  
!         (result, favorites) = record_client.getFavorites()
  
!         if result:
              i = 0
  
              if len(favorites) > self.num_shown_items:
--- 112,127 ----
          self.add_child(self.results)
  
!         self.refreshList()
  
!     def refreshList(self):
!         (self.result, favorites) = record_client.getFavorites()
!         if not self.result:
!             errormsg = Label(_('Get favorites failed: %s') % recordings,
!                              self, Align.CENTER)
!             return
! 
!         if self.result:
              i = 0
+             self.results.items = []
  
              if len(favorites) > self.num_shown_items:
***************
*** 122,131 ****
              for fav in favorites:
                  i += 1
!                 self.results.add_item(text='%s : %s : %s : %s : %s' % \
                                          (fav.name, 
                                           fav.title,
!                                          fav.channel_id,
!                                          fav.dow,
!                                          fav.mod),
                                        value=fav)
  
--- 135,158 ----
              for fav in favorites:
                  i += 1
!                 if fav.channel == 'ANY':
!                     chan = 'any channel'
!                 else:
!                     chan = fav.channel
!                 if fav.dow == 'ANY':
!                     dow = 'any day'
!                 else:
!                     week_days = ('Mon', 'Tues', 'Wed', 'Thurs', 'Fri', 'Sat', 'Sun')
!                     dow = week_days[int(fav.dow)]
!                 if fav.mod == 'ANY':
!                     mod = 'any time'
!                 else:
!                     mod = strftime(config.TV_TIMEFORMAT, gmtime(fav.mod * 60))
!                 self.results.add_item(text='%s: %s (%s, %s, %s)' % \
                                          (fav.name, 
                                           fav.title,
!                                          #fav.channel_id,
!                                          chan,
!                                          dow,
!                                          mod),
                                        value=fav)
  
***************
*** 146,152 ****
              return self.results.eventhandler(event)
          elif event == em.INPUT_ENTER:
!             edit_favorite.EditFavorite(parent=self.parent,
!                            subject=self.results.get_selected_item().value).show()
!             # self.destroy()
              return
          elif event == em.INPUT_EXIT:
--- 173,181 ----
              return self.results.eventhandler(event)
          elif event == em.INPUT_ENTER:
!             subject = self.results.get_selected_item().value
!             if subject == ' ': subject = None
!             if subject:
!                 edit_favorite.EditFavorite(parent=self, subject=subject,
!                 context='favorites').show()
              return
          elif event == em.INPUT_EXIT:




-------------------------------------------------------
This SF.net email is sponsored by: Perforce Software.
Perforce is the Fast Software Configuration Management System offering
advanced branching capabilities and atomic changes on 50+ platforms.
Free Eval! http://www.perforce.com/perforce/loadprog.html
_______________________________________________
Freevo-cvslog mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/freevo-cvslog

Reply via email to