Various clean ups:

- refactor method argument
- some variable name fixes
- converted dict to list
- added missing lines

bzr-revno: 1996
This commit is contained in:
Andreas Preikschat 2012-06-17 09:16:34 +01:00 committed by Tim Bentley
commit f542ebf94d
10 changed files with 44 additions and 48 deletions

View File

@ -234,10 +234,10 @@ class Renderer(object):
serviceItem = ServiceItem() serviceItem = ServiceItem()
if self.force_page: if self.force_page:
# make big page for theme edit dialog to get line count # make big page for theme edit dialog to get line count
serviceItem.add_from_text(u'', VERSE_FOR_LINE_COUNT) serviceItem.add_from_text(VERSE_FOR_LINE_COUNT)
else: else:
self.image_manager.deleteImage(theme_data.theme_name) self.image_manager.deleteImage(theme_data.theme_name)
serviceItem.add_from_text(u'', VERSE) serviceItem.add_from_text(VERSE)
serviceItem.renderer = self serviceItem.renderer = self
serviceItem.raw_footer = FOOTER serviceItem.raw_footer = FOOTER
# if No file do not update cache # if No file do not update cache

View File

@ -220,20 +220,17 @@ class ServiceItem(object):
self.image_border) self.image_border)
self._new_item() self._new_item()
def add_from_text(self, title, raw_slide, verse_tag=None): def add_from_text(self, raw_slide, verse_tag=None):
""" """
Add a text slide to the service item. Add a text slide to the service item.
``frame_title``
The title of the slide in the service item.
``raw_slide`` ``raw_slide``
The raw text of the slide. The raw text of the slide.
""" """
if verse_tag: if verse_tag:
verse_tag = verse_tag.upper() verse_tag = verse_tag.upper()
self.service_item_type = ServiceItemType.Text self.service_item_type = ServiceItemType.Text
title = title.split(u'\n')[0] title = raw_slide[:30].split(u'\n')[0]
self._raw_frames.append( self._raw_frames.append(
{u'title': title, u'raw_slide': raw_slide, u'verseTag': verse_tag}) {u'title': title, u'raw_slide': raw_slide, u'verseTag': verse_tag})
self._new_item() self._new_item()

View File

@ -63,8 +63,7 @@ class BiblePlugin(Plugin):
# unicode(UiStrings().Export)) # unicode(UiStrings().Export))
# Set to invisible until we can export bibles # Set to invisible until we can export bibles
self.exportBibleItem.setVisible(False) self.exportBibleItem.setVisible(False)
if self.manager.old_bible_databases: self.toolsUpgradeItem.setVisible(bool(self.manager.old_bible_databases))
self.toolsUpgradeItem.setVisible(True)
def finalise(self): def finalise(self):
""" """

View File

@ -63,6 +63,7 @@ class Verse(BaseModel):
""" """
pass pass
def init_schema(url): def init_schema(url):
""" """
Setup a bible database connection and initialise the database schema. Setup a bible database connection and initialise the database schema.

View File

@ -418,7 +418,7 @@ class BibleMediaItem(MediaManagerItem):
``bible`` ``bible``
The bible to initialise (unicode). The bible to initialise (unicode).
``last_book_id`` ``last_book_id``
The "book reference id" of the book which is choosen at the moment. The "book reference id" of the book which is choosen at the moment.
(int) (int)
@ -976,7 +976,7 @@ class BibleMediaItem(MediaManagerItem):
else: else:
service_item.theme = self.settings.bible_theme service_item.theme = self.settings.bible_theme
for slide in raw_slides: for slide in raw_slides:
service_item.add_from_text(slide[:30], slide) service_item.add_from_text(slide)
return True return True
def formatTitle(self, start_bitem, old_bitem): def formatTitle(self, start_bitem, old_bitem):

View File

@ -210,12 +210,12 @@ class CustomMediaItem(MediaManagerItem):
theme = customSlide.theme_name theme = customSlide.theme_name
if theme: if theme:
service_item.theme = theme service_item.theme = theme
customXML = CustomXMLParser(customSlide.text) custom_xml = CustomXMLParser(customSlide.text)
verseList = customXML.get_verses() verse_list = custom_xml.get_verses()
raw_slides = [verse[1] for verse in verseList] raw_slides = [verse[1] for verse in verse_list]
service_item.title = title service_item.title = title
for slide in raw_slides: for slide in raw_slides:
service_item.add_from_text(slide[:30], slide) service_item.add_from_text(slide)
if Settings().value(self.settingsSection + u'/display footer', if Settings().value(self.settingsSection + u'/display footer',
QtCore.QVariant(True)).toBool() or credit: QtCore.QVariant(True)).toBool() or credit:
service_item.raw_footer.append(u' '.join([title, credit])) service_item.raw_footer.append(u' '.join([title, credit]))

View File

@ -57,19 +57,17 @@ class AuthorsForm(QtGui.QDialog, Ui_AuthorsDialog):
self.firstNameEdit.setFocus() self.firstNameEdit.setFocus()
return QtGui.QDialog.exec_(self) return QtGui.QDialog.exec_(self)
def onFirstNameEditTextEdited(self, text): def onFirstNameEditTextEdited(self, display_name):
if not self._autoDisplayName: if not self._autoDisplayName:
return return
display_name = text if not self.lastNameEdit.text():
if self.lastNameEdit.text() != u'':
display_name = display_name + u' ' + self.lastNameEdit.text() display_name = display_name + u' ' + self.lastNameEdit.text()
self.displayEdit.setText(display_name) self.displayEdit.setText(display_name)
def onLastNameEditTextEdited(self, text): def onLastNameEditTextEdited(self, display_name):
if not self._autoDisplayName: if not self._autoDisplayName:
return return
display_name = text if not self.firstNameEdit.text():
if self.firstNameEdit.text() != u'':
display_name = self.firstNameEdit.text() + u' ' + display_name display_name = self.firstNameEdit.text() + u' ' + display_name
self.displayEdit.setText(display_name) self.displayEdit.setText(display_name)

View File

@ -256,8 +256,8 @@ class EditSongForm(QtGui.QDialog, Ui_EditSongDialog):
verse_tags_translated = False verse_tags_translated = False
if self.song.lyrics.startswith(u'<?xml version='): if self.song.lyrics.startswith(u'<?xml version='):
songXML = SongXML() songXML = SongXML()
verseList = songXML.get_verses(self.song.lyrics) verse_list = songXML.get_verses(self.song.lyrics)
for count, verse in enumerate(verseList): for count, verse in enumerate(verse_list):
self.verseListWidget.setRowCount( self.verseListWidget.setRowCount(
self.verseListWidget.rowCount() + 1) self.verseListWidget.rowCount() + 1)
# This silently migrates from localized verse type markup. # This silently migrates from localized verse type markup.
@ -479,27 +479,26 @@ class EditSongForm(QtGui.QDialog, Ui_EditSongDialog):
def onVerseEditButtonClicked(self): def onVerseEditButtonClicked(self):
item = self.verseListWidget.currentItem() item = self.verseListWidget.currentItem()
if item: if item:
tempText = item.text() temp_text = item.text()
verseId = unicode(item.data(QtCore.Qt.UserRole).toString()) verse_id = unicode(item.data(QtCore.Qt.UserRole).toString())
self.verseForm.setVerse(tempText, True, verseId) self.verseForm.setVerse(temp_text, True, verse_id)
if self.verseForm.exec_(): if self.verseForm.exec_():
after_text, verse_tag, verse_num = self.verseForm.getVerse() after_text, verse_tag, verse_num = self.verseForm.getVerse()
verse_def = u'%s%s' % (verse_tag, verse_num) verse_def = u'%s%s' % (verse_tag, verse_num)
item.setData(QtCore.Qt.UserRole, QtCore.QVariant(verse_def)) item.setData(QtCore.Qt.UserRole, QtCore.QVariant(verse_def))
item.setText(after_text) item.setText(after_text)
# number of lines has changed, repaint the list moving the data # number of lines has changed, repaint the list moving the data
if len(tempText.split(u'\n')) != len(after_text.split(u'\n')): if len(temp_text.split(u'\n')) != len(after_text.split(u'\n')):
tempList = {} temp_list = []
tempId = {} temp_ids = []
for row in range(self.verseListWidget.rowCount()): for row in range(self.verseListWidget.rowCount()):
tempList[row] = self.verseListWidget.item(row, 0)\ item = self.verseListWidget.item(row, 0)
.text() temp_list.append(item.text())
tempId[row] = self.verseListWidget.item(row, 0)\ temp_ids.append(item.data(QtCore.Qt.UserRole))
.data(QtCore.Qt.UserRole)
self.verseListWidget.clear() self.verseListWidget.clear()
for row in range (0, len(tempList)): for row, entry in enumerate(temp_list):
item = QtGui.QTableWidgetItem(tempList[row], 0) item = QtGui.QTableWidgetItem(entry, 0)
item.setData(QtCore.Qt.UserRole, tempId[row]) item.setData(QtCore.Qt.UserRole, temp_ids[row])
self.verseListWidget.setItem(row, 0, item) self.verseListWidget.setItem(row, 0, item)
self.tagRows() self.tagRows()
# Check if all verse tags are used. # Check if all verse tags are used.
@ -923,9 +922,9 @@ class EditSongForm(QtGui.QDialog, Ui_EditSongDialog):
multiple = [] multiple = []
for i in range(self.verseListWidget.rowCount()): for i in range(self.verseListWidget.rowCount()):
item = self.verseListWidget.item(i, 0) item = self.verseListWidget.item(i, 0)
verseId = unicode(item.data(QtCore.Qt.UserRole).toString()) verse_id = unicode(item.data(QtCore.Qt.UserRole).toString())
verse_tag = verseId[0] verse_tag = verse_id[0]
verse_num = verseId[1:] verse_num = verse_id[1:]
sxml.add_verse_to_lyrics(verse_tag, verse_num, sxml.add_verse_to_lyrics(verse_tag, verse_num,
unicode(item.text())) unicode(item.text()))
if verse_num > u'1' and verse_tag not in multiple: if verse_num > u'1' and verse_tag not in multiple:

View File

@ -193,6 +193,7 @@ class VerseType(object):
return default return default
return verse_index return verse_index
def retrieve_windows_encoding(recommendation=None): def retrieve_windows_encoding(recommendation=None):
""" """
Determines which encoding to use on an information source. The process uses Determines which encoding to use on an information source. The process uses
@ -252,12 +253,14 @@ def retrieve_windows_encoding(recommendation=None):
return None return None
return filter(lambda item: item[1] == choice[0], encodings)[0][0] return filter(lambda item: item[1] == choice[0], encodings)[0][0]
def clean_string(string): def clean_string(string):
""" """
Strips punctuation from the passed string to assist searching Strips punctuation from the passed string to assist searching
""" """
return WHITESPACE.sub(u' ', APOSTROPHE.sub(u'', string)).lower() return WHITESPACE.sub(u' ', APOSTROPHE.sub(u'', string)).lower()
def clean_title(title): def clean_title(title):
""" """
Cleans the song title by removing Unicode control chars groups C0 & C1, Cleans the song title by removing Unicode control chars groups C0 & C1,
@ -265,6 +268,7 @@ def clean_title(title):
""" """
return CONTROL_CHARS.sub(u'', title).rstrip() return CONTROL_CHARS.sub(u'', title).rstrip()
def clean_song(manager, song): def clean_song(manager, song):
""" """
Cleans the search title, rebuilds the search lyrics, adds a default author Cleans the search title, rebuilds the search lyrics, adds a default author

View File

@ -465,14 +465,14 @@ class SongMediaItem(MediaManagerItem):
service_item.theme = song.theme_name service_item.theme = song.theme_name
service_item.edit_id = item_id service_item.edit_id = item_id
if song.lyrics.startswith(u'<?xml version='): if song.lyrics.startswith(u'<?xml version='):
verseList = SongXML().get_verses(song.lyrics) verse_list = SongXML().get_verses(song.lyrics)
# no verse list or only 1 space (in error) # no verse list or only 1 space (in error)
verse_tags_translated = False verse_tags_translated = False
if VerseType.from_translated_string(unicode( if VerseType.from_translated_string(unicode(
verseList[0][0][u'type'])) is not None: verse_list[0][0][u'type'])) is not None:
verse_tags_translated = True verse_tags_translated = True
if not song.verse_order.strip(): if not song.verse_order.strip():
for verse in verseList: for verse in verse_list:
# We cannot use from_loose_input() here, because database # We cannot use from_loose_input() here, because database
# is supposed to contain English lowercase singlechar tags. # is supposed to contain English lowercase singlechar tags.
verse_tag = verse[0][u'type'] verse_tag = verse[0][u'type']
@ -486,14 +486,13 @@ class SongMediaItem(MediaManagerItem):
verse_index = VerseType.from_tag(verse_tag) verse_index = VerseType.from_tag(verse_tag)
verse_tag = VerseType.TranslatedTags[verse_index].upper() verse_tag = VerseType.TranslatedTags[verse_index].upper()
verse_def = u'%s%s' % (verse_tag, verse[0][u'label']) verse_def = u'%s%s' % (verse_tag, verse[0][u'label'])
service_item.add_from_text( service_item.add_from_text(unicode(verse[1]), verse_def)
verse[1][:30], unicode(verse[1]), verse_def)
else: else:
# Loop through the verse list and expand the song accordingly. # Loop through the verse list and expand the song accordingly.
for order in song.verse_order.lower().split(): for order in song.verse_order.lower().split():
if not order: if not order:
break break
for verse in verseList: for verse in verse_list:
if verse[0][u'type'][0].lower() == order[0] and \ if verse[0][u'type'][0].lower() == order[0] and \
(verse[0][u'label'].lower() == order[1:] or \ (verse[0][u'label'].lower() == order[1:] or \
not order[1:]): not order[1:]):
@ -506,12 +505,11 @@ class SongMediaItem(MediaManagerItem):
verse_tag = VerseType.TranslatedTags[verse_index] verse_tag = VerseType.TranslatedTags[verse_index]
verse_def = u'%s%s' % (verse_tag, verse_def = u'%s%s' % (verse_tag,
verse[0][u'label']) verse[0][u'label'])
service_item.add_from_text( service_item.add_from_text(verse[1], verse_def)
verse[1][:30], verse[1], verse_def)
else: else:
verses = song.lyrics.split(u'\n\n') verses = song.lyrics.split(u'\n\n')
for slide in verses: for slide in verses:
service_item.add_from_text(slide[:30], unicode(slide)) service_item.add_from_text(unicode(slide))
service_item.title = song.title service_item.title = song.title
author_list = [unicode(author.display_name) for author in song.authors] author_list = [unicode(author.display_name) for author in song.authors]
service_item.raw_footer.append(song.title) service_item.raw_footer.append(song.title)