ServiceItem cleanup - hide lists 2

This commit is contained in:
Tim Bentley 2009-11-14 09:06:25 +00:00
parent ad6abb1e9c
commit 02ad0595d7
1 changed files with 28 additions and 25 deletions

View File

@ -63,15 +63,14 @@ class ServiceItem(object):
self.audit = u'' self.audit = u''
self.items = [] self.items = []
self.iconic_representation = None self.iconic_representation = None
self.raw_slides = None
self.display_frames = []
self.raw_footer = None self.raw_footer = None
self.theme = None self.theme = None
self.service_item_path = None self.service_item_path = None
self.service_item_type = None self.service_item_type = None
self.editEnabled = False self.editEnabled = False
self.raw_frames = [] self._raw_frames = []
self.uuid = unicode(uuid.uuid1()) self._display_frames = []
self._uuid = unicode(uuid.uuid1())
def addIcon(self, icon): def addIcon(self, icon):
""" """
@ -90,14 +89,14 @@ class ServiceItem(object):
The render method is what generates the frames for the screen. The render method is what generates the frames for the screen.
""" """
log.debug(u'Render called') log.debug(u'Render called')
self.display_frames = [] self._display_frames = []
if self.service_item_type == ServiceItemType.Text: if self.service_item_type == ServiceItemType.Text:
log.debug(u'Formatting slides') log.debug(u'Formatting slides')
if self.theme is None: if self.theme is None:
self.RenderManager.set_override_theme(None) self.RenderManager.set_override_theme(None)
else: else:
self.RenderManager.set_override_theme(self.theme) self.RenderManager.set_override_theme(self.theme)
for slide in self.raw_frames: for slide in self._raw_frames:
before = time.time() before = time.time()
formated = self.RenderManager.format_slide(slide[u'raw_slide']) formated = self.RenderManager.format_slide(slide[u'raw_slide'])
for format in formated: for format in formated:
@ -105,12 +104,12 @@ class ServiceItem(object):
for line in format: for line in format:
lines += line + u'\n' lines += line + u'\n'
title = lines.split(u'\n')[0] title = lines.split(u'\n')[0]
self.display_frames.append({u'title': title, u'text': lines}) self._display_frames.append({u'title': title, u'text': lines})
log.info(u'Formatting took %4s' % (time.time() - before)) log.info(u'Formatting took %4s' % (time.time() - before))
elif self.service_item_type == ServiceItemType.Command: elif self.service_item_type == ServiceItemType.Command:
self.display_frames = self.raw_frames self._display_frames = self._raw_frames
elif self.service_item_type == ServiceItemType.Image: elif self.service_item_type == ServiceItemType.Image:
for slide in self.raw_frames: for slide in self._raw_frames:
slide[u'image'] = \ slide[u'image'] = \
self.RenderManager.resize_image(slide[u'image']) self.RenderManager.resize_image(slide[u'image'])
else: else:
@ -127,7 +126,7 @@ class ServiceItem(object):
self.RenderManager.set_override_theme(None) self.RenderManager.set_override_theme(None)
else: else:
self.RenderManager.set_override_theme(self.theme) self.RenderManager.set_override_theme(self.theme)
format = self.display_frames[row][u'text'].split(u'\n') format = self._display_frames[row][u'text'].split(u'\n')
frame = self.RenderManager.generate_slide(format, frame = self.RenderManager.generate_slide(format,
self.raw_footer) self.raw_footer)
return frame return frame
@ -147,7 +146,7 @@ class ServiceItem(object):
""" """
self.service_item_type = ServiceItemType.Image self.service_item_type = ServiceItemType.Image
self.service_item_path = path self.service_item_path = path
self.raw_frames.append( self._raw_frames.append(
{u'title': title, u'image': image}) {u'title': title, u'image': image})
def add_from_text(self, title, raw_slide): def add_from_text(self, title, raw_slide):
@ -162,7 +161,7 @@ class ServiceItem(object):
""" """
self.service_item_type = ServiceItemType.Text self.service_item_type = ServiceItemType.Text
title = title.split(u'\n')[0] title = title.split(u'\n')[0]
self.raw_frames.append( self._raw_frames.append(
{u'title': title, u'raw_slide': raw_slide}) {u'title': title, u'raw_slide': raw_slide})
def add_from_command(self, path, file_name, image): def add_from_command(self, path, file_name, image):
@ -180,7 +179,7 @@ class ServiceItem(object):
""" """
self.service_item_type = ServiceItemType.Command self.service_item_type = ServiceItemType.Command
self.service_item_path = path self.service_item_path = path
self.raw_frames.append( self._raw_frames.append(
{u'title': file_name, u'image': image}) {u'title': file_name, u'image': image})
def get_service_repr(self): def get_service_repr(self):
@ -200,13 +199,13 @@ class ServiceItem(object):
} }
service_data = [] service_data = []
if self.service_item_type == ServiceItemType.Text: if self.service_item_type == ServiceItemType.Text:
for slide in self.raw_frames: for slide in self._raw_frames:
service_data.append(slide) service_data.append(slide)
elif self.service_item_type == ServiceItemType.Image: elif self.service_item_type == ServiceItemType.Image:
for slide in self.raw_frames: for slide in self._raw_frames:
service_data.append(slide[u'title']) service_data.append(slide[u'title'])
elif self.service_item_type == ServiceItemType.Command: elif self.service_item_type == ServiceItemType.Command:
for slide in self.raw_frames: for slide in self._raw_frames:
service_data.append({u'title':slide[u'title'], u'image':slide[u'image']}) service_data.append({u'title':slide[u'title'], u'image':slide[u'image']})
return {u'header': service_header, u'data': service_data} return {u'header': service_header, u'data': service_data}
@ -232,7 +231,7 @@ class ServiceItem(object):
self.audit = header[u'audit'] self.audit = header[u'audit']
if self.service_item_type == ServiceItemType.Text: if self.service_item_type == ServiceItemType.Text:
for slide in serviceitem[u'serviceitem'][u'data']: for slide in serviceitem[u'serviceitem'][u'data']:
self.raw_frames.append(slide) self._raw_frames.append(slide)
elif self.service_item_type == ServiceItemType.Image: elif self.service_item_type == ServiceItemType.Image:
for text_image in serviceitem[u'serviceitem'][u'data']: for text_image in serviceitem[u'serviceitem'][u'data']:
filename = os.path.join(path, text_image) filename = os.path.join(path, text_image)
@ -245,11 +244,11 @@ class ServiceItem(object):
def merge(self, other): def merge(self, other):
""" """
Updates the uuid with the value from the original one Updates the _uuid with the value from the original one
The uuid is unique for a give service item but this allows one to The _uuid is unique for a give service item but this allows one to
replace an original version. replace an original version.
""" """
self.uuid = other.uuid self._uuid = other._uuid
def __eq__(self, other): def __eq__(self, other):
""" """
@ -257,13 +256,13 @@ class ServiceItem(object):
""" """
if not other: if not other:
return False return False
return self.uuid == other.uuid return self._uuid == other._uuid
def __ne__(self, other): def __ne__(self, other):
""" """
Confirms the service items are not for the same instance Confirms the service items are not for the same instance
""" """
return self.uuid != other.uuid return self._uuid != other._uuid
def isSong(self): def isSong(self):
return self.name == u'Songs' return self.name == u'Songs'
@ -282,12 +281,16 @@ class ServiceItem(object):
def getFrames(self): def getFrames(self):
if self.service_item_type == ServiceItemType.Text: if self.service_item_type == ServiceItemType.Text:
return self.display_frames return self._display_frames
else: else:
return self.raw_frames return self._raw_frames
def get_rendered_frame(self, row): def get_rendered_frame(self, row):
"""
Returns the correct frame for a given list and
renders it if required.
"""
if self.service_item_type == ServiceItemType.Text: if self.service_item_type == ServiceItemType.Text:
return self.render_individual(row) return self.render_individual(row)
else: else:
return self.raw_frames[row][u'image'] return self._raw_frames[row][u'image']