forked from openlp/openlp
HEAD
This commit is contained in:
commit
5665e2af94
@ -287,16 +287,16 @@ class GeneralTab(SettingsTab):
|
|||||||
Translate the general settings tab to the currently selected language
|
Translate the general settings tab to the currently selected language
|
||||||
"""
|
"""
|
||||||
self.MonitorGroupBox.setTitle(translate('GeneralTab', 'Monitors'))
|
self.MonitorGroupBox.setTitle(translate('GeneralTab', 'Monitors'))
|
||||||
self.MonitorLabel.setText(
|
self.MonitorLabel.setText(translate('OpenLP.GeneralTab',
|
||||||
translate('OpenLP.GeneralTab', 'Select monitor for output display:'))
|
'Select monitor for output display:'))
|
||||||
self.DisplayOnMonitorCheck.setText(
|
self.DisplayOnMonitorCheck.setText(
|
||||||
translate('OpenLP.GeneralTab', 'Display if a single screen'))
|
translate('OpenLP.GeneralTab', 'Display if a single screen'))
|
||||||
self.StartupGroupBox.setTitle(
|
self.StartupGroupBox.setTitle(
|
||||||
translate('OpenLP.GeneralTab', 'Application Startup'))
|
translate('OpenLP.GeneralTab', 'Application Startup'))
|
||||||
self.WarningCheckBox.setText(
|
self.WarningCheckBox.setText(
|
||||||
translate('OpenLP.GeneralTab', 'Show blank screen warning'))
|
translate('OpenLP.GeneralTab', 'Show blank screen warning'))
|
||||||
self.AutoOpenCheckBox.setText(
|
self.AutoOpenCheckBox.setText(translate('OpenLP.GeneralTab',
|
||||||
translate('OpenLP.GeneralTab', 'Automatically open the last service'))
|
'Automatically open the last service'))
|
||||||
self.ShowSplashCheckBox.setText(
|
self.ShowSplashCheckBox.setText(
|
||||||
translate('OpenLP.GeneralTab', 'Show the splash screen'))
|
translate('OpenLP.GeneralTab', 'Show the splash screen'))
|
||||||
self.SettingsGroupBox.setTitle(translate('OpenLP.GeneralTab',
|
self.SettingsGroupBox.setTitle(translate('OpenLP.GeneralTab',
|
||||||
@ -318,7 +318,8 @@ class GeneralTab(SettingsTab):
|
|||||||
self.currentXValueLabel.setText(u'0')
|
self.currentXValueLabel.setText(u'0')
|
||||||
self.currentYLabel.setText(translate('OpenLP.GeneralTab', 'Y'))
|
self.currentYLabel.setText(translate('OpenLP.GeneralTab', 'Y'))
|
||||||
self.currentYValueLabel.setText(u'0')
|
self.currentYValueLabel.setText(u'0')
|
||||||
self.currentHeightLabel.setText(translate('OpenLP.GeneralTab', 'Height'))
|
self.currentHeightLabel.setText(
|
||||||
|
translate('OpenLP.GeneralTab', 'Height'))
|
||||||
self.currentHeightValueLabel.setText(u'0')
|
self.currentHeightValueLabel.setText(u'0')
|
||||||
self.currentWidthLabel.setText(translate('OpenLP.GeneralTab', 'Width'))
|
self.currentWidthLabel.setText(translate('OpenLP.GeneralTab', 'Width'))
|
||||||
self.currentWidthValueLabel.setText(u'0')
|
self.currentWidthValueLabel.setText(u'0')
|
||||||
@ -375,10 +376,12 @@ class GeneralTab(SettingsTab):
|
|||||||
QtCore.QVariant(self.screens.current[u'size'].x())).toString())
|
QtCore.QVariant(self.screens.current[u'size'].x())).toString())
|
||||||
self.customYValueEdit.setText(settings.value(u'y position',
|
self.customYValueEdit.setText(settings.value(u'y position',
|
||||||
QtCore.QVariant(self.screens.current[u'size'].y())).toString())
|
QtCore.QVariant(self.screens.current[u'size'].y())).toString())
|
||||||
self.customHeightValueEdit.setText(settings.value(u'height',
|
self.customHeightValueEdit.setText(
|
||||||
QtCore.QVariant(self.screens.current[u'size'].height())).toString())
|
settings.value(u'height', QtCore.QVariant(
|
||||||
self.customWidthValueEdit.setText(settings.value(u'width',
|
self.screens.current[u'size'].height())).toString())
|
||||||
QtCore.QVariant(self.screens.current[u'size'].width())).toString())
|
self.customWidthValueEdit.setText(
|
||||||
|
settings.value(u'width', QtCore.QVariant(
|
||||||
|
self.screens.current[u'size'].width())).toString())
|
||||||
else:
|
else:
|
||||||
self.customXValueEdit.setText(
|
self.customXValueEdit.setText(
|
||||||
unicode(self.screens.current[u'size'].x()))
|
unicode(self.screens.current[u'size'].x()))
|
||||||
|
@ -108,8 +108,8 @@ class ServiceManager(QtGui.QWidget):
|
|||||||
self.droppos = 0
|
self.droppos = 0
|
||||||
#is a new service and has not been saved
|
#is a new service and has not been saved
|
||||||
self.isNew = True
|
self.isNew = True
|
||||||
self.serviceNoteForm = ServiceNoteForm()
|
self.serviceNoteForm = ServiceNoteForm(self.parent)
|
||||||
self.serviceItemEditForm = ServiceItemEditForm()
|
self.serviceItemEditForm = ServiceItemEditForm(self.parent)
|
||||||
#start with the layout
|
#start with the layout
|
||||||
self.Layout = QtGui.QVBoxLayout(self)
|
self.Layout = QtGui.QVBoxLayout(self)
|
||||||
self.Layout.setSpacing(0)
|
self.Layout.setSpacing(0)
|
||||||
|
@ -253,15 +253,14 @@ class ThemeManager(QtGui.QWidget):
|
|||||||
The theme to delete.
|
The theme to delete.
|
||||||
"""
|
"""
|
||||||
self.themelist.remove(theme)
|
self.themelist.remove(theme)
|
||||||
th = theme + u'.png'
|
thumb = theme + u'.png'
|
||||||
try:
|
try:
|
||||||
os.remove(os.path.join(self.path, th))
|
os.remove(os.path.join(self.path, thumb))
|
||||||
os.remove(os.path.join(self.thumbPath, th))
|
os.remove(os.path.join(self.thumbPath, thumb))
|
||||||
encoding = get_filesystem_encoding()
|
encoding = get_filesystem_encoding()
|
||||||
shutil.rmtree(os.path.join(self.path, theme).encode(encoding))
|
shutil.rmtree(os.path.join(self.path, theme).encode(encoding))
|
||||||
except OSError:
|
except OSError:
|
||||||
#if not present do not worry
|
log.exception(u'Error deleting theme %s', theme)
|
||||||
pass
|
|
||||||
# As we do not reload the themes push out the change
|
# As we do not reload the themes push out the change
|
||||||
# Reaload the list as the internal lists and events need
|
# Reaload the list as the internal lists and events need
|
||||||
# to be triggered
|
# to be triggered
|
||||||
@ -605,19 +604,21 @@ class ThemeManager(QtGui.QWidget):
|
|||||||
if newThemeIndex != -1:
|
if newThemeIndex != -1:
|
||||||
self.serviceComboBox.setCurrentIndex(newThemeIndex)
|
self.serviceComboBox.setCurrentIndex(newThemeIndex)
|
||||||
if self.editingDefault:
|
if self.editingDefault:
|
||||||
newThemeItem = self.ThemeListWidget.findItems(name,
|
if self.saveThemeName != name:
|
||||||
QtCore.Qt.MatchExactly)[0]
|
newThemeItem = self.ThemeListWidget.findItems(name,
|
||||||
newThemeIndex = self.ThemeListWidget.indexFromItem(
|
QtCore.Qt.MatchExactly)[0]
|
||||||
newThemeItem).row()
|
newThemeIndex = self.ThemeListWidget.indexFromItem(
|
||||||
self.global_theme = unicode(
|
newThemeItem).row()
|
||||||
self.ThemeListWidget.item(newThemeIndex).text())
|
self.global_theme = unicode(
|
||||||
newName = unicode(translate('ThemeManager', '%s (default)')) % \
|
self.ThemeListWidget.item(newThemeIndex).text())
|
||||||
self.global_theme
|
newName = unicode(translate('ThemeManager',
|
||||||
self.ThemeListWidget.item(newThemeIndex).setText(newName)
|
'%s (default)')) % self.global_theme
|
||||||
QtCore.QSettings().setValue(
|
self.ThemeListWidget.item(newThemeIndex).setText(newName)
|
||||||
self.settingsSection + u'/global theme',
|
QtCore.QSettings().setValue(
|
||||||
QtCore.QVariant(self.global_theme))
|
self.settingsSection + u'/global theme',
|
||||||
Receiver.send_message(u'theme_update_global', self.global_theme)
|
QtCore.QVariant(self.global_theme))
|
||||||
|
Receiver.send_message(u'theme_update_global',
|
||||||
|
self.global_theme)
|
||||||
self.editingDefault = False
|
self.editingDefault = False
|
||||||
self.pushThemes()
|
self.pushThemes()
|
||||||
else:
|
else:
|
||||||
|
@ -441,7 +441,8 @@ class Ui_EditSongDialog(object):
|
|||||||
translate('SongsPlugin.EditSongForm', 'Song Book'))
|
translate('SongsPlugin.EditSongForm', 'Song Book'))
|
||||||
self.SongTabWidget.setTabText(
|
self.SongTabWidget.setTabText(
|
||||||
self.SongTabWidget.indexOf(self.AuthorsTab),
|
self.SongTabWidget.indexOf(self.AuthorsTab),
|
||||||
translate('SongsPlugin.EditSongForm', 'Authors, Topics && Song Book'))
|
translate('SongsPlugin.EditSongForm',
|
||||||
|
'Authors, Topics && Song Book'))
|
||||||
self.ThemeGroupBox.setTitle(
|
self.ThemeGroupBox.setTitle(
|
||||||
translate('SongsPlugin.EditSongForm', 'Theme'))
|
translate('SongsPlugin.EditSongForm', 'Theme'))
|
||||||
self.ThemeAddButton.setText(
|
self.ThemeAddButton.setText(
|
||||||
|
@ -48,7 +48,7 @@ class EditSongForm(QtGui.QDialog, Ui_EditSongDialog):
|
|||||||
"""
|
"""
|
||||||
QtGui.QDialog.__init__(self, parent)
|
QtGui.QDialog.__init__(self, parent)
|
||||||
self.parent = parent
|
self.parent = parent
|
||||||
#can this be automated?
|
# can this be automated?
|
||||||
self.width = 400
|
self.width = 400
|
||||||
self.setupUi(self)
|
self.setupUi(self)
|
||||||
# Connecting signals and slots
|
# Connecting signals and slots
|
||||||
@ -171,7 +171,7 @@ class EditSongForm(QtGui.QDialog, Ui_EditSongDialog):
|
|||||||
self.loadAuthors()
|
self.loadAuthors()
|
||||||
self.loadTopics()
|
self.loadTopics()
|
||||||
self.loadBooks()
|
self.loadBooks()
|
||||||
#it's a new song to preview is not possible
|
# it's a new song to preview is not possible
|
||||||
self.previewButton.setVisible(False)
|
self.previewButton.setVisible(False)
|
||||||
|
|
||||||
def loadSong(self, id, preview):
|
def loadSong(self, id, preview):
|
||||||
@ -221,7 +221,7 @@ class EditSongForm(QtGui.QDialog, Ui_EditSongDialog):
|
|||||||
self.CCLNumberEdit.setText(self.song.ccli_number)
|
self.CCLNumberEdit.setText(self.song.ccli_number)
|
||||||
else:
|
else:
|
||||||
self.CCLNumberEdit.setText(u'')
|
self.CCLNumberEdit.setText(u'')
|
||||||
#lazy xml migration for now
|
# lazy xml migration for now
|
||||||
self.VerseListWidget.clear()
|
self.VerseListWidget.clear()
|
||||||
self.VerseListWidget.setRowCount(0)
|
self.VerseListWidget.setRowCount(0)
|
||||||
self.VerseListWidget.setColumnWidth(0, self.width)
|
self.VerseListWidget.setColumnWidth(0, self.width)
|
||||||
@ -263,7 +263,7 @@ class EditSongForm(QtGui.QDialog, Ui_EditSongDialog):
|
|||||||
topic_name.setData(QtCore.Qt.UserRole, QtCore.QVariant(topic.id))
|
topic_name.setData(QtCore.Qt.UserRole, QtCore.QVariant(topic.id))
|
||||||
self.TopicsListView.addItem(topic_name)
|
self.TopicsListView.addItem(topic_name)
|
||||||
self.TitleEditItem.setFocus(QtCore.Qt.OtherFocusReason)
|
self.TitleEditItem.setFocus(QtCore.Qt.OtherFocusReason)
|
||||||
#if not preview hide the preview button
|
# if not preview hide the preview button
|
||||||
self.previewButton.setVisible(False)
|
self.previewButton.setVisible(False)
|
||||||
if preview:
|
if preview:
|
||||||
self.previewButton.setVisible(True)
|
self.previewButton.setVisible(True)
|
||||||
@ -288,11 +288,15 @@ class EditSongForm(QtGui.QDialog, Ui_EditSongDialog):
|
|||||||
if QtGui.QMessageBox.question(self,
|
if QtGui.QMessageBox.question(self,
|
||||||
translate('SongsPlugin.EditSongForm', 'Add Author'),
|
translate('SongsPlugin.EditSongForm', 'Add Author'),
|
||||||
translate('SongsPlugin.EditSongForm', 'This author does not '
|
translate('SongsPlugin.EditSongForm', 'This author does not '
|
||||||
'exist, do you want to add them?'),
|
'exist, do you want to add them?'),
|
||||||
QtGui.QMessageBox.Yes | QtGui.QMessageBox.No,
|
QtGui.QMessageBox.Yes | QtGui.QMessageBox.No,
|
||||||
QtGui.QMessageBox.Yes) == QtGui.QMessageBox.Yes:
|
QtGui.QMessageBox.Yes) == QtGui.QMessageBox.Yes:
|
||||||
author = Author.populate(first_name=text.rsplit(u' ', 1)[0],
|
if text.find(u' ') == -1:
|
||||||
last_name=text.rsplit(u' ', 1)[1], display_name=text)
|
author = Author.populate(first_name=u'', last_name=u'',
|
||||||
|
display_name=text)
|
||||||
|
else:
|
||||||
|
author = Author.populate(first_name=text.rsplit(u' ', 1)[0],
|
||||||
|
last_name=text.rsplit(u' ', 1)[1], display_name=text)
|
||||||
self.songmanager.save_object(author, False)
|
self.songmanager.save_object(author, False)
|
||||||
self.song.authors.append(author)
|
self.song.authors.append(author)
|
||||||
author_item = QtGui.QListWidgetItem(
|
author_item = QtGui.QListWidgetItem(
|
||||||
@ -324,9 +328,9 @@ class EditSongForm(QtGui.QDialog, Ui_EditSongDialog):
|
|||||||
QtGui.QMessageBox.warning(self,
|
QtGui.QMessageBox.warning(self,
|
||||||
translate('SongsPlugin.EditSongForm', 'No Author Selected'),
|
translate('SongsPlugin.EditSongForm', 'No Author Selected'),
|
||||||
translate('SongsPlugin.EditSongForm', 'You have not selected '
|
translate('SongsPlugin.EditSongForm', 'You have not selected '
|
||||||
'a valid author. Either select an author from the list, '
|
'a valid author. Either select an author from the list, '
|
||||||
'or type in a new author and click the "Add Author to '
|
'or type in a new author and click the "Add Author to '
|
||||||
'Song" button to add the new author.'),
|
'Song" button to add the new author.'),
|
||||||
QtGui.QMessageBox.Ok, QtGui.QMessageBox.Ok)
|
QtGui.QMessageBox.Ok, QtGui.QMessageBox.Ok)
|
||||||
|
|
||||||
def onAuthorsListViewPressed(self):
|
def onAuthorsListViewPressed(self):
|
||||||
@ -349,7 +353,7 @@ class EditSongForm(QtGui.QDialog, Ui_EditSongDialog):
|
|||||||
if QtGui.QMessageBox.question(self,
|
if QtGui.QMessageBox.question(self,
|
||||||
translate('SongsPlugin.EditSongForm', 'Add Topic'),
|
translate('SongsPlugin.EditSongForm', 'Add Topic'),
|
||||||
translate('SongsPlugin.EditSongForm', 'This topic does not '
|
translate('SongsPlugin.EditSongForm', 'This topic does not '
|
||||||
'exist, do you want to add it?'),
|
'exist, do you want to add it?'),
|
||||||
QtGui.QMessageBox.Yes | QtGui.QMessageBox.No,
|
QtGui.QMessageBox.Yes | QtGui.QMessageBox.No,
|
||||||
QtGui.QMessageBox.Yes) == QtGui.QMessageBox.Yes:
|
QtGui.QMessageBox.Yes) == QtGui.QMessageBox.Yes:
|
||||||
topic = Topic.populate(name=text)
|
topic = Topic.populate(name=text)
|
||||||
@ -382,9 +386,9 @@ class EditSongForm(QtGui.QDialog, Ui_EditSongDialog):
|
|||||||
QtGui.QMessageBox.warning(self,
|
QtGui.QMessageBox.warning(self,
|
||||||
translate('SongsPlugin.EditSongForm', 'No Topic Selected'),
|
translate('SongsPlugin.EditSongForm', 'No Topic Selected'),
|
||||||
translate('SongsPlugin.EditSongForm', 'You have not selected '
|
translate('SongsPlugin.EditSongForm', 'You have not selected '
|
||||||
'a valid topic. Either select a topic from the list, or '
|
'a valid topic. Either select a topic from the list, or '
|
||||||
'type in a new topic and click the "Add Topic to Song" '
|
'type in a new topic and click the "Add Topic to Song" '
|
||||||
'button to add the new topic.'),
|
'button to add the new topic.'),
|
||||||
QtGui.QMessageBox.Ok, QtGui.QMessageBox.Ok)
|
QtGui.QMessageBox.Ok, QtGui.QMessageBox.Ok)
|
||||||
|
|
||||||
def onTopicListViewPressed(self):
|
def onTopicListViewPressed(self):
|
||||||
@ -408,7 +412,7 @@ class EditSongForm(QtGui.QDialog, Ui_EditSongDialog):
|
|||||||
|
|
||||||
def onThemeComboChanged(self, item):
|
def onThemeComboChanged(self, item):
|
||||||
if item == 0:
|
if item == 0:
|
||||||
#None means no Theme
|
# None means no Theme
|
||||||
self.song.theme_name = None
|
self.song.theme_name = None
|
||||||
else:
|
else:
|
||||||
them_name = unicode(self.ThemeSelectionComboItem.itemText(item))
|
them_name = unicode(self.ThemeSelectionComboItem.itemText(item))
|
||||||
@ -445,7 +449,7 @@ class EditSongForm(QtGui.QDialog, Ui_EditSongDialog):
|
|||||||
data = u'%s:%s' % (verse, subVerse)
|
data = u'%s:%s' % (verse, subVerse)
|
||||||
item.setData(QtCore.Qt.UserRole, QtCore.QVariant(data))
|
item.setData(QtCore.Qt.UserRole, QtCore.QVariant(data))
|
||||||
item.setText(afterText)
|
item.setText(afterText)
|
||||||
#number of lines has change so repaint the list moving the data
|
# number of lines has change so repaint the list moving the data
|
||||||
if len(tempText.split(u'\n')) != len(afterText.split(u'\n')):
|
if len(tempText.split(u'\n')) != len(afterText.split(u'\n')):
|
||||||
tempList = {}
|
tempList = {}
|
||||||
tempId = {}
|
tempId = {}
|
||||||
@ -484,7 +488,7 @@ class EditSongForm(QtGui.QDialog, Ui_EditSongDialog):
|
|||||||
for count, parts in enumerate(match.split(u']---\n')):
|
for count, parts in enumerate(match.split(u']---\n')):
|
||||||
if len(parts) > 1:
|
if len(parts) > 1:
|
||||||
if count == 0:
|
if count == 0:
|
||||||
#make sure the tag is correctly cased
|
# make sure the tag is correctly cased
|
||||||
variant = u'%s%s' % \
|
variant = u'%s%s' % \
|
||||||
(parts[0:1].upper(), parts[1:].lower())
|
(parts[0:1].upper(), parts[1:].lower())
|
||||||
else:
|
else:
|
||||||
@ -521,7 +525,7 @@ class EditSongForm(QtGui.QDialog, Ui_EditSongDialog):
|
|||||||
QtGui.QMessageBox.critical(self,
|
QtGui.QMessageBox.critical(self,
|
||||||
translate('SongsPlugin.EditSongForm', 'Error'),
|
translate('SongsPlugin.EditSongForm', 'Error'),
|
||||||
translate('SongsPlugin.EditSongForm',
|
translate('SongsPlugin.EditSongForm',
|
||||||
'You need to type in a song title.'))
|
'You need to type in a song title.'))
|
||||||
return False
|
return False
|
||||||
if self.VerseListWidget.rowCount() == 0:
|
if self.VerseListWidget.rowCount() == 0:
|
||||||
self.SongTabWidget.setCurrentIndex(0)
|
self.SongTabWidget.setCurrentIndex(0)
|
||||||
@ -529,7 +533,7 @@ class EditSongForm(QtGui.QDialog, Ui_EditSongDialog):
|
|||||||
QtGui.QMessageBox.critical(self,
|
QtGui.QMessageBox.critical(self,
|
||||||
translate('SongsPlugin.EditSongForm', 'Error'),
|
translate('SongsPlugin.EditSongForm', 'Error'),
|
||||||
translate('SongsPlugin.EditSongForm',
|
translate('SongsPlugin.EditSongForm',
|
||||||
'You need to type in at least one verse.'))
|
'You need to type in at least one verse.'))
|
||||||
return False
|
return False
|
||||||
if self.AuthorsListView.count() == 0:
|
if self.AuthorsListView.count() == 0:
|
||||||
self.SongTabWidget.setCurrentIndex(1)
|
self.SongTabWidget.setCurrentIndex(1)
|
||||||
@ -537,8 +541,8 @@ class EditSongForm(QtGui.QDialog, Ui_EditSongDialog):
|
|||||||
answer = QtGui.QMessageBox.warning(self,
|
answer = QtGui.QMessageBox.warning(self,
|
||||||
translate('SongsPlugin.EditSongForm', 'Warning'),
|
translate('SongsPlugin.EditSongForm', 'Warning'),
|
||||||
translate('SongsPlugin.EditSongForm',
|
translate('SongsPlugin.EditSongForm',
|
||||||
'You have not added any authors for this song. Do you '
|
'You have not added any authors for this song. Do you '
|
||||||
'want to add an author now?'),
|
'want to add an author now?'),
|
||||||
QtGui.QMessageBox.Yes | QtGui.QMessageBox.No)
|
QtGui.QMessageBox.Yes | QtGui.QMessageBox.No)
|
||||||
if answer == QtGui.QMessageBox.Yes:
|
if answer == QtGui.QMessageBox.Yes:
|
||||||
return False
|
return False
|
||||||
@ -569,9 +573,9 @@ class EditSongForm(QtGui.QDialog, Ui_EditSongDialog):
|
|||||||
QtGui.QMessageBox.critical(self,
|
QtGui.QMessageBox.critical(self,
|
||||||
translate('SongsPlugin.EditSongForm', 'Error'),
|
translate('SongsPlugin.EditSongForm', 'Error'),
|
||||||
unicode(translate('SongsPlugin.EditSongForm',
|
unicode(translate('SongsPlugin.EditSongForm',
|
||||||
'The verse order is invalid. There is no verse '
|
'The verse order is invalid. There is no verse '
|
||||||
'corresponding to %s. Valid entries are %s.')) % \
|
'corresponding to %s. Valid entries are %s.')) % \
|
||||||
(order_names[count], valid))
|
(order_names[count], valid))
|
||||||
return False
|
return False
|
||||||
for count, verse in enumerate(verses):
|
for count, verse in enumerate(verses):
|
||||||
if verse not in order:
|
if verse not in order:
|
||||||
@ -580,10 +584,9 @@ class EditSongForm(QtGui.QDialog, Ui_EditSongDialog):
|
|||||||
answer = QtGui.QMessageBox.warning(self,
|
answer = QtGui.QMessageBox.warning(self,
|
||||||
translate('SongsPlugin.EditSongForm', 'Warning'),
|
translate('SongsPlugin.EditSongForm', 'Warning'),
|
||||||
unicode(translate('SongsPlugin.EditSongForm',
|
unicode(translate('SongsPlugin.EditSongForm',
|
||||||
'You have not used %s anywhere in the verse '
|
'You have not used %s anywhere in the verse '
|
||||||
'order. Are you sure you want to save the song '
|
'order. Are you sure you want to save the song '
|
||||||
'like this?')) % \
|
'like this?')) % verse_names[count].replace(u':', u' '),
|
||||||
verse_names[count].replace(u':', u' '),
|
|
||||||
QtGui.QMessageBox.Yes | QtGui.QMessageBox.No)
|
QtGui.QMessageBox.Yes | QtGui.QMessageBox.No)
|
||||||
if answer == QtGui.QMessageBox.No:
|
if answer == QtGui.QMessageBox.No:
|
||||||
return False
|
return False
|
||||||
@ -624,10 +627,10 @@ class EditSongForm(QtGui.QDialog, Ui_EditSongDialog):
|
|||||||
if QtGui.QMessageBox.question(self,
|
if QtGui.QMessageBox.question(self,
|
||||||
translate('SongsPlugin.EditSongForm', 'Add Book'),
|
translate('SongsPlugin.EditSongForm', 'Add Book'),
|
||||||
translate('SongsPlugin.EditSongForm', 'This song book does '
|
translate('SongsPlugin.EditSongForm', 'This song book does '
|
||||||
'not exist, do you want to add it?'),
|
'not exist, do you want to add it?'),
|
||||||
QtGui.QMessageBox.Yes | QtGui.QMessageBox.No,
|
QtGui.QMessageBox.Yes | QtGui.QMessageBox.No,
|
||||||
QtGui.QMessageBox.Yes) == QtGui.QMessageBox.Yes:
|
QtGui.QMessageBox.Yes) == QtGui.QMessageBox.Yes:
|
||||||
book = Book.populate(name=text)
|
book = Book.populate(name=text, publisher=u'')
|
||||||
self.songmanager.save_object(book)
|
self.songmanager.save_object(book)
|
||||||
self.song.book = book
|
self.song.book = book
|
||||||
self.loadBooks()
|
self.loadBooks()
|
||||||
|
@ -350,6 +350,8 @@ class SongMaintenanceForm(QtGui.QDialog, Ui_SongMaintenanceDialog):
|
|||||||
book_id = self._getCurrentItemId(self.BooksListWidget)
|
book_id = self._getCurrentItemId(self.BooksListWidget)
|
||||||
if book_id != -1:
|
if book_id != -1:
|
||||||
book = self.songmanager.get_object(Book, book_id)
|
book = self.songmanager.get_object(Book, book_id)
|
||||||
|
if book.publisher is None:
|
||||||
|
book.publisher = u''
|
||||||
self.bookform.NameEdit.setText(book.name)
|
self.bookform.NameEdit.setText(book.name)
|
||||||
self.bookform.PublisherEdit.setText(book.publisher)
|
self.bookform.PublisherEdit.setText(book.publisher)
|
||||||
# Save the book's name and publisher for the case that they have to
|
# Save the book's name and publisher for the case that they have to
|
||||||
|
@ -169,7 +169,7 @@ class OpenLPSongImport(object):
|
|||||||
else:
|
else:
|
||||||
new_song.authors.append(Author.populate(
|
new_song.authors.append(Author.populate(
|
||||||
display_name=u'Author Unknown'))
|
display_name=u'Author Unknown'))
|
||||||
if song.song_book_id != 0:
|
if song.book:
|
||||||
existing_song_book = self.master_manager.get_object_filtered(
|
existing_song_book = self.master_manager.get_object_filtered(
|
||||||
Book, Book.name == song.book.name)
|
Book, Book.name == song.book.name)
|
||||||
if existing_song_book:
|
if existing_song_book:
|
||||||
|
@ -195,11 +195,12 @@ class OpenSongImport(object):
|
|||||||
versetype is not None:
|
versetype is not None:
|
||||||
words = thisline
|
words = thisline
|
||||||
if versenum is not None:
|
if versenum is not None:
|
||||||
versetag = u'%s%s'%(versetype,versenum)
|
versetag = u'%s%s' % (versetype, versenum)
|
||||||
if not verses.has_key(versetype):
|
if not verses.has_key(versetype):
|
||||||
verses[versetype] = {}
|
verses[versetype] = {}
|
||||||
if not verses[versetype].has_key(versenum):
|
if not verses[versetype].has_key(versenum):
|
||||||
verses[versetype][versenum] = [] # storage for lines in this verse
|
# storage for lines in this verse
|
||||||
|
verses[versetype][versenum] = []
|
||||||
if not verses_seen.has_key(versetag):
|
if not verses_seen.has_key(versetag):
|
||||||
verses_seen[versetag] = 1
|
verses_seen[versetag] = 1
|
||||||
our_verse_order.append(versetag)
|
our_verse_order.append(versetag)
|
||||||
@ -216,10 +217,11 @@ class OpenSongImport(object):
|
|||||||
versenums = verses[versetype].keys()
|
versenums = verses[versetype].keys()
|
||||||
versenums.sort()
|
versenums.sort()
|
||||||
for num in versenums:
|
for num in versenums:
|
||||||
versetag = u'%s%s' %(versetype,num)
|
versetag = u'%s%s' % (versetype, num)
|
||||||
lines = u'\n'.join(verses[versetype][num])
|
lines = u'\n'.join(verses[versetype][num])
|
||||||
self.song_import.verses.append([versetag, lines])
|
self.song_import.verses.append([versetag, lines])
|
||||||
versetags[versetag] = 1 # keep track of what we have for error checking later
|
# Keep track of what we have for error checking later
|
||||||
|
versetags[versetag] = 1
|
||||||
# now figure out the presentation order
|
# now figure out the presentation order
|
||||||
if u'presentation' in fields and root.presentation != u'':
|
if u'presentation' in fields and root.presentation != u'':
|
||||||
order = unicode(root.presentation)
|
order = unicode(root.presentation)
|
||||||
|
Loading…
Reference in New Issue
Block a user