openlp-core team mailing list archive
-
openlp-core team
-
Mailing list archive
-
Message #00734
[Merge] lp:~trb143/openlp/fixes into lp:openlp
Tim Bentley has proposed merging lp:~trb143/openlp/fixes into lp:openlp.
Requested reviews:
OpenLP Core (openlp-core)
--
https://code.launchpad.net/~trb143/openlp/fixes/+merge/14243
Your team OpenLP Core is subscribed to branch lp:openlp.
=== modified file 'openlp.pyw'
--- openlp.pyw 2009-10-18 18:15:20 +0000
+++ openlp.pyw 2009-10-30 22:10:25 +0000
@@ -105,6 +105,7 @@
if show_splash:
# now kill the splashscreen
self.splash.finish(self.mainWindow)
+ self.mainWindow.versionCheck()
return self.exec_()
def main():
=== modified file 'openlp/core/lib/renderer.py'
--- openlp/core/lib/renderer.py 2009-10-23 17:09:09 +0000
+++ openlp/core/lib/renderer.py 2009-10-30 22:10:25 +0000
@@ -72,9 +72,11 @@
self._theme = theme
self.bg_frame = None
self.bg_image = None
+ self._bg_image_filename = None
self.theme_name = theme.theme_name
self._set_theme_font()
if theme.background_type == u'image':
+ print theme.background_filename
if theme.background_filename is not None:
self.set_bg_image(theme.background_filename)
@@ -110,8 +112,8 @@
painter.begin(self.bg_image)
self.background_offsetx = (width - realwidth) / 2
self.background_offsety = (height - realheight) / 2
- painter.drawImage(self.background_offsetx, self.background_offsety,
- preview)
+ painter.drawImage(self.background_offsetx,
+ self.background_offsety, preview)
painter.end()
def set_frame_dest(self, frame_width, frame_height, preview=False):
=== modified file 'openlp/core/ui/amendthemeform.py'
--- openlp/core/ui/amendthemeform.py 2009-10-29 23:27:45 +0000
+++ openlp/core/ui/amendthemeform.py 2009-10-30 22:10:25 +0000
@@ -431,7 +431,6 @@
QtGui.QColor(self.theme.background_endColor), self).name()
self.Color2PushButton.setStyleSheet(
u'background-color: %s' % unicode(self.theme.background_endColor))
-
self.previewTheme(self.theme)
#
#Other Tab
@@ -486,12 +485,14 @@
self.BackgroundComboBox.setCurrentIndex(0)
else:
self.BackgroundComboBox.setCurrentIndex(1)
+ self.ImageLineEdit.setText(u'')
if theme.background_type == u'solid':
self.BackgroundTypeComboBox.setCurrentIndex(0)
elif theme.background_type == u'gradient':
self.BackgroundTypeComboBox.setCurrentIndex(1)
else:
self.BackgroundTypeComboBox.setCurrentIndex(2)
+ self.ImageLineEdit.setText(self.theme.background_filename)
if self.theme.background_direction == u'horizontal':
self.GradientComboBox.setCurrentIndex(0)
elif self.theme.background_direction == u'vertical':
=== modified file 'openlp/core/ui/generaltab.py'
--- openlp/core/ui/generaltab.py 2009-10-30 17:44:16 +0000
+++ openlp/core/ui/generaltab.py 2009-10-30 22:10:25 +0000
@@ -76,6 +76,16 @@
self.ShowSplashCheckBox.setObjectName(u'ShowSplashCheckBox')
self.StartupLayout.addWidget(self.ShowSplashCheckBox)
self.GeneralLeftLayout.addWidget(self.StartupGroupBox)
+ self.SettingsGroupBox = QtGui.QGroupBox(self.GeneralLeftWidget)
+ self.SettingsGroupBox.setObjectName(u'SettingsGroupBox')
+ self.SettingsLayout = QtGui.QVBoxLayout(self.SettingsGroupBox)
+ self.SettingsLayout.setSpacing(8)
+ self.SettingsLayout.setMargin(8)
+ self.SettingsLayout.setObjectName(u'SettingsLayout')
+ self.SaveCheckServiceCheckBox = QtGui.QCheckBox(self.SettingsGroupBox)
+ self.SaveCheckServiceCheckBox.setObjectName(u'SaveCheckServiceCheckBox')
+ self.SettingsLayout.addWidget(self.SaveCheckServiceCheckBox)
+ self.GeneralLeftLayout.addWidget(self.SettingsGroupBox)
self.GeneralLeftSpacer = QtGui.QSpacerItem(20, 40,
QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Expanding)
self.GeneralLeftLayout.addItem(self.GeneralLeftSpacer)
@@ -124,6 +134,8 @@
QtCore.SIGNAL(u'stateChanged(int)'), self.onAutoOpenCheckBoxChanged)
QtCore.QObject.connect(self.ShowSplashCheckBox,
QtCore.SIGNAL(u'stateChanged(int)'), self.onShowSplashCheckBoxChanged)
+ QtCore.QObject.connect(self.SaveCheckServiceCheckBox,
+ QtCore.SIGNAL(u'stateChanged(int)'), self.onSaveCheckServiceCheckBox)
QtCore.QObject.connect(self.NumberEdit,
QtCore.SIGNAL(u'editingFinished()'), self.onNumberEditLostFocus)
QtCore.QObject.connect(self.UsernameEdit,
@@ -138,6 +150,8 @@
self.WarningCheckBox.setText(self.trUtf8(u'Show blank screen warning'))
self.AutoOpenCheckBox.setText(self.trUtf8(u'Automatically open the last service'))
self.ShowSplashCheckBox.setText(self.trUtf8(u'Show the splash screen'))
+ self.SettingsGroupBox.setTitle(self.trUtf8(u'Application Settings'))
+ self.SaveCheckServiceCheckBox.setText(self.trUtf8(u'Prompt to save Sevice before starting New'))
self.CCLIGroupBox.setTitle(self.trUtf8(u'CCLI Details'))
self.NumberLabel.setText(self.trUtf8(u'CCLI Number:'))
self.UsernameLabel.setText(self.trUtf8(u'SongSelect Username:'))
@@ -155,6 +169,9 @@
def onWarningCheckBoxChanged(self, value):
self.Warning = (value == QtCore.Qt.Checked)
+ def onSaveCheckServiceCheckBox(self, value):
+ self.PromptSaveService = (value == QtCore.Qt.Checked)
+
def onNumberEditLostFocus(self):
self.CCLNumber = self.NumberEdit.displayText()
@@ -175,9 +192,11 @@
self.Warning = str_to_bool(self.config.get_config(u'Blank Warning', u'False'))
self.AutoOpen = str_to_bool(self.config.get_config(u'Auto Open', u'False'))
self.ShowSplash = str_to_bool(self.config.get_config(u'show splash', u'True'))
+ self.PromptSaveService = str_to_bool(self.config.get_config(u'prompt save service', u'False'))
self.CCLNumber = unicode(self.config.get_config(u'CCL Number', u'XXX'))
self.Username = unicode(self.config.get_config(u'User Name', u''))
self.Password = unicode(self.config.get_config(u'Password', u''))
+ self.SaveCheckServiceCheckBox.setChecked(self.PromptSaveService)
# Set a few things up
self.MonitorComboBox.setCurrentIndex(self.MonitorNumber)
self.WarningCheckBox.setChecked(self.Warning)
@@ -192,6 +211,7 @@
self.config.set_config(u'Blank Warning', self.Warning)
self.config.set_config(u'Auto Open', self.AutoOpen)
self.config.set_config(u'show splash', self.ShowSplash)
+ self.config.set_config(u'prompt save service', self.PromptSaveService)
self.config.set_config(u'CCL Number', self.CCLNumber)
self.config.set_config(u'User Name', self.Username)
self.config.set_config(u'Password', self.Password)
=== modified file 'openlp/core/ui/mainwindow.py'
--- openlp/core/ui/mainwindow.py 2009-10-29 16:01:33 +0000
+++ openlp/core/ui/mainwindow.py 2009-10-30 22:10:25 +0000
@@ -562,7 +562,6 @@
screen_number = self.getMonitorNumber()
self.mainDisplay.setup(screen_number)
self.setFocus()
- self.versionCheck()
if str_to_bool(self.generalConfig.get_config(u'Auto Open', False)):
self.ServiceManagerContents.onLoadService(True)
if str_to_bool(self.generalConfig.get_config(u'Screen Blank', False)) \
=== modified file 'openlp/core/ui/servicemanager.py'
--- openlp/core/ui/servicemanager.py 2009-10-29 13:44:33 +0000
+++ openlp/core/ui/servicemanager.py 2009-10-30 22:10:25 +0000
@@ -30,7 +30,8 @@
from PyQt4 import QtCore, QtGui
from openlp.core.lib import PluginConfig, OpenLPToolbar, ServiceItem, \
- ServiceType, contextMenuAction, contextMenuSeparator, Receiver, contextMenu
+ ServiceType, contextMenuAction, contextMenuSeparator, Receiver, \
+ contextMenu, str_to_bool
class ServiceManagerList(QtGui.QTreeWidget):
@@ -128,8 +129,12 @@
self.parent = parent
self.serviceItems = []
self.serviceName = u''
+ #is a new service and has not been saved
self.isNew = True
+ #Indicates if remoteTriggering is active. If it is the next addServiceItem call
+ #will replace the currently selected one.
self.remoteEditTriggered = False
+ #start with the layout
self.Layout = QtGui.QVBoxLayout(self)
self.Layout.setSpacing(0)
self.Layout.setMargin(0)
@@ -354,6 +359,19 @@
"""
Clear the list to create a new service
"""
+ if self.parent.serviceNotSaved and \
+ str_to_bool(PluginConfig(u'General').
+ get_config(u'prompt save service', u'False')):
+ ret = QtGui.QMessageBox.question(None,
+ self.trUtf8(u'Save Changes to Service?'),
+ self.trUtf8(u'Your service is unsaved, do you want to save those '
+ u'changes before creating a new one ?'),
+ QtGui.QMessageBox.StandardButtons(
+ QtGui.QMessageBox.Cancel |
+ QtGui.QMessageBox.Save),
+ QtGui.QMessageBox.Save)
+ if ret == QtGui.QMessageBox.Save:
+ self.onSaveService()
self.ServiceManagerList.clear()
self.serviceItems = []
self.serviceName = u''
=== modified file 'openlp/plugins/songs/forms/editsongform.py'
--- openlp/plugins/songs/forms/editsongform.py 2009-10-29 13:44:33 +0000
+++ openlp/plugins/songs/forms/editsongform.py 2009-10-30 22:10:25 +0000
@@ -95,9 +95,10 @@
QtCore.SIGNAL(u'lostFocus()'), self.onCommentsEditLostFocus)
QtCore.QObject.connect(self.VerseOrderEdit,
QtCore.SIGNAL(u'lostFocus()'), self.onVerseOrderEditLostFocus)
- previewButton = QtGui.QPushButton()
- previewButton.setText(self.trUtf8(u'Save && Preview'))
- self.ButtonBox.addButton(previewButton, QtGui.QDialogButtonBox.ActionRole)
+ self.previewButton = QtGui.QPushButton()
+ self.previewButton.setText(self.trUtf8(u'Save && Preview'))
+ self.ButtonBox.addButton(
+ self.previewButton, QtGui.QDialogButtonBox.ActionRole)
QtCore.QObject.connect(self.ButtonBox,
QtCore.SIGNAL(u'clicked(QAbstractButton*)'), self.onPreview)
# Create other objects and forms
@@ -167,7 +168,7 @@
self.loadTopics()
self.loadBooks()
- def loadSong(self, id):
+ def loadSong(self, id, preview):
log.debug(u'Load Song')
self.SongTabWidget.setCurrentIndex(0)
self.loadAuthors()
@@ -236,6 +237,10 @@
self._validate_song()
self.title_change = False
self.TitleEditItem.setFocus(QtCore.Qt.OtherFocusReason)
+ #if not preview hide the preview button
+ self.previewButton.setVisible(False)
+ if preview:
+ self.previewButton.setVisible(True)
def onAuthorAddButtonClicked(self):
item = int(self.AuthorsSelectionComboItem.currentIndex())
@@ -434,31 +439,34 @@
def processLyrics(self):
log.debug(u'processLyrics')
- sxml = SongXMLBuilder()
- sxml.new_document()
- sxml.add_lyrics_to_song()
- count = 1
- text = u' '
- verse_order = u''
- for i in range (0, self.VerseListWidget.count()):
- sxml.add_verse_to_lyrics(u'Verse', unicode(count),
- unicode(self.VerseListWidget.item(i).text()))
- text = text + unicode(self.VerseListWidget.item(i).text()) + u' '
- verse_order = verse_order + unicode(count) + u' '
- count += 1
- if self.song.verse_order is None:
- self.song.verse_order = verse_order
- text = text.replace(u'\'', u'')
- text = text.replace(u',', u'')
- text = text.replace(u';', u'')
- text = text.replace(u':', u'')
- text = text.replace(u'(', u'')
- text = text.replace(u')', u'')
- text = text.replace(u'{', u'')
- text = text.replace(u'}', u'')
- text = text.replace(u'?', u'')
- self.song.search_lyrics = unicode(text)
- self.song.lyrics = unicode(sxml.extract_xml())
+ try:
+ sxml = SongXMLBuilder()
+ sxml.new_document()
+ sxml.add_lyrics_to_song()
+ count = 1
+ text = u' '
+ verse_order = u''
+ for i in range (0, self.VerseListWidget.count()):
+ sxml.add_verse_to_lyrics(u'Verse', unicode(count),
+ unicode(self.VerseListWidget.item(i).text()))
+ text = text + unicode(self.VerseListWidget.item(i).text()) + u' '
+ verse_order = verse_order + unicode(count) + u' '
+ count += 1
+ if self.song.verse_order is None:
+ self.song.verse_order = verse_order
+ text = text.replace(u'\'', u'')
+ text = text.replace(u',', u'')
+ text = text.replace(u';', u'')
+ text = text.replace(u':', u'')
+ text = text.replace(u'(', u'')
+ text = text.replace(u')', u'')
+ text = text.replace(u'{', u'')
+ text = text.replace(u'}', u'')
+ text = text.replace(u'?', u'')
+ self.song.search_lyrics = unicode(text)
+ self.song.lyrics = unicode(sxml.extract_xml())
+ except:
+ log.exception(u'Problem processing song Lyrics \n%s', sxml.dump_xml())
def processTitle(self):
log.debug(u'processTitle')
=== modified file 'openlp/plugins/songs/lib/mediaitem.py'
--- openlp/plugins/songs/lib/mediaitem.py 2009-10-30 17:44:16 +0000
+++ openlp/plugins/songs/lib/mediaitem.py 2009-10-30 22:10:25 +0000
@@ -53,7 +53,11 @@
self.edit_song_form = EditSongForm(self.parent.songmanager, self)
self.song_maintenance_form = SongMaintenanceForm(
self.parent.songmanager, self)
+ #fromPreview holds the id of the item if the song editor needs to trigger a preview
+ #without closing. It is set to -1 if this function is inactive
self.fromPreview = -1
+ #fromServiceManager holds the id of the item if the song editor needs to trigger posting
+ #to the servicemanager without closing. It is set to -1 if this function is inactive
self.fromServiceManager = -1
def initPluginNameVisible(self):
@@ -242,7 +246,7 @@
valid = self.parent.songmanager.get_song(songid)
if valid is not None:
self.fromServiceManager = songid
- self.edit_song_form.loadSong(songid)
+ self.edit_song_form.loadSong(songid, False)
self.edit_song_form.exec_()
def onEditClick(self, preview=False):
@@ -252,7 +256,7 @@
self.fromPreview = -1
if preview:
self.fromPreview = item_id
- self.edit_song_form.loadSong(item_id)
+ self.edit_song_form.loadSong(item_id, preview)
self.edit_song_form.exec_()
def onEventEditSong (self):
@@ -286,6 +290,7 @@
service_item.theme = song.theme_name
service_item.editEnabled = True
service_item.editId = item_id
+ service_item.verse_order = song.verse_order
if song.lyrics.startswith(u'<?xml version='):
songXML=SongXMLParser(song.lyrics)
verseList = songXML.get_verses()
Follow ups