Package flumotion :: Package component :: Package consumers :: Package icystreamer :: Module admin_gtk
[hide private]

Source Code for Module flumotion.component.consumers.icystreamer.admin_gtk

 1  # -*- Mode: Python -*- 
 2  # vi:si:et:sw=4:sts=4:ts=4 
 3   
 4  # Flumotion - a streaming media server 
 5  # Copyright (C) 2004,2005,2006,2007,2008,2009 Fluendo, S.L. 
 6  # Copyright (C) 2010,2011 Flumotion Services, S.A. 
 7  # All rights reserved. 
 8  # 
 9  # This file may be distributed and/or modified under the terms of 
10  # the GNU Lesser General Public License version 2.1 as published by 
11  # the Free Software Foundation. 
12  # This file is distributed without any warranty; without even the implied 
13  # warranty of merchantability or fitness for a particular purpose. 
14  # See "LICENSE.LGPL" in the source distribution for more information. 
15  # 
16  # Headers in this file shall remain intact. 
17   
18  import os 
19  import gettext 
20   
21  from flumotion.component.base.baseadminnode import BaseAdminGtkNode 
22  from flumotion.component.common.streamer.admin_gtk import StreamerAdminGtk 
23   
24  _ = gettext.gettext 
25  __version__ = "$Rev$" 
26   
27   
28 -class IcyAdminGtkNode(BaseAdminGtkNode):
29 gladeFile = os.path.join('flumotion', 'component', 'consumers', 30 'icystreamer', 'icytab.glade') 31
32 - def __init__(self, *args, **kwargs):
33 BaseAdminGtkNode.__init__(self, *args, **kwargs) 34 self._icytab = None 35 self._shown = False 36 self._stats = None 37 self._labels = {}
38
39 - def haveWidgetTree(self):
40 self._labels = {} 41 self._icytab = self.wtree.get_widget('main_vbox') 42 self.widget = self._icytab 43 44 for name in ['title', 'timestamp']: 45 self._registerLabel('icy-' + name) 46 47 return self.widget
48
49 - def _registerLabel(self, name):
50 widget = self.wtree.get_widget('label-' + name) 51 if not widget: 52 print "FIXME: no widget %s" % name 53 return 54 55 self._labels[name] = widget
56
57 - def _updateLabels(self, stats):
58 for name in self._labels: 59 text = stats.get(name, '') 60 self._labels[name].set_text(text)
61
62 - def setStats(self, stats):
63 # Set _stats regardless of if condition 64 # Used to be a race where _stats was 65 # not set if widget tree was gotten before 66 # ui state 67 self._stats = stats 68 if not self._icytab: 69 return 70 71 self._updateLabels(stats) 72 73 if not self._shown: 74 # widget tree created but not yet shown 75 self._shown = True 76 self._icytab.show_all()
77 78
79 -class ICYStreamerAdminGtk(StreamerAdminGtk):
80
81 - def setup(self):
82 icytab = IcyAdminGtkNode(self.state, self.admin, 83 _("ICY")) 84 self.nodes['ICY'] = icytab 85 86 StreamerAdminGtk.setup(self)
87
88 - def uiStateChanged(self, state):
89 StreamerAdminGtk.uiStateChanged(self, state) 90 91 self.nodes['ICY'].setStats(state)
92 93 GUIClass = ICYStreamerAdminGtk 94