forked from openlp/openlp
End of Operation Cleanup for now
Fix more bugs Start to sort out Service Item
This commit is contained in:
parent
4c76ffdbaa
commit
8acc980ce4
@ -43,6 +43,19 @@ def buildIcon(icon):
|
|||||||
QtGui.QIcon.Normal, QtGui.QIcon.Off)
|
QtGui.QIcon.Normal, QtGui.QIcon.Off)
|
||||||
return ButtonIcon
|
return ButtonIcon
|
||||||
|
|
||||||
|
def contextMenuAction(base, icon, text, slot):
|
||||||
|
"""
|
||||||
|
Utility method to help build context menus for plugins
|
||||||
|
"""
|
||||||
|
action = QtGui.QAction(text, base)
|
||||||
|
action .setIcon(buildIcon(icon))
|
||||||
|
QtCore.QObject.connect(action, QtCore.SIGNAL("triggered()"), slot)
|
||||||
|
return action
|
||||||
|
|
||||||
|
def contextMenuSeparator(base):
|
||||||
|
action = QtGui.QAction("", base)
|
||||||
|
action.setSeparator(True)
|
||||||
|
return action
|
||||||
|
|
||||||
from pluginconfig import PluginConfig
|
from pluginconfig import PluginConfig
|
||||||
from plugin import Plugin
|
from plugin import Plugin
|
||||||
@ -66,7 +79,7 @@ from rendermanager import RenderManager
|
|||||||
# 'XmlRootClass', 'ServiceItem', 'Receiver', 'OpenLPToolbar', 'SongXMLBuilder',
|
# 'XmlRootClass', 'ServiceItem', 'Receiver', 'OpenLPToolbar', 'SongXMLBuilder',
|
||||||
# 'SongXMLParser', 'EventManager', 'ThemeXML', 'RenderManager']
|
# 'SongXMLParser', 'EventManager', 'ThemeXML', 'RenderManager']
|
||||||
|
|
||||||
__all__ = [ 'translate', 'file_to_xml', 'str_to_bool']
|
__all__ = [ 'translate', 'file_to_xml', 'str_to_bool', 'contextMenuAction', 'contextMenuSeparator']
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -120,7 +120,7 @@ class RenderManager:
|
|||||||
|
|
||||||
def generate_preview(self, themedata):
|
def generate_preview(self, themedata):
|
||||||
log.debug(u'generate preview')
|
log.debug(u'generate preview')
|
||||||
self.calculate_default(QtCore.QSize(800, 600))
|
self.calculate_default(QtCore.QSize(1024, 768))
|
||||||
self.renderer.set_theme(themedata)
|
self.renderer.set_theme(themedata)
|
||||||
self.build_text_rectangle(themedata)
|
self.build_text_rectangle(themedata)
|
||||||
|
|
||||||
|
@ -42,6 +42,8 @@ class ServiceItem():
|
|||||||
self.items = []
|
self.items = []
|
||||||
self.iconic_representation = None
|
self.iconic_representation = None
|
||||||
self.raw_slides = None
|
self.raw_slides = None
|
||||||
|
self.frame_titles = []
|
||||||
|
self.command_files = []
|
||||||
self.frames = []
|
self.frames = []
|
||||||
self.raw_footer = None
|
self.raw_footer = None
|
||||||
self.theme = None
|
self.theme = None
|
||||||
@ -60,11 +62,14 @@ class ServiceItem():
|
|||||||
else:
|
else:
|
||||||
self.render_manager.set_override_theme(self.theme)
|
self.render_manager.set_override_theme(self.theme)
|
||||||
log.debug(u'Formatting slides')
|
log.debug(u'Formatting slides')
|
||||||
if len(self.frames) == 0 :
|
if len(self.frames) == 0 and len(self.raw_slides) > 0 :
|
||||||
for slide in self.raw_slides:
|
for slide in self.raw_slides:
|
||||||
formated = self.render_manager.format_slide(slide, False)
|
formated = self.render_manager.format_slide(slide, False)
|
||||||
frame = self.render_manager.generate_slide(formated, self.raw_footer)
|
frame = self.render_manager.generate_slide(formated, self.raw_footer)
|
||||||
self.frames.append({u'formatted': formated, u'image': frame})
|
self.frames.append({u'title': formated, u'image': frame})
|
||||||
|
else:
|
||||||
|
if len(self.command_files) > 0:
|
||||||
|
pass
|
||||||
|
|
||||||
|
|
||||||
def get_parent_node(self):
|
def get_parent_node(self):
|
||||||
|
@ -29,116 +29,117 @@ class AboutForm(QtGui.QDialog):
|
|||||||
self.setupUi(self)
|
self.setupUi(self)
|
||||||
|
|
||||||
def setupUi(self, AboutForm):
|
def setupUi(self, AboutForm):
|
||||||
AboutForm.setObjectName("AboutForm")
|
AboutForm.setObjectName(u'AboutForm')
|
||||||
AboutForm.resize(470, 481)
|
AboutForm.resize(470, 481)
|
||||||
icon = QtGui.QIcon()
|
icon = QtGui.QIcon()
|
||||||
icon.addPixmap(QtGui.QPixmap(":/icon/openlp-logo-16x16.png"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
|
icon.addPixmap(QtGui.QPixmap(u':/icon/openlp-logo-16x16.png'), QtGui.QIcon.Normal, QtGui.QIcon.Off)
|
||||||
AboutForm.setWindowIcon(icon)
|
AboutForm.setWindowIcon(icon)
|
||||||
AboutFormLayout = QtGui.QVBoxLayout(AboutForm)
|
AboutFormLayout = QtGui.QVBoxLayout(AboutForm)
|
||||||
AboutFormLayout.setSpacing(8)
|
AboutFormLayout.setSpacing(8)
|
||||||
AboutFormLayout.setMargin(8)
|
AboutFormLayout.setMargin(8)
|
||||||
AboutFormLayout.setObjectName("AboutDialogLayout")
|
AboutFormLayout.setObjectName(u'AboutDialogLayout')
|
||||||
self.Logo = QtGui.QLabel(AboutForm)
|
self.Logo = QtGui.QLabel(AboutForm)
|
||||||
self.Logo.setAutoFillBackground(False)
|
self.Logo.setAutoFillBackground(False)
|
||||||
self.Logo.setStyleSheet("background-color: rgb(255, 255, 255);")
|
self.Logo.setStyleSheet(u'background-color: rgb(255, 255, 255);')
|
||||||
self.Logo.setFrameShape(QtGui.QFrame.StyledPanel)
|
self.Logo.setFrameShape(QtGui.QFrame.StyledPanel)
|
||||||
self.Logo.setLineWidth(1)
|
self.Logo.setLineWidth(1)
|
||||||
self.Logo.setPixmap(QtGui.QPixmap(":/graphics/openlp-about-logo.png"))
|
self.Logo.setPixmap(QtGui.QPixmap(u':/graphics/openlp-about-logo.png'))
|
||||||
self.Logo.setScaledContents(False)
|
self.Logo.setScaledContents(False)
|
||||||
self.Logo.setAlignment(QtCore.Qt.AlignLeading|QtCore.Qt.AlignLeft|QtCore.Qt.AlignVCenter)
|
self.Logo.setAlignment(QtCore.Qt.AlignLeading|QtCore.Qt.AlignLeft|QtCore.Qt.AlignVCenter)
|
||||||
self.Logo.setObjectName("Logo")
|
self.Logo.setObjectName(u'Logo')
|
||||||
AboutFormLayout.addWidget(self.Logo)
|
AboutFormLayout.addWidget(self.Logo)
|
||||||
self.AboutNotebook = QtGui.QTabWidget(AboutForm)
|
self.AboutNotebook = QtGui.QTabWidget(AboutForm)
|
||||||
self.AboutNotebook.setObjectName("AboutNotebook")
|
self.AboutNotebook.setObjectName(u'AboutNotebook')
|
||||||
self.LicenseTab = QtGui.QWidget()
|
self.LicenseTab = QtGui.QWidget()
|
||||||
self.LicenseTab.setObjectName("LicenseTab")
|
self.LicenseTab.setObjectName(u'LicenseTab')
|
||||||
self.LicenseTabLayout = QtGui.QVBoxLayout(self.LicenseTab)
|
self.LicenseTabLayout = QtGui.QVBoxLayout(self.LicenseTab)
|
||||||
self.LicenseTabLayout.setSpacing(8)
|
self.LicenseTabLayout.setSpacing(8)
|
||||||
self.LicenseTabLayout.setMargin(8)
|
self.LicenseTabLayout.setMargin(8)
|
||||||
self.LicenseTabLayout.setObjectName("LicenseTabLayout")
|
self.LicenseTabLayout.setObjectName(u'LicenseTabLayout')
|
||||||
self.CopyrightLabel = QtGui.QLabel(self.LicenseTab)
|
self.CopyrightLabel = QtGui.QLabel(self.LicenseTab)
|
||||||
self.CopyrightLabel.setObjectName("CopyrightLabel")
|
self.CopyrightLabel.setObjectName(u'CopyrightLabel')
|
||||||
self.LicenseTabLayout.addWidget(self.CopyrightLabel)
|
self.LicenseTabLayout.addWidget(self.CopyrightLabel)
|
||||||
self.AboutAuthors = QtGui.QLabel(self.LicenseTab)
|
self.AboutAuthors = QtGui.QLabel(self.LicenseTab)
|
||||||
self.AboutAuthors.setAlignment(QtCore.Qt.AlignJustify|QtCore.Qt.AlignVCenter)
|
self.AboutAuthors.setAlignment(QtCore.Qt.AlignJustify|QtCore.Qt.AlignVCenter)
|
||||||
self.AboutAuthors.setWordWrap(True)
|
self.AboutAuthors.setWordWrap(True)
|
||||||
self.AboutAuthors.setObjectName("AboutAuthors")
|
self.AboutAuthors.setObjectName(u'AboutAuthors')
|
||||||
self.LicenseTabLayout.addWidget(self.AboutAuthors)
|
self.LicenseTabLayout.addWidget(self.AboutAuthors)
|
||||||
self.License1Label = QtGui.QLabel(self.LicenseTab)
|
self.License1Label = QtGui.QLabel(self.LicenseTab)
|
||||||
self.License1Label.setAlignment(QtCore.Qt.AlignJustify|QtCore.Qt.AlignVCenter)
|
self.License1Label.setAlignment(QtCore.Qt.AlignJustify|QtCore.Qt.AlignVCenter)
|
||||||
self.License1Label.setWordWrap(True)
|
self.License1Label.setWordWrap(True)
|
||||||
self.License1Label.setObjectName("License1Label")
|
self.License1Label.setObjectName(u'License1Label')
|
||||||
self.LicenseTabLayout.addWidget(self.License1Label)
|
self.LicenseTabLayout.addWidget(self.License1Label)
|
||||||
self.License2Label = QtGui.QLabel(self.LicenseTab)
|
self.License2Label = QtGui.QLabel(self.LicenseTab)
|
||||||
self.License2Label.setAlignment(QtCore.Qt.AlignJustify|QtCore.Qt.AlignVCenter)
|
self.License2Label.setAlignment(QtCore.Qt.AlignJustify|QtCore.Qt.AlignVCenter)
|
||||||
self.License2Label.setWordWrap(True)
|
self.License2Label.setWordWrap(True)
|
||||||
self.License2Label.setObjectName("License2Label")
|
self.License2Label.setObjectName(u'License2Label')
|
||||||
self.LicenseTabLayout.addWidget(self.License2Label)
|
self.LicenseTabLayout.addWidget(self.License2Label)
|
||||||
self.License3Label = QtGui.QLabel(self.LicenseTab)
|
self.License3Label = QtGui.QLabel(self.LicenseTab)
|
||||||
self.License3Label.setAlignment(QtCore.Qt.AlignJustify|QtCore.Qt.AlignVCenter)
|
self.License3Label.setAlignment(QtCore.Qt.AlignJustify|QtCore.Qt.AlignVCenter)
|
||||||
self.License3Label.setWordWrap(True)
|
self.License3Label.setWordWrap(True)
|
||||||
self.License3Label.setObjectName("License3Label")
|
self.License3Label.setObjectName(u'License3Label')
|
||||||
self.LicenseTabLayout.addWidget(self.License3Label)
|
self.LicenseTabLayout.addWidget(self.License3Label)
|
||||||
self.AboutNotebook.addTab(self.LicenseTab, "License")
|
self.AboutNotebook.addTab(self.LicenseTab, u'License')
|
||||||
self.CreditsTab = QtGui.QWidget()
|
self.CreditsTab = QtGui.QWidget()
|
||||||
self.CreditsTab.setObjectName("CreditsTab")
|
self.CreditsTab.setObjectName(u'CreditsTab')
|
||||||
self.CreditsTabLayout = QtGui.QVBoxLayout(self.CreditsTab)
|
self.CreditsTabLayout = QtGui.QVBoxLayout(self.CreditsTab)
|
||||||
self.CreditsTabLayout.setSpacing(0) #
|
self.CreditsTabLayout.setSpacing(0) #
|
||||||
self.CreditsTabLayout.setMargin(8) #
|
self.CreditsTabLayout.setMargin(8) #
|
||||||
self.CreditsTabLayout.setObjectName("CreditsTabLayout")
|
self.CreditsTabLayout.setObjectName(u'CreditsTabLayout')
|
||||||
self.CreditsTextEdit = QtGui.QTextEdit(self.CreditsTab)
|
self.CreditsTextEdit = QtGui.QTextEdit(self.CreditsTab)
|
||||||
self.CreditsTextEdit.setReadOnly(True)
|
self.CreditsTextEdit.setReadOnly(True)
|
||||||
self.CreditsTextEdit.setObjectName("CreditsTextEdit")
|
self.CreditsTextEdit.setObjectName(u'CreditsTextEdit')
|
||||||
self.CreditsTabLayout.addWidget(self.CreditsTextEdit)
|
self.CreditsTabLayout.addWidget(self.CreditsTextEdit)
|
||||||
self.AboutNotebook.addTab(self.CreditsTab, "Credits")
|
self.AboutNotebook.addTab(self.CreditsTab, u'Credits')
|
||||||
AboutFormLayout.addWidget(self.AboutNotebook)
|
AboutFormLayout.addWidget(self.AboutNotebook)
|
||||||
self.ButtonWidget = QtGui.QWidget(AboutForm)
|
self.ButtonWidget = QtGui.QWidget(AboutForm)
|
||||||
self.ButtonWidget.setObjectName("ButtonWidget")
|
self.ButtonWidget.setObjectName(u'ButtonWidget')
|
||||||
self.ButtonWidgetLayout = QtGui.QHBoxLayout(self.ButtonWidget)
|
self.ButtonWidgetLayout = QtGui.QHBoxLayout(self.ButtonWidget)
|
||||||
self.ButtonWidgetLayout.setSpacing(8)
|
self.ButtonWidgetLayout.setSpacing(8)
|
||||||
self.ButtonWidgetLayout.setMargin(0)
|
self.ButtonWidgetLayout.setMargin(0)
|
||||||
self.ButtonWidgetLayout.setObjectName("ButtonWidgetLayout")
|
self.ButtonWidgetLayout.setObjectName(u'ButtonWidgetLayout')
|
||||||
spacerItem = QtGui.QSpacerItem(275, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum)
|
spacerItem = QtGui.QSpacerItem(275, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum)
|
||||||
self.ButtonWidgetLayout.addItem(spacerItem)
|
self.ButtonWidgetLayout.addItem(spacerItem)
|
||||||
self.ContributeButton = QtGui.QPushButton(self.ButtonWidget)
|
self.ContributeButton = QtGui.QPushButton(self.ButtonWidget)
|
||||||
self.ContributeButton.setObjectName("ContributeButton")
|
self.ContributeButton.setObjectName(u'ContributeButton')
|
||||||
self.ButtonWidgetLayout.addWidget(self.ContributeButton)
|
self.ButtonWidgetLayout.addWidget(self.ContributeButton)
|
||||||
self.CloseButton = QtGui.QPushButton(self.ButtonWidget)
|
self.CloseButton = QtGui.QPushButton(self.ButtonWidget)
|
||||||
self.CloseButton.setObjectName("CloseButton")
|
self.CloseButton.setObjectName(u'CloseButton')
|
||||||
self.ButtonWidgetLayout.addWidget(self.CloseButton)
|
self.ButtonWidgetLayout.addWidget(self.CloseButton)
|
||||||
AboutFormLayout.addWidget(self.ButtonWidget)
|
AboutFormLayout.addWidget(self.ButtonWidget)
|
||||||
self.extContributeItem = QtGui.QAction(AboutForm)
|
self.extContributeItem = QtGui.QAction(AboutForm)
|
||||||
self.extContributeItem.setObjectName("extContributeItem")
|
self.extContributeItem.setObjectName(u'extContributeItem')
|
||||||
|
|
||||||
self.retranslateUi(AboutForm)
|
self.retranslateUi(AboutForm)
|
||||||
self.AboutNotebook.setCurrentIndex(0)
|
self.AboutNotebook.setCurrentIndex(0)
|
||||||
QtCore.QObject.connect(self.CloseButton, QtCore.SIGNAL("clicked()"), AboutForm.close)
|
QtCore.QObject.connect(self.CloseButton, QtCore.SIGNAL(u'clicked()'), AboutForm.close)
|
||||||
QtCore.QMetaObject.connectSlotsByName(AboutForm)
|
QtCore.QMetaObject.connectSlotsByName(AboutForm)
|
||||||
|
|
||||||
QtCore.QObject.connect(self.ContributeButton, QtCore.SIGNAL("clicked()"), self.onContributeButtonClicked)
|
QtCore.QObject.connect(self.ContributeButton, QtCore.SIGNAL(u'clicked()'), self.onContributeButtonClicked)
|
||||||
|
|
||||||
def retranslateUi(self, AboutForm):
|
def retranslateUi(self, AboutForm):
|
||||||
AboutForm.setWindowTitle(translate("AboutDialog", "About openlp.org",))
|
AboutForm.setWindowTitle(translate(u'AboutDialog', u'About openlp.org',))
|
||||||
self.CopyrightLabel.setText(translate("AboutDialog", "Copyright © 2004-2009 openlp.org Foundation"))
|
self.CopyrightLabel.setText(translate(u'AboutDialog', u'Copyright © 2004-2009 openlp.org Foundation'))
|
||||||
self.AboutAuthors.setText(translate("AboutDialog", "openlp.org is written and maintained by volunteers. If you would like to see more free Christian software being written, please consider contributing by using the button below."))
|
self.AboutAuthors.setText(translate(u'AboutDialog', u'openlp.org is written and maintained by volunteers. If you would like to see more free Christian software being written, please consider contributing by using the button below.'))
|
||||||
self.License1Label.setText(translate("AboutDialog", "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; either version 2 of the License, or (at your option) any later version."))
|
self.License1Label.setText(translate(u'AboutDialog', u'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; either version 2 of the License, or (at your option) any later version.'))
|
||||||
self.License2Label.setText(translate("AboutDialog", "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."))
|
self.License2Label.setText(translate(u'AboutDialog', u'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.'))
|
||||||
self.License3Label.setText(translate("AboutDialog", "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."))
|
self.License3Label.setText(translate(u'AboutDialog', u'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.'))
|
||||||
self.AboutNotebook.setTabText(self.AboutNotebook.indexOf(self.LicenseTab), translate("AboutDialog", "License"))
|
self.AboutNotebook.setTabText(self.AboutNotebook.indexOf(self.LicenseTab), translate(u'AboutDialog', u'License'))
|
||||||
self.CreditsTextEdit.setPlainText(translate("AboutDialog", "Project Lead\n"
|
self.CreditsTextEdit.setPlainText(translate(u'AboutDialog',
|
||||||
" Raoul \"superfly\" Snyman\n"
|
u'Project Lead\n'
|
||||||
"\n"
|
u' Raoul \"superfly\" Snyman\n'
|
||||||
"Developers\n"
|
u'\n'
|
||||||
" Tim \"TRB143\" Bentley\n"
|
u'Developers\n'
|
||||||
" Jonathan \"gushie\" Corwin\n"
|
u' Tim \"TRB143\" Bentley\n'
|
||||||
" Scott \"sguerrieri\" Guerrieri\n"
|
u' Jonathan \"gushie\" Corwin\n'
|
||||||
" Raoul \"superfly\" Snyman\n"
|
u' Scott \"sguerrieri\" Guerrieri\n'
|
||||||
" Martin \"mijiti\" Thompson\n"
|
u' Raoul \"superfly\" Snyman\n'
|
||||||
" Carsten \"catini\" Tingaard"))
|
u' Martin \"mijiti\" Thompson\n'
|
||||||
self.AboutNotebook.setTabText(self.AboutNotebook.indexOf(self.CreditsTab), translate("AboutDialog", "Credits"))
|
u' Carsten \"catini\" Tingaard'))
|
||||||
self.ContributeButton.setText(translate("AboutDialog", "Contribute"))
|
self.AboutNotebook.setTabText(self.AboutNotebook.indexOf(self.CreditsTab), translate(u'AboutDialog', u'Credits'))
|
||||||
self.CloseButton.setText(translate("AboutDialog", "Close"))
|
self.ContributeButton.setText(translate(u'AboutDialog', u'Contribute'))
|
||||||
self.extContributeItem.setText(translate("AboutDialog", "&Contribute"))
|
self.CloseButton.setText(translate(u'AboutDialog', u'Close'))
|
||||||
|
self.extContributeItem.setText(translate(u'AboutDialog', u'&Contribute'))
|
||||||
|
|
||||||
def onContributeButtonClicked(self):
|
def onContributeButtonClicked(self):
|
||||||
import webbrowser
|
import webbrowser
|
||||||
|
@ -456,7 +456,7 @@ class Ui_AmendThemeDialog(object):
|
|||||||
self.ThemePreviewLayout.setSpacing(8)
|
self.ThemePreviewLayout.setSpacing(8)
|
||||||
self.ThemePreviewLayout.setMargin(8)
|
self.ThemePreviewLayout.setMargin(8)
|
||||||
self.ThemePreviewLayout.setObjectName("ThemePreviewLayout")
|
self.ThemePreviewLayout.setObjectName("ThemePreviewLayout")
|
||||||
spacerItem7 = QtGui.QSpacerItem(40, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum)
|
spacerItem7 = QtGui.QSpacerItem(40, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Expanding)
|
||||||
self.ThemePreviewLayout.addItem(spacerItem7)
|
self.ThemePreviewLayout.addItem(spacerItem7)
|
||||||
self.ThemePreview = QtGui.QLabel(self.PreviewGroupBox)
|
self.ThemePreview = QtGui.QLabel(self.PreviewGroupBox)
|
||||||
sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Fixed, QtGui.QSizePolicy.Fixed)
|
sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Fixed, QtGui.QSizePolicy.Fixed)
|
||||||
@ -464,14 +464,14 @@ class Ui_AmendThemeDialog(object):
|
|||||||
sizePolicy.setVerticalStretch(0)
|
sizePolicy.setVerticalStretch(0)
|
||||||
sizePolicy.setHeightForWidth(self.ThemePreview.sizePolicy().hasHeightForWidth())
|
sizePolicy.setHeightForWidth(self.ThemePreview.sizePolicy().hasHeightForWidth())
|
||||||
self.ThemePreview.setSizePolicy(sizePolicy)
|
self.ThemePreview.setSizePolicy(sizePolicy)
|
||||||
self.ThemePreview.setMinimumSize(QtCore.QSize(300, 225))
|
self.ThemePreview.setMaximumSize(QtCore.QSize(300, 225))
|
||||||
self.ThemePreview.setFrameShape(QtGui.QFrame.WinPanel)
|
self.ThemePreview.setFrameShape(QtGui.QFrame.WinPanel)
|
||||||
self.ThemePreview.setFrameShadow(QtGui.QFrame.Sunken)
|
self.ThemePreview.setFrameShadow(QtGui.QFrame.Sunken)
|
||||||
self.ThemePreview.setLineWidth(1)
|
self.ThemePreview.setLineWidth(1)
|
||||||
self.ThemePreview.setScaledContents(True)
|
self.ThemePreview.setScaledContents(True)
|
||||||
self.ThemePreview.setObjectName("ThemePreview")
|
self.ThemePreview.setObjectName("ThemePreview")
|
||||||
self.ThemePreviewLayout.addWidget(self.ThemePreview)
|
self.ThemePreviewLayout.addWidget(self.ThemePreview)
|
||||||
spacerItem8 = QtGui.QSpacerItem(40, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum)
|
spacerItem8 = QtGui.QSpacerItem(40, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Expanding)
|
||||||
self.ThemePreviewLayout.addItem(spacerItem8)
|
self.ThemePreviewLayout.addItem(spacerItem8)
|
||||||
self.AmendThemeLayout.addWidget(self.PreviewGroupBox)
|
self.AmendThemeLayout.addWidget(self.PreviewGroupBox)
|
||||||
self.ThemeButtonBox = QtGui.QDialogButtonBox(AmendThemeDialog)
|
self.ThemeButtonBox = QtGui.QDialogButtonBox(AmendThemeDialog)
|
||||||
|
@ -21,7 +21,7 @@ import os
|
|||||||
import logging
|
import logging
|
||||||
|
|
||||||
from PyQt4 import QtCore, QtGui
|
from PyQt4 import QtCore, QtGui
|
||||||
from openlp.core.lib import PluginConfig, OpenLPToolbar, ServiceItem, RenderManager, Event, EventType, EventManager, translate, buildIcon
|
from openlp.core.lib import PluginConfig, OpenLPToolbar, ServiceItem, RenderManager, Event, EventType, EventManager, translate, buildIcon, contextMenuAction, contextMenuSeparator
|
||||||
|
|
||||||
class ServiceManager(QtGui.QWidget):
|
class ServiceManager(QtGui.QWidget):
|
||||||
|
|
||||||
@ -32,12 +32,12 @@ class ServiceManager(QtGui.QWidget):
|
|||||||
Also handles the UI tasks of moving things up and down etc.
|
Also handles the UI tasks of moving things up and down etc.
|
||||||
"""
|
"""
|
||||||
global log
|
global log
|
||||||
log=logging.getLogger(u'ServiceManager')
|
log = logging.getLogger(u'ServiceManager')
|
||||||
|
|
||||||
def __init__(self, parent):
|
def __init__(self, parent):
|
||||||
QtGui.QWidget.__init__(self)
|
QtGui.QWidget.__init__(self)
|
||||||
self.parent=parent
|
self.parent = parent
|
||||||
self.serviceItems=[]
|
self.serviceItems = []
|
||||||
self.Layout = QtGui.QVBoxLayout(self)
|
self.Layout = QtGui.QVBoxLayout(self)
|
||||||
self.Layout.setSpacing(0)
|
self.Layout.setSpacing(0)
|
||||||
self.Layout.setMargin(0)
|
self.Layout.setMargin(0)
|
||||||
@ -51,15 +51,15 @@ class ServiceManager(QtGui.QWidget):
|
|||||||
self.Toolbar.addToolbarButton(u'Move to bottom', u':/services/service_bottom.png',
|
self.Toolbar.addToolbarButton(u'Move to bottom', u':/services/service_bottom.png',
|
||||||
translate(u'ServiceManager', u'Move to end'), self.onServiceEnd)
|
translate(u'ServiceManager', u'Move to end'), self.onServiceEnd)
|
||||||
self.Toolbar.addSeparator()
|
self.Toolbar.addSeparator()
|
||||||
self.Toolbar.addToolbarButton(u'New Service', u':/services/service_new.png',
|
|
||||||
translate(u'ServiceManager', u'Create a new Service'), self.onNewService)
|
|
||||||
self.Toolbar.addToolbarButton(u'Delete From Service', u':/services/service_delete.png',
|
self.Toolbar.addToolbarButton(u'Delete From Service', u':/services/service_delete.png',
|
||||||
translate(u'ServiceManager', u'Delete From Service'), self.onDeleteFromService)
|
translate(u'ServiceManager', u'Delete From Service'), self.onDeleteFromService)
|
||||||
|
self.Toolbar.addToolbarButton(u'New Service', u':/services/service_new.png',
|
||||||
|
translate(u'ServiceManager', u'Create a new Service'), self.onNewService)
|
||||||
|
self.Toolbar.addToolbarButton(u'Open Service', u':/services/service_open.png',
|
||||||
|
translate(u'ServiceManager', u'Load Existing'), self.onLoadService)
|
||||||
self.Toolbar.addSeparator()
|
self.Toolbar.addSeparator()
|
||||||
self.Toolbar.addToolbarButton(u'Save Service', u':/services/service_save.png',
|
self.Toolbar.addToolbarButton(u'Save Service', u':/services/service_save.png',
|
||||||
translate(u'ServiceManager', u'Save Service'), self.onSaveService)
|
translate(u'ServiceManager', u'Save Service'), self.onSaveService)
|
||||||
self.Toolbar.addToolbarButton(u'Load Service', u':/services/service_open.png',
|
|
||||||
translate(u'ServiceManager', u'Load Existing'), self.onLoadService)
|
|
||||||
|
|
||||||
self.Toolbar.addSeparator()
|
self.Toolbar.addSeparator()
|
||||||
self.ThemeComboBox = QtGui.QComboBox(self.Toolbar)
|
self.ThemeComboBox = QtGui.QComboBox(self.Toolbar)
|
||||||
@ -81,14 +81,14 @@ class ServiceManager(QtGui.QWidget):
|
|||||||
|
|
||||||
self.ServiceManagerList.setContextMenuPolicy(QtCore.Qt.ActionsContextMenu)
|
self.ServiceManagerList.setContextMenuPolicy(QtCore.Qt.ActionsContextMenu)
|
||||||
|
|
||||||
self.ServiceManagerList.addAction(self.contextMenuAction(
|
self.ServiceManagerList.addAction(contextMenuAction(
|
||||||
self.ServiceManagerList, ':/system/system_preview.png',
|
self.ServiceManagerList, ':/system/system_preview.png',
|
||||||
translate(u'ServiceManager',u'&Preview Verse'), self.makePreview))
|
translate(u'ServiceManager',u'&Preview Verse'), self.makePreview))
|
||||||
self.ServiceManagerList.addAction(self.contextMenuAction(
|
self.ServiceManagerList.addAction(contextMenuAction(
|
||||||
self.ServiceManagerList, ':/system/system_live.png',
|
self.ServiceManagerList, ':/system/system_live.png',
|
||||||
translate(u'ServiceManager',u'&Show Live'), self.makeLive))
|
translate(u'ServiceManager',u'&Show Live'), self.makeLive))
|
||||||
self.ServiceManagerList.addAction(self.contextMenuSeparator(self.ServiceManagerList))
|
self.ServiceManagerList.addAction(contextMenuSeparator(self.ServiceManagerList))
|
||||||
self.ServiceManagerList.addAction(self.contextMenuAction(
|
self.ServiceManagerList.addAction(contextMenuAction(
|
||||||
self.ServiceManagerList, ':/services/service_delete',
|
self.ServiceManagerList, ':/services/service_delete',
|
||||||
translate(u'ServiceManager',u'&Remove from Service'), self.onDeleteFromService))
|
translate(u'ServiceManager',u'&Remove from Service'), self.onDeleteFromService))
|
||||||
|
|
||||||
@ -100,20 +100,6 @@ class ServiceManager(QtGui.QWidget):
|
|||||||
self.config = PluginConfig(u'Main')
|
self.config = PluginConfig(u'Main')
|
||||||
self.service_theme = self.config.get_config(u'theme service theme', u'')
|
self.service_theme = self.config.get_config(u'theme service theme', u'')
|
||||||
|
|
||||||
def contextMenuAction(self, base, icon, text, slot):
|
|
||||||
"""
|
|
||||||
Utility method to help build context menus for plugins
|
|
||||||
"""
|
|
||||||
action = QtGui.QAction(text, base)
|
|
||||||
action .setIcon(buildIcon(icon))
|
|
||||||
QtCore.QObject.connect(action, QtCore.SIGNAL("triggered()"), slot)
|
|
||||||
return action
|
|
||||||
|
|
||||||
def contextMenuSeparator(self, base):
|
|
||||||
action = QtGui.QAction("", base)
|
|
||||||
action.setSeparator(True)
|
|
||||||
return action
|
|
||||||
|
|
||||||
def onServiceTop(self):
|
def onServiceTop(self):
|
||||||
pass
|
pass
|
||||||
|
|
||||||
@ -154,7 +140,7 @@ class ServiceManager(QtGui.QWidget):
|
|||||||
count = 0
|
count = 0
|
||||||
for frame in item.frames:
|
for frame in item.frames:
|
||||||
treewidgetitem1 = QtGui.QTreeWidgetItem(treewidgetitem)
|
treewidgetitem1 = QtGui.QTreeWidgetItem(treewidgetitem)
|
||||||
text = frame[u'formatted'][0]
|
text = frame[u'title'][0]
|
||||||
treewidgetitem1.setText(0,text[:30])
|
treewidgetitem1.setText(0,text[:30])
|
||||||
treewidgetitem1.setData(0, QtCore.Qt.UserRole,QtCore.QVariant(count))
|
treewidgetitem1.setData(0, QtCore.Qt.UserRole,QtCore.QVariant(count))
|
||||||
count = count + 1
|
count = count + 1
|
||||||
@ -193,7 +179,7 @@ class ServiceManager(QtGui.QWidget):
|
|||||||
Handle the release of the event and trigger the plugin
|
Handle the release of the event and trigger the plugin
|
||||||
to add the data
|
to add the data
|
||||||
"""
|
"""
|
||||||
link=event.mimeData()
|
link = event.mimeData()
|
||||||
if link.hasText():
|
if link.hasText():
|
||||||
plugin = event.mimeData().text()
|
plugin = event.mimeData().text()
|
||||||
self.EventManager.post_event(Event(EventType.LoadServiceItem, plugin))
|
self.EventManager.post_event(Event(EventType.LoadServiceItem, plugin))
|
||||||
@ -227,8 +213,9 @@ class ServiceManager(QtGui.QWidget):
|
|||||||
for theme in theme_list:
|
for theme in theme_list:
|
||||||
self.ThemeComboBox.addItem(theme)
|
self.ThemeComboBox.addItem(theme)
|
||||||
id = self.ThemeComboBox.findText(str(self.service_theme), QtCore.Qt.MatchExactly)
|
id = self.ThemeComboBox.findText(str(self.service_theme), QtCore.Qt.MatchExactly)
|
||||||
|
# Not Found
|
||||||
if id == -1:
|
if id == -1:
|
||||||
id = 0 # Not Found
|
id = 0
|
||||||
self.service_theme = u''
|
self.service_theme = u''
|
||||||
self.ThemeComboBox.setCurrentIndex(id)
|
self.ThemeComboBox.setCurrentIndex(id)
|
||||||
self.RenderManager.set_service_theme(self.service_theme)
|
self.RenderManager.set_service_theme(self.service_theme)
|
||||||
|
@ -17,8 +17,8 @@ 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
|
this program; if not, write to the Free Software Foundation, Inc., 59 Temple
|
||||||
Place, Suite 330, Boston, MA 02111-1307 USA
|
Place, Suite 330, Boston, MA 02111-1307 USA
|
||||||
"""
|
"""
|
||||||
from PyQt4 import QtCore, QtGui
|
|
||||||
import logging
|
import logging
|
||||||
|
from PyQt4 import QtCore, QtGui
|
||||||
from openlp.core.lib import ServiceItem
|
from openlp.core.lib import ServiceItem
|
||||||
from listwithpreviews import ListWithPreviews
|
from listwithpreviews import ListWithPreviews
|
||||||
|
|
||||||
|
@ -1,51 +1,74 @@
|
|||||||
|
# -*- coding: utf-8 -*-
|
||||||
|
# vim: autoindent shiftwidth=4 expandtab textwidth=80 tabstop=4 softtabstop=4
|
||||||
|
"""
|
||||||
|
OpenLP - Open Source Lyrics Projection
|
||||||
|
Copyright (c) 2008 Raoul Snyman
|
||||||
|
Portions copyright (c) 2008-2009 Martin Thompson, Tim Bentley
|
||||||
|
|
||||||
|
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
|
||||||
|
"""
|
||||||
import os
|
import os
|
||||||
import logging
|
import logging
|
||||||
from PyQt4.QtCore import *
|
from PyQt4 import QtCore, QtGui
|
||||||
from PyQt4.QtGui import *
|
|
||||||
class ListWithPreviews(QAbstractListModel):
|
|
||||||
|
class ListWithPreviews(QtCore.QAbstractListModel):
|
||||||
"""
|
"""
|
||||||
An abstract list of strings and the preview icon to go with them
|
An abstract list of strings and the preview icon to go with them
|
||||||
"""
|
"""
|
||||||
global log
|
global log
|
||||||
log=logging.getLogger("ListWithPreviews")
|
log = logging.getLogger("ListWithPreviews")
|
||||||
log.info("started")
|
log.info("started")
|
||||||
|
|
||||||
def __init__(self):
|
def __init__(self):
|
||||||
QAbstractListModel.__init__(self)
|
QtCore.QAbstractListModel.__init__(self)
|
||||||
self.items=[] # will be a list of (full filename, QPixmap, shortname) tuples
|
self.items = [] # will be a list of (full filename, QPixmap, shortname) tuples
|
||||||
self.rowheight=50
|
self.rowheight = 50
|
||||||
self.maximagewidth=self.rowheight*16/9.0;
|
self.maximagewidth = self.rowheight*16/9.0;
|
||||||
|
|
||||||
def rowCount(self, parent):
|
def rowCount(self, parent):
|
||||||
return len(self.items)
|
return len(self.items)
|
||||||
|
|
||||||
def insertRow(self, row, filename):
|
def insertRow(self, row, filename):
|
||||||
self.beginInsertRows(QModelIndex(),row,row)
|
self.beginInsertRows(QtCore.QModelIndex(),row,row)
|
||||||
log.info("insert row %d:%s"%(row,filename))
|
log.info("insert row %d:%s"% (row,filename))
|
||||||
# get short filename to display next to image
|
# get short filename to display next to image
|
||||||
(prefix, shortfilename) = os.path.split(str(filename))
|
(prefix, shortfilename) = os.path.split(str(filename))
|
||||||
log.info("shortfilename=%s"%(shortfilename))
|
log.info("shortfilename=%s"% (shortfilename))
|
||||||
# create a preview image
|
# create a preview image
|
||||||
if os.path.exists(filename):
|
if os.path.exists(filename):
|
||||||
preview = QPixmap(str(filename))
|
preview = QtGui.QPixmap(str(filename))
|
||||||
w=self.maximagewidth;h=self.rowheight
|
w = self.maximagewidth;
|
||||||
preview = preview.scaled(w,h, Qt.KeepAspectRatio, Qt.SmoothTransformation)
|
h = self.rowheight
|
||||||
realw=preview.width(); realh=preview.height()
|
preview = preview.scaled(w, h, QtCore.Qt.KeepAspectRatio, QtCore.Qt.SmoothTransformation)
|
||||||
|
realw = preview.width();
|
||||||
|
realh = preview.height()
|
||||||
# and move it to the centre of the preview space
|
# and move it to the centre of the preview space
|
||||||
p=QPixmap(w,h)
|
p = QtGui.QPixmap(w,h)
|
||||||
p.fill(Qt.transparent)
|
p.fill(QtCore.Qt.transparent)
|
||||||
painter=QPainter(p)
|
painter = QtGui.QPainter(p)
|
||||||
painter.drawPixmap((w-realw)/2,(h-realh)/2,preview)
|
painter.drawPixmap((w-realw)/2,(h-realh)/2,preview)
|
||||||
else:
|
else:
|
||||||
w=self.maximagewidth;h=self.rowheight
|
w = self.maximagewidth;
|
||||||
p=QPixmap(w,h)
|
h = self.rowheight
|
||||||
p.fill(Qt.transparent)
|
p = QtGui.QPixmap(w,h)
|
||||||
|
p.fill(QtCore.Qt.transparent)
|
||||||
# finally create the row
|
# finally create the row
|
||||||
self.items.insert(row, (filename, p, shortfilename))
|
self.items.insert(row, (filename, p, shortfilename))
|
||||||
self.endInsertRows()
|
self.endInsertRows()
|
||||||
|
|
||||||
def removeRow(self, row):
|
def removeRow(self, row):
|
||||||
self.beginRemoveRows(QModelIndex(), row,row)
|
self.beginRemoveRows(QtCore.QModelIndex(), row, row)
|
||||||
self.items.pop(row)
|
self.items.pop(row)
|
||||||
self.endRemoveRows()
|
self.endRemoveRows()
|
||||||
|
|
||||||
@ -53,19 +76,19 @@ class ListWithPreviews(QAbstractListModel):
|
|||||||
self.insertRow(len(self.items), filename)
|
self.insertRow(len(self.items), filename)
|
||||||
|
|
||||||
def data(self, index, role):
|
def data(self, index, role):
|
||||||
row=index.row()
|
row = index.row()
|
||||||
if row > len(self.items): # if the last row is selected and deleted, we then get called with an empty row!
|
if row > len(self.items):
|
||||||
return QVariant()
|
# if the last row is selected and deleted, we then get called with an empty row!
|
||||||
if role==Qt.DisplayRole:
|
return QtCore.QVariant()
|
||||||
retval= self.items[row][2]
|
if role == QtCore.Qt.DisplayRole:
|
||||||
elif role == Qt.DecorationRole:
|
retval = self.items[row][2]
|
||||||
retval= self.items[row][1]
|
elif role == QtCore.Qt.DecorationRole:
|
||||||
elif role == Qt.ToolTipRole:
|
retval = self.items[row][1]
|
||||||
retval= self.items[row][0]
|
elif role == QtCore.Qt.ToolTipRole:
|
||||||
|
retval = self.items[row][0]
|
||||||
else:
|
else:
|
||||||
retval= QVariant()
|
retval = QtCore.QVariant()
|
||||||
# log.info("Returning"+ str(retval))
|
if type(retval) is not type(QtCore.QVariant):
|
||||||
if type(retval) is not type(QVariant):
|
|
||||||
return QVariant(retval)
|
return QVariant(retval)
|
||||||
else:
|
else:
|
||||||
return retval
|
return retval
|
||||||
|
@ -153,7 +153,7 @@ class ImageMediaItem(MediaManagerItem):
|
|||||||
for index in indexes:
|
for index in indexes:
|
||||||
filename = self.ImageListData.getFilename(index)
|
filename = self.ImageListData.getFilename(index)
|
||||||
frame = QtGui.QPixmap(str(filename))
|
frame = QtGui.QPixmap(str(filename))
|
||||||
service_item.frames.append({u'formatted': u'Image', u'image': frame})
|
service_item.frames.append({u'title': filename , u'image': frame})
|
||||||
|
|
||||||
def onImagePreviewClick(self):
|
def onImagePreviewClick(self):
|
||||||
log.debug(u'Image Preview Requested')
|
log.debug(u'Image Preview Requested')
|
||||||
|
@ -32,7 +32,7 @@ class MediaMediaItem(MediaManagerItem):
|
|||||||
This is the custom media manager item for Media Slides.
|
This is the custom media manager item for Media Slides.
|
||||||
"""
|
"""
|
||||||
global log
|
global log
|
||||||
log=logging.getLogger(u'MediaMediaItem')
|
log = logging.getLogger(u'MediaMediaItem')
|
||||||
log.info(u'Media Media Item loaded')
|
log.info(u'Media Media Item loaded')
|
||||||
|
|
||||||
def __init__(self, parent, icon, title):
|
def __init__(self, parent, icon, title):
|
||||||
|
@ -21,9 +21,7 @@ import logging
|
|||||||
import os
|
import os
|
||||||
|
|
||||||
from PyQt4 import QtCore, QtGui
|
from PyQt4 import QtCore, QtGui
|
||||||
|
|
||||||
from openlp.core.lib import MediaManagerItem, translate
|
from openlp.core.lib import MediaManagerItem, translate
|
||||||
|
|
||||||
from openlp.plugins.presentations.lib import FileListData
|
from openlp.plugins.presentations.lib import FileListData
|
||||||
|
|
||||||
class PresentationMediaItem(MediaManagerItem):
|
class PresentationMediaItem(MediaManagerItem):
|
||||||
|
@ -30,7 +30,7 @@ class SongMediaItem(MediaManagerItem):
|
|||||||
This is the custom media manager item for Songs.
|
This is the custom media manager item for Songs.
|
||||||
"""
|
"""
|
||||||
global log
|
global log
|
||||||
log=logging.getLogger("SongMediaItem")
|
log = logging.getLogger("SongMediaItem")
|
||||||
log.info("Song Media Item loaded")
|
log.info("Song Media Item loaded")
|
||||||
|
|
||||||
def __init__(self, parent, icon, title):
|
def __init__(self, parent, icon, title):
|
||||||
|
@ -21,7 +21,6 @@ import logging
|
|||||||
|
|
||||||
from PyQt4 import QtCore, QtGui
|
from PyQt4 import QtCore, QtGui
|
||||||
|
|
||||||
from openlp.core.resources import *
|
|
||||||
from openlp.core.lib import Plugin, Event
|
from openlp.core.lib import Plugin, Event
|
||||||
from openlp.core.lib import EventType
|
from openlp.core.lib import EventType
|
||||||
from openlp.plugins.songs.lib import SongManager, SongsTab, SongMediaItem
|
from openlp.plugins.songs.lib import SongManager, SongsTab, SongMediaItem
|
||||||
@ -31,7 +30,7 @@ from openlp.plugins.songs.forms import OpenLPImportForm, OpenSongExportForm, \
|
|||||||
class SongsPlugin(Plugin):
|
class SongsPlugin(Plugin):
|
||||||
|
|
||||||
global log
|
global log
|
||||||
log=logging.getLogger(u'SongsPlugin')
|
log = logging.getLogger(u'SongsPlugin')
|
||||||
log.info(u'Song Plugin loaded')
|
log.info(u'Song Plugin loaded')
|
||||||
|
|
||||||
def __init__(self, plugin_helpers):
|
def __init__(self, plugin_helpers):
|
||||||
@ -124,7 +123,7 @@ class SongsPlugin(Plugin):
|
|||||||
"""
|
"""
|
||||||
Handle the event contained in the event object.
|
Handle the event contained in the event object.
|
||||||
"""
|
"""
|
||||||
log.debug(u'Handle event called with event %s'%event.event_type)
|
log.debug(u'Handle event called with event %s' % event.event_type)
|
||||||
if event.event_type == EventType.ThemeListChanged:
|
if event.event_type == EventType.ThemeListChanged:
|
||||||
log.debug(u'New Theme request received')
|
log.debug(u'New Theme request received')
|
||||||
#self.edit_custom_form.loadThemes(self.theme_manager.getThemes())
|
#self.edit_custom_form.loadThemes(self.theme_manager.getThemes())
|
||||||
|
Loading…
Reference in New Issue
Block a user