From 48e750ded268581f64a0191fa1b926a2e5c07369 Mon Sep 17 00:00:00 2001 From: Tim Bentley Date: Fri, 30 Oct 2009 20:14:55 +0000 Subject: [PATCH] Add Save service on New code, and configuration to turn it off. --- openlp/core/ui/amendthemeform.py | 1 - openlp/core/ui/generaltab.py | 22 ++++++++++++++++++++++ openlp/core/ui/servicemanager.py | 17 ++++++++++++++++- openlp/plugins/songs/forms/editsongform.py | 2 +- 4 files changed, 39 insertions(+), 3 deletions(-) diff --git a/openlp/core/ui/amendthemeform.py b/openlp/core/ui/amendthemeform.py index 11daa12c7..c3ec9bb36 100644 --- a/openlp/core/ui/amendthemeform.py +++ b/openlp/core/ui/amendthemeform.py @@ -408,7 +408,6 @@ class AmendThemeForm(QtGui.QDialog, Ui_AmendThemeDialog): self.theme.background_endColor = u'#ff0000' else: self.theme.background_type = u'image' - a=c self.stateChanging(self.theme) self.previewTheme(self.theme) diff --git a/openlp/core/ui/generaltab.py b/openlp/core/ui/generaltab.py index 54031ec1a..5a69e372d 100644 --- a/openlp/core/ui/generaltab.py +++ b/openlp/core/ui/generaltab.py @@ -76,6 +76,18 @@ class GeneralTab(SettingsTab): 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.SaveCheckOOSCheckBox = QtGui.QCheckBox(self.SettingsGroupBox) + self.SaveCheckOOSCheckBox.setObjectName(u'SaveCheckOOSCheckBox') + self.SettingsLayout.addWidget(self.SaveCheckOOSCheckBox) + self.GeneralLeftLayout.addWidget(self.SettingsGroupBox) + self.GeneralLeftSpacer = QtGui.QSpacerItem(20, 40, QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Expanding) self.GeneralLeftLayout.addItem(self.GeneralLeftSpacer) @@ -124,6 +136,8 @@ class GeneralTab(SettingsTab): QtCore.SIGNAL(u'stateChanged(int)'), self.onAutoOpenCheckBoxChanged) QtCore.QObject.connect(self.ShowSplashCheckBox, QtCore.SIGNAL(u'stateChanged(int)'), self.onShowSplashCheckBoxChanged) + QtCore.QObject.connect(self.SaveCheckOOSCheckBox, + QtCore.SIGNAL(u'stateChanged(int)'), self.onSaveCheckOOSCheckBox) QtCore.QObject.connect(self.NumberEdit, QtCore.SIGNAL(u'editingFinished()'), self.onNumberEditLostFocus) QtCore.QObject.connect(self.UsernameEdit, @@ -138,6 +152,8 @@ class GeneralTab(SettingsTab): 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.SaveCheckOOSCheckBox.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 +171,9 @@ class GeneralTab(SettingsTab): def onWarningCheckBoxChanged(self, value): self.Warning = (value == QtCore.Qt.Checked) + def onSaveCheckOOSCheckBox(self, value): + self.PromptSaveOOS = (value == QtCore.Qt.Checked) + def onNumberEditLostFocus(self): self.CCLNumber = self.NumberEdit.displayText() @@ -175,9 +194,11 @@ class GeneralTab(SettingsTab): 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.PromptSaveOOS = str_to_bool(self.config.get_config(u'prompt save oos', 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.SaveCheckOOSCheckBox.setChecked(self.PromptSaveOOS) # Set a few things up self.MonitorComboBox.setCurrentIndex(self.MonitorNumber) self.WarningCheckBox.setChecked(self.Warning) @@ -192,6 +213,7 @@ class GeneralTab(SettingsTab): 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 oos', self.PromptSaveOOS) 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) diff --git a/openlp/core/ui/servicemanager.py b/openlp/core/ui/servicemanager.py index 2d0e43c30..ba0f2cd8d 100644 --- a/openlp/core/ui/servicemanager.py +++ b/openlp/core/ui/servicemanager.py @@ -30,7 +30,8 @@ import zipfile 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,10 +129,12 @@ class ServiceManager(QtGui.QWidget): 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) @@ -356,6 +359,18 @@ class ServiceManager(QtGui.QWidget): """ Clear the list to create a new service """ + if self.parent.serviceNotSaved and \ + str_to_bool(PluginConfig(u'General').get_config(u'prompt save oos', 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'' diff --git a/openlp/plugins/songs/forms/editsongform.py b/openlp/plugins/songs/forms/editsongform.py index 38a2117b2..7fa0f9a52 100644 --- a/openlp/plugins/songs/forms/editsongform.py +++ b/openlp/plugins/songs/forms/editsongform.py @@ -466,7 +466,7 @@ class EditSongForm(QtGui.QDialog, Ui_EditSongDialog): self.song.search_lyrics = unicode(text) self.song.lyrics = unicode(sxml.extract_xml()) except: - log.exception(u'Problem processing song Lyrics') + log.exception(u'Problem processing song Lyrics \n%s', sxml.dump_xml()) def processTitle(self): log.debug(u'processTitle')