openlp-core team mailing list archive
-
openlp-core team
-
Mailing list archive
-
Message #27980
[Merge] lp:~sam92/openlp/fixes22 into lp:openlp
Samuel Mehrbrodt has proposed merging lp:~sam92/openlp/fixes22 into lp:openlp.
Requested reviews:
Tim Bentley (trb143)
For more details, see:
https://code.launchpad.net/~sam92/openlp/fixes22/+merge/280850
Small fixes:
* Multiple '%s' in one string need to be named for translations (otherwise the order might get confused)
* OpenLP 2.0 -> OpenLP 2
* Change buttons of "Do you really want to close" dialog: Instead of ("No", "Yes") use ("Cancel", "Close OpenLP")
* Improve exception dialog (mention that description should be english and relevant files should be attached)
* Do not translate the bug report labels
* Add import test for Words of Worship
lp:~sam92/openlp/fixes22 (revision 2557)
[SUCCESS] https//ci.openlp.io/job/Branch-01-Pull/1050/
[SUCCESS] https//ci.openlp.io/job/Branch-02-Functional-Tests/973/
[SUCCESS] https//ci.openlp.io/job/Branch-03-Interface-Tests/915/
[SUCCESS] https//ci.openlp.io/job/Branch-04a-Windows_Functional_Tests/802/
[FAILURE] https//ci.openlp.io/job/Branch-04b-Windows_Interface_Tests/400/
--
Your team OpenLP Core is subscribed to branch lp:openlp.
=== modified file 'openlp/core/ui/exceptiondialog.py'
--- openlp/core/ui/exceptiondialog.py 2015-01-18 13:39:21 +0000
+++ openlp/core/ui/exceptiondialog.py 2015-12-17 13:56:23 +0000
@@ -90,14 +90,15 @@
"""
exception_dialog.setWindowTitle(translate('OpenLP.ExceptionDialog', 'Error Occurred'))
self.description_explanation.setText(
- translate('OpenLP.ExceptionDialog', 'Please enter a description of what you were doing to cause this error '
+ translate('OpenLP.ExceptionDialog', 'Please enter a description of what you were doing to cause this error.'
+ ' If possible, write in English.'
'\n(Minimum 20 characters)'))
self.message_label.setText(
translate('OpenLP.ExceptionDialog', 'Oops! OpenLP hit a problem, and couldn\'t recover. The text in the '
'box below contains information that might be helpful to the OpenLP '
'developers, so please e-mail it to bugs@xxxxxxxxxx, along with a '
'detailed description of what you were doing when the problem '
- 'occurred.'))
+ 'occurred. Also attach any files that triggered the problem.'))
self.send_report_button.setText(translate('OpenLP.ExceptionDialog', 'Send E-Mail'))
self.save_report_button.setText(translate('OpenLP.ExceptionDialog', 'Save to File'))
self.attach_tile_button.setText(translate('OpenLP.ExceptionDialog', 'Attach File'))
=== modified file 'openlp/core/ui/exceptionform.py'
--- openlp/core/ui/exceptionform.py 2015-01-18 13:39:21 +0000
+++ openlp/core/ui/exceptionform.py 2015-12-17 13:56:23 +0000
@@ -97,6 +97,12 @@
super(ExceptionForm, self).__init__()
self.setupUi(self)
self.settings_section = 'crashreport'
+ self.report_text = '**OpenLP Bug Report**\n' \
+ 'Version: %s\n\n' \
+ '--- Details of the Exception. ---\n\n%s\n\n ' \
+ '--- Exception Traceback ---\n%s\n' \
+ '--- System information ---\n%s\n' \
+ '--- Library Versions ---\n%s\n'
def exec_(self):
"""
@@ -143,13 +149,6 @@
"""
Saving exception log and system information to a file.
"""
- report_text = translate('OpenLP.ExceptionForm',
- '**OpenLP Bug Report**\n'
- 'Version: %s\n\n'
- '--- Details of the Exception. ---\n\n%s\n\n '
- '--- Exception Traceback ---\n%s\n'
- '--- System information ---\n%s\n'
- '--- Library Versions ---\n%s\n')
filename = QtGui.QFileDialog.getSaveFileName(
self,
translate('OpenLP.ExceptionForm', 'Save Crash Report'),
@@ -158,7 +157,7 @@
if filename:
filename = str(filename).replace('/', os.path.sep)
Settings().setValue(self.settings_section + '/last directory', os.path.dirname(filename))
- report_text = report_text % self._create_report()
+ report_text = self.report_text % self._create_report()
try:
report_file = open(filename, 'w')
try:
@@ -178,14 +177,6 @@
"""
Opening systems default email client and inserting exception log and system information.
"""
- body = translate('OpenLP.ExceptionForm',
- '*OpenLP Bug Report*\n'
- 'Version: %s\n\n'
- '--- Details of the Exception. ---\n\n%s\n\n '
- '--- Exception Traceback ---\n%s\n'
- '--- System information ---\n%s\n'
- '--- Library Versions ---\n%s\n',
- 'Please add the information that bug reports are favoured written in English.')
content = self._create_report()
source = ''
exception = ''
@@ -197,7 +188,7 @@
subject = 'Bug report: %s in %s' % (exception, source)
mail_to_url = QtCore.QUrl('mailto:bugs@xxxxxxxxxx')
mail_to_url.addQueryItem('subject', subject)
- mail_to_url.addQueryItem('body', body % content)
+ mail_to_url.addQueryItem('body', self.report_text % content)
if self.file_attachment:
mail_to_url.addQueryItem('attach', self.file_attachment)
QtGui.QDesktopServices.openUrl(mail_to_url)
=== modified file 'openlp/core/ui/formattingtagcontroller.py'
--- openlp/core/ui/formattingtagcontroller.py 2015-02-27 21:14:08 +0000
+++ openlp/core/ui/formattingtagcontroller.py 2015-12-17 13:56:23 +0000
@@ -166,5 +166,6 @@
return None, end
if end and end != end_html:
return translate('OpenLP.FormattingTagForm',
- 'End tag %s does not match end tag for start tag %s') % (end, start_html), None
+ 'End tag %(end)s does not match end tag for start tag %(start)s') % \
+ {'end': end, 'start': start_html}, None
return None, None
=== modified file 'openlp/core/ui/mainwindow.py'
--- openlp/core/ui/mainwindow.py 2015-10-16 16:30:13 +0000
+++ openlp/core/ui/mainwindow.py 2015-12-17 13:56:23 +0000
@@ -1089,13 +1089,13 @@
event.ignore()
else:
if Settings().value('advanced/enable exit confirmation'):
- ret = QtGui.QMessageBox.question(self, translate('OpenLP.MainWindow', 'Close OpenLP'),
- translate('OpenLP.MainWindow', 'Are you sure you want to close '
- 'OpenLP?'),
- QtGui.QMessageBox.StandardButtons(QtGui.QMessageBox.Yes |
- QtGui.QMessageBox.No),
- QtGui.QMessageBox.Yes)
- if ret == QtGui.QMessageBox.Yes:
+ msg_box = QtGui.QMessageBox(QtGui.QMessageBox.Question, translate('OpenLP.MainWindow', 'Exit OpenLP'),
+ translate('OpenLP.MainWindow', 'Are you sure you want to exit OpenLP?'),
+ QtGui.QMessageBox.StandardButtons(QtGui.QMessageBox.Close |
+ QtGui.QMessageBox.Cancel), self)
+ msg_box.setButtonText(QtGui.QMessageBox.Close, translate('OpenLP.MainWindow', '&Exit OpenLP'))
+ msg_box.setDefaultButton(QtGui.QMessageBox.Close)
+ if msg_box.exec() == QtGui.QMessageBox.Close:
self.clean_up()
event.accept()
else:
=== modified file 'openlp/core/ui/wizard.py'
--- openlp/core/ui/wizard.py 2015-01-18 13:39:21 +0000
+++ openlp/core/ui/wizard.py 2015-12-17 13:56:23 +0000
@@ -277,7 +277,7 @@
:param filters: The file extension filters. It should contain the file description
as well as the file extension. For example::
- 'OpenLP 2.0 Databases (*.sqlite)'
+ 'OpenLP 2 Databases (*.sqlite)'
"""
if filters:
filters += ';;'
=== modified file 'openlp/plugins/bibles/forms/bibleupgradeform.py'
--- openlp/plugins/bibles/forms/bibleupgradeform.py 2015-01-18 13:39:21 +0000
+++ openlp/plugins/bibles/forms/bibleupgradeform.py 2015-12-17 13:56:23 +0000
@@ -547,9 +547,9 @@
if self.includeWebBible:
self.progress_label.setText(
translate('BiblesPlugin.UpgradeWizardForm',
- 'Upgrading Bible(s): %s successful%s\nPlease note that verses from Web Bibles will be '
- 'downloaded on demand and so an Internet connection is required.') %
- (successful_import, failed_import_text))
+ 'Upgrading Bible(s): %(success)d successful%(failed_text)s\nPlease note that verses '
+ 'from Web Bibles will be downloaded on demand and so an Internet connection is required.')
+ % {'success': successful_import, 'failed_text': failed_import_text})
else:
self.progress_label.setText(
translate('BiblesPlugin.UpgradeWizardForm', 'Upgrading Bible(s): %s successful%s') % (
=== modified file 'openlp/plugins/songs/lib/importer.py'
--- openlp/plugins/songs/lib/importer.py 2015-01-18 13:39:21 +0000
+++ openlp/plugins/songs/lib/importer.py 2015-12-17 13:56:23 +0000
@@ -187,14 +187,14 @@
'name': 'OpenLyrics',
'prefix': 'openLyrics',
'filter': '%s (*.xml)' % translate('SongsPlugin.ImportWizardForm', 'OpenLyrics Files'),
- 'comboBoxText': translate('SongsPlugin.ImportWizardForm', 'OpenLyrics or OpenLP 2.0 Exported Song')
+ 'comboBoxText': translate('SongsPlugin.ImportWizardForm', 'OpenLyrics or OpenLP 2 Exported Song')
},
OpenLP2: {
'class': OpenLPSongImport,
'name': UiStrings().OLPV2,
'prefix': 'openLP2',
'selectMode': SongFormatSelect.SingleFile,
- 'filter': '%s (*.sqlite)' % (translate('SongsPlugin.ImportWizardForm', 'OpenLP 2.0 Databases'))
+ 'filter': '%s (*.sqlite)' % (translate('SongsPlugin.ImportWizardForm', 'OpenLP 2 Databases'))
},
Generic: {
'name': translate('SongsPlugin.ImportWizardForm', 'Generic Document/Presentation'),
=== modified file 'openlp/plugins/songs/lib/importers/openlp.py'
--- openlp/plugins/songs/lib/importers/openlp.py 2015-01-18 13:39:21 +0000
+++ openlp/plugins/songs/lib/importers/openlp.py 2015-12-17 13:56:23 +0000
@@ -94,7 +94,7 @@
# Check the file type
if not self.import_source.endswith('.sqlite'):
self.log_error(self.import_source, translate('SongsPlugin.OpenLPSongImport',
- 'Not a valid OpenLP 2.0 song database.'))
+ 'Not a valid OpenLP 2 song database.'))
return
self.import_source = 'sqlite:///%s' % self.import_source
# Load the db file
=== modified file 'openlp/plugins/songs/lib/importers/wordsofworship.py'
--- openlp/plugins/songs/lib/importers/wordsofworship.py 2015-01-18 13:39:21 +0000
+++ openlp/plugins/songs/lib/importers/wordsofworship.py 2015-12-17 13:56:23 +0000
@@ -108,8 +108,8 @@
if song_data.read(19).decode() != 'WoW File\nSong Words':
self.log_error(source,
str(translate('SongsPlugin.WordsofWorshipSongImport',
- 'Invalid Words of Worship song file. Missing "WoW File\\nSong '
- 'Words" header.')))
+ 'Invalid Words of Worship song file. Missing "%s" header.'
+ % 'WoW File\\nSong Words')))
continue
# Seek to byte which stores number of blocks in the song
song_data.seek(56)
@@ -118,8 +118,8 @@
if song_data.read(16).decode() != 'CSongDoc::CBlock':
self.log_error(source,
str(translate('SongsPlugin.WordsofWorshipSongImport',
- 'Invalid Words of Worship song file. Missing "CSongDoc::CBlock" '
- 'string.')))
+ 'Invalid Words of Worship song file. Missing "%s" '
+ 'string.' % 'CSongDoc::CBlock')))
continue
# Seek to the beginning of the first block
song_data.seek(82)
=== modified file 'tests/functional/openlp_plugins/songs/test_wordsofworshipimport.py'
--- tests/functional/openlp_plugins/songs/test_wordsofworshipimport.py 2015-01-18 13:39:21 +0000
+++ tests/functional/openlp_plugins/songs/test_wordsofworshipimport.py 2015-12-17 13:56:23 +0000
@@ -47,3 +47,5 @@
self.load_external_result_data(os.path.join(TEST_PATH, 'Amazing Grace (6 Verses).json')))
self.file_import([os.path.join(TEST_PATH, 'When morning gilds the skies.wsg')],
self.load_external_result_data(os.path.join(TEST_PATH, 'When morning gilds the skies.json')))
+ self.file_import([os.path.join(TEST_PATH, 'Holy Holy Holy Lord God Almighty.wow-song')],
+ self.load_external_result_data(os.path.join(TEST_PATH, 'Holy Holy Holy Lord God Almighty.json')))
=== added file 'tests/resources/wordsofworshipsongs/Holy Holy Holy Lord God Almighty.json'
--- tests/resources/wordsofworshipsongs/Holy Holy Holy Lord God Almighty.json 1970-01-01 00:00:00 +0000
+++ tests/resources/wordsofworshipsongs/Holy Holy Holy Lord God Almighty.json 2015-12-17 13:56:23 +0000
@@ -0,0 +1,25 @@
+{
+ "authors": [
+ "Words: Reginald Heber (1783-1826). Music: John B. Dykes (1823-1876)"
+ ],
+ "title": "Holy Holy Holy Lord God Almighty",
+ "verse_order_list": [],
+ "verses": [
+ [
+ "Holy, holy, holy, Lord God Almighty\nEarly in the morning\nOur song shall rise to Thee:\nHoly, holy, holy, merciful and mighty,\nGod in three Persons, blessed Trinity!",
+ "V"
+ ],
+ [
+ "Holy, holy, holy! all the saints adore Thee,\nCasting down their golden crowns\nAround the glassy sea;\nCherubim and seraphim falling down before Thee,\nWho were and are and evermore shall be.",
+ "V"
+ ],
+ [
+ "Holy, holy, holy! though the darkness hide Thee,\nThough the eye of sinful man\nThy glory may not see;\nOnly Thou art holy, there is none beside Thee,\nPerfect in power, in love and purity.",
+ "V"
+ ],
+ [
+ "Holy, holy, holy, Lord God Almighty!\nAll Thy works shall praise Thy name\nIn earth, and sky, and sea;\nHoly, holy, holy, merciful and mighty\nGod in three Persons, blessed Trinity!",
+ "V"
+ ]
+ ]
+}
=== added file 'tests/resources/wordsofworshipsongs/Holy Holy Holy Lord God Almighty.wow-song'
Binary files tests/resources/wordsofworshipsongs/Holy Holy Holy Lord God Almighty.wow-song 1970-01-01 00:00:00 +0000 and tests/resources/wordsofworshipsongs/Holy Holy Holy Lord God Almighty.wow-song 2015-12-17 13:56:23 +0000 differ
Follow ups