forked from openlp/openlp
cleanups+multi-song delete
This commit is contained in:
parent
dad04bfd90
commit
3ceb0267e9
|
@ -111,12 +111,16 @@ class SongManager():
|
||||||
return False
|
return False
|
||||||
|
|
||||||
def delete_song(self, songid):
|
def delete_song(self, songid):
|
||||||
|
print songid
|
||||||
song = self.get_song(songid)
|
song = self.get_song(songid)
|
||||||
|
print song.title
|
||||||
try:
|
try:
|
||||||
self.session.delete(song)
|
self.session.delete(song)
|
||||||
self.session.commit()
|
self.session.commit()
|
||||||
|
print "ok"
|
||||||
return True
|
return True
|
||||||
except:
|
except:
|
||||||
|
print "error"
|
||||||
self.session.rollback()
|
self.session.rollback()
|
||||||
log.exception(u'Could not delete song from song database')
|
log.exception(u'Could not delete song from song database')
|
||||||
return False
|
return False
|
||||||
|
|
|
@ -273,19 +273,21 @@ class SongMediaItem(MediaManagerItem):
|
||||||
def onDeleteClick(self):
|
def onDeleteClick(self):
|
||||||
items = self.ListView.selectedIndexes()
|
items = self.ListView.selectedIndexes()
|
||||||
if items:
|
if items:
|
||||||
if len(items) > 1:
|
if len(items) == 1:
|
||||||
ans = QtGui.QMessageBox.question(None,
|
del_message = self.trUtf8('Delete song?')
|
||||||
self.trUtf8('Delete Confirmation'),
|
else:
|
||||||
self.trUtf8('Delete %d songs?' % len(items)),
|
del_message = self.trUtf8('Delete %d song?' % len(items))
|
||||||
QtGui.QMessageBox.StandardButtons(QtGui.QMessageBox.Ok|
|
ans = QtGui.QMessageBox.question(None,
|
||||||
QtGui.QMessageBox.Cancel),
|
self.trUtf8('Delete Confirmation'), del_message,
|
||||||
QtGui.QMessageBox.Ok)
|
QtGui.QMessageBox.StandardButtons(QtGui.QMessageBox.Ok|
|
||||||
if ans == QtGui.QMessageBox.Cancel:
|
QtGui.QMessageBox.Cancel),
|
||||||
return
|
QtGui.QMessageBox.Ok)
|
||||||
for item in items[:]:
|
if ans == QtGui.QMessageBox.Cancel:
|
||||||
|
return
|
||||||
|
for item in items:
|
||||||
item_id = (item.data(QtCore.Qt.UserRole)).toInt()[0]
|
item_id = (item.data(QtCore.Qt.UserRole)).toInt()[0]
|
||||||
self.parent.songmanager.delete_song(item_id)
|
self.parent.songmanager.delete_song(item_id)
|
||||||
self.ListView.takeItem(item.row())
|
self.onSearchTextButtonClick()
|
||||||
|
|
||||||
def generateSlideData(self, service_item):
|
def generateSlideData(self, service_item):
|
||||||
raw_footer = []
|
raw_footer = []
|
||||||
|
|
|
@ -32,7 +32,7 @@ property# -*- coding: utf-8 -*-
|
||||||
import re
|
import re
|
||||||
import os
|
import os
|
||||||
import time
|
import time
|
||||||
from PyQt4 import QtCore, QtGui
|
from PyQt4 import QtCore
|
||||||
from songimport import SongImport
|
from songimport import SongImport
|
||||||
|
|
||||||
if os.name == u'nt':
|
if os.name == u'nt':
|
||||||
|
@ -316,7 +316,8 @@ class SofImport(object):
|
||||||
+ authors[i + 1].strip().split(u' ')[-1]
|
+ authors[i + 1].strip().split(u' ')[-1]
|
||||||
if author2.endswith(u'.'):
|
if author2.endswith(u'.'):
|
||||||
author2 = author2[:-1]
|
author2 = author2[:-1]
|
||||||
self.song.add_author(author2)
|
if author2:
|
||||||
|
self.song.add_author(author2)
|
||||||
|
|
||||||
def add_verse_line(self, text):
|
def add_verse_line(self, text):
|
||||||
"""
|
"""
|
||||||
|
@ -340,17 +341,10 @@ class SofImport(object):
|
||||||
if self.currentverse.strip() == u'':
|
if self.currentverse.strip() == u'':
|
||||||
return
|
return
|
||||||
if self.is_chorus:
|
if self.is_chorus:
|
||||||
if not self.song.contains_verse('C'):
|
versetag = u'C'
|
||||||
versetag = 'C'
|
|
||||||
elif not self.song.contains_verse('B'):
|
|
||||||
versetag = 'B'
|
|
||||||
elif not self.song.contains_verse('E'):
|
|
||||||
versetag = 'E'
|
|
||||||
else:
|
|
||||||
versetag = 'O'
|
|
||||||
splitat = None
|
splitat = None
|
||||||
else:
|
else:
|
||||||
versetag = 'V'
|
versetag = u'V'
|
||||||
splitat = self.verse_splits(self.song.get_song_number())
|
splitat = self.verse_splits(self.song.get_song_number())
|
||||||
if splitat:
|
if splitat:
|
||||||
ln = 0
|
ln = 0
|
||||||
|
|
|
@ -120,8 +120,8 @@ class SongImport(object):
|
||||||
def add_verse(self, verse, versetag):
|
def add_verse(self, verse, versetag):
|
||||||
"""
|
"""
|
||||||
Add a verse. This is the whole verse, lines split by \n
|
Add a verse. This is the whole verse, lines split by \n
|
||||||
Verse tag can be V1/C/B etc, or 'V' (will count the verses/
|
Verse tag can be V1/C1/B etc, or 'V' and 'C' (will count the verses/
|
||||||
itself) or None, where it will assume verse
|
choruses itself) or None, where it will assume verse
|
||||||
It will also attempt to detect duplicates. In this case it will just
|
It will also attempt to detect duplicates. In this case it will just
|
||||||
add to the verse order
|
add to the verse order
|
||||||
"""
|
"""
|
||||||
|
@ -129,13 +129,17 @@ class SongImport(object):
|
||||||
if oldverse.strip() == verse.strip():
|
if oldverse.strip() == verse.strip():
|
||||||
self.verse_order_list.append(oldversetag)
|
self.verse_order_list.append(oldversetag)
|
||||||
return
|
return
|
||||||
|
if versetag.startswith(u'C'):
|
||||||
|
self.choruscount += 1
|
||||||
|
if versetag == u'C':
|
||||||
|
versetag += unicode(self.choruscount)
|
||||||
if versetag == u'V' or not versetag:
|
if versetag == u'V' or not versetag:
|
||||||
self.versecount += 1
|
self.versecount += 1
|
||||||
versetag = u'V' + unicode(self.versecount)
|
versetag = u'V' + unicode(self.versecount)
|
||||||
self.verses.append([versetag, verse.rstrip()])
|
self.verses.append([versetag, verse.rstrip()])
|
||||||
self.verse_order_list.append(versetag)
|
self.verse_order_list.append(versetag)
|
||||||
if versetag.startswith(u'V') and self.contains_verse(u'C'):
|
if versetag.startswith(u'V') and self.contains_verse(u'C1'):
|
||||||
self.verse_order_list.append(u'C')
|
self.verse_order_list.append(u'C1')
|
||||||
|
|
||||||
def repeat_verse(self):
|
def repeat_verse(self):
|
||||||
"""
|
"""
|
||||||
|
|
|
@ -194,7 +194,10 @@ class SongsPlugin(Plugin):
|
||||||
log.exception('Could not import SoF file')
|
log.exception('Could not import SoF file')
|
||||||
QtGui.QMessageBox.critical(None,
|
QtGui.QMessageBox.critical(None,
|
||||||
self.ImportSongMenu.trUtf8('Import Error'),
|
self.ImportSongMenu.trUtf8('Import Error'),
|
||||||
self.ImportSongMenu.trUtf8('Error importing Songs of Fellowship file'),
|
self.ImportSongMenu.trUtf8('Error importing Songs of '
|
||||||
|
+ 'Fellowship file.\nOpenOffice.org must be installed'
|
||||||
|
+ ' and you must be using an unedited copy of the RTF'
|
||||||
|
+ ' included with the Songs of Fellowship Music Editions'),
|
||||||
QtGui.QMessageBox.StandardButtons(QtGui.QMessageBox.Ok),
|
QtGui.QMessageBox.StandardButtons(QtGui.QMessageBox.Ok),
|
||||||
QtGui.QMessageBox.Ok)
|
QtGui.QMessageBox.Ok)
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue