mirror of https://gitlab.com/openlp/openlp.git
Fix problems with last merger
This commit is contained in:
commit
06ab5df285
|
@ -49,14 +49,15 @@ class ListWithPreviews(QtCore.QAbstractListModel):
|
|||
if preview is not None:
|
||||
w = self.maximagewidth;
|
||||
h = self.rowheight
|
||||
preview = preview.scaled(w, h, QtCore.Qt.KeepAspectRatio, QtCore.Qt.SmoothTransformation)
|
||||
preview = preview.scaled(w, h, QtCore.Qt.KeepAspectRatio,
|
||||
QtCore.Qt.SmoothTransformation)
|
||||
realw = preview.width();
|
||||
realh = preview.height()
|
||||
# and move it to the centre of the preview space
|
||||
p = QtGui.QImage(w, h, QtGui.QImage.Format_ARGB32_Premultiplied)
|
||||
p.fill(QtCore.Qt.transparent)
|
||||
painter = QtGui.QPainter(p)
|
||||
painter.drawImage((w-realw) / 2 , (h-realh) / 2, preview)
|
||||
painter.drawImage((w-realw) / 2, (h-realh) / 2, preview)
|
||||
else:
|
||||
w = self.maximagewidth;
|
||||
h = self.rowheight
|
||||
|
@ -91,7 +92,8 @@ class ListWithPreviews(QtCore.QAbstractListModel):
|
|||
def data(self, index, role):
|
||||
row = index.row()
|
||||
if row > len(self.items):
|
||||
# if the last row is selected and deleted, we then get called with an empty row!
|
||||
# If the last row is selected and deleted, we then get called
|
||||
# with an empty row!
|
||||
return QtCore.QVariant()
|
||||
if role == QtCore.Qt.DisplayRole:
|
||||
retval = self.items[row][2]
|
||||
|
|
|
@ -132,7 +132,7 @@ class PluginConfig(object):
|
|||
list_count = 0
|
||||
list = []
|
||||
if list_count > 0:
|
||||
for counter in range(0 , list_count):
|
||||
for counter in range(0, list_count):
|
||||
item = unicode(self.get_config(u'%s %d' % (name, counter)))
|
||||
list.append(item)
|
||||
return list
|
||||
|
|
|
@ -96,17 +96,20 @@ class Renderer(object):
|
|||
preview = QtGui.QImage(self._bg_image_filename)
|
||||
width = self._frame.width()
|
||||
height = self._frame.height()
|
||||
preview = preview.scaled(width, height, QtCore.Qt.KeepAspectRatio, QtCore.Qt.SmoothTransformation)
|
||||
preview = preview.scaled(width, height, QtCore.Qt.KeepAspectRatio,
|
||||
QtCore.Qt.SmoothTransformation)
|
||||
realwidth = preview.width()
|
||||
realheight = preview.height()
|
||||
# and move it to the centre of the preview space
|
||||
self.bg_image = QtGui.QImage(width, height, QtGui.QImage.Format_ARGB32_Premultiplied)
|
||||
self.bg_image = QtGui.QImage(width, height,
|
||||
QtGui.QImage.Format_ARGB32_Premultiplied)
|
||||
self.bg_image.fill(QtCore.Qt.black)
|
||||
painter = QtGui.QPainter()
|
||||
painter.begin(self.bg_image)
|
||||
self.background_offsetx = (width - realwidth) / 2
|
||||
self.background_offsety = (height - realheight) / 2
|
||||
painter.drawImage(self.background_offsetx, self.background_offsety, preview)
|
||||
painter.drawImage(self.background_offsetx, self.background_offsety,
|
||||
preview)
|
||||
painter.end()
|
||||
|
||||
def set_frame_dest(self, frame_width, frame_height, preview=False):
|
||||
|
@ -124,7 +127,8 @@ class Renderer(object):
|
|||
"""
|
||||
if preview == True:
|
||||
self._bg_frame = None
|
||||
log.debug(u'set frame dest (frame) w %d h %d', frame_width, frame_height)
|
||||
log.debug(u'set frame dest (frame) w %d h %d', frame_width,
|
||||
frame_height)
|
||||
self._frame = QtGui.QImage(frame_width, frame_height,
|
||||
QtGui.QImage.Format_ARGB32_Premultiplied)
|
||||
if self._bg_image_filename is not None and self.bg_image is None:
|
||||
|
@ -174,12 +178,12 @@ class Renderer(object):
|
|||
split_lines = []
|
||||
count = 0
|
||||
for line in text:
|
||||
#print "C", line , len(line)
|
||||
#print "C", line, len(line)
|
||||
#Must be a blank line so keep it.
|
||||
if len(line) == 0:
|
||||
line = u' '
|
||||
while len(line) > 0:
|
||||
# print "C1", line , len(line)
|
||||
# print "C1", line, len(line)
|
||||
if len(line) > ave_line_width:
|
||||
pos = line.find(u' ', ave_line_width)
|
||||
split_text = line[:pos]
|
||||
|
@ -272,25 +276,30 @@ class Renderer(object):
|
|||
painter.fillRect(self._frame.rect(), QtCore.Qt.transparent)
|
||||
else:
|
||||
if self._theme.background_type == u'solid':
|
||||
painter.fillRect(self._frame.rect(), QtGui.QColor(self._theme.background_color))
|
||||
painter.fillRect(self._frame.rect(),
|
||||
QtGui.QColor(self._theme.background_color))
|
||||
elif self._theme.background_type == u'gradient':
|
||||
# gradient
|
||||
gradient = None
|
||||
if self._theme.background_direction == u'horizontal':
|
||||
w = int(self._frame.width()) / 2
|
||||
# vertical
|
||||
gradient = QtGui.QLinearGradient(w, 0, w, self._frame.height())
|
||||
gradient = QtGui.QLinearGradient(w, 0, w,
|
||||
self._frame.height())
|
||||
elif self._theme.background_direction == u'vertical':
|
||||
h = int(self._frame.height()) / 2
|
||||
# Horizontal
|
||||
gradient = QtGui.QLinearGradient(0, h, self._frame.width(), h)
|
||||
gradient = QtGui.QLinearGradient(0, h, self._frame.width(),
|
||||
h)
|
||||
else:
|
||||
w = int(self._frame.width()) / 2
|
||||
h = int(self._frame.height()) / 2
|
||||
# Circular
|
||||
gradient = QtGui.QRadialGradient(w, h, w)
|
||||
gradient.setColorAt(0, QtGui.QColor(self._theme.background_startColor))
|
||||
gradient.setColorAt(1, QtGui.QColor(self._theme.background_endColor))
|
||||
gradient.setColorAt(0,
|
||||
QtGui.QColor(self._theme.background_startColor))
|
||||
gradient.setColorAt(1,
|
||||
QtGui.QColor(self._theme.background_endColor))
|
||||
painter.setBrush(QtGui.QBrush(gradient))
|
||||
rectPath = QtGui.QPainterPath()
|
||||
max_x = self._frame.width()
|
||||
|
@ -305,10 +314,10 @@ class Renderer(object):
|
|||
# image
|
||||
painter.fillRect(self._frame.rect(), QtCore.Qt.black)
|
||||
if self.bg_image is not None:
|
||||
painter.drawImage(0 ,0 , self.bg_image)
|
||||
painter.drawImage(0, 0, self.bg_image)
|
||||
painter.end()
|
||||
self._bg_frame_small = self._bg_frame.scaled(QtCore.QSize(280, 210), QtCore.Qt.KeepAspectRatio,
|
||||
QtCore.Qt.SmoothTransformation)
|
||||
self._bg_frame_small = self._bg_frame.scaled(QtCore.QSize(280, 210),
|
||||
QtCore.Qt.KeepAspectRatio, QtCore.Qt.SmoothTransformation)
|
||||
log.debug(u'render background End')
|
||||
|
||||
def _correctAlignment(self, rect, bbox):
|
||||
|
@ -335,7 +344,8 @@ class Renderer(object):
|
|||
log.error(u'Invalid value for theme.VerticalAlign:%s' % self._theme.display_verticalAlign)
|
||||
return x, y
|
||||
|
||||
def _render_lines_unaligned(self, lines, footer, tlcorner=(0, 0), live=False):
|
||||
def _render_lines_unaligned(self, lines, footer, tlcorner=(0, 0),
|
||||
live=False):
|
||||
"""
|
||||
Given a list of lines to render, render each one in turn (using the
|
||||
``_render_single_line`` fn - which may result in going off the bottom).
|
||||
|
@ -362,7 +372,8 @@ class Renderer(object):
|
|||
for line in lines:
|
||||
# render after current bottom, but at original left edge
|
||||
# keep track of right edge to see which is biggest
|
||||
(thisx, bry) = self._render_and_wrap_single_line(line, footer, (x, bry), live)
|
||||
(thisx, bry) = self._render_and_wrap_single_line(line, footer,
|
||||
(x, bry), live)
|
||||
if (thisx > brx):
|
||||
brx = thisx
|
||||
retval = QtCore.QRect(x, y, brx - x, bry - y)
|
||||
|
@ -374,7 +385,8 @@ class Renderer(object):
|
|||
painter.end()
|
||||
return retval
|
||||
|
||||
def _render_and_wrap_single_line(self, line, footer, tlcorner=(0, 0), live=False):
|
||||
def _render_and_wrap_single_line(self, line, footer, tlcorner=(0, 0),
|
||||
live=False):
|
||||
"""
|
||||
Render a single line of words onto the DC, top left corner specified.
|
||||
If the line is too wide for the context, it wraps, but right-aligns
|
||||
|
@ -414,7 +426,8 @@ class Renderer(object):
|
|||
for linenum in range(len(lines)):
|
||||
line = lines[linenum]
|
||||
#find out how wide line is
|
||||
w , h = self._get_extent_and_render(line, footer, tlcorner=(x, y), draw=False)
|
||||
w, h = self._get_extent_and_render(line, footer, tlcorner=(x, y),
|
||||
draw=False)
|
||||
if self._theme.display_shadow:
|
||||
w += shadow_offset
|
||||
h += shadow_offset
|
||||
|
@ -427,7 +440,8 @@ class Renderer(object):
|
|||
rightextent = x + w
|
||||
# shift right from last line's rh edge
|
||||
if self._theme.display_wrapStyle == 1 and linenum != 0:
|
||||
rightextent = self._first_line_right_extent + self._right_margin
|
||||
rightextent = self._first_line_right_extent + \
|
||||
self._right_margin
|
||||
if rightextent > maxx:
|
||||
rightextent = maxx
|
||||
x = rightextent - w
|
||||
|
@ -442,27 +456,41 @@ class Renderer(object):
|
|||
if live:
|
||||
# now draw the text, and any outlines/shadows
|
||||
if self._theme.display_shadow:
|
||||
self._get_extent_and_render(line, footer, tlcorner=(x + shadow_offset, y + shadow_offset),
|
||||
self._get_extent_and_render(line, footer,
|
||||
tlcorner=(x + shadow_offset, y + shadow_offset),
|
||||
draw=True, color = self._theme.display_shadow_color)
|
||||
if self._theme.display_outline:
|
||||
self._get_extent_and_render(line, footer, (x+self._outline_offset,y), draw=True,
|
||||
color = self._theme.display_outline_color)
|
||||
self._get_extent_and_render(line, footer, (x, y+self._outline_offset), draw=True,
|
||||
color = self._theme.display_outline_color)
|
||||
self._get_extent_and_render(line, footer, (x, y-self._outline_offset), draw=True,
|
||||
color = self._theme.display_outline_color)
|
||||
self._get_extent_and_render(line, footer, (x-self._outline_offset,y), draw=True,
|
||||
color = self._theme.display_outline_color)
|
||||
self._get_extent_and_render(line, footer,
|
||||
(x+self._outline_offset, y), draw=True,
|
||||
color = self._theme.display_outline_color)
|
||||
self._get_extent_and_render(line, footer,
|
||||
(x, y+self._outline_offset), draw=True,
|
||||
color = self._theme.display_outline_color)
|
||||
self._get_extent_and_render(line, footer,
|
||||
(x, y-self._outline_offset), draw=True,
|
||||
color = self._theme.display_outline_color)
|
||||
self._get_extent_and_render(line, footer,
|
||||
(x-self._outline_offset, y), draw=True,
|
||||
color = self._theme.display_outline_color)
|
||||
if self._outline_offset > 1:
|
||||
self._get_extent_and_render(line, footer, (x+self._outline_offset,y+self._outline_offset), draw=True,
|
||||
self._get_extent_and_render(line, footer,
|
||||
(x+self._outline_offset, y+self._outline_offset),
|
||||
draw=True,
|
||||
color = self._theme.display_outline_color)
|
||||
self._get_extent_and_render(line, footer, (x-self._outline_offset,y+self._outline_offset), draw=True,
|
||||
self._get_extent_and_render(line, footer,
|
||||
(x-self._outline_offset, y+self._outline_offset),
|
||||
draw=True,
|
||||
color = self._theme.display_outline_color)
|
||||
self._get_extent_and_render(line, footer, (x+self._outline_offset,y-self._outline_offset), draw=True,
|
||||
self._get_extent_and_render(line, footer,
|
||||
(x+self._outline_offset, y-self._outline_offset),
|
||||
draw=True,
|
||||
color = self._theme.display_outline_color)
|
||||
self._get_extent_and_render(line, footer, (x-self._outline_offset,y-self._outline_offset), draw=True,
|
||||
self._get_extent_and_render(line, footer,
|
||||
(x-self._outline_offset, y-self._outline_offset),
|
||||
draw=True,
|
||||
color = self._theme.display_outline_color)
|
||||
self._get_extent_and_render(line, footer,tlcorner=(x, y), draw=True)
|
||||
self._get_extent_and_render(line, footer,tlcorner=(x, y),
|
||||
draw=True)
|
||||
y += h
|
||||
if linenum == 0:
|
||||
self._first_line_right_extent = rightextent
|
||||
|
@ -471,9 +499,9 @@ class Renderer(object):
|
|||
painter = QtGui.QPainter()
|
||||
painter.begin(self._frame)
|
||||
painter.setPen(QtGui.QPen(QtGui.QColor(0,255,0)))
|
||||
painter.drawRect(startx , starty , rightextent-startx , y-starty)
|
||||
painter.drawRect(startx, starty, rightextent-startx, y-starty)
|
||||
painter.end()
|
||||
brcorner = (rightextent , y)
|
||||
brcorner = (rightextent, y)
|
||||
return brcorner
|
||||
|
||||
def _set_theme_font(self):
|
||||
|
@ -497,7 +525,8 @@ class Renderer(object):
|
|||
self._theme.font_main_italics)# italic
|
||||
self.mainFont.setPixelSize(int(self._theme.font_main_proportion))
|
||||
|
||||
def _get_extent_and_render(self, line, footer, tlcorner=(0, 0), draw=False, color=None):
|
||||
def _get_extent_and_render(self, line, footer, tlcorner=(0, 0), draw=False,
|
||||
color=None):
|
||||
"""
|
||||
Find bounding box of text - as render_single_line. If draw is set,
|
||||
actually draw the text to the current DC as well return width and
|
||||
|
@ -538,7 +567,7 @@ class Renderer(object):
|
|||
w = metrics.width(line)
|
||||
h = metrics.height() - 2
|
||||
if draw:
|
||||
painter.drawText(x, y + metrics.ascent() , line)
|
||||
painter.drawText(x, y + metrics.ascent(), line)
|
||||
painter.end()
|
||||
return (w, h)
|
||||
|
||||
|
|
|
@ -142,15 +142,19 @@ class RenderManager(object):
|
|||
main_rect = None
|
||||
footer_rect = None
|
||||
if theme.font_main_override == False:
|
||||
main_rect = QtCore.QRect(10,0, self.width - 1, self.footer_start - 20)
|
||||
main_rect = QtCore.QRect(10, 0, self.width - 1,
|
||||
self.footer_start - 20)
|
||||
else:
|
||||
main_rect = QtCore.QRect(int(theme.font_main_x) , int(theme.font_main_y),
|
||||
int(theme.font_main_width)-1, int(theme.font_main_height) - 1)
|
||||
main_rect = QtCore.QRect(int(theme.font_main_x),
|
||||
int(theme.font_main_y), int(theme.font_main_width)-1,
|
||||
int(theme.font_main_height) - 1)
|
||||
if theme.font_footer_override == False:
|
||||
footer_rect = QtCore.QRect(10,self.footer_start, self.width - 1, self.height-self.footer_start)
|
||||
footer_rect = QtCore.QRect(10,self.footer_start, self.width - 1,
|
||||
self.height-self.footer_start)
|
||||
else:
|
||||
footer_rect = QtCore.QRect(int(theme.font_footer_x),int(theme.font_footer_y),
|
||||
int(theme.font_footer_width)-1, int(theme.font_footer_height) - 1)
|
||||
footer_rect = QtCore.QRect(int(theme.font_footer_x),
|
||||
int(theme.font_footer_y), int(theme.font_footer_width)-1,
|
||||
int(theme.font_footer_height) - 1)
|
||||
self.renderer.set_text_rectangle(main_rect, footer_rect)
|
||||
|
||||
def generate_preview(self, themedata):
|
||||
|
@ -219,14 +223,15 @@ class RenderManager(object):
|
|||
else:
|
||||
w = width
|
||||
h = height
|
||||
preview = preview.scaled(w, h, QtCore.Qt.KeepAspectRatio, QtCore.Qt.SmoothTransformation)
|
||||
preview = preview.scaled(w, h, QtCore.Qt.KeepAspectRatio,
|
||||
QtCore.Qt.SmoothTransformation)
|
||||
realw = preview.width();
|
||||
realh = preview.height()
|
||||
# and move it to the centre of the preview space
|
||||
newImage = QtGui.QImage(w, h, QtGui.QImage.Format_ARGB32_Premultiplied)
|
||||
newImage.fill(QtCore.Qt.transparent)
|
||||
painter = QtGui.QPainter(newImage)
|
||||
painter.drawImage((w-realw) / 2 , (h-realh) / 2, preview)
|
||||
painter.drawImage((w-realw) / 2, (h-realh) / 2, preview)
|
||||
return newImage
|
||||
|
||||
def calculate_default(self, screen):
|
||||
|
|
|
@ -92,13 +92,16 @@ class ServiceItem(object):
|
|||
for slide in self.service_frames:
|
||||
formated = self.RenderManager.format_slide(slide[u'raw_slide'])
|
||||
for format in formated:
|
||||
frame = self.RenderManager.generate_slide(format, self.raw_footer)
|
||||
self.frames.append({u'title': slide[u'title'], u'image': frame})
|
||||
frame = self.RenderManager.generate_slide(format,
|
||||
self.raw_footer)
|
||||
self.frames.append({u'title': slide[u'title'],
|
||||
u'image': frame})
|
||||
elif self.service_item_type == ServiceType.Command:
|
||||
self.frames = self.service_frames
|
||||
elif self.service_item_type == ServiceType.Image:
|
||||
for slide in self.service_frames:
|
||||
slide[u'image'] = self.RenderManager.resize_image(slide[u'image'])
|
||||
slide[u'image'] = \
|
||||
self.RenderManager.resize_image(slide[u'image'])
|
||||
self.frames = self.service_frames
|
||||
else:
|
||||
log.error(u'Invalid value renderer :%s' % self.service_item_type)
|
||||
|
@ -132,9 +135,10 @@ class ServiceItem(object):
|
|||
"""
|
||||
self.service_item_type = ServiceType.Text
|
||||
frame_title = frame_title.split(u'\n')[0]
|
||||
self.service_frames.append({u'title': frame_title, u'raw_slide': raw_slide})
|
||||
self.service_frames.append({u'title': frame_title,
|
||||
u'raw_slide': raw_slide})
|
||||
|
||||
def add_from_command(self, path , frame_title):
|
||||
def add_from_command(self, path, frame_title):
|
||||
"""
|
||||
Add a slide from a command.
|
||||
|
||||
|
|
|
@ -340,9 +340,10 @@ class ThemeXML(object):
|
|||
for e in element.attrib.iteritems():
|
||||
if master == u'font_' and e[0] == u'type':
|
||||
master += e[1] + u'_'
|
||||
elif master == u'display_' and (element.tag == u'shadow' or element.tag == u'outline'):
|
||||
elif master == u'display_' and (element.tag == u'shadow' or
|
||||
element.tag == u'outline'):
|
||||
et = str_to_bool(element.text)
|
||||
setattr(self, master + element.tag , et)
|
||||
setattr(self, master + element.tag, et)
|
||||
setattr(self, master + element.tag + u'_'+ e[0], e[1])
|
||||
else:
|
||||
field = master + e[0]
|
||||
|
|
|
@ -23,52 +23,60 @@ from openlp.core.lib import MediaManagerItem
|
|||
class TestMediaManager:
|
||||
def setup_class(self):
|
||||
self.app = QtGui.QApplication([])
|
||||
logging.info (u'App is " + unicode(self.app))
|
||||
logging.info (u'App is ' + unicode(self.app))
|
||||
self.main_window = QtGui.QMainWindow()
|
||||
self.main_window.resize(200, 600)
|
||||
self.MediaManagerDock = QtGui.QDockWidget(self.main_window)
|
||||
sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Expanding)
|
||||
sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Expanding,
|
||||
QtGui.QSizePolicy.Expanding)
|
||||
sizePolicy.setHorizontalStretch(0)
|
||||
sizePolicy.setVerticalStretch(0)
|
||||
sizePolicy.setHeightForWidth(self.MediaManagerDock.sizePolicy().hasHeightForWidth())
|
||||
sizePolicy.setHeightForWidth(
|
||||
self.MediaManagerDock.sizePolicy().hasHeightForWidth())
|
||||
self.MediaManagerDock.setSizePolicy(sizePolicy)
|
||||
icon = QtGui.QIcon()
|
||||
icon.addPixmap(QtGui.QPixmap(u':/system/system_mediamanager.png'), QtGui.QIcon.Normal, QtGui.QIcon.Off)
|
||||
icon.addPixmap(QtGui.QPixmap(u':/system/system_mediamanager.png'),
|
||||
QtGui.QIcon.Normal, QtGui.QIcon.Off)
|
||||
self.MediaManagerDock.setWindowIcon(icon)
|
||||
self.MediaManagerDock.setFloating(False)
|
||||
self.MediaManagerContents = QtGui.QWidget()
|
||||
sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Expanding)
|
||||
sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Expanding,
|
||||
QtGui.QSizePolicy.Expanding)
|
||||
sizePolicy.setHorizontalStretch(0)
|
||||
sizePolicy.setVerticalStretch(0)
|
||||
sizePolicy.setHeightForWidth(self.MediaManagerContents.sizePolicy().hasHeightForWidth())
|
||||
sizePolicy.setHeightForWidth(
|
||||
self.MediaManagerContents.sizePolicy().hasHeightForWidth())
|
||||
self.MediaManagerContents.setSizePolicy(sizePolicy)
|
||||
self.MediaManagerLayout = QtGui.QHBoxLayout(self.MediaManagerContents)
|
||||
self.MediaManagerLayout.setContentsMargins(0, 2, 0, 0)
|
||||
self.MediaToolBox = QtGui.QToolBox(self.MediaManagerContents)
|
||||
self.MediaManagerDock.setWidget(self.MediaManagerContents)
|
||||
self.main_window.addDockWidget(QtCore.Qt.DockWidgetArea(1), self.MediaManagerDock)
|
||||
self.main_window.addDockWidget(QtCore.Qt.DockWidgetArea(1),
|
||||
self.MediaManagerDock)
|
||||
self.MediaManagerLayout.addWidget(self.MediaToolBox)
|
||||
def test1(self):
|
||||
log=logging.getLogger(u'test1')
|
||||
log.info(u'Start')
|
||||
i1=MediaManagerItem(self.MediaToolBox)
|
||||
i2=MediaManagerItem(self.MediaToolBox)
|
||||
log.info(u'i1"+unicode(i1))
|
||||
log.info(u'i2"+unicode(i2))
|
||||
log.info(u'i1'+unicode(i1))
|
||||
log.info(u'i2'+unicode(i2))
|
||||
i1.addToolbar()
|
||||
i1.addToolbarButton(u'Test1", u'Test1", None)
|
||||
i1.addToolbarButton(u'Test1', u'Test1', None)
|
||||
i2.addToolbar()
|
||||
i2.addToolbarButton(u'Test2", u'Test2", None)
|
||||
self.MediaToolBox.setItemText(self.MediaToolBox.indexOf(i1), translate(u'main_window", u'Item1"))
|
||||
self.MediaToolBox.setItemText(self.MediaToolBox.indexOf(i2), translate(u'main_window", u'Item2"))
|
||||
i2.addToolbarButton(u'Test2', u'Test2', None)
|
||||
self.MediaToolBox.setItemText(self.MediaToolBox.indexOf(i1),
|
||||
translate(u'main_window', u'Item1'))
|
||||
self.MediaToolBox.setItemText(self.MediaToolBox.indexOf(i2),
|
||||
translate(u'main_window', u'Item2'))
|
||||
log.info(u'Show window')
|
||||
self.main_window.show()
|
||||
log.info(u'End')
|
||||
return 1
|
||||
|
||||
if __name__=="__main__":
|
||||
if __name__ == "__main__":
|
||||
t=TestMediaManager()
|
||||
t.setup_class()
|
||||
t.test1()
|
||||
log.info(u'exec')
|
||||
sys.exit(t.app.exec_())
|
||||
sys.exit(t.app.exec_())
|
||||
|
|
|
@ -31,17 +31,18 @@ class TestPluginManager:
|
|||
# get list of the names of the plugins
|
||||
names=[plugin.name for plugin in p.plugins]
|
||||
# see which ones we've got
|
||||
assert (u'testplugin1" in names)
|
||||
assert (u'testplugin2" in names)
|
||||
assert (u'testplugin1' in names)
|
||||
assert (u'testplugin2' in names)
|
||||
# and not got - it's too deep in the hierarchy!
|
||||
assert (u'testplugin3" not in names)
|
||||
assert (u'testplugin3' not in names)
|
||||
# test that the weighting is done right
|
||||
assert p.plugins[0].name=="testplugin2"
|
||||
assert p.plugins[1].name=="testplugin1"
|
||||
if __name__=="__main__":
|
||||
assert p.plugins[0].name == "testplugin2"
|
||||
assert p.plugins[1].name == "testplugin1"
|
||||
if __name__ == "__main__":
|
||||
log.debug(u'Starting')
|
||||
t=TestPluginManager()
|
||||
t.test_init()
|
||||
log.debug(u'List of plugins found:')
|
||||
for plugin in t.p.plugins:
|
||||
log.debug(u'Plugin %s, name=%s (version=%d)"%(unicode(plugin), plugin.name, plugin.version))
|
||||
log.debug(u'Plugin %s, name=%s (version=%d)' %(unicode(plugin),
|
||||
plugin.name, plugin.version))
|
||||
|
|
|
@ -84,7 +84,7 @@ class TestRender_base:
|
|||
|
||||
def setup_method(self, method):
|
||||
print "SSsetup", method
|
||||
if not hasattr(self, "app'):
|
||||
if not hasattr(self, 'app'):
|
||||
self.app=None
|
||||
try: # see if we already have an app for some reason.
|
||||
# have to try and so something, cant just test against None
|
||||
|
@ -109,7 +109,7 @@ class TestRender_base:
|
|||
print "--------------- Setup Done -------------"
|
||||
|
||||
def teardown_method(self, method):
|
||||
self.write_to_file(self.frame.GetPixmap(), "test_render')
|
||||
self.write_to_file(self.frame.GetPixmap(), 'test_render')
|
||||
|
||||
class TestRender(TestRender_base):
|
||||
def __init__(self):
|
||||
|
@ -121,19 +121,22 @@ class TestRender(TestRender_base):
|
|||
themefile=os.path.abspath(u'data_for_tests/render_theme.xml')
|
||||
self.r.set_theme(Theme(themefile)) # set default theme
|
||||
self.r._render_background()
|
||||
self.r.set_text_rectangle(QtCore.QRect(0,0, self.size.width()-1, self.size.height()-1))
|
||||
self.r.set_text_rectangle(QtCore.QRect(0,0, self.size.width()-1,
|
||||
self.size.height()-1))
|
||||
self.msg=None
|
||||
|
||||
def test_easy(self):
|
||||
answer=self.r._render_single_line(u'Test line", tlcorner=(0,100))
|
||||
answer=self.r._render_single_line(u'Test line', tlcorner=(0,100))
|
||||
assert (answer==(219,163))
|
||||
def test_longer(self):
|
||||
answer=self.r._render_single_line(u'Test line with more words than fit on one line",
|
||||
tlcorner=(10,10))
|
||||
answer=self.r._render_single_line(
|
||||
u'Test line with more words than fit on one line',
|
||||
tlcorner=(10,10))
|
||||
assert (answer==(753,136))
|
||||
def test_even_longer(self):
|
||||
answer=self.r._render_single_line(u'Test line with more words than fit on either one or two lines",
|
||||
tlcorner=(10,10))
|
||||
answer=self.r._render_single_line(
|
||||
u'Test line with more words than fit on either one or two lines',
|
||||
tlcorner=(10,10))
|
||||
assert(answer==(753,199))
|
||||
def test_lines(self):
|
||||
lines=[]
|
||||
|
@ -187,7 +190,7 @@ Line 3"""
|
|||
extra=""
|
||||
if i == 51: # make an extra long line on line 51 to test wrapping
|
||||
extra="Some more words to make it wrap around don't you know until it wraps so many times we don't know what to do"
|
||||
lines.append(u'Line %d %s" % (i, extra))
|
||||
lines.append(u'Line %d %s' % (i, extra))
|
||||
result=self.r.split_set_of_lines(lines)
|
||||
print "results---------------__", result
|
||||
for i in range(len(result)):
|
||||
|
|
|
@ -131,7 +131,7 @@ And drives away his fear.
|
|||
def test_bg_stretch_y(self):
|
||||
t=Theme(u'blank_theme.xml')
|
||||
t.BackgroundType = 2
|
||||
t.BackgroundParameter1 = os.path.join(u'data_for_tests', "snowsmall.jpg');
|
||||
t.BackgroundParameter1 = os.path.join(u'data_for_tests', 'snowsmall.jpg');
|
||||
t.BackgroundParameter2 = QtGui.QColor(0,0,64);
|
||||
t.BackgroundParameter3 = 0
|
||||
t.Name="stretch y"
|
||||
|
@ -144,7 +144,7 @@ And drives away his fear.
|
|||
def test_bg_shrink_y(self):
|
||||
t=Theme(u'blank_theme.xml')
|
||||
t.BackgroundType = 2
|
||||
t.BackgroundParameter1 = os.path.join(u'data_for_tests', "snowbig.jpg');
|
||||
t.BackgroundParameter1 = os.path.join(u'data_for_tests', 'snowbig.jpg');
|
||||
t.BackgroundParameter2 = QtGui.QColor(0,0,64);
|
||||
t.BackgroundParameter3 = 0
|
||||
t.Name="shrink y"
|
||||
|
@ -155,7 +155,8 @@ And drives away his fear.
|
|||
def test_bg_stretch_x(self):
|
||||
t=Theme(u'blank_theme.xml')
|
||||
t.BackgroundType = 2
|
||||
t.BackgroundParameter1 = os.path.join(u'data_for_tests', "treessmall.jpg');
|
||||
t.BackgroundParameter1 = os.path.join(u'data_for_tests',
|
||||
'treessmall.jpg');
|
||||
t.BackgroundParameter2 = QtGui.QColor(0,0,64);
|
||||
t.BackgroundParameter3 = 0
|
||||
t.VerticalAlign = 2
|
||||
|
@ -168,7 +169,7 @@ And drives away his fear.
|
|||
def test_bg_shrink_x(self):
|
||||
t=Theme(u'blank_theme.xml')
|
||||
t.BackgroundType = 2
|
||||
t.BackgroundParameter1 = os.path.join(u'data_for_tests', "treesbig.jpg');
|
||||
t.BackgroundParameter1 = os.path.join(u'data_for_tests', 'treesbig.jpg');
|
||||
t.BackgroundParameter2 = QtGui.QColor(0,0,64);
|
||||
t.BackgroundParameter3 = 0
|
||||
t.VerticalAlign = 2
|
||||
|
@ -298,4 +299,4 @@ if __name__=="__main__":
|
|||
t.setup_class()
|
||||
t.setup_method(None)
|
||||
t.test_bg_stretch_y()
|
||||
t.teardown_method(None)
|
||||
t.teardown_method(None)
|
||||
|
|
|
@ -11,18 +11,18 @@ from PyQt4 import QtGui
|
|||
def test_read_theme():
|
||||
dir=os.path.split(__file__)[0]
|
||||
# test we can read a theme
|
||||
t=Theme(os.path.join(dir, "test_theme.xml'))
|
||||
t=Theme(os.path.join(dir, 'test_theme.xml'))
|
||||
print t
|
||||
assert(t.BackgroundParameter1 == "sunset1.jpg')
|
||||
assert(t.BackgroundParameter1 == 'sunset1.jpg')
|
||||
assert(t.BackgroundParameter2 == None)
|
||||
assert(t.BackgroundParameter3 == None)
|
||||
assert(t.BackgroundType == 2)
|
||||
assert(t.FontColor == QtGui.QColor(255,255,255))
|
||||
assert(t.FontName == "Tahoma')
|
||||
assert(t.FontName == 'Tahoma')
|
||||
assert(t.FontProportion == 16)
|
||||
assert(t.FontUnits == "pixels')
|
||||
assert(t.FontUnits == 'pixels')
|
||||
assert(t.HorizontalAlign == 2)
|
||||
assert(t.Name == "openlp.org Packaged Theme')
|
||||
assert(t.Name == 'openlp.org Packaged Theme')
|
||||
assert(t.Outline == -1)
|
||||
assert(t.OutlineColor == QtGui.QColor(255,0,0))
|
||||
assert(t.Shadow == -1)
|
||||
|
@ -37,11 +37,11 @@ def test_theme():
|
|||
assert(t.BackgroundParameter3 == None)
|
||||
assert(t.BackgroundType == 0)
|
||||
assert(t.FontColor == QtGui.QColor(255,255,255))
|
||||
assert(t.FontName == "Arial')
|
||||
assert(t.FontName == 'Arial')
|
||||
assert(t.FontProportion == 30)
|
||||
assert(t.HorizontalAlign == 0)
|
||||
assert(t.FontUnits == "pixels')
|
||||
assert(t.Name == "BlankStyle')
|
||||
assert(t.FontUnits == 'pixels')
|
||||
assert(t.Name == 'BlankStyle')
|
||||
assert(t.Outline == 0)
|
||||
assert(t.Shadow == 0)
|
||||
assert(t.VerticalAlign == 0)
|
||||
|
@ -52,4 +52,4 @@ def test_theme():
|
|||
|
||||
if __name__=="__main__":
|
||||
test_read_theme()
|
||||
test_theme()
|
||||
test_theme()
|
||||
|
|
|
@ -64,10 +64,10 @@ class ServiceManagerList(QtGui.QTreeWidget):
|
|||
event.ignore()
|
||||
|
||||
class Iter(QtGui.QTreeWidgetItemIterator):
|
||||
def __init__(self, *args):
|
||||
def __init__(self, *args):
|
||||
QtGui.QTreeWidgetItemIterator.__init__(self, *args)
|
||||
|
||||
def next(self):
|
||||
def next(self):
|
||||
self.__iadd__(1)
|
||||
value = self.value()
|
||||
if value:
|
||||
|
@ -99,12 +99,15 @@ class ServiceManager(QtGui.QWidget):
|
|||
self.Layout.setMargin(0)
|
||||
# Create the top toolbar
|
||||
self.Toolbar = OpenLPToolbar(self)
|
||||
self.Toolbar.addToolbarButton(u'New Service', u':/services/service_new.png',
|
||||
translate(u'ServiceManager', u'Create a new Service'), self.onNewService)
|
||||
self.Toolbar.addToolbarButton(u'Open Service', u':/services/service_open.png',
|
||||
translate(u'ServiceManager', u'Load Existing'), self.onLoadService)
|
||||
self.Toolbar.addToolbarButton(u'Save Service', u':/services/service_save.png',
|
||||
translate(u'ServiceManager', u'Save Service'), self.onSaveService)
|
||||
self.Toolbar.addToolbarButton(u'New Service',
|
||||
u':/services/service_new.png', translate(u'ServiceManager',
|
||||
u'Create a new Service'), self.onNewService)
|
||||
self.Toolbar.addToolbarButton(u'Open Service',
|
||||
u':/services/service_open.png', translate(u'ServiceManager',
|
||||
u'Load Existing'), self.onLoadService)
|
||||
self.Toolbar.addToolbarButton(u'Save Service',
|
||||
u':/services/service_save.png', translate(u'ServiceManager',
|
||||
u'Save Service'), self.onSaveService)
|
||||
self.Toolbar.addSeparator()
|
||||
self.ThemeComboBox = QtGui.QComboBox(self.Toolbar)
|
||||
self.ThemeComboBox.setSizeAdjustPolicy(QtGui.QComboBox.AdjustToContents)
|
||||
|
@ -250,7 +253,7 @@ class ServiceManager(QtGui.QWidget):
|
|||
temp = self.serviceItems[item]
|
||||
self.serviceItems.remove(self.serviceItems[item])
|
||||
self.serviceItems.insert(item - 1, temp)
|
||||
self.repaintServiceList(item - 1 , count)
|
||||
self.repaintServiceList(item - 1, count)
|
||||
self.parent.OosChanged(False, self.serviceName)
|
||||
|
||||
def onServiceDown(self):
|
||||
|
@ -263,7 +266,7 @@ class ServiceManager(QtGui.QWidget):
|
|||
temp = self.serviceItems[item]
|
||||
self.serviceItems.remove(self.serviceItems[item])
|
||||
self.serviceItems.insert(item + 1, temp)
|
||||
self.repaintServiceList(item + 1 , count)
|
||||
self.repaintServiceList(item + 1, count)
|
||||
self.parent.OosChanged(False, self.serviceName)
|
||||
|
||||
def onServiceEnd(self):
|
||||
|
@ -315,13 +318,15 @@ class ServiceManager(QtGui.QWidget):
|
|||
treewidgetitem = QtGui.QTreeWidgetItem(self.ServiceManagerList)
|
||||
treewidgetitem.setText(0,serviceitem.title)
|
||||
treewidgetitem.setIcon(0,serviceitem.iconic_representation)
|
||||
treewidgetitem.setData(0, QtCore.Qt.UserRole, QtCore.QVariant(item[u'order']))
|
||||
treewidgetitem.setData(0, QtCore.Qt.UserRole,
|
||||
QtCore.QVariant(item[u'order']))
|
||||
treewidgetitem.setExpanded(item[u'expanded'])
|
||||
for count , frame in enumerate(serviceitem.frames):
|
||||
for count, frame in enumerate(serviceitem.frames):
|
||||
treewidgetitem1 = QtGui.QTreeWidgetItem(treewidgetitem)
|
||||
text = frame[u'title']
|
||||
treewidgetitem1.setText(0,text[:40])
|
||||
treewidgetitem1.setData(0, QtCore.Qt.UserRole,QtCore.QVariant(count))
|
||||
treewidgetitem1.setData(0, QtCore.Qt.UserRole,
|
||||
QtCore.QVariant(count))
|
||||
if serviceItem == itemcount and serviceItemCount == count:
|
||||
self.ServiceManagerList.setCurrentItem(treewidgetitem1)
|
||||
|
||||
|
@ -330,7 +335,7 @@ class ServiceManager(QtGui.QWidget):
|
|||
Save the current service in a zip file
|
||||
This file contains
|
||||
* An ood which is a pickle of the service items
|
||||
* All image , presentation and video files needed to run the service.
|
||||
* All image, presentation and video files needed to run the service.
|
||||
"""
|
||||
filename = QtGui.QFileDialog.getSaveFileName(self, u'Save Order of Service',self.config.get_last_dir() )
|
||||
filename = unicode(filename)
|
||||
|
|
|
@ -28,7 +28,8 @@ from openlp.core.ui import ServiceManager
|
|||
from openlp.plugins.images.lib import ImageServiceItem
|
||||
|
||||
import logging
|
||||
logging.basicConfig(filename="test_service_manager.log",level=logging.INFO, filemode="w')
|
||||
logging.basicConfig(filename='test_service_manager.log', level=logging.INFO,
|
||||
filemode='w')
|
||||
|
||||
# # from http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/66062
|
||||
# def whoami(depth=1):
|
||||
|
@ -53,7 +54,7 @@ class TestServiceManager_base:
|
|||
pass
|
||||
|
||||
def setup_method(self, method):
|
||||
log.info(u'Setup method:"+unicode(method))
|
||||
log.info(u'Setup method:' + unicode(method))
|
||||
self.expected_answer="Don't know yet"
|
||||
self.answer=None
|
||||
self.s=ServiceManager(None)
|
||||
|
@ -71,16 +72,16 @@ class TestServiceManager_base:
|
|||
self.sm.select(i, QItemSelectionModel.ClearAndSelect)
|
||||
log.info(unicode(self.sm.selectedIndexes()))
|
||||
self.s.TreeView.setSelectionModel(self.sm)
|
||||
log.info(u'Selected indexes = " + unicode(self.s.TreeView.selectedIndexes()))
|
||||
log.info(u'Selected indexes = ' + unicode(self.s.TreeView.selectedIndexes()))
|
||||
def test_easy(self):
|
||||
log.info(u'test_easy')
|
||||
item=ImageServiceItem(None)
|
||||
item.add(u'test.gif')
|
||||
self.s.addServiceItem(item)
|
||||
answer = self.s.oos_as_text()
|
||||
log.info(u'Answer = " + unicode(answer))
|
||||
log.info(u'Answer = ' + unicode(answer))
|
||||
lines=answer.split(u'\n')
|
||||
log.info(u'lines = " + unicode(lines))
|
||||
log.info(u'lines = ' + unicode(lines))
|
||||
assert lines[0].startswith(u'# <openlp.plugins.images.imageserviceitem.ImageServiceItem object')
|
||||
assert lines[1] == "test.gif"
|
||||
log.info(u'done')
|
||||
|
@ -96,9 +97,9 @@ class TestServiceManager_base:
|
|||
item.add(u'test3.gif')
|
||||
self.s.addServiceItem(item)
|
||||
answer = self.s.oos_as_text()
|
||||
log.info(u'Answer = " + unicode(answer))
|
||||
log.info(u'Answer = ' + unicode(answer))
|
||||
lines=answer.split(u'\n')
|
||||
log.info(u'lines = " + unicode(lines))
|
||||
log.info(u'lines = ' + unicode(lines))
|
||||
assert lines[0].startswith(u'# <openlp.plugins.images.imageserviceitem.ImageServiceItem object')
|
||||
assert lines[1] == "test.gif"
|
||||
assert lines[2].startswith(u'# <openlp.plugins.images.imageserviceitem.ImageServiceItem object')
|
||||
|
@ -113,15 +114,15 @@ class TestServiceManager_base:
|
|||
item.add(u'test.gif')
|
||||
self.s.addServiceItem(item)
|
||||
self.select_row(0)
|
||||
log.info(u'Selected indexes = " + unicode(self.s.TreeView.selectedIndexes()))
|
||||
log.info(u'Selected indexes = ' + unicode(self.s.TreeView.selectedIndexes()))
|
||||
item=ImageServiceItem(None)
|
||||
item.add(u'test2.gif')
|
||||
item.add(u'test3.gif')
|
||||
self.s.addServiceItem(item)
|
||||
answer = self.s.oos_as_text()
|
||||
log.info(u'Answer = " + unicode(answer))
|
||||
log.info(u'Answer = ' + unicode(answer))
|
||||
lines=answer.split(u'\n')
|
||||
log.info(u'lines = " + unicode(lines))
|
||||
log.info(u'lines = ' + unicode(lines))
|
||||
assert lines[0].startswith(u'# <openlp.plugins.images.imageserviceitem.ImageServiceItem object')
|
||||
assert lines[1] == "test.gif"
|
||||
assert lines[2] == "test2.gif"
|
||||
|
@ -143,4 +144,4 @@ if __name__=="__main__":
|
|||
t.test_easy()
|
||||
t.teardown_method(None)
|
||||
print "Pass"
|
||||
log.info(u'Pass')
|
||||
log.info(u'Pass')
|
||||
|
|
|
@ -105,9 +105,9 @@ class ThemesTab(SettingsTab):
|
|||
self.SongLevelRadioButton.setText(translate(u'ThemesTab', u'Song level'))
|
||||
self.SongLevelLabel.setText(translate(u'ThemesTab', u'Use the theme from each song in the database. If a song doesn\'t have a theme associated with it, then use the service\'s theme. If the service doesn\'t have a theme, then use the global theme.'))
|
||||
self.ServiceLevelRadioButton.setText(translate(u'ThemesTab', u'Service level'))
|
||||
self.ServiceLevelLabel.setText(translate(u'ThemesTab', u'Use the theme from the service , overriding any of the individual songs\' themes. If the service doesn\'t have a theme, then use the global theme.'))
|
||||
self.ServiceLevelLabel.setText(translate(u'ThemesTab', u'Use the theme from the service, overriding any of the individual songs\' themes. If the service doesn\'t have a theme, then use the global theme.'))
|
||||
self.GlobalLevelRadioButton.setText(translate(u'ThemesTab', u'Global level'))
|
||||
self.GlobalLevelLabel.setText(translate(u'ThemesTab', u'Use the global theme, overriding any themes associated wither either the service or the songs.'))
|
||||
self.GlobalLevelLabel.setText(translate(u'ThemesTab', u'Use the global theme, overriding any themes associated with either the service or the songs.'))
|
||||
|
||||
def load(self):
|
||||
self.global_style = self.config.get_config(u'theme global style', u'Global')
|
||||
|
|
|
@ -53,8 +53,8 @@ class TestBibleManager:
|
|||
def testRegisterCSVBibleFiles(self):
|
||||
# Register a bible from files
|
||||
log.debug(u'\n.......testRegisterBibleFiles')
|
||||
self.bm.registerFileBible(u'TheMessage",'biblebooks_msg_short.csv','bibleverses_msg_short.csv')
|
||||
self.bm.registerFileBible(u'NIV",'biblebooks_niv_short.csv','bibleverses_niv_short.csv')
|
||||
self.bm.registerFileBible(u'TheMessage','biblebooks_msg_short.csv','bibleverses_msg_short.csv')
|
||||
self.bm.registerFileBible(u'NIV','biblebooks_niv_short.csv','bibleverses_niv_short.csv')
|
||||
b = self.bm.get_bibles()
|
||||
for b1 in b:
|
||||
log.debug( b1)
|
||||
|
@ -62,10 +62,11 @@ class TestBibleManager:
|
|||
|
||||
def testRegisterHTTPBible(self):
|
||||
# Register a bible from files
|
||||
log.debug( "\n.......testRegisterBibleHTTP')
|
||||
self.bm.registerHTTPBible(u'asv","Crosswalk", u'", u'", u'')
|
||||
self.bm.registerHTTPBible(u'nasb","Biblegateway", u'", u'", u'')
|
||||
self.bm.registerHTTPBible(u'nkj","Biblegateway", u'http://tigger2:3128/", u'", u'')
|
||||
log.debug( '\n.......testRegisterBibleHTTP')
|
||||
self.bm.registerHTTPBible(u'asv', u'Crosswalk', u'', u'', u'')
|
||||
self.bm.registerHTTPBible(u'nasb', u'Biblegateway', u'', u'', u'')
|
||||
self.bm.registerHTTPBible(u'nkj', u'Biblegateway',
|
||||
u'http://tigger2:3128/', u'', u'')
|
||||
b = self.bm.get_bibles()
|
||||
for b1 in b:
|
||||
log.debug( b1)
|
||||
|
@ -73,7 +74,7 @@ class TestBibleManager:
|
|||
|
||||
|
||||
def testGetBibles(self):
|
||||
log.debug( "\n.......testGetBibles')
|
||||
log.debug(u'\n.......testGetBibles')
|
||||
# make sure the shuffled sequence does not lose any elements
|
||||
b = self.bm.get_bibles()
|
||||
for b1 in b:
|
||||
|
@ -81,25 +82,25 @@ class TestBibleManager:
|
|||
assert(b1 in b)
|
||||
|
||||
def testGetBibleBooks(self):
|
||||
log.debug( "\n.......testGetBibleBooks')
|
||||
log.debug(u'\n.......testGetBibleBooks')
|
||||
c = self.bm.get_bible_books(u'NIV')
|
||||
for c1 in c:
|
||||
log.debug( c1)
|
||||
assert(c1 in c)
|
||||
|
||||
def testGetBookChapterCount(self):
|
||||
log.debug( "\n.......testGetBookChapterCount')
|
||||
log.debug(u'\n.......testGetBookChapterCount')
|
||||
assert(self.bm.get_book_chapter_count(u'Matthew') == '28')
|
||||
|
||||
def testGetBookVerseCount(self):
|
||||
log.debug( "\n.......testGetBookVerseCount')
|
||||
assert(self.bm.get_book_verse_count(u'Genesis", 1) == '31')
|
||||
assert(self.bm.get_book_verse_count(u'Genesis", 2) == '25')
|
||||
assert(self.bm.get_book_verse_count(u'Matthew", 1) == '25')
|
||||
assert(self.bm.get_book_verse_count(u'Revelation", 1) == '20')
|
||||
log.debug(u'\n.......testGetBookVerseCount')
|
||||
assert(self.bm.get_book_verse_count(u'Genesis', 1) == '31')
|
||||
assert(self.bm.get_book_verse_count(u'Genesis', 2) == '25')
|
||||
assert(self.bm.get_book_verse_count(u'Matthew', 1) == '25')
|
||||
assert(self.bm.get_book_verse_count(u'Revelation', 1) == '20')
|
||||
|
||||
def testGetVerseText(self):
|
||||
log.debug( "\n.......testGetVerseText')
|
||||
log.debug(u'\n.......testGetVerseText')
|
||||
#c = self.bm.get_verse_text(u'TheMessage",'Genesis',1,2,1)
|
||||
#log.debug( c )
|
||||
#c = self.bm.get_verse_text(u'NIV','Genesis',1,1,2)
|
||||
|
@ -112,7 +113,7 @@ class TestBibleManager:
|
|||
log.debug( c )
|
||||
|
||||
def testLoadBible(self):
|
||||
log.debug( "\n.......testLoadBible')
|
||||
log.debug(u'\n.......testLoadBible')
|
||||
#self.bm.loadBible(u'asv')
|
||||
#self.bm.loadBible(u'nasb')
|
||||
#self.bm.loadBible(u'nkj')
|
||||
#self.bm.loadBible(u'nkj')
|
||||
|
|
|
@ -51,7 +51,7 @@ class TestBibleManager:
|
|||
self.bm = BibleManager()
|
||||
|
||||
def testGetBibles(self):
|
||||
log.debug( "\n.......testGetBibles')
|
||||
log.debug(u'\n.......testGetBibles')
|
||||
# make sure the shuffled sequence does not lose any elements
|
||||
b = self.bm.getBibles()
|
||||
for b1 in b:
|
||||
|
@ -59,36 +59,37 @@ class TestBibleManager:
|
|||
assert(b1 in b)
|
||||
|
||||
def testGetBibleBooks(self):
|
||||
log.debug( "\n.......testGetBibleBooks')
|
||||
log.debug(u'\n.......testGetBibleBooks')
|
||||
c = self.bm.getBibleBooks(u'asv')
|
||||
for c1 in c:
|
||||
log.debug( c1)
|
||||
assert(c1 in c)
|
||||
|
||||
def testGetBookChapterCount(self):
|
||||
log.debug( "\n.......testGetBookChapterCount')
|
||||
assert(self.bm.getBookChapterCount(u'asv","Matthew')[0] == 28)
|
||||
log.debug(u'\n.......testGetBookChapterCount')
|
||||
assert(self.bm.getBookChapterCount(u'asv', u'Matthew')[0] == 28)
|
||||
|
||||
def testGetBookVerseCount(self):
|
||||
log.debug( "\n.......testGetBookVerseCount')
|
||||
assert(self.bm.getBookVerseCount(u'asv","Genesis", 1)[0] == 31)
|
||||
assert(self.bm.getBookVerseCount(u'TheMessage","Genesis", 2)[0] == 25)
|
||||
assert(self.bm.getBookVerseCount(u'asv","Matthew", 1)[0] == 25)
|
||||
assert(self.bm.getBookVerseCount(u'TheMessage","Revelation", 1)[0] == 20)
|
||||
log.debug(u'\n.......testGetBookVerseCount')
|
||||
assert(self.bm.getBookVerseCount(u'asv', u'Genesis', 1)[0] == 31)
|
||||
assert(self.bm.getBookVerseCount(u'TheMessage', u'Genesis', 2)[0] == 25)
|
||||
assert(self.bm.getBookVerseCount(u'asv', u'Matthew', 1)[0] == 25)
|
||||
assert(self.bm.getBookVerseCount(u'TheMessage', u'Revelation',
|
||||
1)[0] == 20)
|
||||
|
||||
def testGetVerseText(self):
|
||||
log.debug( "\n.......testGetVerseText')
|
||||
log.debug(u'\n.......testGetVerseText')
|
||||
#c = self.bm.getVerseText(u'TheMessage",'Genesis',1,2,1)
|
||||
#log.debug( c )
|
||||
#c = self.bm.getVerseText(u'NIV','Genesis',1,1,2)
|
||||
#log.debug( c )
|
||||
c = self.bm.getVerseText(u'asv','Genesis',10,1,20)
|
||||
c = self.bm.getVerseText(u'asv', u'Genesis', 10, 1, 20)
|
||||
log.debug( c )
|
||||
c = self.bm.getVerseText(u'TheMessage','Genesis',10,1,20)
|
||||
c = self.bm.getVerseText(u'TheMessage', u'Genesis', 10, 1, 20)
|
||||
log.debug( c )
|
||||
c = self.bm.getVerseText(u'asv','Revelation',10,1,20)
|
||||
c = self.bm.getVerseText(u'asv', u'Revelation', 10, 1, 20)
|
||||
log.debug( c )
|
||||
c = self.bm.getVersesFromText(u'asv", u'Jesus wept')
|
||||
c = self.bm.getVersesFromText(u'asv', u'Jesus wept')
|
||||
log.debug( c )
|
||||
c = self.bm.getVersesFromText(u'TheMessage", u'Jesus wept')
|
||||
log.debug( c )
|
||||
c = self.bm.getVersesFromText(u'TheMessage', u'Jesus wept')
|
||||
log.debug( c )
|
||||
|
|
|
@ -53,9 +53,11 @@ class TestBibleManager:
|
|||
def testRegisterCSVBibleFiles(self):
|
||||
# Register a bible from files
|
||||
log.debug(u'\n.......testRegisterBibleFiles')
|
||||
self.bm.registerCSVFileBible(u'TheMessage",'biblebooks_msg_short.csv','bibleverses_msg_short.csv')
|
||||
self.bm.registerCSVFileBible(u'NIV",'biblebooks_niv_short.csv','bibleverses_niv_short.csv')
|
||||
self.bm.registerCSVFileBible(u'TheMessage',
|
||||
u'biblebooks_msg_short.csv', u'bibleverses_msg_short.csv')
|
||||
self.bm.registerCSVFileBible(u'NIV', u'biblebooks_niv_short.csv',
|
||||
u'bibleverses_niv_short.csv')
|
||||
b = self.bm.get_bibles()
|
||||
for b1 in b:
|
||||
log.debug( b1)
|
||||
assert(b1 in b)
|
||||
assert(b1 in b)
|
||||
|
|
|
@ -53,8 +53,8 @@ class TestBibleManager:
|
|||
def testRegisterOSISBibleFiles(self):
|
||||
# Register a bible from files
|
||||
log.debug(u'\n.......testRegisterOSISBibleFiles')
|
||||
self.bm.register_osis_file_bible(u'asv",'asv.osis')
|
||||
self.bm.register_osis_file_bible(u'asv', u'asv.osis')
|
||||
b = self.bm.get_bibles()
|
||||
for b1 in b:
|
||||
log.debug( b1)
|
||||
assert(b1 in b)
|
||||
assert(b1 in b)
|
||||
|
|
|
@ -24,7 +24,8 @@ Place, Suite 330, Boston, MA 02111-1307 USA
|
|||
# http://wiki.services.openoffice.org/wiki/Documentation/DevGuide/Working_with_Presentations
|
||||
# http://mail.python.org/pipermail/python-win32/2008-January/006676.html
|
||||
|
||||
import os , subprocess
|
||||
import os
|
||||
import subprocess
|
||||
import time
|
||||
import uno
|
||||
|
||||
|
|
|
@ -4,7 +4,7 @@ from PyQt4 import QtGui, QtCore
|
|||
from ctypes import *
|
||||
from ctypes.wintypes import RECT
|
||||
|
||||
pptdll = cdll.LoadLibrary(r"C:\Documents and Settings\jonathan\My Documents\Personal\openlp\openlp-2\trunk\openlp\libraries\pptviewlib\pptviewlib.dll')
|
||||
pptdll = cdll.LoadLibrary(r'C:\Documents and Settings\jonathan\My Documents\Personal\openlp\openlp-2\trunk\openlp\libraries\pptviewlib\pptviewlib.dll')
|
||||
|
||||
class BoxLayout(QtGui.QWidget):
|
||||
def __init__(self, parent=None):
|
||||
|
@ -107,7 +107,7 @@ class BoxLayout(QtGui.QWidget):
|
|||
rect.width = 900
|
||||
rect.hight = 700
|
||||
#self.pptid = pptdll.OpenPPT(self.PPTEdit.text, None, rect, "c:\temp\slide')
|
||||
self.pptid = pptdll.OpenPPT(u'C:\\test 1.ppt", None, rect, "c:\temp\slide')
|
||||
self.pptid = pptdll.OpenPPT(u'C:\\test 1.ppt', None, rect, 'c:\temp\slide')
|
||||
self.total.setText(pptdll.GetSlideCount(self.pptid))
|
||||
self.slideEdit.setText(unicode(pptdll.GetCurrentSlide(self.pptid)))
|
||||
|
||||
|
@ -122,4 +122,4 @@ class BoxLayout(QtGui.QWidget):
|
|||
app = QtGui.QApplication(sys.argv)
|
||||
qb = BoxLayout()
|
||||
qb.show()
|
||||
sys.exit(app.exec_())
|
||||
sys.exit(app.exec_())
|
||||
|
|
|
@ -109,7 +109,7 @@ class PPTViewer(QtGui.QWidget):
|
|||
rect = RECT(100,100,900,700)
|
||||
filename = unicode(self.PPTEdit.text())
|
||||
print filename
|
||||
self.pptid = pptdll.OpenPPT(filename, None, rect, "c:\\temp\\slide')
|
||||
self.pptid = pptdll.OpenPPT(filename, None, rect, 'c:\\temp\\slide')
|
||||
print "id: " + unicode(self.pptid)
|
||||
if oldid>=0:
|
||||
pptdll.ClosePPT(oldid);
|
||||
|
@ -136,11 +136,11 @@ class PPTViewer(QtGui.QWidget):
|
|||
self.PPTEdit.setText(QtGui.QFileDialog.getOpenFileName(self, 'Open file'))
|
||||
|
||||
if __name__ == '__main__':
|
||||
#pptdll = cdll.LoadLibrary(r"C:\Documents and Settings\jonathan\Desktop\pptviewlib.dll')
|
||||
pptdll = cdll.LoadLibrary(r"pptviewlib.dll')
|
||||
#pptdll = cdll.LoadLibrary(r'C:\Documents and Settings\jonathan\Desktop\pptviewlib.dll')
|
||||
pptdll = cdll.LoadLibrary(r'pptviewlib.dll')
|
||||
pptdll.SetDebug(1)
|
||||
print "Begin..."
|
||||
app = QtGui.QApplication(sys.argv)
|
||||
qb = PPTViewer()
|
||||
qb.show()
|
||||
sys.exit(app.exec_())
|
||||
sys.exit(app.exec_())
|
||||
|
|
|
@ -28,7 +28,7 @@ def sendData(options, message):
|
|||
try:
|
||||
UDPSock = socket.socket(socket.AF_INET,socket.SOCK_DGRAM)
|
||||
UDPSock.sendto(message, addr)
|
||||
print u'message sent ', message , addr
|
||||
print u'message sent ', message, addr
|
||||
except:
|
||||
print u'Errow thrown ', sys.exc_info()[1]
|
||||
|
||||
|
|
|
@ -350,7 +350,7 @@ class EditSongForm(QtGui.QDialog, Ui_EditSongDialog):
|
|||
|
||||
def accept(self):
|
||||
log.debug(u'accept')
|
||||
valid , message = self._validate_song()
|
||||
valid, message = self._validate_song()
|
||||
if not valid:
|
||||
QtGui.QMessageBox.critical(self,
|
||||
translate(u'SongFormDialog', u'Error'), message,
|
||||
|
|
|
@ -75,13 +75,13 @@ class _OpenSong(XmlRootClass):
|
|||
def _reset(self):
|
||||
"""Reset all song attributes"""
|
||||
global _blankOpenSongXml
|
||||
self._setFromXml(_blankOpenSongXml, "song')
|
||||
self._setFromXml(_blankOpenSongXml, 'song')
|
||||
|
||||
def from_buffer(self, xmlContent):
|
||||
"""Initialize from buffer(string) with xml content"""
|
||||
self._reset()
|
||||
if xmlContent != None :
|
||||
self._setFromXml(xmlContent, "song')
|
||||
self._setFromXml(xmlContent, 'song')
|
||||
|
||||
def get_author_list(self):
|
||||
"""Convert author field to an authorlist
|
||||
|
@ -94,7 +94,7 @@ class _OpenSong(XmlRootClass):
|
|||
lst = self.author.split(u' and ')
|
||||
for l in lst :
|
||||
res.append(l.strip())
|
||||
s = ", u'.join(res)
|
||||
s = u', '.join(res)
|
||||
return s
|
||||
|
||||
def get_category_array(self):
|
||||
|
@ -107,7 +107,7 @@ class _OpenSong(XmlRootClass):
|
|||
res.append(self.theme)
|
||||
if self.alttheme != None :
|
||||
res.append(self.alttheme)
|
||||
s = ", u'.join(res)
|
||||
s = u', u'.join(res)
|
||||
return s
|
||||
|
||||
def _reorder_verse(self, tag, tmpVerse):
|
||||
|
@ -134,7 +134,7 @@ class _OpenSong(XmlRootClass):
|
|||
newtag = "Pre-chorus"
|
||||
else :
|
||||
newtag = t
|
||||
s = (u'# %s %s"%(newtag, c)).rstrip()
|
||||
s = (u'# %s %s'%(newtag, c)).rstrip()
|
||||
res.append(s)
|
||||
res.append(l[1:])
|
||||
if (len(l) == 0) and (not tagPending) :
|
||||
|
@ -355,7 +355,7 @@ class Song(object) :
|
|||
elif l.startswith(u'Misc') :
|
||||
metMisc = True
|
||||
elif l.startswith(u'Verse') or l.startswith(u'Chorus'):
|
||||
lyrics.append(u'# %s"%l)
|
||||
lyrics.append(u'# %s'%l)
|
||||
else :
|
||||
# should we remove multiple blank lines?
|
||||
if n == 1 :
|
||||
|
@ -366,7 +366,7 @@ class Song(object) :
|
|||
lst = sAuthor.split(u'/')
|
||||
if len(lst) < 2:
|
||||
lst = sAuthor.split(u'|')
|
||||
author_list = ", u'.join(lst)
|
||||
author_list = u', '.join(lst)
|
||||
self.set_title(sName)
|
||||
self.set_author_list(author_list)
|
||||
self.set_copyright(sCopyright)
|
||||
|
@ -413,7 +413,7 @@ class Song(object) :
|
|||
lst = []
|
||||
else :
|
||||
raise SongTypeError(u'Variable not String or List')
|
||||
s = ", u'.join(lst)
|
||||
s = u', '.join(lst)
|
||||
return s
|
||||
|
||||
def get_copyright(self):
|
||||
|
@ -660,4 +660,4 @@ class Song(object) :
|
|||
return res
|
||||
|
||||
__all__ = ['SongException', 'SongTitleError', 'SongSlideError', 'SongTypeError',
|
||||
'SongFeatureError', 'Song']
|
||||
'SongFeatureError', 'Song']
|
||||
|
|
|
@ -26,7 +26,7 @@ __ThisDir__ = os.path.dirname(__file__)
|
|||
if "" == __ThisDir__ :
|
||||
__ThisDir__ = os.path.abspath(u'.')
|
||||
|
||||
sys.path.append(os.path.abspath(u'%s/../../../.."%__ThisDir__))
|
||||
sys.path.append(os.path.abspath(u'%s/../../../..'%__ThisDir__))
|
||||
|
||||
from openlp.plugins.songs.lib.songxml import *
|
||||
|
||||
|
@ -43,7 +43,7 @@ class Test_Basic(object):
|
|||
def test_Title1(self):
|
||||
"""Set an empty title - raises an exception"""
|
||||
s = Song()
|
||||
py.test.raises(SongTitleError, s.set_title, "')
|
||||
py.test.raises(SongTitleError, s.set_title, '')
|
||||
|
||||
def test_Title2(self):
|
||||
"""Set a normal title"""
|
||||
|
@ -74,101 +74,101 @@ class Test_Basic(object):
|
|||
def test_Title5(self):
|
||||
"""Set a title, where searchable title becomes empty - raises an exception"""
|
||||
s = Song()
|
||||
py.test.raises(SongTitleError, s.set_title, ",*')
|
||||
py.test.raises(SongTitleError, s.set_title, ',*')
|
||||
|
||||
def test_Copyright(self):
|
||||
"""Set a copyright string"""
|
||||
s = Song()
|
||||
assert(s.get_copyright() == "')
|
||||
assert(s.get_copyright() == '')
|
||||
s.set_copyright(u'A B Car')
|
||||
assert(s.get_copyright() == "A B Car')
|
||||
assert(s.get_copyright() == 'A B Car')
|
||||
|
||||
def test_SongCclino(self):
|
||||
"""Set a SongCcliNo"""
|
||||
s = Song()
|
||||
assert(s.get_song_cclino() == "')
|
||||
assert(s.get_song_cclino() == '')
|
||||
s.set_song_cclino(12345)
|
||||
assert(s.get_song_cclino() == "12345')
|
||||
assert(s.get_song_cclino() == '12345')
|
||||
|
||||
def test_SongBook(self):
|
||||
"""Set a songbook value"""
|
||||
s = Song()
|
||||
assert(s.get_song_book() == "')
|
||||
assert(s.get_song_book() == '')
|
||||
s.set_song_book(u'Hymns')
|
||||
assert(s.get_song_book() == "Hymns')
|
||||
assert(s.get_song_book() == u'Hymns')
|
||||
|
||||
def test_SongNumber(self):
|
||||
"""Set a song number"""
|
||||
s = Song()
|
||||
assert(s.get_song_number() == "')
|
||||
assert(s.get_song_number() == '')
|
||||
s.set_song_number(278)
|
||||
assert(s.get_song_number() == "278')
|
||||
assert(s.get_song_number() == '278')
|
||||
|
||||
def test_Theme(self):
|
||||
"""Set a theme name"""
|
||||
s = Song()
|
||||
assert(s.get_theme() == "')
|
||||
assert(s.get_theme() == '')
|
||||
s.set_theme(u'Red')
|
||||
assert(s.get_theme() == "Red')
|
||||
assert(s.get_theme() == 'Red')
|
||||
|
||||
def test_VerseOrder(self):
|
||||
"""Set a verse order"""
|
||||
s = Song()
|
||||
assert(s.get_verse_order() == "')
|
||||
assert(s.get_verse_order() == '')
|
||||
s.set_verse_order(u'V1 C V2')
|
||||
assert(s.get_verse_order() == "V1 C V2')
|
||||
assert(s.get_verse_order() == 'V1 C V2')
|
||||
|
||||
def test_Comments(self):
|
||||
"""Set a comment"""
|
||||
s = Song()
|
||||
assert(s.get_comments() == "')
|
||||
assert(s.get_comments() == '')
|
||||
s.set_comments(u'a comment')
|
||||
assert(s.get_comments() == "a comment')
|
||||
assert(s.get_comments() == 'a comment')
|
||||
|
||||
def test_AuthorList(self):
|
||||
"""Set author lists"""
|
||||
s = Song()
|
||||
assert(s.get_author_list(True) == "')
|
||||
assert(s.get_author_list(True) == '')
|
||||
assert(s.get_author_list(False) == [])
|
||||
t1 = "John Newton"
|
||||
s.set_author_list(t1)
|
||||
assert(s.get_author_list(True) == t1)
|
||||
assert(s.get_author_list(False) == [t1])
|
||||
s.set_author_list(u' Peter Done , John Newton')
|
||||
assert(s.get_author_list(True)== "Peter Done, John Newton')
|
||||
assert(s.get_author_list(False) == ["Peter Done", u'John Newton"])
|
||||
assert(s.get_author_list(True)== 'Peter Done, John Newton')
|
||||
assert(s.get_author_list(False) == ["Peter Done", u'John Newton'])
|
||||
s.set_author_list(None)
|
||||
assert(s.get_author_list(True) == "')
|
||||
assert(s.get_author_list(True) == '')
|
||||
assert(s.get_author_list(False) == [])
|
||||
s.set_author_list(u'')
|
||||
assert(s.get_author_list(True) == "')
|
||||
assert(s.get_author_list(True) == '')
|
||||
assert(s.get_author_list(False) == [""])
|
||||
s.set_author_list([])
|
||||
assert(s.get_author_list(True) == "')
|
||||
assert(s.get_author_list(True) == '')
|
||||
assert(s.get_author_list(False) == [""])
|
||||
|
||||
def test_CategoryArray(self):
|
||||
"""Set categories"""
|
||||
s = Song()
|
||||
assert(s.get_category_array(True) == "')
|
||||
assert(s.get_category_array(True) == '')
|
||||
assert(s.get_category_array(False) == [])
|
||||
t1 = "Gospel"
|
||||
s.set_category_array(t1)
|
||||
assert(s.get_category_array(True) == t1)
|
||||
assert(s.get_category_array(False) == [t1])
|
||||
s.set_category_array(u' Gospel, Hymns ')
|
||||
assert(s.get_category_array(True) == "Gospel, Hymns')
|
||||
assert(s.get_category_array(False) == ["Gospel", u'Hymns"])
|
||||
assert(s.get_category_array(True) == 'Gospel, Hymns')
|
||||
assert(s.get_category_array(False) == ["Gospel", u'Hymns'])
|
||||
s.set_category_array(None)
|
||||
assert(s.get_category_array(True) == "')
|
||||
assert(s.get_category_array(True) == '')
|
||||
assert(s.get_category_array(False) == [])
|
||||
s.set_category_array(u'')
|
||||
assert(s.get_category_array(True) == "')
|
||||
assert(s.get_category_array(True) == '')
|
||||
assert(s.get_category_array(False) == [""])
|
||||
s.set_category_array([])
|
||||
assert(s.get_category_array(True) == "')
|
||||
assert(s.get_category_array(True) == '')
|
||||
assert(s.get_category_array(False) == [""])
|
||||
|
||||
if '__main__' == __name__:
|
||||
r = Test_Basic()
|
||||
r.test_asString()
|
||||
r.test_asString()
|
||||
|
|
|
@ -24,7 +24,7 @@ __ThisDir__ = os.path.dirname(__file__)
|
|||
if "" == __ThisDir__ :
|
||||
__ThisDir__ = os.path.abspath(u'.')
|
||||
|
||||
sys.path.append(os.path.abspath(u'%s/../../../.."%__ThisDir__))
|
||||
sys.path.append(os.path.abspath(u'%s/../../../..'%__ThisDir__))
|
||||
|
||||
from openlp.plugins.songs.lib.songxml import *
|
||||
|
||||
|
@ -147,40 +147,40 @@ class Test_OpenSong(object):
|
|||
"""OpenSong: parse Amazing Grace"""
|
||||
global __ThisDir__
|
||||
s = Song()
|
||||
s.from_opensong_file(u'%s/data_opensong/Amazing Grace"%(__ThisDir__))
|
||||
assert(s.get_title() == "Amazing Grace')
|
||||
assert(s.get_copyright() == "1982 Jubilate Hymns Limited')
|
||||
assert(s.get_song_cclino() == "1037882')
|
||||
assert(s.get_category_array(True) == "God: Attributes')
|
||||
assert(s.get_author_list(True) == "John Newton')
|
||||
assert(s.get_verse_order() == "')
|
||||
s.from_opensong_file(u'%s/data_opensong/Amazing Grace'%(__ThisDir__))
|
||||
assert(s.get_title() == 'Amazing Grace')
|
||||
assert(s.get_copyright() == '1982 Jubilate Hymns Limited')
|
||||
assert(s.get_song_cclino() == '1037882')
|
||||
assert(s.get_category_array(True) == 'God: Attributes')
|
||||
assert(s.get_author_list(True) == 'John Newton')
|
||||
assert(s.get_verse_order() == '')
|
||||
assert(s.get_number_of_slides() == 4)
|
||||
|
||||
def test_file2(self):
|
||||
"""OpenSong: parse The Solid Rock"""
|
||||
s = Song()
|
||||
s.from_opensong_file(u'%s/data_opensong/The Solid Rock"%(__ThisDir__))
|
||||
assert(s.get_title() == "The Solid Rock')
|
||||
assert(s.get_copyright() == "Public Domain')
|
||||
assert(s.get_song_cclino() == "101740')
|
||||
assert(s.get_category_array(True) == "Christ: Victory, Fruit: Peace/Comfort')
|
||||
assert(s.get_author_list(True) == "Edward Mote, John B. Dykes')
|
||||
assert(s.get_verse_order() == "V1 C V2 C V3 C V4 C')
|
||||
s.from_opensong_file(u'%s/data_opensong/The Solid Rock'%(__ThisDir__))
|
||||
assert(s.get_title() == 'The Solid Rock')
|
||||
assert(s.get_copyright() == 'Public Domain')
|
||||
assert(s.get_song_cclino() == '101740')
|
||||
assert(s.get_category_array(True) == 'Christ: Victory, Fruit: Peace/Comfort')
|
||||
assert(s.get_author_list(True) == 'Edward Mote, John B. Dykes')
|
||||
assert(s.get_verse_order() == 'V1 C V2 C V3 C V4 C')
|
||||
assert(s.get_number_of_slides() == 5)
|
||||
|
||||
def test_file3(self):
|
||||
"""OpenSong: parse 'På en fjern ensom høj' (danish)"""
|
||||
#FIXME: problem with XML convert and danish characters
|
||||
s = Song()
|
||||
s.from_opensong_file(u'%s/data_opensong/På en fjern ensom høj"%(__ThisDir__))
|
||||
assert(s.get_title() == u"På en fjern ensom høj')
|
||||
assert(s.get_copyright() == "')
|
||||
assert(s.get_song_cclino() == "')
|
||||
assert(s.get_category_array(True) == "')
|
||||
assert(s.get_author_list(True) == "')
|
||||
assert(s.get_verse_order() == "V1 C1 V2 C2 V3 C3 V4 C4')
|
||||
s.from_opensong_file(u'%s/data_opensong/På en fjern ensom høj'%(__ThisDir__))
|
||||
assert(s.get_title() == u'På en fjern ensom høj')
|
||||
assert(s.get_copyright() == '')
|
||||
assert(s.get_song_cclino() == '')
|
||||
assert(s.get_category_array(True) == '')
|
||||
assert(s.get_author_list(True) == '')
|
||||
assert(s.get_verse_order() == 'V1 C1 V2 C2 V3 C3 V4 C4')
|
||||
assert(s.get_number_of_slides() == 8)
|
||||
|
||||
if '__main__' == __name__:
|
||||
r = Test_OpenSong()
|
||||
r.test_file3()
|
||||
r.test_file3()
|
||||
|
|
|
@ -25,7 +25,7 @@ __ThisDir__ = os.path.dirname(__file__)
|
|||
if "" == __ThisDir__ :
|
||||
__ThisDir__ = os.path.abspath(u'.')
|
||||
|
||||
sys.path.append(os.path.abspath(u'%s/../../../.."%__ThisDir__))
|
||||
sys.path.append(os.path.abspath(u'%s/../../../..'%__ThisDir__))
|
||||
|
||||
from openlp.plugins.songs.lib.songxml import *
|
||||
|
||||
|
@ -49,19 +49,19 @@ class Test_Verse(object):
|
|||
def check_allfields(self, r, isblank = 0):
|
||||
#[theme, title, author, cpright, ccli, lyrics]
|
||||
if isblank == 1 :
|
||||
assert(r[1] == "')
|
||||
assert(r[1] == '')
|
||||
else :
|
||||
assert(r[1] == self.title)
|
||||
if isblank == 2 :
|
||||
assert(r[2] == "')
|
||||
assert(r[2] == '')
|
||||
else :
|
||||
assert(r[2] == self.author)
|
||||
if isblank == 3 :
|
||||
assert(r[3] == "')
|
||||
assert(r[3] == '')
|
||||
else :
|
||||
assert(r[3] == self.copyright)
|
||||
if isblank == 4 :
|
||||
assert(r[4] == "')
|
||||
assert(r[4] == '')
|
||||
else :
|
||||
assert(r[4] == self.ccli)
|
||||
|
||||
|
@ -135,18 +135,17 @@ class Test_Verse(object):
|
|||
def test_verse3b(self):
|
||||
"""Test a one liner song"""
|
||||
s = Song()
|
||||
s.set_lyrics(["", u'Single verse"])
|
||||
s.set_lyrics(["", u'Single verse'])
|
||||
assert(s.get_number_of_slides() == 1)
|
||||
|
||||
def test_verse3c(self):
|
||||
"""Test a one liner song"""
|
||||
s = Song()
|
||||
s.set_lyrics(["", u'Single verse", u'", u'"])
|
||||
s.set_lyrics(["", u'Single verse', u'', u''])
|
||||
assert(s.get_number_of_slides() == 1)
|
||||
|
||||
def test_verse3d(self):
|
||||
"""Test a one liner song"""
|
||||
s = Song()
|
||||
s.set_lyrics(["", u'# Verse", u'", u'"])
|
||||
s.set_lyrics(["", u'# Verse', u'', u''])
|
||||
assert(s.get_number_of_slides() == 1)
|
||||
|
|
@ -305,7 +305,7 @@
|
|||
<item row="1" column="1">
|
||||
<widget class="QLabel" name="ServiceLevelLabel">
|
||||
<property name="text">
|
||||
<string>Use the theme from the service , overriding any of the individual songs' themes. If the service doesn't have a theme, then use the global theme.</string>
|
||||
<string>Use the theme from the service, overriding any of the individual songs' themes. If the service doesn't have a theme, then use the global theme.</string>
|
||||
</property>
|
||||
<property name="wordWrap">
|
||||
<bool>true</bool>
|
||||
|
@ -325,7 +325,7 @@
|
|||
<item row="2" column="1">
|
||||
<widget class="QLabel" name="GlobalLevelLabel">
|
||||
<property name="text">
|
||||
<string>Use the global theme, overriding any themes associated wither either the service or the songs.</string>
|
||||
<string>Use the global theme, overriding any themes associated with either the service or the songs.</string>
|
||||
</property>
|
||||
<property name="wordWrap">
|
||||
<bool>true</bool>
|
||||
|
|
Loading…
Reference in New Issue