Various fixes and more additions of SlideController stuff

Add ButtonBar for SlideControllers

bzr-revno: 443
This commit is contained in:
Tim Bentley 2009-05-04 19:43:51 +01:00
commit 746d77f515
17 changed files with 230 additions and 640 deletions

View File

@ -5,3 +5,6 @@
*.eric4project
*.ropeproject
*.e4*
.eric4project
list
openlp.org 2.0.e4*

View File

@ -1,7 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE UserProject SYSTEM "UserProject-4.0.dtd">
<!-- eric4 user project file for project openlp.org 2.0 -->
<!-- Saved: 2009-05-03, 17:33:30 -->
<!-- Copyright (C) 2009 Raoul Snyman, raoulsnyman@openlp.org -->
<UserProject version="4.0">
</UserProject>

View File

@ -1,32 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE Session SYSTEM "Session-4.0.dtd">
<!-- eric4 session file for project openlp.org 2.0 -->
<!-- This file was generated automatically, do not edit. -->
<!-- Saved: 2008-11-03, 22:49:15 -->
<Session version="4.0">
<Filenames>
<Filename cline="24" cindex="13">/home/raoul/Projects/openlp-2/openlp.pyw</Filename>
<Filename cline="30" cindex="0">/home/raoul/Projects/openlp-2/openlp/ui/forms/splashscreen.py</Filename>
<Filename cline="31" cindex="30">/home/raoul/Projects/openlp-2/openlp/ui/forms/mainwindow.py</Filename>
<Filename cline="22" cindex="53">/home/raoul/Projects/openlp-2/openlp/ui/forms/__init__.py</Filename>
</Filenames>
<ActiveWindow cline="24" cindex="13">/home/raoul/Projects/openlp-2/openlp.pyw</ActiveWindow>
<Breakpoints>
</Breakpoints>
<Watchpoints>
</Watchpoints>
<DebugInfo>
<CommandLine></CommandLine>
<WorkingDirectory></WorkingDirectory>
<Environment></Environment>
<ReportExceptions value="True" />
<Exceptions>
</Exceptions>
<AutoClearShell value="True" />
<TracePython value="False" />
<AutoContinue value="True" />
<CovexcPattern></CovexcPattern>
</DebugInfo>
<Bookmarks>
</Bookmarks>
</Session>

View File

@ -1,132 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE Tasks SYSTEM "Tasks-4.2.dtd">
<!-- eric4 tasks file for project openlp.org 2.0 -->
<!-- Saved: 2009-05-03, 17:33:30 -->
<Tasks version="4.2">
<Task priority="1" completed="False" bugfix="False">
<Summary>TODO: what is the tags for bridge, pre-chorus?</Summary>
<Description></Description>
<Created>2008-11-26, 21:10:45</Created>
<Resource>
<Filename>openlp/song/song.py</Filename>
<Linenumber>138</Linenumber>
</Resource>
</Task>
<Task priority="1" completed="False" bugfix="False">
<Summary>TODO: check font formatting</Summary>
<Description></Description>
<Created>2008-11-26, 21:10:45</Created>
<Resource>
<Filename>openlp/song/song.py</Filename>
<Linenumber>523</Linenumber>
</Resource>
</Task>
<Task priority="1" completed="False" bugfix="False">
<Summary>TODO: Song: Logging - not all, but enough</Summary>
<Description></Description>
<Created>2008-12-07, 10:06:59</Created>
<Resource>
<Filename>openlp/plugins/songs/songxml.py</Filename>
<Linenumber>39</Linenumber>
</Resource>
</Task>
<Task priority="1" completed="False" bugfix="False">
<Summary>TODO: Song: Handle OpenLP2 format</Summary>
<Description></Description>
<Created>2008-12-07, 10:06:59</Created>
<Resource>
<Filename>openlp/plugins/songs/songxml.py</Filename>
<Linenumber>40</Linenumber>
</Resource>
</Task>
<Task priority="1" completed="False" bugfix="False">
<Summary>TODO: Song: Import OpenLP1</Summary>
<Description></Description>
<Created>2008-12-07, 10:06:59</Created>
<Resource>
<Filename>openlp/plugins/songs/songxml.py</Filename>
<Linenumber>41</Linenumber>
</Resource>
</Task>
<Task priority="1" completed="False" bugfix="False">
<Summary>TODO: Song: Export OpenLP1</Summary>
<Description></Description>
<Created>2008-12-07, 10:07:00</Created>
<Resource>
<Filename>openlp/plugins/songs/songxml.py</Filename>
<Linenumber>42</Linenumber>
</Resource>
</Task>
<Task priority="1" completed="False" bugfix="False">
<Summary>TODO: Song: Export Song to CCLI</Summary>
<Description></Description>
<Created>2008-12-07, 10:07:00</Created>
<Resource>
<Filename>openlp/plugins/songs/songxml.py</Filename>
<Linenumber>43</Linenumber>
</Resource>
</Task>
<Task priority="1" completed="False" bugfix="False">
<Summary>TODO: Song: Export Song to OpenSong</Summary>
<Description></Description>
<Created>2008-12-07, 10:07:00</Created>
<Resource>
<Filename>openlp/plugins/songs/songxml.py</Filename>
<Linenumber>44</Linenumber>
</Resource>
</Task>
<Task priority="1" completed="False" bugfix="False">
<Summary>TODO: Song: Import ChangingSong</Summary>
<Description></Description>
<Created>2008-12-07, 10:07:00</Created>
<Resource>
<Filename>openlp/plugins/songs/songxml.py</Filename>
<Linenumber>45</Linenumber>
</Resource>
</Task>
<Task priority="1" completed="False" bugfix="False">
<Summary>TODO: Song: Export ChangingSong</Summary>
<Description></Description>
<Created>2008-12-07, 10:07:00</Created>
<Resource>
<Filename>openlp/plugins/songs/songxml.py</Filename>
<Linenumber>46</Linenumber>
</Resource>
</Task>
<Task priority="1" completed="False" bugfix="False">
<Summary>TODO: what is the tags for bridge, pre-chorus?</Summary>
<Description></Description>
<Created>2008-12-07, 10:07:00</Created>
<Resource>
<Filename>openlp/plugins/songs/songxml.py</Filename>
<Linenumber>149</Linenumber>
</Resource>
</Task>
<Task priority="1" completed="False" bugfix="False">
<Summary>TODO: check font formatting</Summary>
<Description></Description>
<Created>2008-12-07, 10:07:00</Created>
<Resource>
<Filename>openlp/plugins/songs/songxml.py</Filename>
<Linenumber>534</Linenumber>
</Resource>
</Task>
<Task priority="1" completed="False" bugfix="False">
<Summary>TODO: need to get rid of this once all plugins are up to date</Summary>
<Description></Description>
<Created>2009-03-01, 01:10:29</Created>
<Resource>
<Filename>openlp/core/pluginmanager.py</Filename>
<Linenumber>86</Linenumber>
</Resource>
</Task>
<Task priority="1" completed="False" bugfix="False">
<Summary>TODO: These shouldn't be called here...</Summary>
<Description></Description>
<Created>2009-03-01, 01:10:29</Created>
<Resource>
<Filename>openlp/core/pluginmanager.py</Filename>
<Linenumber>108</Linenumber>
</Resource>
</Task>
</Tasks>

View File

@ -1,330 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE Project SYSTEM "Project-4.6.dtd">
<!-- eric4 project file for project openlp.org 2.0 -->
<!-- Saved: 2009-05-02, 00:15:57 -->
<!-- Copyright (C) 2009 Raoul Snyman, raoulsnyman@openlp.org -->
<Project version="4.6">
<Language>en</Language>
<ProgLanguage mixed="0">Python</ProgLanguage>
<ProjectType>Qt4</ProjectType>
<Description></Description>
<Version>1.9.0</Version>
<Author>Raoul Snyman</Author>
<Email>raoulsnyman@openlp.org</Email>
<Sources>
<Source>openlp.pyw</Source>
<Source>openlp/controls/__init__.py</Source>
<Source>openlp/core/test/test_render_theme.py</Source>
<Source>openlp/core/test/test_render.py</Source>
<Source>openlp/core/__init__.py</Source>
<Source>openlp/__init__.py</Source>
<Source>demo.py</Source>
<Source>openlp/core/settingsmanager.py</Source>
<Source>openlp/plugins/__init__.py</Source>
<Source>openlp/core/ui/__init__.py</Source>
<Source>openlp/core/ui/mainwindow.py</Source>
<Source>openlp/core/ui/splashscreen.py</Source>
<Source>openlp/core/ui/alertform.py</Source>
<Source>openlp/core/ui/about.py</Source>
<Source>openlp/plugins/songs/songsplugin.py</Source>
<Source>openlp/plugins/songs/__init__.py</Source>
<Source>openlp/plugins/songs/forms/__init__.py</Source>
<Source>openlp/plugins/songs/forms/openlpimportform.py</Source>
<Source>openlp/plugins/songs/forms/editsongform.py</Source>
<Source>openlp/plugins/songs/forms/opensongexportform.py</Source>
<Source>openlp/plugins/songs/forms/openlpexportform.py</Source>
<Source>openlp/plugins/songs/forms/opensongimportform.py</Source>
<Source>openlp/core/utils/__init__.py</Source>
<Source>openlp/core/theme/__init__.py</Source>
<Source>openlp/core/theme/theme.py</Source>
<Source>openlp/plugins/songs/test/test_song_opensong.py</Source>
<Source>openlp/plugins/songs/test/test_song_basic.py</Source>
<Source>openlp/plugins/songs/test/test_song_verse.py</Source>
<Source>openlp/plugins/songs/test/test_song_text.py</Source>
<Source>openlp/core/theme/test/test_theme.py</Source>
<Source>openlp/core/resources.py</Source>
<Source>openlp/core/lib/__init__.py</Source>
<Source>openlp/core/lib/xmlrootclass.py</Source>
<Source>openlp/core/lib/plugin.py</Source>
<Source>openlp/core/lib/mediamanageritem.py</Source>
<Source>openlp/core/lib/event.py</Source>
<Source>openlp/core/utils/confighelper.py</Source>
<Source>openlp/core/utils/winregistry.py</Source>
<Source>openlp/core/utils/registry.py</Source>
<Source>openlp/core/utils/linregistry.py</Source>
<Source>setup.py</Source>
<Source>openlp/core/lib/pluginconfig.py</Source>
<Source>openlp/core/test/test_plugin_manager.py</Source>
<Source>openlp/core/test/test_mediamanageritem.py</Source>
<Source>openlp/core/test/testplugins/testplugin1.py</Source>
<Source>openlp/core/test/testplugins/testplugin2/__init__.py</Source>
<Source>openlp/core/test/testplugins/testplugin2/testplugin2.py</Source>
<Source>openlp/plugins/bibles/bibleplugin.py</Source>
<Source>openlp/plugins/bibles/forms/bibleimportdialog.py</Source>
<Source>openlp/plugins/bibles/forms/bibleimportform.py</Source>
<Source>openlp/plugins/bibles/lib/bibleDBimpl.py</Source>
<Source>openlp/plugins/bibles/lib/bibleOSISimpl.py</Source>
<Source>openlp/plugins/bibles/lib/bibleHTTPimpl.py</Source>
<Source>openlp/plugins/bibles/lib/bibleCSVimpl.py</Source>
<Source>openlp/plugins/bibles/__init__.py</Source>
<Source>openlp/plugins/bibles/lib/__init__.py</Source>
<Source>openlp/plugins/bibles/forms/__init__.py</Source>
<Source>openlp/plugins/songs/lib/__init__.py</Source>
<Source>openlp/plugins/songs/lib/songxml.py</Source>
<Source>openlp/plugins/songs/lib/models.py</Source>
<Source>openlp/plugins/bibles/test/__init__.py</Source>
<Source>openlp/plugins/bibles/test/test_bibleManagerAPI.py</Source>
<Source>openlp/plugins/bibles/test/test_bibleManager.py</Source>
<Source>openlp/plugins/bibles/test/test_bibleManagerOSIS.py</Source>
<Source>openlp/plugins/bibles/test/test_bibleManagerCSV.py</Source>
<Source>openlp/plugins/presentations/lib/pptview.py</Source>
<Source>openlp/plugins/presentations/lib/impresscom.py</Source>
<Source>openlp/plugins/presentations/lib/powerpoint.py</Source>
<Source>openlp/plugins/presentations/lib/pptviewlib/ppttest.py</Source>
<Source>openlp/plugins/presentations/__init__.py</Source>
<Source>openlp/plugins/presentations/presentationplugin.py</Source>
<Source>openlp/plugins/videos/__init__.py</Source>
<Source>openlp/plugins/videos/videoplugin.py</Source>
<Source>openlp/plugins/images/__init__.py</Source>
<Source>openlp/plugins/images/imageplugin.py</Source>
<Source>openlp/plugins/songs/forms/editsongdialog.py</Source>
<Source>openlpcnv.pyw</Source>
<Source>openlp/plugins/songs/forms/songbookdialog.py</Source>
<Source>openlp/plugins/songs/forms/topicsdialog.py</Source>
<Source>openlp/plugins/songs/forms/authorsdialog.py</Source>
<Source>openlp/plugins/songs/forms/topicsform.py</Source>
<Source>openlp/plugins/songs/forms/authorsform.py</Source>
<Source>openlp/plugins/songs/forms/songbookform.py</Source>
<Source>openlp/migration/__init__.py</Source>
<Source>openlp/migration/migratefiles.py</Source>
<Source>openlp/migration/migratesongs.py</Source>
<Source>openlp/migration/display.py</Source>
<Source>openlp/migration/migratebibles.py</Source>
<Source>openlp/plugins/songs/lib/tables.py</Source>
<Source>openlp/plugins/songs/lib/classes.py</Source>
<Source>openlp/plugins/songs/lib/manager.py</Source>
<Source>openlp/plugins/bibles/lib/classes.py</Source>
<Source>openlp/plugins/bibles/lib/tables.py</Source>
<Source>openlp/plugins/bibles/lib/manager.py</Source>
<Source>openlp/plugins/bibles/lib/common.py</Source>
<Source>openlp/plugins/songs/lib/meta.py</Source>
<Source>openlp/core/test/testplugins/deeper/__init__.py</Source>
<Source>openlp/core/test/testplugins/deeper/toodeep/__init__.py</Source>
<Source>openlp/core/test/testplugins/deeper/toodeep/plugin3toodeep.py</Source>
<Source>openlp/core/lib/serviceitem.py</Source>
<Source>openlp/core/ui/slidecontroller.py</Source>
<Source>openlp/core/lib/eventreceiver.py</Source>
<Source>openlp/core/ui/servicemanager.py</Source>
<Source>openlp/core/lib/toolbar.py</Source>
<Source>openlp/core/ui/settingsform.py</Source>
<Source>openlp/core/ui/generaltab.py</Source>
<Source>openlp/core/ui/themestab.py</Source>
<Source>openlp/core/ui/alertstab.py</Source>
<Source>openlp/core/ui/settingsdialog.py</Source>
<Source>openlp/core/lib/settingstab.py</Source>
<Source>openlp/plugins/bibles/lib/biblestab.py</Source>
<Source>openlp/plugins/songs/lib/songstab.py</Source>
<Source>openlp/plugins/videos/lib/__init__.py</Source>
<Source>openlp/plugins/videos/lib/videotab.py</Source>
<Source>openlp/core/ui/test/test_service_manager.py</Source>
<Source>openlp/plugins/images/lib/__init__.py</Source>
<Source>openlp/plugins/images/lib/imageserviceitem.py</Source>
<Source>openlp/plugins/images/lib/listwithpreviews.py</Source>
<Source>openlp/plugins/songs/forms/editverseform.py</Source>
<Source>openlp/plugins/songs/forms/editversedialog.py</Source>
<Source>openlp/plugins/custom/__init__.py</Source>
<Source>openlp/plugins/custom/customplugin.py</Source>
<Source>openlp/plugins/custom/forms/__init__.py</Source>
<Source>openlp/plugins/custom/forms/editcustomform.py</Source>
<Source>openlp/plugins/custom/forms/editcustomdialog.py</Source>
<Source>openlp/plugins/custom/lib/__init__.py</Source>
<Source>openlp/plugins/custom/lib/customtab.py</Source>
<Source>openlp/plugins/custom/lib/classes.py</Source>
<Source>openlp/plugins/custom/lib/tables.py</Source>
<Source>openlp/plugins/custom/lib/meta.py</Source>
<Source>openlp/plugins/custom/lib/models.py</Source>
<Source>openlp/plugins/custom/lib/manager.py</Source>
<Source>openlp/plugins/images/lib/mediaitem.py</Source>
<Source>openlp/plugins/songs/lib/mediaitem.py</Source>
<Source>openlp/core/ui/maindisplay.py</Source>
<Source>openlp/core/ui/amendthemedialog.py</Source>
<Source>openlp/core/ui/thememanager.py</Source>
<Source>openlp/core/ui/amendthemeform.py</Source>
<Source>openlp/core/lib/eventmanager.py</Source>
<Source>openlp/core/lib/rendermanager.py</Source>
<Source>openlp/core/lib/renderer.py</Source>
<Source>openlp/core/lib/songxmlhandler.py</Source>
<Source>openlp/core/lib/pluginmanager.py</Source>
<Source>openlp/core/lib/themexmlhandler.py</Source>
<Source>openlp/plugins/bibles/lib/mediaitem.py</Source>
<Source>openlp/plugins/bibles/lib/textlistdata.py</Source>
<Source>openlp/plugins/presentations/lib/__init__.py</Source>
<Source>openlp/plugins/presentations/lib/mediaitem.py</Source>
<Source>openlp/plugins/presentations/lib/filelistdata.py</Source>
<Source>openlp/plugins/videos/lib/mediaitem.py</Source>
<Source>openlp/plugins/videos/lib/filelistdata.py</Source>
<Source>openlp/plugins/custom/lib/mediaitem.py</Source>
<Source>openlp/plugins/custom/lib/textlistdata.py</Source>
<Source>openlp/plugins/custom/lib/customserviceitem.py</Source>
<Source>resources/images/openlp-2_rc.py</Source>
</Sources>
<Forms>
<Form>resources/forms/openlpexportform.ui</Form>
<Form>resources/forms/opensongexportform.ui</Form>
<Form>resources/forms/about.ui</Form>
<Form>resources/forms/settings.ui</Form>
<Form>resources/forms/themewizard.ui</Form>
<Form>resources/forms/opensongimportform.ui</Form>
<Form>resources/forms/alertform.ui</Form>
<Form>resources/forms/mainwindow.ui</Form>
<Form>resources/forms/songexport.ui</Form>
<Form>resources/forms/openlpimportform.ui</Form>
<Form>resources/forms/splashscreen.ui</Form>
<Form>resources/forms/authorsdialog.ui</Form>
<Form>resources/forms/bibleimportdialog.ui</Form>
<Form>resources/forms/songbookdialog.ui</Form>
<Form>resources/forms/topicsdialog.ui</Form>
<Form>resources/forms/editsongdialog.ui</Form>
<Form>resources/forms/editversedialog.ui</Form>
<Form>resources/forms/editcustomdialog.ui</Form>
<Form>resources/forms/amendthemedialog.ui</Form>
</Forms>
<Translations>
</Translations>
<Resources>
<Resource>resources/images/openlp-2.qrc</Resource>
</Resources>
<Interfaces>
</Interfaces>
<Others>
<Other>copyright.txt</Other>
<Other>documentation/SongFormat.txt</Other>
<Other>documentation/pyqt-sql-py2exe.txt</Other>
<Other>documentation/PluginDevelopersGuide.txt</Other>
</Others>
<MainScript>openlp.pyw</MainScript>
<Vcs>
<VcsType>None</VcsType>
<VcsOptions>
<dict>
<key>
<string>add</string>
</key>
<value>
<list>
<string></string>
</list>
</value>
<key>
<string>checkout</string>
</key>
<value>
<list>
<string></string>
</list>
</value>
<key>
<string>commit</string>
</key>
<value>
<list>
<string></string>
</list>
</value>
<key>
<string>diff</string>
</key>
<value>
<list>
<string></string>
</list>
</value>
<key>
<string>export</string>
</key>
<value>
<list>
<string></string>
</list>
</value>
<key>
<string>global</string>
</key>
<value>
<list>
<string></string>
</list>
</value>
<key>
<string>history</string>
</key>
<value>
<list>
<string></string>
</list>
</value>
<key>
<string>log</string>
</key>
<value>
<list>
<string></string>
</list>
</value>
<key>
<string>remove</string>
</key>
<value>
<list>
<string></string>
</list>
</value>
<key>
<string>status</string>
</key>
<value>
<list>
<string></string>
</list>
</value>
<key>
<string>tag</string>
</key>
<value>
<list>
<string></string>
</list>
</value>
<key>
<string>update</string>
</key>
<value>
<list>
<string></string>
</list>
</value>
</dict>
</VcsOptions>
<VcsOtherData>
<dict>
<key>
<string>standardLayout</string>
</key>
<value>
<bool>True</bool>
</value>
</dict>
</VcsOtherData>
</Vcs>
<FiletypeAssociations>
<FiletypeAssociation pattern="*.ui" type="FORMS" />
<FiletypeAssociation pattern="*.idl" type="INTERFACES" />
<FiletypeAssociation pattern="*.qm" type="TRANSLATIONS" />
<FiletypeAssociation pattern="*.ptl" type="SOURCES" />
<FiletypeAssociation pattern="*.pyw" type="SOURCES" />
<FiletypeAssociation pattern="*.ui.h" type="FORMS" />
<FiletypeAssociation pattern="*.ts" type="TRANSLATIONS" />
<FiletypeAssociation pattern="*.py" type="SOURCES" />
<FiletypeAssociation pattern="*.qrc" type="RESOURCES" />
</FiletypeAssociations>
</Project>

View File

@ -1,45 +0,0 @@
SOURCES = openlp/theme/test/test_theme.py \
openlp/theme/__init__.py \
openlp/theme/theme.py \
openlp/controls/__init__.py \
openlp/core/test/test_render_theme.py \
openlp/core/test/test_render.py \
openlp/core/interpolate.py \
openlp/core/__init__.py \
openlp/core/render.py \
openlp/ui/__init__.py \
openlp/ui/forms/__init__.py \
openlp/__init__.py \
openlp/utils/ConfigHelper.py \
openlp/utils/__init__.py \
demo.py \
openlp/core/settingsmanager.py \
openlp/resources/openlp_rc.py \
openlp/resources/__init__.py \
openlp/ui/forms/about.py \
openlp/ui/forms/mainwindow.py \
openlp/core/plugin.py \
openlp/core/xmlrootclass.py \
openlp/song/__init__.py \
openlp/song/song.py \
openlp/song/test/test_song_opensong.py \
openlp/song/test/test_song_basic.py \
openlp/song/test/test_song_text.py \
openlp/plugins/biblemanager/__init__.py \
openlp/plugins/biblemanager/BibleDBImpl.py \
openlp/plugins/biblemanager/BibleManager.py \
openlp/plugins/biblemanager/BibleHTTPImpl.py \
openlp/plugins/biblemanager/test/__init__.py \
openlp/plugins/biblemanager/test/test_bibleManager.py
FORMS = openlp/resources/forms/mainwindow.ui \
openlp/resources/forms/settings.ui \
openlp/resources/forms/themewizard.ui \
openlp/resources/forms/about.ui \
openlp/resources/forms/editsongform.ui \
openlp/resources/forms/alertform.ui \
openlp/resources/forms/openlpimportform.ui \
openlp/resources/forms/openlpexportform.ui
TRANSLATIONS = openlp_en.ts

View File

@ -27,7 +27,7 @@ from openlp.core.lib import Receiver
logging.basicConfig(level=logging.DEBUG,
format=u'%(asctime)s %(name)-12s %(levelname)-8s %(message)s',
datefmt=u'%m-%d %H:%M',
datefmt=u'%m-%d %H:%M:%S',
filename=u'openlp.log',
filemode=u'w')

View File

@ -114,7 +114,6 @@ class Renderer:
def render_screen(self, screennum):
log.debug(u'render screen\n %s %s ', screennum, self.words[screennum])
import time
t=0.0
words=self.words[screennum]
retval=self._render_lines(words)
@ -173,7 +172,6 @@ class Renderer:
else:
p.fillRect(self._paint.rect(), QtGui.QColor(u'#000000'))
p.end()
log.debug(u'render background done')
def split_set_of_lines(self, lines, footer):
@ -252,7 +250,7 @@ class Renderer:
def render_lines(self, lines, footer_lines=None):
"""render a set of lines according to the theme, return bounding box"""
#log.debug(u'_render_lines %s', lines)
log.debug(u'_render_lines %s', lines)
bbox=self._render_lines_unaligned(lines, False) # Main font
if footer_lines is not None:
@ -264,11 +262,8 @@ class Renderer:
bbox=self._render_lines_unaligned(lines, False, (x, y))
if footer_lines is not None:
#x, y = self._correctAlignment(self._rect_footer, bbox1)
bbox=self._render_lines_unaligned(footer_lines, True, (self._rect_footer.left(), self._rect_footer.top()) )
log.debug(u'render lines DONE')
return bbox
def _render_lines_unaligned(self, lines, footer, tlcorner=(0,0)):
@ -279,7 +274,7 @@ class Renderer:
than a screenful (eg. by using split_set_of_lines)
Returns the bounding box of the text as QRect"""
log.debug(u'render unaligned %s', lines)
log.debug(u'render lines unaligned %s', lines)
x, y=tlcorner
brx=x
bry=y
@ -298,7 +293,7 @@ class Renderer:
p.setPen(QtGui.QPen(QtGui.QColor(0,0,255)))
p.drawRect(retval)
p.end()
log.debug(u'render unaligned DONE')
return retval
@ -410,7 +405,7 @@ class Renderer:
return width and height of text as a tuple (w,h)"""
# setup defaults
#log.debug(u"_get_extent_and_render %s %s %s ", [line], tlcorner, draw)
log.debug(u'_get_extent_and_render %s %s %s ', [line], tlcorner, draw)
p=QtGui.QPainter()
p.begin(self._paint)
# 'twould be more efficient to set this once when theme changes

View File

@ -18,6 +18,7 @@ this program; if not, write to the Free Software Foundation, Inc., 59 Temple
Place, Suite 330, Boston, MA 02111-1307 USA
"""
import logging
import time
import os, os.path
import sys
from PyQt4 import QtGui, QtCore, Qt
@ -41,21 +42,20 @@ class RenderManager:
self.current_display = 0
self.renderer = Renderer(None)
self.calculate_default(self.screen_list[self.current_display]['size'])
self.frame = None
def set_override_theme(self, theme):
log.debug("set override theme to %s", theme)
log.debug(u'set override theme to %s', theme)
if theme is not None:
self.theme = theme
else:
self.theme = self.default_theme
log.debug("theme is now %s", self.theme)
log.debug(u'theme is now %s', self.theme)
self.themedata = self.theme_manager.getThemeData(self.theme)
self.renderer.set_theme(self.themedata)
self.build_text_rectangle(self.themedata)
def build_text_rectangle(self, theme):
log.debug(u'build_text_rectangle ')
main_rect = None
footer_rect = None
@ -74,6 +74,7 @@ class RenderManager:
self.renderer.set_text_rectangle(main_rect,footer_rect)
def generate_preview(self, themedata):
log.debug(u'generate preview ')
self.calculate_default(QtCore.QSize(800,600))
self.renderer.set_theme(themedata)
self.build_text_rectangle(themedata)
@ -94,25 +95,23 @@ class RenderManager:
return frame
def format_slide(self, words, footer):
self.calculate_default(QtCore.QSize(800,600))
frame = QtGui.QPixmap(self.width, self.height)
self.renderer.set_paint_dest(frame)
log.debug(u'format slide')
self.calculate_default(self.screen_list[self.current_display]['size'])
self.renderer.set_paint_dest(QtGui.QPixmap(self.width, self.height))
return self.renderer.format_slide(words, footer)
def generate_slide(self,main_text, footer_text, preview=True):
if preview == True:
self.calculate_default(QtCore.QSize(800,600))
def generate_slide(self,main_text, footer_text):
log.debug(u'generate slide')
self.calculate_default(self.screen_list[self.current_display]['size'])
frame = QtGui.QPixmap(self.width, self.height)
self.renderer.set_paint_dest(frame)
answer=self.renderer.render_lines(main_text, footer_text)
return frame
def calculate_default(self, screen):
log.debug(u'calculate default %s' , screen)
self.width = screen.width()
self.height = screen.height()
log.debug(u'calculate default %d,%d' , self.width, self.height)
self.footer_start = int(self.height*0.95) # 95% is start of footer
#update the rederer frame
self.frame = QtGui.QPixmap(self.width, self.height)
self.renderer.set_paint_dest(self.frame)

View File

@ -19,7 +19,8 @@ Place, Suite 330, Boston, MA 02111-1307 USA
"""
import logging
import types
from PyQt4 import QtCore, QtGui
import time
from PyQt4.QtCore import *
from PyQt4.QtGui import *
@ -51,34 +52,34 @@ class ServiceItem():
def addIcon(self, icon):
ButtonIcon = None
if type(icon) is QtGui.QIcon:
if type(icon) is QIcon:
ButtonIcon = icon
elif type(icon) is types.StringType or type(icon) is types.UnicodeType:
ButtonIcon = QtGui.QIcon()
ButtonIcon = QIcon()
if icon.startswith(u':/'):
ButtonIcon.addPixmap(QtGui.QPixmap(icon), QtGui.QIcon.Normal,
QtGui.QIcon.Off)
ButtonIcon.addPixmap(QPixmap(icon), QIcon.Normal,
QIcon.Off)
else:
ButtonIcon.addPixmap(QtGui.QPixmap.fromImage(QtGui.QImage(icon)),
QtGui.QIcon.Normal, QtGui.QIcon.Off)
ButtonIcon.addPixmap(QPixmap.fromImage(QImage(icon)),
QIcon.Normal, QIcon.Off)
self.iconic_representation = ButtonIcon
def render(self):
"""
The render method is what the plugin uses to render it's meda to the
screen.
The render method is what renders the frames for the screen.
"""
log.debug(u'Render called')
if self.theme == None:
self.render_manager.set_override_theme(None)
else:
self.render_manager.set_override_theme(self.theme)
log.debug(u'Formatting slides')
for slide in self.raw_slides:
self.format_slides.append(self.render_manager.format_slide(slide, False))
log.debug(u'Rendering slides')
for slide in self.format_slides:
self.frames.append(self.render_manager.generate_slide(slide, self.raw_footer))
self.frames.append(self.render_manager.generate_slide(slide, self.raw_footer, False))
def get_parent_node(self):
"""

View File

@ -29,6 +29,9 @@ class MainDisplay(QtGui.QWidget):
self.setWindowTitle(u'OpenLP Display')
self.screens = screens
self.display = QtGui.QLabel(self)
self.display.setScaledContents(True)
self.displayBlank = False
self.blankFrame= None
def setup(self, screenNumber):
"""
@ -51,8 +54,24 @@ class MainDisplay(QtGui.QWidget):
else:
self.showMinimized()
painter=QtGui.QPainter()
self.blankFrame = QtGui.QPixmap(800, 600)
painter.begin(self.blankFrame)
painter.fillRect(self.blankFrame.rect(), QtGui.QColor(u'#000000'))
def frameView(self, frame):
self.display.setPixmap(frame)
if self.displayBlank == False:
self.display.setPixmap(frame)
self.frame = frame
def blankDisplay(self):
if self.displayBlank == False:
self.displayBlank = True
self.display.setPixmap(self.blankFrame)
else:
self.displayBlank = False
self.frameView(self.frame)
def kill(self):
pass

View File

@ -97,8 +97,6 @@ class MainWindow(object):
# Initialise SlideControllers
log.info(u'Set Up SlideControllers')
self.PreviewController.isLive = False
self.LiveController.isLive = True
self.LiveController.mainDisplay = self.main_display
def setupUi(self):
@ -130,8 +128,8 @@ class MainWindow(object):
self.ControlSplitter.setOrientation(QtCore.Qt.Horizontal)
self.ControlSplitter.setObjectName(u'ControlSplitter')
self.MainContentLayout.addWidget(self.ControlSplitter)
self.PreviewController = SlideController(self.ControlSplitter)
self.LiveController = SlideController(self.ControlSplitter)
self.PreviewController = SlideController(self.ControlSplitter, False)
self.LiveController = SlideController(self.ControlSplitter, True)
self.MenuBar = QtGui.QMenuBar(self.main_window)
self.MenuBar.setGeometry(QtCore.QRect(0, 0, 1087, 27))
self.MenuBar.setObjectName(u'MenuBar')
@ -296,10 +294,10 @@ class MainWindow(object):
QtGui.QIcon.Normal, QtGui.QIcon.Off)
self.ToolsAddToolItem.setIcon(AddToolIcon)
self.ToolsAddToolItem.setObjectName(u'ToolsAddToolItem')
self.action_Preview_Pane = QtGui.QAction(self.main_window)
self.action_Preview_Pane.setCheckable(True)
self.action_Preview_Pane.setChecked(True)
self.action_Preview_Pane.setObjectName(u'action_Preview_Pane')
self.action_Preview_Panel = QtGui.QAction(self.main_window)
self.action_Preview_Panel.setCheckable(True)
self.action_Preview_Panel.setChecked(True)
self.action_Preview_Panel.setObjectName(u'action_Preview_Panel')
self.ModeLiveItem = QtGui.QAction(self.main_window)
self.ModeLiveItem.setObjectName(u'ModeLiveItem')
self.FileImportMenu.addAction(self.ImportThemeItem)
@ -322,7 +320,7 @@ class MainWindow(object):
self.OptionsViewMenu.addAction(self.ViewServiceManagerItem)
self.OptionsViewMenu.addAction(self.ViewThemeManagerItem)
self.OptionsViewMenu.addSeparator()
self.OptionsViewMenu.addAction(self.action_Preview_Pane)
self.OptionsViewMenu.addAction(self.action_Preview_Panel)
self.OptionsLanguageMenu.addAction(self.LanguageEnglishItem)
self.OptionsLanguageMenu.addSeparator()
self.OptionsLanguageMenu.addAction(self.LanguageTranslateItem)
@ -353,8 +351,8 @@ class MainWindow(object):
QtCore.SIGNAL(u'triggered(bool)'), self.ServiceManagerDock.setVisible)
QtCore.QObject.connect(self.ViewThemeManagerItem,
QtCore.SIGNAL(u'triggered(bool)'), self.ThemeManagerDock.setVisible)
QtCore.QObject.connect(self.action_Preview_Pane,
QtCore.SIGNAL(u'toggled(bool)'), self.PreviewController.Pane.setVisible)
QtCore.QObject.connect(self.action_Preview_Panel,
QtCore.SIGNAL(u'toggled(bool)'), self.PreviewController.Panel.setVisible)
QtCore.QObject.connect(self.MediaManagerDock,
QtCore.SIGNAL(u'visibilityChanged(bool)'), self.ViewMediaManagerItem.setChecked)
QtCore.QObject.connect(self.ServiceManagerDock,
@ -451,7 +449,7 @@ class MainWindow(object):
self.LanguageEnglishItem.setStatusTip(translate(u'main_window', u'Set the interface language to English'))
self.ToolsAddToolItem.setText(translate(u'main_window', u'&Add Tool...'))
self.ToolsAddToolItem.setStatusTip(translate(u'main_window', u'Add an application to the list of tools'))
self.action_Preview_Pane.setText(translate(u'main_window', u'&Preview Pane'))
self.action_Preview_Panel.setText(translate(u'main_window', u'&Preview Pane'))
self.ModeLiveItem.setText(translate(u'main_window', u'&Live'))
def show(self):

View File

@ -21,15 +21,16 @@ import os
from time import sleep
from copy import deepcopy
from PyQt4 import *
from PyQt4 import QtCore, QtGui
from PyQt4.QtCore import *
from PyQt4.QtGui import *
# from openlp.core.resources import *
# from openlp.core.ui import AboutForm, AlertForm, SettingsForm, SlideController
from openlp.core.lib import OpenLPToolbar
from openlp.core.lib import ServiceItem
from openlp.core.lib import RenderManager
from openlp.core import translate
# from openlp.core import PluginManager
import logging
@ -47,6 +48,9 @@ class ServiceData(QAbstractItemModel):
self.items=[]
log.info("Starting")
def clearItems(self):
self.items = []
def columnCount(self, parent):
return 1; # always only a single column (for now)
@ -122,33 +126,73 @@ class ServiceManager(QWidget):
def __init__(self, parent):
QWidget.__init__(self)
self.parent=parent
self.Layout = QtGui.QVBoxLayout(self)
self.Layout = QVBoxLayout(self)
self.Layout.setSpacing(0)
self.Layout.setMargin(0)
self.Toolbar = OpenLPToolbar(self)
self.Toolbar.addToolbarButton("Move to top", ":/services/service_top.png")
self.Toolbar.addToolbarButton("Move up", ":/services/service_up.png")
self.Toolbar.addToolbarButton("Move down", ":/services/service_down.png")
self.Toolbar.addToolbarButton("Move to bottom", ":/services/service_bottom.png")
self.Toolbar.addToolbarButton("Move to top", ":/services/service_top.png",
translate(u'ServiceManager', u'Move to start'), self.onServiceTop)
self.Toolbar.addToolbarButton("Move up", ":/services/service_up.png",
translate(u'ServiceManager', u'Move up order'), self.onServiceUp)
self.Toolbar.addToolbarButton("Move down", ":/services/service_down.png",
translate(u'ServiceManager', u'Move down order'), self.onServiceDown)
self.Toolbar.addToolbarButton("Move to bottom", ":/services/service_bottom.png",
translate(u'ServiceManager', u'Move to end'), self.onServiceEnd)
self.Toolbar.addSeparator()
self.Toolbar.addToolbarButton("New Service", ":/services/service_new.png")
self.Toolbar.addToolbarButton("Save Service", ":/services/service_save.png")
self.Toolbar.addToolbarButton("New Service", ":/services/service_new.png",
translate(u'ServiceManager', u'Create a new Service'), self.onNewService)
self.Toolbar.addToolbarButton("Delete From Service", ":/services/service_delete.png",
translate(u'ServiceManager', u'Delete From Service'), self.onDeleteFromService)
self.Toolbar.addSeparator()
self.ThemeComboBox = QtGui.QComboBox(self.Toolbar)
self.ThemeComboBox.setSizeAdjustPolicy(QtGui.QComboBox.AdjustToContents)
self.ThemeWidget = QtGui.QWidgetAction(self.Toolbar)
self.Toolbar.addToolbarButton("Save Service", ":/services/service_save.png",
translate(u'ServiceManager', u'Save Service'), self.onSaveService)
self.Toolbar.addToolbarButton("Load Service", ":/services/service_open.png",
translate(u'ServiceManager', u'Load Existing'), self.onLoadService)
self.Toolbar.addSeparator()
self.ThemeComboBox = QComboBox(self.Toolbar)
self.ThemeComboBox.setSizeAdjustPolicy(QComboBox.AdjustToContents)
self.ThemeWidget = QWidgetAction(self.Toolbar)
self.ThemeWidget.setDefaultWidget(self.ThemeComboBox)
self.Toolbar.addAction(self.ThemeWidget)
self.Layout.addWidget(self.Toolbar)
self.TreeView = QtGui.QTreeView(self)
self.TreeView = QTreeView(self)
self.service_data=ServiceData()
self.TreeView.setModel(self.service_data)
self.TreeView.setAlternatingRowColors(True)
self.Layout.addWidget(self.TreeView)
QtCore.QObject.connect(self.ThemeComboBox,
QtCore.SIGNAL("activated(int)"), self.onThemeComboBoxSelected)
QObject.connect(self.ThemeComboBox,
SIGNAL("activated(int)"), self.onThemeComboBoxSelected)
def onServiceTop(self):
pass
def onServiceUp(self):
pass
def onServiceDown(self):
pass
def onServiceEnd(self):
pass
def onNewService(self):
self.service_data.clearItems()
def onDeleteFromService(self):
pass
def onSaveService(self):
Pass
def onLoadService(self):
Pass
def onThemeComboBoxSelected(self, currentIndex):
self.renderManager.default_theme = self.ThemeComboBox.currentText()

View File

@ -20,10 +20,12 @@ Place, Suite 330, Boston, MA 02111-1307 USA
import logging
import os
from PyQt4 import QtCore, QtGui
from PyQt4.QtCore import *
from PyQt4.QtGui import *
from openlp.core.lib import OpenLPToolbar
from openlp.core import translate
class SlideData(QAbstractListModel):
"""
Tree of items for an order of Theme.
@ -46,14 +48,14 @@ class SlideData(QAbstractListModel):
def columnCount(self, parent):
return 1
def rowCount(self, parent):
def rowCount(self, parent=None):
return len(self.items)
def insertRow(self, row, frame):
self.beginInsertRows(QModelIndex(),row,row)
log.info(u'insert row %d' % row)
# create a preview image
frame1 = frame.scaled(QtCore.QSize(350,260))
frame1 = frame.scaled(QSize(350,260))
self.items.insert(row,(frame1))
log.info(u'Items: %s' % self.items)
self.endInsertRows()
@ -99,48 +101,112 @@ class SlideData(QAbstractListModel):
return filelist
class SlideController(QtGui.QWidget):
class SlideController(QWidget):
global log
log=logging.getLogger(u'SlideController')
def __init__(self, control_splitter):
QtGui.QWidget.__init__(self)
self.Pane = QtGui.QWidget(control_splitter)
self.Splitter = QtGui.QSplitter(self.Pane)
self.Splitter.setOrientation(QtCore.Qt.Vertical)
def __init__(self, control_splitter, isLive):
QWidget.__init__(self)
self.isLive = isLive
self.Panel = QWidget(control_splitter)
self.Splitter = QSplitter(self.Panel)
self.Splitter.setOrientation(Qt.Vertical)
self.PaneLayout = QtGui.QVBoxLayout(self.Pane)
self.PaneLayout.addWidget(self.Splitter)
self.PaneLayout.setSpacing(50)
self.PaneLayout.setMargin(0)
self.PanelLayout = QVBoxLayout(self.Panel)
self.PanelLayout.addWidget(self.Splitter)
self.PanelLayout.setSpacing(50)
self.PanelLayout.setMargin(0)
self.Controller = QtGui.QScrollArea(self.Splitter)
self.Controller = QScrollArea(self.Splitter)
self.Controller.setWidgetResizable(True)
self.PreviewListView = QtGui.QListView(self.Splitter)
self.PreviewListView = QListView(self.Splitter)
self.PreviewListView.setAlternatingRowColors(True)
self.PreviewListData = SlideData()
self.PreviewListView.setModel(self.PreviewListData)
self.Controller.setGeometry(QtCore.QRect(0, 0, 828, 536))
self.Controller.setGeometry(QRect(0, 0, 828, 536))
self.Controller.setWidget(self.PreviewListView)
self.SlidePreview = QtGui.QLabel(self.Splitter)
sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Fixed, QtGui.QSizePolicy.Fixed)
self.Toolbar = OpenLPToolbar(self.Splitter)
sizeToolbarPolicy = QSizePolicy(QSizePolicy.Fixed, QSizePolicy.Fixed)
sizeToolbarPolicy.setHorizontalStretch(0)
sizeToolbarPolicy.setVerticalStretch(0)
sizeToolbarPolicy.setHeightForWidth(self.Toolbar.sizePolicy().hasHeightForWidth())
if self.isLive:
self.Toolbar.addToolbarButton("First Slide", ":/slides/slide_first.png",
translate(u'SlideController', u'Move to first'), self.onSlideSelectedFirst)
self.Toolbar.addToolbarButton("Last Slide", ":/slides/slide_previous.png",
translate(u'SlideController', u'Move to previous'), self.onSlideSelectedPrevious)
self.Toolbar.addToolbarButton("First Slide", ":/slides/slide_next.png",
translate(u'SlideController', u'Move to next'), self.onSlideSelectedNext)
if self.isLive:
self.Toolbar.addToolbarButton("Last Slide", ":/slides/slide_last.png",
translate(u'SlideController', u'Move to last'), self.onSlideSelectedLast)
self.Toolbar.addSeparator()
self.Toolbar.addToolbarButton("Close Sscreen", ":/slides/slide_close.png",
translate(u'SlideController', u'Close Screen'), self.onBlankScreen)
self.Toolbar.setSizePolicy(sizeToolbarPolicy)
self.SlidePreview = QLabel(self.Splitter)
sizePolicy = QSizePolicy(QSizePolicy.Fixed, QSizePolicy.Fixed)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.SlidePreview.sizePolicy().hasHeightForWidth())
self.SlidePreview.setSizePolicy(sizePolicy)
self.SlidePreview.setMinimumSize(QtCore.QSize(250, 190))
self.SlidePreview.setFrameShape(QtGui.QFrame.WinPanel)
self.SlidePreview.setFrameShadow(QtGui.QFrame.Sunken)
self.SlidePreview.setMinimumSize(QSize(250, 190))
self.SlidePreview.setFrameShape(QFrame.WinPanel)
self.SlidePreview.setFrameShadow(QFrame.Sunken)
self.SlidePreview.setLineWidth(1)
self.SlidePreview.setScaledContents(True)
self.SlidePreview.setObjectName("SlidePreview")
QtCore.QObject.connect(self.PreviewListView,
QtCore.SIGNAL("clicked(QModelIndex)"), self.onSlideSelected)
QObject.connect(self.PreviewListView,
SIGNAL("clicked(QModelIndex)"), self.onSlideSelected)
def onSlideSelectedFirst(self):
row = self.PreviewListData.createIndex(0, 0)
if row.isValid():
self.PreviewListView.selectionModel().setCurrentIndex(row, QItemSelectionModel.SelectCurrent)
self.onSlideSelected(row)
def onSlideSelectedNext(self):
indexes = self.PreviewListView.selectedIndexes()
rowNumber = 0
for index in indexes:
if index.row() == self.PreviewListData.rowCount() - 1:
rowNumber = 0
else:
rowNumber = index.row() + 1
row = self.PreviewListData.createIndex(rowNumber , 0)
if row.isValid():
self.PreviewListView.selectionModel().setCurrentIndex(row, QItemSelectionModel.SelectCurrent)
self.onSlideSelected(row)
def onSlideSelectedPrevious(self):
indexes = self.PreviewListView.selectedIndexes()
rowNumber = 0
for index in indexes:
if index.row() == 0:
rowNumber = self.PreviewListData.rowCount() - 1
else:
rowNumber = index.row() - 1
row = self.PreviewListData.createIndex(rowNumber , 0)
if row.isValid():
self.PreviewListView.selectionModel().setCurrentIndex(row, QItemSelectionModel.SelectCurrent)
self.onSlideSelected(row)
def onSlideSelectedLast(self):
row = self.PreviewListData.createIndex(self.PreviewListData.rowCount() - 1 , 0)
if row.isValid():
self.PreviewListView.selectionModel().setCurrentIndex(row, QItemSelectionModel.SelectCurrent)
self.onSlideSelected(row)
def onBlankScreen(self):
self.mainDisplay.blankDisplay()
def onSlideSelected(self, index):
frame = self.PreviewListData.getValue(index)
@ -152,11 +218,17 @@ class SlideController(QtGui.QWidget):
self.mainDisplay.frameView(frame)
def addServiceItem(self, serviceitem):
log.debug(u'addServiceItem')
self.serviceitem = serviceitem
self.serviceitem.render()
self.PreviewListData.clearItems()
for frame in self.serviceitem.frames:
self.PreviewListData.addRow(frame)
row = self.PreviewListData.createIndex(0, 0)
if row.isValid():
self.PreviewListView.selectionModel().setCurrentIndex(row, QItemSelectionModel.SelectCurrent)
self.onSlideSelected(row)
def render(self):
pass

View File

@ -164,12 +164,13 @@ class ThemeManager(QWidget):
translate(u'ThemeManager', u'Export a theme'), self.onExportTheme)
self.ThemeWidget = QtGui.QWidgetAction(self.Toolbar)
self.Layout.addWidget(self.Toolbar)
self.ThemeListView = QtGui.QListView(self)
self.themeData = ThemeData()
self.ThemeListView.setModel(self.themeData)
self.ThemeListView.setAlternatingRowColors(True)
self.Layout.addWidget(self.ThemeListView)
self.ThemeListView.setAlternatingRowColors(True)
self.themelist = []
self.path = os.path.join(ConfigHelper.get_data_path(), u'themes')
self.checkThemesExists(self.path)

View File

@ -371,10 +371,10 @@ class BibleMediaItem(MediaManagerItem):
if len(raw_footer) <= 1:
raw_footer.append(book)
service_item.theme = None
service_item.raw_slides = raw_slides
service_item.raw_footer = raw_footer
if len(raw_slides) > 0:
service_item.theme = None
service_item.raw_slides = raw_slides
service_item.raw_footer = raw_footer
def formatVerse(self, old_chapter, chapter, verse, opening, closing):
loc = opening

View File

@ -187,6 +187,7 @@ class CustomMediaItem(MediaManagerItem):
self.CustomListData.deleteRow(index)
def onCustomPreviewClick(self):
log.debug(u'Custom Preview Requested')
service_item = ServiceItem(self.parent)
service_item.addIcon( ":/media/media_song.png")
service_item.render_manager = self.parent.render_manager
@ -194,6 +195,7 @@ class CustomMediaItem(MediaManagerItem):
self.parent.preview_controller.addServiceItem(service_item)
def onCustomLiveClick(self):
log.debug(u'Custom Live Requested')
service_item = ServiceItem(self.parent)
service_item.addIcon( ":/media/media_song.png")
service_item.render_manager = self.parent.render_manager
@ -201,6 +203,7 @@ class CustomMediaItem(MediaManagerItem):
self.parent.live_controller.addServiceItem(service_item)
def onCustomAddClick(self):
log.debug(u'Custom Add Requested')
service_item = ServiceItem(self.parent)
service_item.addIcon( ":/media/media_song.png")
service_item.render_manager = self.parent.render_manager
@ -226,6 +229,7 @@ class CustomMediaItem(MediaManagerItem):
for verse in verseList:
raw_slides.append(verse[1])
raw_footer.append(title + u' '+ credit)
service_item.title = title
service_item.raw_slides = raw_slides
service_item.raw_footer = raw_footer
if theme is not None:
service_item.title = title
service_item.raw_slides = raw_slides
service_item.raw_footer = raw_footer