From 4520845a81ffad73e1e18234fbfeb6352e41e6e4 Mon Sep 17 00:00:00 2001 From: Wesley Stout Date: Tue, 2 Nov 2010 21:07:05 -0500 Subject: [PATCH 01/63] Added mediamanger.rst and began work on songsplugin.rst --- documentation/manual/source/mediamanager.rst | 26 ++++++++++ documentation/manual/source/pics/plugins.png | Bin 0 -> 29895 bytes .../manual/source/pics/songimporter.png | Bin 0 -> 141012 bytes .../source/pics/songimporterchoices.png | Bin 0 -> 40238 bytes documentation/manual/source/songsplugin.rst | 47 ++++++++++++++++++ 5 files changed, 73 insertions(+) create mode 100644 documentation/manual/source/mediamanager.rst create mode 100644 documentation/manual/source/pics/plugins.png create mode 100644 documentation/manual/source/pics/songimporter.png create mode 100644 documentation/manual/source/pics/songimporterchoices.png create mode 100644 documentation/manual/source/songsplugin.rst diff --git a/documentation/manual/source/mediamanager.rst b/documentation/manual/source/mediamanager.rst new file mode 100644 index 000000000..2cf1d2c57 --- /dev/null +++ b/documentation/manual/source/mediamanager.rst @@ -0,0 +1,26 @@ +============= +Media Manager +============= + +Once you get your system set up for OpenLP you will be ready to add content to +your setup. This will all happen through the **Media Manager**. The +`Media Manager` contains all the bibles, songs, presentations, media, and +everything else that you will project through OpenLP. + +Enabling the Plugins +-------------------- + +You may need to enable the plugins that came with OpenLP. As you can see below +this is what the `Media Manager` looks like with all the plugins enabled. + +.. image:: pics/mediamanager.png + +To enable the plugins navigate to :menuselection:`Settings --> Plugins` or +press `F7`. You will then want to click on the plugin to the left that you want +to enable and select **active** from the drop down box to the right. + +.. image:: pics/plugins.png + + +Now you should be ready to add content to OpenLP check out the section of this +guide on the individual plugins. diff --git a/documentation/manual/source/pics/plugins.png b/documentation/manual/source/pics/plugins.png new file mode 100644 index 0000000000000000000000000000000000000000..b6810242b69589d1dd67e3135fa670b02d4e39aa GIT binary patch literal 29895 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 literal 0 HcmV?d00001 diff --git a/documentation/manual/source/pics/songimporter.png b/documentation/manual/source/pics/songimporter.png new file mode 100644 index 0000000000000000000000000000000000000000..96c39ea38fdc3cdda9324a207f2b84e88793c960 GIT binary patch literal 141012 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 z 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 Import --> Song`. +You will then see the Song Importer window, then click :guilabel:`Next`. + +.. image:: pics/songimporter.png + +After choosing :guilabel:`Next` you can then select from the various types of +software that OpenLP will convert songs from. + +.. image:: pics/songimporterchoices.png + +Then click on the file folder icon to choose the file of the song database you +want to import. See the following sections for information on the different +formats that OpenLP will import. + +Importing from OpenLP Version 1 +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +Converting from OpenLP Version 1 is a pretty simple process. You will first +need to locate your version 1 database file. + +Windows XP:: + + C:\Documents and Settings\All Users\Application Data\openlp.org\Data\songs.olp + +Windows Vista/7:: + + C:\ProgramData\openlp.org\Data\songs.olp + + + + + + + + From 06cf6dcc203c47b26dcf0ea5c1e0821d47a0b3ca Mon Sep 17 00:00:00 2001 From: Andreas Preikschat Date: Tue, 9 Nov 2010 17:56:16 +0100 Subject: [PATCH 02/63] changed bible importer finish message, clean ups --- .../plugins/bibles/forms/bibleimportform.py | 26 +++++++++++++------ openlp/plugins/bibles/lib/http.py | 7 +++-- 2 files changed, 21 insertions(+), 12 deletions(-) diff --git a/openlp/plugins/bibles/forms/bibleimportform.py b/openlp/plugins/bibles/forms/bibleimportform.py index 2e11c30ad..9053c123e 100644 --- a/openlp/plugins/bibles/forms/bibleimportform.py +++ b/openlp/plugins/bibles/forms/bibleimportform.py @@ -168,7 +168,7 @@ class BibleImportForm(QtGui.QWizard, Ui_BibleImportWizard): license_version = unicode(self.field(u'license_version').toString()) license_copyright = \ unicode(self.field(u'license_copyright').toString()) - if license_version == u'': + if not license_version: QtGui.QMessageBox.critical(self, translate('BiblesPlugin.ImportWizardForm', 'Empty Version Name'), @@ -176,7 +176,7 @@ class BibleImportForm(QtGui.QWizard, Ui_BibleImportWizard): 'You need to specify a version name for your Bible.')) self.VersionNameEdit.setFocus() return False - elif license_copyright == u'': + elif not license_copyright: QtGui.QMessageBox.critical(self, translate('BiblesPlugin.ImportWizardForm', 'Empty Copyright'), @@ -317,7 +317,7 @@ class BibleImportForm(QtGui.QWizard, Ui_BibleImportWizard): """ Load the list of Crosswalk and BibleGateway bibles. """ - #Load and store Crosswalk Bibles + # Load and store Crosswalk Bibles. filepath = AppLocation.get_directory(AppLocation.PluginsDir) filepath = os.path.join(filepath, u'bibles', u'resources') books_file = None @@ -341,7 +341,7 @@ class BibleImportForm(QtGui.QWizard, Ui_BibleImportWizard): finally: if books_file: books_file.close() - #Load and store BibleGateway Bibles + # Load and store BibleGateway Bibles. books_file = None try: self.web_bible_list[WebDownload.BibleGateway] = {} @@ -379,12 +379,17 @@ class BibleImportForm(QtGui.QWizard, Ui_BibleImportWizard): Receiver.send_message(u'openlp_process_events') def preImport(self): + bible_type = self.field(u'source_format').toInt()[0] self.finishButton.setVisible(False) self.ImportProgressBar.setMinimum(0) self.ImportProgressBar.setMaximum(1188) self.ImportProgressBar.setValue(0) - self.ImportProgressLabel.setText( - translate('BiblesPlugin.ImportWizardForm', 'Starting import...')) + if bible_type == BibleFormat.WebDownload: + self.ImportProgressLabel.setText(translate( + 'BiblesPlugin.ImportWizardForm', 'Starting Registering bible...')) + else: + self.ImportProgressLabel.setText(translate( + 'BiblesPlugin.ImportWizardForm', 'Starting import...')) Receiver.send_message(u'openlp_process_events') def performImport(self): @@ -438,8 +443,13 @@ class BibleImportForm(QtGui.QWizard, Ui_BibleImportWizard): self.manager.save_meta_data(license_version, license_version, license_copyright, license_permissions) self.manager.reload_bibles() - self.ImportProgressLabel.setText( - translate('BiblesPlugin.ImportWizardForm', 'Finished import.')) + if bible_type == BibleFormat.WebDownload: + self.ImportProgressLabel.setText( + translate('BiblesPlugin.ImportWizardForm', 'Registered ' + 'bible. Verses will be downloaded as required.')) + else: + self.ImportProgressLabel.setText(translate( + 'BiblesPlugin.ImportWizardForm', 'Finished import.')) else: self.ImportProgressLabel.setText( translate('BiblesPlugin.ImportWizardForm', diff --git a/openlp/plugins/bibles/lib/http.py b/openlp/plugins/bibles/lib/http.py index e6a474f5c..361525563 100644 --- a/openlp/plugins/bibles/lib/http.py +++ b/openlp/plugins/bibles/lib/http.py @@ -364,12 +364,11 @@ class HTTPBible(BibleDB): if self.proxy_server: self.create_meta(u'proxy server', self.proxy_server) if self.proxy_username: - # store the proxy userid + # Store the proxy userid. self.create_meta(u'proxy username', self.proxy_username) if self.proxy_password: - # store the proxy password + # Store the proxy password. self.create_meta(u'proxy password', self.proxy_password) - self.wizard.incrementProgressBar('Registered.') return True def get_verses(self, reference_list): @@ -417,7 +416,7 @@ class HTTPBible(BibleDB): ## to request ac and get Acts back. bookname = search_results.book Receiver.send_message(u'openlp_process_events') - # check to see if book/chapter exists + # Check to see if book/chapter exists. db_book = self.get_book(bookname) self.create_chapter(db_book.id, search_results.chapter, search_results.verselist) From f8b793ca3bfeaac747eab323d128407c3d751fee Mon Sep 17 00:00:00 2001 From: Andreas Preikschat Date: Tue, 9 Nov 2010 18:10:37 +0100 Subject: [PATCH 03/63] removed whitespaces, added second blank line before class --- openlp/plugins/bibles/lib/mediaitem.py | 1 + openlp/plugins/songs/forms/songmaintenanceform.py | 6 +++--- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/openlp/plugins/bibles/lib/mediaitem.py b/openlp/plugins/bibles/lib/mediaitem.py index bb3c1b26d..d00e94fe0 100644 --- a/openlp/plugins/bibles/lib/mediaitem.py +++ b/openlp/plugins/bibles/lib/mediaitem.py @@ -47,6 +47,7 @@ class BibleListView(BaseListWithDnD): self.parent().onListViewResize(event.size().width(), event.size().width()) + class BibleMediaItem(MediaManagerItem): """ This is the custom media manager item for Bibles. diff --git a/openlp/plugins/songs/forms/songmaintenanceform.py b/openlp/plugins/songs/forms/songmaintenanceform.py index 7c13e0989..e057bb516 100644 --- a/openlp/plugins/songs/forms/songmaintenanceform.py +++ b/openlp/plugins/songs/forms/songmaintenanceform.py @@ -405,7 +405,7 @@ class SongMaintenanceForm(QtGui.QDialog, Ui_SongMaintenanceDialog): def mergeAuthors(self, old_author): """ Merges two authors into one author. - + ``old_author`` The author which will be deleted afterwards. """ @@ -427,7 +427,7 @@ class SongMaintenanceForm(QtGui.QDialog, Ui_SongMaintenanceDialog): def mergeTopics(self, old_topic): """ Merges two topics into one topic. - + ``old_topic`` The topic which will be deleted afterwards. """ @@ -447,7 +447,7 @@ class SongMaintenanceForm(QtGui.QDialog, Ui_SongMaintenanceDialog): def mergeBooks(self, old_book): """ Merges two books into one book. - + ``old_book`` The book which will be deleted afterwards. """ From 802e886e9621931505a9b0f4e311fca73e128cc0 Mon Sep 17 00:00:00 2001 From: Andreas Preikschat Date: Tue, 9 Nov 2010 18:23:18 +0100 Subject: [PATCH 04/63] removed whitespaces --- openlp/plugins/bibles/lib/manager.py | 2 +- openlp/plugins/bibles/lib/mediaitem.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/openlp/plugins/bibles/lib/manager.py b/openlp/plugins/bibles/lib/manager.py index 9afc4a4b2..84137630f 100644 --- a/openlp/plugins/bibles/lib/manager.py +++ b/openlp/plugins/bibles/lib/manager.py @@ -267,7 +267,7 @@ class BibleManager(object): ``text`` The text to search for (unicode). """ - log.debug(u'BibleManager.verse_search("%s", "%s")', bible, text) + log.debug(u'BibleManager.verse_search("%s", "%s")', bible, text) if text: return self.db_cache[bible].verse_search(text) else: diff --git a/openlp/plugins/bibles/lib/mediaitem.py b/openlp/plugins/bibles/lib/mediaitem.py index d00e94fe0..79f3fde59 100644 --- a/openlp/plugins/bibles/lib/mediaitem.py +++ b/openlp/plugins/bibles/lib/mediaitem.py @@ -546,7 +546,7 @@ class BibleMediaItem(MediaManagerItem): self.dual_search_results = self.parent.manager.get_verses( dual_bible, text) else: - # We are doing a ' Text Search'. + # We are doing a 'Text Search'. bibles = self.parent.manager.get_bibles() self.search_results = self.parent.manager.verse_search(bible, text) if dual_bible and self.search_results: From 45945cc3025e6c15a756c4a56730ab18fa684f8c Mon Sep 17 00:00:00 2001 From: Andreas Preikschat Date: Fri, 12 Nov 2010 14:50:13 +0100 Subject: [PATCH 05/63] -docs/comments -disabled text mode for webbibles -"dual" instead of "second" --- openlp/plugins/bibles/lib/manager.py | 20 +++- openlp/plugins/bibles/lib/mediaitem.py | 142 +++++++++++++++++-------- 2 files changed, 115 insertions(+), 47 deletions(-) diff --git a/openlp/plugins/bibles/lib/manager.py b/openlp/plugins/bibles/lib/manager.py index 84137630f..13f96cca9 100644 --- a/openlp/plugins/bibles/lib/manager.py +++ b/openlp/plugins/bibles/lib/manager.py @@ -257,17 +257,34 @@ class BibleManager(object): 'Book Chapter:Verse-Chapter:Verse')) return None - def verse_search(self, bible, text): + def verse_search(self, bible, dual_bible, text): """ Does a verse search for the given bible and text. ``bible`` The bible to seach in (unicode). + ``dual_bible`` + The dual bible (unicode). We do not search in this bible. + ``text`` The text to search for (unicode). """ log.debug(u'BibleManager.verse_search("%s", "%s")', bible, text) + # Check if the bible or dual_bible is a web bible. + webbible = self.db_cache[bible].get_object(BibleMeta, + u'download source') + dual_webbible = u'' + if dual_bible: + dual_webbible = self.db_cache[dual_bible].get_object(BibleMeta, + u'download source') + if webbible or dual_webbible: + QtGui.QMessageBox.information(self.parent.mediaItem, + translate('BiblesPlugin.BibleManager', + 'Web Bible cannot be used'), + translate('BiblesPlugin.BibleManager', 'You cannot use text ' + 'search with web bible.')) + return None if text: return self.db_cache[bible].verse_search(text) else: @@ -317,4 +334,3 @@ class BibleManager(object): """ for bible in self.db_cache: self.db_cache[bible].finalise() - diff --git a/openlp/plugins/bibles/lib/mediaitem.py b/openlp/plugins/bibles/lib/mediaitem.py index 79f3fde59..6f82f6f08 100644 --- a/openlp/plugins/bibles/lib/mediaitem.py +++ b/openlp/plugins/bibles/lib/mediaitem.py @@ -60,7 +60,7 @@ class BibleMediaItem(MediaManagerItem): self.IconPath = u'songs/song' self.ListViewWithDnD_class = BibleListView MediaManagerItem.__init__(self, parent, icon, title) - # place to store the search results for both bibles + # Place to store the search results for both bibles. self.search_results = {} self.dual_search_results = {} QtCore.QObject.connect(Receiver.get_receiver(), @@ -100,14 +100,14 @@ class BibleMediaItem(MediaManagerItem): QtGui.QComboBox.AdjustToMinimumContentsLength) self.QuickVersionComboBox.setObjectName(u'VersionComboBox') self.QuickLayout.addWidget(self.QuickVersionComboBox, 0, 1, 1, 2) - self.QuickSecondVersionLabel = QtGui.QLabel(self.QuickTab) - self.QuickSecondVersionLabel.setObjectName(u'QuickSecondVersionLabel') - self.QuickLayout.addWidget(self.QuickSecondVersionLabel, 1, 0, 1, 1) - self.QuickSecondBibleComboBox = QtGui.QComboBox(self.QuickTab) - self.QuickSecondBibleComboBox.setSizeAdjustPolicy( + self.QuickDualVersionLabel = QtGui.QLabel(self.QuickTab) + self.QuickDualVersionLabel.setObjectName(u'QuickDualVersionLabel') + self.QuickLayout.addWidget(self.QuickDualVersionLabel, 1, 0, 1, 1) + self.QuickDualBibleComboBox = QtGui.QComboBox(self.QuickTab) + self.QuickDualBibleComboBox.setSizeAdjustPolicy( QtGui.QComboBox.AdjustToMinimumContentsLength) - self.QuickSecondBibleComboBox.setObjectName(u'SecondBible') - self.QuickLayout.addWidget(self.QuickSecondBibleComboBox, 1, 1, 1, 2) + self.QuickDualBibleComboBox.setObjectName(u'DualBible') + self.QuickLayout.addWidget(self.QuickDualBibleComboBox, 1, 1, 1, 2) self.QuickSearchLabel = QtGui.QLabel(self.QuickTab) self.QuickSearchLabel.setObjectName(u'QuickSearchLabel') self.QuickLayout.addWidget(self.QuickSearchLabel, 2, 0, 1, 1) @@ -161,16 +161,16 @@ class BibleMediaItem(MediaManagerItem): QtGui.QComboBox.AdjustToMinimumContentsLength) self.AdvancedVersionComboBox.setObjectName(u'AdvancedVersionComboBox') self.AdvancedLayout.addWidget(self.AdvancedVersionComboBox, 0, 1, 1, 2) - self.AdvancedSecondBibleLabel = QtGui.QLabel(self.AdvancedTab) - self.AdvancedSecondBibleLabel.setObjectName(u'AdvancedSecondBibleLabel') - self.AdvancedLayout.addWidget(self.AdvancedSecondBibleLabel, 1, 0, 1, 1) - self.AdvancedSecondBibleComboBox = QtGui.QComboBox(self.AdvancedTab) - self.AdvancedSecondBibleComboBox.setSizeAdjustPolicy( + self.AdvancedDualBibleLabel = QtGui.QLabel(self.AdvancedTab) + self.AdvancedDualBibleLabel.setObjectName(u'AdvancedDualBibleLabel') + self.AdvancedLayout.addWidget(self.AdvancedDualBibleLabel, 1, 0, 1, 1) + self.AdvancedDualBibleComboBox = QtGui.QComboBox(self.AdvancedTab) + self.AdvancedDualBibleComboBox.setSizeAdjustPolicy( QtGui.QComboBox.AdjustToMinimumContentsLength) - self.AdvancedSecondBibleComboBox.setObjectName( - u'AdvancedSecondBibleComboBox') + self.AdvancedDualBibleComboBox.setObjectName( + u'AdvancedDualBibleComboBox') self.AdvancedLayout.addWidget( - self.AdvancedSecondBibleComboBox, 1, 1, 1, 2) + self.AdvancedDualBibleComboBox, 1, 1, 1, 2) self.AdvancedBookLabel = QtGui.QLabel(self.AdvancedTab) self.AdvancedBookLabel.setObjectName(u'AdvancedBookLabel') self.AdvancedLayout.addWidget(self.AdvancedBookLabel, 2, 0, 1, 1) @@ -227,7 +227,7 @@ class BibleMediaItem(MediaManagerItem): self.AdvancedLayout.addWidget(self.AdvancedMessage, 8, 0, 1, 3) self.SearchTabWidget.addTab(self.AdvancedTab, translate('BiblesPlugin.MediaItem', 'Advanced')) - # Add the search tab widget to the page layout + # Add the search tab widget to the page layout. self.pageLayout.addWidget(self.SearchTabWidget) # Combo Boxes QtCore.QObject.connect(self.AdvancedVersionComboBox, @@ -273,21 +273,21 @@ class BibleMediaItem(MediaManagerItem): log.debug(u'configUpdated') if QtCore.QSettings().value(self.settingsSection + u'/dual bibles', QtCore.QVariant(True)).toBool(): - self.AdvancedSecondBibleLabel.setVisible(True) - self.AdvancedSecondBibleComboBox.setVisible(True) - self.QuickSecondVersionLabel.setVisible(True) - self.QuickSecondBibleComboBox.setVisible(True) + self.AdvancedDualBibleLabel.setVisible(True) + self.AdvancedDualBibleComboBox.setVisible(True) + self.QuickDualVersionLabel.setVisible(True) + self.QuickDualBibleComboBox.setVisible(True) else: - self.AdvancedSecondBibleLabel.setVisible(False) - self.AdvancedSecondBibleComboBox.setVisible(False) - self.QuickSecondVersionLabel.setVisible(False) - self.QuickSecondBibleComboBox.setVisible(False) + self.AdvancedDualBibleLabel.setVisible(False) + self.AdvancedDualBibleComboBox.setVisible(False) + self.QuickDualVersionLabel.setVisible(False) + self.QuickDualBibleComboBox.setVisible(False) def retranslateUi(self): log.debug(u'retranslateUi') self.QuickVersionLabel.setText( translate('BiblesPlugin.MediaItem', 'Version:')) - self.QuickSecondVersionLabel.setText( + self.QuickDualVersionLabel.setText( translate('BiblesPlugin.MediaItem', 'Dual:')) self.QuickSearchLabel.setText( translate('BiblesPlugin.MediaItem', 'Search type:')) @@ -299,7 +299,7 @@ class BibleMediaItem(MediaManagerItem): translate('BiblesPlugin.MediaItem', 'Results:')) self.AdvancedVersionLabel.setText( translate('BiblesPlugin.MediaItem', 'Version:')) - self.AdvancedSecondBibleLabel.setText( + self.AdvancedDualBibleLabel.setText( translate('BiblesPlugin.MediaItem', 'Dual:')) self.AdvancedBookLabel.setText( translate('BiblesPlugin.MediaItem', 'Book:')) @@ -339,7 +339,7 @@ class BibleMediaItem(MediaManagerItem): self.QuickMessage.setText(text) self.AdvancedMessage.setText(text) Receiver.send_message(u'openlp_process_events') - # minor delay to get the events processed + # Minor delay to get the events processed. time.sleep(0.1) def onListViewResize(self, width, height): @@ -364,26 +364,29 @@ class BibleMediaItem(MediaManagerItem): if not hasattr(self, u'import_wizard'): self.import_wizard = BibleImportForm(self, self.parent.manager, self.parent) - self.import_wizard.exec_() - self.reloadBibles() + # Do not reload if the import was canceled. + if self.import_wizard.exec_() == 1: + self.reloadBibles() def loadBibles(self): log.debug(u'Loading Bibles') self.QuickVersionComboBox.clear() - self.QuickSecondBibleComboBox.clear() + self.QuickDualBibleComboBox.clear() self.AdvancedVersionComboBox.clear() - self.AdvancedSecondBibleComboBox.clear() - self.QuickSecondBibleComboBox.addItem(u'') - self.AdvancedSecondBibleComboBox.addItem(u'') + self.AdvancedDualBibleComboBox.clear() + self.QuickDualBibleComboBox.addItem(u'') + self.AdvancedDualBibleComboBox.addItem(u'') + # Get all bibles and sort the list. bibles = self.parent.manager.get_bibles().keys() - # load bibles into the combo boxes + bibles.sort() + # Load the bibles into the combo boxes. first = True for bible in bibles: if bible: self.QuickVersionComboBox.addItem(bible) - self.QuickSecondBibleComboBox.addItem(bible) + self.QuickDualBibleComboBox.addItem(bible) self.AdvancedVersionComboBox.addItem(bible) - self.AdvancedSecondBibleComboBox.addItem(bible) + self.AdvancedDualBibleComboBox.addItem(bible) if first: first = False self.initialiseBible(bible) @@ -483,6 +486,17 @@ class BibleMediaItem(MediaManagerItem): def adjustComboBox(self, range_from, range_to, combo, restore=False): """ + Adjusts the give como boxe to the given values. + + ``range_from`` + The first number of the range (int). + + ``range_to`` + The last number of the range (int). + + ``combo`` + The combo box itself (QComboBox). + ``restore`` If True, then the combo's currentText will be restored after adjusting (if possible). @@ -491,16 +505,19 @@ class BibleMediaItem(MediaManagerItem): if restore: old_text = unicode(combo.currentText()) combo.clear() - for i in range(int(range_from), int(range_to) + 1): + for i in range(range_from, range_to + 1): combo.addItem(unicode(i)) if restore and combo.findText(old_text) != -1: combo.setCurrentIndex(combo.findText(old_text)) def onAdvancedSearchButton(self): + """ + Does an advanced search and saves the search reasults + """ log.debug(u'Advanced Search Button pressed') self.AdvancedSearchButton.setEnabled(False) bible = unicode(self.AdvancedVersionComboBox.currentText()) - dual_bible = unicode(self.AdvancedSecondBibleComboBox.currentText()) + dual_bible = unicode(self.AdvancedDualBibleComboBox.currentText()) book = unicode(self.AdvancedBookComboBox.currentText()) chapter_from = int(self.AdvancedFromChapter.currentText()) chapter_to = int(self.AdvancedToChapter.currentText()) @@ -537,7 +554,7 @@ class BibleMediaItem(MediaManagerItem): log.debug(u'Quick Search Button pressed') self.QuickSearchButton.setEnabled(False) bible = unicode(self.QuickVersionComboBox.currentText()) - dual_bible = unicode(self.QuickSecondBibleComboBox.currentText()) + dual_bible = unicode(self.QuickDualBibleComboBox.currentText()) text = unicode(self.QuickSearchEdit.text()) if self.QuickSearchComboBox.currentIndex() == 0: # We are doing a 'Verse Search'. @@ -548,7 +565,8 @@ class BibleMediaItem(MediaManagerItem): else: # We are doing a 'Text Search'. bibles = self.parent.manager.get_bibles() - self.search_results = self.parent.manager.verse_search(bible, text) + self.search_results = self.parent.manager.verse_search(bible, + dual_bible, text) if dual_bible and self.search_results: text = [] for verse in self.search_results: @@ -632,7 +650,7 @@ class BibleMediaItem(MediaManagerItem): 'dual_permissions': QtCore.QVariant(u''), 'dual_text': QtCore.QVariant(u'') } - bible_text = u' %s %d:%d (%s)' % (verse.book.name, + 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)) @@ -662,7 +680,7 @@ class BibleMediaItem(MediaManagerItem): if len(items) == 0: return False bible_text = u'' - old_chapter = u'' + old_chapter = -1 raw_footer = [] raw_slides = [] raw_title = [] @@ -750,6 +768,12 @@ 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 Genesis 1:1-6 as well as Daniel 2:14. + + ``start_item`` + The first item of a range. + + ``old_item`` + The last item of a range. """ old_bitem = self.listView.item(old_item.row()) old_chapter = int(self._decodeQtObject(old_bitem, 'chapter')) @@ -786,9 +810,16 @@ 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 Genesis 1:1-6, - but the next verse is Daniel 2:14. + the case, we return True, otherwise False. E. g. if we added Genesis 1:1-6, + but the next verse is Daniel 2:14, we return True. + + ``item`` + The item we are dealing with at the moment. + + ``old_item`` + The item we were previously dealing with. """ + # Get all the necessary meta data. bitem = self.listView.item(item.row()) book = self._decodeQtObject(bitem, 'book') chapter = int(self._decodeQtObject(bitem, 'chapter')) @@ -803,17 +834,38 @@ class BibleMediaItem(MediaManagerItem): old_dual_bible = self._decodeQtObject(old_bitem, 'dual_bible') if old_bible != bible or old_dual_bible != dual_bible or \ old_book != book: + # The bible, dual bible or book has changed. return True elif old_verse + 1 != verse and old_chapter == chapter: + # We are still in the same chapter, but a verse has been skipped. 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)): + # We are in the following chapter, but the last verse was not the + # last verse of the previous chapter or the current verse is not the + # first one of a chapter. return True else: return False def formatVerse(self, old_chapter, chapter, verse): + """ + Formats and returns the text, each verse starts with, for the given + chapter and verse. The text is either surrounded by round, square, + curly brackets or no brackets at all. For example:: + + u'{su}1:1{/su}' + + ``old_chapter`` + The previous verse's chapter number (int). + + ``chapter`` + The chapter number (int). + + ``verse`` + The verse number (int). + """ if not self.parent.settings_tab.show_new_chapters or \ old_chapter != chapter: verse_text = u'%s:%s' % (chapter, verse) From b34bb86b7c23b79442075af20fdd760650920fe7 Mon Sep 17 00:00:00 2001 From: Andreas Preikschat Date: Fri, 12 Nov 2010 18:54:34 +0100 Subject: [PATCH 06/63] spelling --- openlp/plugins/bibles/lib/mediaitem.py | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/openlp/plugins/bibles/lib/mediaitem.py b/openlp/plugins/bibles/lib/mediaitem.py index 6f82f6f08..535ba30cf 100644 --- a/openlp/plugins/bibles/lib/mediaitem.py +++ b/openlp/plugins/bibles/lib/mediaitem.py @@ -364,7 +364,7 @@ class BibleMediaItem(MediaManagerItem): if not hasattr(self, u'import_wizard'): self.import_wizard = BibleImportForm(self, self.parent.manager, self.parent) - # Do not reload if the import was canceled. + # If the import was not canceled then reload. if self.import_wizard.exec_() == 1: self.reloadBibles() @@ -486,7 +486,7 @@ class BibleMediaItem(MediaManagerItem): def adjustComboBox(self, range_from, range_to, combo, restore=False): """ - Adjusts the give como boxe to the given values. + Adjusts the given como box to the given values. ``range_from`` The first number of the range (int). @@ -512,7 +512,7 @@ class BibleMediaItem(MediaManagerItem): def onAdvancedSearchButton(self): """ - Does an advanced search and saves the search reasults + Does an advanced search and saves the search results. """ log.debug(u'Advanced Search Button pressed') self.AdvancedSearchButton.setEnabled(False) @@ -843,8 +843,8 @@ class BibleMediaItem(MediaManagerItem): old_verse != self.parent.manager.get_verse_count( old_bible, old_book, old_chapter)): # We are in the following chapter, but the last verse was not the - # last verse of the previous chapter or the current verse is not the - # first one of a chapter. + # last verse of the chapter or the current verse is not the + # first one of the chapter. return True else: return False From 46321741adba557e71b3cfb251514beb27bcda84 Mon Sep 17 00:00:00 2001 From: Andreas Preikschat Date: Fri, 12 Nov 2010 22:34:06 +0100 Subject: [PATCH 07/63] make sure, that the bible list in the importer is sorted --- .../plugins/bibles/forms/bibleimportform.py | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/openlp/plugins/bibles/forms/bibleimportform.py b/openlp/plugins/bibles/forms/bibleimportform.py index 9053c123e..75fc9e82e 100644 --- a/openlp/plugins/bibles/forms/bibleimportform.py +++ b/openlp/plugins/bibles/forms/bibleimportform.py @@ -207,9 +207,11 @@ class BibleImportForm(QtGui.QWizard, Ui_BibleImportWizard): The index of the combo box. """ self.BibleComboBox.clear() - for bible in self.web_bible_list[index].keys(): - self.BibleComboBox.addItem(unicode( - translate('BiblesPlugin.ImportWizardForm', bible))) + bibles = [unicode(translate('BiblesPlugin.ImportWizardForm', bible)) for + bible in self.web_bible_list[index].keys()] + bibles.sort() + for bible in bibles: + self.BibleComboBox.addItem(bible) def onOsisFileButtonClicked(self): """ @@ -386,7 +388,8 @@ class BibleImportForm(QtGui.QWizard, Ui_BibleImportWizard): self.ImportProgressBar.setValue(0) if bible_type == BibleFormat.WebDownload: self.ImportProgressLabel.setText(translate( - 'BiblesPlugin.ImportWizardForm', 'Starting Registering bible...')) + 'BiblesPlugin.ImportWizardForm', + 'Starting Registering bible...')) else: self.ImportProgressLabel.setText(translate( 'BiblesPlugin.ImportWizardForm', 'Starting import...')) @@ -400,26 +403,26 @@ class BibleImportForm(QtGui.QWizard, Ui_BibleImportWizard): unicode(self.field(u'license_permissions').toString()) importer = None if bible_type == BibleFormat.OSIS: - # Import an OSIS bible + # Import an OSIS bible. importer = self.manager.import_bible(BibleFormat.OSIS, name=license_version, filename=unicode(self.field(u'osis_location').toString()) ) elif bible_type == BibleFormat.CSV: - # Import a CSV bible + # Import a CSV bible. importer = self.manager.import_bible(BibleFormat.CSV, name=license_version, booksfile=unicode(self.field(u'csv_booksfile').toString()), versefile=unicode(self.field(u'csv_versefile').toString()) ) elif bible_type == BibleFormat.OpenSong: - # Import an OpenSong bible + # Import an OpenSong bible. importer = self.manager.import_bible(BibleFormat.OpenSong, name=license_version, filename=unicode(self.field(u'opensong_file').toString()) ) elif bible_type == BibleFormat.WebDownload: - # Import a bible from the web + # Import a bible from the web. self.ImportProgressBar.setMaximum(1) download_location = self.field(u'web_location').toInt()[0] bible_version = unicode(self.BibleComboBox.currentText()) From a0bbe7671710ebbc0fcbe768499c11524622e754 Mon Sep 17 00:00:00 2001 From: Andreas Preikschat Date: Fri, 12 Nov 2010 22:51:18 +0100 Subject: [PATCH 08/63] comments/missing lines --- openlp/plugins/bibles/lib/db.py | 4 ++++ openlp/plugins/bibles/lib/mediaitem.py | 4 ++-- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/openlp/plugins/bibles/lib/db.py b/openlp/plugins/bibles/lib/db.py index 8f5c7dc79..b8ddc4bb0 100644 --- a/openlp/plugins/bibles/lib/db.py +++ b/openlp/plugins/bibles/lib/db.py @@ -44,24 +44,28 @@ class BibleMeta(BaseModel): """ pass + class Testament(BaseModel): """ Bible Testaments """ pass + class Book(BaseModel): """ Song model """ pass + class Verse(BaseModel): """ Topic model """ pass + def init_schema(url): """ Setup a bible database connection and initialise the database schema. diff --git a/openlp/plugins/bibles/lib/mediaitem.py b/openlp/plugins/bibles/lib/mediaitem.py index 535ba30cf..fe6c786d7 100644 --- a/openlp/plugins/bibles/lib/mediaitem.py +++ b/openlp/plugins/bibles/lib/mediaitem.py @@ -84,7 +84,7 @@ class BibleMediaItem(MediaManagerItem): self.SearchTabWidget.sizePolicy().hasHeightForWidth()) self.SearchTabWidget.setSizePolicy(sizePolicy) self.SearchTabWidget.setObjectName(u'SearchTabWidget') - # Add the Quick Search tab + # Add the Quick Search tab. self.QuickTab = QtGui.QWidget() self.QuickTab.setObjectName(u'QuickTab') self.QuickLayout = QtGui.QGridLayout(self.QuickTab) @@ -145,7 +145,7 @@ class BibleMediaItem(MediaManagerItem): QuickSpacerItem = QtGui.QSpacerItem(20, 35, QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Expanding) self.QuickLayout.addItem(QuickSpacerItem, 6, 2, 1, 1) - # Add the Advanced Search tab + # Add the Advanced Search tab. self.AdvancedTab = QtGui.QWidget() self.AdvancedTab.setObjectName(u'AdvancedTab') self.AdvancedLayout = QtGui.QGridLayout(self.AdvancedTab) From 093dc1afcaf7a125181426592ae0557cecc441e9 Mon Sep 17 00:00:00 2001 From: Andreas Preikschat Date: Fri, 12 Nov 2010 23:02:25 +0100 Subject: [PATCH 09/63] make sure that the theme list (in the settings are sorted), docs/comments --- openlp/core/ui/themestab.py | 10 ++++++++-- openlp/plugins/bibles/lib/biblestab.py | 14 ++++++++++---- 2 files changed, 18 insertions(+), 6 deletions(-) diff --git a/openlp/core/ui/themestab.py b/openlp/core/ui/themestab.py index 853865bb5..5ee36e174 100644 --- a/openlp/core/ui/themestab.py +++ b/openlp/core/ui/themestab.py @@ -183,13 +183,19 @@ class ThemesTab(SettingsTab): def updateThemeList(self, theme_list): """ - Called from ThemeManager when the Themes have changed + Called from ThemeManager when the Themes have changed. + + ``theme_list`` + The list of available themes:: + + [u'Song Theme', u'Bible Theme'] """ - #reload as may have been triggered by the ThemeManager + # Reload as may have been triggered by the ThemeManager. self.global_theme = unicode(QtCore.QSettings().value( self.settingsSection + u'/global theme', QtCore.QVariant(u'')).toString()) self.DefaultComboBox.clear() + theme_list.sort() for theme in theme_list: self.DefaultComboBox.addItem(theme) id = self.DefaultComboBox.findText( diff --git a/openlp/plugins/bibles/lib/biblestab.py b/openlp/plugins/bibles/lib/biblestab.py index b7d1b9bde..5546a2ccc 100644 --- a/openlp/plugins/bibles/lib/biblestab.py +++ b/openlp/plugins/bibles/lib/biblestab.py @@ -190,13 +190,13 @@ class BiblesTab(SettingsTab): def onNewChaptersCheckBoxChanged(self, check_state): self.show_new_chapters = False - # we have a set value convert to True/False + # We have a set value convert to True/False. if check_state == QtCore.Qt.Checked: self.show_new_chapters = True def onBibleDualCheckBox(self, check_state): self.dual_bibles = False - # we have a set value convert to True/False + # We have a set value convert to True/False. if check_state == QtCore.Qt.Checked: self.dual_bibles = True @@ -234,16 +234,22 @@ class BiblesTab(SettingsTab): def updateThemeList(self, theme_list): """ - Called from ThemeManager when the Themes have changed + Called from ThemeManager when the Themes have changed. + + ``theme_list`` + The list of available themes:: + + [u'Song Theme', u'Bible Theme'] """ self.BibleThemeComboBox.clear() self.BibleThemeComboBox.addItem(u'') + theme_list.sort() for theme in theme_list: self.BibleThemeComboBox.addItem(theme) index = self.BibleThemeComboBox.findText( unicode(self.bible_theme), QtCore.Qt.MatchExactly) if index == -1: - # Not Found + # Not Found. index = 0 self.bible_theme = u'' self.BibleThemeComboBox.setCurrentIndex(index) From 38397f07a2af3de26889960eeb8b6692b3d2e4f3 Mon Sep 17 00:00:00 2001 From: Andreas Preikschat Date: Fri, 12 Nov 2010 23:27:57 +0100 Subject: [PATCH 10/63] changed texts again --- openlp/plugins/bibles/forms/bibleimportform.py | 9 +++++---- openlp/plugins/bibles/lib/manager.py | 4 ++-- 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/openlp/plugins/bibles/forms/bibleimportform.py b/openlp/plugins/bibles/forms/bibleimportform.py index 75fc9e82e..749f1f938 100644 --- a/openlp/plugins/bibles/forms/bibleimportform.py +++ b/openlp/plugins/bibles/forms/bibleimportform.py @@ -133,7 +133,7 @@ class BibleImportForm(QtGui.QWizard, Ui_BibleImportWizard): self.OSISLocationEdit.setFocus() return False elif self.field(u'source_format').toInt()[0] == BibleFormat.CSV: - if self.field(u'csv_booksfile').toString() == u'': + if not self.field(u'csv_booksfile').toString(): QtGui.QMessageBox.critical(self, translate('BiblesPlugin.ImportWizardForm', 'Invalid Books File'), @@ -142,7 +142,7 @@ class BibleImportForm(QtGui.QWizard, Ui_BibleImportWizard): 'the Bible to use in the import.')) self.BooksLocationEdit.setFocus() return False - elif self.field(u'csv_versefile').toString() == u'': + elif not self.field(u'csv_versefile').toString(): QtGui.QMessageBox.critical(self, translate('BiblesPlugin.ImportWizardForm', 'Invalid Verse File'), @@ -153,7 +153,7 @@ class BibleImportForm(QtGui.QWizard, Ui_BibleImportWizard): return False elif self.field(u'source_format').toInt()[0] == \ BibleFormat.OpenSong: - if self.field(u'opensong_file').toString() == u'': + if not self.field(u'opensong_file').toString(): QtGui.QMessageBox.critical(self, translate('BiblesPlugin.ImportWizardForm', 'Invalid OpenSong Bible'), @@ -449,7 +449,8 @@ class BibleImportForm(QtGui.QWizard, Ui_BibleImportWizard): if bible_type == BibleFormat.WebDownload: self.ImportProgressLabel.setText( translate('BiblesPlugin.ImportWizardForm', 'Registered ' - 'bible. Verses will be downloaded as required.')) + 'bible. Please note, that verses will be downloaded on\n' + 'demand and thus an internet connection is required.')) else: self.ImportProgressLabel.setText(translate( 'BiblesPlugin.ImportWizardForm', 'Finished import.')) diff --git a/openlp/plugins/bibles/lib/manager.py b/openlp/plugins/bibles/lib/manager.py index 13f96cca9..2f468d01c 100644 --- a/openlp/plugins/bibles/lib/manager.py +++ b/openlp/plugins/bibles/lib/manager.py @@ -282,8 +282,8 @@ class BibleManager(object): QtGui.QMessageBox.information(self.parent.mediaItem, translate('BiblesPlugin.BibleManager', 'Web Bible cannot be used'), - translate('BiblesPlugin.BibleManager', 'You cannot use text ' - 'search with web bible.')) + translate('BiblesPlugin.BibleManager', 'Text Search is not ' + 'available with Web Bibles.')) return None if text: return self.db_cache[bible].verse_search(text) From 272eea72b7f06e20622f06882708b4faa9937681 Mon Sep 17 00:00:00 2001 From: Andreas Preikschat Date: Sat, 13 Nov 2010 08:17:39 +0100 Subject: [PATCH 11/63] removed theme sorting --- openlp/core/ui/themestab.py | 1 - openlp/plugins/bibles/lib/biblestab.py | 1 - 2 files changed, 2 deletions(-) diff --git a/openlp/core/ui/themestab.py b/openlp/core/ui/themestab.py index 5ee36e174..5a2bd2b15 100644 --- a/openlp/core/ui/themestab.py +++ b/openlp/core/ui/themestab.py @@ -195,7 +195,6 @@ class ThemesTab(SettingsTab): self.settingsSection + u'/global theme', QtCore.QVariant(u'')).toString()) self.DefaultComboBox.clear() - theme_list.sort() for theme in theme_list: self.DefaultComboBox.addItem(theme) id = self.DefaultComboBox.findText( diff --git a/openlp/plugins/bibles/lib/biblestab.py b/openlp/plugins/bibles/lib/biblestab.py index 5546a2ccc..225fc9c47 100644 --- a/openlp/plugins/bibles/lib/biblestab.py +++ b/openlp/plugins/bibles/lib/biblestab.py @@ -243,7 +243,6 @@ class BiblesTab(SettingsTab): """ self.BibleThemeComboBox.clear() self.BibleThemeComboBox.addItem(u'') - theme_list.sort() for theme in theme_list: self.BibleThemeComboBox.addItem(theme) index = self.BibleThemeComboBox.findText( From a357bdf6a0318a4f595fcbdaffbb9462b90fb7b1 Mon Sep 17 00:00:00 2001 From: Andreas Preikschat Date: Sat, 13 Nov 2010 21:13:24 +0100 Subject: [PATCH 12/63] improved performance --- openlp/core/ui/themestab.py | 2 +- openlp/plugins/bibles/lib/biblestab.py | 2 +- openlp/plugins/bibles/lib/db.py | 2 +- openlp/plugins/bibles/lib/mediaitem.py | 7 ++----- 4 files changed, 5 insertions(+), 8 deletions(-) diff --git a/openlp/core/ui/themestab.py b/openlp/core/ui/themestab.py index 5a2bd2b15..fe1f95aee 100644 --- a/openlp/core/ui/themestab.py +++ b/openlp/core/ui/themestab.py @@ -188,7 +188,7 @@ class ThemesTab(SettingsTab): ``theme_list`` The list of available themes:: - [u'Song Theme', u'Bible Theme'] + [u'Bible Theme', u'Song Theme'] """ # Reload as may have been triggered by the ThemeManager. self.global_theme = unicode(QtCore.QSettings().value( diff --git a/openlp/plugins/bibles/lib/biblestab.py b/openlp/plugins/bibles/lib/biblestab.py index 225fc9c47..10c7fbe3b 100644 --- a/openlp/plugins/bibles/lib/biblestab.py +++ b/openlp/plugins/bibles/lib/biblestab.py @@ -239,7 +239,7 @@ class BiblesTab(SettingsTab): ``theme_list`` The list of available themes:: - [u'Song Theme', u'Bible Theme'] + [u'Bible Theme', u'Song Theme'] """ self.BibleThemeComboBox.clear() self.BibleThemeComboBox.addItem(u'') diff --git a/openlp/plugins/bibles/lib/db.py b/openlp/plugins/bibles/lib/db.py index b8ddc4bb0..9852ed16b 100644 --- a/openlp/plugins/bibles/lib/db.py +++ b/openlp/plugins/bibles/lib/db.py @@ -244,7 +244,7 @@ class BibleDB(QtCore.QObject, Manager): and the value is the verse text. """ log.debug(u'create_chapter %s,%s', book_id, chapter) - # text list has book and chapter as first two elements of the array + # Text list has book and chapter as first two elements of the array. for verse_number, verse_text in textlist.iteritems(): verse = Verse.populate( book_id = book_id, diff --git a/openlp/plugins/bibles/lib/mediaitem.py b/openlp/plugins/bibles/lib/mediaitem.py index fe6c786d7..596059255 100644 --- a/openlp/plugins/bibles/lib/mediaitem.py +++ b/openlp/plugins/bibles/lib/mediaitem.py @@ -532,6 +532,7 @@ class BibleMediaItem(MediaManagerItem): if self.ClearAdvancedSearchComboBox.currentIndex() == 0: self.listView.clear() if self.listView.count() != 0: + # Check if the first item is a dual bible item or not. 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 \ @@ -611,8 +612,6 @@ class BibleMediaItem(MediaManagerItem): u'Permissions') if not dual_permissions: dual_permissions = 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 = { @@ -655,9 +654,7 @@ class BibleMediaItem(MediaManagerItem): 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.listView.selectAll() self.search_results = {} self.dual_search_results = {} From ed6c8a52a754777f3dbe57079358e000a3dc4f33 Mon Sep 17 00:00:00 2001 From: Wesley Stout Date: Sun, 14 Nov 2010 15:01:39 -0600 Subject: [PATCH 13/63] some cleanup and working on the songs --- documentation/manual/source/index.rst | 3 +++ .../manual/source/{songsplugin.rst => songs.rst} | 13 +++---------- 2 files changed, 6 insertions(+), 10 deletions(-) rename documentation/manual/source/{songsplugin.rst => songs.rst} (96%) diff --git a/documentation/manual/source/index.rst b/documentation/manual/source/index.rst index ac29c4360..7a16b7932 100644 --- a/documentation/manual/source/index.rst +++ b/documentation/manual/source/index.rst @@ -14,6 +14,9 @@ Contents: introduction glossary dualmonitors + mediamanager + songsplugin + songs Indices and tables ================== diff --git a/documentation/manual/source/songsplugin.rst b/documentation/manual/source/songs.rst similarity index 96% rename from documentation/manual/source/songsplugin.rst rename to documentation/manual/source/songs.rst index 3e7100848..e025b680c 100644 --- a/documentation/manual/source/songsplugin.rst +++ b/documentation/manual/source/songs.rst @@ -1,6 +1,6 @@ -============ -Songs Plugin -============ +===== +Songs +===== The `Songs Plugin` is where you access your database of songs. From here you can also edit songs, add new songs, and even convert songs from other formats. @@ -38,10 +38,3 @@ Windows Vista/7:: C:\ProgramData\openlp.org\Data\songs.olp - - - - - - - From 80721aad3598545ab6ec9dc3cd48159a08e468cc Mon Sep 17 00:00:00 2001 From: Andreas Preikschat Date: Mon, 15 Nov 2010 18:47:33 +0100 Subject: [PATCH 14/63] replaced 'dual' --- openlp/plugins/bibles/lib/biblestab.py | 28 ++-- openlp/plugins/bibles/lib/manager.py | 16 +- openlp/plugins/bibles/lib/mediaitem.py | 202 ++++++++++++------------- 3 files changed, 123 insertions(+), 123 deletions(-) diff --git a/openlp/plugins/bibles/lib/biblestab.py b/openlp/plugins/bibles/lib/biblestab.py index 10c7fbe3b..a52c31fb7 100644 --- a/openlp/plugins/bibles/lib/biblestab.py +++ b/openlp/plugins/bibles/lib/biblestab.py @@ -110,9 +110,9 @@ class BiblesTab(SettingsTab): self.BibleThemeComboBox.setObjectName(u'BibleThemeComboBox') self.BibleThemeComboBox.addItem(QtCore.QString()) self.BibleThemeLayout.addWidget(self.BibleThemeComboBox) - self.BibleDualCheckBox = QtGui.QCheckBox(self.VerseDisplayGroupBox) - self.BibleDualCheckBox.setObjectName(u'BibleDualCheckBox') - self.VerseDisplayLayout.addWidget(self.BibleDualCheckBox, 3, 0, 1, 1) + self.BibleSecondCheckBox = QtGui.QCheckBox(self.VerseDisplayGroupBox) + self.BibleSecondCheckBox.setObjectName(u'BibleSecondCheckBox') + self.VerseDisplayLayout.addWidget(self.BibleSecondCheckBox, 3, 0, 1, 1) self.VerseDisplayLayout.addWidget(self.BibleThemeWidget, 4, 0, 1, 1) self.ChangeNoteLabel = QtGui.QLabel(self.VerseDisplayGroupBox) self.ChangeNoteLabel.setObjectName(u'ChangeNoteLabel') @@ -143,8 +143,8 @@ class BiblesTab(SettingsTab): self.LayoutStyleComboBox, QtCore.SIGNAL(u'activated(int)'), self.onLayoutStyleComboBoxChanged) QtCore.QObject.connect( - self.BibleDualCheckBox, QtCore.SIGNAL(u'stateChanged(int)'), - self.onBibleDualCheckBox) + self.BibleSecondCheckBox, QtCore.SIGNAL(u'stateChanged(int)'), + self.onBibleSecondCheckBox) QtCore.QObject.connect(Receiver.get_receiver(), QtCore.SIGNAL(u'theme_update_list'), self.updateThemeList) @@ -176,8 +176,8 @@ class BiblesTab(SettingsTab): translate('BiblesPlugin.BiblesTab', '[ And ]')) self.ChangeNoteLabel.setText(translate('BiblesPlugin.BiblesTab', 'Note:\nChanges do not affect verses already in the service.')) - self.BibleDualCheckBox.setText( - translate('BiblesPlugin.BiblesTab', 'Display dual Bible verses')) + self.BibleSecondCheckBox.setText( + translate('BiblesPlugin.BiblesTab', 'Display second Bible verses')) def onBibleThemeComboBoxChanged(self): self.bible_theme = self.BibleThemeComboBox.currentText() @@ -194,11 +194,11 @@ class BiblesTab(SettingsTab): if check_state == QtCore.Qt.Checked: self.show_new_chapters = True - def onBibleDualCheckBox(self, check_state): - self.dual_bibles = False + def onBibleSecondCheckBox(self, check_state): + self.second_bibles = False # We have a set value convert to True/False. if check_state == QtCore.Qt.Checked: - self.dual_bibles = True + self.second_bibles = True def load(self): settings = QtCore.QSettings() @@ -211,12 +211,12 @@ class BiblesTab(SettingsTab): u'verse layout style', QtCore.QVariant(0)).toInt()[0] self.bible_theme = unicode( settings.value(u'bible theme', QtCore.QVariant(u'')).toString()) - self.dual_bibles = settings.value( - u'dual bibles', QtCore.QVariant(True)).toBool() + self.second_bibles = settings.value( + u'second bibles', QtCore.QVariant(True)).toBool() self.NewChaptersCheckBox.setChecked(self.show_new_chapters) self.DisplayStyleComboBox.setCurrentIndex(self.display_style) self.LayoutStyleComboBox.setCurrentIndex(self.layout_style) - self.BibleDualCheckBox.setChecked(self.dual_bibles) + self.BibleSecondCheckBox.setChecked(self.second_bibles) settings.endGroup() def save(self): @@ -228,7 +228,7 @@ class BiblesTab(SettingsTab): QtCore.QVariant(self.display_style)) settings.setValue(u'verse layout style', QtCore.QVariant(self.layout_style)) - settings.setValue(u'dual bibles', QtCore.QVariant(self.dual_bibles)) + settings.setValue(u'second bibles', QtCore.QVariant(self.second_bibles)) settings.setValue(u'bible theme', QtCore.QVariant(self.bible_theme)) settings.endGroup() diff --git a/openlp/plugins/bibles/lib/manager.py b/openlp/plugins/bibles/lib/manager.py index 2f468d01c..6b4d7c800 100644 --- a/openlp/plugins/bibles/lib/manager.py +++ b/openlp/plugins/bibles/lib/manager.py @@ -257,28 +257,28 @@ class BibleManager(object): 'Book Chapter:Verse-Chapter:Verse')) return None - def verse_search(self, bible, dual_bible, text): + def verse_search(self, bible, second_bible, text): """ Does a verse search for the given bible and text. ``bible`` The bible to seach in (unicode). - ``dual_bible`` - The dual bible (unicode). We do not search in this bible. + ``second_bible`` + The second bible (unicode). We do not search in this bible. ``text`` The text to search for (unicode). """ log.debug(u'BibleManager.verse_search("%s", "%s")', bible, text) - # Check if the bible or dual_bible is a web bible. + # Check if the bible or second_bible is a web bible. webbible = self.db_cache[bible].get_object(BibleMeta, u'download source') - dual_webbible = u'' - if dual_bible: - dual_webbible = self.db_cache[dual_bible].get_object(BibleMeta, + second_webbible = u'' + if second_bible: + second_webbible = self.db_cache[second_bible].get_object(BibleMeta, u'download source') - if webbible or dual_webbible: + if webbible or second_webbible: QtGui.QMessageBox.information(self.parent.mediaItem, translate('BiblesPlugin.BibleManager', 'Web Bible cannot be used'), diff --git a/openlp/plugins/bibles/lib/mediaitem.py b/openlp/plugins/bibles/lib/mediaitem.py index 596059255..4ef4c0eff 100644 --- a/openlp/plugins/bibles/lib/mediaitem.py +++ b/openlp/plugins/bibles/lib/mediaitem.py @@ -62,7 +62,7 @@ class BibleMediaItem(MediaManagerItem): MediaManagerItem.__init__(self, parent, icon, title) # Place to store the search results for both bibles. self.search_results = {} - self.dual_search_results = {} + self.second_search_results = {} QtCore.QObject.connect(Receiver.get_receiver(), QtCore.SIGNAL(u'bibles_load_list'), self.reloadBibles) @@ -100,14 +100,14 @@ class BibleMediaItem(MediaManagerItem): QtGui.QComboBox.AdjustToMinimumContentsLength) self.QuickVersionComboBox.setObjectName(u'VersionComboBox') self.QuickLayout.addWidget(self.QuickVersionComboBox, 0, 1, 1, 2) - self.QuickDualVersionLabel = QtGui.QLabel(self.QuickTab) - self.QuickDualVersionLabel.setObjectName(u'QuickDualVersionLabel') - self.QuickLayout.addWidget(self.QuickDualVersionLabel, 1, 0, 1, 1) - self.QuickDualBibleComboBox = QtGui.QComboBox(self.QuickTab) - self.QuickDualBibleComboBox.setSizeAdjustPolicy( + self.QuickSecondVersionLabel = QtGui.QLabel(self.QuickTab) + self.QuickSecondVersionLabel.setObjectName(u'QuickSecondVersionLabel') + self.QuickLayout.addWidget(self.QuickSecondVersionLabel, 1, 0, 1, 1) + self.QuickSecondBibleComboBox = QtGui.QComboBox(self.QuickTab) + self.QuickSecondBibleComboBox.setSizeAdjustPolicy( QtGui.QComboBox.AdjustToMinimumContentsLength) - self.QuickDualBibleComboBox.setObjectName(u'DualBible') - self.QuickLayout.addWidget(self.QuickDualBibleComboBox, 1, 1, 1, 2) + self.QuickSecondBibleComboBox.setObjectName(u'SecondBible') + self.QuickLayout.addWidget(self.QuickSecondBibleComboBox, 1, 1, 1, 2) self.QuickSearchLabel = QtGui.QLabel(self.QuickTab) self.QuickSearchLabel.setObjectName(u'QuickSearchLabel') self.QuickLayout.addWidget(self.QuickSearchLabel, 2, 0, 1, 1) @@ -161,16 +161,16 @@ class BibleMediaItem(MediaManagerItem): QtGui.QComboBox.AdjustToMinimumContentsLength) self.AdvancedVersionComboBox.setObjectName(u'AdvancedVersionComboBox') self.AdvancedLayout.addWidget(self.AdvancedVersionComboBox, 0, 1, 1, 2) - self.AdvancedDualBibleLabel = QtGui.QLabel(self.AdvancedTab) - self.AdvancedDualBibleLabel.setObjectName(u'AdvancedDualBibleLabel') - self.AdvancedLayout.addWidget(self.AdvancedDualBibleLabel, 1, 0, 1, 1) - self.AdvancedDualBibleComboBox = QtGui.QComboBox(self.AdvancedTab) - self.AdvancedDualBibleComboBox.setSizeAdjustPolicy( + self.AdvancedSecondBibleLabel = QtGui.QLabel(self.AdvancedTab) + self.AdvancedSecondBibleLabel.setObjectName(u'AdvancedSecondBibleLabel') + self.AdvancedLayout.addWidget(self.AdvancedSecondBibleLabel, 1, 0, 1, 1) + self.AdvancedSecondBibleComboBox = QtGui.QComboBox(self.AdvancedTab) + self.AdvancedSecondBibleComboBox.setSizeAdjustPolicy( QtGui.QComboBox.AdjustToMinimumContentsLength) - self.AdvancedDualBibleComboBox.setObjectName( - u'AdvancedDualBibleComboBox') + self.AdvancedSecondBibleComboBox.setObjectName( + u'AdvancedSecondBibleComboBox') self.AdvancedLayout.addWidget( - self.AdvancedDualBibleComboBox, 1, 1, 1, 2) + self.AdvancedSecondBibleComboBox, 1, 1, 1, 2) self.AdvancedBookLabel = QtGui.QLabel(self.AdvancedTab) self.AdvancedBookLabel.setObjectName(u'AdvancedBookLabel') self.AdvancedLayout.addWidget(self.AdvancedBookLabel, 2, 0, 1, 1) @@ -271,24 +271,24 @@ class BibleMediaItem(MediaManagerItem): def configUpdated(self): log.debug(u'configUpdated') - if QtCore.QSettings().value(self.settingsSection + u'/dual bibles', + if QtCore.QSettings().value(self.settingsSection + u'/second bibles', QtCore.QVariant(True)).toBool(): - self.AdvancedDualBibleLabel.setVisible(True) - self.AdvancedDualBibleComboBox.setVisible(True) - self.QuickDualVersionLabel.setVisible(True) - self.QuickDualBibleComboBox.setVisible(True) + self.AdvancedSecondBibleLabel.setVisible(True) + self.AdvancedSecondBibleComboBox.setVisible(True) + self.QuickSecondVersionLabel.setVisible(True) + self.QuickSecondBibleComboBox.setVisible(True) else: - self.AdvancedDualBibleLabel.setVisible(False) - self.AdvancedDualBibleComboBox.setVisible(False) - self.QuickDualVersionLabel.setVisible(False) - self.QuickDualBibleComboBox.setVisible(False) + self.AdvancedSecondBibleLabel.setVisible(False) + self.AdvancedSecondBibleComboBox.setVisible(False) + self.QuickSecondVersionLabel.setVisible(False) + self.QuickSecondBibleComboBox.setVisible(False) def retranslateUi(self): log.debug(u'retranslateUi') self.QuickVersionLabel.setText( translate('BiblesPlugin.MediaItem', 'Version:')) - self.QuickDualVersionLabel.setText( - translate('BiblesPlugin.MediaItem', 'Dual:')) + self.QuickSecondVersionLabel.setText( + translate('BiblesPlugin.MediaItem', 'Second:')) self.QuickSearchLabel.setText( translate('BiblesPlugin.MediaItem', 'Search type:')) self.QuickSearchLabel.setText( @@ -299,8 +299,8 @@ class BibleMediaItem(MediaManagerItem): translate('BiblesPlugin.MediaItem', 'Results:')) self.AdvancedVersionLabel.setText( translate('BiblesPlugin.MediaItem', 'Version:')) - self.AdvancedDualBibleLabel.setText( - translate('BiblesPlugin.MediaItem', 'Dual:')) + self.AdvancedSecondBibleLabel.setText( + translate('BiblesPlugin.MediaItem', 'Second:')) self.AdvancedBookLabel.setText( translate('BiblesPlugin.MediaItem', 'Book:')) self.AdvancedChapterLabel.setText( @@ -371,11 +371,11 @@ class BibleMediaItem(MediaManagerItem): def loadBibles(self): log.debug(u'Loading Bibles') self.QuickVersionComboBox.clear() - self.QuickDualBibleComboBox.clear() + self.QuickSecondBibleComboBox.clear() self.AdvancedVersionComboBox.clear() - self.AdvancedDualBibleComboBox.clear() - self.QuickDualBibleComboBox.addItem(u'') - self.AdvancedDualBibleComboBox.addItem(u'') + self.AdvancedSecondBibleComboBox.clear() + self.QuickSecondBibleComboBox.addItem(u'') + self.AdvancedSecondBibleComboBox.addItem(u'') # Get all bibles and sort the list. bibles = self.parent.manager.get_bibles().keys() bibles.sort() @@ -384,9 +384,9 @@ class BibleMediaItem(MediaManagerItem): for bible in bibles: if bible: self.QuickVersionComboBox.addItem(bible) - self.QuickDualBibleComboBox.addItem(bible) + self.QuickSecondBibleComboBox.addItem(bible) self.AdvancedVersionComboBox.addItem(bible) - self.AdvancedDualBibleComboBox.addItem(bible) + self.AdvancedSecondBibleComboBox.addItem(bible) if first: first = False self.initialiseBible(bible) @@ -517,7 +517,7 @@ class BibleMediaItem(MediaManagerItem): log.debug(u'Advanced Search Button pressed') self.AdvancedSearchButton.setEnabled(False) bible = unicode(self.AdvancedVersionComboBox.currentText()) - dual_bible = unicode(self.AdvancedDualBibleComboBox.currentText()) + second_bible = unicode(self.AdvancedSecondBibleComboBox.currentText()) book = unicode(self.AdvancedBookComboBox.currentText()) chapter_from = int(self.AdvancedFromChapter.currentText()) chapter_to = int(self.AdvancedToChapter.currentText()) @@ -526,76 +526,76 @@ class BibleMediaItem(MediaManagerItem): versetext = u'%s %s:%s-%s:%s' % (book, chapter_from, verse_from, chapter_to, verse_to) self.search_results = self.parent.manager.get_verses(bible, versetext) - if dual_bible: - self.dual_search_results = self.parent.manager.get_verses( - dual_bible, versetext) + if second_bible: + self.second_search_results = self.parent.manager.get_verses( + second_bible, versetext) if self.ClearAdvancedSearchComboBox.currentIndex() == 0: self.listView.clear() if self.listView.count() != 0: - # Check if the first item is a dual bible item or not. + # Check if the first item is a second bible item or not. 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) + item_second_bible = self._decodeQtObject(bitem, 'second_bible') + if item_second_bible and second_bible or not item_second_bible and \ + not second_bible: + self.displayResults(bible, second_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 ' + 'and second 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) + self.displayResults(bible, second_bible) else: - self.displayResults(bible, dual_bible) + self.displayResults(bible, second_bible) self.AdvancedSearchButton.setEnabled(True) def onQuickSearchButton(self): log.debug(u'Quick Search Button pressed') self.QuickSearchButton.setEnabled(False) bible = unicode(self.QuickVersionComboBox.currentText()) - dual_bible = unicode(self.QuickDualBibleComboBox.currentText()) + second_bible = unicode(self.QuickSecondBibleComboBox.currentText()) text = unicode(self.QuickSearchEdit.text()) if self.QuickSearchComboBox.currentIndex() == 0: # We are doing a 'Verse Search'. self.search_results = self.parent.manager.get_verses(bible, text) - if dual_bible and self.search_results: - self.dual_search_results = self.parent.manager.get_verses( - dual_bible, text) + if second_bible and self.search_results: + self.second_search_results = self.parent.manager.get_verses( + second_bible, text) else: # We are doing a 'Text Search'. bibles = self.parent.manager.get_bibles() self.search_results = self.parent.manager.verse_search(bible, - dual_bible, text) - if dual_bible and self.search_results: + second_bible, text) + if second_bible and self.search_results: text = [] for verse in self.search_results: text.append((verse.book.name, verse.chapter, verse.verse, verse.verse)) - self.dual_search_results = bibles[dual_bible].get_verses(text) + self.second_search_results = bibles[second_bible].get_verses(text) if self.ClearQuickSearchComboBox.currentIndex() == 0: self.listView.clear() 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 \ - not dual_bible: - self.displayResults(bible, dual_bible) + item_second_bible = self._decodeQtObject(bitem, 'second_bible') + if item_second_bible and second_bible or not item_second_bible and \ + not second_bible: + self.displayResults(bible, second_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 ' + 'and second 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) + self.displayResults(bible, second_bible) elif self.search_results: - self.displayResults(bible, dual_bible) + self.displayResults(bible, second_bible) self.QuickSearchButton.setEnabled(True) - def displayResults(self, bible, dual_bible=u''): + def displayResults(self, bible, second_bible=u''): """ Displays the search results in the media manager. All data needed for further action is saved for/in each row. @@ -603,17 +603,17 @@ class BibleMediaItem(MediaManagerItem): version = self.parent.manager.get_meta_data(bible, u'Version') copyright = self.parent.manager.get_meta_data(bible, u'Copyright') permissions = self.parent.manager.get_meta_data(bible, u'Permissions') - if dual_bible: - dual_version = self.parent.manager.get_meta_data(dual_bible, + if second_bible: + second_version = self.parent.manager.get_meta_data(second_bible, u'Version') - dual_copyright = self.parent.manager.get_meta_data(dual_bible, + second_copyright = self.parent.manager.get_meta_data(second_bible, u'Copyright') - dual_permissions = self.parent.manager.get_meta_data(dual_bible, + second_permissions = self.parent.manager.get_meta_data(second_bible, u'Permissions') - if not dual_permissions: - dual_permissions = u'' + if not second_permissions: + second_permissions = u'' for count, verse in enumerate(self.search_results): - if dual_bible: + if second_bible: vdict = { 'book': QtCore.QVariant(verse.book.name), 'chapter': QtCore.QVariant(verse.chapter), @@ -623,16 +623,16 @@ class BibleMediaItem(MediaManagerItem): 'copyright': QtCore.QVariant(copyright.value), 'permissions': QtCore.QVariant(permissions.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_permissions': QtCore.QVariant(dual_permissions.value), - 'dual_text': QtCore.QVariant( - self.dual_search_results[count].text) + 'second_bible': QtCore.QVariant(second_bible), + 'second_version': QtCore.QVariant(second_version.value), + 'second_copyright': QtCore.QVariant(second_copyright.value), + 'second_permissions': QtCore.QVariant(second_permissions.value), + 'second_text': QtCore.QVariant( + self.second_search_results[count].text) } bible_text = u' %s %d:%d (%s, %s)' % (verse.book.name, verse.chapter, verse.verse, version.value, - dual_version.value) + second_version.value) else: vdict = { 'book': QtCore.QVariant(verse.book.name), @@ -643,11 +643,11 @@ class BibleMediaItem(MediaManagerItem): 'copyright': QtCore.QVariant(copyright.value), 'permissions': QtCore.QVariant(permissions.value), 'text': QtCore.QVariant(verse.text), - 'dual_bible': QtCore.QVariant(u''), - 'dual_version': QtCore.QVariant(u''), - 'dual_copyright': QtCore.QVariant(u''), - 'dual_permissions': QtCore.QVariant(u''), - 'dual_text': QtCore.QVariant(u'') + 'second_bible': QtCore.QVariant(u''), + 'second_version': QtCore.QVariant(u''), + 'second_copyright': QtCore.QVariant(u''), + 'second_permissions': QtCore.QVariant(u''), + 'second_text': QtCore.QVariant(u'') } bible_text = u'%s %d:%d (%s)' % (verse.book.name, verse.chapter, verse.verse, version.value) @@ -656,7 +656,7 @@ class BibleMediaItem(MediaManagerItem): self.listView.addItem(bible_verse) self.listView.selectAll() self.search_results = {} - self.dual_search_results = {} + self.second_search_results = {} def _decodeQtObject(self, bitem, key): reference = bitem.data(QtCore.Qt.UserRole) @@ -692,22 +692,22 @@ class BibleMediaItem(MediaManagerItem): copyright = self._decodeQtObject(bitem, 'copyright') permissions = self._decodeQtObject(bitem, 'permissions') 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_permissions = self._decodeQtObject(bitem, 'dual_permissions') - dual_text = self._decodeQtObject(bitem, 'dual_text') + second_bible = self._decodeQtObject(bitem, 'second_bible') + second_version = self._decodeQtObject(bitem, 'second_version') + second_copyright = self._decodeQtObject(bitem, 'second_copyright') + second_permissions = self._decodeQtObject(bitem, 'second_permissions') + second_text = self._decodeQtObject(bitem, 'second_text') verse_text = self.formatVerse(old_chapter, chapter, verse) footer = u'%s (%s %s %s)' % (book, version, copyright, permissions) 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_permissions) + if second_bible: + footer = u'%s (%s %s %s)' % (book, second_version, second_copyright, + second_permissions) 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) + second_text) raw_slides.append(bible_text) bible_text = u'' # If we are 'Verse Per Slide' then create a new slide. @@ -735,7 +735,7 @@ class BibleMediaItem(MediaManagerItem): raw_slides.append(bible_text) bible_text = u'' # Service Item: Capabilities - if self.parent.settings_tab.layout_style == 2 and not dual_bible: + if self.parent.settings_tab.layout_style == 2 and not second_bible: # Split the line but do not replace line breaks in renderer. service_item.add_capability(ItemCapabilities.NoLineBreaks) service_item.add_capability(ItemCapabilities.AllowsPreview) @@ -780,18 +780,18 @@ class BibleMediaItem(MediaManagerItem): 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: + start_second_bible = self._decodeQtObject(start_bitem, 'second_bible') + if start_second_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_bible, start_dual_bible) + start_verse, start_bible, start_second_bible) elif start_chapter == old_chapter: title = u'%s %s:%s-%s (%s, %s)' % (start_book, start_chapter, - start_verse, old_verse, start_bible, start_dual_bible) + start_verse, old_verse, start_bible, start_second_bible) else: title = u'%s %s:%s-%s:%s (%s, %s)' % (start_book, start_chapter, start_verse, old_chapter, old_verse, start_bible, - start_dual_bible) + start_second_bible) else: if start_verse == old_verse and start_chapter == old_chapter: title = u'%s %s:%s (%s)' % (start_book, start_chapter, @@ -822,16 +822,16 @@ class BibleMediaItem(MediaManagerItem): chapter = int(self._decodeQtObject(bitem, 'chapter')) verse = int(self._decodeQtObject(bitem, 'verse')) bible = self._decodeQtObject(bitem, 'bible') - dual_bible = self._decodeQtObject(bitem, 'dual_bible') + second_bible = self._decodeQtObject(bitem, 'second_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_second_bible = self._decodeQtObject(old_bitem, 'second_bible') + if old_bible != bible or old_second_bible != second_bible or \ old_book != book: - # The bible, dual bible or book has changed. + # The bible, second bible or book has changed. return True elif old_verse + 1 != verse and old_chapter == chapter: # We are still in the same chapter, but a verse has been skipped. From 588cfa111f496b0802c37f1ac1d324f57dcc57c5 Mon Sep 17 00:00:00 2001 From: Andreas Preikschat Date: Tue, 16 Nov 2010 18:57:13 +0100 Subject: [PATCH 15/63] long lines --- openlp/plugins/bibles/lib/mediaitem.py | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/openlp/plugins/bibles/lib/mediaitem.py b/openlp/plugins/bibles/lib/mediaitem.py index 4ef4c0eff..342d79c9e 100644 --- a/openlp/plugins/bibles/lib/mediaitem.py +++ b/openlp/plugins/bibles/lib/mediaitem.py @@ -573,7 +573,8 @@ class BibleMediaItem(MediaManagerItem): for verse in self.search_results: text.append((verse.book.name, verse.chapter, verse.verse, verse.verse)) - self.second_search_results = bibles[second_bible].get_verses(text) + self.second_search_results = \ + bibles[second_bible].get_verses(text) if self.ClearQuickSearchComboBox.currentIndex() == 0: self.listView.clear() if self.listView.count() != 0 and self.search_results: @@ -626,7 +627,8 @@ class BibleMediaItem(MediaManagerItem): 'second_bible': QtCore.QVariant(second_bible), 'second_version': QtCore.QVariant(second_version.value), 'second_copyright': QtCore.QVariant(second_copyright.value), - 'second_permissions': QtCore.QVariant(second_permissions.value), + 'second_permissions': QtCore.QVariant( + second_permissions.value), 'second_text': QtCore.QVariant( self.second_search_results[count].text) } @@ -702,8 +704,8 @@ class BibleMediaItem(MediaManagerItem): if footer not in raw_footer: raw_footer.append(footer) if second_bible: - footer = u'%s (%s %s %s)' % (book, second_version, second_copyright, - second_permissions) + footer = u'%s (%s %s %s)' % (book, second_version, + second_copyright, second_permissions) if footer not in raw_footer: raw_footer.append(footer) bible_text = u'%s %s\n\n%s %s' % (verse_text, text, verse_text, @@ -807,8 +809,8 @@ 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, otherwise False. E. g. if we added Genesis 1:1-6, - but the next verse is Daniel 2:14, we return True. + the case, we return True, otherwise False. E. g. if we added + Genesis 1:1-6, but the next verse is Daniel 2:14, we return True. ``item`` The item we are dealing with at the moment. From 435338caadea07affb8595d210b65e4eea886e40 Mon Sep 17 00:00:00 2001 From: Andreas Preikschat Date: Tue, 16 Nov 2010 19:33:37 +0100 Subject: [PATCH 16/63] more generic parameters for __init__ --- openlp/plugins/bibles/lib/mediaitem.py | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/openlp/plugins/bibles/lib/mediaitem.py b/openlp/plugins/bibles/lib/mediaitem.py index 342d79c9e..9ce463231 100644 --- a/openlp/plugins/bibles/lib/mediaitem.py +++ b/openlp/plugins/bibles/lib/mediaitem.py @@ -54,12 +54,12 @@ class BibleMediaItem(MediaManagerItem): """ log.info(u'Bible Media Item loaded') - def __init__(self, parent, icon, title): + def __init__(self, parent, plugin, icon): self.PluginNameShort = u'Bible' self.pluginNameVisible = translate('BiblesPlugin.MediaItem', 'Bible') self.IconPath = u'songs/song' self.ListViewWithDnD_class = BibleListView - MediaManagerItem.__init__(self, parent, icon, title) + MediaManagerItem.__init__(self, parent, plugin, icon) # Place to store the search results for both bibles. self.search_results = {} self.second_search_results = {} @@ -552,6 +552,10 @@ class BibleMediaItem(MediaManagerItem): self.AdvancedSearchButton.setEnabled(True) def onQuickSearchButton(self): + """ + Does a quick search and saves the search results. Quick search can + either be "Verse Search" or "Text Search". + """ log.debug(u'Quick Search Button pressed') self.QuickSearchButton.setEnabled(False) bible = unicode(self.QuickVersionComboBox.currentText()) From f6c30b7106fda87984fe74b6e969f9da5cb40155 Mon Sep 17 00:00:00 2001 From: Andreas Preikschat Date: Fri, 19 Nov 2010 22:34:15 +0100 Subject: [PATCH 17/63] removed == 1 --- 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 9ce463231..a94ea581a 100644 --- a/openlp/plugins/bibles/lib/mediaitem.py +++ b/openlp/plugins/bibles/lib/mediaitem.py @@ -365,7 +365,7 @@ class BibleMediaItem(MediaManagerItem): self.import_wizard = BibleImportForm(self, self.parent.manager, self.parent) # If the import was not canceled then reload. - if self.import_wizard.exec_() == 1: + if self.import_wizard.exec_(): self.reloadBibles() def loadBibles(self): From 5867fddd5be807d5aa2b6fa66082104b3bf61499 Mon Sep 17 00:00:00 2001 From: Raoul Snyman Date: Sat, 20 Nov 2010 00:26:15 +0200 Subject: [PATCH 18/63] Added theme wizard picture. Fixed up theme wizard somewhat (still not done). --- openlp/core/ui/themeform.py | 93 ++-- openlp/core/ui/themewizard.py | 692 +++++++++++++++--------- resources/forms/themewizard.ui | 685 +++++++++++++---------- resources/images/openlp-2.qrc | 1 + resources/images/wizard_createtheme.bmp | Bin 0 -> 172254 bytes 5 files changed, 897 insertions(+), 574 deletions(-) create mode 100644 resources/images/wizard_createtheme.bmp diff --git a/openlp/core/ui/themeform.py b/openlp/core/ui/themeform.py index ff57ecd56..5605ec261 100644 --- a/openlp/core/ui/themeform.py +++ b/openlp/core/ui/themeform.py @@ -60,24 +60,27 @@ class ThemeForm(QtGui.QWizard, Ui_ThemeWizard): QtCore.QObject.connect(self.gradientComboBox, QtCore.SIGNAL(u'currentIndexChanged(int)'), self.onGradientComboBox) - QtCore.QObject.connect(self.color1PushButton, + QtCore.QObject.connect(self.colorButton, QtCore.SIGNAL(u'pressed()'), - self.onColor1PushButtonClicked) - QtCore.QObject.connect(self.color2PushButton, + self.onColorButtonClicked) + QtCore.QObject.connect(self.gradientStartButton, QtCore.SIGNAL(u'pressed()'), - self.onColor2PushButtonClicked) + self.onGradientStartButtonClicked) + QtCore.QObject.connect(self.gradientEndButton, + QtCore.SIGNAL(u'pressed()'), + self.onGradientEndButtonClicked) QtCore.QObject.connect(self.imageBrowseButton, QtCore.SIGNAL(u'pressed()'), - self.onImageBrowseButtonClicked) + self.onImageBrowseButtonClicked) QtCore.QObject.connect(self.mainColorPushButton, QtCore.SIGNAL(u'pressed()'), - self.onMainColourPushButtonClicked) + self.onMainColourPushButtonClicked) QtCore.QObject.connect(self.outlineColorPushButton, QtCore.SIGNAL(u'pressed()'), - self.onOutlineColourPushButtonClicked) + self.onOutlineColourPushButtonClicked) QtCore.QObject.connect(self.shadowColorPushButton, QtCore.SIGNAL(u'pressed()'), - self.onShadowColourPushButtonClicked) + self.onShadowColourPushButtonClicked) QtCore.QObject.connect(self.outlineCheckBox, QtCore.SIGNAL(u'stateChanged(int)'), self.onOutlineCheckCheckBoxChanged) @@ -126,9 +129,11 @@ class ThemeForm(QtGui.QWizard, Ui_ThemeWizard): self.backgroundPage.registerField( u'background_type', self.backgroundTypeComboBox) self.backgroundPage.registerField( - u'color_1', self.color1PushButton) + u'color', self.colorButton) self.backgroundPage.registerField( - u'color_2', self.color2PushButton) + u'grandient_start', self.gradientStartButton) + self.backgroundPage.registerField( + u'grandient_end', self.gradientEndButton) self.backgroundPage.registerField( u'background_image', self.imageLineEdit) self.backgroundPage.registerField( @@ -261,54 +266,19 @@ class ThemeForm(QtGui.QWizard, Ui_ThemeWizard): """ if self.theme.background_type == \ BackgroundType.to_string(BackgroundType.Solid): - self.setField(u'background_type', QtCore.QVariant(0)) - self.color1PushButton.setVisible(True) - self.color1Label.setVisible(True) - self.color1PushButton.setStyleSheet(u'background-color: %s' % + self.colorButton.setStyleSheet(u'background-color: %s' % self.theme.background_color) - self.color1Label.setText( - translate('OpenLP.ThemeForm', 'Color:')) - self.color2PushButton.setVisible(False) - self.color2Label.setVisible(False) - self.gradientLabel.setVisible(False) - self.gradientComboBox.setVisible(False) - self.imageLabel.setVisible(False) - self.imageLineEdit.setVisible(False) - self.imageBrowseButton.setVisible(False) - self.imageLineEdit.setText(u'') + self.setField(u'background_type', QtCore.QVariant(0)) elif self.theme.background_type == \ BackgroundType.to_string(BackgroundType.Gradient): - self.setField(u'background_type', QtCore.QVariant(1)) - self.color1PushButton.setVisible(True) - self.color1Label.setVisible(True) - self.color1PushButton.setStyleSheet(u'background-color: %s' % + self.gradientStartButton.setStyleSheet(u'background-color: %s' % self.theme.background_start_color) - self.color1Label.setText( - translate('OpenLP.ThemeForm', 'First color:')) - self.color2PushButton.setVisible(True) - self.color2Label.setVisible(True) - self.color2PushButton.setStyleSheet(u'background-color: %s' % + self.gradientEndButton.setStyleSheet(u'background-color: %s' % self.theme.background_end_color) - self.color2Label.setText( - translate('OpenLP.ThemeForm', 'Second color:')) - self.gradientLabel.setVisible(True) - self.gradientComboBox.setVisible(True) - self.imageLabel.setVisible(False) - self.imageLineEdit.setVisible(False) - self.imageBrowseButton.setVisible(False) - self.imageLineEdit.setText(u'') + self.setField(u'background_type', QtCore.QVariant(1)) else: - self.setField(u'background_type', QtCore.QVariant(2)) - self.color1PushButton.setVisible(False) - self.color1Label.setVisible(False) - self.color2PushButton.setVisible(False) - self.color2Label.setVisible(False) - self.gradientLabel.setVisible(False) - self.gradientComboBox.setVisible(False) - self.imageLineEdit.setVisible(True) - self.imageLabel.setVisible(True) - self.imageBrowseButton.setVisible(True) self.imageLineEdit.setText(self.theme.background_filename) + self.setField(u'background_type', QtCore.QVariant(2)) if self.theme.background_direction == \ BackgroundGradientType.to_string(BackgroundGradientType.Horizontal): self.setField(u'gradient', QtCore.QVariant(0)) @@ -441,20 +411,23 @@ class ThemeForm(QtGui.QWizard, Ui_ThemeWizard): BackgroundGradientType.to_string(index) self.setBackgroundTabValues() - def onColor1PushButtonClicked(self): + def onColorButtonClicked(self): """ Background / Gradient 1 Color button pushed. """ - if self.theme.background_type == \ - BackgroundType.to_string(BackgroundType.Solid): - self.theme.background_color = \ - self._colorButton(self.theme.background_color) - else: - self.theme.background_start_color = \ - self._colorButton(self.theme.background_start_color) + self.theme.background_color = \ + self._colorButton(self.theme.background_color) self.setBackgroundTabValues() - def onColor2PushButtonClicked(self): + def onGradientStartButtonClicked(self): + """ + Gradient 2 Color button pushed. + """ + self.theme.background_start_color = \ + self._colorButton(self.theme.background_start_color) + self.setBackgroundTabValues() + + def onGradientEndButtonClicked(self): """ Gradient 2 Color button pushed. """ diff --git a/openlp/core/ui/themewizard.py b/openlp/core/ui/themewizard.py index b3af9df98..6281e876e 100644 --- a/openlp/core/ui/themewizard.py +++ b/openlp/core/ui/themewizard.py @@ -30,135 +30,217 @@ from openlp.core.lib import translate, build_icon class Ui_ThemeWizard(object): def setupUi(self, ThemeWizard): - ThemeWizard.setObjectName(u'ThemeWizard') + ThemeWizard.setObjectName(u'OpenLP.ThemeWizard') ThemeWizard.resize(550, 386) ThemeWizard.setModal(True) ThemeWizard.setWizardStyle(QtGui.QWizard.ModernStyle) - ThemeWizard.setOptions(QtGui.QWizard.IndependentPages|QtGui.QWizard.NoBackButtonOnStartPage) + ThemeWizard.setOptions( + QtGui.QWizard.IndependentPages | + QtGui.QWizard.NoBackButtonOnStartPage | + QtGui.QWizard.NoBackButtonOnLastPage) self.welcomePage = QtGui.QWizardPage() self.welcomePage.setTitle(u'') self.welcomePage.setSubTitle(u'') self.welcomePage.setObjectName(u'welcomePage') + self.welcomePage.setPixmap(QtGui.QWizard.WatermarkPixmap, + QtGui.QPixmap(u':/wizards/wizard_createtheme.bmp')) self.welcomeLayout = QtGui.QHBoxLayout(self.welcomePage) self.welcomeLayout.setSpacing(8) self.welcomeLayout.setMargin(0) self.welcomeLayout.setObjectName(u'welcomeLayout') - self.importBibleImage = QtGui.QLabel(self.welcomePage) - self.importBibleImage.setMinimumSize(QtCore.QSize(163, 0)) - self.importBibleImage.setMaximumSize(QtCore.QSize(163, 16777215)) - self.importBibleImage.setLineWidth(0) - self.importBibleImage.setText(u'') - self.importBibleImage.setPixmap(QtGui.QPixmap(u':/wizards/wizard_importbible.bmp')) - self.importBibleImage.setIndent(0) - self.importBibleImage.setObjectName(u'importBibleImage') - self.welcomeLayout.addWidget(self.importBibleImage) self.welcomePageLayout = QtGui.QVBoxLayout() self.welcomePageLayout.setSpacing(8) self.welcomePageLayout.setObjectName(u'welcomePageLayout') self.titleLabel = QtGui.QLabel(self.welcomePage) self.titleLabel.setObjectName(u'titleLabel') self.welcomePageLayout.addWidget(self.titleLabel) - spacerItem = QtGui.QSpacerItem(20, 40, QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Fixed) - self.welcomePageLayout.addItem(spacerItem) + self.welcomeTopSpacer = QtGui.QSpacerItem(20, 40, + QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Fixed) + self.welcomePageLayout.addItem(self.welcomeTopSpacer) self.informationLabel = QtGui.QLabel(self.welcomePage) self.informationLabel.setWordWrap(True) self.informationLabel.setMargin(10) self.informationLabel.setObjectName(u'informationLabel') self.welcomePageLayout.addWidget(self.informationLabel) - spacerItem1 = QtGui.QSpacerItem(20, 40, QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Expanding) - self.welcomePageLayout.addItem(spacerItem1) + self.welcomeBottomSpacer = QtGui.QSpacerItem(20, 40, + QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Expanding) + self.welcomePageLayout.addItem(self.welcomeBottomSpacer) self.welcomeLayout.addLayout(self.welcomePageLayout) ThemeWizard.addPage(self.welcomePage) self.backgroundPage = QtGui.QWizardPage() self.backgroundPage.setObjectName(u'backgroundPage') - self.backgroundLayout = QtGui.QFormLayout(self.backgroundPage) - self.backgroundLayout.setFieldGrowthPolicy(QtGui.QFormLayout.ExpandingFieldsGrow) - self.backgroundLayout.setLabelAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) - self.backgroundLayout.setMargin(20) + self.backgroundLayout = QtGui.QVBoxLayout(self.backgroundPage) self.backgroundLayout.setSpacing(8) + self.backgroundLayout.setMargin(20) self.backgroundLayout.setObjectName(u'backgroundLayout') + self.backgroundTypeLayout = QtGui.QHBoxLayout() + self.backgroundTypeLayout.setSpacing(8) + self.backgroundTypeLayout.setObjectName(u'backgroundTypeLayout') self.backgroundTypeLabel = QtGui.QLabel(self.backgroundPage) self.backgroundTypeLabel.setObjectName(u'backgroundTypeLabel') - self.backgroundLayout.setWidget(0, QtGui.QFormLayout.LabelRole, self.backgroundTypeLabel) + self.backgroundTypeLayout.addWidget(self.backgroundTypeLabel) self.backgroundTypeComboBox = QtGui.QComboBox(self.backgroundPage) self.backgroundTypeComboBox.setObjectName(u'backgroundTypeComboBox') self.backgroundTypeComboBox.addItem(u'') self.backgroundTypeComboBox.addItem(u'') self.backgroundTypeComboBox.addItem(u'') - self.backgroundLayout.setWidget(0, QtGui.QFormLayout.FieldRole, self.backgroundTypeComboBox) - self.color1Label = QtGui.QLabel(self.backgroundPage) - self.color1Label.setObjectName(u'color1Label') - self.backgroundLayout.setWidget(1, QtGui.QFormLayout.LabelRole, self.color1Label) - self.color1PushButton = QtGui.QPushButton(self.backgroundPage) - self.color1PushButton.setText(u'') - self.color1PushButton.setObjectName(u'color1PushButton') - self.backgroundLayout.setWidget(1, QtGui.QFormLayout.FieldRole, self.color1PushButton) - self.color2Label = QtGui.QLabel(self.backgroundPage) - self.color2Label.setObjectName(u'color2Label') - self.backgroundLayout.setWidget(2, QtGui.QFormLayout.LabelRole, self.color2Label) - self.color2PushButton = QtGui.QPushButton(self.backgroundPage) - self.color2PushButton.setText(u'') - self.color2PushButton.setObjectName(u'color2PushButton') - self.backgroundLayout.setWidget(2, QtGui.QFormLayout.FieldRole, self.color2PushButton) - self.imageLabel = QtGui.QLabel(self.backgroundPage) - self.imageLabel.setObjectName(u'imageLabel') - self.backgroundLayout.setWidget(3, QtGui.QFormLayout.LabelRole, self.imageLabel) - self.imageLayout = QtGui.QHBoxLayout() - self.imageLayout.setSpacing(8) - self.imageLayout.setObjectName(u'imageLayout') - self.imageLineEdit = QtGui.QLineEdit(self.backgroundPage) - self.imageLineEdit.setObjectName(u'imageLineEdit') - self.imageLayout.addWidget(self.imageLineEdit) - self.imageBrowseButton = QtGui.QToolButton(self.backgroundPage) - self.imageBrowseButton.setText(u'') - self.imageBrowseButton.setIcon(build_icon(u':/general/general_open.png')) - self.imageBrowseButton.setObjectName(u'imageBrowseButton') - self.imageLayout.addWidget(self.imageBrowseButton) - self.backgroundLayout.setLayout(3, QtGui.QFormLayout.FieldRole, self.imageLayout) - self.gradientLabel = QtGui.QLabel(self.backgroundPage) - self.gradientLabel.setObjectName(u'gradientLabel') - self.backgroundLayout.setWidget(4, QtGui.QFormLayout.LabelRole, self.gradientLabel) - self.gradientComboBox = QtGui.QComboBox(self.backgroundPage) + self.backgroundTypeLayout.addWidget(self.backgroundTypeComboBox) + self.backgroundTypeSpacer = QtGui.QSpacerItem(40, 20, + QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum) + self.backgroundTypeLayout.addItem(self.backgroundTypeSpacer) + self.backgroundLayout.addLayout(self.backgroundTypeLayout) + self.backgroundStackedWidget = QtGui.QStackedWidget( + self.backgroundPage) + self.backgroundStackedWidget.setObjectName(u'backgroundStackedWidget') + self.colorPage = QtGui.QWidget() + self.colorPage.setObjectName(u'colorPage') + self.colorLayout = QtGui.QFormLayout(self.colorPage) + self.colorLayout.setMargin(0) + self.colorLayout.setSpacing(8) + self.colorLayout.setObjectName(u'colorLayout') + self.colorLabel = QtGui.QLabel(self.colorPage) + self.colorLabel.setMinimumSize(QtCore.QSize(103, 0)) + self.colorLabel.setAlignment(QtCore.Qt.AlignRight | + QtCore.Qt.AlignTrailing | QtCore.Qt.AlignVCenter) + self.colorLabel.setObjectName(u'colorLabel') + self.colorLayout.setWidget(0, + QtGui.QFormLayout.LabelRole, self.colorLabel) + self.colorButton = QtGui.QPushButton(self.colorPage) + self.colorButton.setText(u'') + self.colorButton.setObjectName(u'colorButton') + self.colorLayout.setWidget(0, + QtGui.QFormLayout.FieldRole, self.colorButton) + self.backgroundStackedWidget.addWidget(self.colorPage) + self.gradientPage = QtGui.QWidget() + self.gradientPage.setObjectName(u'gradientPage') + self.gradientLayout = QtGui.QFormLayout(self.gradientPage) + self.gradientLayout.setMargin(0) + self.gradientLayout.setSpacing(8) + self.gradientLayout.setObjectName(u'gradientLayout') + self.gradientStartLabel = QtGui.QLabel(self.gradientPage) + self.gradientStartLabel.setMinimumSize(QtCore.QSize(103, 0)) + self.gradientStartLabel.setAlignment(QtCore.Qt.AlignRight | + QtCore.Qt.AlignTrailing | QtCore.Qt.AlignVCenter) + self.gradientStartLabel.setObjectName(u'gradientStartLabel') + self.gradientLayout.setWidget(0, + QtGui.QFormLayout.LabelRole, self.gradientStartLabel) + self.gradientStartButton = QtGui.QPushButton(self.gradientPage) + self.gradientStartButton.setText(u'') + self.gradientStartButton.setObjectName(u'gradientStartButton') + self.gradientLayout.setWidget(0, + QtGui.QFormLayout.FieldRole, self.gradientStartButton) + self.gradientEndLabel = QtGui.QLabel(self.gradientPage) + self.gradientEndLabel.setMinimumSize(QtCore.QSize(103, 0)) + self.gradientEndLabel.setAlignment(QtCore.Qt.AlignRight | + QtCore.Qt.AlignTrailing | QtCore.Qt.AlignVCenter) + self.gradientEndLabel.setObjectName(u'gradientEndLabel') + self.gradientLayout.setWidget(1, + QtGui.QFormLayout.LabelRole, self.gradientEndLabel) + self.gradientEndButton = QtGui.QPushButton(self.gradientPage) + self.gradientEndButton.setText(u'') + self.gradientEndButton.setObjectName(u'gradientEndButton') + self.gradientLayout.setWidget(1, + QtGui.QFormLayout.FieldRole, self.gradientEndButton) + self.gradientTypeLabel = QtGui.QLabel(self.gradientPage) + self.gradientTypeLabel.setMinimumSize(QtCore.QSize(103, 0)) + self.gradientTypeLabel.setAlignment(QtCore.Qt.AlignRight | + QtCore.Qt.AlignTrailing | QtCore.Qt.AlignVCenter) + self.gradientTypeLabel.setObjectName(u'gradientTypeLabel') + self.gradientLayout.setWidget(2, + QtGui.QFormLayout.LabelRole, self.gradientTypeLabel) + self.gradientComboBox = QtGui.QComboBox(self.gradientPage) self.gradientComboBox.setObjectName(u'gradientComboBox') self.gradientComboBox.addItem(u'') self.gradientComboBox.addItem(u'') self.gradientComboBox.addItem(u'') self.gradientComboBox.addItem(u'') self.gradientComboBox.addItem(u'') - self.backgroundLayout.setWidget(4, QtGui.QFormLayout.FieldRole, self.gradientComboBox) + self.gradientLayout.setWidget(2, + QtGui.QFormLayout.FieldRole, self.gradientComboBox) + self.backgroundStackedWidget.addWidget(self.gradientPage) + self.imagePage = QtGui.QWidget() + self.imagePage.setObjectName(u'imagePage') + self.imageLayout = QtGui.QFormLayout(self.imagePage) + self.imageLayout.setMargin(0) + self.imageLayout.setSpacing(8) + self.imageLayout.setObjectName(u'imageLayout') + self.imageLabel = QtGui.QLabel(self.imagePage) + self.imageLabel.setMinimumSize(QtCore.QSize(103, 0)) + self.imageLabel.setAlignment(QtCore.Qt.AlignRight | + QtCore.Qt.AlignTrailing | QtCore.Qt.AlignVCenter) + self.imageLabel.setObjectName(u'imageLabel') + self.imageLayout.setWidget(0, + QtGui.QFormLayout.LabelRole, self.imageLabel) + self.imageFileLayout = QtGui.QHBoxLayout() + self.imageFileLayout.setSpacing(8) + self.imageFileLayout.setObjectName(u'imageFileLayout') + self.imageLineEdit = QtGui.QLineEdit(self.imagePage) + self.imageLineEdit.setObjectName(u'imageLineEdit') + self.imageFileLayout.addWidget(self.imageLineEdit) + self.imageBrowseButton = QtGui.QToolButton(self.imagePage) + self.imageBrowseButton.setText(u'') + self.imageBrowseButton.setIcon( + build_icon(u':/general/general_open.png')) + self.imageBrowseButton.setObjectName(u'imageBrowseButton') + self.imageFileLayout.addWidget(self.imageBrowseButton) + self.imageLayout.setLayout(0, + QtGui.QFormLayout.FieldRole, self.imageFileLayout) + self.backgroundStackedWidget.addWidget(self.imagePage) + self.backgroundLayout.addWidget(self.backgroundStackedWidget) ThemeWizard.addPage(self.backgroundPage) self.mainAreaPage = QtGui.QWizardPage() self.mainAreaPage.setObjectName(u'mainAreaPage') - self.formLayout = QtGui.QFormLayout(self.mainAreaPage) - self.formLayout.setFormAlignment(QtCore.Qt.AlignLeading|QtCore.Qt.AlignLeft|QtCore.Qt.AlignTop) - self.formLayout.setContentsMargins(-1, 20, 20, 20) - self.formLayout.setSpacing(8) - self.formLayout.setObjectName(u'formLayout') + self.mainAreaLayout = QtGui.QFormLayout(self.mainAreaPage) + self.mainAreaLayout.setFormAlignment(QtCore.Qt.AlignLeading | + QtCore.Qt.AlignLeft | QtCore.Qt.AlignTop) + self.mainAreaLayout.setMargin(20) + self.mainAreaLayout.setSpacing(8) + self.mainAreaLayout.setObjectName(u'mainAreaLayout') self.mainFontLabel = QtGui.QLabel(self.mainAreaPage) + self.mainFontLabel.setMinimumSize(QtCore.QSize(103, 0)) + self.mainFontLabel.setAlignment(QtCore.Qt.AlignRight | + QtCore.Qt.AlignTrailing | QtCore.Qt.AlignVCenter) self.mainFontLabel.setObjectName(u'mainFontLabel') - self.formLayout.setWidget(0, QtGui.QFormLayout.LabelRole, self.mainFontLabel) + self.mainAreaLayout.setWidget(0, + QtGui.QFormLayout.LabelRole, self.mainFontLabel) self.mainFontComboBox = QtGui.QFontComboBox(self.mainAreaPage) self.mainFontComboBox.setObjectName(u'mainFontComboBox') - self.formLayout.setWidget(0, QtGui.QFormLayout.FieldRole, self.mainFontComboBox) + self.mainAreaLayout.setWidget(0, + QtGui.QFormLayout.FieldRole, self.mainFontComboBox) self.mainColorLabel = QtGui.QLabel(self.mainAreaPage) self.mainColorLabel.setObjectName(u'mainColorLabel') - self.formLayout.setWidget(1, QtGui.QFormLayout.LabelRole, self.mainColorLabel) + self.mainAreaLayout.setWidget(1, + QtGui.QFormLayout.LabelRole, self.mainColorLabel) + self.fontPropertiesLayout = QtGui.QHBoxLayout() + self.fontPropertiesLayout.setSpacing(24) + self.fontPropertiesLayout.setObjectName(u'fontPropertiesLayout') self.mainColorPushButton = QtGui.QPushButton(self.mainAreaPage) self.mainColorPushButton.setText(u'') self.mainColorPushButton.setObjectName(u'mainColorPushButton') - self.formLayout.setWidget(1, QtGui.QFormLayout.FieldRole, self.mainColorPushButton) + self.fontPropertiesLayout.addWidget(self.mainColorPushButton) + self.boldCheckBox = QtGui.QCheckBox(self.mainAreaPage) + self.boldCheckBox.setObjectName(u'boldCheckBox') + self.fontPropertiesLayout.addWidget(self.boldCheckBox) + self.italicsCheckBox = QtGui.QCheckBox(self.mainAreaPage) + self.italicsCheckBox.setObjectName(u'italicsCheckBox') + self.fontPropertiesLayout.addWidget(self.italicsCheckBox) + self.mainAreaLayout.setLayout(1, + QtGui.QFormLayout.FieldRole, self.fontPropertiesLayout) self.mainSizeLabel = QtGui.QLabel(self.mainAreaPage) self.mainSizeLabel.setObjectName(u'mainSizeLabel') - self.formLayout.setWidget(2, QtGui.QFormLayout.LabelRole, self.mainSizeLabel) + self.mainAreaLayout.setWidget(2, + QtGui.QFormLayout.LabelRole, self.mainSizeLabel) self.mainSizeLayout = QtGui.QHBoxLayout() self.mainSizeLayout.setSpacing(8) self.mainSizeLayout.setMargin(0) self.mainSizeLayout.setObjectName(u'mainSizeLayout') self.mainSizeSpinBox = QtGui.QSpinBox(self.mainAreaPage) - sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Fixed) + sizePolicy = QtGui.QSizePolicy( + QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Fixed) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) - sizePolicy.setHeightForWidth(self.mainSizeSpinBox.sizePolicy().hasHeightForWidth()) + sizePolicy.setHeightForWidth( + self.mainSizeSpinBox.sizePolicy().hasHeightForWidth()) self.mainSizeSpinBox.setSizePolicy(sizePolicy) self.mainSizeSpinBox.setMinimumSize(QtCore.QSize(70, 0)) self.mainSizeSpinBox.setMaximum(999) @@ -168,18 +250,22 @@ class Ui_ThemeWizard(object): self.mainLineCountLabel = QtGui.QLabel(self.mainAreaPage) self.mainLineCountLabel.setObjectName(u'mainLineCountLabel') self.mainSizeLayout.addWidget(self.mainLineCountLabel) - self.formLayout.setLayout(2, QtGui.QFormLayout.FieldRole, self.mainSizeLayout) + self.mainAreaLayout.setLayout(2, + QtGui.QFormLayout.FieldRole, self.mainSizeLayout) self.lineSpacingLabel = QtGui.QLabel(self.mainAreaPage) self.lineSpacingLabel.setObjectName(u'lineSpacingLabel') - self.formLayout.setWidget(3, QtGui.QFormLayout.LabelRole, self.lineSpacingLabel) + self.mainAreaLayout.setWidget(3, + QtGui.QFormLayout.LabelRole, self.lineSpacingLabel) self.lineSpacingSpinBox = QtGui.QSpinBox(self.mainAreaPage) self.lineSpacingSpinBox.setMinimum(-50) self.lineSpacingSpinBox.setMaximum(50) self.lineSpacingSpinBox.setObjectName(u'lineSpacingSpinBox') - self.formLayout.setWidget(3, QtGui.QFormLayout.FieldRole, self.lineSpacingSpinBox) + self.mainAreaLayout.setWidget(3, + QtGui.QFormLayout.FieldRole, self.lineSpacingSpinBox) self.outlineCheckBox = QtGui.QCheckBox(self.mainAreaPage) self.outlineCheckBox.setObjectName(u'outlineCheckBox') - self.formLayout.setWidget(4, QtGui.QFormLayout.LabelRole, self.outlineCheckBox) + self.mainAreaLayout.setWidget(4, + QtGui.QFormLayout.LabelRole, self.outlineCheckBox) self.outlineLayout = QtGui.QHBoxLayout() self.outlineLayout.setObjectName(u'outlineLayout') self.outlineColorPushButton = QtGui.QPushButton(self.mainAreaPage) @@ -193,10 +279,12 @@ class Ui_ThemeWizard(object): self.outlineSizeSpinBox = QtGui.QSpinBox(self.mainAreaPage) self.outlineSizeSpinBox.setObjectName(u'outlineSizeSpinBox') self.outlineLayout.addWidget(self.outlineSizeSpinBox) - self.formLayout.setLayout(4, QtGui.QFormLayout.FieldRole, self.outlineLayout) + self.mainAreaLayout.setLayout(4, + QtGui.QFormLayout.FieldRole, self.outlineLayout) self.shadowCheckBox = QtGui.QCheckBox(self.mainAreaPage) self.shadowCheckBox.setObjectName(u'shadowCheckBox') - self.formLayout.setWidget(5, QtGui.QFormLayout.LabelRole, self.shadowCheckBox) + self.mainAreaLayout.setWidget(5, + QtGui.QFormLayout.LabelRole, self.shadowCheckBox) self.shadowLayout = QtGui.QHBoxLayout() self.shadowLayout.setObjectName(u'shadowLayout') self.shadowColorPushButton = QtGui.QPushButton(self.mainAreaPage) @@ -210,83 +298,99 @@ class Ui_ThemeWizard(object): self.shadowSizeSpinBox = QtGui.QSpinBox(self.mainAreaPage) self.shadowSizeSpinBox.setObjectName(u'shadowSizeSpinBox') self.shadowLayout.addWidget(self.shadowSizeSpinBox) - self.formLayout.setLayout(5, QtGui.QFormLayout.FieldRole, self.shadowLayout) - self.boldCheckBox = QtGui.QCheckBox(self.mainAreaPage) - self.boldCheckBox.setObjectName(u'boldCheckBox') - self.formLayout.setWidget(6, QtGui.QFormLayout.FieldRole, self.boldCheckBox) - self.italicsCheckBox = QtGui.QCheckBox(self.mainAreaPage) - self.italicsCheckBox.setObjectName(u'italicsCheckBox') - self.formLayout.setWidget(7, QtGui.QFormLayout.FieldRole, self.italicsCheckBox) + self.mainAreaLayout.setLayout(5, + QtGui.QFormLayout.FieldRole, self.shadowLayout) ThemeWizard.addPage(self.mainAreaPage) self.footerAreaPage = QtGui.QWizardPage() self.footerAreaPage.setObjectName(u'footerAreaPage') self.footerLayout = QtGui.QFormLayout(self.footerAreaPage) - self.footerLayout.setFieldGrowthPolicy(QtGui.QFormLayout.ExpandingFieldsGrow) - self.footerLayout.setContentsMargins(50, 20, 20, 20) + self.footerLayout.setFieldGrowthPolicy( + QtGui.QFormLayout.ExpandingFieldsGrow) + self.footerLayout.setMargin(20) self.footerLayout.setSpacing(8) self.footerLayout.setObjectName(u'footerLayout') self.footerFontLabel = QtGui.QLabel(self.footerAreaPage) + self.footerFontLabel.setMinimumSize(QtCore.QSize(103, 0)) + self.footerFontLabel.setAlignment(QtCore.Qt.AlignRight | + QtCore.Qt.AlignTrailing | QtCore.Qt.AlignVCenter) self.footerFontLabel.setObjectName(u'footerFontLabel') - self.footerLayout.setWidget(0, QtGui.QFormLayout.LabelRole, self.footerFontLabel) + self.footerLayout.setWidget(0, + QtGui.QFormLayout.LabelRole, self.footerFontLabel) self.footerFontComboBox = QtGui.QFontComboBox(self.footerAreaPage) self.footerFontComboBox.setObjectName(u'footerFontComboBox') - self.footerLayout.setWidget(0, QtGui.QFormLayout.FieldRole, self.footerFontComboBox) + self.footerLayout.setWidget(0, + QtGui.QFormLayout.FieldRole, self.footerFontComboBox) self.footerColorLabel = QtGui.QLabel(self.footerAreaPage) self.footerColorLabel.setObjectName(u'footerColorLabel') - self.footerLayout.setWidget(1, QtGui.QFormLayout.LabelRole, self.footerColorLabel) + self.footerLayout.setWidget(1, + QtGui.QFormLayout.LabelRole, self.footerColorLabel) self.footerColorPushButton = QtGui.QPushButton(self.footerAreaPage) self.footerColorPushButton.setText(u'') self.footerColorPushButton.setObjectName(u'footerColorPushButton') - self.footerLayout.setWidget(1, QtGui.QFormLayout.FieldRole, self.footerColorPushButton) + self.footerLayout.setWidget(1, + QtGui.QFormLayout.FieldRole, self.footerColorPushButton) self.footerSizeLabel = QtGui.QLabel(self.footerAreaPage) self.footerSizeLabel.setObjectName(u'footerSizeLabel') - self.footerLayout.setWidget(2, QtGui.QFormLayout.LabelRole, self.footerSizeLabel) + self.footerLayout.setWidget(2, + QtGui.QFormLayout.LabelRole, self.footerSizeLabel) self.footerSizeSpinBox = QtGui.QSpinBox(self.footerAreaPage) - sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Fixed) + sizePolicy = QtGui.QSizePolicy( + QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Fixed) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) - sizePolicy.setHeightForWidth(self.footerSizeSpinBox.sizePolicy().hasHeightForWidth()) + sizePolicy.setHeightForWidth( + self.footerSizeSpinBox.sizePolicy().hasHeightForWidth()) self.footerSizeSpinBox.setSizePolicy(sizePolicy) self.footerSizeSpinBox.setMinimumSize(QtCore.QSize(70, 0)) self.footerSizeSpinBox.setMaximum(999) self.footerSizeSpinBox.setProperty(u'value', 10) self.footerSizeSpinBox.setObjectName(u'footerSizeSpinBox') - self.footerLayout.setWidget(2, QtGui.QFormLayout.FieldRole, self.footerSizeSpinBox) + self.footerLayout.setWidget(2, + QtGui.QFormLayout.FieldRole, self.footerSizeSpinBox) ThemeWizard.addPage(self.footerAreaPage) self.alignmentPage = QtGui.QWizardPage() self.alignmentPage.setObjectName(u'alignmentPage') - self.formLayout_2 = QtGui.QFormLayout(self.alignmentPage) - self.formLayout_2.setMargin(20) - self.formLayout_2.setObjectName(u'formLayout_2') + self.alignmentLayout = QtGui.QFormLayout(self.alignmentPage) + self.alignmentLayout.setMargin(20) + self.alignmentLayout.setSpacing(8) + self.alignmentLayout.setObjectName(u'alignmentLayout') self.horizontalLabel = QtGui.QLabel(self.alignmentPage) + self.horizontalLabel.setMinimumSize(QtCore.QSize(103, 0)) + self.horizontalLabel.setAlignment(QtCore.Qt.AlignRight | + QtCore.Qt.AlignTrailing | QtCore.Qt.AlignVCenter) self.horizontalLabel.setObjectName(u'horizontalLabel') - self.formLayout_2.setWidget(0, QtGui.QFormLayout.LabelRole, self.horizontalLabel) + self.alignmentLayout.setWidget(0, + QtGui.QFormLayout.LabelRole, self.horizontalLabel) self.horizontalComboBox = QtGui.QComboBox(self.alignmentPage) self.horizontalComboBox.setEditable(False) self.horizontalComboBox.setObjectName(u'horizontalComboBox') self.horizontalComboBox.addItem(u'') self.horizontalComboBox.addItem(u'') self.horizontalComboBox.addItem(u'') - self.formLayout_2.setWidget(0, QtGui.QFormLayout.FieldRole, self.horizontalComboBox) + self.alignmentLayout.setWidget(0, + QtGui.QFormLayout.FieldRole, self.horizontalComboBox) self.verticalLabel = QtGui.QLabel(self.alignmentPage) self.verticalLabel.setObjectName(u'verticalLabel') - self.formLayout_2.setWidget(1, QtGui.QFormLayout.LabelRole, self.verticalLabel) + self.alignmentLayout.setWidget(1, + QtGui.QFormLayout.LabelRole, self.verticalLabel) self.verticalComboBox = QtGui.QComboBox(self.alignmentPage) self.verticalComboBox.setObjectName(u'verticalComboBox') self.verticalComboBox.addItem(u'') self.verticalComboBox.addItem(u'') self.verticalComboBox.addItem(u'') - self.formLayout_2.setWidget(1, QtGui.QFormLayout.FieldRole, self.verticalComboBox) + self.alignmentLayout.setWidget(1, + QtGui.QFormLayout.FieldRole, self.verticalComboBox) self.transitionsCheckBox = QtGui.QCheckBox(self.alignmentPage) self.transitionsCheckBox.setObjectName(u'transitionsCheckBox') - self.formLayout_2.setWidget(2, QtGui.QFormLayout.FieldRole, self.transitionsCheckBox) + self.alignmentLayout.setWidget(2, + QtGui.QFormLayout.FieldRole, self.transitionsCheckBox) ThemeWizard.addPage(self.alignmentPage) self.areaPositionPage = QtGui.QWizardPage() self.areaPositionPage.setObjectName(u'areaPositionPage') - self.gridLayout_2 = QtGui.QGridLayout(self.areaPositionPage) - self.gridLayout_2.setMargin(20) - self.gridLayout_2.setSpacing(8) - self.gridLayout_2.setObjectName(u'gridLayout_2') + self.areaPositionLayout = QtGui.QGridLayout(self.areaPositionPage) + self.areaPositionLayout.setMargin(20) + self.areaPositionLayout.setSpacing(8) + self.areaPositionLayout.setObjectName(u'areaPositionLayout') self.mainPositionGroupBox = QtGui.QGroupBox(self.areaPositionPage) self.mainPositionGroupBox.setMinimumSize(QtCore.QSize(248, 0)) self.mainPositionGroupBox.setObjectName(u'mainPositionGroupBox') @@ -294,254 +398,360 @@ class Ui_ThemeWizard(object): self.mainPositionLayout.setMargin(8) self.mainPositionLayout.setSpacing(8) self.mainPositionLayout.setObjectName(u'mainPositionLayout') - self.mainDefaultPositionCheckBox = QtGui.QCheckBox(self.mainPositionGroupBox) + self.mainDefaultPositionCheckBox = QtGui.QCheckBox( + self.mainPositionGroupBox) self.mainDefaultPositionCheckBox.setChecked(True) self.mainDefaultPositionCheckBox.setTristate(False) self.mainDefaultPositionCheckBox.setObjectName(u'mainDefaultPositionCheckBox') - self.mainPositionLayout.setWidget(0, QtGui.QFormLayout.FieldRole, self.mainDefaultPositionCheckBox) + self.mainPositionLayout.setWidget(0, + QtGui.QFormLayout.FieldRole, self.mainDefaultPositionCheckBox) self.nainXLabel = QtGui.QLabel(self.mainPositionGroupBox) self.nainXLabel.setObjectName(u'nainXLabel') - self.mainPositionLayout.setWidget(1, QtGui.QFormLayout.LabelRole, self.nainXLabel) + self.mainPositionLayout.setWidget(1, + QtGui.QFormLayout.LabelRole, self.nainXLabel) self.mainXSpinBox = QtGui.QSpinBox(self.mainPositionGroupBox) self.mainXSpinBox.setEnabled(False) - sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Fixed) + sizePolicy = QtGui.QSizePolicy( + QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Fixed) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) - sizePolicy.setHeightForWidth(self.mainXSpinBox.sizePolicy().hasHeightForWidth()) + sizePolicy.setHeightForWidth( + self.mainXSpinBox.sizePolicy().hasHeightForWidth()) self.mainXSpinBox.setSizePolicy(sizePolicy) self.mainXSpinBox.setMinimumSize(QtCore.QSize(78, 0)) self.mainXSpinBox.setMaximum(9999) self.mainXSpinBox.setProperty(u'value', 0) self.mainXSpinBox.setObjectName(u'mainXSpinBox') - self.mainPositionLayout.setWidget(1, QtGui.QFormLayout.FieldRole, self.mainXSpinBox) + self.mainPositionLayout.setWidget(1, + QtGui.QFormLayout.FieldRole, self.mainXSpinBox) self.mainYSpinBox = QtGui.QSpinBox(self.mainPositionGroupBox) self.mainYSpinBox.setEnabled(False) - sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Fixed) + sizePolicy = QtGui.QSizePolicy( + QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Fixed) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) - sizePolicy.setHeightForWidth(self.mainYSpinBox.sizePolicy().hasHeightForWidth()) + sizePolicy.setHeightForWidth( + self.mainYSpinBox.sizePolicy().hasHeightForWidth()) self.mainYSpinBox.setSizePolicy(sizePolicy) self.mainYSpinBox.setMinimumSize(QtCore.QSize(78, 0)) self.mainYSpinBox.setMaximum(9999) self.mainYSpinBox.setObjectName(u'mainYSpinBox') - self.mainPositionLayout.setWidget(2, QtGui.QFormLayout.FieldRole, self.mainYSpinBox) + self.mainPositionLayout.setWidget(2, + QtGui.QFormLayout.FieldRole, self.mainYSpinBox) self.mainYLabel = QtGui.QLabel(self.mainPositionGroupBox) self.mainYLabel.setObjectName(u'mainYLabel') - self.mainPositionLayout.setWidget(2, QtGui.QFormLayout.LabelRole, self.mainYLabel) + self.mainPositionLayout.setWidget(2, + QtGui.QFormLayout.LabelRole, self.mainYLabel) self.mainWidthSpinBox = QtGui.QSpinBox(self.mainPositionGroupBox) self.mainWidthSpinBox.setEnabled(False) - sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Fixed) + sizePolicy = QtGui.QSizePolicy( + QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Fixed) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) - sizePolicy.setHeightForWidth(self.mainWidthSpinBox.sizePolicy().hasHeightForWidth()) + sizePolicy.setHeightForWidth( + self.mainWidthSpinBox.sizePolicy().hasHeightForWidth()) self.mainWidthSpinBox.setSizePolicy(sizePolicy) self.mainWidthSpinBox.setMinimumSize(QtCore.QSize(78, 0)) self.mainWidthSpinBox.setMaximum(9999) self.mainWidthSpinBox.setObjectName(u'mainWidthSpinBox') - self.mainPositionLayout.setWidget(3, QtGui.QFormLayout.FieldRole, self.mainWidthSpinBox) + self.mainPositionLayout.setWidget(3, + QtGui.QFormLayout.FieldRole, self.mainWidthSpinBox) self.mainWidthLabel = QtGui.QLabel(self.mainPositionGroupBox) self.mainWidthLabel.setObjectName(u'mainWidthLabel') - self.mainPositionLayout.setWidget(3, QtGui.QFormLayout.LabelRole, self.mainWidthLabel) + self.mainPositionLayout.setWidget(3, + QtGui.QFormLayout.LabelRole, self.mainWidthLabel) self.mainHeightSpinBox = QtGui.QSpinBox(self.mainPositionGroupBox) self.mainHeightSpinBox.setEnabled(False) - sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Fixed) + sizePolicy = QtGui.QSizePolicy( + QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Fixed) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) - sizePolicy.setHeightForWidth(self.mainHeightSpinBox.sizePolicy().hasHeightForWidth()) + sizePolicy.setHeightForWidth( + self.mainHeightSpinBox.sizePolicy().hasHeightForWidth()) self.mainHeightSpinBox.setSizePolicy(sizePolicy) self.mainHeightSpinBox.setMinimumSize(QtCore.QSize(78, 0)) self.mainHeightSpinBox.setMaximum(9999) self.mainHeightSpinBox.setObjectName(u'mainHeightSpinBox') - self.mainPositionLayout.setWidget(4, QtGui.QFormLayout.FieldRole, self.mainHeightSpinBox) + self.mainPositionLayout.setWidget(4, + QtGui.QFormLayout.FieldRole, self.mainHeightSpinBox) self.mainHeightLabel = QtGui.QLabel(self.mainPositionGroupBox) self.mainHeightLabel.setObjectName(u'mainHeightLabel') - self.mainPositionLayout.setWidget(4, QtGui.QFormLayout.LabelRole, self.mainHeightLabel) - self.gridLayout_2.addWidget(self.mainPositionGroupBox, 1, 0, 1, 1) + self.mainPositionLayout.setWidget(4, + QtGui.QFormLayout.LabelRole, self.mainHeightLabel) + self.areaPositionLayout.addWidget( + self.mainPositionGroupBox, 1, 0, 1, 1) self.footerPositionGroupBox = QtGui.QGroupBox(self.areaPositionPage) self.footerPositionGroupBox.setMinimumSize(QtCore.QSize(248, 0)) self.footerPositionGroupBox.setObjectName(u'footerPositionGroupBox') - self.footerPositionLayout = QtGui.QFormLayout(self.footerPositionGroupBox) + self.footerPositionLayout = QtGui.QFormLayout( + self.footerPositionGroupBox) self.footerPositionLayout.setMargin(8) self.footerPositionLayout.setSpacing(8) self.footerPositionLayout.setObjectName(u'footerPositionLayout') self.footerXLabel = QtGui.QLabel(self.footerPositionGroupBox) self.footerXLabel.setObjectName(u'footerXLabel') - self.footerPositionLayout.setWidget(1, QtGui.QFormLayout.LabelRole, self.footerXLabel) + self.footerPositionLayout.setWidget(1, + QtGui.QFormLayout.LabelRole, self.footerXLabel) self.footerXSpinBox = QtGui.QSpinBox(self.footerPositionGroupBox) self.footerXSpinBox.setEnabled(False) - sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Fixed) + sizePolicy = QtGui.QSizePolicy( + QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Fixed) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) - sizePolicy.setHeightForWidth(self.footerXSpinBox.sizePolicy().hasHeightForWidth()) + sizePolicy.setHeightForWidth( + self.footerXSpinBox.sizePolicy().hasHeightForWidth()) self.footerXSpinBox.setSizePolicy(sizePolicy) self.footerXSpinBox.setMinimumSize(QtCore.QSize(78, 0)) self.footerXSpinBox.setMaximum(9999) self.footerXSpinBox.setProperty(u'value', 0) self.footerXSpinBox.setObjectName(u'footerXSpinBox') - self.footerPositionLayout.setWidget(1, QtGui.QFormLayout.FieldRole, self.footerXSpinBox) + self.footerPositionLayout.setWidget(1, + QtGui.QFormLayout.FieldRole, self.footerXSpinBox) self.footerYLabel = QtGui.QLabel(self.footerPositionGroupBox) self.footerYLabel.setObjectName(u'footerYLabel') - self.footerPositionLayout.setWidget(2, QtGui.QFormLayout.LabelRole, self.footerYLabel) + self.footerPositionLayout.setWidget(2, + QtGui.QFormLayout.LabelRole, self.footerYLabel) self.footerYSpinBox = QtGui.QSpinBox(self.footerPositionGroupBox) self.footerYSpinBox.setEnabled(False) - sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Fixed) + sizePolicy = QtGui.QSizePolicy( + QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Fixed) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) - sizePolicy.setHeightForWidth(self.footerYSpinBox.sizePolicy().hasHeightForWidth()) + sizePolicy.setHeightForWidth( + self.footerYSpinBox.sizePolicy().hasHeightForWidth()) self.footerYSpinBox.setSizePolicy(sizePolicy) self.footerYSpinBox.setMinimumSize(QtCore.QSize(78, 0)) self.footerYSpinBox.setMaximum(9999) self.footerYSpinBox.setProperty(u'value', 0) self.footerYSpinBox.setObjectName(u'footerYSpinBox') - self.footerPositionLayout.setWidget(2, QtGui.QFormLayout.FieldRole, self.footerYSpinBox) + self.footerPositionLayout.setWidget(2, + QtGui.QFormLayout.FieldRole, self.footerYSpinBox) self.footerWidthLabel = QtGui.QLabel(self.footerPositionGroupBox) self.footerWidthLabel.setObjectName(u'footerWidthLabel') - self.footerPositionLayout.setWidget(3, QtGui.QFormLayout.LabelRole, self.footerWidthLabel) + self.footerPositionLayout.setWidget(3, + QtGui.QFormLayout.LabelRole, self.footerWidthLabel) self.footerWidthSpinBox = QtGui.QSpinBox(self.footerPositionGroupBox) self.footerWidthSpinBox.setEnabled(False) self.footerWidthSpinBox.setMinimumSize(QtCore.QSize(78, 0)) self.footerWidthSpinBox.setMaximum(9999) self.footerWidthSpinBox.setObjectName(u'footerWidthSpinBox') - self.footerPositionLayout.setWidget(3, QtGui.QFormLayout.FieldRole, self.footerWidthSpinBox) + self.footerPositionLayout.setWidget(3, + QtGui.QFormLayout.FieldRole, self.footerWidthSpinBox) self.footerHeightLabel = QtGui.QLabel(self.footerPositionGroupBox) self.footerHeightLabel.setObjectName(u'footerHeightLabel') - self.footerPositionLayout.setWidget(4, QtGui.QFormLayout.LabelRole, self.footerHeightLabel) + self.footerPositionLayout.setWidget(4, + QtGui.QFormLayout.LabelRole, self.footerHeightLabel) self.footerHeightSpinBox = QtGui.QSpinBox(self.footerPositionGroupBox) self.footerHeightSpinBox.setEnabled(False) self.footerHeightSpinBox.setMinimumSize(QtCore.QSize(78, 0)) self.footerHeightSpinBox.setMaximum(9999) self.footerHeightSpinBox.setObjectName(u'footerHeightSpinBox') - self.footerPositionLayout.setWidget(4, QtGui.QFormLayout.FieldRole, self.footerHeightSpinBox) - self.footerDefaultPositionCheckBox = QtGui.QCheckBox(self.footerPositionGroupBox) + self.footerPositionLayout.setWidget(4, + QtGui.QFormLayout.FieldRole, self.footerHeightSpinBox) + self.footerDefaultPositionCheckBox = QtGui.QCheckBox( + self.footerPositionGroupBox) self.footerDefaultPositionCheckBox.setChecked(True) self.footerDefaultPositionCheckBox.setObjectName(u'footerDefaultPositionCheckBox') - self.footerPositionLayout.setWidget(0, QtGui.QFormLayout.FieldRole, self.footerDefaultPositionCheckBox) - self.gridLayout_2.addWidget(self.footerPositionGroupBox, 1, 1, 1, 1) + self.footerPositionLayout.setWidget(0, + QtGui.QFormLayout.FieldRole, self.footerDefaultPositionCheckBox) + self.areaPositionLayout.addWidget( + self.footerPositionGroupBox, 1, 1, 1, 1) ThemeWizard.addPage(self.areaPositionPage) self.previewPage = QtGui.QWizardPage() self.previewPage.setObjectName(u'previewPage') + self.previewLayout = QtGui.QVBoxLayout(self.previewPage) + self.previewLayout.setSpacing(8) + self.previewLayout.setMargin(20) + self.previewLayout.setObjectName(u'previewLayout') + self.themeNameLayout = QtGui.QHBoxLayout() + self.themeNameLayout.setSpacing(8) + self.themeNameLayout.setObjectName(u'themeNameLayout') self.themeNameLabel = QtGui.QLabel(self.previewPage) - self.themeNameLabel.setGeometry(QtCore.QRect(20, 10, 82, 16)) + self.themeNameLabel.setMinimumSize(QtCore.QSize(103, 0)) self.themeNameLabel.setTextFormat(QtCore.Qt.PlainText) + self.themeNameLabel.setAlignment(QtCore.Qt.AlignRight | + QtCore.Qt.AlignTrailing | QtCore.Qt.AlignVCenter) self.themeNameLabel.setObjectName(u'themeNameLabel') - self.previewLabel = QtGui.QLabel(self.previewPage) - self.previewLabel.setGeometry(QtCore.QRect(250, 60, 48, 16)) - self.previewLabel.setAlignment(QtCore.Qt.AlignCenter) - self.previewLabel.setObjectName(u'previewLabel') + self.themeNameLayout.addWidget(self.themeNameLabel) self.themeNameEdit = QtGui.QLineEdit(self.previewPage) - self.themeNameEdit.setGeometry(QtCore.QRect(117, 4, 351, 23)) self.themeNameEdit.setObjectName(u'themeNameEdit') - self.groupBox = QtGui.QGroupBox(self.previewPage) - self.groupBox.setGeometry(QtCore.QRect(40, 80, 464, 214)) - self.groupBox.setTitle(u'') - self.groupBox.setObjectName(u'groupBox') - self.horizontalLayout = QtGui.QHBoxLayout(self.groupBox) - self.horizontalLayout.setObjectName(u'horizontalLayout') - spacerItem2 = QtGui.QSpacerItem(58, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum) - self.horizontalLayout.addItem(spacerItem2) - self.previewBoxLabel = QtGui.QLabel(self.groupBox) - sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Fixed, QtGui.QSizePolicy.Fixed) + self.themeNameLayout.addWidget(self.themeNameEdit) + self.previewLayout.addLayout(self.themeNameLayout) + self.previewPaneLayout = QtGui.QHBoxLayout() + self.previewPaneLayout.setSpacing(0) + self.previewPaneLayout.setObjectName(u'previewPaneLayout') + self.previewLeftSpacer = QtGui.QSpacerItem(58, 20, + QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum) + self.previewPaneLayout.addItem(self.previewLeftSpacer) + self.previewBoxLabel = QtGui.QLabel(self.previewPage) + sizePolicy = QtGui.QSizePolicy( + QtGui.QSizePolicy.Fixed, QtGui.QSizePolicy.Fixed) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) - sizePolicy.setHeightForWidth(self.previewBoxLabel.sizePolicy().hasHeightForWidth()) + sizePolicy.setHeightForWidth( + self.previewBoxLabel.sizePolicy().hasHeightForWidth()) self.previewBoxLabel.setSizePolicy(sizePolicy) - self.previewBoxLabel.setMinimumSize(QtCore.QSize(300, 200)) + self.previewBoxLabel.setMinimumSize(QtCore.QSize(100, 150)) self.previewBoxLabel.setFrameShape(QtGui.QFrame.WinPanel) self.previewBoxLabel.setFrameShadow(QtGui.QFrame.Sunken) self.previewBoxLabel.setLineWidth(1) self.previewBoxLabel.setText(u'') self.previewBoxLabel.setScaledContents(True) self.previewBoxLabel.setObjectName(u'previewBoxLabel') - self.horizontalLayout.addWidget(self.previewBoxLabel) - spacerItem3 = QtGui.QSpacerItem(78, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum) - self.horizontalLayout.addItem(spacerItem3) + self.previewPaneLayout.addWidget(self.previewBoxLabel) + self.previewRightSpacer = QtGui.QSpacerItem(78, 20, + QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum) + self.previewPaneLayout.addItem(self.previewRightSpacer) + self.previewLayout.addLayout(self.previewPaneLayout) ThemeWizard.addPage(self.previewPage) self.themeNameLabel.setBuddy(self.themeNameEdit) self.retranslateUi(ThemeWizard) - QtCore.QObject.connect(ThemeWizard, QtCore.SIGNAL(u'accepted()'), ThemeWizard.accept) + self.backgroundStackedWidget.setCurrentIndex(0) + QtCore.QObject.connect( + ThemeWizard, + QtCore.SIGNAL(u'accepted()'), + ThemeWizard.accept) + QtCore.QObject.connect( + self.backgroundTypeComboBox, + QtCore.SIGNAL(u'currentIndexChanged(int)'), + self.backgroundStackedWidget.setCurrentIndex) QtCore.QMetaObject.connectSlotsByName(ThemeWizard) def retranslateUi(self, ThemeWizard): - ThemeWizard.setWindowTitle(translate('OpenLP.ThemeForm', 'Theme Wizard')) - self.titleLabel.setText(translate('OpenLP.ThemeForm', '\n' -'\n' -'

Welcome to the Theme Wizard

')) - self.informationLabel.setText(translate('OpenLP.ThemeForm', 'This wizard will help you to maintain Themes . Click the next button below to start the process by setting up your background.')) - self.backgroundPage.setTitle(translate('OpenLP.ThemeForm', 'Set Up Background')) - self.backgroundPage.setSubTitle(translate('OpenLP.ThemeForm', 'Set up your theme\'s background according to the parameters below.')) - self.backgroundTypeLabel.setText(translate('OpenLP.ThemeForm', 'Background type:')) - self.backgroundTypeComboBox.setItemText(0, translate('OpenLP.ThemeForm', 'Solid Color')) - self.backgroundTypeComboBox.setItemText(1, translate('OpenLP.ThemeForm', 'Gradient')) - self.backgroundTypeComboBox.setItemText(2, translate('OpenLP.ThemeForm', 'Image')) - self.color1Label.setText(translate('OpenLP.ThemeForm', '')) - self.color2Label.setText(translate('OpenLP.ThemeForm', '')) - self.imageLabel.setText(translate('OpenLP.ThemeForm', 'Image:')) - self.gradientLabel.setText(translate('OpenLP.ThemeForm', 'Gradient:')) - self.gradientComboBox.setItemText(0, translate('OpenLP.ThemeForm', 'Horizontal')) - self.gradientComboBox.setItemText(1, translate('OpenLP.ThemeForm', 'Vertical')) - self.gradientComboBox.setItemText(2, translate('OpenLP.ThemeForm', 'Circular')) - self.gradientComboBox.setItemText(3, translate('OpenLP.ThemeForm', 'Top Left - Bottom Right')) - self.gradientComboBox.setItemText(4, translate('OpenLP.ThemeForm', 'Bottom Left - Top Right')) - self.mainAreaPage.setTitle(translate('OpenLP.ThemeForm', 'Main Area Font Details')) - self.mainAreaPage.setSubTitle(translate('OpenLP.ThemeForm', 'Define the font and display characteristics for the Display text')) - self.mainFontLabel.setText(translate('OpenLP.ThemeForm', 'Font:')) - self.mainColorLabel.setText(translate('OpenLP.ThemeForm', 'Color:')) - self.mainSizeLabel.setText(translate('OpenLP.ThemeForm', 'Size:')) - self.mainSizeSpinBox.setSuffix(translate('OpenLP.ThemeForm', 'pt')) - self.mainLineCountLabel.setText(translate('OpenLP.ThemeForm', '(%d lines per slide)')) - self.lineSpacingLabel.setText(translate('OpenLP.ThemeForm', 'Line Spacing:')) - self.lineSpacingSpinBox.setSuffix(translate('OpenLP.ThemeForm', 'pt')) - self.outlineCheckBox.setText(translate('OpenLP.ThemeForm', '&Outline:')) - self.outlineSizeLabel.setText(translate('OpenLP.ThemeForm', 'Size:')) - self.outlineSizeSpinBox.setSuffix(translate('OpenLP.ThemeForm', 'pt')) - self.shadowCheckBox.setText(translate('OpenLP.ThemeForm', '&Shadow:')) - self.shadowSizeLabel.setText(translate('OpenLP.ThemeForm', 'Size:')) - self.shadowSizeSpinBox.setSuffix(translate('OpenLP.ThemeForm', 'pt')) - self.boldCheckBox.setText(translate('OpenLP.ThemeForm', 'Bold Display')) - self.italicsCheckBox.setText(translate('OpenLP.ThemeForm', 'Italic Display')) - self.footerAreaPage.setTitle(translate('OpenLP.ThemeForm', 'Footer Area Font Details')) - self.footerAreaPage.setSubTitle(translate('OpenLP.ThemeForm', 'Define the font and display characteristics for the Footer text')) - self.footerFontLabel.setText(translate('OpenLP.ThemeForm', 'Font:')) - self.footerColorLabel.setText(translate('OpenLP.ThemeForm', 'Color:')) - self.footerSizeLabel.setText(translate('OpenLP.ThemeForm', 'Size:')) - self.footerSizeSpinBox.setSuffix(translate('OpenLP.ThemeForm', 'pt')) - self.alignmentPage.setTitle(translate('OpenLP.ThemeForm', 'Text Formatting Details')) - self.alignmentPage.setSubTitle(translate('OpenLP.ThemeForm', 'Allows additional display formatting information to be defined')) - self.horizontalLabel.setText(translate('OpenLP.ThemeForm', 'Horizontal Align:')) - self.horizontalComboBox.setItemText(0, translate('OpenLP.ThemeForm', 'Left')) - self.horizontalComboBox.setItemText(1, translate('OpenLP.ThemeForm', 'Right')) - self.horizontalComboBox.setItemText(2, translate('OpenLP.ThemeForm', 'Center')) - self.verticalLabel.setText(translate('OpenLP.ThemeForm', 'Vertcal Align:')) - self.verticalComboBox.setItemText(0, translate('OpenLP.ThemeForm', 'Top')) - self.verticalComboBox.setItemText(1, translate('OpenLP.ThemeForm', 'Middle')) - self.verticalComboBox.setItemText(2, translate('OpenLP.ThemeForm', 'Bottom')) - self.transitionsCheckBox.setText(translate('OpenLP.ThemeForm', 'Transitions')) - self.areaPositionPage.setTitle(translate('OpenLP.ThemeForm', 'Output Area Locations')) - self.areaPositionPage.setSubTitle(translate('OpenLP.ThemeForm', 'Allows you to change and move the Main and Footer areas.')) - self.mainPositionGroupBox.setTitle(translate('OpenLP.ThemeForm', '&Main Area')) - self.mainDefaultPositionCheckBox.setText(translate('OpenLP.ThemeForm', '&Use default location')) - self.nainXLabel.setText(translate('OpenLP.ThemeForm', 'X position:')) - self.mainXSpinBox.setSuffix(translate('OpenLP.ThemeForm', 'px')) - self.mainYSpinBox.setSuffix(translate('OpenLP.ThemeForm', 'px')) - self.mainYLabel.setText(translate('OpenLP.ThemeForm', 'Y position:')) - self.mainWidthSpinBox.setSuffix(translate('OpenLP.ThemeForm', 'px')) - self.mainWidthLabel.setText(translate('OpenLP.ThemeForm', 'Width:')) - self.mainHeightSpinBox.setSuffix(translate('OpenLP.ThemeForm', 'px')) - self.mainHeightLabel.setText(translate('OpenLP.ThemeForm', 'Height:')) - self.footerPositionGroupBox.setTitle(translate('OpenLP.ThemeForm', 'Footer Area')) - self.footerXLabel.setText(translate('OpenLP.ThemeForm', 'X position:')) - self.footerXSpinBox.setSuffix(translate('OpenLP.ThemeForm', 'px')) - self.footerYLabel.setText(translate('OpenLP.ThemeForm', 'Y position:')) - self.footerYSpinBox.setSuffix(translate('OpenLP.ThemeForm', 'px')) - self.footerWidthLabel.setText(translate('OpenLP.ThemeForm', 'Width:')) - self.footerWidthSpinBox.setSuffix(translate('OpenLP.ThemeForm', 'px')) - self.footerHeightLabel.setText(translate('OpenLP.ThemeForm', 'Height:')) - self.footerHeightSpinBox.setSuffix(translate('OpenLP.ThemeForm', 'px')) - self.footerDefaultPositionCheckBox.setText(translate('OpenLP.ThemeForm', 'Use default location')) - self.previewPage.setTitle(translate('OpenLP.ThemeForm', 'Save and Preview')) - self.previewPage.setSubTitle(translate('OpenLP.ThemeForm', 'View the theme and save it replacing the current one or change the name to create a new theme')) - self.themeNameLabel.setText(translate('OpenLP.ThemeForm', 'Theme name:')) - self.previewLabel.setText(translate('OpenLP.ThemeForm', 'Preview')) + ThemeWizard.setWindowTitle( + translate('OpenLP.ThemeWizard', 'Theme Wizard')) + self.titleLabel.setText( + u'%s' % \ + translate('OpenLP.ThemeWizard', 'Welcome to the Theme Wizard')) + self.informationLabel.setText( + translate('OpenLP.ThemeWizard', 'This wizard will help you to ' + 'create and edit your themes . Click the next button below to ' + 'start the process by setting up your background.')) + self.backgroundPage.setTitle( + translate('OpenLP.ThemeWizard', 'Set Up Background')) + self.backgroundPage.setSubTitle( + translate('OpenLP.ThemeWizard', 'Set up your theme\'s background ' + 'according to the parameters below.')) + self.backgroundTypeLabel.setText( + translate('OpenLP.ThemeWizard', 'Background type:')) + self.backgroundTypeComboBox.setItemText(0, + translate('OpenLP.ThemeWizard', 'Solid Color')) + self.backgroundTypeComboBox.setItemText(1, + translate('OpenLP.ThemeWizard', 'Gradient')) + self.backgroundTypeComboBox.setItemText(2, + translate('OpenLP.ThemeWizard', 'Image')) + self.colorLabel.setText(translate('OpenLP.ThemeWizard', 'Color:')) + self.gradientStartLabel.setText( + translate(u'OpenLP.ThemeWizard', 'Starting color:')) + self.gradientEndLabel.setText( + translate(u'OpenLP.ThemeWizard', 'Ending color:')) + self.gradientTypeLabel.setText( + translate('OpenLP.ThemeWizard', 'Gradient:')) + self.gradientComboBox.setItemText(0, + translate('OpenLP.ThemeWizard', 'Horizontal')) + self.gradientComboBox.setItemText(1, + translate('OpenLP.ThemeWizard', 'Vertical')) + self.gradientComboBox.setItemText(2, + translate('OpenLP.ThemeWizard', 'Circular')) + self.gradientComboBox.setItemText(3, + translate('OpenLP.ThemeWizard', 'Top Left - Bottom Right')) + self.gradientComboBox.setItemText(4, + translate('OpenLP.ThemeWizard', 'Bottom Left - Top Right')) + self.imageLabel.setText(translate('OpenLP.ThemeWizard', 'Image:')) + self.mainAreaPage.setTitle( + translate('OpenLP.ThemeWizard', 'Main Area Font Details')) + self.mainAreaPage.setSubTitle( + translate('OpenLP.ThemeWizard', 'Define the font and display ' + 'characteristics for the Display text')) + self.mainFontLabel.setText( + translate('OpenLP.ThemeWizard', 'Font:')) + self.mainColorLabel.setText(translate('OpenLP.ThemeWizard', 'Color:')) + self.mainSizeLabel.setText(translate('OpenLP.ThemeWizard', 'Size:')) + self.mainSizeSpinBox.setSuffix(translate('OpenLP.ThemeWizard', 'pt')) + self.mainLineCountLabel.setText( + translate('OpenLP.ThemeWizard', '(%d lines per slide)')) + self.lineSpacingLabel.setText( + translate('OpenLP.ThemeWizard', 'Line Spacing:')) + self.lineSpacingSpinBox.setSuffix(translate('OpenLP.ThemeWizard', 'pt')) + self.outlineCheckBox.setText( + translate('OpenLP.ThemeWizard', '&Outline:')) + self.outlineSizeLabel.setText(translate('OpenLP.ThemeWizard', 'Size:')) + self.outlineSizeSpinBox.setSuffix(translate('OpenLP.ThemeWizard', 'pt')) + self.shadowCheckBox.setText(translate('OpenLP.ThemeWizard', '&Shadow:')) + self.shadowSizeLabel.setText(translate('OpenLP.ThemeWizard', 'Size:')) + self.shadowSizeSpinBox.setSuffix(translate('OpenLP.ThemeWizard', 'pt')) + self.boldCheckBox.setText( + translate('OpenLP.ThemeWizard', 'Bold')) + self.italicsCheckBox.setText( + translate('OpenLP.ThemeWizard', 'Italic')) + self.footerAreaPage.setTitle( + translate('OpenLP.ThemeWizard', 'Footer Area Font Details')) + self.footerAreaPage.setSubTitle( + translate('OpenLP.ThemeWizard', 'Define the font and display ' + 'characteristics for the Footer text')) + self.footerFontLabel.setText(translate('OpenLP.ThemeWizard', 'Font:')) + self.footerColorLabel.setText(translate('OpenLP.ThemeWizard', 'Color:')) + self.footerSizeLabel.setText(translate('OpenLP.ThemeWizard', 'Size:')) + self.footerSizeSpinBox.setSuffix(translate('OpenLP.ThemeWizard', 'pt')) + self.alignmentPage.setTitle( + translate('OpenLP.ThemeWizard', 'Text Formatting Details')) + self.alignmentPage.setSubTitle( + translate('OpenLP.ThemeWizard', 'Allows additional display ' + 'formatting information to be defined')) + self.horizontalLabel.setText( + translate('OpenLP.ThemeWizard', 'Horizontal Align:')) + self.horizontalComboBox.setItemText(0, + translate('OpenLP.ThemeWizard', 'Left')) + self.horizontalComboBox.setItemText(1, + translate('OpenLP.ThemeWizard', 'Right')) + self.horizontalComboBox.setItemText(2, + translate('OpenLP.ThemeWizard', 'Center')) + self.verticalLabel.setText( + translate('OpenLP.ThemeWizard', 'Vertcal Align:')) + self.verticalComboBox.setItemText(0, + translate('OpenLP.ThemeWizard', 'Top')) + self.verticalComboBox.setItemText(1, + translate('OpenLP.ThemeWizard', 'Middle')) + self.verticalComboBox.setItemText(2, + translate('OpenLP.ThemeWizard', 'Bottom')) + self.transitionsCheckBox.setText( + translate('OpenLP.ThemeWizard', 'Transitions')) + self.areaPositionPage.setTitle( + translate('OpenLP.ThemeWizard', 'Output Area Locations')) + self.areaPositionPage.setSubTitle( + translate('OpenLP.ThemeWizard', 'Allows you to change and move the ' + 'main and footer areas.')) + self.mainPositionGroupBox.setTitle( + translate('OpenLP.ThemeWizard', '&Main Area')) + self.mainDefaultPositionCheckBox.setText( + translate('OpenLP.ThemeWizard', '&Use default location')) + self.nainXLabel.setText(translate('OpenLP.ThemeWizard', 'X position:')) + self.mainXSpinBox.setSuffix(translate('OpenLP.ThemeWizard', 'px')) + self.mainYSpinBox.setSuffix(translate('OpenLP.ThemeWizard', 'px')) + self.mainYLabel.setText(translate('OpenLP.ThemeWizard', 'Y position:')) + self.mainWidthSpinBox.setSuffix(translate('OpenLP.ThemeWizard', 'px')) + self.mainWidthLabel.setText(translate('OpenLP.ThemeWizard', 'Width:')) + self.mainHeightSpinBox.setSuffix(translate('OpenLP.ThemeWizard', 'px')) + self.mainHeightLabel.setText(translate('OpenLP.ThemeWizard', 'Height:')) + self.footerPositionGroupBox.setTitle( + translate('OpenLP.ThemeWizard', 'Footer Area')) + self.footerXLabel.setText(translate('OpenLP.ThemeWizard', 'X position:')) + self.footerXSpinBox.setSuffix(translate('OpenLP.ThemeWizard', 'px')) + self.footerYLabel.setText(translate('OpenLP.ThemeWizard', 'Y position:')) + self.footerYSpinBox.setSuffix(translate('OpenLP.ThemeWizard', 'px')) + self.footerWidthLabel.setText(translate('OpenLP.ThemeWizard', 'Width:')) + self.footerWidthSpinBox.setSuffix(translate('OpenLP.ThemeWizard', 'px')) + self.footerHeightLabel.setText( + translate('OpenLP.ThemeWizard', 'Height:')) + self.footerHeightSpinBox.setSuffix(translate('OpenLP.ThemeWizard', 'px')) + self.footerDefaultPositionCheckBox.setText( + translate('OpenLP.ThemeWizard', 'Use default location')) + self.previewPage.setTitle( + translate('OpenLP.ThemeWizard', 'Save and Preview')) + self.previewPage.setSubTitle( + translate('OpenLP.ThemeWizard', 'View the theme and save it ' + 'replacing the current one or change the name to create a ' + 'new theme')) + self.themeNameLabel.setText( + translate('OpenLP.ThemeWizard', 'Theme name:')) diff --git a/resources/forms/themewizard.ui b/resources/forms/themewizard.ui index 4ca7271d3..9e1f8f9e8 100644 --- a/resources/forms/themewizard.ui +++ b/resources/forms/themewizard.ui @@ -133,138 +133,254 @@ p, li { white-space: pre-wrap; } Set up your theme's background according to the parameters below. - - - QFormLayout::ExpandingFieldsGrow - - - Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter - - - 8 - - + + 8 20 - - - - Background type: - - - - - - - - Solid Color - - - - - Gradient - - - - - Image - - - - - - - - <Color1> - - - - - - - - - - - - - - <Color2> - - - - - - - - - - - - - - Image: - - - - - + + 8 - - - - + - - - - - :/general/general_open.png:/general/general_open.png + Background type: + + + + + Solid Color + + + + + Gradient + + + + + Image + + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + - - - - Gradient: + + + + 0 - - - - - - - Horizontal - - - - - Vertical - - - - - Circular - - - - - Top Left - Bottom Right - - - - - Bottom Left - Top Right - - + + + + 8 + + + 8 + + + 0 + + + + + + 103 + 0 + + + + Color: + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + + + + + + + + + + + 8 + + + 8 + + + 0 + + + + + + 103 + 0 + + + + Starting color: + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + + + + + + + + + + 103 + 0 + + + + Ending color: + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + + + + + + + + + + 103 + 0 + + + + Gradient: + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + + + Horizontal + + + + + Vertical + + + + + Circular + + + + + Top Left - Bottom Right + + + + + Bottom Left - Top Right + + + + + + + + + + 8 + + + 8 + + + 0 + + + + + + 103 + 0 + + + + Image: + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + + 8 + + + + + + + + + + + + :/general/general_open.png:/general/general_open.png + + + + + + + @@ -276,30 +392,30 @@ p, li { white-space: pre-wrap; } Define the font and display characteristics for the Display text - - - Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop - + 8 8 - - 20 - - - 20 - - + 20 + + + 103 + 0 + + Font: + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + @@ -313,11 +429,32 @@ p, li { white-space: pre-wrap; } - - - + + + 24 - + + + + + + + + + + + Bold + + + + + + + Italic + + + + @@ -458,20 +595,6 @@ p, li { white-space: pre-wrap; } - - - - Bold Display - - - - - - - Italic Display - - - @@ -491,23 +614,23 @@ p, li { white-space: pre-wrap; } 8 - - 50 - - - 20 - - - 20 - - + 20 + + + 103 + 0 + + Font: + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + @@ -569,14 +692,29 @@ p, li { white-space: pre-wrap; } Allows additional display formatting information to be defined + + 8 + + + 8 + 20 + + + 103 + 0 + + Horizontal Align: + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + @@ -643,7 +781,7 @@ p, li { white-space: pre-wrap; } Allows you to change and move the Main and Footer areas. - + 20 @@ -983,129 +1121,114 @@ p, li { white-space: pre-wrap; } View the theme and save it replacing the current one or change the name to create a new theme - - - - 20 - 10 - 82 - 16 - + + + 8 - - Theme name: + + 20 - - Qt::PlainText - - - themeNameEdit - - - - - - 250 - 60 - 48 - 16 - - - - Preview - - - Qt::AlignCenter - - - - - - 117 - 4 - 351 - 23 - - - - - - - 40 - 80 - 464 - 214 - - - - - - - - - - Qt::Horizontal - - - - 58 - 20 - - - - - - - - - 0 - 0 - - - - - 300 - 200 - - - - QFrame::WinPanel - - - QFrame::Sunken - - - 1 - - - - - - true - - - - - - - Qt::Horizontal - - - - 78 - 20 - - - - - - + + + + 8 + + + + + + 103 + 0 + + + + Theme name: + + + Qt::PlainText + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + themeNameEdit + + + + + + + + + + + + 0 + + + + + Qt::Horizontal + + + + 58 + 20 + + + + + + + + + 0 + 0 + + + + + 100 + 150 + + + + QFrame::WinPanel + + + QFrame::Sunken + + + 1 + + + + + + true + + + + + + + Qt::Horizontal + + + + 78 + 20 + + + + + + + - - @@ -1124,5 +1247,21 @@ p, li { white-space: pre-wrap; } + + backgroundTypeComboBox + currentIndexChanged(int) + backgroundStackedWidget + setCurrentIndex(int) + + + 178 + 78 + + + 249 + 199 + + + diff --git a/resources/images/openlp-2.qrc b/resources/images/openlp-2.qrc index 0ecb87bca..2a3282461 100644 --- a/resources/images/openlp-2.qrc +++ b/resources/images/openlp-2.qrc @@ -81,6 +81,7 @@ wizard_importsong.bmp wizard_importbible.bmp + wizard_createtheme.bmp service_collapse_all.png diff --git a/resources/images/wizard_createtheme.bmp b/resources/images/wizard_createtheme.bmp new file mode 100644 index 0000000000000000000000000000000000000000..092c61ad4580cd5dced0faebd127743f5d34bdff GIT binary patch literal 172254 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 z
+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%0A>Zs?&-6~)=!$J{**-WgjmG7Hn8@yu1UoGd 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 z¥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

y3Hxs?9$_Tt62H{?&|>wU-}W4 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 T6f@{Uf9|~*HVopc3#|VyplB~H literal 0 HcmV?d00001 From a2d68bd71fdbab8c7cae8a7732610f8827118649 Mon Sep 17 00:00:00 2001 From: Wesley Stout Date: Fri, 19 Nov 2010 20:32:58 -0600 Subject: [PATCH 19/63] updated how I handled the songs plugin --- documentation/manual/source/index.rst | 1 - .../source/pics/vistadisplaysettings.png | Bin .../manual/source/pics/vistapersonalize.png | Bin .../manual/source/pics/winsevendisplay.png | Bin .../manual/source/pics/winsevenresolution.png | Bin .../manual/source/pics/xpdisplaysettings.png | Bin 35473 -> 24927 bytes documentation/manual/source/songs.rst | 7 +++++-- 7 files changed, 5 insertions(+), 3 deletions(-) mode change 100755 => 100644 documentation/manual/source/pics/vistadisplaysettings.png mode change 100755 => 100644 documentation/manual/source/pics/vistapersonalize.png mode change 100755 => 100644 documentation/manual/source/pics/winsevendisplay.png mode change 100755 => 100644 documentation/manual/source/pics/winsevenresolution.png diff --git a/documentation/manual/source/index.rst b/documentation/manual/source/index.rst index 7a16b7932..5786af1ae 100644 --- a/documentation/manual/source/index.rst +++ b/documentation/manual/source/index.rst @@ -15,7 +15,6 @@ Contents: glossary dualmonitors mediamanager - songsplugin songs Indices and tables diff --git a/documentation/manual/source/pics/vistadisplaysettings.png b/documentation/manual/source/pics/vistadisplaysettings.png old mode 100755 new mode 100644 diff --git a/documentation/manual/source/pics/vistapersonalize.png b/documentation/manual/source/pics/vistapersonalize.png old mode 100755 new mode 100644 diff --git a/documentation/manual/source/pics/winsevendisplay.png b/documentation/manual/source/pics/winsevendisplay.png old mode 100755 new mode 100644 diff --git a/documentation/manual/source/pics/winsevenresolution.png b/documentation/manual/source/pics/winsevenresolution.png old mode 100755 new mode 100644 diff --git a/documentation/manual/source/pics/xpdisplaysettings.png b/documentation/manual/source/pics/xpdisplaysettings.png index eb7a8921c2a0278c8eb09f7ac946b49ad5718be1..e1ec66c6f5e9c9319c616a239a87fbe113554496 100644 GIT binary patch literal 24927 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 diff --git a/documentation/manual/source/songs.rst b/documentation/manual/source/songs.rst index e025b680c..b91a3b791 100644 --- a/documentation/manual/source/songs.rst +++ b/documentation/manual/source/songs.rst @@ -2,8 +2,8 @@ Songs ===== -The `Songs Plugin` is where you access your database of songs. From here you -can also edit songs, add new songs, and even convert songs from other formats. +Managing your songs in OpenLP is a relatively simple process. There are also +converters provided to get data from other formats into OpenLP. Song Importer ============= @@ -38,3 +38,6 @@ Windows Vista/7:: C:\ProgramData\openlp.org\Data\songs.olp +After clicking :guilabel"`Next` your conversion should be complete and your +OpenLP Version 1 songs should be imported and ready to use. + From 45905753ed7cdc3586ee5b5b8c90bfca16da3ae3 Mon Sep 17 00:00:00 2001 From: Tim Bentley Date: Tue, 23 Nov 2010 20:48:55 +0000 Subject: [PATCH 20/63] Start to add line count code to wizard --- openlp/core/lib/renderer.py | 14 +++++++++++-- openlp/core/lib/rendermanager.py | 12 +++++++++-- openlp/core/ui/themeform.py | 29 +++++++++++++++++++++++++-- openlp/core/ui/thememanager.py | 5 ++--- openlp/plugins/songs/lib/mediaitem.py | 1 - 5 files changed, 51 insertions(+), 10 deletions(-) diff --git a/openlp/core/lib/renderer.py b/openlp/core/lib/renderer.py index 9b8b78818..50e5c1bc2 100644 --- a/openlp/core/lib/renderer.py +++ b/openlp/core/lib/renderer.py @@ -32,7 +32,7 @@ import logging from PyQt4 import QtWebKit from openlp.core.lib import expand_tags, build_lyrics_format_css, \ - build_lyrics_outline_css + build_lyrics_outline_css, Receiver log = logging.getLogger(__name__) @@ -92,13 +92,17 @@ class Renderer(object): (build_lyrics_format_css(self._theme, self.page_width, self.page_height), build_lyrics_outline_css(self._theme)) - def format_slide(self, words, line_break): + def format_slide(self, words, line_break, forcePage=False): """ Figure out how much text can appear on a slide, using the current theme settings. ``words`` The words to be fitted on the slide. + + ``line_break`` + Add line endings after each line of text used for bibles. + """ log.debug(u'format_slide - Start') line_end = u'' @@ -114,13 +118,19 @@ class Renderer(object): formatted = [] html_text = u'' styled_text = u'' + line_count = 0 for line in text: + if line_count != -1: + line_count += 1 styled_line = expand_tags(line) + line_end styled_text += styled_line html = self.page_shell + styled_text + u'' self.web.setHtml(html) # Text too long so go to next page if self.web_frame.contentsSize().height() > self.page_height: + if forcePage and line_count > 0: + Receiver.send_message(u'theme_line_count', line_count) + line_count = -1 if html_text.endswith(u'
'): html_text = html_text[:len(html_text)-4] formatted.append(html_text) diff --git a/openlp/core/lib/rendermanager.py b/openlp/core/lib/rendermanager.py index bf561b4b3..148109d8c 100644 --- a/openlp/core/lib/rendermanager.py +++ b/openlp/core/lib/rendermanager.py @@ -69,6 +69,7 @@ class RenderManager(object): self.override_background = None self.themedata = None self.alertTab = None + self.force_page = False def update_display(self): """ @@ -187,7 +188,7 @@ class RenderManager(object): theme.font_footer_height - 1) self.renderer.set_text_rectangle(main_rect, footer_rect) - def generate_preview(self, themedata): + def generate_preview(self, themedata, forcePage=False): """ Generate a preview of a theme. @@ -195,6 +196,7 @@ class RenderManager(object): The theme to generated a preview for. """ log.debug(u'generate preview') + self.force_page = forcePage # set the default image size for previews self.calculate_default(self.screens.preview[u'size']) verse = u'The Lord said to {r}Noah{/r}: \n' \ @@ -204,6 +206,9 @@ class RenderManager(object): 'Get those children out of the muddy, muddy \n' \ '{r}C{/r}{b}h{/b}{bl}i{/bl}{y}l{/y}{g}d{/g}{pk}' \ 'r{/pk}{o}e{/o}{pp}n{/pp} of the Lord\n' + # make big page for theme edit dialog to get line count + if self.force_page: + verse = verse + verse + verse footer = [] footer.append(u'Arky Arky (Unknown)' ) footer.append(u'Public Domain') @@ -228,9 +233,12 @@ class RenderManager(object): ``words`` The words to go on the slides. + + ``line_break`` + Add line endings after each line of text used for bibles. """ log.debug(u'format slide') - return self.renderer.format_slide(words, line_break) + return self.renderer.format_slide(words, line_break, self.force_page) def calculate_default(self, screen): """ diff --git a/openlp/core/ui/themeform.py b/openlp/core/ui/themeform.py index 0ea5f057f..1729ae286 100644 --- a/openlp/core/ui/themeform.py +++ b/openlp/core/ui/themeform.py @@ -29,7 +29,8 @@ import os from PyQt4 import QtCore, QtGui -from openlp.core.lib import translate, BackgroundType, BackgroundGradientType +from openlp.core.lib import translate, BackgroundType, BackgroundGradientType, \ + Receiver from openlp.core.utils import get_images_filter from themewizard import Ui_ThemeWizard @@ -96,10 +97,13 @@ class ThemeForm(QtGui.QWizard, Ui_ThemeWizard): QtCore.QObject.connect(self, QtCore.SIGNAL(u'currentIdChanged(int)'), self.pageChanged) + QtCore.QObject.connect(Receiver.get_receiver(), + QtCore.SIGNAL(u'theme_line_count'), + self.updateLinesText) def pageChanged(self, pageId): """ - Detects Page changes and updates. + Detects Page changes and updates as approprate. """ if pageId == 6: self.updateTheme() @@ -184,6 +188,23 @@ class ThemeForm(QtGui.QWizard, Ui_ThemeWizard): self.backgroundPage.registerField( u'name', self.themeNameEdit) + def calculateLines(self): + """ + Calculate the number of lines on a page by rendering text + """ + print "calculateLines ",self.page + # Do not trigger on start up + if self.page != 0: + self.updateTheme() + frame = self.thememanager.generateImage(self.theme, True) + + def updateLinesText(self, lines): + """ + Updates the lines on a page on the wizard + """ + self.mainLineCountLabel.setText(unicode(translate('OpenLP.ThemeForm', \ + '(%d lines per slide)' % int(lines)))) + def onOutlineCheckCheckBoxChanged(self, state): """ Change state as Outline check box changed @@ -194,6 +215,7 @@ class ThemeForm(QtGui.QWizard, Ui_ThemeWizard): self.theme.font_main_outline = False self.outlineColorPushButton.setEnabled(self.theme.font_main_outline) self.outlineSizeSpinBox.setEnabled(self.theme.font_main_outline) + self.calculateLines() def onShadowCheckCheckBoxChanged(self, state): """ @@ -205,6 +227,7 @@ class ThemeForm(QtGui.QWizard, Ui_ThemeWizard): self.theme.font_main_shadow = False self.shadowColorPushButton.setEnabled(self.theme.font_main_shadow) self.shadowSizeSpinBox.setEnabled(self.theme.font_main_shadow) + self.calculateLines() def onMainDefaultPositionCheckBox(self, value): """ @@ -244,6 +267,8 @@ class ThemeForm(QtGui.QWizard, Ui_ThemeWizard): Set up the pages for Initial run through dialog """ log.debug(u'initializePage %s' % id) + print u'initializePage %s' % id + self.page = id if id == 1: self.setBackgroundTabValues() elif id == 2: diff --git a/openlp/core/ui/thememanager.py b/openlp/core/ui/thememanager.py index 0f0802bf2..3beb9bbae 100644 --- a/openlp/core/ui/thememanager.py +++ b/openlp/core/ui/thememanager.py @@ -729,7 +729,6 @@ class ThemeManager(QtGui.QWidget): def generateAndSaveImage(self, dir, name, theme): log.debug(u'generateAndSaveImage %s %s', dir, name) - #theme = self.createThemeFromXml(theme_xml, dir) theme_xml = theme.extract_xml() frame = self.generateImage(theme) samplepathname = os.path.join(self.path, name + u'.png') @@ -742,12 +741,12 @@ class ThemeManager(QtGui.QWidget): pixmap.save(thumb, u'png') log.debug(u'Theme image written to %s', samplepathname) - def generateImage(self, themedata): + def generateImage(self, themedata, forcePage=False): """ Call the RenderManager to build a Sample Image """ log.debug(u'generateImage \n%s ', themedata) - return self.parent.RenderManager.generate_preview(themedata) + return self.parent.RenderManager.generate_preview(themedata, forcePage) def getPreviewImage(self, theme): """ diff --git a/openlp/plugins/songs/lib/mediaitem.py b/openlp/plugins/songs/lib/mediaitem.py index 21de00fce..6b6a3bd41 100644 --- a/openlp/plugins/songs/lib/mediaitem.py +++ b/openlp/plugins/songs/lib/mediaitem.py @@ -428,4 +428,3 @@ class SongMediaItem(MediaManagerItem): if editId != 0: Receiver.send_message(u'service_item_update', u'%s:%s' %(editId, uuid)) - From 827840710fd8daf6dae076d0aa396cfd2639b545 Mon Sep 17 00:00:00 2001 From: Tim Bentley Date: Wed, 24 Nov 2010 17:38:59 +0000 Subject: [PATCH 21/63] Remove print --- openlp/core/ui/themeform.py | 1 - 1 file changed, 1 deletion(-) diff --git a/openlp/core/ui/themeform.py b/openlp/core/ui/themeform.py index 1729ae286..937524099 100644 --- a/openlp/core/ui/themeform.py +++ b/openlp/core/ui/themeform.py @@ -192,7 +192,6 @@ class ThemeForm(QtGui.QWizard, Ui_ThemeWizard): """ Calculate the number of lines on a page by rendering text """ - print "calculateLines ",self.page # Do not trigger on start up if self.page != 0: self.updateTheme() From e20e336c5e312c7dd330e6cebe18c40d27df56c1 Mon Sep 17 00:00:00 2001 From: Tim Bentley Date: Wed, 24 Nov 2010 17:40:28 +0000 Subject: [PATCH 22/63] Remove extra debugging --- openlp/plugins/songs/lib/mediaitem.py | 4 ---- 1 file changed, 4 deletions(-) diff --git a/openlp/plugins/songs/lib/mediaitem.py b/openlp/plugins/songs/lib/mediaitem.py index 6b6a3bd41..cb2d6a6e0 100644 --- a/openlp/plugins/songs/lib/mediaitem.py +++ b/openlp/plugins/songs/lib/mediaitem.py @@ -415,13 +415,9 @@ class SongMediaItem(MediaManagerItem): if search_results: for song in search_results: count = 0 - # temp debug to find why service items do not edit - log.debug(u'author list %s' % author_list) for author in song.authors: - log.debug(u'author %s' % author.display_name) if author.display_name in author_list: count += 1 - log.debug(u'found %s : %s' % (count, len(author_list))) if count == len(author_list): editId = song.id uuid = item._uuid From 9cc994e0e05c5a8b85f16b93151517fb0670e100 Mon Sep 17 00:00:00 2001 From: Tim Bentley Date: Wed, 24 Nov 2010 19:41:14 +0000 Subject: [PATCH 23/63] Fix up theme lines per slide text --- openlp/core/lib/rendermanager.py | 13 +++++++------ openlp/core/ui/themeform.py | 28 +++++++++++++++++++++++++++- 2 files changed, 34 insertions(+), 7 deletions(-) diff --git a/openlp/core/lib/rendermanager.py b/openlp/core/lib/rendermanager.py index 148109d8c..b54ea5b01 100644 --- a/openlp/core/lib/rendermanager.py +++ b/openlp/core/lib/rendermanager.py @@ -220,12 +220,13 @@ class RenderManager(object): serviceItem.render_manager = self serviceItem.raw_footer = footer serviceItem.render(True) - self.display.buildHtml(serviceItem) - raw_html = serviceItem.get_rendered_frame(0) - preview = self.display.text(raw_html) - # Reset the real screen size for subsequent render requests - self.calculate_default(self.screens.current[u'size']) - return preview + if not self.force_page: + self.display.buildHtml(serviceItem) + raw_html = serviceItem.get_rendered_frame(0) + preview = self.display.text(raw_html) + # Reset the real screen size for subsequent render requests + self.calculate_default(self.screens.current[u'size']) + return preview def format_slide(self, words, line_break): """ diff --git a/openlp/core/ui/themeform.py b/openlp/core/ui/themeform.py index 937524099..ee9e26e74 100644 --- a/openlp/core/ui/themeform.py +++ b/openlp/core/ui/themeform.py @@ -100,6 +100,33 @@ class ThemeForm(QtGui.QWizard, Ui_ThemeWizard): QtCore.QObject.connect(Receiver.get_receiver(), QtCore.SIGNAL(u'theme_line_count'), self.updateLinesText) + QtCore.QObject.connect(self.mainSizeSpinBox, + QtCore.SIGNAL(u'valueChanged(int)'), + self.calculateLines) + QtCore.QObject.connect(self.mainSizeSpinBox, + QtCore.SIGNAL(u'editingFinished()'), + self.calculateLines) + QtCore.QObject.connect(self.lineSpacingSpinBox, + QtCore.SIGNAL(u'valueChanged(int)'), + self.calculateLines) + QtCore.QObject.connect(self.lineSpacingSpinBox, + QtCore.SIGNAL(u'editingFinished()'), + self.calculateLines) + QtCore.QObject.connect(self.outlineSizeSpinBox, + QtCore.SIGNAL(u'valueChanged(int)'), + self.calculateLines) + QtCore.QObject.connect(self.outlineSizeSpinBox, + QtCore.SIGNAL(u'editingFinished()'), + self.calculateLines) + QtCore.QObject.connect(self.shadowSizeSpinBox, + QtCore.SIGNAL(u'valueChanged(int)'), + self.calculateLines) + QtCore.QObject.connect(self.shadowSizeSpinBox, + QtCore.SIGNAL(u'editingFinished()'), + self.calculateLines) + QtCore.QObject.connect(self.mainFontComboBox, + QtCore.SIGNAL(u'activated(int)'), + self.calculateLines) def pageChanged(self, pageId): """ @@ -266,7 +293,6 @@ class ThemeForm(QtGui.QWizard, Ui_ThemeWizard): Set up the pages for Initial run through dialog """ log.debug(u'initializePage %s' % id) - print u'initializePage %s' % id self.page = id if id == 1: self.setBackgroundTabValues() From a12498e011a78a1382f153bdc3c1698099df0798 Mon Sep 17 00:00:00 2001 From: Tim Bentley Date: Wed, 24 Nov 2010 21:50:51 +0000 Subject: [PATCH 24/63] Fix up comments from merge More cleanups discovered Fix Theme Copying as it was broken --- openlp/core/lib/renderer.py | 9 +++-- openlp/core/lib/rendermanager.py | 34 ++++++++++-------- openlp/core/ui/themeform.py | 10 +++--- openlp/core/ui/thememanager.py | 59 +++++++++++++++++--------------- 4 files changed, 61 insertions(+), 51 deletions(-) diff --git a/openlp/core/lib/renderer.py b/openlp/core/lib/renderer.py index 50e5c1bc2..68839f16d 100644 --- a/openlp/core/lib/renderer.py +++ b/openlp/core/lib/renderer.py @@ -32,7 +32,7 @@ import logging from PyQt4 import QtWebKit from openlp.core.lib import expand_tags, build_lyrics_format_css, \ - build_lyrics_outline_css, Receiver + build_lyrics_outline_css, Receiver log = logging.getLogger(__name__) @@ -92,7 +92,7 @@ class Renderer(object): (build_lyrics_format_css(self._theme, self.page_width, self.page_height), build_lyrics_outline_css(self._theme)) - def format_slide(self, words, line_break, forcePage=False): + def format_slide(self, words, line_break, force_page=False): """ Figure out how much text can appear on a slide, using the current theme settings. @@ -103,6 +103,9 @@ class Renderer(object): ``line_break`` Add line endings after each line of text used for bibles. + ``force_page`` + Flag to tell message lines in page. + """ log.debug(u'format_slide - Start') line_end = u'' @@ -128,7 +131,7 @@ class Renderer(object): self.web.setHtml(html) # Text too long so go to next page if self.web_frame.contentsSize().height() > self.page_height: - if forcePage and line_count > 0: + if force_page and line_count > 0: Receiver.send_message(u'theme_line_count', line_count) line_count = -1 if html_text.endswith(u'
'): diff --git a/openlp/core/lib/rendermanager.py b/openlp/core/lib/rendermanager.py index b54ea5b01..81cde12a0 100644 --- a/openlp/core/lib/rendermanager.py +++ b/openlp/core/lib/rendermanager.py @@ -67,7 +67,7 @@ class RenderManager(object): self.service_theme = u'' self.theme_level = u'' self.override_background = None - self.themedata = None + self.theme_data = None self.alertTab = None self.force_page = False @@ -81,7 +81,7 @@ class RenderManager(object): self.display.imageManager = self.image_manager self.display.setup() self.renderer.bg_frame = None - self.themedata = None + self.theme_data = None self.image_manager.update_display(self.width, self.height) def set_global_theme(self, global_theme, theme_level=ThemeLevel.Global): @@ -100,7 +100,7 @@ class RenderManager(object): self.theme_level = theme_level self.global_theme_data = \ self.theme_manager.getThemeData(self.global_theme) - self.themedata = None + self.theme_data = None def set_service_theme(self, service_theme): """ @@ -110,7 +110,7 @@ class RenderManager(object): The service-level theme to be set. """ self.service_theme = service_theme - self.themedata = None + self.theme_data = None def set_override_theme(self, theme, overrideLevels=False): """ @@ -147,19 +147,19 @@ class RenderManager(object): self.theme = self.service_theme else: self.theme = self.global_theme - if self.theme != self.renderer.theme_name or self.themedata is None \ + if self.theme != self.renderer.theme_name or self.theme_data is None \ or overrideLevels: log.debug(u'theme is now %s', self.theme) # Force the theme to be the one passed in. if overrideLevels: - self.themedata = theme + self.theme_data = theme else: - self.themedata = self.theme_manager.getThemeData(self.theme) + self.theme_data = self.theme_manager.getThemeData(self.theme) self.calculate_default(self.screens.current[u'size']) - self.renderer.set_theme(self.themedata) - self.build_text_rectangle(self.themedata) - self.image_manager.add_image(self.themedata.theme_name, - self.themedata.background_filename) + self.renderer.set_theme(self.theme_data) + self.build_text_rectangle(self.theme_data) + self.image_manager.add_image(self.theme_data.theme_name, + self.theme_data.background_filename) return self.renderer._rect, self.renderer._rect_footer def build_text_rectangle(self, theme): @@ -188,15 +188,19 @@ class RenderManager(object): theme.font_footer_height - 1) self.renderer.set_text_rectangle(main_rect, footer_rect) - def generate_preview(self, themedata, forcePage=False): + def generate_preview(self, theme_data, force_page=False): """ Generate a preview of a theme. - ``themedata`` + ``theme_data`` The theme to generated a preview for. + + ``force_page`` + Flag to tell message lines per page need to be generated. """ log.debug(u'generate preview') - self.force_page = forcePage + # save value for use in format_slide + self.force_page = force_page # set the default image size for previews self.calculate_default(self.screens.preview[u'size']) verse = u'The Lord said to {r}Noah{/r}: \n' \ @@ -215,7 +219,7 @@ class RenderManager(object): footer.append(u'CCLI 123456') # build a service item to generate preview serviceItem = ServiceItem() - serviceItem.theme = themedata + serviceItem.theme = theme_data serviceItem.add_from_text(u'', verse, footer) serviceItem.render_manager = self serviceItem.raw_footer = footer diff --git a/openlp/core/ui/themeform.py b/openlp/core/ui/themeform.py index ee9e26e74..cc52abafc 100644 --- a/openlp/core/ui/themeform.py +++ b/openlp/core/ui/themeform.py @@ -628,15 +628,15 @@ class ThemeForm(QtGui.QWizard, Ui_ThemeWizard): (QtGui.QMessageBox.Ok), QtGui.QMessageBox.Ok) return - save_from = None - save_to = None + saveFrom = None + saveTo = None if self.theme.background_type == \ BackgroundType.to_string(BackgroundType.Image): filename = \ os.path.split(unicode(self.theme.background_filename))[1] - save_to = os.path.join(self.path, self.theme.theme_name, filename) - save_from = self.theme.background_filename - if self.thememanager.saveTheme(self.theme, save_from, save_to): + saveTo = os.path.join(self.path, self.theme.theme_name, filename) + saveFrom = self.theme.background_filename + if self.thememanager.saveTheme(self.theme, saveFrom, saveTo): return QtGui.QDialog.accept(self) def _colorButton(self, field): diff --git a/openlp/core/ui/thememanager.py b/openlp/core/ui/thememanager.py index 3beb9bbae..65913a9f6 100644 --- a/openlp/core/ui/thememanager.py +++ b/openlp/core/ui/thememanager.py @@ -181,7 +181,7 @@ class ThemeManager(QtGui.QWidget): '%s (default)')) % newName self.themeListWidget.item(count).setText(name) - def changeGlobalFromScreen(self, index = -1): + def changeGlobalFromScreen(self, index=-1): """ Change the global theme when a theme is double clicked upon in the Theme Manager list @@ -252,17 +252,14 @@ class ThemeManager(QtGui.QWidget): Takes a theme and makes a new copy of it as well as saving it. """ log.debug(u'cloneThemeData') - themeData.new_document(newThemeName) - themeData.build_xml_from_attrs() - save_to = None - save_from = None + saveTo = None + saveFrom = None if themeData.background_type == u'image': - save_to = os.path.join(self.path, newThemeName, + saveTo = os.path.join(self.path, newThemeName, os.path.split(unicode(themeData.background_filename))[1]) - save_from = themeData.background_filename - theme = themeData.extract_xml() - pretty_theme = themeData.extract_formatted_xml() - self.saveTheme(newThemeName, theme, pretty_theme, save_from, save_to) + saveFrom = themeData.background_filename + themeData.theme_name = newThemeName + self.saveTheme(themeData, saveFrom, saveTo) def onEditTheme(self): """ @@ -462,17 +459,17 @@ class ThemeManager(QtGui.QWidget): """ return self.themelist - def getThemeData(self, themename): + def getThemeData(self, themeName): """ Returns a theme object from an XML file - ``themename`` + ``themeName`` Name of the theme to load from file """ - log.debug(u'getthemedata for theme %s', themename) - xml_file = os.path.join(self.path, unicode(themename), - unicode(themename) + u'.xml') - xml = get_text_file_string(xml_file) + log.debug(u'getthemedata for theme %s', themeName) + xmlFile = os.path.join(self.path, unicode(themeName), + unicode(themeName) + u'.xml') + xml = get_text_file_string(xmlFile) if not xml: return self.baseTheme() else: @@ -640,7 +637,7 @@ class ThemeManager(QtGui.QWidget): newtheme.display_vertical_align = vAlignCorrection return newtheme.extract_xml() - def saveTheme(self, theme, image_from, image_to): + def saveTheme(self, theme, imageFrom, imageTo): """ Called by thememaintenance Dialog to save the theme and to trigger the reload of the theme list @@ -673,8 +670,8 @@ class ThemeManager(QtGui.QWidget): self.deleteTheme(self.saveThemeName) if result == QtGui.QMessageBox.Yes: # Save the theme, overwriting the existing theme if necessary. - if image_to and self.oldBackgroundImage and \ - image_to != self.oldBackgroundImage: + if imageTo and self.oldBackgroundImage and \ + imageTo != self.oldBackgroundImage: try: os.remove(self.oldBackgroundImage) except OSError: @@ -688,12 +685,12 @@ class ThemeManager(QtGui.QWidget): finally: if outfile: outfile.close() - if image_from and image_from != image_to: + if imageFrom and imageFrom != imageTo: try: encoding = get_filesystem_encoding() shutil.copyfile( - unicode(image_from).encode(encoding), - unicode(image_to).encode(encoding)) + unicode(imageFrom).encode(encoding), + unicode(imageTo).encode(encoding)) except IOError: log.exception(u'Failed to save theme image') self.generateAndSaveImage(self.path, name, theme) @@ -741,12 +738,18 @@ class ThemeManager(QtGui.QWidget): pixmap.save(thumb, u'png') log.debug(u'Theme image written to %s', samplepathname) - def generateImage(self, themedata, forcePage=False): + def generateImage(self, themeData, forcePage=False): """ Call the RenderManager to build a Sample Image + + ``themeData`` + The theme to generated a preview for. + + ``forcePage`` + Flag to tell message lines per page need to be generated. """ - log.debug(u'generateImage \n%s ', themedata) - return self.parent.RenderManager.generate_preview(themedata, forcePage) + log.debug(u'generateImage \n%s ', themeData) + return self.parent.RenderManager.generate_preview(themeData, forcePage) def getPreviewImage(self, theme): """ @@ -767,14 +770,14 @@ class ThemeManager(QtGui.QWidget): newtheme = ThemeXML() return newtheme - def createThemeFromXml(self, theme_xml, path): + def createThemeFromXml(self, themeXml, path): """ Return a theme object using information parsed from XML - ``theme_xml`` + ``themeXml`` The XML data to load into the theme """ theme = ThemeXML() - theme.parse(theme_xml) + theme.parse(themeXml) theme.extend_image_filename(path) return theme From b686068982ee7a80dbd1044e316b67396cdccdc8 Mon Sep 17 00:00:00 2001 From: Tim Bentley Date: Thu, 25 Nov 2010 18:00:58 +0000 Subject: [PATCH 25/63] Fix documentation spelling --- documentation/manual/source/glossary.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/documentation/manual/source/glossary.rst b/documentation/manual/source/glossary.rst index 41a8f4ac6..6f4ebcdd6 100644 --- a/documentation/manual/source/glossary.rst +++ b/documentation/manual/source/glossary.rst @@ -48,7 +48,7 @@ Service Manger -------------- The service manager contains the media items in your service file. This is the -area from wich your media items go live, and you can also save, open, and edit +area from which your media items go live, and you can also save, open, and edit services files. .. image:: pics/servicemanager.png From 4c3e32c4d7bc2bd91acf14db81829ba9e4cbc725 Mon Sep 17 00:00:00 2001 From: Tim Bentley Date: Fri, 26 Nov 2010 07:36:20 +0000 Subject: [PATCH 26/63] Song Usage documentation --- documentation/manual/source/index.rst | 1 + .../manual/source/pics/songusage.png | Bin 0 -> 27549 bytes .../manual/source/pics/songusagedelete.png | Bin 0 -> 27818 bytes .../manual/source/pics/songusagereport.png | Bin 0 -> 56226 bytes documentation/manual/source/songusage.rst | 35 ++++++++++++++++++ 5 files changed, 36 insertions(+) create mode 100644 documentation/manual/source/pics/songusage.png create mode 100644 documentation/manual/source/pics/songusagedelete.png create mode 100644 documentation/manual/source/pics/songusagereport.png create mode 100644 documentation/manual/source/songusage.rst diff --git a/documentation/manual/source/index.rst b/documentation/manual/source/index.rst index ac29c4360..5228256cf 100644 --- a/documentation/manual/source/index.rst +++ b/documentation/manual/source/index.rst @@ -14,6 +14,7 @@ Contents: introduction glossary dualmonitors + songusage Indices and tables ================== diff --git a/documentation/manual/source/pics/songusage.png b/documentation/manual/source/pics/songusage.png new file mode 100644 index 0000000000000000000000000000000000000000..10f29f2a931d6fab0e3334aa538fbfbaed45c222 GIT binary patch literal 27549 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 AE&u=k literal 0 HcmV?d00001 diff --git a/documentation/manual/source/pics/songusagereport.png b/documentation/manual/source/pics/songusagereport.png new file mode 100644 index 0000000000000000000000000000000000000000..c0d9df3dde4edc8525bba19cb25168abef153c1d GIT binary patch literal 56226 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%0DLyWkk*7?m_T$|V# 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 b&&!1jNoTXOXJkOG5>HcAPo-MPF6RFL%{|*K literal 0 HcmV?d00001 diff --git a/documentation/manual/source/songusage.rst b/documentation/manual/source/songusage.rst new file mode 100644 index 000000000..d77cc3632 --- /dev/null +++ b/documentation/manual/source/songusage.rst @@ -0,0 +1,35 @@ +========== +Song Usage +========== + +The Songusage plugin records the usage of Songs when they are used in a **Live** situation. +If the plugin is active all songs sent to the Live Service Manager are recorded by this plugin. +Once the plugin has been activated by the plugin menu it can be turned on and off by use of +the``F4`` key or the SongUsage menus. + +The image below shows the menu items and how to access them. + +.. image:: pics/songusage.png + + +Generating reports +------------------ +Reports can be generated between any two dates. The system defaults to 1st September previous year to 31st +August current year. The data is written to a file in a selectable directory. +The file name is **usage_detail_fromdate_todate.txt**. + +.. image:: pics/songusagereport.png + +The details extracted are: + - Date item used + - Time item used + - Song Title + - Song Copyright + - Song CCLI. + +Removing data +------------- +To remove stored data use the option below which can be access from the Tools Toolbar. Select the +date you wish to remove data up to and press``Ok`` + +.. image:: pics/songusagedelete.png \ No newline at end of file From f153c27d321e478fa5397e5a50ba2ddee8a45958 Mon Sep 17 00:00:00 2001 From: Tim Bentley Date: Fri, 26 Nov 2010 09:00:14 +0000 Subject: [PATCH 27/63] Fix preview of live when returning from blank display --- openlp/core/ui/maindisplay.py | 2 +- openlp/core/ui/slidecontroller.py | 9 +++++---- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/openlp/core/ui/maindisplay.py b/openlp/core/ui/maindisplay.py index 5a53a84fe..9d6c04075 100644 --- a/openlp/core/ui/maindisplay.py +++ b/openlp/core/ui/maindisplay.py @@ -459,9 +459,9 @@ class MainDisplay(DisplayWidget): if self.phononActive: self.webView.setVisible(False) self.videoPlay() + self.hide_mode = None # Trigger actions when display is active again Receiver.send_message(u'maindisplay_active') - self.hide_mode = None class AudioPlayer(QtCore.QObject): """ diff --git a/openlp/core/ui/slidecontroller.py b/openlp/core/ui/slidecontroller.py index 0afb0efaa..618665a7c 100644 --- a/openlp/core/ui/slidecontroller.py +++ b/openlp/core/ui/slidecontroller.py @@ -391,6 +391,8 @@ class SlideController(QtGui.QWidget): if self.isLive: QtCore.QObject.connect(self.volumeSlider, QtCore.SIGNAL(u'sliderReleased()'), self.mediaVolume) + QtCore.QObject.connect(Receiver.get_receiver(), + QtCore.SIGNAL(u'maindisplay_active'), self.updatePreview) def screenSizeChanged(self): """ @@ -823,16 +825,15 @@ class SlideController(QtGui.QWidget): row) def updatePreview(self): + log.debug(u'updatePreview %s ' %self.screens.current[u'primary']) if not self.screens.current[u'primary']: # Grab now, but try again in a couple of seconds if slide change # is slow QtCore.QTimer.singleShot(0.5, self.grabMainDisplay) QtCore.QTimer.singleShot(2.5, self.grabMainDisplay) else: - label = self.PreviewListWidget.cellWidget( - self.PreviewListWidget.currentRow(), 1) - if label: - self.SlidePreview.setPixmap(label.pixmap()) + self.SlidePreview.setPixmap( + QtGui.QPixmap.fromImage(self.display.preview())) def grabMainDisplay(self): winid = QtGui.QApplication.desktop().winId() From 2752279d4311f4ad5256804027724ebc25625dbd Mon Sep 17 00:00:00 2001 From: Tim Bentley Date: Fri, 26 Nov 2010 09:49:06 +0000 Subject: [PATCH 28/63] Remove need to restart for double click event changes --- openlp/core/lib/mediamanageritem.py | 22 +++++++++++++--------- openlp/core/ui/advancedtab.py | 2 +- openlp/core/ui/slidecontroller.py | 14 ++++++++++---- 3 files changed, 24 insertions(+), 14 deletions(-) diff --git a/openlp/core/lib/mediamanageritem.py b/openlp/core/lib/mediamanageritem.py index 3eae97238..749543fd9 100644 --- a/openlp/core/lib/mediamanageritem.py +++ b/openlp/core/lib/mediamanageritem.py @@ -320,15 +320,9 @@ class MediaManagerItem(QtGui.QWidget): translate('OpenLP.MediaManagerItem', '&Add to selected Service Item'), self.onAddEditClick)) - if QtCore.QSettings().value(u'advanced/double click live', - QtCore.QVariant(False)).toBool(): - QtCore.QObject.connect(self.listView, - QtCore.SIGNAL(u'doubleClicked(QModelIndex)'), - self.onLiveClick) - else: - QtCore.QObject.connect(self.listView, - QtCore.SIGNAL(u'doubleClicked(QModelIndex)'), - self.onPreviewClick) + QtCore.QObject.connect(self.listView, + QtCore.SIGNAL(u'doubleClicked(QModelIndex)'), + self.onClickPressed) def initialise(self): """ @@ -430,6 +424,16 @@ class MediaManagerItem(QtGui.QWidget): raise NotImplementedError(u'MediaManagerItem.generateSlideData needs ' u'to be defined by the plugin') + def onClickPressed(self): + """ + Allows the list click action to be determined dynamically + """ + if QtCore.QSettings().value(u'advanced/double click live', + QtCore.QVariant(False)).toBool(): + self.onLiveClick() + else: + self.onPreviewClick() + def onPreviewClick(self): """ Preview an item by building a service item then adding that service diff --git a/openlp/core/ui/advancedtab.py b/openlp/core/ui/advancedtab.py index dc126d863..a390780ca 100644 --- a/openlp/core/ui/advancedtab.py +++ b/openlp/core/ui/advancedtab.py @@ -146,7 +146,7 @@ class AdvancedTab(SettingsTab): self.mediaPluginCheckBox.setText(translate('OpenLP.AdvancedTab', 'Remember active media manager tab on startup')) self.doubleClickLiveCheckBox.setText(translate('OpenLP.AdvancedTab', - 'Double-click to send items straight to live (requires restart)')) + 'Double-click to send items straight to live')) self.expandServiceItemCheckBox.setText(translate('OpenLP.AdvancedTab', 'Expand new service items on creation')) # self.sharedDirGroupBox.setTitle( diff --git a/openlp/core/ui/slidecontroller.py b/openlp/core/ui/slidecontroller.py index 618665a7c..48810990a 100644 --- a/openlp/core/ui/slidecontroller.py +++ b/openlp/core/ui/slidecontroller.py @@ -331,10 +331,8 @@ class SlideController(QtGui.QWidget): QtCore.QObject.connect(self.PreviewListWidget, QtCore.SIGNAL(u'clicked(QModelIndex)'), self.onSlideSelected) if not self.isLive: - if QtCore.QSettings().value(u'advanced/double click live', - QtCore.QVariant(False)).toBool(): - QtCore.QObject.connect(self.PreviewListWidget, - QtCore.SIGNAL(u'doubleClicked(QModelIndex)'), self.onGoLive) + QtCore.QObject.connect(self.PreviewListWidget, + QtCore.SIGNAL(u'doubleClicked(QModelIndex)'), self.onGoLiveClick) if isLive: QtCore.QObject.connect(Receiver.get_receiver(), QtCore.SIGNAL(u'slidecontroller_live_spin_delay'), @@ -945,6 +943,14 @@ class SlideController(QtGui.QWidget): Receiver.send_message(u'%s_edit' % self.serviceItem.name.lower(), u'P:%s' % self.serviceItem.edit_id) + def onGoLiveClick(self): + """ + triggered by clicking the Preview slide items + """ + if QtCore.QSettings().value(u'advanced/double click live', + QtCore.QVariant(False)).toBool(): + self.onGoLive() + def onGoLive(self): """ If preview copy slide item to live From 66f230169d535381aea46de79a8ca717eb8365c6 Mon Sep 17 00:00:00 2001 From: Andreas Preikschat Date: Fri, 26 Nov 2010 15:23:48 +0100 Subject: [PATCH 29/63] SongBeamer import clean ups and tweaks --- openlp/plugins/songs/forms/songimportform.py | 3 +- openlp/plugins/songs/lib/songbeamerimport.py | 169 +++++++++++-------- openlp/plugins/songs/lib/songimport.py | 3 +- 3 files changed, 98 insertions(+), 77 deletions(-) diff --git a/openlp/plugins/songs/forms/songimportform.py b/openlp/plugins/songs/forms/songimportform.py index 014c66a51..67ef4d8c1 100644 --- a/openlp/plugins/songs/forms/songimportform.py +++ b/openlp/plugins/songs/forms/songimportform.py @@ -507,8 +507,7 @@ class SongImportForm(QtGui.QWizard, Ui_SongImportWizard): filenames=self.getListOfFiles( self.songBeamerFileListWidget) ) - success = importer.do_import() - if success: + if importer.do_import(): # reload songs self.importProgressLabel.setText( translate('SongsPlugin.SongImportForm', 'Finished import.')) diff --git a/openlp/plugins/songs/lib/songbeamerimport.py b/openlp/plugins/songs/lib/songbeamerimport.py index 8b07d2b32..3f76772ab 100644 --- a/openlp/plugins/songs/lib/songbeamerimport.py +++ b/openlp/plugins/songs/lib/songbeamerimport.py @@ -57,15 +57,17 @@ class SongBeamerTypes(object): u'Unknown': u'O' } + class SongBeamerImport(SongImport): """ - Import Song Beamer files(s) - Song Beamer file format is text based - in the beginning are one or more control tags written + Import Song Beamer files(s) + Song Beamer file format is text based + in the beginning are one or more control tags written """ def __init__(self, master_manager, **kwargs): """ Initialise the import. + ``master_manager`` The song manager for the running OpenLP installation. """ @@ -88,6 +90,7 @@ class SongBeamerImport(SongImport): # TODO: check that it is a valid SongBeamer file self.current_verse = u'' self.current_verse_type = u'V' + read_verses = False self.file_name = os.path.split(file)[1] self.import_wizard.incrementProgressBar( "Importing %s" % (self.file_name), 0) @@ -100,27 +103,26 @@ class SongBeamerImport(SongImport): else: return False for line in self.songData: - line = line.strip() - if line.startswith('#'): - log.debug(u'find tag: %s' % line) - if not self.parse_tags(line): - return False - elif line.startswith('---'): - log.debug(u'find ---') - if len(self.current_verse) > 0: - self.add_verse(self.current_verse, + # Just make sure that the line is of the type 'Unicode'. + line = unicode(line).strip() + if line.startswith(u'#') and not read_verses: + self.parse_tags(line) + elif line.startswith(u'---'): + if self.current_verse: + self.add_verse(self.current_verse, self.current_verse_type) self.current_verse = u'' self.current_verse_type = u'V' - self.read_verse = True - self.verse_start = True - elif self.read_verse: - if self.verse_start: - self.check_verse_marks(line) - self.verse_start = False + read_verses = True + verse_start = True + elif read_verses: + if verse_start: + verse_start = False + if not self.check_verse_marks(line): + self.current_verse = u'%s\n' % line else: self.current_verse += u'%s\n' % line - if len(self.current_verse) > 0: + if self.current_verse: self.add_verse(self.current_verse, self.current_verse_type) self.finish() self.import_wizard.incrementProgressBar( @@ -128,106 +130,125 @@ class SongBeamerImport(SongImport): return True def parse_tags(self, line): - tag_val = line.split('=') - if len(tag_val[0]) == 0 or len(tag_val[1]) == 0: - return True - if tag_val[0] == '#(c)': + """ + Parses a meta data line. + + ``line`` + The line in the file. It should consist of a tag and a value + for this tag. (unicode) + + u'#Title=Nearer my God to Thee' + """ + tag_val = line.split(u'=', 1) + if len(tag_val) == 1: + return + if not tag_val[0] or not tag_val[1]: + return + if tag_val[0] == u'#(c)': self.add_copyright(tag_val[1]) - elif tag_val[0] == '#AddCopyrightInfo': + elif tag_val[0] == u'#AddCopyrightInfo': pass - elif tag_val[0] == '#Author': - #TODO split Authors - self.add_author(tag_val[1]) - elif tag_val[0] == '#BackgroundImage': + elif tag_val[0] == u'#Author': + self.parse_author(tag_val[1]) + elif tag_val[0] == u'#BackgroundImage': pass - elif tag_val[0] == '#Bible': + elif tag_val[0] == u'#Bible': pass - elif tag_val[0] == '#Categories': + elif tag_val[0] == u'#Categories': self.topics = line.split(',') - elif tag_val[0] == '#CCLI': + elif tag_val[0] == u'#CCLI': self.ccli_number = tag_val[1] - elif tag_val[0] == '#Chords': + elif tag_val[0] == u'#Chords': pass - elif tag_val[0] == '#ChurchSongID': + elif tag_val[0] == u'#ChurchSongID': pass - elif tag_val[0] == '#ColorChords': + elif tag_val[0] == u'#ColorChords': pass - elif tag_val[0] == '#Comments': + elif tag_val[0] == u'#Comments': self.comments = tag_val[1] - elif tag_val[0] == '#Editor': + elif tag_val[0] == u'#Editor': pass - elif tag_val[0] == '#Font': + elif tag_val[0] == u'#Font': pass - elif tag_val[0] == '#FontLang2': + elif tag_val[0] == u'#FontLang2': pass - elif tag_val[0] == '#FontSize': + elif tag_val[0] == u'#FontSize': pass - elif tag_val[0] == '#Format': + elif tag_val[0] == u'#Format': pass - elif tag_val[0] == '#Format_PreLine': + elif tag_val[0] == u'#Format_PreLine': pass - elif tag_val[0] == '#Format_PrePage': + elif tag_val[0] == u'#Format_PrePage': pass - elif tag_val[0] == '#ID': + elif tag_val[0] == u'#ID': pass - elif tag_val[0] == '#Key': + elif tag_val[0] == u'#Key': pass - elif tag_val[0] == '#Keywords': + elif tag_val[0] == u'#Keywords': pass - elif tag_val[0] == '#LangCount': + elif tag_val[0] == u'#LangCount': pass - elif tag_val[0] == '#Melody': - #TODO split Authors - self.add_author(tag_val[1]) - elif tag_val[0] == '#NatCopyright': + elif tag_val[0] == u'#Melody': + self.parse_author(tag_val[1]) + elif tag_val[0] == u'#NatCopyright': pass - elif tag_val[0] == '#OTitle': + elif tag_val[0] == u'#OTitle': pass - elif tag_val[0] == '#OutlineColor': + elif tag_val[0] == u'#OutlineColor': pass - elif tag_val[0] == '#OutlinedFont': + elif tag_val[0] == u'#OutlinedFont': pass - elif tag_val[0] == '#QuickFind': + elif tag_val[0] == u'#QuickFind': pass - elif tag_val[0] == '#Rights': + elif tag_val[0] == u'#Rights': song_book_pub = tag_val[1] - elif tag_val[0] == '#Songbook': + elif tag_val[0] == u'#Songbook': book_num = tag_val[1].split(' / ') self.song_book_name = book_num[0] if len(book_num) == book_num[1]: self.song_number = u'' - elif tag_val[0] == '#Speed': + elif tag_val[0] == u'#Speed': pass - elif tag_val[0] == '#TextAlign': + elif tag_val[0] == u'#TextAlign': pass - elif tag_val[0] == '#Title': + elif tag_val[0] == u'#Title': self.title = u'%s' % tag_val[1] - elif tag_val[0] == '#TitleAlign': + elif tag_val[0] == u'#TitleAlign': pass - elif tag_val[0] == '#TitleFontSize': + elif tag_val[0] == u'#TitleFontSize': pass - elif tag_val[0] == '#TitleLang2': + elif tag_val[0] == u'#TitleLang2': pass - elif tag_val[0] == '#TitleLang3': + elif tag_val[0] == u'#TitleLang3': pass - elif tag_val[0] == '#TitleLang4': + elif tag_val[0] == u'#TitleLang4': pass - elif tag_val[0] == '#Translation': + elif tag_val[0] == u'#Translation': pass - elif tag_val[0] == '#Transpose': + elif tag_val[0] == u'#Transpose': pass - elif tag_val[0] == '#TransposeAccidental': + elif tag_val[0] == u'#TransposeAccidental': pass - elif tag_val[0] == '#Version': + elif tag_val[0] == u'#Version': pass - else: - pass - return True def check_verse_marks(self, line): - marks = line.split(' ') + """ + Check and add the verse's MarkType. Returns ``True`` if the given mark + is correct otherwise ``False``. + + ``line`` + The line to check for marks (unicode). + """ + marks = line.split(u' ') if len(marks) <= 2 and marks[0] in SongBeamerTypes.MarkTypes: self.current_verse_type = SongBeamerTypes.MarkTypes[marks[0]] if len(marks) == 2: - #TODO: may check, because of only digits are allowed - self.current_verse_type += marks[1] + # If we have a digit, we append it to current_verse_type. + try: + self.current_verse_type += u'%s' % int(marks[1]) + except ValueError: + pass + return True + else: + return False diff --git a/openlp/plugins/songs/lib/songimport.py b/openlp/plugins/songs/lib/songimport.py index 2c1de83a2..ea36d55b5 100644 --- a/openlp/plugins/songs/lib/songimport.py +++ b/openlp/plugins/songs/lib/songimport.py @@ -254,7 +254,8 @@ class SongImport(QtCore.QObject): All fields have been set to this song. Write it away """ if not self.authors: - self.authors.append(u'Author unknown') + self.authors.append(unicode(translate('SongsPlugin.SongImport', + 'Author unknown'))) self.commit_song() def commit_song(self): From 0dc9d433b7537e3d4ea13f071063d34506a13400 Mon Sep 17 00:00:00 2001 From: Andreas Preikschat Date: Fri, 26 Nov 2010 17:06:24 +0100 Subject: [PATCH 30/63] SongBeamer import converts tags, that they'll work with OpenLP --- openlp/plugins/songs/lib/songbeamerimport.py | 30 ++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/openlp/plugins/songs/lib/songbeamerimport.py b/openlp/plugins/songs/lib/songbeamerimport.py index 3f76772ab..2d601fbb0 100644 --- a/openlp/plugins/songs/lib/songbeamerimport.py +++ b/openlp/plugins/songs/lib/songbeamerimport.py @@ -109,6 +109,7 @@ class SongBeamerImport(SongImport): self.parse_tags(line) elif line.startswith(u'---'): if self.current_verse: + self.replace_html_tags() self.add_verse(self.current_verse, self.current_verse_type) self.current_verse = u'' @@ -123,12 +124,41 @@ class SongBeamerImport(SongImport): else: self.current_verse += u'%s\n' % line if self.current_verse: + self.replace_html_tags() self.add_verse(self.current_verse, self.current_verse_type) self.finish() self.import_wizard.incrementProgressBar( "Importing %s" % (self.file_name)) return True + def replace_html_tags(self): + """ + This can be called to replace SongBeamer's specific (html) tags with + OpenLP's specific (html) tags. + """ + tag_pairs = [ + (u'', u'{st}'), + (u'', u'{/st}'), + (u'', u'{it}'), + (u'', u'{/it}'), + (u'', u''), + (u'', u''), + (u'
', u'{st}'), + (u'
', u'{st}'), + (u'', u'{st}'), + (u'

', u'{/p}'), + (u'

', u'{/p}'), + (u'', u'{su}'), + (u'', u'{/su}'), + (u'', u'{sb}'), + (u'', u'{/sb}'), + (u'', u''), + (u'', u'') + ] + for pair in tag_pairs: + self.current_verse.replace(pair[0], pair[1]) + # TODO: check for unsupported tags (see wiki) and remove them as well. + def parse_tags(self, line): """ Parses a meta data line. From ae036056b1fb1de9b5960b70c05757d682342c72 Mon Sep 17 00:00:00 2001 From: Andreas Preikschat Date: Fri, 26 Nov 2010 17:25:56 +0100 Subject: [PATCH 31/63] added the tag {u} --- openlp/core/lib/__init__.py | 87 ++++++++++---------- openlp/plugins/songs/lib/songbeamerimport.py | 4 +- 2 files changed, 47 insertions(+), 44 deletions(-) diff --git a/openlp/core/lib/__init__.py b/openlp/core/lib/__init__.py index b6946a628..eb7213c16 100644 --- a/openlp/core/lib/__init__.py +++ b/openlp/core/lib/__init__.py @@ -38,48 +38,51 @@ log = logging.getLogger(__name__) # TODO make external and configurable in alpha 4 via a settings dialog html_expands = [] -html_expands.append({u'desc':u'Red', u'start tag':u'{r}', - u'start html':u'', - u'end tag':u'{/r}', u'end html':u'', u'protected':False}) -html_expands.append({u'desc':u'Black', u'start tag':u'{b}', - u'start html':u'', - u'end tag':u'{/b}', u'end html':u'', u'protected':False}) -html_expands.append({u'desc':u'Blue', u'start tag':u'{bl}', - u'start html':u'', - u'end tag':u'{/bl}', u'end html':u'', u'protected':False}) -html_expands.append({u'desc':u'Yellow', u'start tag':u'{y}', - u'start html':u'', - u'end tag':u'{/y}', u'end html':u'', u'protected':False}) -html_expands.append({u'desc':u'Green', u'start tag':u'{g}', - u'start html':u'', - u'end tag':u'{/g}', u'end html':u'', u'protected':False}) -html_expands.append({u'desc':u'Pink', u'start tag':u'{pk}', - u'start html':u'', - u'end tag':u'{/pk}', u'end html':u'', u'protected':False}) -html_expands.append({u'desc':u'Orange', u'start tag':u'{o}', - u'start html':u'', - u'end tag':u'{/o}', u'end html':u'', u'protected':False}) -html_expands.append({u'desc':u'Purple', u'start tag':u'{pp}', - u'start html':u'', - u'end tag':u'{/pp}', u'end html':u'', u'protected':False}) -html_expands.append({u'desc':u'White', u'start tag':u'{w}', - u'start html':u'', - u'end tag':u'{/w}', u'end html':u'', u'protected':False}) -html_expands.append({u'desc':u'Superscript', u'start tag':u'{su}', - u'start html':u'', u'end tag':u'{/su}', u'end html':u'', - u'protected':True}) -html_expands.append({u'desc':u'Subscript', u'start tag':u'{sb}', - u'start html':u'', u'end tag':u'{/sb}', u'end html':u'', - u'protected':True}) -html_expands.append({u'desc':u'Paragraph', u'start tag':u'{p}', - u'start html':u'

', u'end tag':u'{/p}', u'end html':u'

', - u'protected':True}) -html_expands.append({u'desc':u'Bold', u'start tag':u'{st}', - u'start html':u'', u'end tag':u'{/st}', u'end html':u'', - u'protected':True}) -html_expands.append({u'desc':u'Italics', u'start tag':u'{it}', - u'start html':u'', u'end tag':u'{/it}', u'end html':u'', - u'protected':True}) +html_expands.append({u'desc': u'Red', u'start tag': u'{r}', + u'start html': u'', + u'end tag': u'{/r}', u'end html': u'', u'protected': False}) +html_expands.append({u'desc': u'Black', u'start tag': u'{b}', + u'start html': u'', + u'end tag': u'{/b}', u'end html': u'', u'protected': False}) +html_expands.append({u'desc': u'Blue', u'start tag': u'{bl}', + u'start html': u'', + u'end tag': u'{/bl}', u'end html': u'', u'protected': False}) +html_expands.append({u'desc': u'Yellow', u'start tag': u'{y}', + u'start html': u'', + u'end tag': u'{/y}', u'end html': u'', u'protected': False}) +html_expands.append({u'desc': u'Green', u'start tag': u'{g}', + u'start html': u'', + u'end tag': u'{/g}', u'end html': u'', u'protected': False}) +html_expands.append({u'desc': u'Pink', u'start tag': u'{pk}', + u'start html': u'', + u'end tag': u'{/pk}', u'end html': u'', u'protected': False}) +html_expands.append({u'desc': u'Orange', u'start tag': u'{o}', + u'start html': u'', + u'end tag': u'{/o}', u'end html': u'', u'protected': False}) +html_expands.append({u'desc': u'Purple', u'start tag': u'{pp}', + u'start html': u'', + u'end tag': u'{/pp}', u'end html': u'', u'protected': False}) +html_expands.append({u'desc': u'White', u'start tag': u'{w}', + u'start html': u'', + u'end tag': u'{/w}', u'end html': u'', u'protected': False}) +html_expands.append({u'desc': u'Superscript', u'start tag': u'{su}', + u'start html': u'', u'end tag': u'{/su}', u'end html': u'', + u'protected': True}) +html_expands.append({u'desc': u'Subscript', u'start tag': u'{sb}', + u'start html': u'', u'end tag': u'{/sb}', u'end html': u'', + u'protected': True}) +html_expands.append({u'desc': u'Paragraph', u'start tag': u'{p}', + u'start html': u'

', u'end tag': u'{/p}', u'end html': u'

', + u'protected': True}) +html_expands.append({u'desc': u'Bold', u'start tag': u'{st}', + u'start html': u'', u'end tag': u'{/st}', u'end html': u'', + u'protected': True}) +html_expands.append({u'desc': u'Italics', u'start tag': u'{it}', + u'start html': u'', u'end tag': u'{/it}', u'end html': u'', + u'protected': True}) +html_expands.append({u'desc': u'Underline', u'start tag': u'{u}', + u'start html': u'', u'end tag': u'{/u}', u'end html': u'', + u'protected': True}) def translate(context, text, comment=None): """ diff --git a/openlp/plugins/songs/lib/songbeamerimport.py b/openlp/plugins/songs/lib/songbeamerimport.py index 2d601fbb0..e089d316f 100644 --- a/openlp/plugins/songs/lib/songbeamerimport.py +++ b/openlp/plugins/songs/lib/songbeamerimport.py @@ -141,8 +141,8 @@ class SongBeamerImport(SongImport): (u'', u'{/st}'), (u'', u'{it}'), (u'', u'{/it}'), - (u'', u''), - (u'', u''), + (u'', u'{u}'), + (u'', u'{/u}'), (u'
', u'{st}'), (u'
', u'{st}'), (u'', u'{st}'), From 4d1b88072fc8f18a55d9db21c935e77d472c8954 Mon Sep 17 00:00:00 2001 From: Andreas Preikschat Date: Fri, 26 Nov 2010 17:30:04 +0100 Subject: [PATCH 32/63] fixed reStructuredText --- openlp/plugins/songs/lib/songbeamerimport.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/openlp/plugins/songs/lib/songbeamerimport.py b/openlp/plugins/songs/lib/songbeamerimport.py index e089d316f..eca92aa79 100644 --- a/openlp/plugins/songs/lib/songbeamerimport.py +++ b/openlp/plugins/songs/lib/songbeamerimport.py @@ -165,7 +165,7 @@ class SongBeamerImport(SongImport): ``line`` The line in the file. It should consist of a tag and a value - for this tag. (unicode) + for this tag (unicode):: u'#Title=Nearer my God to Thee' """ From 2989b40147f22cef620bcde2710039d8ceb6da96 Mon Sep 17 00:00:00 2001 From: Tim Bentley Date: Sat, 27 Nov 2010 08:53:29 +0000 Subject: [PATCH 33/63] Documentation fixes --- documentation/manual/source/songusage.rst | 22 ++++++++++++---------- 1 file changed, 12 insertions(+), 10 deletions(-) diff --git a/documentation/manual/source/songusage.rst b/documentation/manual/source/songusage.rst index d77cc3632..df6d930f3 100644 --- a/documentation/manual/source/songusage.rst +++ b/documentation/manual/source/songusage.rst @@ -2,10 +2,10 @@ Song Usage ========== -The Songusage plugin records the usage of Songs when they are used in a **Live** situation. -If the plugin is active all songs sent to the Live Service Manager are recorded by this plugin. -Once the plugin has been activated by the plugin menu it can be turned on and off by use of -the``F4`` key or the SongUsage menus. +The Songusage plugin records the usage of Songs when they are used in a **Live** +situation. If the plugin is active all songs sent to the Live Service Manager +are recorded by this plugin. Once the plugin has been activated by the plugin +menu it can be turned on and off by use of the``F4`` key or the SongUsage menus. The image below shows the menu items and how to access them. @@ -14,8 +14,9 @@ The image below shows the menu items and how to access them. Generating reports ------------------ -Reports can be generated between any two dates. The system defaults to 1st September previous year to 31st -August current year. The data is written to a file in a selectable directory. +This option allows reports to be generated between any two dates. The system +automatically defaults to dates between the 1st September last year and 31st +August this year. The data is written to a file in a selectable directory. The file name is **usage_detail_fromdate_todate.txt**. .. image:: pics/songusagereport.png @@ -24,12 +25,13 @@ The details extracted are: - Date item used - Time item used - Song Title - - Song Copyright + - Song Copyright - Song CCLI. Removing data ------------- -To remove stored data use the option below which can be access from the Tools Toolbar. Select the -date you wish to remove data up to and press``Ok`` +This option allows the removal of stored data use is no longer required. +Select the date you wish to remove data up to and press``Ok``. This option is +not reversable. -.. image:: pics/songusagedelete.png \ No newline at end of file +.. image:: pics/songusagedelete.png From 771c86783edda0dba7226adaa74c729c7dfe93bc Mon Sep 17 00:00:00 2001 From: Tim Bentley Date: Sat, 27 Nov 2010 08:59:49 +0000 Subject: [PATCH 34/63] Remove theme background for Images --- openlp/plugins/images/lib/mediaitem.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/openlp/plugins/images/lib/mediaitem.py b/openlp/plugins/images/lib/mediaitem.py index 71dbd8903..7394758c3 100644 --- a/openlp/plugins/images/lib/mediaitem.py +++ b/openlp/plugins/images/lib/mediaitem.py @@ -163,6 +163,8 @@ class ImageMediaItem(MediaManagerItem): service_item.add_capability(ItemCapabilities.AllowsPreview) service_item.add_capability(ItemCapabilities.AllowsLoop) service_item.add_capability(ItemCapabilities.AllowsAdditions) + # force a nonexistent theme + service_item.theme = -1 for item in items: bitem = self.listView.item(item.row()) filename = unicode(bitem.data(QtCore.Qt.UserRole).toString()) From 3d927b33f935fc934cc241f45863560d548276bd Mon Sep 17 00:00:00 2001 From: Wesley Stout Date: Sat, 27 Nov 2010 08:58:27 -0600 Subject: [PATCH 35/63] drudging along with songs importers --- .../manual/source/pics/finishedimport.png | Bin 0 -> 13674 bytes .../manual/source/pics/selectsongs.png | Bin 0 -> 64560 bytes .../manual/source/pics/songselectlyrics.png | Bin 0 -> 211452 bytes .../source/pics/songselectsongsearch.png | Bin 0 -> 163391 bytes documentation/manual/source/songs.rst | 67 ++++++++++++++++-- 5 files changed, 62 insertions(+), 5 deletions(-) create mode 100644 documentation/manual/source/pics/finishedimport.png create mode 100644 documentation/manual/source/pics/selectsongs.png create mode 100644 documentation/manual/source/pics/songselectlyrics.png create mode 100644 documentation/manual/source/pics/songselectsongsearch.png diff --git a/documentation/manual/source/pics/finishedimport.png b/documentation/manual/source/pics/finishedimport.png new file mode 100644 index 0000000000000000000000000000000000000000..d49876ec994112b2b59927274b1b47e1e6313a7f GIT binary patch literal 13674 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

#|yhQGbF4hm>t}8(=pAnkWu6YdDZ>dO&4W_ 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%0A5F&gztgV#!D)e>3>0Z9mY}Mo>TI7z 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

TAvqyAv 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,CHiVf2OcXqCdy^6U$I__zhR= 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

j@ws& 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 literal 0 HcmV?d00001 diff --git a/documentation/manual/source/pics/songselectsongsearch.png b/documentation/manual/source/pics/songselectsongsearch.png new file mode 100644 index 0000000000000000000000000000000000000000..de0ea12ca81a6a8b070a37711eb8cda9dd647a6f GIT binary patch literal 163391 zcmb5VWmsEX*EI^INYS>qx5X*$PATqQ+%-sWcUqu$ad&rjFHUfGCwPLpoILOQ+~0Sf z>-;+Tv2(3tXD=IT&N=2B2~|>%#6TrNg@c2`kd_itfrCTDgoAstg@Oe8ge;c#6!!Mk z>ASQV3hd>LV)`4_CUh3pbXK)9cXl&!G=sAM+S!^hI+-|{nE{*6w? zzFGV5pMSmoj`IKK^1DQJKvQTw?_WRLejX$`Rwf6FkFZKIv*Lzgp#I+no(EiQgQ`4- z5#KR(lU!KBqvP|4iF~#uXe&(PzYv&6-3keYihnHVcgy{br z*k_?%y1TU)AxIdUj(SPTAs))U?3fh{F^zbsqK7Xn>9+)lA`FYt7L-3*+CX2#$iK?w zSA-5!?n3O6yi~L<0E(SV7}vh^W&a(=?^|q|&4cHfm^3jh8hmCoIJ4&Nt=VL{<)(S1 z84?O>cmhfj)@^{(MB8CQt(fTA73G+2y|d*KW1O6T42RjtaxGLT1WJKT_XsK75X>-( zjiQn=z46yxiW`a5@H%q=AVZ64|CyIN`5_v~@)8-(>>?SD>9z@pHqzFEwstJPkQsBD zxJypp7^EAx5G-%83Xq^n(pT$GR~cL^i68k>t3%hCsvU}4ntVE0sM*O7Gr*S`r%%5h zze8Bd%f2LX+DLXXQ&w^XDdZ!OH+WVVSWWT0f=>YSr4|D?XfyPrV{G4;O;|ibVYwfR%fC!ExoZ>+p=&U$adj@x z-(+aGiudB4Wpnf&N)x#wiDNRV2rAcxr2&{Q#HWyxcAiZwNqxU1r!Xv{r6@y08ss9J zV>2t?S6pk&w(Q;2-->)Xe*UI>o;cBMzDsQ{6S8a>%}<*~)?En~7A%_7iuVuJF1jU{ z40%{)s)a34dM!wzqRj_S9qW1p+fxe5Dl@aakeonzy%rfMTDd)#eBW88sf%5)#Ajsa z9FJ8eR*6b<{mlwPot-DAGKR)DPwlfYrM?iCoTOADak=choHAsMjlQw{xTiL$hv+^> zFa@CuUJ>;xAC{ZOW>pdlYIZiebBxfmpbt&tBQn-EAE)arcw-)zSRqdtZq8aZ6dWeb zH9eYW9)8inPP>>Akd$NAB&Q-sTJJ0-l>$cusU;jmS(L0YV3%cBRFHH_kB2WElQ#m; zQ3>f(LKuH)S`eRZy*(^Pq-`ECS4y|cW!rUid*||fWx4NTe0SA(rRNfGiVk~SeeIH`{9$;NS5&OjioV$`bqZp$| zMHcm5mN5IEIea8p{{&)dL463}B3d!o^(3|CL6c3^2lp06sAZ|E;YFz9S&v@w_sB@N zwR$qk;aRD{_Xp3MjyIfkJ{*tOk+Mg*wyMhSrdpbX);CQPO2=?{PIUFkX4n7nm)vlw zjsNHHw?pLtKg>Y2NK|`tBRp?Z5~XwNVhVv7-Svd=E9l!ju6)G&)f04sO?83Vi6ZSC zp^0RO28SG|B=jlnSb7w$p{oj)NvecHh$Lz&IIRU%3aCCrG4{#LTM*$N?1a?D#dmKM zf+MXXl`WX6u>VTOYM~|R^^8(V5&VfPsD8tx#4tUDvxv|_JGPB0f zAU+vhsJvH~XF6kg)zkBb^mu`CYDvsw=&uf28nJ&;~fQDe6DWE&WEGBjlo1o0r%x7c?Nyb>Dz}lziSWBTalP$Ue{M za3J2pCOsINe=4qq!#g#~Q3Lsu5h-t4R!Zw6yWsJUNxf(F-c(YSc=v|B#k60HUx&NN z&Y=7uh0~6RN&K(_FlL+g+SF;A>d^XKOLs3J9v2)a&eSIDEQ>5Cjn-vXJC$*|w_FSO z)`G*GaB03-^YN`0x=lZOivBA9dX5eaX%sf0Qm2R+v;twyeDIKHkRa4#+8+7oKoDk1 z8N7XQ5r2xgp{w3v+gsD3wmgt4Mb#XQ?q6)@{Phnt!OsquzDPd08 zHdF56GY;?f`jA{xAH)NRKuB?DUj8TU;1!mEQucNxZ`bf~DWVw*8p3fyESwzIkkEWa zUF~$sAH6#u(X$ymLx~^@rCwHSQVwTyzioAk&r}fFQw$eMA4D8n#Iu%xWFD%tPeEaW z)*JfzbHOWlB0LHM7wpr;31Q%z$%@HUYzkG)-o7w1uU&i(@unnu>qM z!Jaq;si;|8m5#^QJY4LnGH66W?4Yw1i85BixyrmhRMy(NL|svOKYz!hg=+MC!9L8b zV3%VsGn`6G026E|Wl|)VsqDMaU#Jg?67?zwMzOB5n;2jZinwfETE3+S)g_hMRQhko zBt|ADWM91O(3;M_o*m_pl!j*FKJt~$3B$W4FgCg}pcEryrbe_y;!wWLx`gYgpNTKE z?VZKb9rkDA#5jQO3av;O>yaG1VnF1L;V5(dKcf~zl;>>PYglqBKQXR+cg9s`E1Tu?Zn7!lp^41h#%xwf_55x2 z)SSm!%f-CzJ*r!F#6#j^3km@3bgybFvLt7Z9+PVP0el%OZ1!%R`OuoifBqwBo0O9% z-;lN07JW4*1$Al?=Px~NLG5a&L?Q%?=UJ$oI5iGcK+%sZdZC{4bp<;_+-DLVrzR7= zcDi1hs{P|Vg(h8>cpiR0F)DJ~s!d`P0>-wwr(R74D^J_EcWaxp;mY-n z>^wIIg6aMi6~05HxOy8$yWU+al2dam*AKqjVafgF*&6y4*p5jWy&*zPLOq)yc71OT zsno*8!EI~$17I&p!JU*w{z)k>QNGdXgd1Mi#LUg!w}Z5}#%~&qu|(KP<8L5~jXD@A z!M4~gbn$_GEx-&sP^#)g*ttV@D;6bRgAY4|Bw2H!swTy5(^1lRoTN078M(1<1ej

tag, replaced the tag and another fix --- openlp/core/lib/__init__.py | 4 ++-- openlp/plugins/songs/lib/songbeamerimport.py | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/openlp/core/lib/__init__.py b/openlp/core/lib/__init__.py index eb7213c16..a90a4c194 100644 --- a/openlp/core/lib/__init__.py +++ b/openlp/core/lib/__init__.py @@ -81,8 +81,8 @@ html_expands.append({u'desc': u'Italics', u'start tag': u'{it}', u'start html': u'', u'end tag': u'{/it}', u'end html': u'', u'protected': True}) html_expands.append({u'desc': u'Underline', u'start tag': u'{u}', - u'start html': u'', u'end tag': u'{/u}', u'end html': u'', - u'protected': True}) + u'start html': u'', + u'end tag': u'{/u}', u'end html': u'', u'protected': True}) def translate(context, text, comment=None): """ diff --git a/openlp/plugins/songs/lib/songbeamerimport.py b/openlp/plugins/songs/lib/songbeamerimport.py index eca92aa79..a743faafc 100644 --- a/openlp/plugins/songs/lib/songbeamerimport.py +++ b/openlp/plugins/songs/lib/songbeamerimport.py @@ -146,7 +146,7 @@ class SongBeamerImport(SongImport): (u'
', u'{st}'), (u'
', u'{st}'), (u'', u'{st}'), - (u'

', u'{/p}'), + (u'

', u'{p}'), (u'

', u'{/p}'), (u'', u'{su}'), (u'', u'{/su}'), @@ -156,7 +156,7 @@ class SongBeamerImport(SongImport): (u'', u'') ] for pair in tag_pairs: - self.current_verse.replace(pair[0], pair[1]) + self.current_verse = self.current_verse.replace(pair[0], pair[1]) # TODO: check for unsupported tags (see wiki) and remove them as well. def parse_tags(self, line): From a7e8104f598a8054e756e463e03e9552bba62781 Mon Sep 17 00:00:00 2001 From: Tim Bentley Date: Sun, 28 Nov 2010 13:39:51 +0000 Subject: [PATCH 40/63] Song rebuilding continues --- openlp/plugins/songs/lib/mediaitem.py | 7 +- openlp/plugins/songs/lib/xml.py | 143 +++++++++++++++++--------- 2 files changed, 97 insertions(+), 53 deletions(-) diff --git a/openlp/plugins/songs/lib/mediaitem.py b/openlp/plugins/songs/lib/mediaitem.py index 3441aed86..0d5572d1e 100644 --- a/openlp/plugins/songs/lib/mediaitem.py +++ b/openlp/plugins/songs/lib/mediaitem.py @@ -53,6 +53,7 @@ class SongMediaItem(MediaManagerItem): self.ListViewWithDnD_class = SongListView MediaManagerItem.__init__(self, parent, self, icon) self.edit_song_form = EditSongForm(self, self.parent.manager) + self.openLyrics = OpenLyricsParser(self.parent.manager) self.singleServiceItem = False self.song_maintenance_form = SongMaintenanceForm( self.parent.manager, self) @@ -396,7 +397,7 @@ class SongMediaItem(MediaManagerItem): ] service_item.data_string = {u'title':song.search_title, u'authors':author_list} - service_item.xml_version = OpenLyricsParser().song_to_xml(song) + service_item.xml_version = self.openLyrics.song_to_xml(song) return True def serviceLoad(self, item): @@ -424,12 +425,12 @@ class SongMediaItem(MediaManagerItem): else: # Authors different if self.addSongFromService: - editId = OpenLyricsParser(). \ + editId = self.openLyrics. \ xmlToSong(item.xml_version) else: # Title does not match if self.addSongFromService: - editId = OpenLyricsParser().xmlToSong(item.xml_version) + editId = self.openLyrics.xmlToSong(item.xml_version) # Update service with correct song id if editId != 0: Receiver.send_message(u'service_item_update', diff --git a/openlp/plugins/songs/lib/xml.py b/openlp/plugins/songs/lib/xml.py index bdd8478d4..03b672928 100644 --- a/openlp/plugins/songs/lib/xml.py +++ b/openlp/plugins/songs/lib/xml.py @@ -39,6 +39,7 @@ The basic XML is of the format:: """ import logging +import re from lxml import etree, objectify from openlp.plugins.songs.lib.db import Author, Song @@ -246,6 +247,9 @@ class OpenLyricsParser(object): """ This class represents the converter for Song to/from OpenLyrics XML. """ + def __init__(self, manager): + self.manager = manager + def song_to_xml(self, song): """ Convert the song to OpenLyrics Format @@ -256,31 +260,87 @@ class OpenLyricsParser(object): u'') properties = etree.SubElement(song_xml, u'properties') titles = etree.SubElement(properties, u'titles') - self.add_text_to_element(u'title', titles, song.title) + self._add_text_to_element(u'title', titles, song.title) if song.alternate_title: - self.add_text_to_element(u'title', titles, song.alternate_title) + self._add_text_to_element(u'title', titles, song.alternate_title) if song.theme_name: themes = etree.SubElement(properties, u'themes') - self.add_text_to_element(u'theme', themes, song.theme_name) - self.add_text_to_element(u'copyright', properties, song.copyright) - self.add_text_to_element(u'verseOrder', properties, song.verse_order) + self._add_text_to_element(u'theme', themes, song.theme_name) + self._add_text_to_element(u'copyright', properties, song.copyright) + self._add_text_to_element(u'verseOrder', properties, song.verse_order) if song.ccli_number: - self.add_text_to_element(u'ccliNo', properties, song.ccli_number) + self._add_text_to_element(u'ccliNo', properties, song.ccli_number) authors = etree.SubElement(properties, u'authors') for author in song.authors: - self.add_text_to_element(u'author', authors, author.display_name) + self._add_text_to_element(u'author', authors, author.display_name) lyrics = etree.SubElement(song_xml, u'lyrics') for verse in verseList: verseTag = u'%s%s' % ( verse[0][u'type'][0].lower(), verse[0][u'label']) - element = self.add_text_to_element(u'verse', lyrics, None, verseTag) - element = self.add_text_to_element(u'lines', element) + element = self._add_text_to_element(u'verse', lyrics, None, verseTag) + element = self._add_text_to_element(u'lines', element) for line in unicode(verse[1]).split(u'\n'): - self.add_text_to_element(u'line', element, line) - self.xml_to_song(self.extract_xml(song_xml)) - return u'' #self.xml_to_song(self.extract_xml(song_xml)) + self._add_text_to_element(u'line', element, line) + print self._dump_xml(song_xml) + self.xml_to_song(self._extract_xml(song_xml)) + return u'' #self.xml_to_song(self._extract_xml(song_xml)) - def add_text_to_element(self, tag, parent, text=None, label=None): + def xml_to_song(self, xml): + """ + Create a Song from OpenLyrics format xml + """ + song = Song() + if xml[:5] == u' Date: Sun, 28 Nov 2010 14:41:50 +0100 Subject: [PATCH 41/63] remove strike tags in songBeamer files; decent check for digits --- openlp/plugins/songs/lib/songbeamerimport.py | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/openlp/plugins/songs/lib/songbeamerimport.py b/openlp/plugins/songs/lib/songbeamerimport.py index a743faafc..44e8805c9 100644 --- a/openlp/plugins/songs/lib/songbeamerimport.py +++ b/openlp/plugins/songs/lib/songbeamerimport.py @@ -153,7 +153,9 @@ class SongBeamerImport(SongImport): (u'', u'{sb}'), (u'', u'{/sb}'), (u'', u''), - (u'', u'') + (u'', u''), + (u'', u''), + (u'', u'') ] for pair in tag_pairs: self.current_verse = self.current_verse.replace(pair[0], pair[1]) @@ -264,8 +266,8 @@ class SongBeamerImport(SongImport): def check_verse_marks(self, line): """ - Check and add the verse's MarkType. Returns ``True`` if the given mark - is correct otherwise ``False``. + Check and add the verse's MarkType. Returns ``True`` if the given line + contains a correct verse mark otherwise ``False``. ``line`` The line to check for marks (unicode). @@ -275,10 +277,8 @@ class SongBeamerImport(SongImport): self.current_verse_type = SongBeamerTypes.MarkTypes[marks[0]] if len(marks) == 2: # If we have a digit, we append it to current_verse_type. - try: - self.current_verse_type += u'%s' % int(marks[1]) - except ValueError: - pass + if marks[1].isdigit(): + self.current_verse_type += marks[1] return True else: return False From dba32e3614ec8f138f308d4408fbe24e7ad23f44 Mon Sep 17 00:00:00 2001 From: Tim Bentley Date: Sun, 28 Nov 2010 13:41:52 +0000 Subject: [PATCH 42/63] Fix DnD bug --- openlp/core/ui/servicemanager.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/openlp/core/ui/servicemanager.py b/openlp/core/ui/servicemanager.py index f294cedd4..454819f32 100644 --- a/openlp/core/ui/servicemanager.py +++ b/openlp/core/ui/servicemanager.py @@ -1028,6 +1028,9 @@ class ServiceManager(QtGui.QWidget): # ServiceManager started the drag and drop if plugin == u'ServiceManager': startpos, startCount = self.findServiceItem() + # If no items selected + if startpos == -1: + return if item is None: endpos = len(self.serviceItems) else: From 9fa384b57f988f695820caed6f424af7ade20221 Mon Sep 17 00:00:00 2001 From: Tim Bentley Date: Sun, 28 Nov 2010 14:40:46 +0000 Subject: [PATCH 43/63] More changes --- openlp/plugins/songs/lib/xml.py | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/openlp/plugins/songs/lib/xml.py b/openlp/plugins/songs/lib/xml.py index 03b672928..5cfa8603b 100644 --- a/openlp/plugins/songs/lib/xml.py +++ b/openlp/plugins/songs/lib/xml.py @@ -317,9 +317,7 @@ class OpenLyricsParser(object): unicode(song.search_title)).lower() # Process Authors for author in properties.authors.author: - print author, author.text - #song.authors.append(self._process_author(author.text)) - print "here" + self._process_author(author.text, song) # Process Lyrics sxml = SongXMLBuilder() search_text = u'' @@ -327,16 +325,18 @@ class OpenLyricsParser(object): for verse in song_xml.lyrics.verse: print "verse", verse.attrib text = u'' - for line in lyrics.verse.lines.line: + for line in verse.lines.line: line = unicode(line) if not text: text = line else: text += u'\n' + line - sxml.add_verse_to_lyrics(u'V', verse.attrib, text) + sxml.add_verse_to_lyrics(u'V', verse.attrib[u'name'], text) search_text = search_text + text song.search_lyrics = search_text.lower() song.lyrics = unicode(sxml.extract_xml(), u'utf-8') + song.comments = u'' + song.song_number = u'' self.manager.save_object(song) return 0 @@ -364,7 +364,7 @@ class OpenLyricsParser(object): return etree.tostring(xml, encoding=u'UTF-8', xml_declaration=True) - def _process_author(self, name): + def _process_author(self, name, song): """ Find or create an Author from display_name. """ @@ -374,10 +374,10 @@ class OpenLyricsParser(object): Author.display_name == name) if search_results: # should only be one! so take the first - return search_results[0] + song.authors.append(search_results[0]) else: # Need a new author new_author = Author.populate(first_name=name.rsplit(u' ', 1)[0], last_name=name.rsplit(u' ', 1)[1], display_name=name) self.manager.save_object(new_author) - return author + song.authors.append(new_author) From 8929aaaa2301cc41e368f47118ec1ec1d3700bfc Mon Sep 17 00:00:00 2001 From: Andreas Preikschat Date: Sun, 28 Nov 2010 16:10:51 +0100 Subject: [PATCH 44/63] docs; make sure, that the edit/delete buttons are always disabled after loading the window --- openlp/plugins/songs/forms/editsongform.py | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/openlp/plugins/songs/forms/editsongform.py b/openlp/plugins/songs/forms/editsongform.py index 241c6fd95..d81f1a27a 100644 --- a/openlp/plugins/songs/forms/editsongform.py +++ b/openlp/plugins/songs/forms/editsongform.py @@ -152,6 +152,7 @@ class EditSongForm(QtGui.QDialog, Ui_EditSongDialog): def newSong(self): log.debug(u'New Song') + self.initialise() self.SongTabWidget.setCurrentIndex(0) self.TitleEditItem.setText(u'') self.AlternativeEdit.setText(u'') @@ -170,8 +171,18 @@ class EditSongForm(QtGui.QDialog, Ui_EditSongDialog): # it's a new song to preview is not possible self.previewButton.setVisible(False) - def loadSong(self, id, preview): + def loadSong(self, id, preview=False): + """ + Loads a song. + + ``id`` + The song id (int). + + ``preview`` + Should be ``True`` if the song is also previewed (boolean). + """ log.debug(u'Load Song') + self.initialise() self.SongTabWidget.setCurrentIndex(0) self.loadAuthors() self.loadTopics() @@ -594,6 +605,9 @@ class EditSongForm(QtGui.QDialog, Ui_EditSongDialog): """ Save and Preview button pressed. The Song is valid so as the plugin to add it to preview to see. + + ``button`` + A button (QPushButton). """ log.debug(u'onPreview') if unicode(button.objectName()) == u'previewButton' and \ @@ -631,7 +645,7 @@ class EditSongForm(QtGui.QDialog, Ui_EditSongDialog): database. ``preview`` - Should be True if song is also previewed. + Should be ``True`` if the song is also previewed (boolean). """ self.song.title = unicode(self.TitleEditItem.text()) self.song.alternate_title = unicode(self.AlternativeEdit.text()) From 132c67856939276238e26ebd60db60235cc3fcdb Mon Sep 17 00:00:00 2001 From: Tim Bentley Date: Sun, 28 Nov 2010 15:20:53 +0000 Subject: [PATCH 45/63] Fix exit for non Sqlite Databases --- openlp/core/lib/db.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/openlp/core/lib/db.py b/openlp/core/lib/db.py index 0dc138abc..8afa02111 100644 --- a/openlp/core/lib/db.py +++ b/openlp/core/lib/db.py @@ -294,4 +294,5 @@ class Manager(object): """ if self.is_dirty: engine = create_engine(self.db_url) - engine.execute("vacuum") + if self.db_url.startswith(u'sqlite'): + engine.execute("vacuum") From e2ac8b6dcc50139ebc5b5b96499e993945f396c8 Mon Sep 17 00:00:00 2001 From: Tim Bentley Date: Sun, 28 Nov 2010 16:48:36 +0000 Subject: [PATCH 46/63] More code fixes --- openlp/plugins/songs/lib/xml.py | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/openlp/plugins/songs/lib/xml.py b/openlp/plugins/songs/lib/xml.py index 5cfa8603b..a12bdc24c 100644 --- a/openlp/plugins/songs/lib/xml.py +++ b/openlp/plugins/songs/lib/xml.py @@ -79,7 +79,6 @@ class SongXMLBuilder(object): ``content`` The actual text of the verse to be stored. """ - # log.debug(u'add_verse_to_lyrics %s, %s\n%s' % (type, number, content)) verse = etree.Element(u'verse', type = unicode(type), label = unicode(number)) verse.text = etree.CDATA(content) @@ -368,13 +367,12 @@ class OpenLyricsParser(object): """ Find or create an Author from display_name. """ - print "name = ", name name = unicode(name) - search_results = self.manager.get_all_objects(Author, + author = self.manager.get_object_filtered(Author, Author.display_name == name) - if search_results: + if author: # should only be one! so take the first - song.authors.append(search_results[0]) + song.authors.append(author) else: # Need a new author new_author = Author.populate(first_name=name.rsplit(u' ', 1)[0], From 6ecc121bdfc5998db261e90e1adf9c5464fc0296 Mon Sep 17 00:00:00 2001 From: Tim Bentley Date: Sun, 28 Nov 2010 19:38:27 +0000 Subject: [PATCH 47/63] Convert verse tags --- openlp/core/lib/mediamanageritem.py | 4 ++-- openlp/plugins/songs/lib/__init__.py | 30 +++++++++++++++++++++++++++ openlp/plugins/songs/lib/mediaitem.py | 1 + openlp/plugins/songs/lib/xml.py | 4 +++- 4 files changed, 36 insertions(+), 3 deletions(-) diff --git a/openlp/core/lib/mediamanageritem.py b/openlp/core/lib/mediamanageritem.py index 03ecba088..130da0c0e 100644 --- a/openlp/core/lib/mediamanageritem.py +++ b/openlp/core/lib/mediamanageritem.py @@ -478,8 +478,8 @@ class MediaManagerItem(QtGui.QWidget): translate('OpenLP.MediaManagerItem', 'You must select one or more items.')) else: - # Is it posssible to process multiple list items to generate multiple - # service items? + # Is it posssible to process multiple list items to generate + # multiple service items? if self.singleServiceItem or self.remoteTriggered: log.debug(self.plugin.name + u' Add requested') serviceItem = self.buildServiceItem(None, True) diff --git a/openlp/plugins/songs/lib/__init__.py b/openlp/plugins/songs/lib/__init__.py index bb9c6ebf9..795116b4e 100644 --- a/openlp/plugins/songs/lib/__init__.py +++ b/openlp/plugins/songs/lib/__init__.py @@ -62,6 +62,36 @@ class VerseType(object): elif verse_type == VerseType.Other: return translate('SongsPlugin.VerseType', 'Other') + @staticmethod + def expand_string(verse_type): + """ + Return the VerseType for a given string + + ``verse_type`` + The string to return a VerseType for + """ + verse_type = verse_type.lower() + if verse_type == unicode(VerseType.to_string(VerseType.Verse)).lower()[0]: + return translate('SongsPlugin.VerseType', 'Verse') + elif verse_type == \ + unicode(VerseType.to_string(VerseType.Chorus)).lower()[0]: + return translate('SongsPlugin.VerseType', 'Chorus') + elif verse_type == \ + unicode(VerseType.to_string(VerseType.Bridge)).lower()[0]: + return translate('SongsPlugin.VerseType', 'Bridge') + elif verse_type == \ + unicode(VerseType.to_string(VerseType.PreChorus)).lower()[0]: + return translate('SongsPlugin.VerseType', 'PreChorus') + elif verse_type == \ + unicode(VerseType.to_string(VerseType.Intro)).lower()[0]: + return translate('SongsPlugin.VerseType', 'Intro') + elif verse_type == \ + unicode(VerseType.to_string(VerseType.Ending)).lower()[0]: + return translate('SongsPlugin.VerseType', 'Ending') + elif verse_type == \ + unicode(VerseType.to_string(VerseType.Other)).lower()[0]: + return translate('SongsPlugin.VerseType', 'Other') + @staticmethod def from_string(verse_type): """ diff --git a/openlp/plugins/songs/lib/mediaitem.py b/openlp/plugins/songs/lib/mediaitem.py index 0d5572d1e..2ffa096a6 100644 --- a/openlp/plugins/songs/lib/mediaitem.py +++ b/openlp/plugins/songs/lib/mediaitem.py @@ -397,6 +397,7 @@ class SongMediaItem(MediaManagerItem): ] service_item.data_string = {u'title':song.search_title, u'authors':author_list} + # if xmlVersion: service_item.xml_version = self.openLyrics.song_to_xml(song) return True diff --git a/openlp/plugins/songs/lib/xml.py b/openlp/plugins/songs/lib/xml.py index a12bdc24c..910fb6549 100644 --- a/openlp/plugins/songs/lib/xml.py +++ b/openlp/plugins/songs/lib/xml.py @@ -42,6 +42,7 @@ import logging import re from lxml import etree, objectify +from openlp.plugins.songs.lib import VerseType from openlp.plugins.songs.lib.db import Author, Song log = logging.getLogger(__name__) @@ -330,7 +331,8 @@ class OpenLyricsParser(object): text = line else: text += u'\n' + line - sxml.add_verse_to_lyrics(u'V', verse.attrib[u'name'], text) + type = VerseType.expand_string(verse.attrib[u'name'][0]) + sxml.add_verse_to_lyrics(type, verse.attrib[u'name'][1], text) search_text = search_text + text song.search_lyrics = search_text.lower() song.lyrics = unicode(sxml.extract_xml(), u'utf-8') From 5decd5c4661f6860fa54e508ddfafbec966d4e3c Mon Sep 17 00:00:00 2001 From: Tim Bentley Date: Mon, 29 Nov 2010 07:32:08 +0000 Subject: [PATCH 48/63] Cleanups and fixes --- openlp/plugins/custom/forms/editcustomform.py | 6 +++--- openlp/plugins/custom/forms/editcustomslideform.py | 4 ++-- openlp/plugins/custom/lib/customxmlhandler.py | 11 ++++++----- 3 files changed, 11 insertions(+), 10 deletions(-) diff --git a/openlp/plugins/custom/forms/editcustomform.py b/openlp/plugins/custom/forms/editcustomform.py index 65a73337a..c5281574b 100644 --- a/openlp/plugins/custom/forms/editcustomform.py +++ b/openlp/plugins/custom/forms/editcustomform.py @@ -46,7 +46,6 @@ class EditCustomForm(QtGui.QDialog, Ui_CustomEditDialog): Constructor """ QtGui.QDialog.__init__(self, parent) - #self.parent = parent self.setupUi(self) # Connecting signals and slots self.previewButton = QtGui.QPushButton() @@ -124,8 +123,9 @@ class EditCustomForm(QtGui.QDialog, Ui_CustomEditDialog): self.slideListView.addItem(slide[1]) theme = self.customSlide.theme_name id = self.themeComboBox.findText(theme, QtCore.Qt.MatchExactly) + # No theme match if id == -1: - id = 0 # Not Found + id = 0 self.themeComboBox.setCurrentIndex(id) else: self.themeComboBox.setCurrentIndex(0) @@ -264,7 +264,7 @@ class EditCustomForm(QtGui.QDialog, Ui_CustomEditDialog): self.titleEdit.setFocus() return False, translate('CustomPlugin.EditCustomForm', 'You need to type in a title.') - # We must have one slide. + # We must have at least one slide. if self.slideListView.count() == 0: return False, translate('CustomPlugin.EditCustomForm', 'You need to add at least one slide') diff --git a/openlp/plugins/custom/forms/editcustomslideform.py b/openlp/plugins/custom/forms/editcustomslideform.py index 5f535c8bc..72c7dbb4a 100644 --- a/openlp/plugins/custom/forms/editcustomslideform.py +++ b/openlp/plugins/custom/forms/editcustomslideform.py @@ -50,7 +50,7 @@ class EditCustomSlideForm(QtGui.QDialog, Ui_CustomSlideEditDialog): def setText(self, text): """ Set the text for slideTextEdit. - + ``text`` The text (unicode). """ @@ -67,7 +67,7 @@ class EditCustomSlideForm(QtGui.QDialog, Ui_CustomSlideEditDialog): def onSplitButtonPressed(self): """ - Splits a slide in two slides. + Adds a slide split at the cursor. """ if self.slideTextEdit.textCursor().columnNumber() != 0: self.slideTextEdit.insertPlainText(u'\n') diff --git a/openlp/plugins/custom/lib/customxmlhandler.py b/openlp/plugins/custom/lib/customxmlhandler.py index b554f9657..987163aa3 100644 --- a/openlp/plugins/custom/lib/customxmlhandler.py +++ b/openlp/plugins/custom/lib/customxmlhandler.py @@ -43,6 +43,7 @@ import logging from xml.dom.minidom import Document from xml.etree.ElementTree import ElementTree, XML, dump +from lxml import etree, objectify from xml.parsers.expat import ExpatError log = logging.getLogger(__name__) @@ -129,10 +130,11 @@ class CustomXMLParser(object): The XML of the song to be parsed. """ self.custom_xml = None + if xml[:5] == u' Date: Mon, 29 Nov 2010 14:04:37 +0000 Subject: [PATCH 49/63] Songs get built correctly --- openlp/plugins/custom/lib/customxmlhandler.py | 19 ++++--- openlp/plugins/custom/lib/mediaitem.py | 6 +-- openlp/plugins/songs/lib/xml.py | 50 +++++++++---------- 3 files changed, 36 insertions(+), 39 deletions(-) diff --git a/openlp/plugins/custom/lib/customxmlhandler.py b/openlp/plugins/custom/lib/customxmlhandler.py index 987163aa3..907c3470d 100644 --- a/openlp/plugins/custom/lib/customxmlhandler.py +++ b/openlp/plugins/custom/lib/customxmlhandler.py @@ -56,14 +56,14 @@ class CustomXMLBuilder(object): def __init__(self): """ - Set up the song builder. + Set up the custom builder. """ # Create the minidom document self.custom_xml = Document() def new_document(self): """ - Create a new song XML document. + Create a new custom XML document. """ # Create the base element self.song = self.custom_xml.createElement(u'song') @@ -73,7 +73,7 @@ class CustomXMLBuilder(object): def add_lyrics_to_song(self): """ Set up and add a ```` tag which contains the lyrics of the - song. + custom item. """ # Create the main element self.lyrics = self.custom_xml.createElement(u'lyrics') @@ -94,7 +94,6 @@ class CustomXMLBuilder(object): ``content`` The actual text of the verse to be stored. """ - #log.debug(u'add_verse_to_lyrics %s, %s\n%s' % (type, number, content)) verse = self.custom_xml.createElement(u'verse') verse.setAttribute(u'type', type) verse.setAttribute(u'label', number) @@ -103,7 +102,7 @@ class CustomXMLBuilder(object): cds = self.custom_xml.createCDATASection(content) verse.appendChild(cds) - def dump_xml(self): + def _dump_xml(self): """ Debugging aid to dump XML so that we can see what we have. """ @@ -111,23 +110,23 @@ class CustomXMLBuilder(object): def extract_xml(self): """ - Extract our newly created XML song. + Extract our newly created XML custom. """ return self.custom_xml.toxml(u'utf-8') class CustomXMLParser(object): """ - A class to read in and parse a song's XML. + A class to read in and parse a custom's XML. """ log.info(u'CustomXMLParser Loaded') def __init__(self, xml): """ - Set up our song XML parser. + Set up our custom XML parser. ``xml`` - The XML of the song to be parsed. + The XML of the custom to be parsed. """ self.custom_xml = None if xml[:5] == u' Date: Mon, 29 Nov 2010 16:02:41 +0000 Subject: [PATCH 50/63] Songs get created correctly and displays refreshed --- openlp/core/ui/servicemanager.py | 2 ++ openlp/plugins/songs/forms/editsongform.py | 7 +++++-- openlp/plugins/songs/lib/mediaitem.py | 11 ++++++----- openlp/plugins/songs/lib/xml.py | 23 +++++++++++++++------- 4 files changed, 29 insertions(+), 14 deletions(-) diff --git a/openlp/core/ui/servicemanager.py b/openlp/core/ui/servicemanager.py index 454819f32..6d721823a 100644 --- a/openlp/core/ui/servicemanager.py +++ b/openlp/core/ui/servicemanager.py @@ -789,6 +789,8 @@ class ServiceManager(QtGui.QWidget): self.serviceName = name[len(name) - 1] self.parent.addRecentFile(filename) self.parent.serviceChanged(True, self.serviceName) + # Refresh Plugin lists + Receiver.send_message(u'plugin_list_refresh') def validateItem(self, serviceItem): """ diff --git a/openlp/plugins/songs/forms/editsongform.py b/openlp/plugins/songs/forms/editsongform.py index 8c92583d5..c9868d2e3 100644 --- a/openlp/plugins/songs/forms/editsongform.py +++ b/openlp/plugins/songs/forms/editsongform.py @@ -636,8 +636,11 @@ class EditSongForm(QtGui.QDialog, Ui_EditSongDialog): self.song.title = unicode(self.TitleEditItem.text()) self.song.alternate_title = unicode(self.AlternativeEdit.text()) self.song.copyright = unicode(self.CopyrightEditItem.text()) - self.song.search_title = self.song.title + u'@' + \ - self.song.alternate_title + if self.song.alternate_title: + self.song.search_title = self.song.title + u'@' + \ + self.song.alternate_title + else: + self.song.search_title = self.song.title self.song.comments = unicode(self.CommentsEdit.toPlainText()) self.song.verse_order = unicode(self.VerseOrderEdit.text()) self.song.ccli_number = unicode(self.CCLNumberEdit.text()) diff --git a/openlp/plugins/songs/lib/mediaitem.py b/openlp/plugins/songs/lib/mediaitem.py index 2ffa096a6..432eee744 100644 --- a/openlp/plugins/songs/lib/mediaitem.py +++ b/openlp/plugins/songs/lib/mediaitem.py @@ -114,6 +114,8 @@ class SongMediaItem(MediaManagerItem): self.SearchButtonLayout.addWidget(self.ClearTextButton) self.pageLayout.addLayout(self.SearchButtonLayout) # Signals and slots + QtCore.QObject.connect(Receiver.get_receiver(), + QtCore.SIGNAL(u'plugin_list_refresh'), self.onSearchTextButtonClick) QtCore.QObject.connect(self.SearchTextEdit, QtCore.SIGNAL(u'returnPressed()'), self.onSearchTextButtonClick) QtCore.QObject.connect(self.SearchTextButton, @@ -397,7 +399,6 @@ class SongMediaItem(MediaManagerItem): ] service_item.data_string = {u'title':song.search_title, u'authors':author_list} - # if xmlVersion: service_item.xml_version = self.openLyrics.song_to_xml(song) return True @@ -408,8 +409,8 @@ class SongMediaItem(MediaManagerItem): log.debug(u'serviceLoad') if item.data_string: search_results = self.parent.manager.get_all_objects(Song, - Song.search_title.like(u'%' + - item.data_string[u'title'].split(u'@')[0] + u'%'), + Song.search_title == + item.data_string[u'title'].split(u'@')[0].lower() , Song.search_title.asc()) author_list = item.data_string[u'authors'].split(u', ') editId = 0 @@ -427,11 +428,11 @@ class SongMediaItem(MediaManagerItem): # Authors different if self.addSongFromService: editId = self.openLyrics. \ - xmlToSong(item.xml_version) + xml_to_song(item.xml_version) else: # Title does not match if self.addSongFromService: - editId = self.openLyrics.xmlToSong(item.xml_version) + editId = self.openLyrics.xml_to_song(item.xml_version) # Update service with correct song id if editId != 0: Receiver.send_message(u'service_item_update', diff --git a/openlp/plugins/songs/lib/xml.py b/openlp/plugins/songs/lib/xml.py index f5f285396..2d9855ca8 100644 --- a/openlp/plugins/songs/lib/xml.py +++ b/openlp/plugins/songs/lib/xml.py @@ -281,14 +281,15 @@ class OpenLyricsParser(object): element = self._add_text_to_element(u'lines', element) for line in unicode(verse[1]).split(u'\n'): self._add_text_to_element(u'line', element, line) - print self._dump_xml(song_xml) - self.xml_to_song(self._extract_xml(song_xml)) - return u'' #self.xml_to_song(self._extract_xml(song_xml)) + return self._extract_xml(song_xml) def xml_to_song(self, xml): """ Create a Song from OpenLyrics format xml """ + # No xml get out of here + if not xml: + return 0 song = Song() if xml[:5] == u' Date: Mon, 29 Nov 2010 20:02:58 +0100 Subject: [PATCH 51/63] enable search button --- openlp/plugins/bibles/lib/mediaitem.py | 39 +++++++++++++++----------- 1 file changed, 22 insertions(+), 17 deletions(-) diff --git a/openlp/plugins/bibles/lib/mediaitem.py b/openlp/plugins/bibles/lib/mediaitem.py index a94ea581a..e9c5d1bdb 100644 --- a/openlp/plugins/bibles/lib/mediaitem.py +++ b/openlp/plugins/bibles/lib/mediaitem.py @@ -359,6 +359,7 @@ class BibleMediaItem(MediaManagerItem): translate('BiblesPlugin.MediaItem', 'No Book Found'), translate('BiblesPlugin.MediaItem', 'No matching book could be found in this Bible.')) + self.AdvancedSearchButton.setEnabled(True) def onImportClick(self): if not hasattr(self, u'import_wizard'): @@ -619,23 +620,27 @@ class BibleMediaItem(MediaManagerItem): second_permissions = u'' for count, verse in enumerate(self.search_results): if second_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), - 'permissions': QtCore.QVariant(permissions.value), - 'text': QtCore.QVariant(verse.text), - 'second_bible': QtCore.QVariant(second_bible), - 'second_version': QtCore.QVariant(second_version.value), - 'second_copyright': QtCore.QVariant(second_copyright.value), - 'second_permissions': QtCore.QVariant( - second_permissions.value), - 'second_text': QtCore.QVariant( - self.second_search_results[count].text) - } + try: + 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), + 'permissions': QtCore.QVariant(permissions.value), + 'text': QtCore.QVariant(verse.text), + 'second_bible': QtCore.QVariant(second_bible), + 'second_version': QtCore.QVariant(second_version.value), + 'second_copyright': QtCore.QVariant( + second_copyright.value), + 'second_permissions': QtCore.QVariant( + second_permissions.value), + 'second_text': QtCore.QVariant( + self.second_search_results[count].text) + } + except IndexError: + break bible_text = u' %s %d:%d (%s, %s)' % (verse.book.name, verse.chapter, verse.verse, version.value, second_version.value) From 7f1e21c13bab2853c7684147e2a5790326758db3 Mon Sep 17 00:00:00 2001 From: Tim Bentley Date: Tue, 30 Nov 2010 20:23:21 +0000 Subject: [PATCH 52/63] Fix field names and verse order bug --- openlp/plugins/songs/lib/xml.py | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/openlp/plugins/songs/lib/xml.py b/openlp/plugins/songs/lib/xml.py index 2d9855ca8..655ea1e3c 100644 --- a/openlp/plugins/songs/lib/xml.py +++ b/openlp/plugins/songs/lib/xml.py @@ -254,8 +254,8 @@ class OpenLyricsParser(object): """ Convert the song to OpenLyrics Format """ - songXML = SongXMLParser(song.lyrics) - verseList = songXML.get_verses() + song_xml_parser = SongXMLParser(song.lyrics) + verse_list = song_xml_parser.get_verses() song_xml = objectify.fromstring( u'') properties = etree.SubElement(song_xml, u'properties') @@ -274,10 +274,11 @@ class OpenLyricsParser(object): for author in song.authors: self._add_text_to_element(u'author', authors, author.display_name) lyrics = etree.SubElement(song_xml, u'lyrics') - for verse in verseList: - verseTag = u'%s%s' % ( + for verse in verse_list: + verse_tag = u'%s%s' % ( verse[0][u'type'][0].lower(), verse[0][u'label']) - element = self._add_text_to_element(u'verse', lyrics, None, verseTag) + element = \ + self._add_text_to_element(u'verse', lyrics, None, verse_tag) element = self._add_text_to_element(u'lines', element) for line in unicode(verse[1]).split(u'\n'): self._add_text_to_element(u'line', element, line) @@ -297,6 +298,8 @@ class OpenLyricsParser(object): properties = song_xml.properties song.copyright = unicode(properties.copyright.text) song.verse_order = unicode(properties.verseOrder.text) + if song.verse_order == u'None': + song.verse_order = u'' song.topics = [] song.book = None theme_name = None From cd6948f61335cf5c05b25fe111b0cbd1e9a0af27 Mon Sep 17 00:00:00 2001 From: Andreas Preikschat Date: Wed, 1 Dec 2010 19:37:54 +0100 Subject: [PATCH 53/63] added an autoCompleter for bible books for 'Verse Search' --- openlp/plugins/bibles/lib/mediaitem.py | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/openlp/plugins/bibles/lib/mediaitem.py b/openlp/plugins/bibles/lib/mediaitem.py index e9c5d1bdb..6ea18dfe2 100644 --- a/openlp/plugins/bibles/lib/mediaitem.py +++ b/openlp/plugins/bibles/lib/mediaitem.py @@ -240,6 +240,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.QuickSearchComboBox, + QtCore.SIGNAL(u'activated(int)'), self.autoCompletion) + QtCore.QObject.connect(self.QuickVersionComboBox, + QtCore.SIGNAL(u'activated(int)'), self.autoCompletion) # Buttons QtCore.QObject.connect(self.AdvancedSearchButton, QtCore.SIGNAL(u'pressed()'), self.onAdvancedSearchButton) @@ -428,6 +432,21 @@ class BibleMediaItem(MediaManagerItem): self.adjustComboBox(1, verse_count, self.AdvancedFromVerse) self.adjustComboBox(1, verse_count, self.AdvancedToVerse) + def autoCompletion(self): + """ + This add or updates a bible book completion list for the search field. + The completion depends on the bible. It is only added when we are doing + a verse search on the quick tab, otherwise it is removed. + """ + books = [] + # We have to do a 'Verse Search'. + if self.QuickSearchComboBox.currentIndex() == 0: + bible = unicode(self.QuickVersionComboBox.currentText()) + if bible: + book_data = self.parent.manager.get_books(bible) + books = [book[u'name'] for book in book_data] + self.QuickSearchEdit.setCompleter(QtGui.QCompleter(books)) + def onAdvancedVersionComboBox(self): self.initialiseBible( unicode(self.AdvancedVersionComboBox.currentText())) From ada84d935270a0eb4fda72872af2ddc6e17c3cf3 Mon Sep 17 00:00:00 2001 From: Tim Bentley Date: Thu, 2 Dec 2010 14:37:38 +0000 Subject: [PATCH 54/63] pylint fixes part 1 --- openlp/core/lib/htmlbuilder.py | 14 +- openlp/core/lib/imagemanager.py | 4 +- openlp/core/lib/mediamanageritem.py | 2 +- openlp/core/lib/settingstab.py | 6 +- openlp/core/lib/spelltextedit.py | 23 +- openlp/core/lib/theme.py | 17 +- openlp/core/ui/amendthemedialog.py | 799 ---------------------------- openlp/core/ui/amendthemeform.py | 722 ------------------------- openlp/core/ui/maindisplay.py | 2 +- openlp/core/ui/mainwindow.py | 6 +- openlp/core/ui/thememanager.py | 3 +- openlp/core/ui/themewizard.py | 264 ++++++--- 12 files changed, 222 insertions(+), 1640 deletions(-) delete mode 100644 openlp/core/ui/amendthemedialog.py delete mode 100644 openlp/core/ui/amendthemeform.py diff --git a/openlp/core/lib/htmlbuilder.py b/openlp/core/lib/htmlbuilder.py index b2f46e655..9bbaa65d1 100644 --- a/openlp/core/lib/htmlbuilder.py +++ b/openlp/core/lib/htmlbuilder.py @@ -371,7 +371,8 @@ def build_background_css(item, width, height): theme = item.themedata background = u'background-color: black' if theme: - if theme.background_type == BackgroundType.to_string(BackgroundType.Solid): + if theme.background_type == \ + BackgroundType.to_string(BackgroundType.Solid): background = u'background-color: %s' % theme.background_color else: if theme.background_direction == BackgroundGradientType.to_string \ @@ -381,21 +382,24 @@ def build_background_css(item, width, height): u'-webkit-gradient(linear, left top, left bottom, ' \ 'from(%s), to(%s))' % (theme.background_start_color, theme.background_end_color) - elif theme.background_direction == BackgroundGradientType.to_string \ - (BackgroundGradientType.LeftTop): + elif theme.background_direction == \ + BackgroundGradientType.to_string( \ + BackgroundGradientType.LeftTop): background = \ u'background: ' \ u'-webkit-gradient(linear, left top, right bottom, ' \ 'from(%s), to(%s))' % (theme.background_start_color, theme.background_end_color) - elif theme.background_direction == BackgroundGradientType.to_string \ + elif theme.background_direction == \ + BackgroundGradientType.to_string \ (BackgroundGradientType.LeftBottom): background = \ u'background: ' \ u'-webkit-gradient(linear, left bottom, right top, ' \ 'from(%s), to(%s))' % (theme.background_start_color, theme.background_end_color) - elif theme.background_direction == BackgroundGradientType.to_string \ + elif theme.background_direction == \ + BackgroundGradientType.to_string \ (BackgroundGradientType.Vertical): background = \ u'background: -webkit-gradient(linear, left top, ' \ diff --git a/openlp/core/lib/imagemanager.py b/openlp/core/lib/imagemanager.py index 0e0660bda..307ee84df 100644 --- a/openlp/core/lib/imagemanager.py +++ b/openlp/core/lib/imagemanager.py @@ -46,13 +46,13 @@ class ImageThread(QtCore.QThread): """ def __init__(self, manager): QtCore.QThread.__init__(self, None) - self.image_mamager = manager + self.imageManager = manager def run(self): """ Run the thread. """ - self.image_mamager.process() + self.imageManager.process() class Image(object): diff --git a/openlp/core/lib/mediamanageritem.py b/openlp/core/lib/mediamanageritem.py index 130da0c0e..acf24ae22 100644 --- a/openlp/core/lib/mediamanageritem.py +++ b/openlp/core/lib/mediamanageritem.py @@ -508,7 +508,7 @@ class MediaManagerItem(QtGui.QWidget): log.debug(self.plugin.name + u' Add requested') serviceItem = self.parent.serviceManager.getServiceItem() if not serviceItem: - QtGui.QMessageBox.information(self, + QtGui.QMessageBox.information(self, translate('OpenLP.MediaManagerItem', 'No Service Item Selected'), translate('OpenLP.MediaManagerItem', diff --git a/openlp/core/lib/settingstab.py b/openlp/core/lib/settingstab.py index 8de42e7a0..048751006 100644 --- a/openlp/core/lib/settingstab.py +++ b/openlp/core/lib/settingstab.py @@ -87,8 +87,12 @@ class SettingsTab(QtGui.QWidget): """ pass - def postSetUp(self): + def postSetUp(self, postUpdate=False): """ Changes which need to be made after setup of application + + ``postUpdate`` + Indicates if called before or after updates. + """ pass diff --git a/openlp/core/lib/spelltextedit.py b/openlp/core/lib/spelltextedit.py index 603197c07..76271b6a7 100644 --- a/openlp/core/lib/spelltextedit.py +++ b/openlp/core/lib/spelltextedit.py @@ -33,12 +33,15 @@ except ImportError: enchant_available = False # based on code from -# http://john.nachtimwald.com/2009/08/22/qplaintextedit-with-in-line-spell-check/ +# http://john.nachtimwald.com/2009/08/22/qplaintextedit-with-in-line-spell-check from PyQt4 import QtCore, QtGui from openlp.core.lib import html_expands, translate class SpellTextEdit(QtGui.QPlainTextEdit): + """ + Spell checking widget based on QPlanTextEdit. + """ def __init__(self, *args): QtGui.QPlainTextEdit.__init__(self, *args) # Default dictionary based on the current locale. @@ -60,7 +63,7 @@ class SpellTextEdit(QtGui.QPlainTextEdit): QtGui.QPlainTextEdit.mousePressEvent(self, event) def contextMenuEvent(self, event): - popup_menu = self.createStandardContextMenu() + popupMenu = self.createStandardContextMenu() # Select the word under the cursor. cursor = self.textCursor() # only select text if not already selected @@ -81,17 +84,17 @@ class SpellTextEdit(QtGui.QPlainTextEdit): # Only add the spelling suggests to the menu if there are # suggestions. if len(spell_menu.actions()) != 0: - popup_menu.insertSeparator(popup_menu.actions()[0]) - popup_menu.insertMenu(popup_menu.actions()[0], spell_menu) - tag_menu = QtGui.QMenu(translate('OpenLP.SpellTextEdit', + popupMenu.insertSeparator(popupMenu.actions()[0]) + popupMenu.insertMenu(popupMenu.actions()[0], spell_menu) + tagMenu = QtGui.QMenu(translate('OpenLP.SpellTextEdit', 'Formatting Tags')) for html in html_expands: - action = SpellAction( html[u'desc'], tag_menu) + action = SpellAction( html[u'desc'], tagMenu) action.correct.connect(self.htmlTag) - tag_menu.addAction(action) - popup_menu.insertSeparator(popup_menu.actions()[0]) - popup_menu.insertMenu(popup_menu.actions()[0], tag_menu) - popup_menu.exec_(event.globalPos()) + tagMenu.addAction(action) + popupMenu.insertSeparator(popupMenu.actions()[0]) + popupMenu.insertMenu(popupMenu.actions()[0], tagMenu) + popupMenu.exec_(event.globalPos()) def correctWord(self, word): """ diff --git a/openlp/core/lib/theme.py b/openlp/core/lib/theme.py index f211048e3..db31f54da 100644 --- a/openlp/core/lib/theme.py +++ b/openlp/core/lib/theme.py @@ -261,8 +261,9 @@ class ThemeXML(object): def add_font(self, name, color, size, override, fonttype=u'main', bold=u'False', italics=u'False', line_adjustment=0, - xpos=0, ypos=0, width=0, height=0 , outline=u'False', outline_color=u'#ffffff', - outline_pixel=2, shadow=u'False', shadow_color=u'#ffffff', shadow_pixel=5): + xpos=0, ypos=0, width=0, height=0 , outline=u'False', + outline_color=u'#ffffff', outline_pixel=2, shadow=u'False', + shadow_color=u'#ffffff', shadow_pixel=5): """ Add a Font. @@ -441,7 +442,7 @@ class ThemeXML(object): if line: xml = xml[line + 2:] try: - theme_xml = objectify.fromstring(xml) + theme_xml = objectify.fromstring(xml) except etree.XMLSyntaxError: log.exception(u'Invalid xml %s', xml) return @@ -457,7 +458,8 @@ class ThemeXML(object): if element.getparent().tag == u'display': if element.tag.startswith(u'shadow') or \ element.tag.startswith(u'outline'): - self._create_attr(u'font_main', element.tag, element.text) + self._create_attr(u'font_main', element.tag, + element.text) master = element.getparent().tag if element.getparent().tag == u'background': master = element.getparent().tag @@ -471,7 +473,8 @@ class ThemeXML(object): for attr in element.attrib: base_element = attr # correction for the shadow and outline tags - if element.tag == u'shadow' or element.tag == u'outline': + if element.tag == u'shadow' or \ + element.tag == u'outline': if not attr.startswith(element.tag): base_element = element.tag + u'_' + attr self._create_attr(master, base_element, @@ -540,8 +543,8 @@ class ThemeXML(object): """ Change Camel Case string to python string """ - s1 = re.sub(u'(.)([A-Z][a-z]+)', r'\1_\2', name) - return re.sub(u'([a-z0-9])([A-Z])', r'\1_\2', s1).lower() + sub_name = re.sub(u'(.)([A-Z][a-z]+)', r'\1_\2', name) + return re.sub(u'([a-z0-9])([A-Z])', r'\1_\2', sub_name).lower() def _build_xml_from_attrs(self): """ diff --git a/openlp/core/ui/amendthemedialog.py b/openlp/core/ui/amendthemedialog.py deleted file mode 100644 index b77c9cfff..000000000 --- a/openlp/core/ui/amendthemedialog.py +++ /dev/null @@ -1,799 +0,0 @@ -# -*- coding: utf-8 -*- -# vim: autoindent shiftwidth=4 expandtab textwidth=80 tabstop=4 softtabstop=4 - -############################################################################### -# OpenLP - Open Source Lyrics Projection # -# --------------------------------------------------------------------------- # -# Copyright (c) 2008-2010 Raoul Snyman # -# Portions copyright (c) 2008-2010 Tim Bentley, Jonathan Corwin, Michael # -# Gorven, Scott Guerrieri, Meinert Jordan, Andreas Preikschat, Christian # -# Richter, Philip Ridout, Maikel Stuivenberg, Martin Thompson, Jon Tibble, # -# Carsten Tinggaard, Frode Woldsund # -# --------------------------------------------------------------------------- # -# This program is free software; you can redistribute it and/or modify it # -# under the terms of the GNU General Public License as published by the Free # -# Software Foundation; version 2 of the License. # -# # -# This program is distributed in the hope that it will be useful, but WITHOUT # -# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or # -# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for # -# more details. # -# # -# You should have received a copy of the GNU General Public License along # -# with this program; if not, write to the Free Software Foundation, Inc., 59 # -# Temple Place, Suite 330, Boston, MA 02111-1307 USA # -############################################################################### - -from PyQt4 import QtCore, QtGui - -from openlp.core.lib import build_icon, translate - -class Ui_AmendThemeDialog(object): - def setupUi(self, amendThemeDialog): - amendThemeDialog.setObjectName(u'amendThemeDialog') - amendThemeDialog.setWindowModality(QtCore.Qt.ApplicationModal) - amendThemeDialog.resize(586, 651) - icon = build_icon(u':/icon/openlp-logo-16x16.png') - amendThemeDialog.setWindowIcon(icon) - amendThemeDialog.setModal(True) - self.amendThemeLayout = QtGui.QVBoxLayout(amendThemeDialog) - self.amendThemeLayout.setSpacing(8) - self.amendThemeLayout.setMargin(8) - self.amendThemeLayout.setObjectName(u'amendThemeLayout') - self.themeNameWidget = QtGui.QWidget(amendThemeDialog) - self.themeNameWidget.setObjectName(u'themeNameWidget') - self.themeNameLayout = QtGui.QHBoxLayout(self.themeNameWidget) - self.themeNameLayout.setSpacing(8) - self.themeNameLayout.setMargin(0) - self.themeNameLayout.setObjectName(u'themeNameLayout') - self.themeNameLabel = QtGui.QLabel(self.themeNameWidget) - self.themeNameLabel.setObjectName(u'themeNameLabel') - self.themeNameLayout.addWidget(self.themeNameLabel) - self.themeNameEdit = QtGui.QLineEdit(self.themeNameWidget) - self.themeNameEdit.setObjectName(u'themeNameEdit') - self.themeNameLabel.setBuddy(self.themeNameEdit) - self.themeNameLayout.addWidget(self.themeNameEdit) - self.amendThemeLayout.addWidget(self.themeNameWidget) - self.contentWidget = QtGui.QWidget(amendThemeDialog) - self.contentWidget.setObjectName(u'contentWidget') - self.contentLayout = QtGui.QHBoxLayout(self.contentWidget) - self.contentLayout.setSpacing(8) - self.contentLayout.setMargin(0) - self.contentLayout.setObjectName(u'contentLayout') - self.themeTabWidget = QtGui.QTabWidget(self.contentWidget) - self.themeTabWidget.setObjectName(u'themeTabWidget') - self.backgroundTab = QtGui.QWidget() - self.backgroundTab.setObjectName(u'backgroundTab') - self.backgroundLayout = QtGui.QFormLayout(self.backgroundTab) - self.backgroundLayout.setMargin(8) - self.backgroundLayout.setSpacing(8) - self.backgroundLayout.setObjectName(u'backgroundLayout') - self.backgroundTypeLabel = QtGui.QLabel(self.backgroundTab) - self.backgroundTypeLabel.setObjectName(u'backgroundTypeLabel') - self.backgroundLayout.setWidget(1, QtGui.QFormLayout.LabelRole, - self.backgroundTypeLabel) - self.backgroundTypeComboBox = QtGui.QComboBox(self.backgroundTab) - self.backgroundTypeComboBox.setObjectName(u'backgroundTypeComboBox') - self.backgroundTypeComboBox.addItem(QtCore.QString()) - self.backgroundTypeComboBox.addItem(QtCore.QString()) - self.backgroundTypeComboBox.addItem(QtCore.QString()) - self.backgroundLayout.setWidget(1, QtGui.QFormLayout.FieldRole, - self.backgroundTypeComboBox) - self.color1Label = QtGui.QLabel(self.backgroundTab) - self.color1Label.setObjectName(u'color1Label') - self.backgroundLayout.setWidget(2, QtGui.QFormLayout.LabelRole, - self.color1Label) - self.color1PushButton = QtGui.QPushButton(self.backgroundTab) - self.color1PushButton.setObjectName(u'color1PushButton') - self.backgroundLayout.setWidget(2, QtGui.QFormLayout.FieldRole, - self.color1PushButton) - self.color2Label = QtGui.QLabel(self.backgroundTab) - self.color2Label.setObjectName(u'color2Label') - self.backgroundLayout.setWidget(3, QtGui.QFormLayout.LabelRole, - self.color2Label) - self.color2PushButton = QtGui.QPushButton(self.backgroundTab) - self.color2PushButton.setObjectName(u'color2PushButton') - self.backgroundLayout.setWidget(3, QtGui.QFormLayout.FieldRole, - self.color2PushButton) - self.imageLabel = QtGui.QLabel(self.backgroundTab) - self.imageLabel.setObjectName(u'imageLabel') - self.backgroundLayout.setWidget(4, QtGui.QFormLayout.LabelRole, - self.imageLabel) - self.gradientLabel = QtGui.QLabel(self.backgroundTab) - self.gradientLabel.setObjectName(u'gradientLabel') - self.backgroundLayout.setWidget(6, QtGui.QFormLayout.LabelRole, - self.gradientLabel) - self.gradientComboBox = QtGui.QComboBox(self.backgroundTab) - self.gradientComboBox.setObjectName(u'gradientComboBox') - self.gradientComboBox.addItem(QtCore.QString()) - self.gradientComboBox.addItem(QtCore.QString()) - self.gradientComboBox.addItem(QtCore.QString()) - self.backgroundLayout.setWidget(6, QtGui.QFormLayout.FieldRole, - self.gradientComboBox) - self.imageFilenameWidget = QtGui.QWidget(self.backgroundTab) - self.imageFilenameWidget.setObjectName(u'imageFilenameWidget') - self.horizontalLayout2 = QtGui.QHBoxLayout(self.imageFilenameWidget) - self.horizontalLayout2.setSpacing(0) - self.horizontalLayout2.setMargin(0) - self.horizontalLayout2.setObjectName(u'horizontalLayout2') - self.imageLineEdit = QtGui.QLineEdit(self.imageFilenameWidget) - self.imageLineEdit.setObjectName(u'imageLineEdit') - self.horizontalLayout2.addWidget(self.imageLineEdit) - self.imageToolButton = QtGui.QToolButton(self.imageFilenameWidget) - self.imageToolButton.setIcon(build_icon(u':/general/general_open.png')) - self.imageToolButton.setObjectName(u'imageToolButton') - self.imageToolButton.setAutoRaise(True) - self.horizontalLayout2.addWidget(self.imageToolButton) - self.backgroundLayout.setWidget(4, QtGui.QFormLayout.FieldRole, - self.imageFilenameWidget) - self.themeTabWidget.addTab(self.backgroundTab, u'') - self.fontMainTab = QtGui.QWidget() - self.fontMainTab.setObjectName(u'fontMainTab') - self.fontMainLayout = QtGui.QHBoxLayout(self.fontMainTab) - self.fontMainLayout.setSpacing(8) - self.fontMainLayout.setMargin(8) - self.fontMainLayout.setObjectName(u'fontMainLayout') - self.mainLeftWidget = QtGui.QWidget(self.fontMainTab) - self.mainLeftWidget.setObjectName(u'mainLeftWidget') - self.mainLeftLayout = QtGui.QVBoxLayout(self.mainLeftWidget) - self.mainLeftLayout.setSpacing(8) - self.mainLeftLayout.setMargin(0) - self.mainLeftLayout.setObjectName(u'mainLeftLayout') - self.fontMainGroupBox = QtGui.QGroupBox(self.mainLeftWidget) - self.fontMainGroupBox.setObjectName(u'fontMainGroupBox') - self.mainFontLayout = QtGui.QFormLayout(self.fontMainGroupBox) - self.mainFontLayout.setFormAlignment(QtCore.Qt.AlignLeading | - QtCore.Qt.AlignLeft | QtCore.Qt.AlignVCenter) - self.mainFontLayout.setMargin(8) - self.mainFontLayout.setSpacing(8) - self.mainFontLayout.setObjectName(u'mainFontLayout') - self.fontMainlabel = QtGui.QLabel(self.fontMainGroupBox) - self.fontMainlabel.setObjectName(u'fontMainlabel') - self.mainFontLayout.setWidget(0, QtGui.QFormLayout.LabelRole, - self.fontMainlabel) - self.fontMainComboBox = QtGui.QFontComboBox(self.fontMainGroupBox) - self.fontMainComboBox.setObjectName(u'fontMainComboBox') - self.mainFontLayout.setWidget(0, QtGui.QFormLayout.FieldRole, - self.fontMainComboBox) - self.fontMainColorLabel = QtGui.QLabel(self.fontMainGroupBox) - self.fontMainColorLabel.setObjectName(u'fontMainColorLabel') - self.mainFontLayout.setWidget(1, QtGui.QFormLayout.LabelRole, - self.fontMainColorLabel) - self.fontMainColorPushButton = QtGui.QPushButton(self.fontMainGroupBox) - self.fontMainColorPushButton.setObjectName(u'fontMainColorPushButton') - self.mainFontLayout.setWidget(1, QtGui.QFormLayout.FieldRole, - self.fontMainColorPushButton) - self.fontMainSize = QtGui.QLabel(self.fontMainGroupBox) - self.fontMainSize.setObjectName(u'fontMainSize') - self.mainFontLayout.setWidget(2, QtGui.QFormLayout.LabelRole, - self.fontMainSize) - self.fontMainSizeSpinBox = QtGui.QSpinBox(self.fontMainGroupBox) - defaultSizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Minimum, - QtGui.QSizePolicy.Fixed) - defaultSizePolicy.setHeightForWidth( - self.fontMainSizeSpinBox.sizePolicy().hasHeightForWidth()) - self.fontMainSizeSpinBox.setSizePolicy(defaultSizePolicy) - self.fontMainSizeSpinBox.setMinimumSize(QtCore.QSize(70, 0)) - self.fontMainSizeSpinBox.setProperty(u'value', QtCore.QVariant(16)) - self.fontMainSizeSpinBox.setMaximum(999) - self.fontMainSizeSpinBox.setObjectName(u'fontMainSizeSpinBox') - self.mainFontLayout.setWidget(2, QtGui.QFormLayout.FieldRole, - self.fontMainSizeSpinBox) - self.fontMainWeightComboBox = QtGui.QComboBox(self.fontMainGroupBox) - self.fontMainWeightComboBox.setObjectName(u'fontMainWeightComboBox') - self.fontMainWeightComboBox.addItem(QtCore.QString()) - self.fontMainWeightComboBox.addItem(QtCore.QString()) - self.fontMainWeightComboBox.addItem(QtCore.QString()) - self.fontMainWeightComboBox.addItem(QtCore.QString()) - self.mainFontLayout.setWidget(3, QtGui.QFormLayout.FieldRole, - self.fontMainWeightComboBox) - self.fontMainWeightLabel = QtGui.QLabel(self.fontMainGroupBox) - self.fontMainWeightLabel.setObjectName(u'fontMainWeightLabel') - self.mainFontLayout.setWidget(3, QtGui.QFormLayout.LabelRole, - self.fontMainWeightLabel) - self.mainLeftLayout.addWidget(self.fontMainGroupBox) - self.fontMainWrapLineAdjustmentLabel = QtGui.QLabel( - self.fontMainGroupBox) - self.fontMainWrapLineAdjustmentLabel.setObjectName( - u'fontMainWrapLineAdjustmentLabel') - self.mainFontLayout.setWidget(4, QtGui.QFormLayout.LabelRole, - self.fontMainWrapLineAdjustmentLabel) - self.fontMainLineAdjustmentSpinBox = QtGui.QSpinBox( - self.fontMainGroupBox) - self.fontMainLineAdjustmentSpinBox.setObjectName( - u'fontMainLineAdjustmentSpinBox') - self.fontMainLineAdjustmentSpinBox.setMinimum(-99) - self.mainFontLayout.setWidget(4, QtGui.QFormLayout.FieldRole, - self.fontMainLineAdjustmentSpinBox) - self.fontMainLinesPageLabel = QtGui.QLabel(self.fontMainGroupBox) - self.fontMainLinesPageLabel.setObjectName(u'fontMainLinesPageLabel') - self.mainFontLayout.addRow(self.fontMainLinesPageLabel) - spacerItem1 = QtGui.QSpacerItem(20, 40, QtGui.QSizePolicy.Minimum, - QtGui.QSizePolicy.Expanding) - self.mainLeftLayout.addItem(spacerItem1) - self.fontMainLayout.addWidget(self.mainLeftWidget) - self.mainRightWidget = QtGui.QWidget(self.fontMainTab) - self.mainRightWidget.setObjectName(u'mainRightWidget') - self.mainRightLayout = QtGui.QVBoxLayout(self.mainRightWidget) - self.mainRightLayout.setSpacing(8) - self.mainRightLayout.setMargin(0) - self.mainRightLayout.setObjectName(u'mainRightLayout') - self.mainLocationGroupBox = QtGui.QGroupBox(self.mainRightWidget) - self.mainLocationGroupBox.setObjectName(u'mainLocationGroupBox') - self.mainLocationLayout = QtGui.QFormLayout(self.mainLocationGroupBox) - self.mainLocationLayout.setMargin(8) - self.mainLocationLayout.setSpacing(8) - self.mainLocationLayout.setObjectName(u'mainLocationLayout') - self.defaultLocationLabel = QtGui.QLabel(self.mainLocationGroupBox) - self.defaultLocationLabel.setObjectName(u'defaultLocationLabel') - self.mainLocationLayout.setWidget(0, QtGui.QFormLayout.LabelRole, - self.defaultLocationLabel) - self.fontMainDefaultCheckBox = QtGui.QCheckBox( - self.mainLocationGroupBox) - self.fontMainDefaultCheckBox.setTristate(False) - self.fontMainDefaultCheckBox.setObjectName(u'fontMainDefaultCheckBox') - self.mainLocationLayout.setWidget(0, QtGui.QFormLayout.FieldRole, - self.fontMainDefaultCheckBox) - self.fontMainXLabel = QtGui.QLabel(self.mainLocationGroupBox) - self.fontMainXLabel.setObjectName(u'fontMainXLabel') - self.mainLocationLayout.setWidget(1, QtGui.QFormLayout.LabelRole, - self.fontMainXLabel) - self.fontMainYLabel = QtGui.QLabel(self.mainLocationGroupBox) - self.fontMainYLabel.setObjectName(u'fontMainYLabel') - self.mainLocationLayout.setWidget(2, QtGui.QFormLayout.LabelRole, - self.fontMainYLabel) - self.fontMainWidthLabel = QtGui.QLabel(self.mainLocationGroupBox) - self.fontMainWidthLabel.setObjectName(u'fontMainWidthLabel') - self.mainLocationLayout.setWidget(3, QtGui.QFormLayout.LabelRole, - self.fontMainWidthLabel) - self.fontMainHeightLabel = QtGui.QLabel(self.mainLocationGroupBox) - self.fontMainHeightLabel.setObjectName(u'fontMainHeightLabel') - self.mainLocationLayout.setWidget(4, QtGui.QFormLayout.LabelRole, - self.fontMainHeightLabel) - self.fontMainXSpinBox = QtGui.QSpinBox(self.mainLocationGroupBox) - defaultSizePolicy.setHeightForWidth( - self.fontMainXSpinBox.sizePolicy().hasHeightForWidth()) - self.fontMainXSpinBox.setSizePolicy(defaultSizePolicy) - self.fontMainXSpinBox.setMinimumSize(QtCore.QSize(78, 0)) - self.fontMainXSpinBox.setProperty(u'value', QtCore.QVariant(0)) - self.fontMainXSpinBox.setMaximum(9999) - self.fontMainXSpinBox.setObjectName(u'fontMainXSpinBox') - self.mainLocationLayout.setWidget(1, QtGui.QFormLayout.FieldRole, - self.fontMainXSpinBox) - self.fontMainYSpinBox = QtGui.QSpinBox(self.mainLocationGroupBox) - defaultSizePolicy.setHeightForWidth( - self.fontMainYSpinBox.sizePolicy().hasHeightForWidth()) - self.fontMainYSpinBox.setSizePolicy(defaultSizePolicy) - self.fontMainYSpinBox.setMinimumSize(QtCore.QSize(78, 0)) - self.fontMainYSpinBox.setMaximum(9999) - self.fontMainYSpinBox.setObjectName(u'fontMainYSpinBox') - self.mainLocationLayout.setWidget(2, QtGui.QFormLayout.FieldRole, - self.fontMainYSpinBox) - self.fontMainWidthSpinBox = QtGui.QSpinBox(self.mainLocationGroupBox) - defaultSizePolicy.setHeightForWidth( - self.fontMainWidthSpinBox.sizePolicy().hasHeightForWidth()) - self.fontMainWidthSpinBox.setSizePolicy(defaultSizePolicy) - self.fontMainWidthSpinBox.setMinimumSize(QtCore.QSize(78, 0)) - self.fontMainWidthSpinBox.setMaximum(9999) - self.fontMainWidthSpinBox.setObjectName(u'fontMainWidthSpinBox') - self.mainLocationLayout.setWidget(3, QtGui.QFormLayout.FieldRole, - self.fontMainWidthSpinBox) - self.fontMainHeightSpinBox = QtGui.QSpinBox(self.mainLocationGroupBox) - defaultSizePolicy.setHeightForWidth( - self.fontMainHeightSpinBox.sizePolicy().hasHeightForWidth()) - self.fontMainHeightSpinBox.setSizePolicy(defaultSizePolicy) - self.fontMainHeightSpinBox.setMinimumSize(QtCore.QSize(78, 0)) - self.fontMainHeightSpinBox.setMaximum(9999) - self.fontMainHeightSpinBox.setObjectName(u'fontMainHeightSpinBox') - self.mainLocationLayout.setWidget(4, QtGui.QFormLayout.FieldRole, - self.fontMainHeightSpinBox) - self.mainRightLayout.addWidget(self.mainLocationGroupBox) - spacerItem2 = QtGui.QSpacerItem(20, 40, QtGui.QSizePolicy.Minimum, - QtGui.QSizePolicy.Expanding) - self.mainRightLayout.addItem(spacerItem2) - self.fontMainLayout.addWidget(self.mainRightWidget) - self.themeTabWidget.addTab(self.fontMainTab, u'') - self.fontFooterTab = QtGui.QWidget() - self.fontFooterTab.setObjectName(u'fontFooterTab') - self.fontFooterLayout = QtGui.QHBoxLayout(self.fontFooterTab) - self.fontFooterLayout.setSpacing(8) - self.fontFooterLayout.setMargin(8) - self.fontFooterLayout.setObjectName(u'fontFooterLayout') - self.footerLeftWidget = QtGui.QWidget(self.fontFooterTab) - self.footerLeftWidget.setObjectName(u'footerLeftWidget') - self.footerLeftLayout = QtGui.QVBoxLayout(self.footerLeftWidget) - self.footerLeftLayout.setSpacing(8) - self.footerLeftLayout.setMargin(0) - self.footerLeftLayout.setObjectName(u'footerLeftLayout') - self.footerFontGroupBox = QtGui.QGroupBox(self.footerLeftWidget) - self.footerFontGroupBox.setObjectName(u'footerFontGroupBox') - self.footerFontLayout = QtGui.QFormLayout(self.footerFontGroupBox) - self.footerFontLayout.setFieldGrowthPolicy( - QtGui.QFormLayout.ExpandingFieldsGrow) - self.footerFontLayout.setFormAlignment(QtCore.Qt.AlignLeading | - QtCore.Qt.AlignLeft | QtCore.Qt.AlignVCenter) - self.footerFontLayout.setMargin(8) - self.footerFontLayout.setSpacing(8) - self.footerFontLayout.setObjectName(u'footerFontLayout') - self.fontFooterLabel = QtGui.QLabel(self.footerFontGroupBox) - self.fontFooterLabel.setObjectName(u'fontFooterLabel') - self.footerFontLayout.setWidget(0, QtGui.QFormLayout.LabelRole, - self.fontFooterLabel) - self.fontFooterComboBox = QtGui.QFontComboBox(self.footerFontGroupBox) - self.fontFooterComboBox.setObjectName(u'fontFooterComboBox') - self.footerFontLayout.setWidget(0, QtGui.QFormLayout.FieldRole, - self.fontFooterComboBox) - self.fontFooterColorLabel = QtGui.QLabel(self.footerFontGroupBox) - self.fontFooterColorLabel.setObjectName(u'fontFooterColorLabel') - self.footerFontLayout.setWidget(1, QtGui.QFormLayout.LabelRole, - self.fontFooterColorLabel) - self.fontFooterColorPushButton = QtGui.QPushButton( - self.footerFontGroupBox) - self.fontFooterColorPushButton.setObjectName( - u'fontFooterColorPushButton') - self.footerFontLayout.setWidget(1, QtGui.QFormLayout.FieldRole, - self.fontFooterColorPushButton) - self.fontFooterSizeLabel = QtGui.QLabel(self.footerFontGroupBox) - self.fontFooterSizeLabel.setObjectName(u'fontFooterSizeLabel') - self.footerFontLayout.setWidget(2, QtGui.QFormLayout.LabelRole, - self.fontFooterSizeLabel) - self.fontFooterSizeSpinBox = QtGui.QSpinBox(self.footerFontGroupBox) - defaultSizePolicy.setHeightForWidth( - self.fontFooterSizeSpinBox.sizePolicy().hasHeightForWidth()) - self.fontFooterSizeSpinBox.setSizePolicy(defaultSizePolicy) - self.fontFooterSizeSpinBox.setMinimumSize(QtCore.QSize(70, 0)) - self.fontFooterSizeSpinBox.setProperty(u'value', QtCore.QVariant(10)) - self.fontFooterSizeSpinBox.setMaximum(999) - self.fontFooterSizeSpinBox.setObjectName(u'fontFooterSizeSpinBox') - self.footerFontLayout.setWidget(2, QtGui.QFormLayout.FieldRole, - self.fontFooterSizeSpinBox) - self.fontFooterWeightComboBox = QtGui.QComboBox(self.footerFontGroupBox) - self.fontFooterWeightComboBox.setObjectName(u'fontFooterWeightComboBox') - self.fontFooterWeightComboBox.addItem(QtCore.QString()) - self.fontFooterWeightComboBox.addItem(QtCore.QString()) - self.fontFooterWeightComboBox.addItem(QtCore.QString()) - self.fontFooterWeightComboBox.addItem(QtCore.QString()) - self.footerFontLayout.setWidget(3, QtGui.QFormLayout.FieldRole, - self.fontFooterWeightComboBox) - self.fontFooterWeightLabel = QtGui.QLabel(self.footerFontGroupBox) - self.fontFooterWeightLabel.setObjectName(u'fontFooterWeightLabel') - self.footerFontLayout.setWidget(3, QtGui.QFormLayout.LabelRole, - self.fontFooterWeightLabel) - self.footerLeftLayout.addWidget(self.footerFontGroupBox) - spacerItem3 = QtGui.QSpacerItem(20, 40, QtGui.QSizePolicy.Minimum, - QtGui.QSizePolicy.Expanding) - self.footerLeftLayout.addItem(spacerItem3) - self.fontFooterLayout.addWidget(self.footerLeftWidget) - self.footerRightWidget = QtGui.QWidget(self.fontFooterTab) - self.footerRightWidget.setObjectName(u'footerRightWidget') - self.footerRightLayout = QtGui.QVBoxLayout(self.footerRightWidget) - self.footerRightLayout.setSpacing(8) - self.footerRightLayout.setMargin(0) - self.footerRightLayout.setObjectName(u'footerRightLayout') - self.locationFooterGroupBox = QtGui.QGroupBox(self.footerRightWidget) - self.locationFooterGroupBox.setObjectName(u'locationFooterGroupBox') - self.locationFooterLayout = QtGui.QFormLayout( - self.locationFooterGroupBox) - self.locationFooterLayout.setFieldGrowthPolicy( - QtGui.QFormLayout.ExpandingFieldsGrow) - self.locationFooterLayout.setFormAlignment(QtCore.Qt.AlignLeading | - QtCore.Qt.AlignLeft | QtCore.Qt.AlignVCenter) - self.locationFooterLayout.setMargin(8) - self.locationFooterLayout.setSpacing(8) - self.locationFooterLayout.setObjectName(u'locationFooterLayout') - self.fontFooterDefaultLabel = QtGui.QLabel(self.locationFooterGroupBox) - self.fontFooterDefaultLabel.setObjectName(u'fontFooterDefaultLabel') - self.locationFooterLayout.setWidget(0, QtGui.QFormLayout.LabelRole, - self.fontFooterDefaultLabel) - self.fontFooterDefaultCheckBox = QtGui.QCheckBox( - self.locationFooterGroupBox) - self.fontFooterDefaultCheckBox.setTristate(False) - self.fontFooterDefaultCheckBox.setObjectName( - u'fontFooterDefaultCheckBox') - self.locationFooterLayout.setWidget(0, QtGui.QFormLayout.FieldRole, - self.fontFooterDefaultCheckBox) - self.fontFooterXLabel = QtGui.QLabel(self.locationFooterGroupBox) - self.fontFooterXLabel.setObjectName(u'fontFooterXLabel') - self.locationFooterLayout.setWidget(1, QtGui.QFormLayout.LabelRole, - self.fontFooterXLabel) - self.fontFooterYLabel = QtGui.QLabel(self.locationFooterGroupBox) - self.fontFooterYLabel.setObjectName(u'fontFooterYLabel') - self.locationFooterLayout.setWidget(2, QtGui.QFormLayout.LabelRole, - self.fontFooterYLabel) - self.fontFooterWidthLabel = QtGui.QLabel(self.locationFooterGroupBox) - self.fontFooterWidthLabel.setObjectName(u'fontFooterWidthLabel') - self.locationFooterLayout.setWidget(3, QtGui.QFormLayout.LabelRole, - self.fontFooterWidthLabel) - self.fontFooterHeightLabel = QtGui.QLabel(self.locationFooterGroupBox) - self.fontFooterHeightLabel.setObjectName(u'fontFooterHeightLabel') - self.locationFooterLayout.setWidget(4, QtGui.QFormLayout.LabelRole, - self.fontFooterHeightLabel) - self.fontFooterXSpinBox = QtGui.QSpinBox(self.locationFooterGroupBox) - defaultSizePolicy.setHeightForWidth( - self.fontFooterXSpinBox.sizePolicy().hasHeightForWidth()) - self.fontFooterXSpinBox.setSizePolicy(defaultSizePolicy) - self.fontFooterXSpinBox.setMinimumSize(QtCore.QSize(78, 0)) - self.fontFooterXSpinBox.setProperty(u'value', QtCore.QVariant(0)) - self.fontFooterXSpinBox.setMaximum(9999) - self.fontFooterXSpinBox.setObjectName(u'fontFooterXSpinBox') - self.locationFooterLayout.setWidget(1, QtGui.QFormLayout.FieldRole, - self.fontFooterXSpinBox) - self.fontFooterYSpinBox = QtGui.QSpinBox(self.locationFooterGroupBox) - defaultSizePolicy.setHeightForWidth( - self.fontFooterXSpinBox.sizePolicy().hasHeightForWidth()) - self.fontFooterYSpinBox.setSizePolicy(defaultSizePolicy) - self.fontFooterYSpinBox.setMinimumSize(QtCore.QSize(78, 0)) - self.fontFooterYSpinBox.setProperty(u'value', QtCore.QVariant(0)) - self.fontFooterYSpinBox.setMaximum(9999) - self.fontFooterYSpinBox.setObjectName(u'fontFooterYSpinBox') - self.locationFooterLayout.setWidget(2, QtGui.QFormLayout.FieldRole, - self.fontFooterYSpinBox) - self.fontFooterWidthSpinBox = QtGui.QSpinBox( - self.locationFooterGroupBox) - self.fontFooterWidthSpinBox.setMinimumSize(QtCore.QSize(78, 0)) - self.fontFooterWidthSpinBox.setMaximum(9999) - self.fontFooterWidthSpinBox.setObjectName(u'fontFooterWidthSpinBox') - self.locationFooterLayout.setWidget(3, QtGui.QFormLayout.FieldRole, - self.fontFooterWidthSpinBox) - self.fontFooterHeightSpinBox = QtGui.QSpinBox( - self.locationFooterGroupBox) - self.fontFooterHeightSpinBox.setMinimumSize(QtCore.QSize(78, 0)) - self.fontFooterHeightSpinBox.setMaximum(9999) - self.fontFooterHeightSpinBox.setObjectName(u'fontFooterHeightSpinBox') - self.locationFooterLayout.setWidget(4, QtGui.QFormLayout.FieldRole, - self.fontFooterHeightSpinBox) - self.footerRightLayout.addWidget(self.locationFooterGroupBox) - spacerItem4 = QtGui.QSpacerItem(20, 40, QtGui.QSizePolicy.Minimum, - QtGui.QSizePolicy.Expanding) - self.footerRightLayout.addItem(spacerItem4) - self.fontFooterLayout.addWidget(self.footerRightWidget) - self.themeTabWidget.addTab(self.fontFooterTab, u'') - self.otherOptionsTab = QtGui.QWidget() - self.otherOptionsTab.setObjectName(u'otherOptionsTab') - self.otherOptionsLayout = QtGui.QHBoxLayout(self.otherOptionsTab) - self.otherOptionsLayout.setSpacing(8) - self.otherOptionsLayout.setMargin(8) - self.otherOptionsLayout.setObjectName(u'otherOptionsLayout') - self.optionsLeftWidget = QtGui.QWidget(self.otherOptionsTab) - self.optionsLeftWidget.setObjectName(u'optionsLeftWidget') - self.optionsLeftLayout = QtGui.QVBoxLayout(self.optionsLeftWidget) - self.optionsLeftLayout.setSpacing(8) - self.optionsLeftLayout.setMargin(0) - self.optionsLeftLayout.setObjectName(u'optionsLeftLayout') - self.outlineGroupBox = QtGui.QGroupBox(self.optionsLeftWidget) - self.outlineGroupBox.setObjectName(u'outlineGroupBox') - self.verticalLayout = QtGui.QVBoxLayout(self.outlineGroupBox) - self.verticalLayout.setSpacing(8) - self.verticalLayout.setMargin(8) - self.verticalLayout.setObjectName(u'verticalLayout') - self.outlineWidget = QtGui.QWidget(self.outlineGroupBox) - self.outlineWidget.setObjectName(u'outlineWidget') - self.outlineLayout = QtGui.QFormLayout(self.outlineWidget) - self.outlineLayout.setMargin(0) - self.outlineLayout.setSpacing(8) - self.outlineLayout.setObjectName(u'outlineLayout') - self.outlineCheckBox = QtGui.QCheckBox(self.outlineWidget) - self.outlineCheckBox.setObjectName(u'outlineCheckBox') - self.outlineLayout.setWidget(0, QtGui.QFormLayout.FieldRole, - self.outlineCheckBox) - self.outlineSpinBox = QtGui.QSpinBox(self.outlineWidget) - self.outlineSpinBox.setObjectName(u'outlineSpinBox') - self.outlineSpinBox.setMaximum(10) - self.outlineLayout.setWidget(1, QtGui.QFormLayout.FieldRole, - self.outlineSpinBox) - self.outlineSpinBoxLabel = QtGui.QLabel(self.outlineWidget) - self.outlineSpinBoxLabel.setObjectName(u'outlineSpinBoxLabel') - self.outlineLayout.setWidget(1, QtGui.QFormLayout.LabelRole, - self.outlineSpinBoxLabel) - self.outlineColorLabel = QtGui.QLabel(self.outlineWidget) - self.outlineColorLabel.setObjectName(u'outlineColorLabel') - self.outlineLayout.setWidget(2, QtGui.QFormLayout.LabelRole, - self.outlineColorLabel) - self.outlineColorPushButton = QtGui.QPushButton(self.outlineWidget) - self.outlineColorPushButton.setObjectName(u'outlineColorPushButton') - self.outlineLayout.setWidget(2, QtGui.QFormLayout.FieldRole, - self.outlineColorPushButton) - self.outlineEnabledLabel = QtGui.QLabel(self.outlineWidget) - self.outlineEnabledLabel.setObjectName(u'outlineEnabledLabel') - self.outlineLayout.setWidget(0, QtGui.QFormLayout.LabelRole, - self.outlineEnabledLabel) - self.verticalLayout.addWidget(self.outlineWidget) - self.optionsLeftLayout.addWidget(self.outlineGroupBox) - self.shadowGroupBox = QtGui.QGroupBox(self.optionsLeftWidget) - self.shadowGroupBox.setObjectName(u'shadowGroupBox') - self.verticalLayout = QtGui.QVBoxLayout(self.shadowGroupBox) - self.verticalLayout.setSpacing(8) - self.verticalLayout.setMargin(8) - self.verticalLayout.setObjectName(u'verticalLayout') - self.shadowWidget = QtGui.QWidget(self.shadowGroupBox) - self.shadowWidget.setObjectName(u'shadowWidget') - self.shadowLayout = QtGui.QFormLayout(self.shadowWidget) - self.shadowLayout.setMargin(0) - self.shadowLayout.setSpacing(8) - self.shadowLayout.setObjectName(u'shadowLayout') - self.shadowCheckBox = QtGui.QCheckBox(self.shadowWidget) - self.shadowCheckBox.setObjectName(u'shadowCheckBox') - self.shadowLayout.setWidget(0, QtGui.QFormLayout.FieldRole, - self.shadowCheckBox) - self.shadowSpinBox = QtGui.QSpinBox(self.outlineWidget) - self.shadowSpinBox.setObjectName(u'shadowSpinBox') - self.shadowSpinBox.setMaximum(10) - self.shadowLayout.setWidget(1, QtGui.QFormLayout.FieldRole, - self.shadowSpinBox) - self.shadowSpinBoxLabel = QtGui.QLabel(self.outlineWidget) - self.shadowSpinBoxLabel.setObjectName(u'shadowSpinBoxLabel') - self.shadowLayout.setWidget(1, QtGui.QFormLayout.LabelRole, - self.shadowSpinBoxLabel) - self.shadowColorLabel = QtGui.QLabel(self.shadowWidget) - self.shadowColorLabel.setObjectName(u'shadowColorLabel') - self.shadowLayout.setWidget(2, QtGui.QFormLayout.LabelRole, - self.shadowColorLabel) - self.shadowColorPushButton = QtGui.QPushButton(self.shadowWidget) - self.shadowColorPushButton.setObjectName(u'shadowColorPushButton') - self.shadowLayout.setWidget(2, QtGui.QFormLayout.FieldRole, - self.shadowColorPushButton) - self.shadowEnabledLabel = QtGui.QLabel(self.shadowWidget) - self.shadowEnabledLabel.setObjectName(u'shadowEnabledLabel') - self.shadowLayout.setWidget(0, QtGui.QFormLayout.LabelRole, - self.shadowEnabledLabel) - self.verticalLayout.addWidget(self.shadowWidget) - self.optionsLeftLayout.addWidget(self.shadowGroupBox) - spacerItem5 = QtGui.QSpacerItem(20, 40, QtGui.QSizePolicy.Minimum, - QtGui.QSizePolicy.Expanding) - self.optionsLeftLayout.addItem(spacerItem5) - self.otherOptionsLayout.addWidget(self.optionsLeftWidget) - self.optionsRightWidget = QtGui.QWidget(self.otherOptionsTab) - self.optionsRightWidget.setObjectName(u'optionsRightWidget') - self.optionsRightLayout = QtGui.QVBoxLayout(self.optionsRightWidget) - self.optionsRightLayout.setSpacing(8) - self.optionsRightLayout.setMargin(0) - self.optionsRightLayout.setObjectName(u'optionsRightLayout') - self.alignmentGroupBox = QtGui.QGroupBox(self.optionsRightWidget) - self.alignmentGroupBox.setObjectName(u'alignmentGroupBox') - self.gridLayout4 = QtGui.QGridLayout(self.alignmentGroupBox) - self.gridLayout4.setObjectName(u'gridLayout4') - self.horizontalLabel = QtGui.QLabel(self.alignmentGroupBox) - self.horizontalLabel.setObjectName(u'horizontalLabel') - self.gridLayout4.addWidget(self.horizontalLabel, 0, 0, 1, 1) - self.horizontalComboBox = QtGui.QComboBox(self.alignmentGroupBox) - self.horizontalComboBox.setObjectName(u'horizontalComboBox') - self.horizontalComboBox.addItem(QtCore.QString()) - self.horizontalComboBox.addItem(QtCore.QString()) - self.horizontalComboBox.addItem(QtCore.QString()) - self.gridLayout4.addWidget(self.horizontalComboBox, 0, 1, 1, 1) - self.verticalLabel = QtGui.QLabel(self.alignmentGroupBox) - self.verticalLabel.setObjectName(u'verticalLabel') - self.gridLayout4.addWidget(self.verticalLabel, 1, 0, 1, 1) - self.verticalComboBox = QtGui.QComboBox(self.alignmentGroupBox) - self.verticalComboBox.setObjectName(u'verticalComboBox') - self.verticalComboBox.addItem(QtCore.QString()) - self.verticalComboBox.addItem(QtCore.QString()) - self.verticalComboBox.addItem(QtCore.QString()) - self.gridLayout4.addWidget(self.verticalComboBox, 1, 1, 1, 1) - self.optionsRightLayout.addWidget(self.alignmentGroupBox) - self.transitionGroupBox = QtGui.QGroupBox(self.optionsRightWidget) - self.transitionGroupBox.setObjectName(u'transitionGroupBox') - self.gridLayout5 = QtGui.QGridLayout(self.transitionGroupBox) - self.gridLayout5.setObjectName(u'gridLayout5') - self.slideTransitionCheckBoxLabel = QtGui.QLabel( - self.transitionGroupBox) - self.slideTransitionCheckBoxLabel.setObjectName( - u'slideTransitionCheckBoxLabel') - self.gridLayout5.addWidget( - self.slideTransitionCheckBoxLabel, 0, 0, 1, 1) - self.slideTransitionCheckBox = QtGui.QCheckBox(self.alignmentGroupBox) - self.slideTransitionCheckBox.setTristate(False) - self.gridLayout5.addWidget(self.slideTransitionCheckBox, 0, 1, 1, 1) - self.optionsRightLayout.addWidget(self.transitionGroupBox) - spacerItem6 = QtGui.QSpacerItem(20, 40, QtGui.QSizePolicy.Minimum, - QtGui.QSizePolicy.Expanding) - self.optionsRightLayout.addItem(spacerItem6) - self.otherOptionsLayout.addWidget(self.optionsRightWidget) - self.themeTabWidget.addTab(self.otherOptionsTab, u'') - self.contentLayout.addWidget(self.themeTabWidget) - self.amendThemeLayout.addWidget(self.contentWidget) - self.previewGroupBox = QtGui.QGroupBox(amendThemeDialog) - self.previewGroupBox.setObjectName(u'previewGroupBox') - self.themePreviewLayout = QtGui.QHBoxLayout(self.previewGroupBox) - self.themePreviewLayout.setSpacing(8) - self.themePreviewLayout.setMargin(8) - self.themePreviewLayout.setObjectName(u'themePreviewLayout') - spacerItem7 = QtGui.QSpacerItem(40, 20, QtGui.QSizePolicy.Expanding, - QtGui.QSizePolicy.Expanding) - self.themePreviewLayout.addItem(spacerItem7) - self.themePreview = QtGui.QLabel(self.previewGroupBox) - sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Fixed, - QtGui.QSizePolicy.Fixed) - sizePolicy.setHorizontalStretch(0) - sizePolicy.setVerticalStretch(0) - sizePolicy.setHeightForWidth( - self.themePreview.sizePolicy().hasHeightForWidth()) - self.themePreview.setSizePolicy(sizePolicy) - self.themePreview.setMaximumSize(QtCore.QSize(300, 225)) - self.themePreview.setFrameShape(QtGui.QFrame.WinPanel) - self.themePreview.setFrameShadow(QtGui.QFrame.Sunken) - self.themePreview.setLineWidth(1) - self.themePreview.setScaledContents(True) - self.themePreview.setObjectName(u'themePreview') - self.themePreviewLayout.addWidget(self.themePreview) - spacerItem8 = QtGui.QSpacerItem(40, 20, QtGui.QSizePolicy.Expanding, - QtGui.QSizePolicy.Expanding) - self.themePreviewLayout.addItem(spacerItem8) - self.amendThemeLayout.addWidget(self.previewGroupBox) - self.themeButtonBox = QtGui.QDialogButtonBox(amendThemeDialog) - self.themeButtonBox.setStandardButtons(QtGui.QDialogButtonBox.Cancel | - QtGui.QDialogButtonBox.Ok) - self.themeButtonBox.setObjectName(u'themeButtonBox') - self.amendThemeLayout.addWidget(self.themeButtonBox) - - self.retranslateUi(amendThemeDialog) - self.themeTabWidget.setCurrentIndex(0) - QtCore.QObject.connect(self.themeButtonBox, - QtCore.SIGNAL(u'accepted()'), amendThemeDialog.accept) - QtCore.QObject.connect(self.themeButtonBox, - QtCore.SIGNAL(u'rejected()'), amendThemeDialog.reject) - QtCore.QMetaObject.connectSlotsByName(amendThemeDialog) - - def retranslateUi(self, amendThemeDialog): - amendThemeDialog.setWindowTitle( - translate('OpenLP.AmendThemeForm', 'Theme Maintenance')) - self.themeNameLabel.setText( - translate('OpenLP.AmendThemeForm', 'Theme &name:')) - self.backgroundTypeLabel.setText( - translate('OpenLP.AmendThemeForm', 'Type:')) - self.backgroundTypeComboBox.setItemText(0, - translate('OpenLP.AmendThemeForm', 'Solid Color')) - self.backgroundTypeComboBox.setItemText(1, - translate('OpenLP.AmendThemeForm', 'Gradient')) - self.backgroundTypeComboBox.setItemText(2, - translate('OpenLP.AmendThemeForm', 'Image')) - self.color1Label.setText(u':') - self.color2Label.setText(u':') - self.imageLabel.setText( - translate('OpenLP.AmendThemeForm', 'Image:')) - self.gradientLabel.setText( - translate('OpenLP.AmendThemeForm', 'Gradient:')) - self.gradientComboBox.setItemText(0, - translate('OpenLP.AmendThemeForm', 'Horizontal')) - self.gradientComboBox.setItemText(1, - translate('OpenLP.AmendThemeForm', 'Vertical')) - self.gradientComboBox.setItemText(2, - translate('OpenLP.AmendThemeForm', 'Circular')) - self.themeTabWidget.setTabText( - self.themeTabWidget.indexOf(self.backgroundTab), - translate('OpenLP.AmendThemeForm', '&Background')) - self.fontMainGroupBox.setTitle( - translate('OpenLP.AmendThemeForm', 'Main Font')) - self.fontMainlabel.setText( - translate('OpenLP.AmendThemeForm', 'Font:')) - self.fontMainColorLabel.setText( - translate('OpenLP.AmendThemeForm', 'Color:')) - self.fontMainSize.setText( - translate('OpenLP.AmendThemeForm', 'Size:')) - self.fontMainSizeSpinBox.setSuffix( - translate('OpenLP.AmendThemeForm', 'pt')) - self.fontMainWrapLineAdjustmentLabel.setText( - translate('OpenLP.AmendThemeForm', 'Adjust line spacing:')) - self.fontMainWeightComboBox.setItemText(0, - translate('OpenLP.AmendThemeForm', 'Normal')) - self.fontMainWeightComboBox.setItemText(1, - translate('OpenLP.AmendThemeForm', 'Bold')) - self.fontMainWeightComboBox.setItemText(2, - translate('OpenLP.AmendThemeForm', 'Italics')) - self.fontMainWeightComboBox.setItemText(3, - translate('OpenLP.AmendThemeForm', 'Bold/Italics')) - self.fontMainWeightLabel.setText( - translate('OpenLP.AmendThemeForm', 'Style:')) - self.mainLocationGroupBox.setTitle( - translate('OpenLP.AmendThemeForm', 'Display Location')) - self.defaultLocationLabel.setText( - translate('OpenLP.AmendThemeForm', 'Use default location')) - self.fontMainXLabel.setText( - translate('OpenLP.AmendThemeForm', 'X position:')) - self.fontMainYLabel.setText( - translate('OpenLP.AmendThemeForm', 'Y position:')) - self.fontMainWidthLabel.setText( - translate('OpenLP.AmendThemeForm', 'Width:')) - self.fontMainHeightLabel.setText( - translate('OpenLP.AmendThemeForm', 'Height:')) - self.fontMainXSpinBox.setSuffix( - translate('OpenLP.AmendThemeForm', 'px')) - self.fontMainYSpinBox.setSuffix( - translate('OpenLP.AmendThemeForm', 'px')) - self.fontMainWidthSpinBox.setSuffix( - translate('OpenLP.AmendThemeForm', 'px')) - self.fontMainHeightSpinBox.setSuffix( - translate('OpenLP.AmendThemeForm', 'px')) - self.themeTabWidget.setTabText( - self.themeTabWidget.indexOf(self.fontMainTab), - translate('OpenLP.AmendThemeForm', '&Main Font')) - self.footerFontGroupBox.setTitle( - translate('OpenLP.AmendThemeForm', 'Footer Font')) - self.fontFooterLabel.setText( - translate('OpenLP.AmendThemeForm', 'Font:')) - self.fontFooterColorLabel.setText( - translate('OpenLP.AmendThemeForm', 'Color:')) - self.fontFooterSizeLabel.setText( - translate('OpenLP.AmendThemeForm', 'Size:')) - self.fontFooterSizeSpinBox.setSuffix( - translate('OpenLP.AmendThemeForm', 'pt')) - self.fontFooterWeightComboBox.setItemText(0, - translate('OpenLP.AmendThemeForm', 'Normal')) - self.fontFooterWeightComboBox.setItemText(1, - translate('OpenLP.AmendThemeForm', 'Bold')) - self.fontFooterWeightComboBox.setItemText(2, - translate('OpenLP.AmendThemeForm', 'Italics')) - self.fontFooterWeightComboBox.setItemText(3, - translate('OpenLP.AmendThemeForm', 'Bold/Italics')) - self.fontFooterWeightLabel.setText( - translate('OpenLP.AmendThemeForm', 'Style:')) - self.locationFooterGroupBox.setTitle( - translate('OpenLP.AmendThemeForm', 'Display Location')) - self.fontFooterDefaultLabel.setText( - translate('OpenLP.AmendThemeForm', 'Use default location')) - self.fontFooterXLabel.setText( - translate('OpenLP.AmendThemeForm', 'X position:')) - self.fontFooterYLabel.setText( - translate('OpenLP.AmendThemeForm', 'Y position:')) - self.fontFooterWidthLabel.setText( - translate('OpenLP.AmendThemeForm', 'Width:')) - self.fontFooterHeightLabel.setText( - translate('OpenLP.AmendThemeForm', 'Height:')) - self.fontFooterXSpinBox.setSuffix( - translate('OpenLP.AmendThemeForm', 'px')) - self.fontFooterYSpinBox.setSuffix( - translate('OpenLP.AmendThemeForm', 'px')) - self.fontFooterWidthSpinBox.setSuffix( - translate('OpenLP.AmendThemeForm', 'px')) - self.fontFooterHeightSpinBox.setSuffix( - translate('OpenLP.AmendThemeForm', 'px')) - self.themeTabWidget.setTabText( - self.themeTabWidget.indexOf(self.fontFooterTab), - translate('OpenLP.AmendThemeForm', '&Footer Font')) - self.outlineGroupBox.setTitle( - translate('OpenLP.AmendThemeForm', 'Outline')) - self.outlineSpinBoxLabel.setText( - translate('OpenLP.AmendThemeForm', 'Outline size:')) - self.outlineSpinBox.setSuffix( - translate('OpenLP.AmendThemeForm', 'px')) - self.outlineColorLabel.setText( - translate('OpenLP.AmendThemeForm', 'Outline color:')) - self.outlineEnabledLabel.setText( - translate('OpenLP.AmendThemeForm', 'Show outline:')) - self.shadowGroupBox.setTitle( - translate('OpenLP.AmendThemeForm', 'Shadow')) - self.shadowSpinBoxLabel.setText( - translate('OpenLP.AmendThemeForm', 'Shadow size:')) - self.shadowSpinBox.setSuffix( - translate('OpenLP.AmendThemeForm', 'px')) - self.shadowColorLabel.setText( - translate('OpenLP.AmendThemeForm', 'Shadow color:')) - self.shadowEnabledLabel.setText( - translate('OpenLP.AmendThemeForm', 'Show shadow:')) - self.alignmentGroupBox.setTitle( - translate('OpenLP.AmendThemeForm', 'Alignment')) - self.horizontalLabel.setText( - translate('OpenLP.AmendThemeForm', 'Horizontal align:')) - self.horizontalComboBox.setItemText(0, - translate('OpenLP.AmendThemeForm', 'Left')) - self.horizontalComboBox.setItemText(1, - translate('OpenLP.AmendThemeForm', 'Right')) - self.horizontalComboBox.setItemText(2, - translate('OpenLP.AmendThemeForm', 'Center')) - self.verticalLabel.setText( - translate('OpenLP.AmendThemeForm', 'Vertical align:')) - self.verticalComboBox.setItemText(0, - translate('OpenLP.AmendThemeForm', 'Top')) - self.verticalComboBox.setItemText(1, - translate('OpenLP.AmendThemeForm', 'Middle')) - self.verticalComboBox.setItemText(2, - translate('OpenLP.AmendThemeForm', 'Bottom')) - self.transitionGroupBox.setTitle( - translate('OpenLP.AmendThemeForm', 'Slide Transition')) - self.slideTransitionCheckBoxLabel.setText( - translate('OpenLP.AmendThemeForm', 'Transition active')) - self.themeTabWidget.setTabText( - self.themeTabWidget.indexOf(self.otherOptionsTab), - translate('OpenLP.AmendThemeForm', '&Other Options')) - self.previewGroupBox.setTitle( - translate('OpenLP.AmendThemeForm', 'Preview')) diff --git a/openlp/core/ui/amendthemeform.py b/openlp/core/ui/amendthemeform.py deleted file mode 100644 index 1a7871f22..000000000 --- a/openlp/core/ui/amendthemeform.py +++ /dev/null @@ -1,722 +0,0 @@ -# -*- coding: utf-8 -*- -# vim: autoindent shiftwidth=4 expandtab textwidth=80 tabstop=4 softtabstop=4 - -############################################################################### -# OpenLP - Open Source Lyrics Projection # -# --------------------------------------------------------------------------- # -# Copyright (c) 2008-2010 Raoul Snyman # -# Portions copyright (c) 2008-2010 Tim Bentley, Jonathan Corwin, Michael # -# Gorven, Scott Guerrieri, Meinert Jordan, Andreas Preikschat, Christian # -# Richter, Philip Ridout, Maikel Stuivenberg, Martin Thompson, Jon Tibble, # -# Carsten Tinggaard, Frode Woldsund # -# --------------------------------------------------------------------------- # -# This program is free software; you can redistribute it and/or modify it # -# under the terms of the GNU General Public License as published by the Free # -# Software Foundation; version 2 of the License. # -# # -# This program is distributed in the hope that it will be useful, but WITHOUT # -# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or # -# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for # -# more details. # -# # -# You should have received a copy of the GNU General Public License along # -# with this program; if not, write to the Free Software Foundation, Inc., 59 # -# Temple Place, Suite 330, Boston, MA 02111-1307 USA # -############################################################################### - -import logging -import os -import os.path - -from PyQt4 import QtCore, QtGui - -from openlp.core.lib import ThemeXML, translate -from openlp.core.utils import get_images_filter -from amendthemedialog import Ui_AmendThemeDialog - -log = logging.getLogger(u'AmendThemeForm') - -class AmendThemeForm(QtGui.QDialog, Ui_AmendThemeDialog): - """ - The :class:`AmendThemeForm` class provides the user interface to set up - new and edit existing themes. - """ - def __init__(self, parent): - """ - Initialise the theme editor user interface - """ - QtGui.QDialog.__init__(self, parent) - self.thememanager = parent - self.path = None - self.theme = ThemeXML() - self.setupUi(self) - # Buttons - QtCore.QObject.connect(self.color1PushButton, - QtCore.SIGNAL(u'pressed()'), self.onColor1PushButtonClicked) - QtCore.QObject.connect(self.color2PushButton, - QtCore.SIGNAL(u'pressed()'), self.onColor2PushButtonClicked) - QtCore.QObject.connect(self.fontMainColorPushButton, - QtCore.SIGNAL(u'pressed()'), self.onFontMainColorPushButtonClicked) - QtCore.QObject.connect(self.fontFooterColorPushButton, - QtCore.SIGNAL(u'pressed()'), - self.onFontFooterColorPushButtonClicked) - QtCore.QObject.connect(self.outlineColorPushButton, - QtCore.SIGNAL(u'pressed()'), self.onOutlineColorPushButtonClicked) - QtCore.QObject.connect(self.shadowColorPushButton, - QtCore.SIGNAL(u'pressed()'), self.onShadowColorPushButtonClicked) - QtCore.QObject.connect(self.imageToolButton, - QtCore.SIGNAL(u'clicked()'), self.onImageToolButtonClicked) - # Combo boxes - QtCore.QObject.connect(self.backgroundTypeComboBox, - QtCore.SIGNAL(u'activated(int)'), - self.onBackgroundTypeComboBoxSelected) - QtCore.QObject.connect(self.gradientComboBox, - QtCore.SIGNAL(u'activated(int)'), self.onGradientComboBoxSelected) - QtCore.QObject.connect(self.fontMainComboBox, - QtCore.SIGNAL(u'activated(int)'), self.onFontMainComboBoxSelected) - QtCore.QObject.connect(self.fontMainWeightComboBox, - QtCore.SIGNAL(u'activated(int)'), - self.onFontMainWeightComboBoxSelected) - QtCore.QObject.connect(self.fontFooterComboBox, - QtCore.SIGNAL(u'activated(int)'), self.onFontFooterComboBoxSelected) - QtCore.QObject.connect(self.fontFooterWeightComboBox, - QtCore.SIGNAL(u'activated(int)'), - self.onFontFooterWeightComboBoxSelected) - QtCore.QObject.connect(self.horizontalComboBox, - QtCore.SIGNAL(u'activated(int)'), self.onHorizontalComboBoxSelected) - QtCore.QObject.connect(self.verticalComboBox, - QtCore.SIGNAL(u'activated(int)'), self.onVerticalComboBoxSelected) - # Spin boxes - QtCore.QObject.connect(self.fontMainSizeSpinBox, - QtCore.SIGNAL(u'editingFinished()'), - self.onFontMainSizeSpinBoxChanged) - QtCore.QObject.connect(self.fontMainLineAdjustmentSpinBox, - QtCore.SIGNAL(u'editingFinished()'), - self.onFontMainLineAdjustmentSpinBoxChanged) - QtCore.QObject.connect(self.shadowSpinBox, - QtCore.SIGNAL(u'editingFinished()'), - self.onShadowSpinBoxChanged) - QtCore.QObject.connect(self.outlineSpinBox, - QtCore.SIGNAL(u'editingFinished()'), - self.onOutlineSpinBoxChanged) - - QtCore.QObject.connect(self.fontFooterSizeSpinBox, - QtCore.SIGNAL(u'editingFinished()'), - self.onFontFooterSizeSpinBoxChanged) - QtCore.QObject.connect(self.fontMainXSpinBox, - QtCore.SIGNAL(u'editingFinished()'), self.onFontMainXSpinBoxChanged) - QtCore.QObject.connect(self.fontMainYSpinBox, - QtCore.SIGNAL(u'editingFinished()'), self.onFontMainYSpinBoxChanged) - QtCore.QObject.connect(self.fontMainWidthSpinBox, - QtCore.SIGNAL(u'editingFinished()'), - self.onFontMainWidthSpinBoxChanged) - QtCore.QObject.connect(self.fontMainHeightSpinBox, - QtCore.SIGNAL(u'editingFinished()'), - self.onFontMainHeightSpinBoxChanged) - QtCore.QObject.connect(self.fontMainLineAdjustmentSpinBox, - QtCore.SIGNAL(u'editingFinished()'), - self.onFontMainLineAdjustmentSpinBoxChanged) - QtCore.QObject.connect(self.fontFooterXSpinBox, - QtCore.SIGNAL(u'editingFinished()'), - self.onFontFooterXSpinBoxChanged) - QtCore.QObject.connect(self.fontFooterYSpinBox, - QtCore.SIGNAL(u'editingFinished()'), - self.onFontFooterYSpinBoxChanged) - QtCore.QObject.connect(self.fontFooterWidthSpinBox, - QtCore.SIGNAL(u'editingFinished()'), - self.onFontFooterWidthSpinBoxChanged) - QtCore.QObject.connect(self.fontFooterHeightSpinBox, - QtCore.SIGNAL(u'editingFinished()'), - self.onFontFooterHeightSpinBoxChanged) - - # CheckBoxes - QtCore.QObject.connect(self.fontMainDefaultCheckBox, - QtCore.SIGNAL(u'stateChanged(int)'), - self.onFontMainDefaultCheckBoxChanged) - QtCore.QObject.connect(self.fontFooterDefaultCheckBox, - QtCore.SIGNAL(u'stateChanged(int)'), - self.onFontFooterDefaultCheckBoxChanged) - QtCore.QObject.connect(self.outlineCheckBox, - QtCore.SIGNAL(u'stateChanged(int)'), self.onOutlineCheckBoxChanged) - QtCore.QObject.connect(self.shadowCheckBox, - QtCore.SIGNAL(u'stateChanged(int)'), self.onShadowCheckBoxChanged) - QtCore.QObject.connect(self.slideTransitionCheckBox, - QtCore.SIGNAL(u'stateChanged(int)'), - self.onSlideTransitionCheckBoxChanged) - - def accept(self): - new_theme = ThemeXML() - theme_name = unicode(self.themeNameEdit.text()) - new_theme.new_document(theme_name) - save_from = None - save_to = None - if self.theme.background_type == u'solid': - new_theme.add_background_solid( - unicode(self.theme.background_color)) - elif self.theme.background_type == u'gradient': - new_theme.add_background_gradient( - unicode(self.theme.background_start_color), - unicode(self.theme.background_end_color), - self.theme.background_direction) - else: - filename = \ - os.path.split(unicode(self.theme.background_filename))[1] - new_theme.add_background_image(filename) - save_to = os.path.join(self.path, theme_name, filename) - save_from = self.theme.background_filename - new_theme.add_font(unicode(self.theme.font_main_name), - unicode(self.theme.font_main_color), - unicode(self.theme.font_main_proportion), - unicode(self.theme.font_main_override), u'main', - unicode(self.theme.font_main_weight), - unicode(self.theme.font_main_italics), - unicode(self.theme.font_main_line_adjustment), - unicode(self.theme.font_main_x), - unicode(self.theme.font_main_y), - unicode(self.theme.font_main_width), - unicode(self.theme.font_main_height)) - new_theme.add_font(unicode(self.theme.font_footer_name), - unicode(self.theme.font_footer_color), - unicode(self.theme.font_footer_proportion), - unicode(self.theme.font_footer_override), u'footer', - unicode(self.theme.font_footer_weight), - unicode(self.theme.font_footer_italics), - 0, # line adjustment - unicode(self.theme.font_footer_x), - unicode(self.theme.font_footer_y), - unicode(self.theme.font_footer_width), - unicode(self.theme.font_footer_height)) - new_theme.add_display(unicode(self.theme.display_shadow), - unicode(self.theme.display_shadow_color), - unicode(self.theme.display_outline), - unicode(self.theme.display_outline_color), - unicode(self.theme.display_horizontal_align), - unicode(self.theme.display_vertical_align), - unicode(self.theme.display_wrap_style), - unicode(self.theme.display_slide_transition), - unicode(self.theme.display_shadow_size), - unicode(self.theme.display_outline_size)) - theme = new_theme.extract_xml() - pretty_theme = new_theme.extract_formatted_xml() - if self.thememanager.saveTheme(theme_name, theme, pretty_theme, - save_from, save_to) is not False: - return QtGui.QDialog.accept(self) - - def loadTheme(self, theme): - log.debug(u'LoadTheme %s', theme) - self.theme = theme - # Stop the initial screen setup generating 1 preview per field! - self.allowPreview = False - self.paintUi(self.theme) - self.allowPreview = True - self.previewTheme() - - def onImageToolButtonClicked(self): - images_filter = get_images_filter() - images_filter = '%s;;%s (*.*) (*)' % (images_filter, - translate('OpenLP.AmendThemeForm', 'All Files')) - filename = QtGui.QFileDialog.getOpenFileName(self, - translate('OpenLP.AmendThemeForm', 'Select Image'), u'', - images_filter) - if filename: - self.imageLineEdit.setText(filename) - self.theme.background_filename = filename - self.previewTheme() - # - # Main Font Tab - # - def onFontMainComboBoxSelected(self): - self.theme.font_main_name = self.fontMainComboBox.currentFont().family() - self.previewTheme() - - def onFontMainWeightComboBoxSelected(self, value): - if value == 0: - self.theme.font_main_weight = u'Normal' - self.theme.font_main_italics = False - elif value == 1: - self.theme.font_main_weight = u'Bold' - self.theme.font_main_italics = False - elif value == 2: - self.theme.font_main_weight = u'Normal' - self.theme.font_main_italics = True - else: - self.theme.font_main_weight = u'Bold' - self.theme.font_main_italics = True - self.previewTheme() - - def onFontMainColorPushButtonClicked(self): - new_color = QtGui.QColorDialog.getColor( - QtGui.QColor(self.theme.font_main_color), self) - if new_color.isValid(): - self.theme.font_main_color = new_color.name() - self.fontMainColorPushButton.setStyleSheet( - u'background-color: %s' % unicode(self.theme.font_main_color)) - self.previewTheme() - - def onFontMainSizeSpinBoxChanged(self): - if self.theme.font_main_proportion != self.fontMainSizeSpinBox.value(): - self.theme.font_main_proportion = self.fontMainSizeSpinBox.value() - self.previewTheme() - - def onFontMainDefaultCheckBoxChanged(self, value): - if value == 2: # checked - self.theme.font_main_override = False - else: - self.theme.font_main_override = True - - if not self.theme.font_main_x and not self.theme.font_main_y and \ - not self.theme.font_main_width and not self.theme.font_main_height: - self.theme.font_main_x = u'10' - self.theme.font_main_y = u'10' - self.theme.font_main_width = u'1024' - self.theme.font_main_height = u'730' - self.fontMainXSpinBox.setValue(self.theme.font_main_x) - self.fontMainYSpinBox.setValue(self.theme.font_main_y) - self.fontMainWidthSpinBox.setValue(self.theme.font_main_width) - self.fontMainHeightSpinBox.setValue(self.theme.font_main_height) - self.fontMainLineAdjustmentSpinBox.setValue( - self.theme.font_main_line_adjustment) - self.stateChanging(self.theme) - self.previewTheme() - - def onFontMainXSpinBoxChanged(self): - if self.theme.font_main_x != self.fontMainXSpinBox.value(): - self.theme.font_main_x = self.fontMainXSpinBox.value() - self.previewTheme() - - def onFontMainYSpinBoxChanged(self): - if self.theme.font_main_y != self.fontMainYSpinBox.value(): - self.theme.font_main_y = self.fontMainYSpinBox.value() - self.previewTheme() - - def onFontMainWidthSpinBoxChanged(self): - if self.theme.font_main_width != self.fontMainWidthSpinBox.value(): - self.theme.font_main_width = self.fontMainWidthSpinBox.value() - self.previewTheme() - - def onFontMainLineAdjustmentSpinBoxChanged(self): - if self.theme.font_main_line_adjustment != \ - self.fontMainLineAdjustmentSpinBox.value(): - self.theme.font_main_line_adjustment = \ - self.fontMainLineAdjustmentSpinBox.value() - self.previewTheme() - - def onFontMainHeightSpinBoxChanged(self): - if self.theme.font_main_height != self.fontMainHeightSpinBox.value(): - self.theme.font_main_height = self.fontMainHeightSpinBox.value() - self.previewTheme() - # - # Footer Font Tab - # - def onFontFooterComboBoxSelected(self): - self.theme.font_footer_name = \ - self.fontFooterComboBox.currentFont().family() - self.previewTheme() - - def onFontFooterWeightComboBoxSelected(self, value): - if value == 0: - self.theme.font_footer_weight = u'Normal' - self.theme.font_footer_italics = False - elif value == 1: - self.theme.font_footer_weight = u'Bold' - self.theme.font_footer_italics = False - elif value == 2: - self.theme.font_footer_weight = u'Normal' - self.theme.font_footer_italics = True - else: - self.theme.font_footer_weight = u'Bold' - self.theme.font_footer_italics = True - self.previewTheme() - - def onFontFooterColorPushButtonClicked(self): - new_color = QtGui.QColorDialog.getColor( - QtGui.QColor(self.theme.font_footer_color), self) - if new_color.isValid(): - self.theme.font_footer_color = new_color.name() - self.fontFooterColorPushButton.setStyleSheet( - u'background-color: %s' % unicode(self.theme.font_footer_color)) - self.previewTheme() - - def onFontFooterSizeSpinBoxChanged(self): - if self.theme.font_footer_proportion != \ - self.fontFooterSizeSpinBox.value(): - self.theme.font_footer_proportion = \ - self.fontFooterSizeSpinBox.value() - self.previewTheme() - - def onFontFooterDefaultCheckBoxChanged(self, value): - if value == 2: # checked - self.theme.font_footer_override = False - else: - self.theme.font_footer_override = True - if not self.theme.font_footer_x and not self.theme.font_footer_y and \ - not self.theme.font_footer_width and \ - not self.theme.font_footer_height: - self.theme.font_footer_x = u'10' - self.theme.font_footer_y = u'730' - self.theme.font_footer_width = u'1024' - self.theme.font_footer_height = u'38' - self.fontFooterXSpinBox.setValue(self.theme.font_footer_x) - self.fontFooterYSpinBox.setValue(self.theme.font_footer_y) - self.fontFooterWidthSpinBox.setValue(self.theme.font_footer_width) - self.fontFooterHeightSpinBox.setValue( - self.theme.font_footer_height) - self.stateChanging(self.theme) - self.previewTheme() - - def onFontFooterXSpinBoxChanged(self): - if self.theme.font_footer_x != self.fontFooterXSpinBox.value(): - self.theme.font_footer_x = self.fontFooterXSpinBox.value() - self.previewTheme() - - def onFontFooterYSpinBoxChanged(self): - if self.theme.font_footer_y != self.fontFooterYSpinBox.value(): - self.theme.font_footer_y = self.fontFooterYSpinBox.value() - self.previewTheme() - - def onFontFooterWidthSpinBoxChanged(self): - if self.theme.font_footer_width != self.fontFooterWidthSpinBox.value(): - self.theme.font_footer_width = self.fontFooterWidthSpinBox.value() - self.previewTheme() - - def onFontFooterHeightSpinBoxChanged(self): - if self.theme.font_footer_height != \ - self.fontFooterHeightSpinBox.value(): - self.theme.font_footer_height = \ - self.fontFooterHeightSpinBox.value() - self.previewTheme() - # - # Background Tab - # - def onGradientComboBoxSelected(self, currentIndex): - self.setBackground(self.backgroundTypeComboBox.currentIndex(), - currentIndex) - - def onBackgroundTypeComboBoxSelected(self, currentIndex): - self.setBackground(currentIndex, self.gradientComboBox.currentIndex()) - - def setBackground(self, background, gradient): - if background == 0: # Solid - self.theme.background_type = u'solid' - if self.theme.background_color is None: - self.theme.background_color = u'#000000' - self.imageLineEdit.setText(u'') - elif background == 1: # Gradient - self.theme.background_type = u'gradient' - if gradient == 0: # Horizontal - self.theme.background_direction = u'horizontal' - elif gradient == 1: # vertical - self.theme.background_direction = u'vertical' - else: - self.theme.background_direction = u'circular' - if self.theme.background_start_color is None: - self.theme.background_start_color = u'#000000' - if self.theme.background_end_color is None: - self.theme.background_end_color = u'#ff0000' - self.imageLineEdit.setText(u'') - else: - self.theme.background_type = u'image' - self.stateChanging(self.theme) - self.previewTheme() - - def onColor1PushButtonClicked(self): - if self.theme.background_type == u'solid': - new_color = QtGui.QColorDialog.getColor( - QtGui.QColor(self.theme.background_color), self) - if new_color.isValid(): - self.theme.background_color = new_color.name() - self.color1PushButton.setStyleSheet(u'background-color: %s' % - unicode(self.theme.background_color)) - else: - new_color = QtGui.QColorDialog.getColor( - QtGui.QColor(self.theme.background_start_color), self) - if new_color.isValid(): - self.theme.background_start_color = new_color.name() - self.color1PushButton.setStyleSheet(u'background-color: %s' % - unicode(self.theme.background_start_color)) - self.previewTheme() - - def onColor2PushButtonClicked(self): - new_color = QtGui.QColorDialog.getColor( - QtGui.QColor(self.theme.background_end_color), self) - if new_color.isValid(): - self.theme.background_end_color = new_color.name() - self.color2PushButton.setStyleSheet(u'background-color: %s' % - unicode(self.theme.background_end_color)) - self.previewTheme() - # - # Other Tab - # - def onOutlineCheckBoxChanged(self, value): - if value == 2: # checked - self.theme.display_outline = True - else: - self.theme.display_outline = False - self.stateChanging(self.theme) - self.previewTheme() - - def onOutlineSpinBoxChanged(self): - if self.theme.display_outline_size != self.outlineSpinBox.value(): - self.theme.display_outline_size = self.outlineSpinBox.value() - self.previewTheme() - - def onShadowSpinBoxChanged(self): - if self.theme.display_shadow_size != self.shadowSpinBox.value(): - self.theme.display_shadow_size = self.shadowSpinBox.value() - self.previewTheme() - - def onOutlineColorPushButtonClicked(self): - new_color = QtGui.QColorDialog.getColor( - QtGui.QColor(self.theme.display_outline_color), self) - if new_color.isValid(): - self.theme.display_outline_color = new_color.name() - self.outlineColorPushButton.setStyleSheet(u'background-color: %s' % - unicode(self.theme.display_outline_color)) - self.previewTheme() - - def onShadowCheckBoxChanged(self, value): - if value == 2: # checked - self.theme.display_shadow = True - else: - self.theme.display_shadow = False - self.stateChanging(self.theme) - self.previewTheme() - - def onSlideTransitionCheckBoxChanged(self, value): - if value == 2: # checked - self.theme.display_slide_transition = True - else: - self.theme.display_slide_transition = False - self.stateChanging(self.theme) - self.previewTheme() - - def onShadowColorPushButtonClicked(self): - new_color = QtGui.QColorDialog.getColor( - QtGui.QColor(self.theme.display_shadow_color), self) - if new_color.isValid(): - self.theme.display_shadow_color = new_color.name() - self.shadowColorPushButton.setStyleSheet(u'background-color: %s' % - unicode(self.theme.display_shadow_color)) - self.previewTheme() - - def onHorizontalComboBoxSelected(self, currentIndex): - self.theme.display_horizontal_align = currentIndex - self.stateChanging(self.theme) - self.previewTheme() - - def onVerticalComboBoxSelected(self, currentIndex): - self.theme.display_vertical_align = currentIndex - self.stateChanging(self.theme) - self.previewTheme() - # - # Local Methods - # - def paintUi(self, theme): - self.stateChanging(theme) - self.themeNameEdit.setText(self.theme.theme_name) - # Background Tab - self.imageLineEdit.setText(u'') - if theme.background_type == u'solid': - self.backgroundTypeComboBox.setCurrentIndex(0) - elif theme.background_type == u'gradient': - self.backgroundTypeComboBox.setCurrentIndex(1) - else: - self.backgroundTypeComboBox.setCurrentIndex(2) - self.imageLineEdit.setText(self.theme.background_filename) - if self.theme.background_direction == u'horizontal': - self.gradientComboBox.setCurrentIndex(0) - elif self.theme.background_direction == u'vertical': - self.gradientComboBox.setCurrentIndex(1) - else: - self.gradientComboBox.setCurrentIndex(2) - # Font Main Tab - self.mainFontComboBox.setCurrentFont( - QtGui.QFont(self.theme.font_main_name)) - self.fontMainSizeSpinBox.setValue(self.theme.font_main_proportion) - if not self.theme.font_main_italics and \ - self.theme.font_main_weight == u'Normal': - self.fontMainWeightComboBox.setCurrentIndex(0) - elif not self.theme.font_main_italics and \ - self.theme.font_main_weight == u'Bold': - self.fontMainWeightComboBox.setCurrentIndex(1) - elif self.theme.font_main_italics and \ - self.theme.font_main_weight == u'Normal': - self.fontMainWeightComboBox.setCurrentIndex(2) - else: - self.fontMainWeightComboBox.setCurrentIndex(3) - self.fontMainXSpinBox.setValue(self.theme.font_main_x) - self.fontMainYSpinBox.setValue(self.theme.font_main_y) - self.fontMainWidthSpinBox.setValue(self.theme.font_main_width) - self.fontMainHeightSpinBox.setValue(self.theme.font_main_height) - # Font Footer Tab - self.fontFooterComboBox.setCurrentFont( - QtGui.QFont(self.theme.font_footer_name)) - self.fontFooterSizeSpinBox.setValue( - self.theme.font_footer_proportion) - if not self.theme.font_footer_italics and \ - self.theme.font_footer_weight == u'Normal': - self.fontFooterWeightComboBox.setCurrentIndex(0) - elif not self.theme.font_footer_italics and \ - self.theme.font_footer_weight == u'Bold': - self.fontFooterWeightComboBox.setCurrentIndex(1) - elif self.theme.font_footer_italics and \ - self.theme.font_footer_weight == u'Normal': - self.fontFooterWeightComboBox.setCurrentIndex(2) - else: - self.fontFooterWeightComboBox.setCurrentIndex(3) - self.fontFooterXSpinBox.setValue(self.theme.font_footer_x) - self.fontFooterYSpinBox.setValue(self.theme.font_footer_y) - self.fontFooterWidthSpinBox.setValue(self.theme.font_footer_width) - self.fontFooterHeightSpinBox.setValue(self.theme.font_footer_height) - self.fontMainColorPushButton.setStyleSheet( - u'background-color: %s' % unicode(theme.font_main_color)) - self.fontFooterColorPushButton.setStyleSheet( - u'background-color: %s' % unicode(theme.font_footer_color)) - if not self.theme.font_main_override: - self.fontMainDefaultCheckBox.setChecked(True) - else: - self.fontMainDefaultCheckBox.setChecked(False) - if not self.theme.font_footer_override: - self.fontFooterDefaultCheckBox.setChecked(True) - else: - self.fontFooterDefaultCheckBox.setChecked(False) - self.outlineColorPushButton.setStyleSheet( - u'background-color: %s' % unicode(theme.display_outline_color)) - self.shadowColorPushButton.setStyleSheet( - u'background-color: %s' % unicode(theme.display_shadow_color)) - if self.theme.display_outline: - self.outlineCheckBox.setChecked(True) - self.outlineColorPushButton.setEnabled(True) - else: - self.outlineCheckBox.setChecked(False) - self.outlineColorPushButton.setEnabled(False) - self.outlineSpinBox.setValue(int(self.theme.display_outline_size)) - if self.theme.display_shadow: - self.shadowCheckBox.setChecked(True) - self.shadowColorPushButton.setEnabled(True) - else: - self.shadowCheckBox.setChecked(False) - self.shadowColorPushButton.setEnabled(False) - self.shadowSpinBox.setValue(int(self.theme.display_shadow_size)) - if self.theme.display_slide_transition: - self.slideTransitionCheckBox.setCheckState(QtCore.Qt.Checked) - else: - self.slideTransitionCheckBox.setCheckState(QtCore.Qt.Unchecked) - self.horizontalComboBox.setCurrentIndex( - self.theme.display_horizontal_align) - self.verticalComboBox.setCurrentIndex(self.theme.display_vertical_align) - - def stateChanging(self, theme): - self.backgroundTypeComboBox.setVisible(True) - self.backgroundTypeLabel.setVisible(True) - if theme.background_type == u'solid': - self.color1PushButton.setStyleSheet( - u'background-color: %s' % unicode(theme.background_color)) - self.color1Label.setText( - translate('OpenLP.AmendThemeForm', 'Color:')) - self.color1Label.setVisible(True) - self.color1PushButton.setVisible(True) - self.color2Label.setVisible(False) - self.color2PushButton.setVisible(False) - self.imageLabel.setVisible(False) - self.imageLineEdit.setVisible(False) - self.imageFilenameWidget.setVisible(False) - self.gradientLabel.setVisible(False) - self.gradientComboBox.setVisible(False) - elif theme.background_type == u'gradient': - self.color1PushButton.setStyleSheet(u'background-color: %s' \ - % unicode(theme.background_start_color)) - self.color2PushButton.setStyleSheet(u'background-color: %s' \ - % unicode(theme.background_end_color)) - self.color1Label.setText( - translate('OpenLP.AmendThemeForm', 'First color:')) - self.color2Label.setText( - translate('OpenLP.AmendThemeForm', 'Second color:')) - self.color1Label.setVisible(True) - self.color1PushButton.setVisible(True) - self.color2Label.setVisible(True) - self.color2PushButton.setVisible(True) - self.imageLabel.setVisible(False) - self.imageLineEdit.setVisible(False) - self.imageFilenameWidget.setVisible(False) - self.gradientLabel.setVisible(True) - self.gradientComboBox.setVisible(True) - else: # must be image - self.color1Label.setVisible(False) - self.color1PushButton.setVisible(False) - self.color2Label.setVisible(False) - self.color2PushButton.setVisible(False) - self.imageLabel.setVisible(True) - self.imageLineEdit.setVisible(True) - self.imageFilenameWidget.setVisible(True) - self.gradientLabel.setVisible(False) - self.gradientComboBox.setVisible(False) - if not theme.font_main_override: - self.fontMainXSpinBox.setEnabled(False) - self.fontMainYSpinBox.setEnabled(False) - self.fontMainWidthSpinBox.setEnabled(False) - self.fontMainHeightSpinBox.setEnabled(False) - else: - self.fontMainXSpinBox.setEnabled(True) - self.fontMainYSpinBox.setEnabled(True) - self.fontMainWidthSpinBox.setEnabled(True) - self.fontMainHeightSpinBox.setEnabled(True) - - if not theme.font_footer_override: - self.fontFooterXSpinBox.setEnabled(False) - self.fontFooterYSpinBox.setEnabled(False) - self.fontFooterWidthSpinBox.setEnabled(False) - self.fontFooterHeightSpinBox.setEnabled(False) - else: - self.fontFooterXSpinBox.setEnabled(True) - self.fontFooterYSpinBox.setEnabled(True) - self.fontFooterWidthSpinBox.setEnabled(True) - self.fontFooterHeightSpinBox.setEnabled(True) - - if self.theme.display_outline: - self.outlineColorPushButton.setEnabled(True) - else: - self.outlineColorPushButton.setEnabled(False) - - if self.theme.display_shadow: - self.shadowColorPushButton.setEnabled(True) - else: - self.shadowColorPushButton.setEnabled(False) - - def previewTheme(self): - if self.allowPreview: - #calculate main number of rows - metrics = self._getThemeMetrics() - line_height = metrics.height() \ - + int(self.theme.font_main_line_adjustment) - if self.theme.display_shadow: - line_height += int(self.theme.display_shadow_size) - if self.theme.display_outline: - # pixels top/bottom - line_height += 2 * int(self.theme.display_outline_size) - page_length = \ - ((self.fontMainHeightSpinBox.value()) / line_height ) - log.debug(u'Page Length area height %s, metrics %s, lines %s' % - (self.fontMainHeightSpinBox.value(), metrics.height(), - page_length)) - page_length_text = unicode( - translate('OpenLP.AmendThemeForm', 'Slide height is %s rows.')) - self.fontMainLinesPageLabel.setText(page_length_text % page_length) - frame = self.thememanager.generateImage(self.theme) - self.themePreview.setPixmap(QtGui.QPixmap.fromImage(frame)) - - def _getThemeMetrics(self): - main_weight = 50 - if self.theme.font_main_weight == u'Bold': - main_weight = 75 - mainFont = QtGui.QFont(self.theme.font_main_name, - self.theme.font_main_proportion, # size - main_weight, # weight - self.theme.font_main_italics)# italic - mainFont.setPixelSize(self.theme.font_main_proportion) - metrics = QtGui.QFontMetrics(mainFont) - # Validate that the screen width is big enough to display the text - if self.theme.font_main_width < metrics.maxWidth() * 2 + 64: - self.theme.font_main_width = metrics.maxWidth() * 2 + 64 - self.fontMainWidthSpinBox.setValue(self.theme.font_main_width) - return metrics diff --git a/openlp/core/ui/maindisplay.py b/openlp/core/ui/maindisplay.py index 90f920a50..ba2a4b1cc 100644 --- a/openlp/core/ui/maindisplay.py +++ b/openlp/core/ui/maindisplay.py @@ -229,7 +229,7 @@ class MainDisplay(DisplayWidget): """ API for replacement backgrounds so Images are added directly to cache """ - image = self.imageManager.add_image(name, path) + self.imageManager.add_image(name, path) self.image(name) def image(self, name): diff --git a/openlp/core/ui/mainwindow.py b/openlp/core/ui/mainwindow.py index a513cc99e..3833f1697 100644 --- a/openlp/core/ui/mainwindow.py +++ b/openlp/core/ui/mainwindow.py @@ -627,7 +627,7 @@ class MainWindow(QtGui.QMainWindow, Ui_MainWindow): # warning cyclic dependency # RenderManager needs to call ThemeManager and # ThemeManager needs to call RenderManager - self.RenderManager = RenderManager( + self.renderManager = RenderManager( self.ThemeManagerContents, self.screens) # Define the media Dock Manager self.mediaDockManager = MediaDockManager(self.MediaToolBox) @@ -635,7 +635,7 @@ class MainWindow(QtGui.QMainWindow, Ui_MainWindow): # make the controllers available to the plugins self.plugin_helpers[u'preview'] = self.PreviewController self.plugin_helpers[u'live'] = self.LiveController - self.plugin_helpers[u'render'] = self.RenderManager + self.plugin_helpers[u'render'] = self.renderManager self.plugin_helpers[u'service'] = self.ServiceManagerContents self.plugin_helpers[u'settings form'] = self.settingsForm self.plugin_helpers[u'toolbox'] = self.mediaDockManager @@ -809,7 +809,7 @@ class MainWindow(QtGui.QMainWindow, Ui_MainWindow): their locations """ log.debug(u'screenChanged') - self.RenderManager.update_display() + self.renderManager.update_display() self.setFocus() self.activateWindow() diff --git a/openlp/core/ui/thememanager.py b/openlp/core/ui/thememanager.py index 65913a9f6..56765eda6 100644 --- a/openlp/core/ui/thememanager.py +++ b/openlp/core/ui/thememanager.py @@ -627,7 +627,8 @@ class ThemeManager(QtGui.QWidget): newtheme.font_main_shadow_color = unicode(theme.ShadowColor.name()) if theme.Outline == 1: newtheme.font_main_outline = True - newtheme.font_main_outline_color = unicode(theme.OutlineColor.name()) + newtheme.font_main_outline_color = \ + unicode(theme.OutlineColor.name()) vAlignCorrection = 0 if theme.VerticalAlign == 2: vAlignCorrection = 1 diff --git a/openlp/core/ui/themewizard.py b/openlp/core/ui/themewizard.py index b3af9df98..bff8a578c 100644 --- a/openlp/core/ui/themewizard.py +++ b/openlp/core/ui/themewizard.py @@ -34,7 +34,8 @@ class Ui_ThemeWizard(object): ThemeWizard.resize(550, 386) ThemeWizard.setModal(True) ThemeWizard.setWizardStyle(QtGui.QWizard.ModernStyle) - ThemeWizard.setOptions(QtGui.QWizard.IndependentPages|QtGui.QWizard.NoBackButtonOnStartPage) + ThemeWizard.setOptions(QtGui.QWizard.IndependentPages| + QtGui.QWizard.NoBackButtonOnStartPage) self.welcomePage = QtGui.QWizardPage() self.welcomePage.setTitle(u'') self.welcomePage.setSubTitle(u'') @@ -48,7 +49,8 @@ class Ui_ThemeWizard(object): self.importBibleImage.setMaximumSize(QtCore.QSize(163, 16777215)) self.importBibleImage.setLineWidth(0) self.importBibleImage.setText(u'') - self.importBibleImage.setPixmap(QtGui.QPixmap(u':/wizards/wizard_importbible.bmp')) + self.importBibleImage.setPixmap(QtGui.QPixmap + (u':/wizards/wizard_importbible.bmp')) self.importBibleImage.setIndent(0) self.importBibleImage.setObjectName(u'importBibleImage') self.welcomeLayout.addWidget(self.importBibleImage) @@ -58,51 +60,62 @@ class Ui_ThemeWizard(object): self.titleLabel = QtGui.QLabel(self.welcomePage) self.titleLabel.setObjectName(u'titleLabel') self.welcomePageLayout.addWidget(self.titleLabel) - spacerItem = QtGui.QSpacerItem(20, 40, QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Fixed) + spacerItem = QtGui.QSpacerItem(20, 40, QtGui.QSizePolicy.Minimum, + QtGui.QSizePolicy.Fixed) self.welcomePageLayout.addItem(spacerItem) self.informationLabel = QtGui.QLabel(self.welcomePage) self.informationLabel.setWordWrap(True) self.informationLabel.setMargin(10) self.informationLabel.setObjectName(u'informationLabel') self.welcomePageLayout.addWidget(self.informationLabel) - spacerItem1 = QtGui.QSpacerItem(20, 40, QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Expanding) + spacerItem1 = QtGui.QSpacerItem(20, 40, QtGui.QSizePolicy.Minimum, + QtGui.QSizePolicy.Expanding) self.welcomePageLayout.addItem(spacerItem1) self.welcomeLayout.addLayout(self.welcomePageLayout) ThemeWizard.addPage(self.welcomePage) self.backgroundPage = QtGui.QWizardPage() self.backgroundPage.setObjectName(u'backgroundPage') self.backgroundLayout = QtGui.QFormLayout(self.backgroundPage) - self.backgroundLayout.setFieldGrowthPolicy(QtGui.QFormLayout.ExpandingFieldsGrow) - self.backgroundLayout.setLabelAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) + self.backgroundLayout.setFieldGrowthPolicy( + QtGui.QFormLayout.ExpandingFieldsGrow) + self.backgroundLayout.setLabelAlignment( + QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) self.backgroundLayout.setMargin(20) self.backgroundLayout.setSpacing(8) self.backgroundLayout.setObjectName(u'backgroundLayout') self.backgroundTypeLabel = QtGui.QLabel(self.backgroundPage) self.backgroundTypeLabel.setObjectName(u'backgroundTypeLabel') - self.backgroundLayout.setWidget(0, QtGui.QFormLayout.LabelRole, self.backgroundTypeLabel) + self.backgroundLayout.setWidget(0, QtGui.QFormLayout.LabelRole, + self.backgroundTypeLabel) self.backgroundTypeComboBox = QtGui.QComboBox(self.backgroundPage) self.backgroundTypeComboBox.setObjectName(u'backgroundTypeComboBox') self.backgroundTypeComboBox.addItem(u'') self.backgroundTypeComboBox.addItem(u'') self.backgroundTypeComboBox.addItem(u'') - self.backgroundLayout.setWidget(0, QtGui.QFormLayout.FieldRole, self.backgroundTypeComboBox) + self.backgroundLayout.setWidget(0, QtGui.QFormLayout.FieldRole, + self.backgroundTypeComboBox) self.color1Label = QtGui.QLabel(self.backgroundPage) self.color1Label.setObjectName(u'color1Label') - self.backgroundLayout.setWidget(1, QtGui.QFormLayout.LabelRole, self.color1Label) + self.backgroundLayout.setWidget(1, QtGui.QFormLayout.LabelRole, + self.color1Label) self.color1PushButton = QtGui.QPushButton(self.backgroundPage) self.color1PushButton.setText(u'') self.color1PushButton.setObjectName(u'color1PushButton') - self.backgroundLayout.setWidget(1, QtGui.QFormLayout.FieldRole, self.color1PushButton) + self.backgroundLayout.setWidget(1, QtGui.QFormLayout.FieldRole, + self.color1PushButton) self.color2Label = QtGui.QLabel(self.backgroundPage) self.color2Label.setObjectName(u'color2Label') - self.backgroundLayout.setWidget(2, QtGui.QFormLayout.LabelRole, self.color2Label) + self.backgroundLayout.setWidget(2, QtGui.QFormLayout.LabelRole, + self.color2Label) self.color2PushButton = QtGui.QPushButton(self.backgroundPage) self.color2PushButton.setText(u'') self.color2PushButton.setObjectName(u'color2PushButton') - self.backgroundLayout.setWidget(2, QtGui.QFormLayout.FieldRole, self.color2PushButton) + self.backgroundLayout.setWidget(2, QtGui.QFormLayout.FieldRole, + self.color2PushButton) self.imageLabel = QtGui.QLabel(self.backgroundPage) self.imageLabel.setObjectName(u'imageLabel') - self.backgroundLayout.setWidget(3, QtGui.QFormLayout.LabelRole, self.imageLabel) + self.backgroundLayout.setWidget(3, QtGui.QFormLayout.LabelRole, + self.imageLabel) self.imageLayout = QtGui.QHBoxLayout() self.imageLayout.setSpacing(8) self.imageLayout.setObjectName(u'imageLayout') @@ -111,13 +124,16 @@ class Ui_ThemeWizard(object): self.imageLayout.addWidget(self.imageLineEdit) self.imageBrowseButton = QtGui.QToolButton(self.backgroundPage) self.imageBrowseButton.setText(u'') - self.imageBrowseButton.setIcon(build_icon(u':/general/general_open.png')) + self.imageBrowseButton.setIcon(build_icon + (u':/general/general_open.png')) self.imageBrowseButton.setObjectName(u'imageBrowseButton') self.imageLayout.addWidget(self.imageBrowseButton) - self.backgroundLayout.setLayout(3, QtGui.QFormLayout.FieldRole, self.imageLayout) + self.backgroundLayout.setLayout(3, QtGui.QFormLayout.FieldRole, + self.imageLayout) self.gradientLabel = QtGui.QLabel(self.backgroundPage) self.gradientLabel.setObjectName(u'gradientLabel') - self.backgroundLayout.setWidget(4, QtGui.QFormLayout.LabelRole, self.gradientLabel) + self.backgroundLayout.setWidget(4, QtGui.QFormLayout.LabelRole, + self.gradientLabel) self.gradientComboBox = QtGui.QComboBox(self.backgroundPage) self.gradientComboBox.setObjectName(u'gradientComboBox') self.gradientComboBox.addItem(u'') @@ -125,40 +141,49 @@ class Ui_ThemeWizard(object): self.gradientComboBox.addItem(u'') self.gradientComboBox.addItem(u'') self.gradientComboBox.addItem(u'') - self.backgroundLayout.setWidget(4, QtGui.QFormLayout.FieldRole, self.gradientComboBox) + self.backgroundLayout.setWidget(4, QtGui.QFormLayout.FieldRole, + self.gradientComboBox) ThemeWizard.addPage(self.backgroundPage) self.mainAreaPage = QtGui.QWizardPage() self.mainAreaPage.setObjectName(u'mainAreaPage') self.formLayout = QtGui.QFormLayout(self.mainAreaPage) - self.formLayout.setFormAlignment(QtCore.Qt.AlignLeading|QtCore.Qt.AlignLeft|QtCore.Qt.AlignTop) + self.formLayout.setFormAlignment( + QtCore.Qt.AlignLeading|QtCore.Qt.AlignLeft|QtCore.Qt.AlignTop) self.formLayout.setContentsMargins(-1, 20, 20, 20) self.formLayout.setSpacing(8) self.formLayout.setObjectName(u'formLayout') self.mainFontLabel = QtGui.QLabel(self.mainAreaPage) self.mainFontLabel.setObjectName(u'mainFontLabel') - self.formLayout.setWidget(0, QtGui.QFormLayout.LabelRole, self.mainFontLabel) + self.formLayout.setWidget(0, QtGui.QFormLayout.LabelRole, + self.mainFontLabel) self.mainFontComboBox = QtGui.QFontComboBox(self.mainAreaPage) self.mainFontComboBox.setObjectName(u'mainFontComboBox') - self.formLayout.setWidget(0, QtGui.QFormLayout.FieldRole, self.mainFontComboBox) + self.formLayout.setWidget(0, QtGui.QFormLayout.FieldRole, + self.mainFontComboBox) self.mainColorLabel = QtGui.QLabel(self.mainAreaPage) self.mainColorLabel.setObjectName(u'mainColorLabel') - self.formLayout.setWidget(1, QtGui.QFormLayout.LabelRole, self.mainColorLabel) + self.formLayout.setWidget(1, QtGui.QFormLayout.LabelRole, + self.mainColorLabel) self.mainColorPushButton = QtGui.QPushButton(self.mainAreaPage) self.mainColorPushButton.setText(u'') self.mainColorPushButton.setObjectName(u'mainColorPushButton') - self.formLayout.setWidget(1, QtGui.QFormLayout.FieldRole, self.mainColorPushButton) + self.formLayout.setWidget(1, QtGui.QFormLayout.FieldRole, + self.mainColorPushButton) self.mainSizeLabel = QtGui.QLabel(self.mainAreaPage) self.mainSizeLabel.setObjectName(u'mainSizeLabel') - self.formLayout.setWidget(2, QtGui.QFormLayout.LabelRole, self.mainSizeLabel) + self.formLayout.setWidget(2, QtGui.QFormLayout.LabelRole, + self.mainSizeLabel) self.mainSizeLayout = QtGui.QHBoxLayout() self.mainSizeLayout.setSpacing(8) self.mainSizeLayout.setMargin(0) self.mainSizeLayout.setObjectName(u'mainSizeLayout') self.mainSizeSpinBox = QtGui.QSpinBox(self.mainAreaPage) - sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Fixed) + sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Minimum, + QtGui.QSizePolicy.Fixed) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) - sizePolicy.setHeightForWidth(self.mainSizeSpinBox.sizePolicy().hasHeightForWidth()) + sizePolicy.setHeightForWidth( + self.mainSizeSpinBox.sizePolicy().hasHeightForWidth()) self.mainSizeSpinBox.setSizePolicy(sizePolicy) self.mainSizeSpinBox.setMinimumSize(QtCore.QSize(70, 0)) self.mainSizeSpinBox.setMaximum(999) @@ -168,18 +193,22 @@ class Ui_ThemeWizard(object): self.mainLineCountLabel = QtGui.QLabel(self.mainAreaPage) self.mainLineCountLabel.setObjectName(u'mainLineCountLabel') self.mainSizeLayout.addWidget(self.mainLineCountLabel) - self.formLayout.setLayout(2, QtGui.QFormLayout.FieldRole, self.mainSizeLayout) + self.formLayout.setLayout(2, QtGui.QFormLayout.FieldRole, + self.mainSizeLayout) self.lineSpacingLabel = QtGui.QLabel(self.mainAreaPage) self.lineSpacingLabel.setObjectName(u'lineSpacingLabel') - self.formLayout.setWidget(3, QtGui.QFormLayout.LabelRole, self.lineSpacingLabel) + self.formLayout.setWidget(3, QtGui.QFormLayout.LabelRole, + self.lineSpacingLabel) self.lineSpacingSpinBox = QtGui.QSpinBox(self.mainAreaPage) self.lineSpacingSpinBox.setMinimum(-50) self.lineSpacingSpinBox.setMaximum(50) self.lineSpacingSpinBox.setObjectName(u'lineSpacingSpinBox') - self.formLayout.setWidget(3, QtGui.QFormLayout.FieldRole, self.lineSpacingSpinBox) + self.formLayout.setWidget(3, QtGui.QFormLayout.FieldRole, + self.lineSpacingSpinBox) self.outlineCheckBox = QtGui.QCheckBox(self.mainAreaPage) self.outlineCheckBox.setObjectName(u'outlineCheckBox') - self.formLayout.setWidget(4, QtGui.QFormLayout.LabelRole, self.outlineCheckBox) + self.formLayout.setWidget(4, QtGui.QFormLayout.LabelRole, + self.outlineCheckBox) self.outlineLayout = QtGui.QHBoxLayout() self.outlineLayout.setObjectName(u'outlineLayout') self.outlineColorPushButton = QtGui.QPushButton(self.mainAreaPage) @@ -193,10 +222,12 @@ class Ui_ThemeWizard(object): self.outlineSizeSpinBox = QtGui.QSpinBox(self.mainAreaPage) self.outlineSizeSpinBox.setObjectName(u'outlineSizeSpinBox') self.outlineLayout.addWidget(self.outlineSizeSpinBox) - self.formLayout.setLayout(4, QtGui.QFormLayout.FieldRole, self.outlineLayout) + self.formLayout.setLayout(4, QtGui.QFormLayout.FieldRole, + self.outlineLayout) self.shadowCheckBox = QtGui.QCheckBox(self.mainAreaPage) self.shadowCheckBox.setObjectName(u'shadowCheckBox') - self.formLayout.setWidget(5, QtGui.QFormLayout.LabelRole, self.shadowCheckBox) + self.formLayout.setWidget(5, QtGui.QFormLayout.LabelRole, + self.shadowCheckBox) self.shadowLayout = QtGui.QHBoxLayout() self.shadowLayout.setObjectName(u'shadowLayout') self.shadowColorPushButton = QtGui.QPushButton(self.mainAreaPage) @@ -210,48 +241,60 @@ class Ui_ThemeWizard(object): self.shadowSizeSpinBox = QtGui.QSpinBox(self.mainAreaPage) self.shadowSizeSpinBox.setObjectName(u'shadowSizeSpinBox') self.shadowLayout.addWidget(self.shadowSizeSpinBox) - self.formLayout.setLayout(5, QtGui.QFormLayout.FieldRole, self.shadowLayout) + self.formLayout.setLayout(5, QtGui.QFormLayout.FieldRole, + self.shadowLayout) self.boldCheckBox = QtGui.QCheckBox(self.mainAreaPage) self.boldCheckBox.setObjectName(u'boldCheckBox') - self.formLayout.setWidget(6, QtGui.QFormLayout.FieldRole, self.boldCheckBox) + self.formLayout.setWidget(6, QtGui.QFormLayout.FieldRole, + self.boldCheckBox) self.italicsCheckBox = QtGui.QCheckBox(self.mainAreaPage) self.italicsCheckBox.setObjectName(u'italicsCheckBox') - self.formLayout.setWidget(7, QtGui.QFormLayout.FieldRole, self.italicsCheckBox) + self.formLayout.setWidget(7, QtGui.QFormLayout.FieldRole, + self.italicsCheckBox) ThemeWizard.addPage(self.mainAreaPage) self.footerAreaPage = QtGui.QWizardPage() self.footerAreaPage.setObjectName(u'footerAreaPage') self.footerLayout = QtGui.QFormLayout(self.footerAreaPage) - self.footerLayout.setFieldGrowthPolicy(QtGui.QFormLayout.ExpandingFieldsGrow) + self.footerLayout.setFieldGrowthPolicy( + QtGui.QFormLayout.ExpandingFieldsGrow) self.footerLayout.setContentsMargins(50, 20, 20, 20) self.footerLayout.setSpacing(8) self.footerLayout.setObjectName(u'footerLayout') self.footerFontLabel = QtGui.QLabel(self.footerAreaPage) self.footerFontLabel.setObjectName(u'footerFontLabel') - self.footerLayout.setWidget(0, QtGui.QFormLayout.LabelRole, self.footerFontLabel) + self.footerLayout.setWidget(0, QtGui.QFormLayout.LabelRole, + self.footerFontLabel) self.footerFontComboBox = QtGui.QFontComboBox(self.footerAreaPage) self.footerFontComboBox.setObjectName(u'footerFontComboBox') - self.footerLayout.setWidget(0, QtGui.QFormLayout.FieldRole, self.footerFontComboBox) + self.footerLayout.setWidget(0, QtGui.QFormLayout.FieldRole, + self.footerFontComboBox) self.footerColorLabel = QtGui.QLabel(self.footerAreaPage) self.footerColorLabel.setObjectName(u'footerColorLabel') - self.footerLayout.setWidget(1, QtGui.QFormLayout.LabelRole, self.footerColorLabel) + self.footerLayout.setWidget(1, QtGui.QFormLayout.LabelRole, + self.footerColorLabel) self.footerColorPushButton = QtGui.QPushButton(self.footerAreaPage) self.footerColorPushButton.setText(u'') self.footerColorPushButton.setObjectName(u'footerColorPushButton') - self.footerLayout.setWidget(1, QtGui.QFormLayout.FieldRole, self.footerColorPushButton) + self.footerLayout.setWidget(1, QtGui.QFormLayout.FieldRole, + self.footerColorPushButton) self.footerSizeLabel = QtGui.QLabel(self.footerAreaPage) self.footerSizeLabel.setObjectName(u'footerSizeLabel') - self.footerLayout.setWidget(2, QtGui.QFormLayout.LabelRole, self.footerSizeLabel) + self.footerLayout.setWidget(2, QtGui.QFormLayout.LabelRole, + self.footerSizeLabel) self.footerSizeSpinBox = QtGui.QSpinBox(self.footerAreaPage) - sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Fixed) + sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Minimum, + QtGui.QSizePolicy.Fixed) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) - sizePolicy.setHeightForWidth(self.footerSizeSpinBox.sizePolicy().hasHeightForWidth()) + sizePolicy.setHeightForWidth( + self.footerSizeSpinBox.sizePolicy().hasHeightForWidth()) self.footerSizeSpinBox.setSizePolicy(sizePolicy) self.footerSizeSpinBox.setMinimumSize(QtCore.QSize(70, 0)) self.footerSizeSpinBox.setMaximum(999) self.footerSizeSpinBox.setProperty(u'value', 10) self.footerSizeSpinBox.setObjectName(u'footerSizeSpinBox') - self.footerLayout.setWidget(2, QtGui.QFormLayout.FieldRole, self.footerSizeSpinBox) + self.footerLayout.setWidget(2, QtGui.QFormLayout.FieldRole, + self.footerSizeSpinBox) ThemeWizard.addPage(self.footerAreaPage) self.alignmentPage = QtGui.QWizardPage() self.alignmentPage.setObjectName(u'alignmentPage') @@ -260,26 +303,31 @@ class Ui_ThemeWizard(object): self.formLayout_2.setObjectName(u'formLayout_2') self.horizontalLabel = QtGui.QLabel(self.alignmentPage) self.horizontalLabel.setObjectName(u'horizontalLabel') - self.formLayout_2.setWidget(0, QtGui.QFormLayout.LabelRole, self.horizontalLabel) + self.formLayout_2.setWidget(0, QtGui.QFormLayout.LabelRole, + self.horizontalLabel) self.horizontalComboBox = QtGui.QComboBox(self.alignmentPage) self.horizontalComboBox.setEditable(False) self.horizontalComboBox.setObjectName(u'horizontalComboBox') self.horizontalComboBox.addItem(u'') self.horizontalComboBox.addItem(u'') self.horizontalComboBox.addItem(u'') - self.formLayout_2.setWidget(0, QtGui.QFormLayout.FieldRole, self.horizontalComboBox) + self.formLayout_2.setWidget(0, QtGui.QFormLayout.FieldRole, + self.horizontalComboBox) self.verticalLabel = QtGui.QLabel(self.alignmentPage) self.verticalLabel.setObjectName(u'verticalLabel') - self.formLayout_2.setWidget(1, QtGui.QFormLayout.LabelRole, self.verticalLabel) + self.formLayout_2.setWidget(1, QtGui.QFormLayout.LabelRole, + self.verticalLabel) self.verticalComboBox = QtGui.QComboBox(self.alignmentPage) self.verticalComboBox.setObjectName(u'verticalComboBox') self.verticalComboBox.addItem(u'') self.verticalComboBox.addItem(u'') self.verticalComboBox.addItem(u'') - self.formLayout_2.setWidget(1, QtGui.QFormLayout.FieldRole, self.verticalComboBox) + self.formLayout_2.setWidget(1, QtGui.QFormLayout.FieldRole, + self.verticalComboBox) self.transitionsCheckBox = QtGui.QCheckBox(self.alignmentPage) self.transitionsCheckBox.setObjectName(u'transitionsCheckBox') - self.formLayout_2.setWidget(2, QtGui.QFormLayout.FieldRole, self.transitionsCheckBox) + self.formLayout_2.setWidget(2, QtGui.QFormLayout.FieldRole, + self.transitionsCheckBox) ThemeWizard.addPage(self.alignmentPage) self.areaPositionPage = QtGui.QWizardPage() self.areaPositionPage.setObjectName(u'areaPositionPage') @@ -294,128 +342,163 @@ class Ui_ThemeWizard(object): self.mainPositionLayout.setMargin(8) self.mainPositionLayout.setSpacing(8) self.mainPositionLayout.setObjectName(u'mainPositionLayout') - self.mainDefaultPositionCheckBox = QtGui.QCheckBox(self.mainPositionGroupBox) + self.mainDefaultPositionCheckBox = \ + QtGui.QCheckBox(self.mainPositionGroupBox) self.mainDefaultPositionCheckBox.setChecked(True) self.mainDefaultPositionCheckBox.setTristate(False) - self.mainDefaultPositionCheckBox.setObjectName(u'mainDefaultPositionCheckBox') - self.mainPositionLayout.setWidget(0, QtGui.QFormLayout.FieldRole, self.mainDefaultPositionCheckBox) + self.mainDefaultPositionCheckBox.setObjectName( + u'mainDefaultPositionCheckBox') + self.mainPositionLayout.setWidget(0, QtGui.QFormLayout.FieldRole, + self.mainDefaultPositionCheckBox) self.nainXLabel = QtGui.QLabel(self.mainPositionGroupBox) self.nainXLabel.setObjectName(u'nainXLabel') - self.mainPositionLayout.setWidget(1, QtGui.QFormLayout.LabelRole, self.nainXLabel) + self.mainPositionLayout.setWidget(1, QtGui.QFormLayout.LabelRole, + self.nainXLabel) self.mainXSpinBox = QtGui.QSpinBox(self.mainPositionGroupBox) self.mainXSpinBox.setEnabled(False) - sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Fixed) + sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Minimum, + QtGui.QSizePolicy.Fixed) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) - sizePolicy.setHeightForWidth(self.mainXSpinBox.sizePolicy().hasHeightForWidth()) + sizePolicy.setHeightForWidth( + self.mainXSpinBox.sizePolicy().hasHeightForWidth()) self.mainXSpinBox.setSizePolicy(sizePolicy) self.mainXSpinBox.setMinimumSize(QtCore.QSize(78, 0)) self.mainXSpinBox.setMaximum(9999) self.mainXSpinBox.setProperty(u'value', 0) self.mainXSpinBox.setObjectName(u'mainXSpinBox') - self.mainPositionLayout.setWidget(1, QtGui.QFormLayout.FieldRole, self.mainXSpinBox) + self.mainPositionLayout.setWidget(1, QtGui.QFormLayout.FieldRole, + self.mainXSpinBox) self.mainYSpinBox = QtGui.QSpinBox(self.mainPositionGroupBox) self.mainYSpinBox.setEnabled(False) - sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Fixed) + sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Minimum, + QtGui.QSizePolicy.Fixed) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) - sizePolicy.setHeightForWidth(self.mainYSpinBox.sizePolicy().hasHeightForWidth()) + sizePolicy.setHeightForWidth( + self.mainYSpinBox.sizePolicy().hasHeightForWidth()) self.mainYSpinBox.setSizePolicy(sizePolicy) self.mainYSpinBox.setMinimumSize(QtCore.QSize(78, 0)) self.mainYSpinBox.setMaximum(9999) self.mainYSpinBox.setObjectName(u'mainYSpinBox') - self.mainPositionLayout.setWidget(2, QtGui.QFormLayout.FieldRole, self.mainYSpinBox) + self.mainPositionLayout.setWidget(2, QtGui.QFormLayout.FieldRole, + self.mainYSpinBox) self.mainYLabel = QtGui.QLabel(self.mainPositionGroupBox) self.mainYLabel.setObjectName(u'mainYLabel') - self.mainPositionLayout.setWidget(2, QtGui.QFormLayout.LabelRole, self.mainYLabel) + self.mainPositionLayout.setWidget(2, QtGui.QFormLayout.LabelRole, + self.mainYLabel) self.mainWidthSpinBox = QtGui.QSpinBox(self.mainPositionGroupBox) self.mainWidthSpinBox.setEnabled(False) - sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Fixed) + sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Minimum, + QtGui.QSizePolicy.Fixed) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) - sizePolicy.setHeightForWidth(self.mainWidthSpinBox.sizePolicy().hasHeightForWidth()) + sizePolicy.setHeightForWidth( + self.mainWidthSpinBox.sizePolicy().hasHeightForWidth()) self.mainWidthSpinBox.setSizePolicy(sizePolicy) self.mainWidthSpinBox.setMinimumSize(QtCore.QSize(78, 0)) self.mainWidthSpinBox.setMaximum(9999) self.mainWidthSpinBox.setObjectName(u'mainWidthSpinBox') - self.mainPositionLayout.setWidget(3, QtGui.QFormLayout.FieldRole, self.mainWidthSpinBox) + self.mainPositionLayout.setWidget(3, QtGui.QFormLayout.FieldRole, + self.mainWidthSpinBox) self.mainWidthLabel = QtGui.QLabel(self.mainPositionGroupBox) self.mainWidthLabel.setObjectName(u'mainWidthLabel') - self.mainPositionLayout.setWidget(3, QtGui.QFormLayout.LabelRole, self.mainWidthLabel) + self.mainPositionLayout.setWidget(3, QtGui.QFormLayout.LabelRole, + self.mainWidthLabel) self.mainHeightSpinBox = QtGui.QSpinBox(self.mainPositionGroupBox) self.mainHeightSpinBox.setEnabled(False) - sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Fixed) + sizePolicy = QtGui.QSizePolicy( + QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Fixed) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) - sizePolicy.setHeightForWidth(self.mainHeightSpinBox.sizePolicy().hasHeightForWidth()) + sizePolicy.setHeightForWidth( + self.mainHeightSpinBox.sizePolicy().hasHeightForWidth()) self.mainHeightSpinBox.setSizePolicy(sizePolicy) self.mainHeightSpinBox.setMinimumSize(QtCore.QSize(78, 0)) self.mainHeightSpinBox.setMaximum(9999) self.mainHeightSpinBox.setObjectName(u'mainHeightSpinBox') - self.mainPositionLayout.setWidget(4, QtGui.QFormLayout.FieldRole, self.mainHeightSpinBox) + self.mainPositionLayout.setWidget(4, QtGui.QFormLayout.FieldRole, + self.mainHeightSpinBox) self.mainHeightLabel = QtGui.QLabel(self.mainPositionGroupBox) self.mainHeightLabel.setObjectName(u'mainHeightLabel') - self.mainPositionLayout.setWidget(4, QtGui.QFormLayout.LabelRole, self.mainHeightLabel) + self.mainPositionLayout.setWidget(4, QtGui.QFormLayout.LabelRole, + self.mainHeightLabel) self.gridLayout_2.addWidget(self.mainPositionGroupBox, 1, 0, 1, 1) self.footerPositionGroupBox = QtGui.QGroupBox(self.areaPositionPage) self.footerPositionGroupBox.setMinimumSize(QtCore.QSize(248, 0)) self.footerPositionGroupBox.setObjectName(u'footerPositionGroupBox') - self.footerPositionLayout = QtGui.QFormLayout(self.footerPositionGroupBox) + self.footerPositionLayout = \ + QtGui.QFormLayout(self.footerPositionGroupBox) self.footerPositionLayout.setMargin(8) self.footerPositionLayout.setSpacing(8) self.footerPositionLayout.setObjectName(u'footerPositionLayout') self.footerXLabel = QtGui.QLabel(self.footerPositionGroupBox) self.footerXLabel.setObjectName(u'footerXLabel') - self.footerPositionLayout.setWidget(1, QtGui.QFormLayout.LabelRole, self.footerXLabel) + self.footerPositionLayout.setWidget(1, QtGui.QFormLayout.LabelRole, + self.footerXLabel) self.footerXSpinBox = QtGui.QSpinBox(self.footerPositionGroupBox) self.footerXSpinBox.setEnabled(False) - sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Fixed) + sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Minimum, + QtGui.QSizePolicy.Fixed) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) - sizePolicy.setHeightForWidth(self.footerXSpinBox.sizePolicy().hasHeightForWidth()) + sizePolicy.setHeightForWidth( + self.footerXSpinBox.sizePolicy().hasHeightForWidth()) self.footerXSpinBox.setSizePolicy(sizePolicy) self.footerXSpinBox.setMinimumSize(QtCore.QSize(78, 0)) self.footerXSpinBox.setMaximum(9999) self.footerXSpinBox.setProperty(u'value', 0) self.footerXSpinBox.setObjectName(u'footerXSpinBox') - self.footerPositionLayout.setWidget(1, QtGui.QFormLayout.FieldRole, self.footerXSpinBox) + self.footerPositionLayout.setWidget(1, QtGui.QFormLayout.FieldRole, + self.footerXSpinBox) self.footerYLabel = QtGui.QLabel(self.footerPositionGroupBox) self.footerYLabel.setObjectName(u'footerYLabel') - self.footerPositionLayout.setWidget(2, QtGui.QFormLayout.LabelRole, self.footerYLabel) + self.footerPositionLayout.setWidget(2, QtGui.QFormLayout.LabelRole, + self.footerYLabel) self.footerYSpinBox = QtGui.QSpinBox(self.footerPositionGroupBox) self.footerYSpinBox.setEnabled(False) - sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Fixed) + sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Minimum, + QtGui.QSizePolicy.Fixed) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) - sizePolicy.setHeightForWidth(self.footerYSpinBox.sizePolicy().hasHeightForWidth()) + sizePolicy.setHeightForWidth( + self.footerYSpinBox.sizePolicy().hasHeightForWidth()) self.footerYSpinBox.setSizePolicy(sizePolicy) self.footerYSpinBox.setMinimumSize(QtCore.QSize(78, 0)) self.footerYSpinBox.setMaximum(9999) self.footerYSpinBox.setProperty(u'value', 0) self.footerYSpinBox.setObjectName(u'footerYSpinBox') - self.footerPositionLayout.setWidget(2, QtGui.QFormLayout.FieldRole, self.footerYSpinBox) + self.footerPositionLayout.setWidget(2, QtGui.QFormLayout.FieldRole, + self.footerYSpinBox) self.footerWidthLabel = QtGui.QLabel(self.footerPositionGroupBox) self.footerWidthLabel.setObjectName(u'footerWidthLabel') - self.footerPositionLayout.setWidget(3, QtGui.QFormLayout.LabelRole, self.footerWidthLabel) + self.footerPositionLayout.setWidget(3, QtGui.QFormLayout.LabelRole, + self.footerWidthLabel) self.footerWidthSpinBox = QtGui.QSpinBox(self.footerPositionGroupBox) self.footerWidthSpinBox.setEnabled(False) self.footerWidthSpinBox.setMinimumSize(QtCore.QSize(78, 0)) self.footerWidthSpinBox.setMaximum(9999) self.footerWidthSpinBox.setObjectName(u'footerWidthSpinBox') - self.footerPositionLayout.setWidget(3, QtGui.QFormLayout.FieldRole, self.footerWidthSpinBox) + self.footerPositionLayout.setWidget(3, QtGui.QFormLayout.FieldRole, + self.footerWidthSpinBox) self.footerHeightLabel = QtGui.QLabel(self.footerPositionGroupBox) self.footerHeightLabel.setObjectName(u'footerHeightLabel') - self.footerPositionLayout.setWidget(4, QtGui.QFormLayout.LabelRole, self.footerHeightLabel) + self.footerPositionLayout.setWidget(4, QtGui.QFormLayout.LabelRole, + self.footerHeightLabel) self.footerHeightSpinBox = QtGui.QSpinBox(self.footerPositionGroupBox) self.footerHeightSpinBox.setEnabled(False) self.footerHeightSpinBox.setMinimumSize(QtCore.QSize(78, 0)) self.footerHeightSpinBox.setMaximum(9999) self.footerHeightSpinBox.setObjectName(u'footerHeightSpinBox') - self.footerPositionLayout.setWidget(4, QtGui.QFormLayout.FieldRole, self.footerHeightSpinBox) - self.footerDefaultPositionCheckBox = QtGui.QCheckBox(self.footerPositionGroupBox) + self.footerPositionLayout.setWidget(4, QtGui.QFormLayout.FieldRole, + self.footerHeightSpinBox) + self.footerDefaultPositionCheckBox = \ + QtGui.QCheckBox(self.footerPositionGroupBox) self.footerDefaultPositionCheckBox.setChecked(True) - self.footerDefaultPositionCheckBox.setObjectName(u'footerDefaultPositionCheckBox') - self.footerPositionLayout.setWidget(0, QtGui.QFormLayout.FieldRole, self.footerDefaultPositionCheckBox) + self.footerDefaultPositionCheckBox.setObjectName( + u'footerDefaultPositionCheckBox') + self.footerPositionLayout.setWidget(0, QtGui.QFormLayout.FieldRole, + self.footerDefaultPositionCheckBox) self.gridLayout_2.addWidget(self.footerPositionGroupBox, 1, 1, 1, 1) ThemeWizard.addPage(self.areaPositionPage) self.previewPage = QtGui.QWizardPage() @@ -437,13 +520,16 @@ class Ui_ThemeWizard(object): self.groupBox.setObjectName(u'groupBox') self.horizontalLayout = QtGui.QHBoxLayout(self.groupBox) self.horizontalLayout.setObjectName(u'horizontalLayout') - spacerItem2 = QtGui.QSpacerItem(58, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum) + spacerItem2 = QtGui.QSpacerItem(58, 20, QtGui.QSizePolicy.Expanding, + QtGui.QSizePolicy.Minimum) self.horizontalLayout.addItem(spacerItem2) self.previewBoxLabel = QtGui.QLabel(self.groupBox) - sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Fixed, QtGui.QSizePolicy.Fixed) + sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Fixed, + QtGui.QSizePolicy.Fixed) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) - sizePolicy.setHeightForWidth(self.previewBoxLabel.sizePolicy().hasHeightForWidth()) + sizePolicy.setHeightForWidth( + self.previewBoxLabel.sizePolicy().hasHeightForWidth()) self.previewBoxLabel.setSizePolicy(sizePolicy) self.previewBoxLabel.setMinimumSize(QtCore.QSize(300, 200)) self.previewBoxLabel.setFrameShape(QtGui.QFrame.WinPanel) @@ -453,13 +539,15 @@ class Ui_ThemeWizard(object): self.previewBoxLabel.setScaledContents(True) self.previewBoxLabel.setObjectName(u'previewBoxLabel') self.horizontalLayout.addWidget(self.previewBoxLabel) - spacerItem3 = QtGui.QSpacerItem(78, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum) + spacerItem3 = QtGui.QSpacerItem(78, 20, QtGui.QSizePolicy.Expanding, + QtGui.QSizePolicy.Minimum) self.horizontalLayout.addItem(spacerItem3) ThemeWizard.addPage(self.previewPage) self.themeNameLabel.setBuddy(self.themeNameEdit) self.retranslateUi(ThemeWizard) - QtCore.QObject.connect(ThemeWizard, QtCore.SIGNAL(u'accepted()'), ThemeWizard.accept) + QtCore.QObject.connect(ThemeWizard, QtCore.SIGNAL(u'accepted()'), + ThemeWizard.accept) QtCore.QMetaObject.connectSlotsByName(ThemeWizard) def retranslateUi(self, ThemeWizard): From b88436c6413b91a0b230d3257b5a46beb0168b4f Mon Sep 17 00:00:00 2001 From: Andreas Preikschat Date: Thu, 2 Dec 2010 18:36:35 +0100 Subject: [PATCH 55/63] autocompleter should be 'CaseInsensitive' --- openlp/plugins/bibles/lib/mediaitem.py | 26 +++++++++++++++++++------- 1 file changed, 19 insertions(+), 7 deletions(-) diff --git a/openlp/plugins/bibles/lib/mediaitem.py b/openlp/plugins/bibles/lib/mediaitem.py index a3b95d3f3..3044e431a 100644 --- a/openlp/plugins/bibles/lib/mediaitem.py +++ b/openlp/plugins/bibles/lib/mediaitem.py @@ -241,9 +241,9 @@ class BibleMediaItem(MediaManagerItem): QtCore.QObject.connect(self.AdvancedToChapter, QtCore.SIGNAL(u'activated(int)'), self.onAdvancedToChapter) QtCore.QObject.connect(self.QuickSearchComboBox, - QtCore.SIGNAL(u'activated(int)'), self.autoCompletion) + QtCore.SIGNAL(u'activated(int)'), self.updateAutoCompleter) QtCore.QObject.connect(self.QuickVersionComboBox, - QtCore.SIGNAL(u'activated(int)'), self.autoCompletion) + QtCore.SIGNAL(u'activated(int)'), self.updateAutoCompleter) # Buttons QtCore.QObject.connect(self.AdvancedSearchButton, QtCore.SIGNAL(u'pressed()'), self.onAdvancedSearchButton) @@ -336,6 +336,7 @@ class BibleMediaItem(MediaManagerItem): log.debug(u'bible manager initialise') self.parent.manager.media = self self.loadBibles() + self.updateAutoCompleter() self.configUpdated() log.debug(u'bible manager initialise complete') @@ -402,6 +403,15 @@ class BibleMediaItem(MediaManagerItem): self.loadBibles() def initialiseBible(self, bible): + """ + This initialises the given bible, which means that its book names and + their chapter numbers is added to the combo boxes on the + 'Advanced Search' Tab. This is not of any importance of the + 'Quick Search' Tab. + + ``bible`` + The bible to initialise (unicode). + """ log.debug(u'initialiseBible %s', bible) book_data = self.parent.manager.get_books(bible) self.AdvancedBookComboBox.clear() @@ -432,11 +442,11 @@ class BibleMediaItem(MediaManagerItem): self.adjustComboBox(1, verse_count, self.AdvancedFromVerse) self.adjustComboBox(1, verse_count, self.AdvancedToVerse) - def autoCompletion(self): + def updateAutoCompleter(self): """ - This add or updates a bible book completion list for the search field. - The completion depends on the bible. It is only added when we are doing - a verse search on the quick tab, otherwise it is removed. + This updates the bible book completion list for the search field. The + completion depends on the bible. It is only updated when we are doing a + verse search, otherwise the auto completion list is removed. """ books = [] # We have to do a 'Verse Search'. @@ -445,7 +455,9 @@ class BibleMediaItem(MediaManagerItem): if bible: book_data = self.parent.manager.get_books(bible) books = [book[u'name'] for book in book_data] - self.QuickSearchEdit.setCompleter(QtGui.QCompleter(books)) + completer = QtGui.QCompleter(books) + completer.setCaseSensitivity(QtCore.Qt.CaseInsensitive) + self.QuickSearchEdit.setCompleter(completer) def onAdvancedVersionComboBox(self): self.initialiseBible( From 1b6aa34d3969660748c7171c82ad09f448ddeca8 Mon Sep 17 00:00:00 2001 From: Tim Bentley Date: Fri, 3 Dec 2010 15:14:32 +0000 Subject: [PATCH 56/63] Pylint again --- openlp/core/ui/themewizard.py | 117 ++++++++++++++++++++++------------ 1 file changed, 78 insertions(+), 39 deletions(-) diff --git a/openlp/core/ui/themewizard.py b/openlp/core/ui/themewizard.py index bff8a578c..a2a919857 100644 --- a/openlp/core/ui/themewizard.py +++ b/openlp/core/ui/themewizard.py @@ -551,36 +551,52 @@ class Ui_ThemeWizard(object): QtCore.QMetaObject.connectSlotsByName(ThemeWizard) def retranslateUi(self, ThemeWizard): - ThemeWizard.setWindowTitle(translate('OpenLP.ThemeForm', 'Theme Wizard')) - self.titleLabel.setText(translate('OpenLP.ThemeForm', '\n' + ThemeWizard.setWindowTitle(translate('OpenLP.ThemeForm', + 'Theme Wizard')) + self.titleLabel.setText(translate('OpenLP.ThemeForm', + '\n' '\n' '

Welcome to the Theme Wizard

')) self.informationLabel.setText(translate('OpenLP.ThemeForm', 'This wizard will help you to maintain Themes . Click the next button below to start the process by setting up your background.')) self.backgroundPage.setTitle(translate('OpenLP.ThemeForm', 'Set Up Background')) - self.backgroundPage.setSubTitle(translate('OpenLP.ThemeForm', 'Set up your theme\'s background according to the parameters below.')) - self.backgroundTypeLabel.setText(translate('OpenLP.ThemeForm', 'Background type:')) - self.backgroundTypeComboBox.setItemText(0, translate('OpenLP.ThemeForm', 'Solid Color')) - self.backgroundTypeComboBox.setItemText(1, translate('OpenLP.ThemeForm', 'Gradient')) - self.backgroundTypeComboBox.setItemText(2, translate('OpenLP.ThemeForm', 'Image')) + self.backgroundPage.setSubTitle(translate('OpenLP.ThemeForm', + 'Set up your theme\'s background according to the parameters below.')) + self.backgroundTypeLabel.setText(translate('OpenLP.ThemeForm', + 'Background type:')) + self.backgroundTypeComboBox.setItemText(0, translate('OpenLP.ThemeForm', + 'Solid Color')) + self.backgroundTypeComboBox.setItemText(1, translate('OpenLP.ThemeForm', + 'Gradient')) + self.backgroundTypeComboBox.setItemText(2, translate('OpenLP.ThemeForm', + 'Image')) self.color1Label.setText(translate('OpenLP.ThemeForm', '')) self.color2Label.setText(translate('OpenLP.ThemeForm', '')) self.imageLabel.setText(translate('OpenLP.ThemeForm', 'Image:')) self.gradientLabel.setText(translate('OpenLP.ThemeForm', 'Gradient:')) - self.gradientComboBox.setItemText(0, translate('OpenLP.ThemeForm', 'Horizontal')) - self.gradientComboBox.setItemText(1, translate('OpenLP.ThemeForm', 'Vertical')) - self.gradientComboBox.setItemText(2, translate('OpenLP.ThemeForm', 'Circular')) - self.gradientComboBox.setItemText(3, translate('OpenLP.ThemeForm', 'Top Left - Bottom Right')) - self.gradientComboBox.setItemText(4, translate('OpenLP.ThemeForm', 'Bottom Left - Top Right')) - self.mainAreaPage.setTitle(translate('OpenLP.ThemeForm', 'Main Area Font Details')) - self.mainAreaPage.setSubTitle(translate('OpenLP.ThemeForm', 'Define the font and display characteristics for the Display text')) + self.gradientComboBox.setItemText(0, translate('OpenLP.ThemeForm', + 'Horizontal')) + self.gradientComboBox.setItemText(1, translate('OpenLP.ThemeForm', + 'Vertical')) + self.gradientComboBox.setItemText(2, translate('OpenLP.ThemeForm', + 'Circular')) + self.gradientComboBox.setItemText(3, translate('OpenLP.ThemeForm', + 'Top Left - Bottom Right')) + self.gradientComboBox.setItemText(4, translate('OpenLP.ThemeForm', + 'Bottom Left - Top Right')) + self.mainAreaPage.setTitle(translate('OpenLP.ThemeForm', + 'Main Area Font Details')) + self.mainAreaPage.setSubTitle(translate('OpenLP.ThemeForm', + 'Define the font and display characteristics for the Display text')) self.mainFontLabel.setText(translate('OpenLP.ThemeForm', 'Font:')) self.mainColorLabel.setText(translate('OpenLP.ThemeForm', 'Color:')) self.mainSizeLabel.setText(translate('OpenLP.ThemeForm', 'Size:')) self.mainSizeSpinBox.setSuffix(translate('OpenLP.ThemeForm', 'pt')) - self.mainLineCountLabel.setText(translate('OpenLP.ThemeForm', '(%d lines per slide)')) - self.lineSpacingLabel.setText(translate('OpenLP.ThemeForm', 'Line Spacing:')) + self.mainLineCountLabel.setText(translate('OpenLP.ThemeForm', + '(%d lines per slide)')) + self.lineSpacingLabel.setText(translate('OpenLP.ThemeForm', + 'Line Spacing:')) self.lineSpacingSpinBox.setSuffix(translate('OpenLP.ThemeForm', 'pt')) self.outlineCheckBox.setText(translate('OpenLP.ThemeForm', '&Outline:')) self.outlineSizeLabel.setText(translate('OpenLP.ThemeForm', 'Size:')) @@ -589,28 +605,46 @@ class Ui_ThemeWizard(object): self.shadowSizeLabel.setText(translate('OpenLP.ThemeForm', 'Size:')) self.shadowSizeSpinBox.setSuffix(translate('OpenLP.ThemeForm', 'pt')) self.boldCheckBox.setText(translate('OpenLP.ThemeForm', 'Bold Display')) - self.italicsCheckBox.setText(translate('OpenLP.ThemeForm', 'Italic Display')) - self.footerAreaPage.setTitle(translate('OpenLP.ThemeForm', 'Footer Area Font Details')) - self.footerAreaPage.setSubTitle(translate('OpenLP.ThemeForm', 'Define the font and display characteristics for the Footer text')) + self.italicsCheckBox.setText(translate('OpenLP.ThemeForm', + 'Italic Display')) + self.footerAreaPage.setTitle(translate('OpenLP.ThemeForm', + 'Footer Area Font Details')) + self.footerAreaPage.setSubTitle(translate('OpenLP.ThemeForm', + 'Define the font and display characteristics for the Footer text')) self.footerFontLabel.setText(translate('OpenLP.ThemeForm', 'Font:')) self.footerColorLabel.setText(translate('OpenLP.ThemeForm', 'Color:')) self.footerSizeLabel.setText(translate('OpenLP.ThemeForm', 'Size:')) self.footerSizeSpinBox.setSuffix(translate('OpenLP.ThemeForm', 'pt')) - self.alignmentPage.setTitle(translate('OpenLP.ThemeForm', 'Text Formatting Details')) - self.alignmentPage.setSubTitle(translate('OpenLP.ThemeForm', 'Allows additional display formatting information to be defined')) - self.horizontalLabel.setText(translate('OpenLP.ThemeForm', 'Horizontal Align:')) - self.horizontalComboBox.setItemText(0, translate('OpenLP.ThemeForm', 'Left')) - self.horizontalComboBox.setItemText(1, translate('OpenLP.ThemeForm', 'Right')) - self.horizontalComboBox.setItemText(2, translate('OpenLP.ThemeForm', 'Center')) - self.verticalLabel.setText(translate('OpenLP.ThemeForm', 'Vertcal Align:')) - self.verticalComboBox.setItemText(0, translate('OpenLP.ThemeForm', 'Top')) - self.verticalComboBox.setItemText(1, translate('OpenLP.ThemeForm', 'Middle')) - self.verticalComboBox.setItemText(2, translate('OpenLP.ThemeForm', 'Bottom')) - self.transitionsCheckBox.setText(translate('OpenLP.ThemeForm', 'Transitions')) - self.areaPositionPage.setTitle(translate('OpenLP.ThemeForm', 'Output Area Locations')) - self.areaPositionPage.setSubTitle(translate('OpenLP.ThemeForm', 'Allows you to change and move the Main and Footer areas.')) - self.mainPositionGroupBox.setTitle(translate('OpenLP.ThemeForm', '&Main Area')) - self.mainDefaultPositionCheckBox.setText(translate('OpenLP.ThemeForm', '&Use default location')) + self.alignmentPage.setTitle(translate('OpenLP.ThemeForm', + 'Text Formatting Details')) + self.alignmentPage.setSubTitle(translate('OpenLP.ThemeForm', + 'Allows additional display formatting information to be defined')) + self.horizontalLabel.setText(translate('OpenLP.ThemeForm', + 'Horizontal Align:')) + self.horizontalComboBox.setItemText(0, translate('OpenLP.ThemeForm', + 'Left')) + self.horizontalComboBox.setItemText(1, translate('OpenLP.ThemeForm', + 'Right')) + self.horizontalComboBox.setItemText(2, translate('OpenLP.ThemeForm', + 'Center')) + self.verticalLabel.setText(translate('OpenLP.ThemeForm', + 'Vertcal Align:')) + self.verticalComboBox.setItemText(0, translate('OpenLP.ThemeForm', + 'Top')) + self.verticalComboBox.setItemText(1, translate('OpenLP.ThemeForm', + 'Middle')) + self.verticalComboBox.setItemText(2, translate('OpenLP.ThemeForm', + 'Bottom')) + self.transitionsCheckBox.setText(translate('OpenLP.ThemeForm', + 'Transitions')) + self.areaPositionPage.setTitle(translate('OpenLP.ThemeForm', + 'Output Area Locations')) + self.areaPositionPage.setSubTitle(translate('OpenLP.ThemeForm', + 'Allows you to change and move the Main and Footer areas.')) + self.mainPositionGroupBox.setTitle(translate('OpenLP.ThemeForm', + '&Main Area')) + self.mainDefaultPositionCheckBox.setText(translate('OpenLP.ThemeForm', + '&Use default location')) self.nainXLabel.setText(translate('OpenLP.ThemeForm', 'X position:')) self.mainXSpinBox.setSuffix(translate('OpenLP.ThemeForm', 'px')) self.mainYSpinBox.setSuffix(translate('OpenLP.ThemeForm', 'px')) @@ -619,7 +653,8 @@ class Ui_ThemeWizard(object): self.mainWidthLabel.setText(translate('OpenLP.ThemeForm', 'Width:')) self.mainHeightSpinBox.setSuffix(translate('OpenLP.ThemeForm', 'px')) self.mainHeightLabel.setText(translate('OpenLP.ThemeForm', 'Height:')) - self.footerPositionGroupBox.setTitle(translate('OpenLP.ThemeForm', 'Footer Area')) + self.footerPositionGroupBox.setTitle(translate('OpenLP.ThemeForm', + 'Footer Area')) self.footerXLabel.setText(translate('OpenLP.ThemeForm', 'X position:')) self.footerXSpinBox.setSuffix(translate('OpenLP.ThemeForm', 'px')) self.footerYLabel.setText(translate('OpenLP.ThemeForm', 'Y position:')) @@ -628,8 +663,12 @@ class Ui_ThemeWizard(object): self.footerWidthSpinBox.setSuffix(translate('OpenLP.ThemeForm', 'px')) self.footerHeightLabel.setText(translate('OpenLP.ThemeForm', 'Height:')) self.footerHeightSpinBox.setSuffix(translate('OpenLP.ThemeForm', 'px')) - self.footerDefaultPositionCheckBox.setText(translate('OpenLP.ThemeForm', 'Use default location')) - self.previewPage.setTitle(translate('OpenLP.ThemeForm', 'Save and Preview')) - self.previewPage.setSubTitle(translate('OpenLP.ThemeForm', 'View the theme and save it replacing the current one or change the name to create a new theme')) - self.themeNameLabel.setText(translate('OpenLP.ThemeForm', 'Theme name:')) + self.footerDefaultPositionCheckBox.setText(translate('OpenLP.ThemeForm', + 'Use default location')) + self.previewPage.setTitle(translate('OpenLP.ThemeForm', + 'Save and Preview')) + self.previewPage.setSubTitle(translate('OpenLP.ThemeForm', + 'View the theme and save it replacing the current one or change the name to create a new theme')) + self.themeNameLabel.setText(translate('OpenLP.ThemeForm', + 'Theme name:')) self.previewLabel.setText(translate('OpenLP.ThemeForm', 'Preview')) From 37c065a6e4768fea0e9be5e5a7fe77ecef1a1fce Mon Sep 17 00:00:00 2001 From: Tim Bentley Date: Fri, 3 Dec 2010 18:56:12 +0000 Subject: [PATCH 57/63] pylint finished for now --- openlp/core/ui/servicemanager.py | 10 +++++----- openlp/core/ui/slidecontroller.py | 12 ++++++------ openlp/core/ui/thememanager.py | 2 +- openlp/core/ui/themestab.py | 6 +++--- 4 files changed, 15 insertions(+), 15 deletions(-) diff --git a/openlp/core/ui/servicemanager.py b/openlp/core/ui/servicemanager.py index 6d721823a..85dff6b91 100644 --- a/openlp/core/ui/servicemanager.py +++ b/openlp/core/ui/servicemanager.py @@ -759,7 +759,7 @@ class ServiceManager(QtGui.QWidget): self.onNewService() for item in items: serviceitem = ServiceItem() - serviceitem.render_manager = self.parent.RenderManager + serviceitem.render_manager = self.parent.renderManager serviceitem.set_from_service(item, self.servicePath) self.validateItem(serviceitem) self.addServiceItem(serviceitem) @@ -820,7 +820,7 @@ class ServiceManager(QtGui.QWidget): """ log.debug(u'onThemeComboBoxSelected') self.service_theme = unicode(self.themeComboBox.currentText()) - self.parent.RenderManager.set_service_theme(self.service_theme) + self.parent.renderManager.set_service_theme(self.service_theme) QtCore.QSettings().setValue( self.parent.serviceSettingsSection + u'/service theme', QtCore.QVariant(self.service_theme)) @@ -832,7 +832,7 @@ class ServiceManager(QtGui.QWidget): sure the theme combo box is in the correct state. """ log.debug(u'themeChange') - if self.parent.RenderManager.theme_level == ThemeLevel.Global: + if self.parent.renderManager.theme_level == ThemeLevel.Global: self.toolbar.actions[u'ThemeLabel'].setVisible(False) self.toolbar.actions[u'ThemeWidget'].setVisible(False) else: @@ -846,7 +846,7 @@ class ServiceManager(QtGui.QWidget): """ log.debug(u'regenerateServiceItems') # force reset of renderer as theme data has changed - self.parent.RenderManager.themedata = None + self.parent.renderManager.themedata = None if self.serviceItems: tempServiceItems = self.serviceItems self.serviceManagerList.clear() @@ -1088,7 +1088,7 @@ class ServiceManager(QtGui.QWidget): index = 0 self.service_theme = u'' self.themeComboBox.setCurrentIndex(index) - self.parent.RenderManager.set_service_theme(self.service_theme) + self.parent.renderManager.set_service_theme(self.service_theme) self.regenerateServiceItems() def onThemeChangeAction(self): diff --git a/openlp/core/ui/slidecontroller.py b/openlp/core/ui/slidecontroller.py index 48810990a..f667c6d3c 100644 --- a/openlp/core/ui/slidecontroller.py +++ b/openlp/core/ui/slidecontroller.py @@ -400,7 +400,7 @@ class SlideController(QtGui.QWidget): log.debug(u'screenSizeChanged live = %s' % self.isLive) # rebuild display as screen size changed self.display = MainDisplay(self, self.screens, self.isLive) - self.display.imageManager = self.parent.RenderManager.image_manager + self.display.imageManager = self.parent.renderManager.image_manager self.display.alertTab = self.alertTab self.ratio = float(self.screens.current[u'size'].width()) / \ float(self.screens.current[u'size'].height()) @@ -416,7 +416,7 @@ class SlideController(QtGui.QWidget): """ log.debug(u'widthChanged live = %s' % self.isLive) width = self.parent.ControlSplitter.sizes()[self.split] - height = width * self.parent.RenderManager.screen_ratio + height = width * self.parent.renderManager.screen_ratio self.PreviewListWidget.setColumnWidth(0, width) # Sort out image heights (Songs, bibles excluded) if self.serviceItem and not self.serviceItem.is_text(): @@ -595,14 +595,14 @@ class SlideController(QtGui.QWidget): label.setScaledContents(True) if self.serviceItem.is_command(): image = resize_image(frame[u'image'], - self.parent.RenderManager.width, - self.parent.RenderManager.height) + self.parent.renderManager.width, + self.parent.renderManager.height) else: - image = self.parent.RenderManager.image_manager. \ + image = self.parent.renderManager.image_manager. \ get_image(frame[u'title']) label.setPixmap(QtGui.QPixmap.fromImage(image)) self.PreviewListWidget.setCellWidget(framenumber, 0, label) - slideHeight = width * self.parent.RenderManager.screen_ratio + slideHeight = width * self.parent.renderManager.screen_ratio row += 1 text.append(unicode(row)) self.PreviewListWidget.setItem(framenumber, 0, item) diff --git a/openlp/core/ui/thememanager.py b/openlp/core/ui/thememanager.py index 56765eda6..e69bdade1 100644 --- a/openlp/core/ui/thememanager.py +++ b/openlp/core/ui/thememanager.py @@ -750,7 +750,7 @@ class ThemeManager(QtGui.QWidget): Flag to tell message lines per page need to be generated. """ log.debug(u'generateImage \n%s ', themeData) - return self.parent.RenderManager.generate_preview(themeData, forcePage) + return self.parent.renderManager.generate_preview(themeData, forcePage) def getPreviewImage(self, theme): """ diff --git a/openlp/core/ui/themestab.py b/openlp/core/ui/themestab.py index 853865bb5..412d2dec2 100644 --- a/openlp/core/ui/themestab.py +++ b/openlp/core/ui/themestab.py @@ -153,7 +153,7 @@ class ThemesTab(SettingsTab): settings.setValue(u'global theme', QtCore.QVariant(self.global_theme)) settings.endGroup() - self.parent.RenderManager.set_global_theme( + self.parent.renderManager.set_global_theme( self.global_theme, self.theme_level) Receiver.send_message(u'theme_update_global', self.global_theme) @@ -171,7 +171,7 @@ class ThemesTab(SettingsTab): def onDefaultComboBoxChanged(self, value): self.global_theme = unicode(self.DefaultComboBox.currentText()) - self.parent.RenderManager.set_global_theme( + self.parent.renderManager.set_global_theme( self.global_theme, self.theme_level) image = self.parent.ThemeManagerContents.getPreviewImage( self.global_theme) @@ -198,7 +198,7 @@ class ThemesTab(SettingsTab): id = 0 # Not Found self.global_theme = u'' self.DefaultComboBox.setCurrentIndex(id) - self.parent.RenderManager.set_global_theme( + self.parent.renderManager.set_global_theme( self.global_theme, self.theme_level) if self.global_theme is not u'': image = self.parent.ThemeManagerContents.getPreviewImage( From 99cfc65446efdc0afe7d4dfe0364127d1e468b98 Mon Sep 17 00:00:00 2001 From: Tim Bentley Date: Fri, 3 Dec 2010 19:00:40 +0000 Subject: [PATCH 58/63] Allow theme name to be changed after error message Fixes: https://launchpad.net/bugs/684901 --- openlp/core/ui/themeform.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/openlp/core/ui/themeform.py b/openlp/core/ui/themeform.py index cc52abafc..aa1780836 100644 --- a/openlp/core/ui/themeform.py +++ b/openlp/core/ui/themeform.py @@ -606,7 +606,6 @@ class ThemeForm(QtGui.QWizard, Ui_ThemeWizard): # Hack to stop it for now. if self.accepted: return - self.accepted = True # Save the theme name self.theme.theme_name = \ unicode(self.field(u'name').toString()) @@ -628,6 +627,7 @@ class ThemeForm(QtGui.QWizard, Ui_ThemeWizard): (QtGui.QMessageBox.Ok), QtGui.QMessageBox.Ok) return + self.accepted = True saveFrom = None saveTo = None if self.theme.background_type == \ From 22f52b74c1659aa220c7ddde2d5f73e019743858 Mon Sep 17 00:00:00 2001 From: Tim Bentley Date: Fri, 3 Dec 2010 19:21:15 +0000 Subject: [PATCH 59/63] Fix spelling --- openlp/core/lib/theme.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/openlp/core/lib/theme.py b/openlp/core/lib/theme.py index db31f54da..542e4e723 100644 --- a/openlp/core/lib/theme.py +++ b/openlp/core/lib/theme.py @@ -56,7 +56,7 @@ BLANK_THEME_XML = \ Arial #FFFFFF - 30 + 40 False False 0 From 245465ab112e875a82f9b862c471909882a77ced Mon Sep 17 00:00:00 2001 From: Andreas Preikschat Date: Fri, 3 Dec 2010 20:53:56 +0100 Subject: [PATCH 60/63] improved completor performance --- openlp/plugins/bibles/lib/mediaitem.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/openlp/plugins/bibles/lib/mediaitem.py b/openlp/plugins/bibles/lib/mediaitem.py index 3044e431a..949035c0b 100644 --- a/openlp/plugins/bibles/lib/mediaitem.py +++ b/openlp/plugins/bibles/lib/mediaitem.py @@ -451,10 +451,12 @@ class BibleMediaItem(MediaManagerItem): books = [] # We have to do a 'Verse Search'. if self.QuickSearchComboBox.currentIndex() == 0: + bibles = self.parent.manager.get_bibles() bible = unicode(self.QuickVersionComboBox.currentText()) if bible: - book_data = self.parent.manager.get_books(bible) - books = [book[u'name'] for book in book_data] + book_data = bibles[bible].get_books() + books = [book.name for book in book_data] + books.sort() completer = QtGui.QCompleter(books) completer.setCaseSensitivity(QtCore.Qt.CaseInsensitive) self.QuickSearchEdit.setCompleter(completer) From 41dfd114d7878662cdb07d41be6aedff1d6a6be2 Mon Sep 17 00:00:00 2001 From: Tim Bentley Date: Fri, 3 Dec 2010 20:22:59 +0000 Subject: [PATCH 61/63] Theme values are preserved correctly Fixes: https://launchpad.net/bugs/684901 --- openlp/core/lib/theme.py | 1 - openlp/core/ui/themeform.py | 17 ++++++++++------- 2 files changed, 10 insertions(+), 8 deletions(-) diff --git a/openlp/core/lib/theme.py b/openlp/core/lib/theme.py index 542e4e723..ae893ead1 100644 --- a/openlp/core/lib/theme.py +++ b/openlp/core/lib/theme.py @@ -318,7 +318,6 @@ class ThemeXML(object): ``shadow_size`` How big the Shadow is - """ background = self.theme_xml.createElement(u'font') background.setAttribute(u'type', fonttype) diff --git a/openlp/core/ui/themeform.py b/openlp/core/ui/themeform.py index aa1780836..ba439c5b1 100644 --- a/openlp/core/ui/themeform.py +++ b/openlp/core/ui/themeform.py @@ -55,6 +55,7 @@ class ThemeForm(QtGui.QWizard, Ui_ThemeWizard): self.setupUi(self) self.registerFields() self.accepted = False + self.updateThemeAllowed = True QtCore.QObject.connect(self.backgroundTypeComboBox, QtCore.SIGNAL(u'currentIndexChanged(int)'), self.onBackgroundComboBox) @@ -164,8 +165,6 @@ class ThemeForm(QtGui.QWizard, Ui_ThemeWizard): u'background_image', self.imageLineEdit) self.backgroundPage.registerField( u'gradient', self.gradientComboBox) - self.mainAreaPage.registerField( - u'mainFontComboBox', self.mainFontComboBox) self.mainAreaPage.registerField( u'mainColorPushButton', self.mainColorPushButton) self.mainAreaPage.registerField( @@ -285,7 +284,9 @@ class ThemeForm(QtGui.QWizard, Ui_ThemeWizard): """ Run the wizard. """ + self.updateThemeAllowed = False self.setDefaults() + self.updateThemeAllowed = True return QtGui.QWizard.exec_(self) def initializePage(self, id): @@ -526,11 +527,11 @@ class ThemeForm(QtGui.QWizard, Ui_ThemeWizard): self.theme.background_filename = unicode(filename) self.setBackgroundTabValues() - def onMainFontComboBox(self): - """ - Main Font Combo box changed - """ - self.theme.font_main_name = self.mainFontComboBox.currentFont().family() +# def onMainFontComboBox(self): +# """ +# Main Font Combo box changed +# """ +# self.theme.font_main_name = self.mainFontComboBox.currentFont().family() def onMainColourPushButtonClicked(self): self.theme.font_main_color = \ @@ -557,6 +558,8 @@ class ThemeForm(QtGui.QWizard, Ui_ThemeWizard): Update the theme object from the UI for fields not already updated when the are changed. """ + if not self.updateThemeAllowed: + return log.debug(u'updateTheme') # main page self.theme.font_main_name = \ From 38d777d98e042a9f12c47e1adc814657dd1e87e5 Mon Sep 17 00:00:00 2001 From: Tim Bentley Date: Sat, 4 Dec 2010 09:05:11 +0000 Subject: [PATCH 62/63] Fix more line endings --- openlp/core/ui/themewizard.py | 29 ++++++++++++++++++++--------- 1 file changed, 20 insertions(+), 9 deletions(-) diff --git a/openlp/core/ui/themewizard.py b/openlp/core/ui/themewizard.py index a2a919857..8f981ad7c 100644 --- a/openlp/core/ui/themewizard.py +++ b/openlp/core/ui/themewizard.py @@ -554,15 +554,25 @@ class Ui_ThemeWizard(object): ThemeWizard.setWindowTitle(translate('OpenLP.ThemeForm', 'Theme Wizard')) self.titleLabel.setText(translate('OpenLP.ThemeForm', - '\n' -'\n' -'

Welcome to the Theme Wizard

')) - self.informationLabel.setText(translate('OpenLP.ThemeForm', 'This wizard will help you to maintain Themes . Click the next button below to start the process by setting up your background.')) - self.backgroundPage.setTitle(translate('OpenLP.ThemeForm', 'Set Up Background')) + '\n' + '\n' + '

' + 'Welcome to the Theme Wizard

')) + self.informationLabel.setText(translate('OpenLP.ThemeForm', + 'This wizard will help you to maintain Themes . Click the next ' + 'button below to start the process by setting up your background.')) + self.backgroundPage.setTitle(translate('OpenLP.ThemeForm', + 'Set Up Background')) self.backgroundPage.setSubTitle(translate('OpenLP.ThemeForm', - 'Set up your theme\'s background according to the parameters below.')) + 'Set up your theme\'s background according to the parameters ' + 'below.')) self.backgroundTypeLabel.setText(translate('OpenLP.ThemeForm', 'Background type:')) self.backgroundTypeComboBox.setItemText(0, translate('OpenLP.ThemeForm', @@ -668,7 +678,8 @@ class Ui_ThemeWizard(object): self.previewPage.setTitle(translate('OpenLP.ThemeForm', 'Save and Preview')) self.previewPage.setSubTitle(translate('OpenLP.ThemeForm', - 'View the theme and save it replacing the current one or change the name to create a new theme')) + 'View the theme and save it replacing the current one or change ' + 'the name to create a new theme')) self.themeNameLabel.setText(translate('OpenLP.ThemeForm', 'Theme name:')) self.previewLabel.setText(translate('OpenLP.ThemeForm', 'Preview')) From 3389e487ca34a83bc1c42b7052b16a61fda73a0d Mon Sep 17 00:00:00 2001 From: Raoul Snyman Date: Sun, 5 Dec 2010 20:02:36 +0200 Subject: [PATCH 63/63] Fixed issues from merges. Set second page of wizard on edit. --- openlp/core/ui/themeform.py | 4 +++- openlp/core/ui/thememanager.py | 2 +- openlp/core/ui/themewizard.py | 5 ++--- 3 files changed, 6 insertions(+), 5 deletions(-) diff --git a/openlp/core/ui/themeform.py b/openlp/core/ui/themeform.py index 613670f01..3b2c4edba 100644 --- a/openlp/core/ui/themeform.py +++ b/openlp/core/ui/themeform.py @@ -285,13 +285,15 @@ class ThemeForm(QtGui.QWizard, Ui_ThemeWizard): self.footerHeightSpinBox.setEnabled(self.theme.font_footer_override) self.footerWidthSpinBox.setEnabled(self.theme.font_footer_override) - def exec_(self): + def exec_(self, edit=False): """ Run the wizard. """ self.updateThemeAllowed = False self.setDefaults() self.updateThemeAllowed = True + if edit: + self.next() return QtGui.QWizard.exec_(self) def initializePage(self, id): diff --git a/openlp/core/ui/thememanager.py b/openlp/core/ui/thememanager.py index e69bdade1..da8597cc0 100644 --- a/openlp/core/ui/thememanager.py +++ b/openlp/core/ui/thememanager.py @@ -280,7 +280,7 @@ class ThemeManager(QtGui.QWidget): self.saveThemeName = unicode( item.data(QtCore.Qt.UserRole).toString()) self.themeForm.theme = theme - self.themeForm.exec_() + self.themeForm.exec_(True) def onDeleteTheme(self): """ diff --git a/openlp/core/ui/themewizard.py b/openlp/core/ui/themewizard.py index b4b5fcea3..76fd1d445 100644 --- a/openlp/core/ui/themewizard.py +++ b/openlp/core/ui/themewizard.py @@ -36,8 +36,7 @@ class Ui_ThemeWizard(object): ThemeWizard.setWizardStyle(QtGui.QWizard.ModernStyle) ThemeWizard.setOptions( QtGui.QWizard.IndependentPages | - QtGui.QWizard.NoBackButtonOnStartPage | - QtGui.QWizard.NoBackButtonOnLastPage) + QtGui.QWizard.NoBackButtonOnStartPage) self.welcomePage = QtGui.QWizardPage() self.welcomePage.setTitle(u'') self.welcomePage.setSubTitle(u'') @@ -556,7 +555,7 @@ class Ui_ThemeWizard(object): u'footerDefaultPositionCheckBox') self.footerPositionLayout.setWidget(0, QtGui.QFormLayout.FieldRole, self.footerDefaultPositionCheckBox) - self.footerPositionGroupBox, 1, 1, 1, 1) + self.areaPositionLayout.addWidget(self.footerPositionGroupBox, 1, 1, 1, 1) ThemeWizard.addPage(self.areaPositionPage) self.previewPage = QtGui.QWizardPage() self.previewPage.setObjectName(u'previewPage')

TAvqyAv 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,CHiVf2OcXqCdy^6U$I__zhR= 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 Date: Sat, 27 Nov 2010 15:25:00 +0000 Subject: [PATCH 36/63] Documentation fixups and \nstart to add OpenlLyrics export for songs --- documentation/manual/source/songusage.rst | 32 +++++---- openlp/core/lib/mediamanageritem.py | 10 +-- openlp/core/lib/serviceitem.py | 6 +- openlp/plugins/bibles/lib/mediaitem.py | 2 +- openlp/plugins/custom/lib/mediaitem.py | 2 +- openlp/plugins/images/lib/mediaitem.py | 2 +- openlp/plugins/media/lib/mediaitem.py | 2 +- openlp/plugins/presentations/lib/mediaitem.py | 10 +-- openlp/plugins/songs/lib/__init__.py | 3 +- openlp/plugins/songs/lib/mediaitem.py | 24 +++++-- openlp/plugins/songs/lib/xml.py | 69 ++++++++++++++++++- 11 files changed, 123 insertions(+), 39 deletions(-) diff --git a/documentation/manual/source/songusage.rst b/documentation/manual/source/songusage.rst index df6d930f3..6e439ce6c 100644 --- a/documentation/manual/source/songusage.rst +++ b/documentation/manual/source/songusage.rst @@ -5,18 +5,30 @@ Song Usage The Songusage plugin records the usage of Songs when they are used in a **Live** situation. If the plugin is active all songs sent to the Live Service Manager are recorded by this plugin. Once the plugin has been activated by the plugin -menu it can be turned on and off by use of the``F4`` key or the SongUsage menus. +menu it can be turned on and off by use of the :guilabel:`F4` key or the +SongUsage menus. The image below shows the menu items and how to access them. .. image:: pics/songusage.png +Delete Tracking Data +^^^^^^^^^^^^^^^^^^^^ +This option allows the removal of stored data use is no longer required. +Select the date you wish to remove data up to and press :guilabel:`Ok`. + +This option is not reversable. + +.. image:: pics/songusagedelete.png + +Extract Tracking Data +^^^^^^^^^^^^^^^^^^^^^ +This option allows reports to be generated between any two dates. + +The system automatically defaults to dates between the 1st September last year +and 31st August this year. The data is written to a file in the selected +directory. -Generating reports ------------------- -This option allows reports to be generated between any two dates. The system -automatically defaults to dates between the 1st September last year and 31st -August this year. The data is written to a file in a selectable directory. The file name is **usage_detail_fromdate_todate.txt**. .. image:: pics/songusagereport.png @@ -27,11 +39,3 @@ The details extracted are: - Song Title - Song Copyright - Song CCLI. - -Removing data -------------- -This option allows the removal of stored data use is no longer required. -Select the date you wish to remove data up to and press``Ok``. This option is -not reversable. - -.. image:: pics/songusagedelete.png diff --git a/openlp/core/lib/mediamanageritem.py b/openlp/core/lib/mediamanageritem.py index 749543fd9..58b69bf83 100644 --- a/openlp/core/lib/mediamanageritem.py +++ b/openlp/core/lib/mediamanageritem.py @@ -420,7 +420,7 @@ class MediaManagerItem(QtGui.QWidget): raise NotImplementedError(u'MediaManagerItem.onDeleteClick needs to ' u'be defined by the plugin') - def generateSlideData(self, service_item, item=None): + def generateSlideData(self, service_item, item=None, xmlVersion=False): raise NotImplementedError(u'MediaManagerItem.generateSlideData needs ' u'to be defined by the plugin') @@ -482,7 +482,7 @@ class MediaManagerItem(QtGui.QWidget): # service items? if self.singleServiceItem or self.remoteTriggered: log.debug(self.plugin.name + u' Add requested') - service_item = self.buildServiceItem() + service_item = self.buildServiceItem(None, True) if service_item: service_item.from_plugin = False self.parent.serviceManager.addServiceItem(service_item, @@ -490,7 +490,7 @@ class MediaManagerItem(QtGui.QWidget): else: items = self.listView.selectedIndexes() for item in items: - service_item = self.buildServiceItem(item) + service_item = self.buildServiceItem(item, True) if service_item: service_item.from_plugin = False self.parent.serviceManager.addServiceItem(service_item) @@ -525,7 +525,7 @@ class MediaManagerItem(QtGui.QWidget): unicode(translate('OpenLP.MediaManagerItem', 'You must select a %s service item.')) % self.title) - def buildServiceItem(self, item=None): + def buildServiceItem(self, item=None, xmlVersion=False): """ Common method for generating a service item """ @@ -534,7 +534,7 @@ class MediaManagerItem(QtGui.QWidget): service_item.add_icon(self.serviceItemIconName) else: service_item.add_icon(self.parent.icon_path) - if self.generateSlideData(service_item, item): + if self.generateSlideData(service_item, item, xmlVersion): return service_item else: return None diff --git a/openlp/core/lib/serviceitem.py b/openlp/core/lib/serviceitem.py index 0cbc34de5..585a89276 100644 --- a/openlp/core/lib/serviceitem.py +++ b/openlp/core/lib/serviceitem.py @@ -101,6 +101,7 @@ class ServiceItem(object): self.search_string = u'' self.data_string = u'' self.edit_id = None + self.xml_version = None self._new_item() def _new_item(self): @@ -252,7 +253,8 @@ class ServiceItem(object): u'from_plugin': self.from_plugin, u'capabilities': self.capabilities, u'search': self.search_string, - u'data': self.data_string + u'data': self.data_string, + u'xmlVersion': self.xml_version } service_data = [] if self.service_item_type == ServiceItemType.Text: @@ -294,6 +296,8 @@ class ServiceItem(object): if u'search' in header: self.search_string = header[u'search'] self.data_string = header[u'data'] + if u'xmlVersion' in header: + self.xml_version = header[u'xmlVersion'] if self.service_item_type == ServiceItemType.Text: for slide in serviceitem[u'serviceitem'][u'data']: self._raw_frames.append(slide) diff --git a/openlp/plugins/bibles/lib/mediaitem.py b/openlp/plugins/bibles/lib/mediaitem.py index bb3c1b26d..25edb4926 100644 --- a/openlp/plugins/bibles/lib/mediaitem.py +++ b/openlp/plugins/bibles/lib/mediaitem.py @@ -651,7 +651,7 @@ class BibleMediaItem(MediaManagerItem): obj = obj.toPyObject() return unicode(obj) - def generateSlideData(self, service_item, item=None): + def generateSlideData(self, service_item, item=None, xmlVersion=False): """ Generates and formats the slides for the service item as well as the service item's title. diff --git a/openlp/plugins/custom/lib/mediaitem.py b/openlp/plugins/custom/lib/mediaitem.py index 8549e6449..83a43fba8 100644 --- a/openlp/plugins/custom/lib/mediaitem.py +++ b/openlp/plugins/custom/lib/mediaitem.py @@ -144,7 +144,7 @@ class CustomMediaItem(MediaManagerItem): for row in row_list: self.listView.takeItem(row) - def generateSlideData(self, service_item, item=None): + def generateSlideData(self, service_item, item=None, xmlVersion=False): raw_slides = [] raw_footer = [] slide = None diff --git a/openlp/plugins/images/lib/mediaitem.py b/openlp/plugins/images/lib/mediaitem.py index 7394758c3..4f1e9378e 100644 --- a/openlp/plugins/images/lib/mediaitem.py +++ b/openlp/plugins/images/lib/mediaitem.py @@ -154,7 +154,7 @@ class ImageMediaItem(MediaManagerItem): item_name.setData(QtCore.Qt.UserRole, QtCore.QVariant(file)) self.listView.addItem(item_name) - def generateSlideData(self, service_item, item=None): + def generateSlideData(self, service_item, item=None, xmlVersion=False): items = self.listView.selectedIndexes() if items: service_item.title = unicode( diff --git a/openlp/plugins/media/lib/mediaitem.py b/openlp/plugins/media/lib/mediaitem.py index 030f67153..11e00628e 100644 --- a/openlp/plugins/media/lib/mediaitem.py +++ b/openlp/plugins/media/lib/mediaitem.py @@ -116,7 +116,7 @@ class MediaMediaItem(MediaManagerItem): self.parent.liveController.display.video(filename, 0, True) self.resetButton.setVisible(True) - def generateSlideData(self, service_item, item=None): + def generateSlideData(self, service_item, item=None, xmlVersion=False): if item is None: item = self.listView.currentItem() if item is None: diff --git a/openlp/plugins/presentations/lib/mediaitem.py b/openlp/plugins/presentations/lib/mediaitem.py index e6f456e5c..8e3a2fc36 100644 --- a/openlp/plugins/presentations/lib/mediaitem.py +++ b/openlp/plugins/presentations/lib/mediaitem.py @@ -38,7 +38,7 @@ log = logging.getLogger(__name__) class PresentationListView(BaseListWithDnD): """ Class for the list of Presentations - + We have to explicitly create separate classes for each plugin in order for DnD to the Service manager to work correctly. """ @@ -67,7 +67,7 @@ class PresentationMediaItem(MediaManagerItem): self.message_listener = MessageListener(self) QtCore.QObject.connect(Receiver.get_receiver(), QtCore.SIGNAL(u'mediaitem_presentation_rebuild'), self.rebuild) - + def retranslateUi(self): """ The name of the plugin media displayed in UI @@ -159,7 +159,7 @@ class PresentationMediaItem(MediaManagerItem): if self.DisplayTypeComboBox.count() > 1: self.DisplayTypeComboBox.insertItem(0, self.Automatic) self.DisplayTypeComboBox.setCurrentIndex(0) - if QtCore.QSettings().value(self.settingsSection + u'/override app', + if QtCore.QSettings().value(self.settingsSection + u'/override app', QtCore.QVariant(QtCore.Qt.Unchecked)) == QtCore.Qt.Checked: self.PresentationWidget.show() else: @@ -238,7 +238,7 @@ class PresentationMediaItem(MediaManagerItem): SettingsManager.set_list(self.settingsSection, self.settingsSection, self.getFileList()) - def generateSlideData(self, service_item, item=None): + def generateSlideData(self, service_item, item=None, xmlVersion=False): """ Load the relevant information for displaying the presentation in the slidecontroller. In the case of powerpoints, an image @@ -277,7 +277,7 @@ class PresentationMediaItem(MediaManagerItem): def findControllerByType(self, filename): """ Determine the default application controller to use for the selected - file type. This is used if "Automatic" is set as the preferred + file type. This is used if "Automatic" is set as the preferred controller. Find the first (alphabetic) enabled controller which "supports" the extension. If none found, then look for a controller which "alsosupports" it instead. diff --git a/openlp/plugins/songs/lib/__init__.py b/openlp/plugins/songs/lib/__init__.py index 351d50071..bb9c6ebf9 100644 --- a/openlp/plugins/songs/lib/__init__.py +++ b/openlp/plugins/songs/lib/__init__.py @@ -92,7 +92,6 @@ class VerseType(object): unicode(VerseType.to_string(VerseType.Other)).lower(): return VerseType.Other - -from xml import LyricsXML, SongXMLBuilder, SongXMLParser +from xml import LyricsXML, SongXMLBuilder, SongXMLParser, OpenLyricsParser from songstab import SongsTab from mediaitem import SongMediaItem diff --git a/openlp/plugins/songs/lib/mediaitem.py b/openlp/plugins/songs/lib/mediaitem.py index cb2d6a6e0..546751a48 100644 --- a/openlp/plugins/songs/lib/mediaitem.py +++ b/openlp/plugins/songs/lib/mediaitem.py @@ -32,7 +32,7 @@ from openlp.core.lib import MediaManagerItem, BaseListWithDnD, Receiver, \ ItemCapabilities, translate, check_item_selected from openlp.plugins.songs.forms import EditSongForm, SongMaintenanceForm, \ SongImportForm -from openlp.plugins.songs.lib import SongXMLParser +from openlp.plugins.songs.lib import SongXMLParser, OpenLyricsParser from openlp.plugins.songs.lib.db import Author, Song log = logging.getLogger(__name__) @@ -54,7 +54,6 @@ class SongMediaItem(MediaManagerItem): MediaManagerItem.__init__(self, parent, self, icon) self.edit_song_form = EditSongForm(self, self.parent.manager) self.singleServiceItem = False - #self.edit_song_form = EditSongForm(self.parent.manager, self) self.song_maintenance_form = SongMaintenanceForm( self.parent.manager, self) # Holds information about whether the edit is remotly triggered and @@ -141,7 +140,7 @@ class SongMediaItem(MediaManagerItem): self.updateServiceOnEdit = QtCore.QSettings().value( self.settingsSection + u'/update service on edit', QtCore.QVariant(u'False')).toBool() - self.AddSongFromServide = QtCore.QSettings().value( + self.addSongFromService = QtCore.QSettings().value( self.settingsSection + u'/add song from service', QtCore.QVariant(u'True')).toBool() @@ -328,7 +327,7 @@ class SongMediaItem(MediaManagerItem): self.parent.manager.delete_object(Song, item_id) self.onSearchTextButtonClick() - def generateSlideData(self, service_item, item=None): + def generateSlideData(self, service_item, item=None, xmlVersion=False): log.debug(u'generateSlideData (%s:%s)' % (service_item, item)) raw_footer = [] author_list = u'' @@ -355,7 +354,7 @@ class SongMediaItem(MediaManagerItem): if song.lyrics.startswith(u'' + \ u'%s' % lyrics_output return song_output + +class OpenLyricsParser(object): + """ + This class represents the converter for Song to/from OpenLyrics XML. + """ + def songToXml(self, song): + """ + Convert the song to OpenLyrics Format + """ + songXML = SongXMLParser(song.lyrics) + verseList = songXML.get_verses() + song_xml = objectify.fromstring( + u'') + properties = etree.SubElement(song_xml, u'properties') + titles = etree.SubElement(properties, u'titles') + self.add_text_to_element(u'title', titles, song.title) + if song.alternate_title: + self.add_text_to_element(u'title', titles, song.alternate_title) + if song.theme_name: + themes = etree.SubElement(properties, u'themes') + self.add_text_to_element(u'theme', themes, song.theme_name) + self.add_text_to_element(u'copyright', properties, song.copyright) + self.add_text_to_element(u'verseOrder', properties, song.verse_order) + if song.ccli_number: + self.add_text_to_element(u'ccliNo', properties, song.ccli_number) + authors = etree.SubElement(properties, u'authors') + for author in song.authors: + self.add_text_to_element(u'author', authors, author.display_name) + lyrics = etree.SubElement(song_xml, u'lyrics') + for verse in verseList: + verseTag = u'%s%s' % ( + verse[0][u'type'][0].lower(), verse[0][u'label']) + element = self.add_text_to_element(u'verse', lyrics, None, verseTag) + element = self.add_text_to_element(u'lines', element) + for line in unicode(verse[1]).split(u'\n'): + self.add_text_to_element(u'line', element, line) + #print self.dump_xml(song_xml) + return u'' #self.extract_xml(song_xml) + + def add_text_to_element(self, tag, parent, text=None, label=None): + if label: + element = etree.Element(tag, name = unicode(label)) + else: + element = etree.Element(tag) + if text: + element.text = unicode(text) + parent.append(element) + return element + + def xmlToSong(self, xml): + """ + Create a Song from OpenLyrics format xml + """ + return 0 + + def dump_xml(self, xml): + """ + Debugging aid to dump XML so that we can see what we have. + """ + return etree.tostring(xml, encoding=u'UTF-8', + xml_declaration=True, pretty_print=True) + + def extract_xml(self, xml): + """ + Extract our newly created XML song. + """ + return etree.tostring(xml, encoding=u'UTF-8', + xml_declaration=True) From 326580559a198516328092fcc6bac54926f07fb1 Mon Sep 17 00:00:00 2001 From: Tim Bentley Date: Sat, 27 Nov 2010 16:22:23 +0000 Subject: [PATCH 37/63] Remove documenation for now --- documentation/manual/source/index.rst | 1 - documentation/manual/source/songusage.rst | 41 ----------------------- 2 files changed, 42 deletions(-) delete mode 100644 documentation/manual/source/songusage.rst diff --git a/documentation/manual/source/index.rst b/documentation/manual/source/index.rst index 5228256cf..ac29c4360 100644 --- a/documentation/manual/source/index.rst +++ b/documentation/manual/source/index.rst @@ -14,7 +14,6 @@ Contents: introduction glossary dualmonitors - songusage Indices and tables ================== diff --git a/documentation/manual/source/songusage.rst b/documentation/manual/source/songusage.rst deleted file mode 100644 index 6e439ce6c..000000000 --- a/documentation/manual/source/songusage.rst +++ /dev/null @@ -1,41 +0,0 @@ -========== -Song Usage -========== - -The Songusage plugin records the usage of Songs when they are used in a **Live** -situation. If the plugin is active all songs sent to the Live Service Manager -are recorded by this plugin. Once the plugin has been activated by the plugin -menu it can be turned on and off by use of the :guilabel:`F4` key or the -SongUsage menus. - -The image below shows the menu items and how to access them. - -.. image:: pics/songusage.png - -Delete Tracking Data -^^^^^^^^^^^^^^^^^^^^ -This option allows the removal of stored data use is no longer required. -Select the date you wish to remove data up to and press :guilabel:`Ok`. - -This option is not reversable. - -.. image:: pics/songusagedelete.png - -Extract Tracking Data -^^^^^^^^^^^^^^^^^^^^^ -This option allows reports to be generated between any two dates. - -The system automatically defaults to dates between the 1st September last year -and 31st August this year. The data is written to a file in the selected -directory. - -The file name is **usage_detail_fromdate_todate.txt**. - -.. image:: pics/songusagereport.png - -The details extracted are: - - Date item used - - Time item used - - Song Title - - Song Copyright - - Song CCLI. From 1cf49148620916f7c8c83ffba33cc3891fd89b85 Mon Sep 17 00:00:00 2001 From: Tim Bentley Date: Sat, 27 Nov 2010 20:51:54 +0000 Subject: [PATCH 38/63] fixes from last merge and more code for song management --- openlp/core/lib/mediamanageritem.py | 54 +++++++++++----------- openlp/core/lib/serviceitem.py | 6 +-- openlp/core/ui/maindisplay.py | 14 +++--- openlp/plugins/bibles/lib/mediaitem.py | 2 +- openlp/plugins/songs/forms/editsongform.py | 7 ++- openlp/plugins/songs/lib/mediaitem.py | 2 +- openlp/plugins/songs/lib/xml.py | 40 ++++++++++++++-- 7 files changed, 81 insertions(+), 44 deletions(-) diff --git a/openlp/core/lib/mediamanageritem.py b/openlp/core/lib/mediamanageritem.py index 58b69bf83..03ecba088 100644 --- a/openlp/core/lib/mediamanageritem.py +++ b/openlp/core/lib/mediamanageritem.py @@ -420,7 +420,7 @@ class MediaManagerItem(QtGui.QWidget): raise NotImplementedError(u'MediaManagerItem.onDeleteClick needs to ' u'be defined by the plugin') - def generateSlideData(self, service_item, item=None, xmlVersion=False): + def generateSlideData(self, serviceItem, item=None, xmlVersion=False): raise NotImplementedError(u'MediaManagerItem.generateSlideData needs ' u'to be defined by the plugin') @@ -446,10 +446,10 @@ class MediaManagerItem(QtGui.QWidget): 'You must select one or more items to preview.')) else: log.debug(self.plugin.name + u' Preview requested') - service_item = self.buildServiceItem() - if service_item: - service_item.from_plugin = True - self.parent.previewController.addServiceItem(service_item) + serviceItem = self.buildServiceItem() + if serviceItem: + serviceItem.from_plugin = True + self.parent.previewController.addServiceItem(serviceItem) def onLiveClick(self): """ @@ -463,10 +463,10 @@ class MediaManagerItem(QtGui.QWidget): 'You must select one or more items to send live.')) else: log.debug(self.plugin.name + u' Live requested') - service_item = self.buildServiceItem() - if service_item: - service_item.from_plugin = True - self.parent.liveController.addServiceItem(service_item) + serviceItem = self.buildServiceItem() + if serviceItem: + serviceItem.from_plugin = True + self.parent.liveController.addServiceItem(serviceItem) def onAddClick(self): """ @@ -482,18 +482,18 @@ class MediaManagerItem(QtGui.QWidget): # service items? if self.singleServiceItem or self.remoteTriggered: log.debug(self.plugin.name + u' Add requested') - service_item = self.buildServiceItem(None, True) - if service_item: - service_item.from_plugin = False - self.parent.serviceManager.addServiceItem(service_item, + serviceItem = self.buildServiceItem(None, True) + if serviceItem: + serviceItem.from_plugin = False + self.parent.serviceManager.addServiceItem(serviceItem, replace=self.remoteTriggered) else: items = self.listView.selectedIndexes() for item in items: - service_item = self.buildServiceItem(item, True) - if service_item: - service_item.from_plugin = False - self.parent.serviceManager.addServiceItem(service_item) + serviceItem = self.buildServiceItem(item, True) + if serviceItem: + serviceItem.from_plugin = False + self.parent.serviceManager.addServiceItem(serviceItem) def onAddEditClick(self): """ @@ -506,16 +506,16 @@ class MediaManagerItem(QtGui.QWidget): 'You must select one or more items')) else: log.debug(self.plugin.name + u' Add requested') - service_item = self.parent.serviceManager.getServiceItem() - if not service_item: + serviceItem = self.parent.serviceManager.getServiceItem() + if not serviceItem: QtGui.QMessageBox.information(self, translate('OpenLP.MediaManagerItem', 'No Service Item Selected'), translate('OpenLP.MediaManagerItem', 'You must select an existing service item to add to.')) - elif self.title.lower() == service_item.name.lower(): - self.generateSlideData(service_item) - self.parent.serviceManager.addServiceItem(service_item, + elif self.title.lower() == serviceItem.name.lower(): + self.generateSlideData(serviceItem) + self.parent.serviceManager.addServiceItem(serviceItem, replace=True) else: # Turn off the remote edit update message indicator @@ -529,13 +529,13 @@ class MediaManagerItem(QtGui.QWidget): """ Common method for generating a service item """ - service_item = ServiceItem(self.parent) + serviceItem = ServiceItem(self.parent) if self.serviceItemIconName: - service_item.add_icon(self.serviceItemIconName) + serviceItem.add_icon(self.serviceItemIconName) else: - service_item.add_icon(self.parent.icon_path) - if self.generateSlideData(service_item, item, xmlVersion): - return service_item + serviceItem.add_icon(self.parent.icon_path) + if self.generateSlideData(serviceItem, item, xmlVersion): + return serviceItem else: return None diff --git a/openlp/core/lib/serviceitem.py b/openlp/core/lib/serviceitem.py index 585a89276..b9394030a 100644 --- a/openlp/core/lib/serviceitem.py +++ b/openlp/core/lib/serviceitem.py @@ -254,7 +254,7 @@ class ServiceItem(object): u'capabilities': self.capabilities, u'search': self.search_string, u'data': self.data_string, - u'xmlVersion': self.xml_version + u'xml_version': self.xml_version } service_data = [] if self.service_item_type == ServiceItemType.Text: @@ -296,8 +296,8 @@ class ServiceItem(object): if u'search' in header: self.search_string = header[u'search'] self.data_string = header[u'data'] - if u'xmlVersion' in header: - self.xml_version = header[u'xmlVersion'] + if u'xml_version' in header: + self.xml_version = header[u'xml_version'] if self.service_item_type == ServiceItemType.Text: for slide in serviceitem[u'serviceitem'][u'data']: self._raw_frames.append(slide) diff --git a/openlp/core/ui/maindisplay.py b/openlp/core/ui/maindisplay.py index 9d6c04075..90f920a50 100644 --- a/openlp/core/ui/maindisplay.py +++ b/openlp/core/ui/maindisplay.py @@ -100,7 +100,7 @@ class MainDisplay(DisplayWidget): self.screens = screens self.isLive = live self.alertTab = None - self.hide_mode = None + self.hideMode = None self.setWindowTitle(u'OpenLP Display') self.setStyleSheet(u'border: 0px; margin: 0px; padding: 0px;') self.setWindowFlags(QtCore.Qt.FramelessWindowHint | @@ -381,8 +381,8 @@ class MainDisplay(DisplayWidget): if self.isLive: self.setVisible(True) # if was hidden keep it hidden - if self.hide_mode and self.isLive: - self.hideDisplay(self.hide_mode) + if self.hideMode and self.isLive: + self.hideDisplay(self.hideMode) preview = QtGui.QImage(self.screen[u'size'].width(), self.screen[u'size'].height(), QtGui.QImage.Format_ARGB32_Premultiplied) @@ -412,8 +412,8 @@ class MainDisplay(DisplayWidget): if serviceItem.foot_text and serviceItem.foot_text: self.footer(serviceItem.foot_text) # if was hidden keep it hidden - if self.hide_mode and self.isLive: - self.hideDisplay(self.hide_mode) + if self.hideMode and self.isLive: + self.hideDisplay(self.hideMode) def footer(self, text): """ @@ -444,7 +444,7 @@ class MainDisplay(DisplayWidget): self.setVisible(True) if self.phononActive: self.webView.setVisible(True) - self.hide_mode = mode + self.hideMode = mode def showDisplay(self): """ @@ -459,7 +459,7 @@ class MainDisplay(DisplayWidget): if self.phononActive: self.webView.setVisible(False) self.videoPlay() - self.hide_mode = None + self.hideMode = None # Trigger actions when display is active again Receiver.send_message(u'maindisplay_active') diff --git a/openlp/plugins/bibles/lib/mediaitem.py b/openlp/plugins/bibles/lib/mediaitem.py index 25edb4926..0e1850485 100644 --- a/openlp/plugins/bibles/lib/mediaitem.py +++ b/openlp/plugins/bibles/lib/mediaitem.py @@ -545,7 +545,7 @@ class BibleMediaItem(MediaManagerItem): self.dual_search_results = self.parent.manager.get_verses( dual_bible, text) else: - # We are doing a ' Text Search'. + # We are doing a 'Text Search'. bibles = self.parent.manager.get_bibles() self.search_results = self.parent.manager.verse_search(bible, text) if dual_bible and self.search_results: diff --git a/openlp/plugins/songs/forms/editsongform.py b/openlp/plugins/songs/forms/editsongform.py index 241c6fd95..8c92583d5 100644 --- a/openlp/plugins/songs/forms/editsongform.py +++ b/openlp/plugins/songs/forms/editsongform.py @@ -630,7 +630,7 @@ class EditSongForm(QtGui.QDialog, Ui_EditSongDialog): Get all the data from the widgets on the form, and then save it to the database. - ``preview`` + ``preview`` Should be True if song is also previewed. """ self.song.title = unicode(self.TitleEditItem.text()) @@ -648,6 +648,11 @@ class EditSongForm(QtGui.QDialog, Ui_EditSongDialog): Book.name == book_name) else: self.song.book = None + theme_name = unicode(self.ThemeSelectionComboItem.currentText()) + if theme_name: + self.song.theme_name = theme_name + else: + self.song.theme_name = None if self._validate_song(): self.processLyrics() self.processTitle() diff --git a/openlp/plugins/songs/lib/mediaitem.py b/openlp/plugins/songs/lib/mediaitem.py index 546751a48..3441aed86 100644 --- a/openlp/plugins/songs/lib/mediaitem.py +++ b/openlp/plugins/songs/lib/mediaitem.py @@ -396,7 +396,7 @@ class SongMediaItem(MediaManagerItem): ] service_item.data_string = {u'title':song.search_title, u'authors':author_list} - service_item.xml_version = OpenLyricsParser().songToXml(song) + service_item.xml_version = OpenLyricsParser().song_to_xml(song) return True def serviceLoad(self, item): diff --git a/openlp/plugins/songs/lib/xml.py b/openlp/plugins/songs/lib/xml.py index 782a86bfa..bdd8478d4 100644 --- a/openlp/plugins/songs/lib/xml.py +++ b/openlp/plugins/songs/lib/xml.py @@ -41,6 +41,7 @@ The basic XML is of the format:: import logging from lxml import etree, objectify +from openlp.plugins.songs.lib.db import Author, Song log = logging.getLogger(__name__) @@ -97,6 +98,7 @@ class SongXMLBuilder(object): return etree.tostring(self.song_xml, encoding=u'UTF-8', xml_declaration=True) + class SongXMLParser(object): """ A class to read in and parse a song's XML. @@ -239,11 +241,12 @@ class LyricsXML(object): u'%s' % lyrics_output return song_output + class OpenLyricsParser(object): """ This class represents the converter for Song to/from OpenLyrics XML. """ - def songToXml(self, song): + def song_to_xml(self, song): """ Convert the song to OpenLyrics Format """ @@ -274,8 +277,8 @@ class OpenLyricsParser(object): element = self.add_text_to_element(u'lines', element) for line in unicode(verse[1]).split(u'\n'): self.add_text_to_element(u'line', element, line) - #print self.dump_xml(song_xml) - return u'' #self.extract_xml(song_xml) + self.xml_to_song(self.extract_xml(song_xml)) + return u'' #self.xml_to_song(self.extract_xml(song_xml)) def add_text_to_element(self, tag, parent, text=None, label=None): if label: @@ -287,11 +290,40 @@ class OpenLyricsParser(object): parent.append(element) return element - def xmlToSong(self, xml): + def xml_to_song(self, xml): """ Create a Song from OpenLyrics format xml """ return 0 + song = Song() + if xml[:5] == u' Date: Sat, 27 Nov 2010 22:12:52 +0100 Subject: [PATCH 39/63] fixed