From 66a22f7711699eeff13adfee99c864d55e7d5493 Mon Sep 17 00:00:00 2001 From: Andreas Preikschat Date: Fri, 10 Sep 2010 19:09:36 +0200 Subject: [PATCH 01/32] head From 6654a7993ac524742be6b57f91860c7849d19601 Mon Sep 17 00:00:00 2001 From: Andreas Preikschat Date: Sat, 11 Sep 2010 21:36:47 +0200 Subject: [PATCH 02/32] started to rework bibles (dual/single verses) --- .../plugins/bibles/forms/importwizardform.py | 51 +++++------- openlp/plugins/bibles/lib/mediaitem.py | 83 ++++++++++--------- 2 files changed, 69 insertions(+), 65 deletions(-) diff --git a/openlp/plugins/bibles/forms/importwizardform.py b/openlp/plugins/bibles/forms/importwizardform.py index 67f3756dc..ffee1876a 100644 --- a/openlp/plugins/bibles/forms/importwizardform.py +++ b/openlp/plugins/bibles/forms/importwizardform.py @@ -126,29 +126,29 @@ class ImportWizardForm(QtGui.QWizard, Ui_BibleImportWizard): if self.field(u'osis_location').toString() == u'': QtGui.QMessageBox.critical(self, translate('BiblesPlugin.ImportWizardForm', - 'Invalid Bible Location'), + 'Invalid Bible Location'), translate('BiblesPlugin.ImportWizardForm', - 'You need to specify a file to import your ' - 'Bible from.')) + 'You need to specify a file to import your ' + 'Bible from.')) self.OSISLocationEdit.setFocus() return False elif self.field(u'source_format').toInt()[0] == BibleFormat.CSV: if self.field(u'csv_booksfile').toString() == u'': QtGui.QMessageBox.critical(self, translate('BiblesPlugin.ImportWizardForm', - 'Invalid Books File'), + 'Invalid Books File'), translate('BiblesPlugin.ImportWizardForm', - 'You need to specify a file with books of ' - 'the Bible to use in the import.')) + 'You need to specify a file with books of ' + 'the Bible to use in the import.')) self.BooksLocationEdit.setFocus() return False elif self.field(u'csv_versefile').toString() == u'': QtGui.QMessageBox.critical(self, translate('BiblesPlugin.ImportWizardForm', - 'Invalid Verse File'), + 'Invalid Verse File'), translate('BiblesPlugin.ImportWizardForm', - 'You need to specify a file of Bible ' - 'verses to import.')) + 'You need to specify a file of Bible ' + 'verses to import.')) self.CsvVerseLocationEdit.setFocus() return False elif self.field(u'source_format').toInt()[0] == \ @@ -156,10 +156,10 @@ class ImportWizardForm(QtGui.QWizard, Ui_BibleImportWizard): if self.field(u'opensong_file').toString() == u'': QtGui.QMessageBox.critical(self, translate('BiblesPlugin.ImportWizardForm', - 'Invalid OpenSong Bible'), + 'Invalid OpenSong Bible'), translate('BiblesPlugin.ImportWizardForm', - 'You need to specify an OpenSong Bible ' - 'file to import.')) + 'You need to specify an OpenSong Bible ' + 'file to import.')) self.OpenSongFileEdit.setFocus() return False return True @@ -171,29 +171,26 @@ class ImportWizardForm(QtGui.QWizard, Ui_BibleImportWizard): if license_version == u'': QtGui.QMessageBox.critical(self, translate('BiblesPlugin.ImportWizardForm', - 'Empty Version Name'), + 'Empty Version Name'), translate('BiblesPlugin.ImportWizardForm', - 'You need to specify a version name for your ' - 'Bible.')) + 'You need to specify a version name for your Bible.')) self.VersionNameEdit.setFocus() return False elif license_copyright == u'': QtGui.QMessageBox.critical(self, translate('BiblesPlugin.ImportWizardForm', - 'Empty Copyright'), + 'Empty Copyright'), translate('BiblesPlugin.ImportWizardForm', - 'You need to set a copyright for your Bible! ' - 'Bibles in the Public Domain need to be marked as ' - 'such.')) + 'You need to set a copyright for your Bible! ' + 'Bibles in the Public Domain need to be marked as such.')) self.CopyrightEdit.setFocus() return False elif self.manager.exists(license_version): QtGui.QMessageBox.critical(self, + translate('BiblesPlugin.ImportWizardForm', 'Bible Exists'), translate('BiblesPlugin.ImportWizardForm', - 'Bible Exists'), - translate('BiblesPlugin.ImportWizardForm', - 'This Bible already exists! Please import ' - 'a different Bible or first delete the existing one.')) + 'This Bible already exists! Please import ' + 'a different Bible or first delete the existing one.')) self.VersionNameEdit.setFocus() return False return True @@ -434,18 +431,16 @@ class ImportWizardForm(QtGui.QWizard, Ui_BibleImportWizard): unicode(self.field(u'proxy_username').toString()), proxy_password=unicode(self.field(u'proxy_password').toString()) ) - success = importer.do_import() - if success: + if importer.do_import(): self.manager.save_meta_data(license_version, license_version, license_copyright, license_permission) self.manager.reload_bibles() self.ImportProgressLabel.setText( - translate('BiblesPlugin.ImportWizardForm', - 'Finished import.')) + translate('BiblesPlugin.ImportWizardForm', 'Finished import.')) else: self.ImportProgressLabel.setText( translate('BiblesPlugin.ImportWizardForm', - 'Your Bible import failed.')) + 'Your Bible import failed.')) delete_database(self.bibleplugin.settingsSection, importer.file) def postImport(self): diff --git a/openlp/plugins/bibles/lib/mediaitem.py b/openlp/plugins/bibles/lib/mediaitem.py index 57e70617a..8047a6d34 100644 --- a/openlp/plugins/bibles/lib/mediaitem.py +++ b/openlp/plugins/bibles/lib/mediaitem.py @@ -245,6 +245,10 @@ class BibleMediaItem(MediaManagerItem): QtCore.SIGNAL(u'activated(int)'), self.onAdvancedFromVerse) QtCore.QObject.connect(self.AdvancedToChapter, QtCore.SIGNAL(u'activated(int)'), self.onAdvancedToChapter) + QtCore.QObject.connect(self.ClearAdvancedSearchComboBox, + QtCore.SIGNAL(u'activated(int)'), self.onClearAdvancedSearchComboBox) + QtCore.QObject.connect(self.ClearQuickSearchComboBox, + QtCore.SIGNAL(u'activated(int)'), self.onClearQuickSearchComboBox) # Buttons QtCore.QObject.connect(self.AdvancedSearchButton, QtCore.SIGNAL(u'pressed()'), self.onAdvancedSearchButton) @@ -438,8 +442,21 @@ class BibleMediaItem(MediaManagerItem): dual_bible, versetext) if self.ClearAdvancedSearchComboBox.currentIndex() == 0: self.listView.clear() + elif not dual_bible: + self.AdvancedSecondBibleComboBox.setEnabled(False) + else: + self.AdvancedSecondBibleComboBox.setEnabled(True) + if self.AdvancedSecondBibleComboBox.findText(u'') != -1: + self.AdvancedSecondBibleComboBox.removeItem(0) self.displayResults(bible, dual_bible) + def onClearAdvancedSearchComboBox(self): + self.listView.clear() + if self.ClearAdvancedSearchComboBox.currentIndex() == 0: + self.AdvancedSecondBibleComboBox.setEnabled(True) + if self.AdvancedSecondBibleComboBox.findText(u'') == -1: + self.AdvancedSecondBibleComboBox.insertItem(0, u'') + def onAdvancedFromChapter(self): bible = unicode(self.AdvancedVersionComboBox.currentText()) book = unicode(self.AdvancedBookComboBox.currentText()) @@ -455,15 +472,28 @@ class BibleMediaItem(MediaManagerItem): bible = unicode(self.QuickVersionComboBox.currentText()) dual_bible = unicode(self.QuickSecondBibleComboBox.currentText()) text = unicode(self.QuickSearchEdit.text()) - if self.ClearQuickSearchComboBox.currentIndex() == 0: - self.listView.clear() self.search_results = self.parent.manager.get_verses(bible, text) if dual_bible: self.dual_search_results = self.parent.manager.get_verses( dual_bible, text) + if self.ClearQuickSearchComboBox.currentIndex() == 0: + self.listView.clear() + elif not dual_bible: + self.QuickSecondBibleComboBox.setEnabled(False) + else: + self.QuickSecondBibleComboBox.setEnabled(True) + if self.QuickSecondBibleComboBox.findText(u'') != -1: + self.QuickSecondBibleComboBox.removeItem(0) if self.search_results: self.displayResults(bible, dual_bible) + def onClearQuickSearchComboBox(self): + self.listView.clear() + if self.ClearQuickSearchComboBox.currentIndex() == 0: + self.QuickSecondBibleComboBox.setEnabled(True) + if self.QuickSecondBibleComboBox.findText(u'') == -1: + self.QuickSecondBibleComboBox.insertItem(0, u'') + def generateSlideData(self, service_item, item=None): """ Generates and formats the slides for the service item as well as the @@ -473,20 +503,10 @@ class BibleMediaItem(MediaManagerItem): items = self.listView.selectedIndexes() if len(items) == 0: return False - has_dual_bible = False bible_text = u'' old_chapter = u'' raw_footer = [] raw_slides = [] - for item in items: - bitem = self.listView.item(item.row()) - reference = bitem.data(QtCore.Qt.UserRole) - if isinstance(reference, QtCore.QVariant): - reference = reference.toPyObject() - dual_bible = self._decodeQtObject(reference, 'dual_bible') - if dual_bible: - has_dual_bible = True - break # Let's loop through the main lot, and assemble our verses. for item in items: bitem = self.listView.item(item.row()) @@ -514,26 +534,15 @@ class BibleMediaItem(MediaManagerItem): footer = u'%s (%s %s %s)' % (book, version, copyright, permission) if footer not in raw_footer: raw_footer.append(footer) - if has_dual_bible: - if dual_bible: - footer = u'%s (%s %s %s)' % (book, dual_version, - dual_copyright, dual_permission) - if footer not in raw_footer: - raw_footer.append(footer) - # If there is an old bible_text we have to add it. - if bible_text: - raw_slides.append(bible_text) - bible_text = u'' - bible_text = u'%s %s\n\n%s %s' % (verse_text, text, - verse_text, dual_text) - raw_slides.append(bible_text) - bible_text = u'' - elif self.parent.settings_tab.layout_style == 0: - bible_text = u'%s %s' % (verse_text, text) - raw_slides.append(bible_text) - bible_text = u'' - else: - bible_text = u'%s %s %s\n' % (bible_text, verse_text, text) + if dual_bible: + footer = u'%s (%s %s %s)' % (book, dual_version, + dual_copyright, dual_permission) + if footer not in raw_footer: + raw_footer.append(footer) + bible_text = u'%s %s\n\n%s %s' % (verse_text, text, + verse_text, dual_text) + raw_slides.append(bible_text) + bible_text = u'' # If we are 'Verse Per Slide' then create a new slide. elif self.parent.settings_tab.layout_style == 0: bible_text = u'%s %s' % (verse_text, text) @@ -551,19 +560,19 @@ class BibleMediaItem(MediaManagerItem): raw_slides.append(bible_text) bible_text = u'' # Service Item: Capabilities - if self.parent.settings_tab.layout_style == 2 and not has_dual_bible: + if self.parent.settings_tab.layout_style == 2 and not dual_bible: # split the line but do not replace line breaks in renderer service_item.add_capability(ItemCapabilities.NoLineBreaks) service_item.add_capability(ItemCapabilities.AllowsPreview) service_item.add_capability(ItemCapabilities.AllowsLoop) - service_item.add_capability(ItemCapabilities.AllowsAdditions) + #service_item.add_capability(ItemCapabilities.AllowsAdditions) # Service Item: Title if not service_item.title: if dual_bible: - service_item.title = u'%s (%s, %s) %s' % (book, version, - dual_version, verse_text) + service_item.title = u'%s %s (%s, %s)' % (book, version, + verse_text, dual_version) else: - service_item.title = u'%s (%s) %s' % (book, version, verse_text) + service_item.title = u'%s %s (%s)' % (book, verse_text, version) elif service_item.title.find( translate('BiblesPlugin.MediaItem', 'etc')) == -1: service_item.title = u'%s, %s' % (service_item.title, From 4aba7e3357c7e1a42d0ca8326a01d20d32dc571e Mon Sep 17 00:00:00 2001 From: Andreas Preikschat Date: Tue, 14 Sep 2010 20:07:38 +0200 Subject: [PATCH 03/32] change bible title in service manager (NOT nice) --- openlp/plugins/bibles/lib/mediaitem.py | 120 ++++++++++++++++++++----- 1 file changed, 100 insertions(+), 20 deletions(-) diff --git a/openlp/plugins/bibles/lib/mediaitem.py b/openlp/plugins/bibles/lib/mediaitem.py index 8047a6d34..193e9705a 100644 --- a/openlp/plugins/bibles/lib/mediaitem.py +++ b/openlp/plugins/bibles/lib/mediaitem.py @@ -507,6 +507,9 @@ class BibleMediaItem(MediaManagerItem): old_chapter = u'' raw_footer = [] raw_slides = [] + raw_title = [] + first_verse = True + append_now = False # Let's loop through the main lot, and assemble our verses. for item in items: bitem = self.listView.item(item.row()) @@ -514,8 +517,8 @@ class BibleMediaItem(MediaManagerItem): if isinstance(reference, QtCore.QVariant): reference = reference.toPyObject() book = self._decodeQtObject(reference, 'book') - chapter = self._decodeQtObject(reference, 'chapter') - verse = self._decodeQtObject(reference, 'verse') + chapter = int(self._decodeQtObject(reference, 'chapter')) + verse = int(self._decodeQtObject(reference, 'verse')) bible = self._decodeQtObject(reference, 'bible') version = self._decodeQtObject(reference, 'version') copyright = self._decodeQtObject(reference, 'copyright') @@ -523,8 +526,7 @@ class BibleMediaItem(MediaManagerItem): text = self._decodeQtObject(reference, 'text') dual_bible = self._decodeQtObject(reference, 'dual_bible') if dual_bible: - dual_version = self._decodeQtObject(reference, - 'dual_version') + dual_version = self._decodeQtObject(reference, 'dual_version') dual_copyright = self._decodeQtObject(reference, 'dual_copyright') dual_permission = self._decodeQtObject(reference, @@ -535,12 +537,12 @@ class BibleMediaItem(MediaManagerItem): if footer not in raw_footer: raw_footer.append(footer) if dual_bible: - footer = u'%s (%s %s %s)' % (book, dual_version, - dual_copyright, dual_permission) + footer = u'%s (%s %s %s)' % (book, dual_version, dual_copyright, + dual_permission) if footer not in raw_footer: raw_footer.append(footer) - bible_text = u'%s %s\n\n%s %s' % (verse_text, text, - verse_text, dual_text) + bible_text = u'%s %s\n\n%s %s' % (verse_text, text, verse_text, + dual_text) raw_slides.append(bible_text) bible_text = u'' # If we are 'Verse Per Slide' then create a new slide. @@ -554,29 +556,107 @@ class BibleMediaItem(MediaManagerItem): # We have to be 'Continuous'. else: bible_text = u'%s %s %s\n' % (bible_text, verse_text, text) + if first_verse: + start_bible = bible + start_dual_bible = dual_bible + start_book = book + start_verse = verse + start_chapter = chapter + start_version = version + first_verse = False + append_now = False + elif old_bible != bible or old_dual_bible != dual_bible or \ + old_book != book: + append_now = True + elif old_verse + 1 != verse and old_chapter == chapter: + append_now = True + elif old_chapter + 1 == chapter and (verse != 1 or + old_verse != self.parent.manager.get_verse_count( + old_bible, old_book, old_chapter)): + append_now = True + if append_now: + append_now = False + if dual_bible: + if start_verse == old_verse and \ + start_chapter == old_chapter: + raw_title.append(u'%s %s:%s (%s, %s)' % (start_book, + start_chapter, start_verse, start_version, + start_dual_bible)) + elif start_chapter == old_chapter: + raw_title.append(u'%s %s:%s-s (%s, %s)' % (start_book, + start_chapter, start_verse, old_verse, + start_version, start_dual_bible)) + else: + raw_title.append(u'%s %s:%s-%s:%s (%s, %s)' % + (start_book, start_chapter, start_verse, + old_chapter, old_verse, start_version, + start_dual_bible)) + else: + if start_verse == old_verse and \ + start_chapter == old_chapter: + raw_title.append(u'%s %s:%s (%s)' % (start_book, + start_chapter, start_verse, start_version)) + elif start_chapter == old_chapter: + raw_title.append(u'%s %s:%s-%s (%s)' % (start_book, + start_chapter, start_verse, old_verse, + start_version)) + else: + raw_title.append(u'%s %s:%s-%s:%s (%s)' % (start_book, + start_chapter, start_verse, old_chapter, old_verse, + start_version)) + start_bible = bible + start_dual_bible = dual_bible + start_book = book + start_verse = verse + start_chapter = chapter + start_version = version + old_verse = verse old_chapter = chapter + old_bible = bible + old_dual_bible = dual_bible + old_book = book + if dual_bible: + if start_verse == verse and start_chapter == chapter: + raw_title.append(u'%s %s:%s (%s, %s)' % (start_book, + start_chapter, start_verse, start_version, + start_dual_bible)) + elif start_chapter == chapter: + raw_title.append(u'%s %s:%s-%s (%s, %s)' % (start_book, + start_chapter, start_verse, verse, start_version, + start_dual_bible)) + else: + raw_title.append(u'%s %s:%s-%s:%s (%s, %s)' % (start_book, + start_chapter, start_verse, chapter, verse, start_version, + start_dual_bible)) + else: + if start_verse == verse and start_chapter == chapter: + raw_title.append(u'%s %s:%s (%s)' % (start_book, + start_chapter, start_verse, start_version)) + elif start_chapter == chapter: + raw_title.append(u'%s %s:%s-%s (%s)' % (start_book, + start_chapter, start_verse, verse, start_version)) + else: + raw_title.append(u'%s %s:%s-%s:%s (%s)' % (start_book, + start_chapter, start_verse, chapter, verse, start_version)) # If there are no more items we check whether we have to add bible_text. if bible_text: raw_slides.append(bible_text) bible_text = u'' + print raw_title # Service Item: Capabilities if self.parent.settings_tab.layout_style == 2 and not dual_bible: # split the line but do not replace line breaks in renderer service_item.add_capability(ItemCapabilities.NoLineBreaks) service_item.add_capability(ItemCapabilities.AllowsPreview) service_item.add_capability(ItemCapabilities.AllowsLoop) - #service_item.add_capability(ItemCapabilities.AllowsAdditions) # Service Item: Title - if not service_item.title: - if dual_bible: - service_item.title = u'%s %s (%s, %s)' % (book, version, - verse_text, dual_version) + first_verse = True + for title in raw_title: + if first_verse: + first_verse = False + service_item.title = title else: - service_item.title = u'%s %s (%s)' % (book, verse_text, version) - elif service_item.title.find( - translate('BiblesPlugin.MediaItem', 'etc')) == -1: - service_item.title = u'%s, %s' % (service_item.title, - translate('BiblesPlugin.MediaItem', 'etc')) + service_item.title += u', ' + title # Service Item: Theme if len(self.parent.settings_tab.bible_theme) == 0: service_item.theme = None @@ -594,9 +674,9 @@ class BibleMediaItem(MediaManagerItem): def formatVerse(self, old_chapter, chapter, verse): if not self.parent.settings_tab.show_new_chapters or \ old_chapter != chapter: - verse_text = chapter + u':' + verse + verse_text = u'%s:%s' % (chapter, verse) else: - verse_text = verse + verse_text = u'%s' % verse if self.parent.settings_tab.display_style == 1: verse_text = u'{su}(' + verse_text + u'){/su}' elif self.parent.settings_tab.display_style == 2: From d4ffc72c17987ae23935f8c2999b3cff6eb110b0 Mon Sep 17 00:00:00 2001 From: Andreas Preikschat Date: Wed, 15 Sep 2010 18:52:22 +0200 Subject: [PATCH 04/32] clean ups --- openlp/plugins/bibles/lib/mediaitem.py | 38 ++++++++++++-------------- 1 file changed, 17 insertions(+), 21 deletions(-) diff --git a/openlp/plugins/bibles/lib/mediaitem.py b/openlp/plugins/bibles/lib/mediaitem.py index 193e9705a..828c4d5fc 100644 --- a/openlp/plugins/bibles/lib/mediaitem.py +++ b/openlp/plugins/bibles/lib/mediaitem.py @@ -65,12 +65,6 @@ class BibleMediaItem(MediaManagerItem): QtCore.QObject.connect(Receiver.get_receiver(), QtCore.SIGNAL(u'bibles_load_list'), self.reloadBibles) - def _decodeQtObject(self, listobj, key): - obj = listobj[QtCore.QString(key)] - if isinstance(obj, QtCore.QVariant): - obj = obj.toPyObject() - return unicode(obj) - def requiredIcons(self): MediaManagerItem.requiredIcons(self) self.hasImportIcon = True @@ -494,6 +488,14 @@ class BibleMediaItem(MediaManagerItem): if self.QuickSecondBibleComboBox.findText(u'') == -1: self.QuickSecondBibleComboBox.insertItem(0, u'') + def _decodeQtObject(self, listobj, key): + if isinstance(listobj, QtCore.QVariant): + listobj = listobj.toPyObject() + obj = listobj[QtCore.QString(key)] + if isinstance(obj, QtCore.QVariant): + obj = obj.toPyObject() + return unicode(obj) + def generateSlideData(self, service_item, item=None): """ Generates and formats the slides for the service item as well as the @@ -514,8 +516,6 @@ class BibleMediaItem(MediaManagerItem): for item in items: bitem = self.listView.item(item.row()) reference = bitem.data(QtCore.Qt.UserRole) - if isinstance(reference, QtCore.QVariant): - reference = reference.toPyObject() book = self._decodeQtObject(reference, 'book') chapter = int(self._decodeQtObject(reference, 'chapter')) verse = int(self._decodeQtObject(reference, 'verse')) @@ -525,13 +525,10 @@ class BibleMediaItem(MediaManagerItem): permission = self._decodeQtObject(reference, 'permission') text = self._decodeQtObject(reference, 'text') dual_bible = self._decodeQtObject(reference, 'dual_bible') - if dual_bible: - dual_version = self._decodeQtObject(reference, 'dual_version') - dual_copyright = self._decodeQtObject(reference, - 'dual_copyright') - dual_permission = self._decodeQtObject(reference, - 'dual_permission') - dual_text = self._decodeQtObject(reference, 'dual_text') + dual_version = self._decodeQtObject(reference, 'dual_version') + dual_copyright = self._decodeQtObject(reference, 'dual_copyright') + dual_permission = self._decodeQtObject(reference, 'dual_permission') + dual_text = self._decodeQtObject(reference, 'dual_text') verse_text = self.formatVerse(old_chapter, chapter, verse) footer = u'%s (%s %s %s)' % (book, version, copyright, permission) if footer not in raw_footer: @@ -564,7 +561,6 @@ class BibleMediaItem(MediaManagerItem): start_chapter = chapter start_version = version first_verse = False - append_now = False elif old_bible != bible or old_dual_bible != dual_bible or \ old_book != book: append_now = True @@ -642,7 +638,6 @@ class BibleMediaItem(MediaManagerItem): if bible_text: raw_slides.append(bible_text) bible_text = u'' - print raw_title # Service Item: Capabilities if self.parent.settings_tab.layout_style == 2 and not dual_bible: # split the line but do not replace line breaks in renderer @@ -778,14 +773,15 @@ class BibleMediaItem(MediaManagerItem): 'copyright': QtCore.QVariant(copyright.value), 'permission': QtCore.QVariant(permission.value), 'text': QtCore.QVariant(verse.text), - 'dual_bible': QtCore.QVariant(dual_bible) + 'dual_bible': QtCore.QVariant(u''), + 'dual_version': QtCore.QVariant(u''), + 'dual_copyright': QtCore.QVariant(u''), + 'dual_permission': QtCore.QVariant(u''), + 'dual_text': QtCore.QVariant(u'') } bible_text = u' %s %d:%d (%s)' % (verse.book.name, verse.chapter, verse.verse, version.value) - # set the row title bible_verse = QtGui.QListWidgetItem(bible_text) - #bible_verse.setData(QtCore.Qt.UserRole, - # QtCore.QVariant(bible_text)) bible_verse.setData(QtCore.Qt.UserRole, QtCore.QVariant(vdict)) self.listView.addItem(bible_verse) row = self.listView.setCurrentRow(count + start_count) From bc537365bd513e956226eea64e30796eef9a35ce Mon Sep 17 00:00:00 2001 From: Tim Bentley Date: Wed, 15 Sep 2010 19:03:54 +0100 Subject: [PATCH 05/32] Speed up render --- openlp/core/lib/renderer.py | 31 ++++++++++++++++--------------- 1 file changed, 16 insertions(+), 15 deletions(-) diff --git a/openlp/core/lib/renderer.py b/openlp/core/lib/renderer.py index 0cb92ad39..42420790b 100644 --- a/openlp/core/lib/renderer.py +++ b/openlp/core/lib/renderer.py @@ -90,6 +90,18 @@ class Renderer(object): self._rect = rect_main self._rect_footer = rect_footer + self.web = QtWebKit.QWebView() + self.web.resize(self._rect.width(), self._rect.height()) + self.web.setVisible(False) + self.web_frame = self.web.page().mainFrame() + # Adjust width and height to account for shadow. outline done in css + self.page_width = self._rect.width() - int(self._theme.display_shadow_size) + self.page_height = self._rect.height() - int(self._theme.display_shadow_size) + self.page_shell = u'' \ + u'
' % \ + (build_lyrics_format_css(self._theme, self.page_width, self.page_height), + build_lyrics_outline_css(self._theme)) + def set_frame_dest(self, frame_width, frame_height): """ Set the size of the slide. @@ -139,17 +151,6 @@ class Renderer(object): lines = verse.split(u'\n') for line in lines: text.append(line) - web = QtWebKit.QWebView() - web.resize(self._rect.width(), self._rect.height()) - web.setVisible(False) - frame = web.page().mainFrame() - # Adjust width and height to account for shadow. outline done in css - width = self._rect.width() - int(self._theme.display_shadow_size) - height = self._rect.height() - int(self._theme.display_shadow_size) - shell = u'' \ - u'
' % \ - (build_lyrics_format_css(self._theme, width, height), - build_lyrics_outline_css(self._theme)) formatted = [] html_text = u'' styled_text = u'' @@ -157,11 +158,11 @@ class Renderer(object): for line in text: styled_line = expand_tags(line) + line_end styled_text += styled_line - html = shell + styled_text + u'
' - web.setHtml(html) + html = self.page_shell + styled_text + u'
' + self.web.setHtml(html) # Text too long so go to next page - text_height = int(frame.evaluateJavaScript(js_height).toString()) - if text_height > height: + text_height = int(self.web_frame.evaluateJavaScript(js_height).toString()) + if text_height > self.page_height: formatted.append(html_text) html_text = u'' styled_text = styled_line From 6795c04947b2492c18b55ffbec66bfd0ae3c4d91 Mon Sep 17 00:00:00 2001 From: Andreas Preikschat Date: Thu, 16 Sep 2010 18:22:23 +0200 Subject: [PATCH 06/32] added two methods --- openlp/plugins/bibles/lib/mediaitem.py | 206 +++++++++++++------------ 1 file changed, 105 insertions(+), 101 deletions(-) diff --git a/openlp/plugins/bibles/lib/mediaitem.py b/openlp/plugins/bibles/lib/mediaitem.py index 828c4d5fc..d459c8007 100644 --- a/openlp/plugins/bibles/lib/mediaitem.py +++ b/openlp/plugins/bibles/lib/mediaitem.py @@ -488,10 +488,12 @@ class BibleMediaItem(MediaManagerItem): if self.QuickSecondBibleComboBox.findText(u'') == -1: self.QuickSecondBibleComboBox.insertItem(0, u'') - def _decodeQtObject(self, listobj, key): - if isinstance(listobj, QtCore.QVariant): - listobj = listobj.toPyObject() - obj = listobj[QtCore.QString(key)] + def _decodeQtObject(self, item, key): + bitem = self.listView.item(item.row()) + reference = bitem.data(QtCore.Qt.UserRole) + if isinstance(reference, QtCore.QVariant): + reference = reference.toPyObject() + obj = reference[QtCore.QString(key)] if isinstance(obj, QtCore.QVariant): obj = obj.toPyObject() return unicode(obj) @@ -510,25 +512,22 @@ class BibleMediaItem(MediaManagerItem): raw_footer = [] raw_slides = [] raw_title = [] - first_verse = True - append_now = False + first_item = True # Let's loop through the main lot, and assemble our verses. for item in items: - bitem = self.listView.item(item.row()) - reference = bitem.data(QtCore.Qt.UserRole) - book = self._decodeQtObject(reference, 'book') - chapter = int(self._decodeQtObject(reference, 'chapter')) - verse = int(self._decodeQtObject(reference, 'verse')) - bible = self._decodeQtObject(reference, 'bible') - version = self._decodeQtObject(reference, 'version') - copyright = self._decodeQtObject(reference, 'copyright') - permission = self._decodeQtObject(reference, 'permission') - text = self._decodeQtObject(reference, 'text') - dual_bible = self._decodeQtObject(reference, 'dual_bible') - dual_version = self._decodeQtObject(reference, 'dual_version') - dual_copyright = self._decodeQtObject(reference, 'dual_copyright') - dual_permission = self._decodeQtObject(reference, 'dual_permission') - dual_text = self._decodeQtObject(reference, 'dual_text') + book = self._decodeQtObject(item, 'book') + chapter = int(self._decodeQtObject(item, 'chapter')) + verse = int(self._decodeQtObject(item, 'verse')) + bible = self._decodeQtObject(item, 'bible') + version = self._decodeQtObject(item, 'version') + copyright = self._decodeQtObject(item, 'copyright') + permission = self._decodeQtObject(item, 'permission') + text = self._decodeQtObject(item, 'text') + dual_bible = self._decodeQtObject(item, 'dual_bible') + dual_version = self._decodeQtObject(item, 'dual_version') + dual_copyright = self._decodeQtObject(item, 'dual_copyright') + dual_permission = self._decodeQtObject(item, 'dual_permission') + dual_text = self._decodeQtObject(item, 'dual_text') verse_text = self.formatVerse(old_chapter, chapter, verse) footer = u'%s (%s %s %s)' % (book, version, copyright, permission) if footer not in raw_footer: @@ -553,87 +552,17 @@ class BibleMediaItem(MediaManagerItem): # We have to be 'Continuous'. else: bible_text = u'%s %s %s\n' % (bible_text, verse_text, text) - if first_verse: - start_bible = bible - start_dual_bible = dual_bible - start_book = book - start_verse = verse - start_chapter = chapter - start_version = version - first_verse = False - elif old_bible != bible or old_dual_bible != dual_bible or \ - old_book != book: - append_now = True - elif old_verse + 1 != verse and old_chapter == chapter: - append_now = True - elif old_chapter + 1 == chapter and (verse != 1 or - old_verse != self.parent.manager.get_verse_count( - old_bible, old_book, old_chapter)): - append_now = True - if append_now: - append_now = False - if dual_bible: - if start_verse == old_verse and \ - start_chapter == old_chapter: - raw_title.append(u'%s %s:%s (%s, %s)' % (start_book, - start_chapter, start_verse, start_version, - start_dual_bible)) - elif start_chapter == old_chapter: - raw_title.append(u'%s %s:%s-s (%s, %s)' % (start_book, - start_chapter, start_verse, old_verse, - start_version, start_dual_bible)) - else: - raw_title.append(u'%s %s:%s-%s:%s (%s, %s)' % - (start_book, start_chapter, start_verse, - old_chapter, old_verse, start_version, - start_dual_bible)) - else: - if start_verse == old_verse and \ - start_chapter == old_chapter: - raw_title.append(u'%s %s:%s (%s)' % (start_book, - start_chapter, start_verse, start_version)) - elif start_chapter == old_chapter: - raw_title.append(u'%s %s:%s-%s (%s)' % (start_book, - start_chapter, start_verse, old_verse, - start_version)) - else: - raw_title.append(u'%s %s:%s-%s:%s (%s)' % (start_book, - start_chapter, start_verse, old_chapter, old_verse, - start_version)) - start_bible = bible - start_dual_bible = dual_bible - start_book = book - start_verse = verse - start_chapter = chapter - start_version = version - old_verse = verse + if first_item: + start_item = item + first_item = False + elif self.checkTitle(item, old_item): + title = self.formatTitle(item, start_item, old_item) + raw_title.append(title) + start_item = item + old_item = item old_chapter = chapter - old_bible = bible - old_dual_bible = dual_bible - old_book = book - if dual_bible: - if start_verse == verse and start_chapter == chapter: - raw_title.append(u'%s %s:%s (%s, %s)' % (start_book, - start_chapter, start_verse, start_version, - start_dual_bible)) - elif start_chapter == chapter: - raw_title.append(u'%s %s:%s-%s (%s, %s)' % (start_book, - start_chapter, start_verse, verse, start_version, - start_dual_bible)) - else: - raw_title.append(u'%s %s:%s-%s:%s (%s, %s)' % (start_book, - start_chapter, start_verse, chapter, verse, start_version, - start_dual_bible)) - else: - if start_verse == verse and start_chapter == chapter: - raw_title.append(u'%s %s:%s (%s)' % (start_book, - start_chapter, start_verse, start_version)) - elif start_chapter == chapter: - raw_title.append(u'%s %s:%s-%s (%s)' % (start_book, - start_chapter, start_verse, verse, start_version)) - else: - raw_title.append(u'%s %s:%s-%s:%s (%s)' % (start_book, - start_chapter, start_verse, chapter, verse, start_version)) + title = self.formatTitle(item, start_item, old_item) + raw_title.append(title) # If there are no more items we check whether we have to add bible_text. if bible_text: raw_slides.append(bible_text) @@ -666,6 +595,81 @@ class BibleMediaItem(MediaManagerItem): service_item.raw_footer = raw_footer return True + def formatTitle(self, item, start_item, old_item): + """ + This methode is called, when we have to change the title, because + we are at the end of a verse range. E. g. if we want to add + Genisis 1:1-6 as well as Daniel 2:14. + """ + book = self._decodeQtObject(item, 'book') + chapter = int(self._decodeQtObject(item, 'chapter')) + verse = int(self._decodeQtObject(item, 'verse')) + version = self._decodeQtObject(item, 'version') + bible = self._decodeQtObject(item, 'bible') + dual_bible = self._decodeQtObject(item, 'dual_bible') + old_book = self._decodeQtObject(old_item, 'book') + old_chapter = int(self._decodeQtObject(old_item, 'chapter')) + old_verse = int(self._decodeQtObject(old_item, 'verse')) + old_version = self._decodeQtObject(old_item, 'version') + old_bible = self._decodeQtObject(old_item, 'bible') + old_dual_bible = self._decodeQtObject(old_item, 'dual_bible') + start_book = self._decodeQtObject(start_item, 'book') + start_chapter = int(self._decodeQtObject(start_item, 'chapter')) + start_verse = int(self._decodeQtObject(start_item, 'verse')) + start_version = self._decodeQtObject(start_item, 'version') + start_bible = self._decodeQtObject(start_item, 'bible') + start_dual_bible = self._decodeQtObject(start_item, 'dual_bible') + if dual_bible: + if start_verse == old_verse and start_chapter == old_chapter: + title = u'%s %s:%s (%s, %s)' % (start_book, start_chapter, + start_verse, start_version, start_dual_bible) + elif start_chapter == old_chapter: + title = u'%s %s:%s-s (%s, %s)' % (start_book, start_chapter, + start_verse, old_verse, start_version, start_dual_bible) + else: + title = u'%s %s:%s-%s:%s (%s, %s)' % (start_book, start_chapter, + start_verse, old_chapter, old_verse, start_version, + start_dual_bible) + else: + if start_verse == old_verse and start_chapter == old_chapter: + title = u'%s %s:%s (%s)' % (start_book, start_chapter, + start_verse, start_version) + elif start_chapter == old_chapter: + title = u'%s %s:%s-%s (%s)' % (start_book, start_chapter, + start_verse, old_verse, start_version) + else: + title = u'%s %s:%s-%s:%s (%s)' % (start_book, start_chapter, + start_verse, old_chapter, old_verse, start_version) + return title + + def checkTitle(self, item, old_item): + """ + This methode checks if we are at the end of an verse range. If that is + the case, we return True, else False. E. g. if we added Genisis 1:1-6, + but the next verse is Daniel 2:14. + """ + book = self._decodeQtObject(item, 'book') + chapter = int(self._decodeQtObject(item, 'chapter')) + verse = int(self._decodeQtObject(item, 'verse')) + bible = self._decodeQtObject(item, 'bible') + dual_bible = self._decodeQtObject(item, 'dual_bible') + old_book = self._decodeQtObject(old_item, 'book') + old_chapter = int(self._decodeQtObject(old_item, 'chapter')) + old_verse = int(self._decodeQtObject(old_item, 'verse')) + old_bible = self._decodeQtObject(old_item, 'bible') + old_dual_bible = self._decodeQtObject(old_item, 'dual_bible') + if old_bible != bible or old_dual_bible != dual_bible or \ + old_book != book: + return True + elif old_verse + 1 != verse and old_chapter == chapter: + return True + elif old_chapter + 1 == chapter and (verse != 1 or + old_verse != self.parent.manager.get_verse_count( + old_bible, old_book, old_chapter)): + return True + else: + return False + def formatVerse(self, old_chapter, chapter, verse): if not self.parent.settings_tab.show_new_chapters or \ old_chapter != chapter: From 30ad1a3eb0a79ace5b2c4b68332b323265518d46 Mon Sep 17 00:00:00 2001 From: Andreas Preikschat Date: Thu, 16 Sep 2010 18:35:19 +0200 Subject: [PATCH 07/32] whitespace --- openlp/plugins/bibles/lib/mediaitem.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/openlp/plugins/bibles/lib/mediaitem.py b/openlp/plugins/bibles/lib/mediaitem.py index d459c8007..5dfab4b7c 100644 --- a/openlp/plugins/bibles/lib/mediaitem.py +++ b/openlp/plugins/bibles/lib/mediaitem.py @@ -641,7 +641,7 @@ class BibleMediaItem(MediaManagerItem): title = u'%s %s:%s-%s:%s (%s)' % (start_book, start_chapter, start_verse, old_chapter, old_verse, start_version) return title - + def checkTitle(self, item, old_item): """ This methode checks if we are at the end of an verse range. If that is From 5ad41ac45768fbf1b7917175f7d44c55819757cd Mon Sep 17 00:00:00 2001 From: Andreas Preikschat Date: Thu, 16 Sep 2010 18:57:21 +0200 Subject: [PATCH 08/32] tweaked methods --- openlp/plugins/bibles/lib/mediaitem.py | 14 ++++---------- 1 file changed, 4 insertions(+), 10 deletions(-) diff --git a/openlp/plugins/bibles/lib/mediaitem.py b/openlp/plugins/bibles/lib/mediaitem.py index 5dfab4b7c..b85faab78 100644 --- a/openlp/plugins/bibles/lib/mediaitem.py +++ b/openlp/plugins/bibles/lib/mediaitem.py @@ -556,12 +556,12 @@ class BibleMediaItem(MediaManagerItem): start_item = item first_item = False elif self.checkTitle(item, old_item): - title = self.formatTitle(item, start_item, old_item) + title = self.formatTitle(start_item, old_item) raw_title.append(title) start_item = item old_item = item old_chapter = chapter - title = self.formatTitle(item, start_item, old_item) + title = self.formatTitle(start_item, old_item) raw_title.append(title) # If there are no more items we check whether we have to add bible_text. if bible_text: @@ -595,18 +595,12 @@ class BibleMediaItem(MediaManagerItem): service_item.raw_footer = raw_footer return True - def formatTitle(self, item, start_item, old_item): + def formatTitle(self, start_item, old_item): """ This methode is called, when we have to change the title, because we are at the end of a verse range. E. g. if we want to add Genisis 1:1-6 as well as Daniel 2:14. """ - book = self._decodeQtObject(item, 'book') - chapter = int(self._decodeQtObject(item, 'chapter')) - verse = int(self._decodeQtObject(item, 'verse')) - version = self._decodeQtObject(item, 'version') - bible = self._decodeQtObject(item, 'bible') - dual_bible = self._decodeQtObject(item, 'dual_bible') old_book = self._decodeQtObject(old_item, 'book') old_chapter = int(self._decodeQtObject(old_item, 'chapter')) old_verse = int(self._decodeQtObject(old_item, 'verse')) @@ -619,7 +613,7 @@ class BibleMediaItem(MediaManagerItem): start_version = self._decodeQtObject(start_item, 'version') start_bible = self._decodeQtObject(start_item, 'bible') start_dual_bible = self._decodeQtObject(start_item, 'dual_bible') - if dual_bible: + if start_dual_bible: if start_verse == old_verse and start_chapter == old_chapter: title = u'%s %s:%s (%s, %s)' % (start_book, start_chapter, start_verse, start_version, start_dual_bible) From 9913754df4cc96c517ca2d5a9f5dd34f01435b8a Mon Sep 17 00:00:00 2001 From: Andreas Preikschat Date: Fri, 17 Sep 2010 13:41:52 +0200 Subject: [PATCH 09/32] spelling mistake --- openlp/plugins/bibles/lib/mediaitem.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/openlp/plugins/bibles/lib/mediaitem.py b/openlp/plugins/bibles/lib/mediaitem.py index b85faab78..1c5e90325 100644 --- a/openlp/plugins/bibles/lib/mediaitem.py +++ b/openlp/plugins/bibles/lib/mediaitem.py @@ -599,7 +599,7 @@ class BibleMediaItem(MediaManagerItem): """ This methode is called, when we have to change the title, because we are at the end of a verse range. E. g. if we want to add - Genisis 1:1-6 as well as Daniel 2:14. + Genesis 1:1-6 as well as Daniel 2:14. """ old_book = self._decodeQtObject(old_item, 'book') old_chapter = int(self._decodeQtObject(old_item, 'chapter')) @@ -639,7 +639,7 @@ class BibleMediaItem(MediaManagerItem): def checkTitle(self, item, old_item): """ This methode checks if we are at the end of an verse range. If that is - the case, we return True, else False. E. g. if we added Genisis 1:1-6, + the case, we return True, else False. E. g. if we added Genesis 1:1-6, but the next verse is Daniel 2:14. """ book = self._decodeQtObject(item, 'book') From 194e2785811ad7c92fc9628cad1550050aaabc46 Mon Sep 17 00:00:00 2001 From: Andreas Preikschat Date: Fri, 17 Sep 2010 14:10:41 +0200 Subject: [PATCH 10/32] fixed bug (forgotten %); removed unused variables --- openlp/plugins/bibles/lib/mediaitem.py | 21 ++++++++------------- 1 file changed, 8 insertions(+), 13 deletions(-) diff --git a/openlp/plugins/bibles/lib/mediaitem.py b/openlp/plugins/bibles/lib/mediaitem.py index 1c5e90325..0994eeb5f 100644 --- a/openlp/plugins/bibles/lib/mediaitem.py +++ b/openlp/plugins/bibles/lib/mediaitem.py @@ -561,7 +561,7 @@ class BibleMediaItem(MediaManagerItem): start_item = item old_item = item old_chapter = chapter - title = self.formatTitle(start_item, old_item) + title = self.formatTitle(start_item, item) raw_title.append(title) # If there are no more items we check whether we have to add bible_text. if bible_text: @@ -601,39 +601,34 @@ class BibleMediaItem(MediaManagerItem): we are at the end of a verse range. E. g. if we want to add Genesis 1:1-6 as well as Daniel 2:14. """ - old_book = self._decodeQtObject(old_item, 'book') old_chapter = int(self._decodeQtObject(old_item, 'chapter')) old_verse = int(self._decodeQtObject(old_item, 'verse')) - old_version = self._decodeQtObject(old_item, 'version') - old_bible = self._decodeQtObject(old_item, 'bible') - old_dual_bible = self._decodeQtObject(old_item, 'dual_bible') start_book = self._decodeQtObject(start_item, 'book') start_chapter = int(self._decodeQtObject(start_item, 'chapter')) start_verse = int(self._decodeQtObject(start_item, 'verse')) - start_version = self._decodeQtObject(start_item, 'version') start_bible = self._decodeQtObject(start_item, 'bible') start_dual_bible = self._decodeQtObject(start_item, 'dual_bible') if start_dual_bible: if start_verse == old_verse and start_chapter == old_chapter: title = u'%s %s:%s (%s, %s)' % (start_book, start_chapter, - start_verse, start_version, start_dual_bible) + start_verse, start_bible, start_dual_bible) elif start_chapter == old_chapter: - title = u'%s %s:%s-s (%s, %s)' % (start_book, start_chapter, - start_verse, old_verse, start_version, start_dual_bible) + title = u'%s %s:%s-%s (%s, %s)' % (start_book, start_chapter, + start_verse, old_verse, start_bible, start_dual_bible) else: title = u'%s %s:%s-%s:%s (%s, %s)' % (start_book, start_chapter, - start_verse, old_chapter, old_verse, start_version, + start_verse, old_chapter, old_verse, start_bible, start_dual_bible) else: if start_verse == old_verse and start_chapter == old_chapter: title = u'%s %s:%s (%s)' % (start_book, start_chapter, - start_verse, start_version) + start_verse, start_bible) elif start_chapter == old_chapter: title = u'%s %s:%s-%s (%s)' % (start_book, start_chapter, - start_verse, old_verse, start_version) + start_verse, old_verse, start_bible) else: title = u'%s %s:%s-%s:%s (%s)' % (start_book, start_chapter, - start_verse, old_chapter, old_verse, start_version) + start_verse, old_chapter, old_verse, start_bible) return title def checkTitle(self, item, old_item): From bfc3543d395210c8612b589a507d91606fbcc6ec Mon Sep 17 00:00:00 2001 From: Andreas Preikschat Date: Fri, 17 Sep 2010 14:17:50 +0200 Subject: [PATCH 11/32] changed/removed variable --- openlp/plugins/bibles/lib/mediaitem.py | 18 ++++++++---------- 1 file changed, 8 insertions(+), 10 deletions(-) diff --git a/openlp/plugins/bibles/lib/mediaitem.py b/openlp/plugins/bibles/lib/mediaitem.py index 0994eeb5f..2980d15f3 100644 --- a/openlp/plugins/bibles/lib/mediaitem.py +++ b/openlp/plugins/bibles/lib/mediaitem.py @@ -512,7 +512,7 @@ class BibleMediaItem(MediaManagerItem): raw_footer = [] raw_slides = [] raw_title = [] - first_item = True + first = True # Let's loop through the main lot, and assemble our verses. for item in items: book = self._decodeQtObject(item, 'book') @@ -552,17 +552,15 @@ class BibleMediaItem(MediaManagerItem): # We have to be 'Continuous'. else: bible_text = u'%s %s %s\n' % (bible_text, verse_text, text) - if first_item: + if first: start_item = item - first_item = False + first = False elif self.checkTitle(item, old_item): - title = self.formatTitle(start_item, old_item) - raw_title.append(title) + raw_title.append(self.formatTitle(start_item, old_item)) start_item = item old_item = item old_chapter = chapter - title = self.formatTitle(start_item, item) - raw_title.append(title) + raw_title.append(self.formatTitle(start_item, item)) # If there are no more items we check whether we have to add bible_text. if bible_text: raw_slides.append(bible_text) @@ -574,10 +572,10 @@ class BibleMediaItem(MediaManagerItem): service_item.add_capability(ItemCapabilities.AllowsPreview) service_item.add_capability(ItemCapabilities.AllowsLoop) # Service Item: Title - first_verse = True + first = True for title in raw_title: - if first_verse: - first_verse = False + if first: + first = False service_item.title = title else: service_item.title += u', ' + title From 02b46f051c2ab6988f8a92e7def023e28cdb044b Mon Sep 17 00:00:00 2001 From: Andreas Preikschat Date: Sat, 18 Sep 2010 23:29:41 +0200 Subject: [PATCH 12/32] changed combobox behaviour --- openlp/plugins/bibles/lib/mediaitem.py | 92 ++++++++++++++++---------- 1 file changed, 58 insertions(+), 34 deletions(-) diff --git a/openlp/plugins/bibles/lib/mediaitem.py b/openlp/plugins/bibles/lib/mediaitem.py index 2980d15f3..8c87dee90 100644 --- a/openlp/plugins/bibles/lib/mediaitem.py +++ b/openlp/plugins/bibles/lib/mediaitem.py @@ -445,11 +445,21 @@ class BibleMediaItem(MediaManagerItem): self.displayResults(bible, dual_bible) def onClearAdvancedSearchComboBox(self): - self.listView.clear() if self.ClearAdvancedSearchComboBox.currentIndex() == 0: self.AdvancedSecondBibleComboBox.setEnabled(True) if self.AdvancedSecondBibleComboBox.findText(u'') == -1: self.AdvancedSecondBibleComboBox.insertItem(0, u'') + self.listView.clear() + else: + if self.listView.count() != 0: + bitem = self.listView.item(0) + dual_bible = self._decodeQtObject(bitem, 'dual_bible') + if self.AdvancedSecondBibleComboBox.findText(u'') != -1 and \ + dual_bible: + self.AdvancedSecondBibleComboBox.removeItem(0) + else: + self.AdvancedSecondBibleComboBox.setCurrentIndex(0) + self.AdvancedSecondBibleComboBox.setEnabled(False) def onAdvancedFromChapter(self): bible = unicode(self.AdvancedVersionComboBox.currentText()) @@ -482,14 +492,23 @@ class BibleMediaItem(MediaManagerItem): self.displayResults(bible, dual_bible) def onClearQuickSearchComboBox(self): - self.listView.clear() if self.ClearQuickSearchComboBox.currentIndex() == 0: self.QuickSecondBibleComboBox.setEnabled(True) if self.QuickSecondBibleComboBox.findText(u'') == -1: self.QuickSecondBibleComboBox.insertItem(0, u'') + self.listView.clear() + else: + if self.listView.count() != 0: + bitem = self.listView.item(0) + dual_bible = self._decodeQtObject(bitem, 'dual_bible') + if self.QuickSecondBibleComboBox.findText(u'') != -1 and \ + dual_bible: + self.QuickSecondBibleComboBox.removeItem(0) + else: + self.QuickSecondBibleComboBox.setCurrentIndex(0) + self.QuickSecondBibleComboBox.setEnabled(False) - def _decodeQtObject(self, item, key): - bitem = self.listView.item(item.row()) + def _decodeQtObject(self, bitem, key): reference = bitem.data(QtCore.Qt.UserRole) if isinstance(reference, QtCore.QVariant): reference = reference.toPyObject() @@ -515,19 +534,20 @@ class BibleMediaItem(MediaManagerItem): first = True # Let's loop through the main lot, and assemble our verses. for item in items: - book = self._decodeQtObject(item, 'book') - chapter = int(self._decodeQtObject(item, 'chapter')) - verse = int(self._decodeQtObject(item, 'verse')) - bible = self._decodeQtObject(item, 'bible') - version = self._decodeQtObject(item, 'version') - copyright = self._decodeQtObject(item, 'copyright') - permission = self._decodeQtObject(item, 'permission') - text = self._decodeQtObject(item, 'text') - dual_bible = self._decodeQtObject(item, 'dual_bible') - dual_version = self._decodeQtObject(item, 'dual_version') - dual_copyright = self._decodeQtObject(item, 'dual_copyright') - dual_permission = self._decodeQtObject(item, 'dual_permission') - dual_text = self._decodeQtObject(item, 'dual_text') + bitem = self.listView.item(item.row()) + book = self._decodeQtObject(bitem, 'book') + chapter = int(self._decodeQtObject(bitem, 'chapter')) + verse = int(self._decodeQtObject(bitem, 'verse')) + bible = self._decodeQtObject(bitem, 'bible') + version = self._decodeQtObject(bitem, 'version') + copyright = self._decodeQtObject(bitem, 'copyright') + permission = self._decodeQtObject(bitem, 'permission') + text = self._decodeQtObject(bitem, 'text') + dual_bible = self._decodeQtObject(bitem, 'dual_bible') + dual_version = self._decodeQtObject(bitem, 'dual_version') + dual_copyright = self._decodeQtObject(bitem, 'dual_copyright') + dual_permission = self._decodeQtObject(bitem, 'dual_permission') + dual_text = self._decodeQtObject(bitem, 'dual_text') verse_text = self.formatVerse(old_chapter, chapter, verse) footer = u'%s (%s %s %s)' % (book, version, copyright, permission) if footer not in raw_footer: @@ -599,13 +619,15 @@ class BibleMediaItem(MediaManagerItem): we are at the end of a verse range. E. g. if we want to add Genesis 1:1-6 as well as Daniel 2:14. """ - old_chapter = int(self._decodeQtObject(old_item, 'chapter')) - old_verse = int(self._decodeQtObject(old_item, 'verse')) - start_book = self._decodeQtObject(start_item, 'book') - start_chapter = int(self._decodeQtObject(start_item, 'chapter')) - start_verse = int(self._decodeQtObject(start_item, 'verse')) - start_bible = self._decodeQtObject(start_item, 'bible') - start_dual_bible = self._decodeQtObject(start_item, 'dual_bible') + old_bitem = self.listView.item(old_item.row()) + old_chapter = int(self._decodeQtObject(old_bitem, 'chapter')) + old_verse = int(self._decodeQtObject(old_bitem, 'verse')) + start_bitem = self.listView.item(start_item.row()) + start_book = self._decodeQtObject(start_bitem, 'book') + start_chapter = int(self._decodeQtObject(start_bitem, 'chapter')) + start_verse = int(self._decodeQtObject(start_bitem, 'verse')) + start_bible = self._decodeQtObject(start_bitem, 'bible') + start_dual_bible = self._decodeQtObject(start_bitem, 'dual_bible') if start_dual_bible: if start_verse == old_verse and start_chapter == old_chapter: title = u'%s %s:%s (%s, %s)' % (start_book, start_chapter, @@ -635,16 +657,18 @@ class BibleMediaItem(MediaManagerItem): the case, we return True, else False. E. g. if we added Genesis 1:1-6, but the next verse is Daniel 2:14. """ - book = self._decodeQtObject(item, 'book') - chapter = int(self._decodeQtObject(item, 'chapter')) - verse = int(self._decodeQtObject(item, 'verse')) - bible = self._decodeQtObject(item, 'bible') - dual_bible = self._decodeQtObject(item, 'dual_bible') - old_book = self._decodeQtObject(old_item, 'book') - old_chapter = int(self._decodeQtObject(old_item, 'chapter')) - old_verse = int(self._decodeQtObject(old_item, 'verse')) - old_bible = self._decodeQtObject(old_item, 'bible') - old_dual_bible = self._decodeQtObject(old_item, 'dual_bible') + bitem = self.listView.item(item.row()) + book = self._decodeQtObject(bitem, 'book') + chapter = int(self._decodeQtObject(bitem, 'chapter')) + verse = int(self._decodeQtObject(bitem, 'verse')) + bible = self._decodeQtObject(bitem, 'bible') + dual_bible = self._decodeQtObject(bitem, 'dual_bible') + old_bitem = self.listView.item(old_item.row()) + old_book = self._decodeQtObject(old_bitem, 'book') + old_chapter = int(self._decodeQtObject(old_bitem, 'chapter')) + old_verse = int(self._decodeQtObject(old_bitem, 'verse')) + old_bible = self._decodeQtObject(old_bitem, 'bible') + old_dual_bible = self._decodeQtObject(old_bitem, 'dual_bible') if old_bible != bible or old_dual_bible != dual_bible or \ old_book != book: return True From 17b4335ee4167e627579b17107348e92af4beea1 Mon Sep 17 00:00:00 2001 From: Andreas Preikschat Date: Sun, 19 Sep 2010 18:51:52 +0200 Subject: [PATCH 13/32] do not delete results when changing from keep to clear --- openlp/plugins/bibles/lib/mediaitem.py | 2 -- 1 file changed, 2 deletions(-) diff --git a/openlp/plugins/bibles/lib/mediaitem.py b/openlp/plugins/bibles/lib/mediaitem.py index b52fd051f..ed1bb629d 100644 --- a/openlp/plugins/bibles/lib/mediaitem.py +++ b/openlp/plugins/bibles/lib/mediaitem.py @@ -449,7 +449,6 @@ class BibleMediaItem(MediaManagerItem): self.AdvancedSecondBibleComboBox.setEnabled(True) if self.AdvancedSecondBibleComboBox.findText(u'') == -1: self.AdvancedSecondBibleComboBox.insertItem(0, u'') - self.listView.clear() else: if self.listView.count() != 0: bitem = self.listView.item(0) @@ -496,7 +495,6 @@ class BibleMediaItem(MediaManagerItem): self.QuickSecondBibleComboBox.setEnabled(True) if self.QuickSecondBibleComboBox.findText(u'') == -1: self.QuickSecondBibleComboBox.insertItem(0, u'') - self.listView.clear() else: if self.listView.count() != 0: bitem = self.listView.item(0) From b73a921dbc28c996843dae2527ab4474d0001d51 Mon Sep 17 00:00:00 2001 From: Tim Bentley Date: Mon, 20 Sep 2010 05:59:51 +0100 Subject: [PATCH 14/32] Fix bug if no lanuagage files --- openlp/core/utils/languagemanager.py | 27 ++++++++++++++------------- 1 file changed, 14 insertions(+), 13 deletions(-) diff --git a/openlp/core/utils/languagemanager.py b/openlp/core/utils/languagemanager.py index 36e6330a6..3ffbd7cde 100644 --- a/openlp/core/utils/languagemanager.py +++ b/openlp/core/utils/languagemanager.py @@ -107,19 +107,20 @@ class LanguageManager(object): ``action`` The language menu option """ - action_name = u'%s' % action.objectName() - qm_list = LanguageManager.get_qm_list() - if LanguageManager.auto_language: - language = u'[%s]' % qm_list[action_name] - else: - language = u'%s' % qm_list[action_name] - QtCore.QSettings().setValue( - u'general/language', QtCore.QVariant(language)) - log.info(u'Language file: \'%s\' written to conf file' % language) - QtGui.QMessageBox.information(None, - translate('OpenLP.LanguageManager', 'Language'), - translate('OpenLP.LanguageManager', - 'Please restart OpenLP to use your new language setting.')) + if action: + action_name = u'%s' % action.objectName() + qm_list = LanguageManager.get_qm_list() + if LanguageManager.auto_language: + language = u'[%s]' % qm_list[action_name] + else: + language = u'%s' % qm_list[action_name] + QtCore.QSettings().setValue( + u'general/language', QtCore.QVariant(language)) + log.info(u'Language file: \'%s\' written to conf file' % language) + QtGui.QMessageBox.information(None, + translate('OpenLP.LanguageManager', 'Language'), + translate('OpenLP.LanguageManager', + 'Please restart OpenLP to use your new language setting.')) @staticmethod def init_qm_list(): From 293443ba61ceaa7c5347bcf58f2cc68399e69d84 Mon Sep 17 00:00:00 2001 From: Tim Bentley Date: Mon, 20 Sep 2010 06:06:18 +0100 Subject: [PATCH 15/32] Fixed but untested Fixes: https://launchpad.net/bugs/642778 --- openlp/core/lib/spelltextedit.py | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/openlp/core/lib/spelltextedit.py b/openlp/core/lib/spelltextedit.py index 7d227079b..e7f3d7ef0 100644 --- a/openlp/core/lib/spelltextedit.py +++ b/openlp/core/lib/spelltextedit.py @@ -43,9 +43,12 @@ class SpellTextEdit(QtGui.QPlainTextEdit): QtGui.QPlainTextEdit.__init__(self, *args) # Default dictionary based on the current locale. if enchant_available: - self.dict = enchant.Dict() - self.highlighter = Highlighter(self.document()) - self.highlighter.setDict(self.dict) + try: + self.dict = enchant.Dict() + self.highlighter = Highlighter(self.document()) + self.highlighter.setDict(self.dict) + except: + enchant_available = False def mousePressEvent(self, event): if event.button() == QtCore.Qt.RightButton: From fe6a3af42c0a460cb0be41a06edaa3247fd3a76d Mon Sep 17 00:00:00 2001 From: Tim Bentley Date: Mon, 20 Sep 2010 17:33:38 +0100 Subject: [PATCH 16/32] Explicit error type --- openlp/core/lib/spelltextedit.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/openlp/core/lib/spelltextedit.py b/openlp/core/lib/spelltextedit.py index e7f3d7ef0..61335002e 100644 --- a/openlp/core/lib/spelltextedit.py +++ b/openlp/core/lib/spelltextedit.py @@ -28,6 +28,7 @@ import re import sys try: import enchant + from enchant import DictNotFoundError enchant_available = True except ImportError: enchant_available = False @@ -47,7 +48,7 @@ class SpellTextEdit(QtGui.QPlainTextEdit): self.dict = enchant.Dict() self.highlighter = Highlighter(self.document()) self.highlighter.setDict(self.dict) - except: + except DictNotFoundError: enchant_available = False def mousePressEvent(self, event): From 5675eba314b5b173b0f96ded4029c2094dd3bbe3 Mon Sep 17 00:00:00 2001 From: Tim Bentley Date: Mon, 20 Sep 2010 17:43:36 +0100 Subject: [PATCH 17/32] Fix local variable issues --- openlp/core/lib/spelltextedit.py | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/openlp/core/lib/spelltextedit.py b/openlp/core/lib/spelltextedit.py index 61335002e..cec2f9f25 100644 --- a/openlp/core/lib/spelltextedit.py +++ b/openlp/core/lib/spelltextedit.py @@ -43,13 +43,14 @@ class SpellTextEdit(QtGui.QPlainTextEdit): def __init__(self, *args): QtGui.QPlainTextEdit.__init__(self, *args) # Default dictionary based on the current locale. - if enchant_available: + self.enchant_available = enchant_available + if self.enchant_available: try: self.dict = enchant.Dict() self.highlighter = Highlighter(self.document()) self.highlighter.setDict(self.dict) except DictNotFoundError: - enchant_available = False + self.enchant_available = False def mousePressEvent(self, event): if event.button() == QtCore.Qt.RightButton: @@ -70,7 +71,7 @@ class SpellTextEdit(QtGui.QPlainTextEdit): self.setTextCursor(cursor) # Check if the selected word is misspelled and offer spelling # suggestions if it is. - if enchant_available and self.textCursor().hasSelection(): + if self.enchant_available and self.textCursor().hasSelection(): text = unicode(self.textCursor().selectedText()) if not self.dict.check(text): spell_menu = QtGui.QMenu(translate('OpenLP.SpellTextEdit', From 56297a1cceb2a9174b32b78571dead0f7f831d82 Mon Sep 17 00:00:00 2001 From: Tim Bentley Date: Mon, 20 Sep 2010 19:01:32 +0100 Subject: [PATCH 18/32] fixes for 641644 Fixes: https://launchpad.net/bugs/641644 --- openlp/core/ui/maindisplay.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/openlp/core/ui/maindisplay.py b/openlp/core/ui/maindisplay.py index a2b9dd81a..d48e8166d 100644 --- a/openlp/core/ui/maindisplay.py +++ b/openlp/core/ui/maindisplay.py @@ -326,8 +326,9 @@ class MainDisplay(DisplayWidget): self.frame.render(painter) painter.end() # Make display show up if in single screen mode - if self.isLive: - self.setVisible(True) + # if was hidden keep it hidden + if self.hide_mode and self.isLive: + self.hideDisplay(self.hide_mode) return preview def buildHtml(self, serviceItem): From 137fb7417e6cddac3a12b995371192af1e8eaa0e Mon Sep 17 00:00:00 2001 From: Andreas Preikschat Date: Mon, 20 Sep 2010 20:38:18 +0200 Subject: [PATCH 19/32] removed code and added a dialog --- openlp/plugins/bibles/lib/mediaitem.py | 185 +++++++++++-------------- 1 file changed, 84 insertions(+), 101 deletions(-) diff --git a/openlp/plugins/bibles/lib/mediaitem.py b/openlp/plugins/bibles/lib/mediaitem.py index ed1bb629d..1a18d2ed7 100644 --- a/openlp/plugins/bibles/lib/mediaitem.py +++ b/openlp/plugins/bibles/lib/mediaitem.py @@ -239,10 +239,6 @@ class BibleMediaItem(MediaManagerItem): QtCore.SIGNAL(u'activated(int)'), self.onAdvancedFromVerse) QtCore.QObject.connect(self.AdvancedToChapter, QtCore.SIGNAL(u'activated(int)'), self.onAdvancedToChapter) - QtCore.QObject.connect(self.ClearAdvancedSearchComboBox, - QtCore.SIGNAL(u'activated(int)'), self.onClearAdvancedSearchComboBox) - QtCore.QObject.connect(self.ClearQuickSearchComboBox, - QtCore.SIGNAL(u'activated(int)'), self.onClearQuickSearchComboBox) # Buttons QtCore.QObject.connect(self.AdvancedSearchButton, QtCore.SIGNAL(u'pressed()'), self.onAdvancedSearchButton) @@ -436,29 +432,23 @@ class BibleMediaItem(MediaManagerItem): dual_bible, versetext) if self.ClearAdvancedSearchComboBox.currentIndex() == 0: self.listView.clear() - elif not dual_bible: - self.AdvancedSecondBibleComboBox.setEnabled(False) + if self.listView.count() != 0: + bitem = self.listView.item(0) + item_dual_bible = self._decodeQtObject(bitem, 'dual_bible') + if item_dual_bible and dual_bible or not item_dual_bible and \ + not dual_bible: + self.displayResults(bible, dual_bible) + elif QtGui.QMessageBox.critical(self, + translate('BiblePlugin.MediaItem', 'Error'), + translate('BiblePlugin.MediaItem', 'You cannot combine single ' + 'and dual bible verses. Do you want to delete your search ' + 'results and start a new search?'), + QtGui.QMessageBox.StandardButtons(QtGui.QMessageBox.No | + QtGui.QMessageBox.Yes)) == QtGui.QMessageBox.Yes: + self.listView.clear() + self.displayResults(bible, dual_bible) else: - self.AdvancedSecondBibleComboBox.setEnabled(True) - if self.AdvancedSecondBibleComboBox.findText(u'') != -1: - self.AdvancedSecondBibleComboBox.removeItem(0) - self.displayResults(bible, dual_bible) - - def onClearAdvancedSearchComboBox(self): - if self.ClearAdvancedSearchComboBox.currentIndex() == 0: - self.AdvancedSecondBibleComboBox.setEnabled(True) - if self.AdvancedSecondBibleComboBox.findText(u'') == -1: - self.AdvancedSecondBibleComboBox.insertItem(0, u'') - else: - if self.listView.count() != 0: - bitem = self.listView.item(0) - dual_bible = self._decodeQtObject(bitem, 'dual_bible') - if self.AdvancedSecondBibleComboBox.findText(u'') != -1 and \ - dual_bible: - self.AdvancedSecondBibleComboBox.removeItem(0) - else: - self.AdvancedSecondBibleComboBox.setCurrentIndex(0) - self.AdvancedSecondBibleComboBox.setEnabled(False) + self.displayResults(bible, dual_bible) def onAdvancedFromChapter(self): bible = unicode(self.AdvancedVersionComboBox.currentText()) @@ -481,31 +471,24 @@ class BibleMediaItem(MediaManagerItem): dual_bible, text) if self.ClearQuickSearchComboBox.currentIndex() == 0: self.listView.clear() - elif not dual_bible: - self.QuickSecondBibleComboBox.setEnabled(False) + if self.listView.count() != 0: + bitem = self.listView.item(0) + item_dual_bible = self._decodeQtObject(bitem, 'dual_bible') + if item_dual_bible and dual_bible or not item_dual_bible and \ + not dual_bible: + self.displayResults(bible, dual_bible) + elif QtGui.QMessageBox.critical(self, + translate('BiblePlugin.MediaItem', 'Error'), + translate('BiblePlugin.MediaItem', 'You cannot combine single ' + 'and dual bible verses. Do you want to delete your search ' + 'resutls and start a new search?'), + QtGui.QMessageBox.StandardButtons(QtGui.QMessageBox.No | + QtGui.QMessageBox.Yes)) == QtGui.QMessageBox.Yes: + self.listView.clear() + self.displayResults(bible, dual_bible) else: - self.QuickSecondBibleComboBox.setEnabled(True) - if self.QuickSecondBibleComboBox.findText(u'') != -1: - self.QuickSecondBibleComboBox.removeItem(0) - if self.search_results: self.displayResults(bible, dual_bible) - def onClearQuickSearchComboBox(self): - if self.ClearQuickSearchComboBox.currentIndex() == 0: - self.QuickSecondBibleComboBox.setEnabled(True) - if self.QuickSecondBibleComboBox.findText(u'') == -1: - self.QuickSecondBibleComboBox.insertItem(0, u'') - else: - if self.listView.count() != 0: - bitem = self.listView.item(0) - dual_bible = self._decodeQtObject(bitem, 'dual_bible') - if self.QuickSecondBibleComboBox.findText(u'') != -1 and \ - dual_bible: - self.QuickSecondBibleComboBox.removeItem(0) - else: - self.QuickSecondBibleComboBox.setCurrentIndex(0) - self.QuickSecondBibleComboBox.setEnabled(False) - def _decodeQtObject(self, bitem, key): reference = bitem.data(QtCore.Qt.UserRole) if isinstance(reference, QtCore.QVariant): @@ -529,7 +512,7 @@ class BibleMediaItem(MediaManagerItem): raw_footer = [] raw_slides = [] raw_title = [] - first = True + first_item = True # Let's loop through the main lot, and assemble our verses. for item in items: bitem = self.listView.item(item.row()) @@ -570,9 +553,9 @@ class BibleMediaItem(MediaManagerItem): # We have to be 'Continuous'. else: bible_text = u'%s %s %s\n' % (bible_text, verse_text, text) - if first: + if first_item: start_item = item - first = False + first_item = False elif self.checkTitle(item, old_item): raw_title.append(self.formatTitle(start_item, old_item)) start_item = item @@ -590,10 +573,8 @@ class BibleMediaItem(MediaManagerItem): service_item.add_capability(ItemCapabilities.AllowsPreview) service_item.add_capability(ItemCapabilities.AllowsLoop) # Service Item: Title - first = True for title in raw_title: - if first: - first = False + if not service_item.title: service_item.title = title else: service_item.title += u', ' + title @@ -756,50 +737,52 @@ class BibleMediaItem(MediaManagerItem): dual_permission = u'' # We count the number of rows which are maybe already present. start_count = self.listView.count() - for count, verse in enumerate(self.search_results): - if dual_bible: - vdict = { - 'book': QtCore.QVariant(verse.book.name), - 'chapter': QtCore.QVariant(verse.chapter), - 'verse': QtCore.QVariant(verse.verse), - 'bible': QtCore.QVariant(bible), - 'version': QtCore.QVariant(version.value), - 'copyright': QtCore.QVariant(copyright.value), - 'permission': QtCore.QVariant(permission.value), - 'text': QtCore.QVariant(verse.text), - 'dual_bible': QtCore.QVariant(dual_bible), - 'dual_version': QtCore.QVariant(dual_version.value), - 'dual_copyright': QtCore.QVariant(dual_copyright.value), - 'dual_permission': QtCore.QVariant(dual_permission.value), - 'dual_text': QtCore.QVariant( - self.dual_search_results[count].text) - } - bible_text = u' %s %d:%d (%s, %s)' % (verse.book.name, - verse.chapter, verse.verse, version.value, - dual_version.value) - else: - vdict = { - 'book': QtCore.QVariant(verse.book.name), - 'chapter': QtCore.QVariant(verse.chapter), - 'verse': QtCore.QVariant(verse.verse), - 'bible': QtCore.QVariant(bible), - 'version': QtCore.QVariant(version.value), - 'copyright': QtCore.QVariant(copyright.value), - 'permission': QtCore.QVariant(permission.value), - 'text': QtCore.QVariant(verse.text), - 'dual_bible': QtCore.QVariant(u''), - 'dual_version': QtCore.QVariant(u''), - 'dual_copyright': QtCore.QVariant(u''), - 'dual_permission': QtCore.QVariant(u''), - 'dual_text': QtCore.QVariant(u'') - } - bible_text = u' %s %d:%d (%s)' % (verse.book.name, - verse.chapter, verse.verse, version.value) - bible_verse = QtGui.QListWidgetItem(bible_text) - bible_verse.setData(QtCore.Qt.UserRole, QtCore.QVariant(vdict)) - self.listView.addItem(bible_verse) - row = self.listView.setCurrentRow(count + start_count) - if row: - row.setSelected(True) - self.search_results = {} - self.dual_search_results = {} + if self.search_results: + for count, verse in enumerate(self.search_results): + if dual_bible: + vdict = { + 'book': QtCore.QVariant(verse.book.name), + 'chapter': QtCore.QVariant(verse.chapter), + 'verse': QtCore.QVariant(verse.verse), + 'bible': QtCore.QVariant(bible), + 'version': QtCore.QVariant(version.value), + 'copyright': QtCore.QVariant(copyright.value), + 'permission': QtCore.QVariant(permission.value), + 'text': QtCore.QVariant(verse.text), + 'dual_bible': QtCore.QVariant(dual_bible), + 'dual_version': QtCore.QVariant(dual_version.value), + 'dual_copyright': QtCore.QVariant(dual_copyright.value), + 'dual_permission': QtCore.QVariant( + dual_permission.value), + 'dual_text': QtCore.QVariant( + self.dual_search_results[count].text) + } + bible_text = u' %s %d:%d (%s, %s)' % (verse.book.name, + verse.chapter, verse.verse, version.value, + dual_version.value) + else: + vdict = { + 'book': QtCore.QVariant(verse.book.name), + 'chapter': QtCore.QVariant(verse.chapter), + 'verse': QtCore.QVariant(verse.verse), + 'bible': QtCore.QVariant(bible), + 'version': QtCore.QVariant(version.value), + 'copyright': QtCore.QVariant(copyright.value), + 'permission': QtCore.QVariant(permission.value), + 'text': QtCore.QVariant(verse.text), + 'dual_bible': QtCore.QVariant(u''), + 'dual_version': QtCore.QVariant(u''), + 'dual_copyright': QtCore.QVariant(u''), + 'dual_permission': QtCore.QVariant(u''), + 'dual_text': QtCore.QVariant(u'') + } + bible_text = u' %s %d:%d (%s)' % (verse.book.name, + verse.chapter, verse.verse, version.value) + bible_verse = QtGui.QListWidgetItem(bible_text) + bible_verse.setData(QtCore.Qt.UserRole, QtCore.QVariant(vdict)) + self.listView.addItem(bible_verse) + row = self.listView.setCurrentRow(count + start_count) + if row: + row.setSelected(True) + self.search_results = {} + self.dual_search_results = {} From 8b6e90ab44e9dd8dac5dfaea0da9cc21a429a6ff Mon Sep 17 00:00:00 2001 From: Andreas Preikschat Date: Mon, 20 Sep 2010 20:55:14 +0200 Subject: [PATCH 20/32] tweak --- openlp/plugins/bibles/lib/mediaitem.py | 100 ++++++++++++------------- 1 file changed, 49 insertions(+), 51 deletions(-) diff --git a/openlp/plugins/bibles/lib/mediaitem.py b/openlp/plugins/bibles/lib/mediaitem.py index 1a18d2ed7..fb4d5cb08 100644 --- a/openlp/plugins/bibles/lib/mediaitem.py +++ b/openlp/plugins/bibles/lib/mediaitem.py @@ -471,7 +471,7 @@ class BibleMediaItem(MediaManagerItem): dual_bible, text) if self.ClearQuickSearchComboBox.currentIndex() == 0: self.listView.clear() - if self.listView.count() != 0: + if self.listView.count() != 0 and self.search_results: bitem = self.listView.item(0) item_dual_bible = self._decodeQtObject(bitem, 'dual_bible') if item_dual_bible and dual_bible or not item_dual_bible and \ @@ -486,7 +486,7 @@ class BibleMediaItem(MediaManagerItem): QtGui.QMessageBox.Yes)) == QtGui.QMessageBox.Yes: self.listView.clear() self.displayResults(bible, dual_bible) - else: + elif self.search_results: self.displayResults(bible, dual_bible) def _decodeQtObject(self, bitem, key): @@ -737,52 +737,50 @@ class BibleMediaItem(MediaManagerItem): dual_permission = u'' # We count the number of rows which are maybe already present. start_count = self.listView.count() - if self.search_results: - for count, verse in enumerate(self.search_results): - if dual_bible: - vdict = { - 'book': QtCore.QVariant(verse.book.name), - 'chapter': QtCore.QVariant(verse.chapter), - 'verse': QtCore.QVariant(verse.verse), - 'bible': QtCore.QVariant(bible), - 'version': QtCore.QVariant(version.value), - 'copyright': QtCore.QVariant(copyright.value), - 'permission': QtCore.QVariant(permission.value), - 'text': QtCore.QVariant(verse.text), - 'dual_bible': QtCore.QVariant(dual_bible), - 'dual_version': QtCore.QVariant(dual_version.value), - 'dual_copyright': QtCore.QVariant(dual_copyright.value), - 'dual_permission': QtCore.QVariant( - dual_permission.value), - 'dual_text': QtCore.QVariant( - self.dual_search_results[count].text) - } - bible_text = u' %s %d:%d (%s, %s)' % (verse.book.name, - verse.chapter, verse.verse, version.value, - dual_version.value) - else: - vdict = { - 'book': QtCore.QVariant(verse.book.name), - 'chapter': QtCore.QVariant(verse.chapter), - 'verse': QtCore.QVariant(verse.verse), - 'bible': QtCore.QVariant(bible), - 'version': QtCore.QVariant(version.value), - 'copyright': QtCore.QVariant(copyright.value), - 'permission': QtCore.QVariant(permission.value), - 'text': QtCore.QVariant(verse.text), - 'dual_bible': QtCore.QVariant(u''), - 'dual_version': QtCore.QVariant(u''), - 'dual_copyright': QtCore.QVariant(u''), - 'dual_permission': QtCore.QVariant(u''), - 'dual_text': QtCore.QVariant(u'') - } - bible_text = u' %s %d:%d (%s)' % (verse.book.name, - verse.chapter, verse.verse, version.value) - bible_verse = QtGui.QListWidgetItem(bible_text) - bible_verse.setData(QtCore.Qt.UserRole, QtCore.QVariant(vdict)) - self.listView.addItem(bible_verse) - row = self.listView.setCurrentRow(count + start_count) - if row: - row.setSelected(True) - self.search_results = {} - self.dual_search_results = {} + for count, verse in enumerate(self.search_results): + if dual_bible: + vdict = { + 'book': QtCore.QVariant(verse.book.name), + 'chapter': QtCore.QVariant(verse.chapter), + 'verse': QtCore.QVariant(verse.verse), + 'bible': QtCore.QVariant(bible), + 'version': QtCore.QVariant(version.value), + 'copyright': QtCore.QVariant(copyright.value), + 'permission': QtCore.QVariant(permission.value), + 'text': QtCore.QVariant(verse.text), + 'dual_bible': QtCore.QVariant(dual_bible), + 'dual_version': QtCore.QVariant(dual_version.value), + 'dual_copyright': QtCore.QVariant(dual_copyright.value), + 'dual_permission': QtCore.QVariant(dual_permission.value), + 'dual_text': QtCore.QVariant( + self.dual_search_results[count].text) + } + bible_text = u' %s %d:%d (%s, %s)' % (verse.book.name, + verse.chapter, verse.verse, version.value, + dual_version.value) + else: + vdict = { + 'book': QtCore.QVariant(verse.book.name), + 'chapter': QtCore.QVariant(verse.chapter), + 'verse': QtCore.QVariant(verse.verse), + 'bible': QtCore.QVariant(bible), + 'version': QtCore.QVariant(version.value), + 'copyright': QtCore.QVariant(copyright.value), + 'permission': QtCore.QVariant(permission.value), + 'text': QtCore.QVariant(verse.text), + 'dual_bible': QtCore.QVariant(u''), + 'dual_version': QtCore.QVariant(u''), + 'dual_copyright': QtCore.QVariant(u''), + 'dual_permission': QtCore.QVariant(u''), + 'dual_text': QtCore.QVariant(u'') + } + bible_text = u' %s %d:%d (%s)' % (verse.book.name, + verse.chapter, verse.verse, version.value) + bible_verse = QtGui.QListWidgetItem(bible_text) + bible_verse.setData(QtCore.Qt.UserRole, QtCore.QVariant(vdict)) + self.listView.addItem(bible_verse) + row = self.listView.setCurrentRow(count + start_count) + if row: + row.setSelected(True) + self.search_results = {} + self.dual_search_results = {} From a22dec796ee8a05de74b8b259c3314f4c7575086 Mon Sep 17 00:00:00 2001 From: Andreas Preikschat Date: Tue, 21 Sep 2010 07:57:23 +0200 Subject: [PATCH 21/32] typing error --- openlp/plugins/bibles/lib/mediaitem.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/openlp/plugins/bibles/lib/mediaitem.py b/openlp/plugins/bibles/lib/mediaitem.py index fb4d5cb08..0cd4866a8 100644 --- a/openlp/plugins/bibles/lib/mediaitem.py +++ b/openlp/plugins/bibles/lib/mediaitem.py @@ -481,7 +481,7 @@ class BibleMediaItem(MediaManagerItem): translate('BiblePlugin.MediaItem', 'Error'), translate('BiblePlugin.MediaItem', 'You cannot combine single ' 'and dual bible verses. Do you want to delete your search ' - 'resutls and start a new search?'), + 'results and start a new search?'), QtGui.QMessageBox.StandardButtons(QtGui.QMessageBox.No | QtGui.QMessageBox.Yes)) == QtGui.QMessageBox.Yes: self.listView.clear() From d50ffbafa3ea69a3e1f0431330c2be2631c1c0dc Mon Sep 17 00:00:00 2001 From: Tim Bentley Date: Tue, 21 Sep 2010 18:24:01 +0100 Subject: [PATCH 22/32] Fix review comments --- openlp/core/lib/renderer.py | 12 ------------ openlp/core/ui/maindisplay.py | 8 +++----- 2 files changed, 3 insertions(+), 17 deletions(-) diff --git a/openlp/core/lib/renderer.py b/openlp/core/lib/renderer.py index 8cf15c696..f97575c5e 100644 --- a/openlp/core/lib/renderer.py +++ b/openlp/core/lib/renderer.py @@ -105,18 +105,6 @@ class Renderer(object): (build_lyrics_format_css(self._theme, self.page_width, self.page_height), build_lyrics_outline_css(self._theme)) - self.web = QtWebKit.QWebView() - self.web.resize(self._rect.width(), self._rect.height()) - self.web.setVisible(False) - self.web_frame = self.web.page().mainFrame() - # Adjust width and height to account for shadow. outline done in css - self.page_width = self._rect.width() - int(self._theme.display_shadow_size) - self.page_height = self._rect.height() - int(self._theme.display_shadow_size) - self.page_shell = u'' \ - u'
' % \ - (build_lyrics_format_css(self._theme, self.page_width, self.page_height), - build_lyrics_outline_css(self._theme)) - def set_frame_dest(self, frame_width, frame_height): """ Set the size of the slide. diff --git a/openlp/core/ui/maindisplay.py b/openlp/core/ui/maindisplay.py index e73088410..e36ef7b0d 100644 --- a/openlp/core/ui/maindisplay.py +++ b/openlp/core/ui/maindisplay.py @@ -326,8 +326,9 @@ class MainDisplay(DisplayWidget): # Important otherwise first preview will miss the background ! while not self.loaded: Receiver.send_message(u'openlp_process_events') - if self.isLive: - self.setVisible(True) + # if was hidden keep it hidden + if self.hide_mode and self.isLive: + self.hideDisplay(self.hide_mode) preview = QtGui.QImage(self.screen[u'size'].width(), self.screen[u'size'].height(), QtGui.QImage.Format_ARGB32_Premultiplied) @@ -335,9 +336,6 @@ class MainDisplay(DisplayWidget): painter.setRenderHint(QtGui.QPainter.Antialiasing) self.frame.render(painter) painter.end() - # if was hidden keep it hidden - if self.hide_mode and self.isLive: - self.hideDisplay(self.hide_mode) return preview def buildHtml(self, serviceItem): From 79881d9023fe30ab474623680b55685909b9c4cb Mon Sep 17 00:00:00 2001 From: Tim Bentley Date: Tue, 21 Sep 2010 18:30:32 +0100 Subject: [PATCH 23/32] Update plugin version numbers --- openlp/plugins/alerts/alertsplugin.py | 2 +- openlp/plugins/bibles/bibleplugin.py | 2 +- openlp/plugins/bibles/lib/mediaitem.py | 4 +--- openlp/plugins/custom/customplugin.py | 2 +- openlp/plugins/images/imageplugin.py | 2 +- openlp/plugins/media/mediaplugin.py | 2 +- openlp/plugins/presentations/presentationplugin.py | 2 +- openlp/plugins/remotes/remoteplugin.py | 2 +- openlp/plugins/songs/songsplugin.py | 2 +- openlp/plugins/songusage/songusageplugin.py | 2 +- 10 files changed, 10 insertions(+), 12 deletions(-) diff --git a/openlp/plugins/alerts/alertsplugin.py b/openlp/plugins/alerts/alertsplugin.py index 9e1da2267..b8a829b37 100644 --- a/openlp/plugins/alerts/alertsplugin.py +++ b/openlp/plugins/alerts/alertsplugin.py @@ -40,7 +40,7 @@ class AlertsPlugin(Plugin): log.info(u'Alerts Plugin loaded') def __init__(self, plugin_helpers): - Plugin.__init__(self, u'Alerts', u'1.9.2', plugin_helpers) + Plugin.__init__(self, u'Alerts', u'1.9.3', plugin_helpers) self.weight = -3 self.icon = build_icon(u':/plugins/plugin_alerts.png') self.alertsmanager = AlertsManager(self) diff --git a/openlp/plugins/bibles/bibleplugin.py b/openlp/plugins/bibles/bibleplugin.py index da542b23b..7f69c6ff0 100644 --- a/openlp/plugins/bibles/bibleplugin.py +++ b/openlp/plugins/bibles/bibleplugin.py @@ -37,7 +37,7 @@ class BiblePlugin(Plugin): log.info(u'Bible Plugin loaded') def __init__(self, plugin_helpers): - Plugin.__init__(self, u'Bibles', u'1.9.2', plugin_helpers) + Plugin.__init__(self, u'Bibles', u'1.9.3', plugin_helpers) self.weight = -9 self.icon_path = u':/plugins/plugin_bibles.png' self.icon = build_icon(self.icon_path) diff --git a/openlp/plugins/bibles/lib/mediaitem.py b/openlp/plugins/bibles/lib/mediaitem.py index fa954d2a0..6cceb9c49 100644 --- a/openlp/plugins/bibles/lib/mediaitem.py +++ b/openlp/plugins/bibles/lib/mediaitem.py @@ -376,9 +376,6 @@ class BibleMediaItem(MediaManagerItem): def onSearchProgressShow(self): self.SearchProgress.setVisible(True) Receiver.send_message(u'openlp_process_events') - #self.SearchProgress.setMinimum(0) - #self.SearchProgress.setMaximum(2) - #self.SearchProgress.setValue(1) def onSearchProgressHide(self): self.SearchProgress.setVisible(False) @@ -414,6 +411,7 @@ class BibleMediaItem(MediaManagerItem): def onAdvancedToChapter(self): frm = unicode(self.AdvancedFromChapter.currentText()) to = unicode(self.AdvancedToChapter.currentText()) + print frm , to if frm != to: bible = unicode(self.AdvancedVersionComboBox.currentText()) book = unicode(self.AdvancedBookComboBox.currentText()) diff --git a/openlp/plugins/custom/customplugin.py b/openlp/plugins/custom/customplugin.py index 4e3819961..523ccb061 100644 --- a/openlp/plugins/custom/customplugin.py +++ b/openlp/plugins/custom/customplugin.py @@ -47,7 +47,7 @@ class CustomPlugin(Plugin): log.info(u'Custom Plugin loaded') def __init__(self, plugin_helpers): - Plugin.__init__(self, u'Custom', u'1.9.2', plugin_helpers) + Plugin.__init__(self, u'Custom', u'1.9.3', plugin_helpers) self.weight = -5 self.custommanager = Manager(u'custom', init_schema) self.edit_custom_form = EditCustomForm(self.custommanager) diff --git a/openlp/plugins/images/imageplugin.py b/openlp/plugins/images/imageplugin.py index d34cd6a3c..7f910f395 100644 --- a/openlp/plugins/images/imageplugin.py +++ b/openlp/plugins/images/imageplugin.py @@ -35,7 +35,7 @@ class ImagePlugin(Plugin): log.info(u'Image Plugin loaded') def __init__(self, plugin_helpers): - Plugin.__init__(self, u'Images', u'1.9.2', plugin_helpers) + Plugin.__init__(self, u'Images', u'1.9.3', plugin_helpers) self.weight = -7 self.icon_path = u':/plugins/plugin_images.png' self.icon = build_icon(self.icon_path) diff --git a/openlp/plugins/media/mediaplugin.py b/openlp/plugins/media/mediaplugin.py index db326f843..e50333eb2 100644 --- a/openlp/plugins/media/mediaplugin.py +++ b/openlp/plugins/media/mediaplugin.py @@ -37,7 +37,7 @@ class MediaPlugin(Plugin): log.info(u'%s MediaPlugin loaded', __name__) def __init__(self, plugin_helpers): - Plugin.__init__(self, u'Media', u'1.9.2', plugin_helpers) + Plugin.__init__(self, u'Media', u'1.9.3', plugin_helpers) self.weight = -6 self.icon_path = u':/plugins/plugin_media.png' self.icon = build_icon(self.icon_path) diff --git a/openlp/plugins/presentations/presentationplugin.py b/openlp/plugins/presentations/presentationplugin.py index e63063ffd..ada695625 100644 --- a/openlp/plugins/presentations/presentationplugin.py +++ b/openlp/plugins/presentations/presentationplugin.py @@ -51,7 +51,7 @@ class PresentationPlugin(Plugin): """ log.debug(u'Initialised') self.controllers = {} - Plugin.__init__(self, u'Presentations', u'1.9.2', plugin_helpers) + Plugin.__init__(self, u'Presentations', u'1.9.3', plugin_helpers) self.weight = -8 self.icon_path = u':/plugins/plugin_presentations.png' self.icon = build_icon(self.icon_path) diff --git a/openlp/plugins/remotes/remoteplugin.py b/openlp/plugins/remotes/remoteplugin.py index 59ad9a99c..927a706a3 100644 --- a/openlp/plugins/remotes/remoteplugin.py +++ b/openlp/plugins/remotes/remoteplugin.py @@ -38,7 +38,7 @@ class RemotesPlugin(Plugin): """ remotes constructor """ - Plugin.__init__(self, u'Remotes', u'1.9.2', plugin_helpers) + Plugin.__init__(self, u'Remotes', u'1.9.3', plugin_helpers) self.icon = build_icon(u':/plugins/plugin_remote.png') self.weight = -1 self.server = None diff --git a/openlp/plugins/songs/songsplugin.py b/openlp/plugins/songs/songsplugin.py index 0064be23a..c1fe3a91a 100644 --- a/openlp/plugins/songs/songsplugin.py +++ b/openlp/plugins/songs/songsplugin.py @@ -50,7 +50,7 @@ class SongsPlugin(Plugin): """ Create and set up the Songs plugin. """ - Plugin.__init__(self, u'Songs', u'1.9.2', plugin_helpers) + Plugin.__init__(self, u'Songs', u'1.9.3', plugin_helpers) self.weight = -10 self.manager = Manager(u'songs', init_schema) self.icon_path = u':/plugins/plugin_songs.png' diff --git a/openlp/plugins/songusage/songusageplugin.py b/openlp/plugins/songusage/songusageplugin.py index c8dfd06fc..f0eb1f73d 100644 --- a/openlp/plugins/songusage/songusageplugin.py +++ b/openlp/plugins/songusage/songusageplugin.py @@ -41,7 +41,7 @@ class SongUsagePlugin(Plugin): log.info(u'SongUsage Plugin loaded') def __init__(self, plugin_helpers): - Plugin.__init__(self, u'SongUsage', u'1.9.2', plugin_helpers) + Plugin.__init__(self, u'SongUsage', u'1.9.3', plugin_helpers) self.weight = -4 self.icon = build_icon(u':/plugins/plugin_songusage.png') self.songusagemanager = None From 8e94d87e6560f443513db8272fde612db9df6b4e Mon Sep 17 00:00:00 2001 From: Tim Bentley Date: Tue, 21 Sep 2010 18:35:26 +0100 Subject: [PATCH 24/32] Put the display image back after it was lost --- openlp/core/ui/maindisplay.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/openlp/core/ui/maindisplay.py b/openlp/core/ui/maindisplay.py index e36ef7b0d..1a8cdff5e 100644 --- a/openlp/core/ui/maindisplay.py +++ b/openlp/core/ui/maindisplay.py @@ -164,7 +164,7 @@ class MainDisplay(DisplayWidget): - splash_image.height()) / 2, splash_image) serviceItem = ServiceItem() - serviceItem.bg_frame = initialFrame + serviceItem.bg_image_bytes = image_to_byte(initialFrame) self.webView.setHtml(build_html(serviceItem, self.screen, self.parent.alertTab, self.isLive)) self.initialFrame = True From 1c58fcda9f2bc040dcb88ecf70df9197a0423b80 Mon Sep 17 00:00:00 2001 From: Tim Bentley Date: Tue, 21 Sep 2010 18:42:16 +0100 Subject: [PATCH 25/32] Remove print statement --- openlp/plugins/bibles/lib/mediaitem.py | 1 - 1 file changed, 1 deletion(-) diff --git a/openlp/plugins/bibles/lib/mediaitem.py b/openlp/plugins/bibles/lib/mediaitem.py index 6cceb9c49..dcf7589d3 100644 --- a/openlp/plugins/bibles/lib/mediaitem.py +++ b/openlp/plugins/bibles/lib/mediaitem.py @@ -411,7 +411,6 @@ class BibleMediaItem(MediaManagerItem): def onAdvancedToChapter(self): frm = unicode(self.AdvancedFromChapter.currentText()) to = unicode(self.AdvancedToChapter.currentText()) - print frm , to if frm != to: bible = unicode(self.AdvancedVersionComboBox.currentText()) book = unicode(self.AdvancedBookComboBox.currentText()) From 2a4e64c9db69276a6d5efef5bee6307986c6ee1d Mon Sep 17 00:00:00 2001 From: Andreas Preikschat Date: Tue, 21 Sep 2010 20:44:48 +0200 Subject: [PATCH 26/32] fix for Bug #643783 --- openlp/plugins/bibles/lib/mediaitem.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/openlp/plugins/bibles/lib/mediaitem.py b/openlp/plugins/bibles/lib/mediaitem.py index 0cd4866a8..437d499f2 100644 --- a/openlp/plugins/bibles/lib/mediaitem.py +++ b/openlp/plugins/bibles/lib/mediaitem.py @@ -403,7 +403,10 @@ class BibleMediaItem(MediaManagerItem): def onAdvancedFromVerse(self): frm = self.AdvancedFromVerse.currentText() - self.adjustComboBox(frm, self.verses, self.AdvancedToVerse) + chapter_frm = unicode(self.AdvancedFromChapter.currentText()) + chapter_to = unicode(self.AdvancedToChapter.currentText()) + if chapter_frm == chapter_to: + self.adjustComboBox(frm, self.verses, self.AdvancedToVerse) def onAdvancedToChapter(self): frm = unicode(self.AdvancedFromChapter.currentText()) From 3e0a3f799ba151e3b6e877dba7951d68d9822ba9 Mon Sep 17 00:00:00 2001 From: Tim Bentley Date: Tue, 21 Sep 2010 20:05:45 +0100 Subject: [PATCH 27/32] Fix bug 642754 in service manager --- openlp/core/ui/maindisplay.py | 5 ++++- openlp/core/ui/servicemanager.py | 34 +++++++++++++++++--------------- 2 files changed, 22 insertions(+), 17 deletions(-) diff --git a/openlp/core/ui/maindisplay.py b/openlp/core/ui/maindisplay.py index 1a8cdff5e..71e7d5a09 100644 --- a/openlp/core/ui/maindisplay.py +++ b/openlp/core/ui/maindisplay.py @@ -327,7 +327,10 @@ class MainDisplay(DisplayWidget): while not self.loaded: Receiver.send_message(u'openlp_process_events') # if was hidden keep it hidden - if self.hide_mode and self.isLive: + if self.isLive: +# self.setVisible(True) +# # if was hidden keep it hidden +# if self.hide_mode and self.isLive: self.hideDisplay(self.hide_mode) preview = QtGui.QImage(self.screen[u'size'].width(), self.screen[u'size'].height(), diff --git a/openlp/core/ui/servicemanager.py b/openlp/core/ui/servicemanager.py index 8db14956d..e6e2388df 100644 --- a/openlp/core/ui/servicemanager.py +++ b/openlp/core/ui/servicemanager.py @@ -383,20 +383,20 @@ class ServiceManager(QtGui.QWidget): serviceIterator = QtGui.QTreeWidgetItemIterator(self.serviceManagerList) tempItem = None setLastItem = False - while serviceIterator: - if serviceIterator.isSelected() and tempItem is None: + while serviceIterator.value(): + if serviceIterator.value().isSelected() and tempItem is None: setLastItem = True - serviceIterator.setSelected(False) - if serviceIterator.isSelected(): - #We are on the first record + serviceIterator.value().setSelected(False) + if serviceIterator.value().isSelected(): + # We are on the first record if tempItem: tempItem.setSelected(True) - serviceIterator.setSelected(False) + serviceIterator.value().setSelected(False) else: - tempItem = serviceIterator - lastItem = serviceIterator - ++serviceIterator - #Top Item was selected so set the last one + tempItem = serviceIterator.value() + lastItem = serviceIterator.value() + serviceIterator += 1 + # Top Item was selected so set the last one if setLastItem: lastItem.setSelected(True) @@ -406,16 +406,18 @@ class ServiceManager(QtGui.QWidget): Called by the down arrow """ serviceIterator = QtGui.QTreeWidgetItemIterator(self.serviceManagerList) - firstItem = serviceIterator + firstItem = None setSelected = False - while serviceIterator: + while serviceIterator.value(): + if not firstItem: + firstItem = serviceIterator.value() if setSelected: setSelected = False - serviceIterator.setSelected(True) - elif serviceIterator.isSelected(): - serviceIterator.setSelected(False) + serviceIterator.value().setSelected(True) + elif serviceIterator.value() and serviceIterator.value().isSelected(): + serviceIterator.value().setSelected(False) setSelected = True - ++serviceIterator + serviceIterator += 1 if setSelected: firstItem.setSelected(True) From e790f9aedc7e5d99ad2170f00545f0214030e19a Mon Sep 17 00:00:00 2001 From: Tim Bentley Date: Tue, 21 Sep 2010 20:08:23 +0100 Subject: [PATCH 28/32] Move display fixes --- openlp/core/ui/maindisplay.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/openlp/core/ui/maindisplay.py b/openlp/core/ui/maindisplay.py index 71e7d5a09..42ddda25d 100644 --- a/openlp/core/ui/maindisplay.py +++ b/openlp/core/ui/maindisplay.py @@ -328,9 +328,9 @@ class MainDisplay(DisplayWidget): Receiver.send_message(u'openlp_process_events') # if was hidden keep it hidden if self.isLive: -# self.setVisible(True) -# # if was hidden keep it hidden -# if self.hide_mode and self.isLive: + self.setVisible(True) + # if was hidden keep it hidden + if self.hide_mode and self.isLive: self.hideDisplay(self.hide_mode) preview = QtGui.QImage(self.screen[u'size'].width(), self.screen[u'size'].height(), From 050d1478c9defb6a52633aa4804bac4dd80cb2f0 Mon Sep 17 00:00:00 2001 From: Jonathan Corwin Date: Tue, 21 Sep 2010 23:22:05 +0100 Subject: [PATCH 29/32] Attempt to speed up video restart when looping. Make sure outlined fonts don't vanish off left hand side --- openlp/core/lib/htmlbuilder.py | 145 ++++++++++++++++++++------------- openlp/core/ui/maindisplay.py | 2 +- 2 files changed, 89 insertions(+), 58 deletions(-) diff --git a/openlp/core/lib/htmlbuilder.py b/openlp/core/lib/htmlbuilder.py index ef8fb286a..505122b1f 100644 --- a/openlp/core/lib/htmlbuilder.py +++ b/openlp/core/lib/htmlbuilder.py @@ -58,7 +58,10 @@ body { #image { z-index:1; } -#video { +#video1 { + z-index:2; +} +#video2 { z-index:2; } #alert { @@ -80,54 +83,12 @@ body {