forked from openlp/openlp
Songs get created correctly and displays refreshed
This commit is contained in:
parent
2c3c0f2255
commit
cc9ef10821
|
@ -789,6 +789,8 @@ class ServiceManager(QtGui.QWidget):
|
||||||
self.serviceName = name[len(name) - 1]
|
self.serviceName = name[len(name) - 1]
|
||||||
self.parent.addRecentFile(filename)
|
self.parent.addRecentFile(filename)
|
||||||
self.parent.serviceChanged(True, self.serviceName)
|
self.parent.serviceChanged(True, self.serviceName)
|
||||||
|
# Refresh Plugin lists
|
||||||
|
Receiver.send_message(u'plugin_list_refresh')
|
||||||
|
|
||||||
def validateItem(self, serviceItem):
|
def validateItem(self, serviceItem):
|
||||||
"""
|
"""
|
||||||
|
|
|
@ -636,8 +636,11 @@ class EditSongForm(QtGui.QDialog, Ui_EditSongDialog):
|
||||||
self.song.title = unicode(self.TitleEditItem.text())
|
self.song.title = unicode(self.TitleEditItem.text())
|
||||||
self.song.alternate_title = unicode(self.AlternativeEdit.text())
|
self.song.alternate_title = unicode(self.AlternativeEdit.text())
|
||||||
self.song.copyright = unicode(self.CopyrightEditItem.text())
|
self.song.copyright = unicode(self.CopyrightEditItem.text())
|
||||||
self.song.search_title = self.song.title + u'@' + \
|
if self.song.alternate_title:
|
||||||
self.song.alternate_title
|
self.song.search_title = self.song.title + u'@' + \
|
||||||
|
self.song.alternate_title
|
||||||
|
else:
|
||||||
|
self.song.search_title = self.song.title
|
||||||
self.song.comments = unicode(self.CommentsEdit.toPlainText())
|
self.song.comments = unicode(self.CommentsEdit.toPlainText())
|
||||||
self.song.verse_order = unicode(self.VerseOrderEdit.text())
|
self.song.verse_order = unicode(self.VerseOrderEdit.text())
|
||||||
self.song.ccli_number = unicode(self.CCLNumberEdit.text())
|
self.song.ccli_number = unicode(self.CCLNumberEdit.text())
|
||||||
|
|
|
@ -114,6 +114,8 @@ class SongMediaItem(MediaManagerItem):
|
||||||
self.SearchButtonLayout.addWidget(self.ClearTextButton)
|
self.SearchButtonLayout.addWidget(self.ClearTextButton)
|
||||||
self.pageLayout.addLayout(self.SearchButtonLayout)
|
self.pageLayout.addLayout(self.SearchButtonLayout)
|
||||||
# Signals and slots
|
# Signals and slots
|
||||||
|
QtCore.QObject.connect(Receiver.get_receiver(),
|
||||||
|
QtCore.SIGNAL(u'plugin_list_refresh'), self.onSearchTextButtonClick)
|
||||||
QtCore.QObject.connect(self.SearchTextEdit,
|
QtCore.QObject.connect(self.SearchTextEdit,
|
||||||
QtCore.SIGNAL(u'returnPressed()'), self.onSearchTextButtonClick)
|
QtCore.SIGNAL(u'returnPressed()'), self.onSearchTextButtonClick)
|
||||||
QtCore.QObject.connect(self.SearchTextButton,
|
QtCore.QObject.connect(self.SearchTextButton,
|
||||||
|
@ -397,7 +399,6 @@ class SongMediaItem(MediaManagerItem):
|
||||||
]
|
]
|
||||||
service_item.data_string = {u'title':song.search_title,
|
service_item.data_string = {u'title':song.search_title,
|
||||||
u'authors':author_list}
|
u'authors':author_list}
|
||||||
# if xmlVersion:
|
|
||||||
service_item.xml_version = self.openLyrics.song_to_xml(song)
|
service_item.xml_version = self.openLyrics.song_to_xml(song)
|
||||||
return True
|
return True
|
||||||
|
|
||||||
|
@ -408,8 +409,8 @@ class SongMediaItem(MediaManagerItem):
|
||||||
log.debug(u'serviceLoad')
|
log.debug(u'serviceLoad')
|
||||||
if item.data_string:
|
if item.data_string:
|
||||||
search_results = self.parent.manager.get_all_objects(Song,
|
search_results = self.parent.manager.get_all_objects(Song,
|
||||||
Song.search_title.like(u'%' +
|
Song.search_title ==
|
||||||
item.data_string[u'title'].split(u'@')[0] + u'%'),
|
item.data_string[u'title'].split(u'@')[0].lower() ,
|
||||||
Song.search_title.asc())
|
Song.search_title.asc())
|
||||||
author_list = item.data_string[u'authors'].split(u', ')
|
author_list = item.data_string[u'authors'].split(u', ')
|
||||||
editId = 0
|
editId = 0
|
||||||
|
@ -427,11 +428,11 @@ class SongMediaItem(MediaManagerItem):
|
||||||
# Authors different
|
# Authors different
|
||||||
if self.addSongFromService:
|
if self.addSongFromService:
|
||||||
editId = self.openLyrics. \
|
editId = self.openLyrics. \
|
||||||
xmlToSong(item.xml_version)
|
xml_to_song(item.xml_version)
|
||||||
else:
|
else:
|
||||||
# Title does not match
|
# Title does not match
|
||||||
if self.addSongFromService:
|
if self.addSongFromService:
|
||||||
editId = self.openLyrics.xmlToSong(item.xml_version)
|
editId = self.openLyrics.xml_to_song(item.xml_version)
|
||||||
# Update service with correct song id
|
# Update service with correct song id
|
||||||
if editId != 0:
|
if editId != 0:
|
||||||
Receiver.send_message(u'service_item_update',
|
Receiver.send_message(u'service_item_update',
|
||||||
|
|
|
@ -281,14 +281,15 @@ class OpenLyricsParser(object):
|
||||||
element = self._add_text_to_element(u'lines', element)
|
element = self._add_text_to_element(u'lines', element)
|
||||||
for line in unicode(verse[1]).split(u'\n'):
|
for line in unicode(verse[1]).split(u'\n'):
|
||||||
self._add_text_to_element(u'line', element, line)
|
self._add_text_to_element(u'line', element, line)
|
||||||
print self._dump_xml(song_xml)
|
return self._extract_xml(song_xml)
|
||||||
self.xml_to_song(self._extract_xml(song_xml))
|
|
||||||
return u'' #self.xml_to_song(self._extract_xml(song_xml))
|
|
||||||
|
|
||||||
def xml_to_song(self, xml):
|
def xml_to_song(self, xml):
|
||||||
"""
|
"""
|
||||||
Create a Song from OpenLyrics format xml
|
Create a Song from OpenLyrics format xml
|
||||||
"""
|
"""
|
||||||
|
# No xml get out of here
|
||||||
|
if not xml:
|
||||||
|
return 0
|
||||||
song = Song()
|
song = Song()
|
||||||
if xml[:5] == u'<?xml':
|
if xml[:5] == u'<?xml':
|
||||||
xml = xml[38:]
|
xml = xml[38:]
|
||||||
|
@ -296,19 +297,27 @@ class OpenLyricsParser(object):
|
||||||
properties = song_xml.properties
|
properties = song_xml.properties
|
||||||
song.copyright = unicode(properties.copyright.text)
|
song.copyright = unicode(properties.copyright.text)
|
||||||
song.verse_order = unicode(properties.verseOrder.text)
|
song.verse_order = unicode(properties.verseOrder.text)
|
||||||
|
song.topics = []
|
||||||
|
song.book = None
|
||||||
|
theme_name = None
|
||||||
try:
|
try:
|
||||||
song.ccli_number = unicode(properties.ccliNo.text)
|
song.ccli_number = unicode(properties.ccliNo.text)
|
||||||
except:
|
except:
|
||||||
pass
|
song.ccli_number = u''
|
||||||
try:
|
try:
|
||||||
song.theme_name = unicode(properties.themes.theme)
|
theme_name = unicode(properties.themes.theme)
|
||||||
except:
|
except:
|
||||||
pass
|
pass
|
||||||
|
if theme_name:
|
||||||
|
song.theme_name = theme_name
|
||||||
|
else:
|
||||||
|
song.theme_name = u''
|
||||||
# Process Titles
|
# Process Titles
|
||||||
for title in properties.titles.title:
|
for title in properties.titles.title:
|
||||||
if not song.title:
|
if not song.title:
|
||||||
song.title = title.text
|
song.title = unicode(title.text)
|
||||||
song.search_title = unicode(song.title)
|
song.search_title = unicode(song.title)
|
||||||
|
song.alternate_title = u''
|
||||||
else:
|
else:
|
||||||
song.alternate_title = unicode(title.text)
|
song.alternate_title = unicode(title.text)
|
||||||
song.search_title += u'@' + song.alternate_title
|
song.search_title += u'@' + song.alternate_title
|
||||||
|
@ -337,7 +346,7 @@ class OpenLyricsParser(object):
|
||||||
for author in properties.authors.author:
|
for author in properties.authors.author:
|
||||||
self._process_author(author.text, song)
|
self._process_author(author.text, song)
|
||||||
self.manager.save_object(song)
|
self.manager.save_object(song)
|
||||||
return 0
|
return song.id
|
||||||
|
|
||||||
def _add_text_to_element(self, tag, parent, text=None, label=None):
|
def _add_text_to_element(self, tag, parent, text=None, label=None):
|
||||||
if label:
|
if label:
|
||||||
|
|
Loading…
Reference in New Issue