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
|
# 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.Words], AuthorType.Words)
|
||||||
self.author_types_combo_box.addItem(AuthorType.Types[AuthorType.Music], AuthorType.Music)
|
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)
|
self.author_types_combo_box.addItem(AuthorType.Types[AuthorType.Translation], AuthorType.Translation)
|
||||||
|
|
||||||
def load_topics(self):
|
def load_topics(self):
|
||||||
|
@ -66,13 +66,17 @@ class AuthorType(object):
|
|||||||
"""
|
"""
|
||||||
Enumeration for Author types.
|
Enumeration for Author types.
|
||||||
They are defined by OpenLyrics: http://openlyrics.info/dataformat.html#authors
|
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'
|
Words = 'words'
|
||||||
Music = 'music'
|
Music = 'music'
|
||||||
|
WordsAndMusic = 'words+music'
|
||||||
Translation = 'translation'
|
Translation = 'translation'
|
||||||
Types = {
|
Types = {
|
||||||
Words: translate('OpenLP.Ui', 'Words'),
|
Words: translate('OpenLP.Ui', 'Words'),
|
||||||
Music: translate('OpenLP.Ui', 'Music'),
|
Music: translate('OpenLP.Ui', 'Music'),
|
||||||
|
WordsAndMusic: translate('OpenLP.Ui', 'Words and Music'),
|
||||||
Translation: translate('OpenLP.Ui', 'Translation')
|
Translation: translate('OpenLP.Ui', 'Translation')
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -71,7 +71,7 @@ from lxml import etree, objectify
|
|||||||
from openlp.core.common import translate
|
from openlp.core.common import translate
|
||||||
from openlp.core.lib import FormattingTags
|
from openlp.core.lib import FormattingTags
|
||||||
from openlp.plugins.songs.lib import VerseType, clean_song
|
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
|
from openlp.core.utils import get_application_version
|
||||||
|
|
||||||
log = logging.getLogger(__name__)
|
log = logging.getLogger(__name__)
|
||||||
@ -274,6 +274,12 @@ class OpenLyrics(object):
|
|||||||
for author_song in song.authors_songs:
|
for author_song in song.authors_songs:
|
||||||
element = self._add_text_to_element('author', authors, author_song.author.display_name)
|
element = self._add_text_to_element('author', authors, author_song.author.display_name)
|
||||||
if author_song.author_type:
|
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)
|
element.set('type', author_song.author_type)
|
||||||
book = self.manager.get_object_filtered(Book, Book.id == song.song_book_id)
|
book = self.manager.get_object_filtered(Book, Book.id == song.song_book_id)
|
||||||
if book is not None:
|
if book is not None:
|
||||||
|
Loading…
Reference in New Issue
Block a user