Updates to Presentations etc

bzr-revno: 538
This commit is contained in:
Tim Bentley 2009-09-14 17:38:32 +01:00
commit e17b12839f
21 changed files with 316 additions and 260 deletions

View File

@ -178,6 +178,8 @@ class MediaManagerItem(QtGui.QWidget):
""" """
# Add a toolbar # Add a toolbar
self.addToolbar() self.addToolbar()
#Allow the plugin to define it's own header
self.addStartHeaderBar()
# Create buttons for the toolbar # Create buttons for the toolbar
## File Button ## ## File Button ##
if self.hasFileIcon: if self.hasFileIcon:
@ -190,13 +192,13 @@ class MediaManagerItem(QtGui.QWidget):
self.addToolbarButton( self.addToolbarButton(
translate(self.TranslationContext, u'New '+self.PluginTextShort), translate(self.TranslationContext, u'New '+self.PluginTextShort),
translate(self.TranslationContext, u'Add a new '+self.PluginTextShort), translate(self.TranslationContext, u'Add a new '+self.PluginTextShort),
u':'+self.IconPath+ u'_load.png', self.onNewClick, self.PluginTextShort+u'NewItem') u':'+self.IconPath+ u'_new.png', self.onNewClick, self.PluginTextShort+u'NewItem')
## Edit Button ## ## Edit Button ##
if self.hasEditIcon: if self.hasEditIcon:
self.addToolbarButton( self.addToolbarButton(
translate(self.TranslationContext, u'Edit '+self.PluginTextShort), translate(self.TranslationContext, u'Edit '+self.PluginTextShort),
translate(self.TranslationContext, u'Edit the selected '+self.PluginTextShort), translate(self.TranslationContext, u'Edit the selected '+self.PluginTextShort),
u':'+self.IconPath+ u'_load.png', self.onEditClick, self.PluginTextShort+u'EditItem') u':'+self.IconPath+ u'_edit.png', self.onEditClick, self.PluginTextShort+u'EditItem')
## Delete Button ## ## Delete Button ##
self.addToolbarButton( self.addToolbarButton(
translate(self.TranslationContext, u'Delete '+self.PluginTextShort), translate(self.TranslationContext, u'Delete '+self.PluginTextShort),
@ -220,7 +222,7 @@ class MediaManagerItem(QtGui.QWidget):
translate(self.TranslationContext, u'Add the selected item(s) to the service'), translate(self.TranslationContext, u'Add the selected item(s) to the service'),
u':/system/system_add.png', self.onAddClick, self.PluginTextShort+u'AddItem') u':/system/system_add.png', self.onAddClick, self.PluginTextShort+u'AddItem')
#Allow the plugin to define it's own header #Allow the plugin to define it's own header
self.addHeaderBar() self.addEndHeaderBar()
#Add the List widget #Add the List widget
self.ListView = self.ListViewWithDnD_class() self.ListView = self.ListViewWithDnD_class()
self.ListView.uniformItemSizes = True self.ListView.uniformItemSizes = True
@ -239,7 +241,7 @@ class MediaManagerItem(QtGui.QWidget):
':' +self.IconPath+u'_new.png', ':' +self.IconPath+u'_new.png',
translate(self.TranslationContext, u'&Edit '+self.PluginTextShort), translate(self.TranslationContext, u'&Edit '+self.PluginTextShort),
self.onEditClick)) self.onEditClick))
self.ListView.addAction(self.contextMenuSeparator(self.SongListWidget)) self.ListView.addAction(contextMenuSeparator(self.ListView))
self.ListView.addAction(contextMenuAction( self.ListView.addAction(contextMenuAction(
self.ListView, ':/system/system_preview.png', self.ListView, ':/system/system_preview.png',
translate(self.TranslationContext, u'&Preview '+self.PluginTextShort), translate(self.TranslationContext, u'&Preview '+self.PluginTextShort),
@ -263,7 +265,16 @@ class MediaManagerItem(QtGui.QWidget):
""" """
pass pass
def addHeaderBar(self): def addStartHeaderBar(self):
"""
Slot at start of toolbar for plugin to addwidgets
"""
pass
def addEndHeaderBar(self):
"""
Slot at end of toolbar for plugin to add widgets
"""
pass pass
def onFileClick(self): def onFileClick(self):

View File

@ -519,7 +519,7 @@ class Renderer(object):
self.footerFont = QtGui.QFont(self._theme.font_footer_name, self.footerFont = QtGui.QFont(self._theme.font_footer_name,
int(self._theme.font_footer_proportion), # size int(self._theme.font_footer_proportion), # size
int(footer_weight), # weight int(footer_weight), # weight
self._theme.font_footer_italics)# italic self._theme.font_footer_italics) # italic
self.footerFont.setPixelSize(int(self._theme.font_footer_proportion)) self.footerFont.setPixelSize(int(self._theme.font_footer_proportion))
main_weight = 50 main_weight = 50
if self._theme.font_main_weight == u'Bold': if self._theme.font_main_weight == u'Bold':

View File

@ -88,13 +88,13 @@ class ServiceItem(object):
The render method is what renders the frames for the screen. The render method is what renders the frames for the screen.
""" """
log.debug(u'Render called') log.debug(u'Render called')
if self.theme == None:
self.RenderManager.set_override_theme(None)
else:
self.RenderManager.set_override_theme(self.theme)
log.debug(u'Formatting slides')
self.frames = [] self.frames = []
if self.service_item_type == ServiceType.Text: if self.service_item_type == ServiceType.Text:
log.debug(u'Formatting slides')
if self.theme == None:
self.RenderManager.set_override_theme(None)
else:
self.RenderManager.set_override_theme(self.theme)
for slide in self.service_frames: for slide in self.service_frames:
formated = self.RenderManager.format_slide(slide[u'raw_slide']) formated = self.RenderManager.format_slide(slide[u'raw_slide'])
for format in formated: for format in formated:

View File

@ -34,13 +34,22 @@ class SettingsManager(object):
self.width = self.screen[u'size'].width() self.width = self.screen[u'size'].width()
self.height = self.screen[u'size'].height() self.height = self.screen[u'size'].height()
self.mainwindow_height = self.height * 0.8 self.mainwindow_height = self.height * 0.8
self.mainwindow_docbars = self.width / 5 mainwindow_docbars = self.width / 5
if self.mainwindow_docbars > 300: self.mainwindow_left = 0
self.mainwindow_docbars > 300 self.mainwindow_right = 0
self.mainwindow_slidecontroller = self.width / 6 if mainwindow_docbars > 300:
self.slidecontroller = ((self.width - (self.mainwindow_docbars * 3 ) / 2 ) / 2 ) -100 self.mainwindow_left = 300
self.mainwindow_right = 300
self.mainwindow_left = int( ConfigHelper.get_config(
u'user interface', u'mediamanager left', self.mainwindow_left))
self.mainwindow_right = int( ConfigHelper.get_config(
u'user interface', u'mediamanager right', self.mainwindow_right))
print self.mainwindow_left, self.mainwindow_right
self.slidecontroller = (self.width - (self.mainwindow_left + self.mainwindow_right) - 100 ) / 2
self.slidecontroller_image = self.slidecontroller - 50 self.slidecontroller_image = self.slidecontroller - 50
print self.width, self.mainwindow_docbars, self.slidecontroller, self.slidecontroller_image print self.width, mainwindow_docbars, self.slidecontroller, self.slidecontroller_image
self.showMediaManager = str_to_bool( ConfigHelper.get_config( self.showMediaManager = str_to_bool( ConfigHelper.get_config(
u'user interface', u'display mediamanager', True)) u'user interface', u'display mediamanager', True))
@ -67,3 +76,7 @@ class SettingsManager(object):
ConfigHelper.set_config(u'user interface', u'display previewpanel', ConfigHelper.set_config(u'user interface', u'display previewpanel',
isVisible) isVisible)
def setDockbarLeft(self, value):
#ConfigHelper.set_config(u'user interface', u'mediamanager left', value)
pass

View File

@ -36,6 +36,15 @@ from openlp.core.lib import translate, Plugin, MediaManagerItem, \
from openlp.core.utils import ConfigHelper from openlp.core.utils import ConfigHelper
class mediaDock(QtGui.QDockWidget):
def __init__(self, parent=None, name=None):
QtGui.QDockWidget.__init__(self, parent)
self.parent = parent
def resizeEvent(self, resizeEvent):
if resizeEvent.size().width() != resizeEvent.oldSize().width():
self.parent.settingsmanager.setDockbarLeft(resizeEvent.size().width())
class Ui_MainWindow(object): class Ui_MainWindow(object):
def setupUi(self, MainWindow): def setupUi(self, MainWindow):
""" """
@ -107,7 +116,7 @@ class Ui_MainWindow(object):
self.DefaultThemeLabel.setObjectName(u'DefaultThemeLabel') self.DefaultThemeLabel.setObjectName(u'DefaultThemeLabel')
self.StatusBar.addPermanentWidget(self.DefaultThemeLabel) self.StatusBar.addPermanentWidget(self.DefaultThemeLabel)
# Create the MediaManager # Create the MediaManager
self.MediaManagerDock = QtGui.QDockWidget(MainWindow) self.MediaManagerDock = mediaDock(MainWindow)
icon = QtGui.QIcon() icon = QtGui.QIcon()
icon.addPixmap(QtGui.QPixmap(u':/system/system_mediamanager.png'), icon.addPixmap(QtGui.QPixmap(u':/system/system_mediamanager.png'),
QtGui.QIcon.Normal, QtGui.QIcon.Off) QtGui.QIcon.Normal, QtGui.QIcon.Off)
@ -115,7 +124,15 @@ class Ui_MainWindow(object):
self.MediaManagerDock.setFloating(False) self.MediaManagerDock.setFloating(False)
self.MediaManagerDock.setObjectName(u'MediaManagerDock') self.MediaManagerDock.setObjectName(u'MediaManagerDock')
self.MediaManagerDock.setMinimumWidth( self.MediaManagerDock.setMinimumWidth(
self.settingsmanager.mainwindow_docbars) self.settingsmanager.mainwindow_left)
# self.MediaManagerDock.setSizePolicy(QtGui.QSizePolicy(QtGui.QSizePolicy.Ignored,
# QtGui.QSizePolicy.Maximum))
# geometry = self.MediaManagerDock.geometry()
# geometry.setWidth(self.settingsmanager.mainwindow_left)
# self.MediaManagerDock.setGeometry(geometry)
# self.MediaManagerDock.setMinimumWidth(10)
self.MediaManagerContents = QtGui.QWidget() self.MediaManagerContents = QtGui.QWidget()
self.MediaManagerContents.setObjectName(u'MediaManagerContents') self.MediaManagerContents.setObjectName(u'MediaManagerContents')
self.MediaManagerLayout = QtGui.QHBoxLayout(self.MediaManagerContents) self.MediaManagerLayout = QtGui.QHBoxLayout(self.MediaManagerContents)
@ -139,7 +156,7 @@ class Ui_MainWindow(object):
QtGui.QDockWidget.AllDockWidgetFeatures) QtGui.QDockWidget.AllDockWidgetFeatures)
self.ServiceManagerDock.setObjectName(u'ServiceManagerDock') self.ServiceManagerDock.setObjectName(u'ServiceManagerDock')
self.ServiceManagerDock.setMinimumWidth( self.ServiceManagerDock.setMinimumWidth(
self.settingsmanager.mainwindow_docbars) self.settingsmanager.mainwindow_right)
self.ServiceManagerContents = ServiceManager(self) self.ServiceManagerContents = ServiceManager(self)
self.ServiceManagerDock.setWidget(self.ServiceManagerContents) self.ServiceManagerDock.setWidget(self.ServiceManagerContents)
MainWindow.addDockWidget( MainWindow.addDockWidget(

View File

@ -75,7 +75,7 @@ class SlideController(QtGui.QWidget):
self.parent = parent self.parent = parent
self.image_list = [u'Start Loop', u'Stop Loop', u'Loop Separator', u'Image SpinBox'] self.image_list = [u'Start Loop', u'Stop Loop', u'Loop Separator', u'Image SpinBox']
self.timer_id = 0 self.timer_id = 0
self.item = None self.commandItem = None
self.Panel = QtGui.QWidget(parent.ControlSplitter) self.Panel = QtGui.QWidget(parent.ControlSplitter)
self.Splitter = QtGui.QSplitter(self.Panel) self.Splitter = QtGui.QSplitter(self.Panel)
self.Splitter.setOrientation(QtCore.Qt.Vertical) self.Splitter.setOrientation(QtCore.Qt.Vertical)
@ -238,9 +238,9 @@ class SlideController(QtGui.QWidget):
""" """
log.debug(u'addServiceItem') log.debug(u'addServiceItem')
#If old item was a command tell it to stop #If old item was a command tell it to stop
if self.item is not None and self.item.service_item_type == ServiceType.Command: if self.commandItem is not None and self.commandItem.service_item_type == ServiceType.Command:
Receiver().send_message(u'%s_stop'% self.item.name.lower()) Receiver().send_message(u'%s_stop'% self.commandItem.name.lower())
self.item = item self.commandItem = item
item.render() item.render()
self.enableToolBar(item) self.enableToolBar(item)
if item.service_item_type == ServiceType.Command: if item.service_item_type == ServiceType.Command:
@ -257,9 +257,9 @@ class SlideController(QtGui.QWidget):
""" """
log.debug(u'addServiceItem') log.debug(u'addServiceItem')
#If old item was a command tell it to stop #If old item was a command tell it to stop
if self.item is not None and self.item.service_item_type == ServiceType.Command: if self.commandItem is not None and self.commandItem.service_item_type == ServiceType.Command:
Receiver().send_message(u'%s_stop'% self.item.name.lower()) Receiver().send_message(u'%s_stop'% self.commandItem.name.lower())
self.item = item self.commandItem = item
self.enableToolBar(item) self.enableToolBar(item)
if item.service_item_type == ServiceType.Command: if item.service_item_type == ServiceType.Command:
Receiver().send_message(u'%s_start'%item.name.lower(), \ Receiver().send_message(u'%s_start'%item.name.lower(), \
@ -334,8 +334,8 @@ class SlideController(QtGui.QWidget):
""" """
Go to the next slide. Go to the next slide.
""" """
if self.item.service_item_type == ServiceType.Command: if self.commandItem.service_item_type == ServiceType.Command:
Receiver().send_message(u'%s_next'% self.item.name.lower()) Receiver().send_message(u'%s_next'% self.commandItem.name.lower())
else: else:
row = self.PreviewListWidget.currentRow() + 1 row = self.PreviewListWidget.currentRow() + 1
if row == self.PreviewListWidget.rowCount(): if row == self.PreviewListWidget.rowCount():
@ -347,8 +347,8 @@ class SlideController(QtGui.QWidget):
""" """
Go to the previous slide. Go to the previous slide.
""" """
if self.item.service_item_type == ServiceType.Command: if self.commandItem.service_item_type == ServiceType.Command:
Receiver().send_message(u'%s_previous'% self.item.name.lower()) Receiver().send_message(u'%s_previous'% self.commandItem.name.lower())
else: else:
row = self.PreviewListWidget.currentRow() - 1 row = self.PreviewListWidget.currentRow() - 1
if row == -1: if row == -1:
@ -379,6 +379,3 @@ class SlideController(QtGui.QWidget):
def timerEvent(self, event): def timerEvent(self, event):
if event.timerId() == self.timer_id: if event.timerId() == self.timer_id:
self.onSlideSelectedNext() self.onSlideSelectedNext()

View File

@ -184,14 +184,14 @@ class BiblesTab(SettingsTab):
check_state = self.NewChaptersCheckBox.checkState() check_state = self.NewChaptersCheckBox.checkState()
self.show_new_chapters = False self.show_new_chapters = False
# we have a set value convert to True/False # we have a set value convert to True/False
if check_state == 2: if check_state == QtCore.Qt.Checked:
self.show_new_chapters = True self.show_new_chapters = True
def onBibleSearchCheckBoxChanged(self): def onBibleSearchCheckBoxChanged(self):
check_state = self.BibleSearchCheckBox.checkState() check_state = self.BibleSearchCheckBox.checkState()
self.bible_search = False self.bible_search = False
# we have a set value convert to True/False # we have a set value convert to True/False
if check_state == 2: if check_state == QtCore.Qt.Checked:
self.bible_search = True self.bible_search = True
def load(self): def load(self):

View File

@ -28,10 +28,18 @@ from PyQt4 import QtCore, QtGui
from forms import EditCustomForm from forms import EditCustomForm
from openlp.core.lib import Plugin from openlp.core.lib import Plugin
from openlp.plugins.custom.lib import CustomManager, CustomTab, CustomMediaItem from openlp.plugins.custom.lib import CustomManager, CustomMediaItem
class CustomPlugin(Plugin): class CustomPlugin(Plugin):
"""
This plugin enables the user to create, edit and display
custom slide shows. Custom shows are divided into slides.
Each show is able to have it's own theme.
Custom shows are designed to replace the use of songs where
the songs plugin has become restrictive. Examples could be
Welcome slides, Bible Reading information, Orders of service.
"""
global log global log
log=logging.getLogger(u'CustomPlugin') log=logging.getLogger(u'CustomPlugin')

View File

@ -1,6 +1,5 @@
# -*- coding: utf-8 -*- # -*- coding: utf-8 -*-
# vim: autoindent shiftwidth=4 expandtab textwidth=80 tabstop=4 softtabstop=4 # vim: autoindent shiftwidth=4 expandtab textwidth=80 tabstop=4 softtabstop=4
############################################################################### ###############################################################################
# OpenLP - Open Source Lyrics Projection # # OpenLP - Open Source Lyrics Projection #
# --------------------------------------------------------------------------- # # --------------------------------------------------------------------------- #
@ -30,7 +29,7 @@ class Ui_customEditDialog(object):
customEditDialog.setObjectName(u'customEditDialog') customEditDialog.setObjectName(u'customEditDialog')
customEditDialog.resize(590, 541) customEditDialog.resize(590, 541)
icon = QtGui.QIcon() icon = QtGui.QIcon()
icon.addPixmap(QtGui.QPixmap(u':/icon/openlp-logo-16x16.png'), QtGui.QIcon.Normal, QtGui.QIcon.Off) icon.addPixmap(QtGui.QPixmap(u':/icon/openlp.org-icon-32.bmp'), QtGui.QIcon.Normal, QtGui.QIcon.Off)
customEditDialog.setWindowIcon(icon) customEditDialog.setWindowIcon(icon)
self.gridLayout = QtGui.QGridLayout(customEditDialog) self.gridLayout = QtGui.QGridLayout(customEditDialog)
self.gridLayout.setObjectName(u'gridLayout') self.gridLayout.setObjectName(u'gridLayout')
@ -46,8 +45,8 @@ class Ui_customEditDialog(object):
self.horizontalLayout_4 = QtGui.QHBoxLayout() self.horizontalLayout_4 = QtGui.QHBoxLayout()
self.horizontalLayout_4.setObjectName(u'horizontalLayout_4') self.horizontalLayout_4.setObjectName(u'horizontalLayout_4')
self.VerseListView = QtGui.QListWidget(customEditDialog) self.VerseListView = QtGui.QListWidget(customEditDialog)
self.VerseListView.setObjectName(u'VerseListView')
self.VerseListView.setAlternatingRowColors(True) self.VerseListView.setAlternatingRowColors(True)
self.VerseListView.setObjectName(u'VerseListView')
self.horizontalLayout_4.addWidget(self.VerseListView) self.horizontalLayout_4.addWidget(self.VerseListView)
self.verticalLayout = QtGui.QVBoxLayout() self.verticalLayout = QtGui.QVBoxLayout()
self.verticalLayout.setObjectName(u'verticalLayout') self.verticalLayout.setObjectName(u'verticalLayout')
@ -69,47 +68,49 @@ class Ui_customEditDialog(object):
self.gridLayout.addLayout(self.horizontalLayout_4, 1, 0, 1, 1) self.gridLayout.addLayout(self.horizontalLayout_4, 1, 0, 1, 1)
self.EditWidget = QtGui.QWidget(customEditDialog) self.EditWidget = QtGui.QWidget(customEditDialog)
self.EditWidget.setObjectName(u'EditWidget') self.EditWidget.setObjectName(u'EditWidget')
self.EditLayout = QtGui.QHBoxLayout(self.EditWidget) self.EditLayout_3 = QtGui.QHBoxLayout(self.EditWidget)
self.EditLayout.setSpacing(8) self.EditLayout_3.setSpacing(8)
self.EditLayout.setMargin(0) self.EditLayout_3.setMargin(0)
self.EditLayout.setObjectName(u'EditLayout') self.EditLayout_3.setObjectName(u'EditLayout_3')
self.VerseTextEdit = QtGui.QTextEdit(self.EditWidget) self.VerseTextEdit = QtGui.QTextEdit(self.EditWidget)
self.VerseTextEdit.setObjectName(u'VerseTextEdit') self.VerseTextEdit.setObjectName(u'VerseTextEdit')
self.EditLayout.addWidget(self.VerseTextEdit) self.EditLayout_3.addWidget(self.VerseTextEdit)
self.ButtonWidget = QtGui.QWidget(self.EditWidget) self.ButtonWidge = QtGui.QWidget(self.EditWidget)
self.ButtonWidget.setObjectName(u'ButtonWidget') self.ButtonWidge.setObjectName(u'ButtonWidge')
self.ButtonLayout = QtGui.QVBoxLayout(self.ButtonWidget) self.verticalLayout_2 = QtGui.QVBoxLayout(self.ButtonWidge)
self.ButtonLayout.setSpacing(8) self.verticalLayout_2.setObjectName(u'verticalLayout_2')
self.ButtonLayout.setMargin(0) self.AddButton = QtGui.QPushButton(self.ButtonWidge)
self.ButtonLayout.setObjectName(u'ButtonLayout')
self.AddButton = QtGui.QPushButton(self.ButtonWidget)
self.AddButton.setObjectName(u'AddButton') self.AddButton.setObjectName(u'AddButton')
self.ButtonLayout.addWidget(self.AddButton) self.AddButton.setToolTip(translate(u'customEditDialog', u'Add new slide at bottom'))
self.EditButton = QtGui.QPushButton(self.ButtonWidget) self.verticalLayout_2.addWidget(self.AddButton)
self.EditButton = QtGui.QPushButton(self.ButtonWidge)
self.EditButton.setObjectName(u'EditButton') self.EditButton.setObjectName(u'EditButton')
self.ButtonLayout.addWidget(self.EditButton) self.verticalLayout_2.addWidget(self.EditButton)
self.SaveButton = QtGui.QPushButton(self.ButtonWidget) self.EditAllButton = QtGui.QPushButton(self.ButtonWidge)
self.EditAllButton.setObjectName(u'EditAllButton')
self.verticalLayout_2.addWidget(self.EditAllButton)
self.SaveButton = QtGui.QPushButton(self.ButtonWidge)
self.SaveButton.setObjectName(u'SaveButton') self.SaveButton.setObjectName(u'SaveButton')
self.ButtonLayout.addWidget(self.SaveButton) self.verticalLayout_2.addWidget(self.SaveButton)
self.DeleteButton = QtGui.QPushButton(self.ButtonWidget) self.DeleteButton = QtGui.QPushButton(self.ButtonWidge)
self.DeleteButton.setObjectName(u'DeleteButton') self.DeleteButton.setObjectName(u'DeleteButton')
self.ButtonLayout.addWidget(self.DeleteButton) self.verticalLayout_2.addWidget(self.DeleteButton)
self.ClearButton = QtGui.QPushButton(self.ButtonWidget) self.ClearButton = QtGui.QPushButton(self.ButtonWidge)
self.ClearButton.setObjectName(u'ClearButton') self.ClearButton.setObjectName(u'ClearButton')
self.ButtonLayout.addWidget(self.ClearButton) self.verticalLayout_2.addWidget(self.ClearButton)
spacerItem1 = QtGui.QSpacerItem(20, 40, QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Expanding) spacerItem1 = QtGui.QSpacerItem(20, 40, QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Expanding)
self.ButtonLayout.addItem(spacerItem1) self.verticalLayout_2.addItem(spacerItem1)
self.EditLayout.addWidget(self.ButtonWidget) self.EditLayout_3.addWidget(self.ButtonWidge)
self.gridLayout.addWidget(self.EditWidget, 2, 0, 1, 1) self.gridLayout.addWidget(self.EditWidget, 2, 0, 1, 1)
self.horizontalLayout = QtGui.QHBoxLayout() self.horizontalLayout_3 = QtGui.QHBoxLayout()
self.horizontalLayout.setObjectName(u'horizontalLayout') self.horizontalLayout_3.setObjectName(u'horizontalLayout_3')
self.ThemeLabel = QtGui.QLabel(customEditDialog) self.ThemeLabel = QtGui.QLabel(customEditDialog)
self.ThemeLabel.setObjectName(u'ThemeLabel') self.ThemeLabel.setObjectName(u'ThemeLabel')
self.horizontalLayout.addWidget(self.ThemeLabel) self.horizontalLayout_3.addWidget(self.ThemeLabel)
self.ThemecomboBox = QtGui.QComboBox(customEditDialog) self.ThemeComboBox = QtGui.QComboBox(customEditDialog)
self.ThemecomboBox.setObjectName(u'ThemecomboBox') self.ThemeComboBox.setObjectName(u'ThemeComboBox')
self.horizontalLayout.addWidget(self.ThemecomboBox) self.horizontalLayout_3.addWidget(self.ThemeComboBox)
self.gridLayout.addLayout(self.horizontalLayout, 3, 0, 1, 1) self.gridLayout.addLayout(self.horizontalLayout_3, 3, 0, 1, 1)
self.horizontalLayout_2 = QtGui.QHBoxLayout() self.horizontalLayout_2 = QtGui.QHBoxLayout()
self.horizontalLayout_2.setObjectName(u'horizontalLayout_2') self.horizontalLayout_2.setObjectName(u'horizontalLayout_2')
self.CreditLabel = QtGui.QLabel(customEditDialog) self.CreditLabel = QtGui.QLabel(customEditDialog)
@ -123,24 +124,39 @@ class Ui_customEditDialog(object):
self.buttonBox.setStandardButtons(QtGui.QDialogButtonBox.Cancel|QtGui.QDialogButtonBox.Ok) self.buttonBox.setStandardButtons(QtGui.QDialogButtonBox.Cancel|QtGui.QDialogButtonBox.Ok)
self.buttonBox.setObjectName(u'buttonBox') self.buttonBox.setObjectName(u'buttonBox')
self.gridLayout.addWidget(self.buttonBox, 5, 0, 1, 1) self.gridLayout.addWidget(self.buttonBox, 5, 0, 1, 1)
self.retranslateUi(customEditDialog) self.retranslateUi(customEditDialog)
QtCore.QMetaObject.connectSlotsByName(customEditDialog) QtCore.QMetaObject.connectSlotsByName(customEditDialog)
customEditDialog.setTabOrder(self.TitleEdit, self.VerseTextEdit) customEditDialog.setTabOrder(self.TitleEdit, self.VerseTextEdit)
customEditDialog.setTabOrder(self.VerseTextEdit, self.EditButton) customEditDialog.setTabOrder(self.VerseTextEdit, self.AddButton)
customEditDialog.setTabOrder(self.EditButton, self.SaveButton) customEditDialog.setTabOrder(self.AddButton, self.VerseListView)
customEditDialog.setTabOrder(self.SaveButton, self.CreditEdit) customEditDialog.setTabOrder(self.VerseListView, self.EditButton)
customEditDialog.setTabOrder(self.CreditEdit, self.VerseListView) customEditDialog.setTabOrder(self.EditButton, self.EditAllButton)
customEditDialog.setTabOrder(self.VerseListView, self.AddButton) customEditDialog.setTabOrder(self.EditAllButton, self.SaveButton)
customEditDialog.setTabOrder(self.AddButton, self.DeleteButton) customEditDialog.setTabOrder(self.SaveButton, self.DeleteButton)
customEditDialog.setTabOrder(self.DeleteButton, self.buttonBox) customEditDialog.setTabOrder(self.DeleteButton, self.CreditEdit)
customEditDialog.setTabOrder(self.CreditEdit, self.UpButton)
customEditDialog.setTabOrder(self.UpButton, self.DownButton)
customEditDialog.setTabOrder(self.DownButton, self.ThemeComboBox)
customEditDialog.setTabOrder(self.ThemeComboBox, self.buttonBox)
def retranslateUi(self, customEditDialog): def retranslateUi(self, customEditDialog):
customEditDialog.setWindowTitle(translate(u'customEditDialog', u'Edit Custom Slides')) self.UpButton.setToolTip(translate(u'customEditDialog', u'Move slide Up 1'))
self.TitleLabel.setText(translate(u'customEditDialog', u'Title:')) self.DownButton.setToolTip(translate(u'customEditDialog', u'Move slide down 1'))
self.AddButton.setText(translate(u'customEditDialog', u'Add')) customEditDialog.setWindowTitle(translate(u'customEditDialog', 'Edit Custom Slides'))
self.EditButton.setText(translate(u'customEditDialog', u'Edit')) self.TitleLabel.setText(translate(u'customEditDialog', 'Title:'))
self.SaveButton.setText(translate(u'customEditDialog', u'Save')) self.AddButton.setText(translate(u'customEditDialog', 'Add New'))
self.DeleteButton.setText(translate(u'customEditDialog', u'Delete')) self.AddButton.setToolTip(translate(u'customEditDialog', u'Add new slide at bottom'))
self.ClearButton.setText(translate(u'customEditDialog', u'Clear')) self.EditButton.setText(translate(u'customEditDialog', 'Edit'))
self.ThemeLabel.setText(translate(u'customEditDialog', u'Theme:')) self.EditButton.setToolTip(translate(u'customEditDialog', u'Edit selected slide'))
self.CreditLabel.setText(translate(u'customEditDialog', u'Credits:')) self.EditAllButton.setText(translate(u'customEditDialog', 'Edit All'))
self.EditAllButton.setToolTip(translate(u'customEditDialog', u'Edit all slides'))
self.SaveButton.setText(translate(u'customEditDialog', 'Save'))
self.SaveButton.setToolTip(translate(u'customEditDialog', u'Replace edited slide'))
self.DeleteButton.setText(translate(u'customEditDialog', 'Delete'))
self.DeleteButton.setToolTip(translate(u'customEditDialog', u'Delete selected slide'))
self.ClearButton.setText(translate(u'customEditDialog', 'Clear'))
self.ClearButton.setToolTip(translate(u'customEditDialog', u'Clear edit area'))
self.ThemeLabel.setText(translate(u'customEditDialog', 'Theme:'))
self.ThemeComboBox.setToolTip(translate(u'customEditDialog', u'Set Theme for Slides'))
self.CreditLabel.setText(translate(u'customEditDialog', 'Credits:'))

View File

@ -40,20 +40,33 @@ class EditCustomForm(QtGui.QDialog, Ui_customEditDialog):
#self.parent = parent #self.parent = parent
self.setupUi(self) self.setupUi(self)
# Connecting signals and slots # Connecting signals and slots
QtCore.QObject.connect(self.buttonBox, QtCore.SIGNAL(u'rejected()'), self.rejected) QtCore.QObject.connect(self.buttonBox,
QtCore.QObject.connect(self.buttonBox, QtCore.SIGNAL(u'accepted()'), self.accept) QtCore.SIGNAL(u'rejected()'), self.rejected)
QtCore.QObject.connect(self.AddButton, QtCore.SIGNAL(u'pressed()'), self.onAddButtonPressed) QtCore.QObject.connect(self.buttonBox,
QtCore.QObject.connect(self.EditButton, QtCore.SIGNAL(u'pressed()'), self.onEditButtonPressed) QtCore.SIGNAL(u'accepted()'), self.accept)
QtCore.QObject.connect(self.SaveButton, QtCore.SIGNAL(u'pressed()'), self.onSaveButtonPressed) QtCore.QObject.connect(self.AddButton,
QtCore.QObject.connect(self.DeleteButton, QtCore.SIGNAL(u'pressed()'), self.onDeleteButtonPressed) QtCore.SIGNAL(u'pressed()'), self.onAddButtonPressed)
QtCore.QObject.connect(self.ClearButton, QtCore.SIGNAL(u'pressed()'), self.onClearButtonPressed) QtCore.QObject.connect(self.EditButton,
QtCore.QObject.connect(self.UpButton, QtCore.SIGNAL(u'pressed()'), self.onUpButtonPressed) QtCore.SIGNAL(u'pressed()'), self.onEditButtonPressed)
QtCore.QObject.connect(self.DownButton, QtCore.SIGNAL(u'pressed()'), self.onDownButtonPressed) QtCore.QObject.connect(self.EditAllButton,
QtCore.SIGNAL(u'pressed()'), self.onEditAllButtonPressed)
QtCore.QObject.connect(self.SaveButton,
QtCore.SIGNAL(u'pressed()'), self.onSaveButtonPressed)
QtCore.QObject.connect(self.DeleteButton,
QtCore.SIGNAL(u'pressed()'), self.onDeleteButtonPressed)
QtCore.QObject.connect(self.ClearButton,
QtCore.SIGNAL(u'pressed()'), self.onClearButtonPressed)
QtCore.QObject.connect(self.UpButton,
QtCore.SIGNAL(u'pressed()'), self.onUpButtonPressed)
QtCore.QObject.connect(self.DownButton,
QtCore.SIGNAL(u'pressed()'), self.onDownButtonPressed)
QtCore.QObject.connect(self.VerseListView, QtCore.QObject.connect(self.VerseListView,
QtCore.SIGNAL(u'itemDoubleClicked(QListWidgetItem*)'), self.onVerseListViewSelected) QtCore.SIGNAL(u'itemDoubleClicked(QListWidgetItem*)'),
self.onVerseListViewSelected)
QtCore.QObject.connect(self.VerseListView, QtCore.QObject.connect(self.VerseListView,
QtCore.SIGNAL(u'itemClicked(QListWidgetItem*)'), self.onVerseListViewPressed) QtCore.SIGNAL(u'itemClicked(QListWidgetItem*)'),
self.onVerseListViewPressed)
QtCore.QObject.connect(Receiver.get_receiver(), QtCore.QObject.connect(Receiver.get_receiver(),
QtCore.SIGNAL(u'update_themes'), self.loadThemes) QtCore.SIGNAL(u'update_themes'), self.loadThemes)
# Create other objects and forms # Create other objects and forms
@ -61,23 +74,25 @@ class EditCustomForm(QtGui.QDialog, Ui_customEditDialog):
self.initialise() self.initialise()
def initialise(self): def initialise(self):
self.valid = True self.editAll = False
self.DeleteButton.setEnabled(False) self.DeleteButton.setEnabled(False)
self.EditButton.setEnabled(False) self.EditButton.setEnabled(False)
self.EditAllButton.setEnabled(True)
self.SaveButton.setEnabled(False) self.SaveButton.setEnabled(False)
self.ClearButton.setEnabled(False)
self.TitleEdit.setText(u'') self.TitleEdit.setText(u'')
self.CreditEdit.setText(u'') self.CreditEdit.setText(u'')
self.VerseTextEdit.clear() self.VerseTextEdit.clear()
self.VerseListView.clear() self.VerseListView.clear()
#make sure we have a new item #make sure we have a new item
self.customSlide = CustomSlide() self.customSlide = CustomSlide()
self.ThemecomboBox.addItem(u'') self.ThemeComboBox.addItem(u'')
def loadThemes(self, themelist): def loadThemes(self, themelist):
self.ThemecomboBox.clear() self.ThemeComboBox.clear()
self.ThemecomboBox.addItem(u'') self.ThemeComboBox.addItem(u'')
for themename in themelist: for themename in themelist:
self.ThemecomboBox.addItem(themename) self.ThemeComboBox.addItem(themename)
def loadCustom(self, id): def loadCustom(self, id):
self.customSlide = CustomSlide() self.customSlide = CustomSlide()
@ -92,12 +107,12 @@ class EditCustomForm(QtGui.QDialog, Ui_customEditDialog):
for verse in verseList: for verse in verseList:
self.VerseListView.addItem(verse[1]) self.VerseListView.addItem(verse[1])
theme = unicode(self.customSlide.theme_name) theme = unicode(self.customSlide.theme_name)
id = self.ThemecomboBox.findText(theme, QtCore.Qt.MatchExactly) id = self.ThemeComboBox.findText(theme, QtCore.Qt.MatchExactly)
if id == -1: if id == -1:
id = 0 # Not Found id = 0 # Not Found
self.ThemecomboBox.setCurrentIndex(id) self.ThemeComboBox.setCurrentIndex(id)
else: else:
self.ThemecomboBox.setCurrentIndex(0) self.ThemeComboBox.setCurrentIndex(0)
def accept(self): def accept(self):
valid , message = self._validate() valid , message = self._validate()
@ -116,7 +131,7 @@ class EditCustomForm(QtGui.QDialog, Ui_customEditDialog):
self.customSlide.title = unicode(self.TitleEdit.displayText()) self.customSlide.title = unicode(self.TitleEdit.displayText())
self.customSlide.text = unicode(sxml.extract_xml()) self.customSlide.text = unicode(sxml.extract_xml())
self.customSlide.credits = unicode(self.CreditEdit.displayText()) self.customSlide.credits = unicode(self.CreditEdit.displayText())
self.customSlide.theme_name = unicode(self.ThemecomboBox.currentText()) self.customSlide.theme_name = unicode(self.ThemeComboBox.currentText())
self.custommanager.save_slide(self.customSlide) self.custommanager.save_slide(self.customSlide)
self.close() self.close()
@ -140,6 +155,10 @@ class EditCustomForm(QtGui.QDialog, Ui_customEditDialog):
def onClearButtonPressed(self): def onClearButtonPressed(self):
self.VerseTextEdit.clear() self.VerseTextEdit.clear()
self.editAll = False
self.AddButton.setEnabled(True)
self.EditAllButton.setEnabled(True)
self.SaveButton.setEnabled(False)
def onVerseListViewPressed(self, item): def onVerseListViewPressed(self, item):
self.DeleteButton.setEnabled(True) self.DeleteButton.setEnabled(True)
@ -156,30 +175,52 @@ class EditCustomForm(QtGui.QDialog, Ui_customEditDialog):
def onEditButtonPressed(self): def onEditButtonPressed(self):
self.editText(self.VerseListView.currentItem().text()) self.editText(self.VerseListView.currentItem().text())
def onEditAllButtonPressed(self):
self.editAll = True
self.AddButton.setEnabled(False)
if self.VerseListView.count() > 0:
verse_list = u''
for row in range(0, self.VerseListView.count()):
item = self.VerseListView.item(row)
verse_list += item.text()
verse_list += u'\n---\n'
self.editText(verse_list)
def editText(self, text): def editText(self, text):
self.beforeText = text self.beforeText = text
self.VerseTextEdit.setPlainText(text) self.VerseTextEdit.setPlainText(text)
self.DeleteButton.setEnabled(False) self.DeleteButton.setEnabled(False)
self.EditButton.setEnabled(False) self.EditButton.setEnabled(False)
self.EditAllButton.setEnabled(False)
self.SaveButton.setEnabled(True) self.SaveButton.setEnabled(True)
self.ClearButton.setEnabled(True)
def onSaveButtonPressed(self): def onSaveButtonPressed(self):
self.VerseListView.currentItem().setText(self.VerseTextEdit.toPlainText()) if self.editAll:
#number of lines has change
if len(self.beforeText.split(u'\n')) != len(self.VerseTextEdit.toPlainText().split(u'\n')):
tempList = {}
for row in range(0, self.VerseListView.count()):
tempList[row] = self.VerseListView.item(row).text()
self.VerseListView.clear() self.VerseListView.clear()
for row in range (0, len(tempList)): for row in unicode(self.VerseTextEdit.toPlainText()).split(u'---'):
self.VerseListView.addItem(tempList[row]) self.VerseListView.addItem(row)
self.VerseListView.repaint() else:
self.VerseListView.currentItem().setText(self.VerseTextEdit.toPlainText())
#number of lines has change
if len(self.beforeText.split(u'\n')) != len(self.VerseTextEdit.toPlainText().split(u'\n')):
tempList = {}
for row in range(0, self.VerseListView.count()):
tempList[row] = self.VerseListView.item(row).text()
self.VerseListView.clear()
for row in range (0, len(tempList)):
self.VerseListView.addItem(tempList[row])
self.VerseListView.repaint()
self.AddButton.setEnabled(True)
self.SaveButton.setEnabled(False) self.SaveButton.setEnabled(False)
self.EditButton.setEnabled(False) self.EditButton.setEnabled(False)
self.EditAllButton.setEnabled(True)
self.VerseTextEdit.clear()
def onDeleteButtonPressed(self): def onDeleteButtonPressed(self):
self.VerseListView.takeItem(self.VerseListView.currentRow()) self.VerseListView.takeItem(self.VerseListView.currentRow())
self.EditButton.setEnabled(False) self.EditButton.setEnabled(False)
self.EditAllButton.setEnabled(True)
def _validate(self): def _validate(self):
valid = True valid = True

View File

@ -23,5 +23,4 @@
############################################################################### ###############################################################################
from manager import CustomManager from manager import CustomManager
from customtab import CustomTab
from mediaitem import CustomMediaItem from mediaitem import CustomMediaItem

View File

@ -1,37 +0,0 @@
# -*- coding: utf-8 -*-
# vim: autoindent shiftwidth=4 expandtab textwidth=80 tabstop=4 softtabstop=4
###############################################################################
# OpenLP - Open Source Lyrics Projection #
# --------------------------------------------------------------------------- #
# Copyright (c) 2008-2009 Raoul Snyman #
# Portions copyright (c) 2008-2009 Martin Thompson, Tim Bentley, Carsten #
# Tinggaard, Jon Tibble, Jonathan Corwin, Maikel Stuivenberg, Scott Guerrieri #
# --------------------------------------------------------------------------- #
# This program is free software; you can redistribute it and/or modify it #
# under the terms of the GNU General Public License as published by the Free #
# Software Foundation; version 2 of the License. #
# #
# This program is distributed in the hope that it will be useful, but WITHOUT #
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or #
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for #
# more details. #
# #
# You should have received a copy of the GNU General Public License along #
# with this program; if not, write to the Free Software Foundation, Inc., 59 #
# Temple Place, Suite 330, Boston, MA 02111-1307 USA #
###############################################################################
from PyQt4 import QtCore, QtGui
from openlp.core.lib import SettingsTab, translate
class CustomTab(SettingsTab):
"""
SongsTab is the songs settings tab in the settings dialog.
"""
def __init__(self):
SettingsTab.__init__(self, translate(u'CustomTab', u'Custom'), u'Custom')
def setupUi(self):
self.setObjectName(u'CustomTab')

View File

@ -26,7 +26,8 @@ import logging
from PyQt4 import QtCore, QtGui from PyQt4 import QtCore, QtGui
from openlp.core.lib import MediaManagerItem, SongXMLParser, ServiceItem, translate, contextMenuAction, contextMenuSeparator, BaseListWithDnD from openlp.core.lib import MediaManagerItem, SongXMLParser, ServiceItem, \
translate, contextMenuAction, contextMenuSeparator, BaseListWithDnD
class CustomListView(BaseListWithDnD): class CustomListView(BaseListWithDnD):
def __init__(self, parent=None): def __init__(self, parent=None):
@ -45,78 +46,18 @@ class CustomMediaItem(MediaManagerItem):
self.TranslationContext = u'CustomPlugin' self.TranslationContext = u'CustomPlugin'
self.PluginTextShort = u'Custom' self.PluginTextShort = u'Custom'
self.ConfigSection = u'custom' self.ConfigSection = u'custom'
self.IconPath = u'custom/custom'
self.hasFileIcon = False
self.hasNewIcon = True
self.hasEditIcon = True
# this next is a class, not an instance of a class - it will
# be instanced by the base MediaManagerItem
self.ListViewWithDnD_class = CustomListView
self.ServiceItemIconName = u':/custom/custom_image.png'
self.servicePath = None
MediaManagerItem.__init__(self, parent, icon, title) MediaManagerItem.__init__(self, parent, icon, title)
self.parent = parent self.parent = parent
def setupUi(self):
# Add a toolbar
self.addToolbar()
# Create buttons for the toolbar
## New Custom Button ##
self.addToolbarButton(
translate(u'CustomMediaItem',u'New Custom Item'),
translate(u'CustomMediaItem',u'Add a new Custom Item'),
u':/custom/custom_new.png', self.onCustomNewClick, u'CustomNewItem')
## Edit Custom Button ##
self.addToolbarButton(
translate(u'CustomMediaItem',u'Edit Custom Item'),
translate(u'CustomMediaItem',u'Edit the selected Custom Item'),
u':/custom/custom_edit.png', self.onCustomEditClick, u'CustomEditItem')
## Delete Custom Button ##
self.addToolbarButton(
translate(u'CustomMediaItem',u'Delete Custom Item'),
translate(u'CustomMediaItem',u'Delete the selected Custom Item'),
u':/custom/custom_delete.png', self.onCustomDeleteClick, u'CustomDeleteItem')
## Separator Line ##
self.addToolbarSeparator()
## Preview Custom Button ##
self.addToolbarButton(
translate(u'CustomMediaItem',u'Preview Custom Item'),
translate(u'CustomMediaItem',u'Preview the selected Custom Item'),
u':/system/system_preview.png', self.onPreviewClick, u'CustomPreviewItem')
## Live Custom Button ##
self.addToolbarButton(
translate(u'CustomMediaItem',u'Go Live'),
translate(u'CustomMediaItem', u'Send the selected Custom live'),
u':/system/system_live.png', self.onLiveClick, u'CustomLiveItem')
## Add Custom Button ##
self.addToolbarButton(
translate(u'CustomMediaItem',u'Add Custom To Service'),
translate(u'CustomMediaItem',u'Add the selected Custom(s) to the service'),
u':/system/system_add.png', self.onAddClick, u'CustomAddItem')
# Add the CustomListView widget
self.CustomWidget = QtGui.QWidget(self)
sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.CustomWidget.sizePolicy().hasHeightForWidth())
self.CustomWidget.setSizePolicy(sizePolicy)
self.CustomWidget.setObjectName(u'CustomWidget')
# Add the Custom widget to the page layout
self.PageLayout.addWidget(self.CustomWidget)
self.ListView = CustomListView()
self.ListView.setAlternatingRowColors(True)
self.ListView.setDragEnabled(True)
self.PageLayout.addWidget(self.ListView)
# Signals
QtCore.QObject.connect(self.ListView,
QtCore.SIGNAL(u'doubleClicked(QModelIndex)'), self.onPreviewClick)
#define and add the context menu
self.ListView.setContextMenuPolicy(QtCore.Qt.ActionsContextMenu)
self.ListView.addAction(contextMenuAction(self.ListView,
':/custom/custom_edit.png', translate(u'CustomMediaItem', u'&Edit Custom'),
self.onCustomEditClick))
self.ListView.addAction(contextMenuSeparator(self.ListView))
self.ListView.addAction(contextMenuAction(
self.ListView, ':/system/system_preview.png',
translate(u'CustomMediaItem',u'&Preview Custom'), self.onPreviewClick))
self.ListView.addAction(contextMenuAction(
self.ListView, ':/system/system_live.png',
translate(u'CustomMediaItem',u'&Show Live'), self.onLiveClick))
self.ListView.addAction(contextMenuAction(
self.ListView, ':/system/system_add.png',
translate(u'CustomMediaItem',u'&Add to Service'), self.onAddClick))
def initialise(self): def initialise(self):
self.loadCustomListView(self.parent.custommanager.get_all_slides()) self.loadCustomListView(self.parent.custommanager.get_all_slides())
@ -127,12 +68,12 @@ class CustomMediaItem(MediaManagerItem):
custom_name.setData(QtCore.Qt.UserRole, QtCore.QVariant(CustomSlide.id)) custom_name.setData(QtCore.Qt.UserRole, QtCore.QVariant(CustomSlide.id))
self.ListView.addItem(custom_name) self.ListView.addItem(custom_name)
def onCustomNewClick(self): def onNewClick(self):
self.parent.edit_custom_form.loadCustom(0) self.parent.edit_custom_form.loadCustom(0)
self.parent.edit_custom_form.exec_() self.parent.edit_custom_form.exec_()
self.initialise() self.initialise()
def onCustomEditClick(self): def onEditClick(self):
item = self.ListView.currentItem() item = self.ListView.currentItem()
if item is not None: if item is not None:
item_id = (item.data(QtCore.Qt.UserRole)).toInt()[0] item_id = (item.data(QtCore.Qt.UserRole)).toInt()[0]
@ -140,7 +81,7 @@ class CustomMediaItem(MediaManagerItem):
self.parent.edit_custom_form.exec_() self.parent.edit_custom_form.exec_()
self.initialise() self.initialise()
def onCustomDeleteClick(self): def onDeleteClick(self):
item = self.ListView.currentItem() item = self.ListView.currentItem()
if item is not None: if item is not None:
item_id = (item.data(QtCore.Qt.UserRole)).toInt()[0] item_id = (item.data(QtCore.Qt.UserRole)).toInt()[0]

View File

@ -53,7 +53,6 @@ class ImageMediaItem(MediaManagerItem):
self.hasEditIcon = False self.hasEditIcon = False
self.OnNewPrompt = u'Select Image(s)' self.OnNewPrompt = u'Select Image(s)'
self.OnNewFileMasks = u'Images (*.jpg *jpeg *.gif *.png *.bmp)' self.OnNewFileMasks = u'Images (*.jpg *jpeg *.gif *.png *.bmp)'
self.slidecontroller = u'image'
# this next is a class, not an instance of a class - it will # this next is a class, not an instance of a class - it will
# be instanced by the base MediaManagerItem # be instanced by the base MediaManagerItem
self.ListViewWithDnD_class = ImageListView self.ListViewWithDnD_class = ImageListView

View File

@ -23,7 +23,7 @@
############################################################################### ###############################################################################
from impresscontroller import ImpressController from impresscontroller import ImpressController
from powerpointcontroller import PowerpointController #from powerpointcontroller import PowerpointController
from messagelistener import MessageListener from messagelistener import MessageListener
from mediaitem import PresentationMediaItem from mediaitem import PresentationMediaItem
from presentationtab import PresentationTab from presentationtab import PresentationTab

View File

@ -57,7 +57,8 @@ class ImpressController(object):
when required. when required.
""" """
log.debug(u'start Openoffice') log.debug(u'start Openoffice')
cmd = u'openoffice.org -nologo -norestore -minimized -headless ' + u'"' + u'-accept=socket,host=localhost,port=2002;urp;'+ u'"' # -headless
cmd = u'openoffice.org -nologo -norestore -minimized -invisible ' + u'"' + u'-accept=socket,host=localhost,port=2002;urp;'+ u'"'
self.process = QtCore.QProcess() self.process = QtCore.QProcess()
self.process.startDetached(cmd) self.process.startDetached(cmd)
self.process.waitForStarted() self.process.waitForStarted()

View File

@ -62,7 +62,7 @@ class PresentationMediaItem(MediaManagerItem):
MediaManagerItem.__init__(self, parent, icon, title) MediaManagerItem.__init__(self, parent, icon, title)
self.message_listener = MessageListener(controllers) self.message_listener = MessageListener(controllers)
def addHeaderBar(self): def addEndHeaderBar(self):
self.PresentationWidget = QtGui.QWidget(self) self.PresentationWidget = QtGui.QWidget(self)
sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum) sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum)
sizePolicy.setHorizontalStretch(0) sizePolicy.setHorizontalStretch(0)

View File

@ -21,8 +21,10 @@
# with this program; if not, write to the Free Software Foundation, Inc., 59 # # with this program; if not, write to the Free Software Foundation, Inc., 59 #
# Temple Place, Suite 330, Boston, MA 02111-1307 USA # # Temple Place, Suite 330, Boston, MA 02111-1307 USA #
############################################################################### ###############################################################################
try:
from win32com.client import Dispatch from win32com.client import Dispatch
except:
pass
# PPT API documentation: # PPT API documentation:
# http://msdn.microsoft.com/en-us/library/aa269321(office.10).aspx # http://msdn.microsoft.com/en-us/library/aa269321(office.10).aspx

View File

@ -30,7 +30,12 @@ from PyQt4 import QtCore, QtGui
from openlp.core.lib import Plugin, MediaManagerItem from openlp.core.lib import Plugin, MediaManagerItem
from openlp.plugins.presentations.lib import PresentationMediaItem, PresentationTab, \ from openlp.plugins.presentations.lib import PresentationMediaItem, PresentationTab, \
ImpressController, PowerpointController ImpressController
try:
from openlp.plugins.presentations.lib import PowerpointController
except:
pass
class PresentationPlugin(Plugin): class PresentationPlugin(Plugin):
@ -72,7 +77,7 @@ class PresentationPlugin(Plugin):
""" """
log.debug('check_pre_conditions') log.debug('check_pre_conditions')
#Lets see if Impress is required (Default is Not wanted) #Lets see if Impress is required (Default is Not wanted)
if int(self.config.get_config(u'Impress', 0)) == 2: if int(self.config.get_config(u'Impress', QtCore.Qt.Unchecked)) == QtCore.Qt.Checked:
try: try:
#Check to see if we have uno installed #Check to see if we have uno installed
import uno import uno
@ -80,8 +85,8 @@ class PresentationPlugin(Plugin):
self.registerControllers(u'Impress', openoffice) self.registerControllers(u'Impress', openoffice)
except: except:
log.error(u'Reason : %s', sys.exc_info()) log.error(u'Reason : %s', sys.exc_info())
#Lets see if Impress is required (Default is Not wanted) #Lets see if Powerpoint is required (Default is Not wanted)
if int(self.config.get_config(u'Powerpoint', 0)) == 2: if int(self.config.get_config(u'Powerpoint', QtCore.Qt.Unchecked)) == QtCore.Qt.Checked:
try: try:
#Check to see if we are Win32 #Check to see if we are Win32
from win32com.client import Dispatch from win32com.client import Dispatch
@ -89,8 +94,8 @@ class PresentationPlugin(Plugin):
self.registerControllers(u'Powerpoint', powerpoint) self.registerControllers(u'Powerpoint', powerpoint)
except: except:
log.error(u'Reason : %s', sys.exc_info()) log.error(u'Reason : %s', sys.exc_info())
#Lets see if Impress is required (Default is Not wanted) #Lets see if Powerpoint Viewer is required (Default is Not wanted)
if int(self.config.get_config(u'Powerpoint Viewer', 0)) == 2: if int(self.config.get_config(u'Powerpoint Viewer', QtCore.Qt.Unchecked)) == QtCore.Qt.Checked:
try: try:
#Check to see if we are Win32 #Check to see if we are Win32
from win32com.client import Dispatch from win32com.client import Dispatch
@ -108,5 +113,4 @@ class PresentationPlugin(Plugin):
log.debug(u'Finalise') log.debug(u'Finalise')
#Ask each controller to tidy up #Ask each controller to tidy up
for controller in self.controllers: for controller in self.controllers:
print controller
self.controllers[controller].kill() self.controllers[controller].kill()

View File

@ -42,7 +42,7 @@ class RemotesPlugin(Plugin):
""" """
log.debug('check_pre_conditions') log.debug('check_pre_conditions')
#Lets see if Remote is required #Lets see if Remote is required
if int(self.config.get_config(u'startup', 0)) == 2: if int(self.config.get_config(u'startup', 0)) == QtCore.Qt.Checked:
return True return True
else: else:
return False return False

View File

@ -14,7 +14,7 @@
<string>Edit Custom Slides</string> <string>Edit Custom Slides</string>
</property> </property>
<property name="windowIcon"> <property name="windowIcon">
<iconset resource="../images/openlp-2.qrc"> <iconset>
<normaloff>:/icon/openlp.org-icon-32.bmp</normaloff>:/icon/openlp.org-icon-32.bmp</iconset> <normaloff>:/icon/openlp.org-icon-32.bmp</normaloff>:/icon/openlp.org-icon-32.bmp</iconset>
</property> </property>
<layout class="QGridLayout" name="gridLayout"> <layout class="QGridLayout" name="gridLayout">
@ -35,12 +35,19 @@
<item row="1" column="0"> <item row="1" column="0">
<layout class="QHBoxLayout" name="horizontalLayout_4"> <layout class="QHBoxLayout" name="horizontalLayout_4">
<item> <item>
<widget class="QListWidget" name="VerseListView"/> <widget class="QListWidget" name="VerseListView">
<property name="alternatingRowColors">
<bool>true</bool>
</property>
</widget>
</item> </item>
<item> <item>
<layout class="QVBoxLayout" name="verticalLayout"> <layout class="QVBoxLayout" name="verticalLayout">
<item> <item>
<widget class="QPushButton" name="UpButton"> <widget class="QPushButton" name="UpButton">
<property name="toolTip">
<string extracomment="Move selected slide up one"/>
</property>
<property name="text"> <property name="text">
<string/> <string/>
</property> </property>
@ -65,6 +72,9 @@
</item> </item>
<item> <item>
<widget class="QPushButton" name="DownButton"> <widget class="QPushButton" name="DownButton">
<property name="toolTip">
<string extracomment="Move selected slide down one"/>
</property>
<property name="text"> <property name="text">
<string/> <string/>
</property> </property>
@ -88,33 +98,46 @@
<number>0</number> <number>0</number>
</property> </property>
<item> <item>
<widget class="QTextEdit" name="VerseTextEdit_3"/> <widget class="QTextEdit" name="VerseTextEdit"/>
</item> </item>
<item> <item>
<widget class="QWidget" name="ButtonWidge" native="true"> <widget class="QWidget" name="ButtonWidge" native="true">
<layout class="QVBoxLayout" name="ButtonLayout_3"> <layout class="QVBoxLayout" name="verticalLayout_2">
<property name="spacing">
<number>8</number>
</property>
<property name="margin">
<number>0</number>
</property>
<item> <item>
<widget class="QPushButton" name="AddButton_3"> <widget class="QPushButton" name="AddButton">
<property name="toolTip">
<string extracomment="Adds a new slide at bottom of list"/>
</property>
<property name="text"> <property name="text">
<string>Add</string> <string>Add New</string>
</property> </property>
</widget> </widget>
</item> </item>
<item> <item>
<widget class="QPushButton" name="EditButton_3"> <widget class="QPushButton" name="EditButton">
<property name="toolTip">
<string extracomment="Edit selected slide"/>
</property>
<property name="text"> <property name="text">
<string>Edit</string> <string>Edit</string>
</property> </property>
</widget> </widget>
</item> </item>
<item> <item>
<widget class="QPushButton" name="SaveButton_3"> <widget class="QPushButton" name="EditAllButton">
<property name="toolTip">
<string extracomment="Edit all slides"/>
</property>
<property name="text">
<string>Edit All</string>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="SaveButton">
<property name="toolTip">
<string extracomment="Save changed slide"/>
</property>
<property name="text"> <property name="text">
<string>Save</string> <string>Save</string>
</property> </property>
@ -122,11 +145,24 @@
</item> </item>
<item> <item>
<widget class="QPushButton" name="DeleteButton"> <widget class="QPushButton" name="DeleteButton">
<property name="toolTip">
<string extracomment="Delete selected slide"/>
</property>
<property name="text"> <property name="text">
<string>Delete</string> <string>Delete</string>
</property> </property>
</widget> </widget>
</item> </item>
<item>
<widget class="QPushButton" name="ClearButton">
<property name="toolTip">
<string extracomment="Clear selection"/>
</property>
<property name="text">
<string>Clear</string>
</property>
</widget>
</item>
<item> <item>
<spacer name="ButtonSpacer"> <spacer name="ButtonSpacer">
<property name="orientation"> <property name="orientation">
@ -156,7 +192,11 @@
</widget> </widget>
</item> </item>
<item> <item>
<widget class="QComboBox" name="ThemecomboBox"/> <widget class="QComboBox" name="ThemeComboBox">
<property name="toolTip">
<string extracomment="Select custom theme for slide"/>
</property>
</widget>
</item> </item>
</layout> </layout>
</item> </item>
@ -185,13 +225,17 @@
</widget> </widget>
<tabstops> <tabstops>
<tabstop>TitleEdit</tabstop> <tabstop>TitleEdit</tabstop>
<tabstop>VerseTextEdit_3</tabstop> <tabstop>VerseTextEdit</tabstop>
<tabstop>EditButton_3</tabstop> <tabstop>AddButton</tabstop>
<tabstop>SaveButton_3</tabstop>
<tabstop>CreditEdit</tabstop>
<tabstop>VerseListView</tabstop> <tabstop>VerseListView</tabstop>
<tabstop>AddButton_3</tabstop> <tabstop>EditButton</tabstop>
<tabstop>EditAllButton</tabstop>
<tabstop>SaveButton</tabstop>
<tabstop>DeleteButton</tabstop> <tabstop>DeleteButton</tabstop>
<tabstop>CreditEdit</tabstop>
<tabstop>UpButton</tabstop>
<tabstop>DownButton</tabstop>
<tabstop>ThemeComboBox</tabstop>
<tabstop>buttonBox</tabstop> <tabstop>buttonBox</tabstop>
</tabstops> </tabstops>
<resources> <resources>