forked from openlp/openlp
Add new type for 'Words and Music'
This commit is contained in:
parent
fb85b9858a
commit
577c7321ff
@ -308,6 +308,7 @@ class EditSongForm(QtGui.QDialog, Ui_EditSongDialog, RegistryProperties):
|
||||
# Don't iterate over the dictionary to give them this specific order
|
||||
self.author_types_combo_box.addItem(AuthorType.Types[AuthorType.Words], AuthorType.Words)
|
||||
self.author_types_combo_box.addItem(AuthorType.Types[AuthorType.Music], AuthorType.Music)
|
||||
self.author_types_combo_box.addItem(AuthorType.Types[AuthorType.WordsAndMusic], AuthorType.WordsAndMusic)
|
||||
self.author_types_combo_box.addItem(AuthorType.Types[AuthorType.Translation], AuthorType.Translation)
|
||||
|
||||
def load_topics(self):
|
||||
|
@ -66,13 +66,17 @@ class AuthorType(object):
|
||||
"""
|
||||
Enumeration for Author types.
|
||||
They are defined by OpenLyrics: http://openlyrics.info/dataformat.html#authors
|
||||
|
||||
The 'words+music' type is not an official type, but is provided for convenience.
|
||||
"""
|
||||
Words = 'words'
|
||||
Music = 'music'
|
||||
WordsAndMusic = 'words+music'
|
||||
Translation = 'translation'
|
||||
Types = {
|
||||
Words: translate('OpenLP.Ui', 'Words'),
|
||||
Music: translate('OpenLP.Ui', 'Music'),
|
||||
WordsAndMusic: translate('OpenLP.Ui', 'Words and Music'),
|
||||
Translation: translate('OpenLP.Ui', 'Translation')
|
||||
}
|
||||
|
||||
|
@ -71,7 +71,7 @@ from lxml import etree, objectify
|
||||
from openlp.core.common import translate
|
||||
from openlp.core.lib import FormattingTags
|
||||
from openlp.plugins.songs.lib import VerseType, clean_song
|
||||
from openlp.plugins.songs.lib.db import Author, AuthorSong, Book, Song, Topic
|
||||
from openlp.plugins.songs.lib.db import Author, AuthorSong, AuthorType, Book, Song, Topic
|
||||
from openlp.core.utils import get_application_version
|
||||
|
||||
log = logging.getLogger(__name__)
|
||||
@ -274,6 +274,12 @@ class OpenLyrics(object):
|
||||
for author_song in song.authors_songs:
|
||||
element = self._add_text_to_element('author', authors, author_song.author.display_name)
|
||||
if author_song.author_type:
|
||||
# Handle the special case 'words+music': Need to create two separate authors for that
|
||||
if author_song.author_type == AuthorType.WordsAndMusic:
|
||||
element.set('type', AuthorType.Words)
|
||||
element = self._add_text_to_element('author', authors, author_song.author.display_name)
|
||||
element.set('type', AuthorType.Music)
|
||||
else:
|
||||
element.set('type', author_song.author_type)
|
||||
book = self.manager.get_object_filtered(Book, Book.id == song.song_book_id)
|
||||
if book is not None:
|
||||
|
Loading…
Reference in New Issue
Block a user