openlp-core team mailing list archive
-
openlp-core team
-
Mailing list archive
-
Message #22751
[Merge] lp:~trb143/openlp/pep8 into lp:openlp
Tim Bentley has proposed merging lp:~trb143/openlp/pep8 into lp:openlp.
Requested reviews:
OpenLP Core (openlp-core)
For more details, see:
https://code.launchpad.net/~trb143/openlp/pep8/+merge/212253
Last lot of cleanups - promise.
Used pep8 command line to generate the errors with a config file of
[pep8]
exclude=resources.py,vlc.py
max-line-length = 120
Deleted old tests as they are not valid and did nothing.
Fixed up some missed variables.
completed pep8 compliance on the openlp root.
--
https://code.launchpad.net/~trb143/openlp/pep8/+merge/212253
Your team OpenLP Core is requested to review the proposed merge of lp:~trb143/openlp/pep8 into lp:openlp.
=== modified file 'openlp/core/common/applocation.py'
--- openlp/core/common/applocation.py 2014-03-17 19:05:55 +0000
+++ openlp/core/common/applocation.py 2014-03-21 21:59:15 +0000
@@ -76,7 +76,7 @@
elif dir_type == AppLocation.PluginsDir:
app_path = os.path.abspath(os.path.split(sys.argv[0])[0])
return get_frozen_path(os.path.join(app_path, 'plugins'),
- os.path.join(os.path.split(openlp.__file__)[0], 'plugins'))
+ os.path.join(os.path.split(openlp.__file__)[0], 'plugins'))
elif dir_type == AppLocation.VersionDir:
return get_frozen_path(os.path.abspath(os.path.split(sys.argv[0])[0]), os.path.split(openlp.__file__)[0])
elif dir_type == AppLocation.LanguageDir:
=== modified file 'openlp/core/common/openlpmixin.py'
--- openlp/core/common/openlpmixin.py 2014-01-11 17:52:01 +0000
+++ openlp/core/common/openlpmixin.py 2014-03-21 21:59:15 +0000
@@ -91,4 +91,4 @@
Common log exception handler which prints the calling path
"""
trace_error_handler(self.logger)
- self.logger.exception(message)
\ No newline at end of file
+ self.logger.exception(message)
=== modified file 'openlp/core/common/registryproperties.py'
--- openlp/core/common/registryproperties.py 2014-03-16 21:25:23 +0000
+++ openlp/core/common/registryproperties.py 2014-03-21 21:59:15 +0000
@@ -149,4 +149,4 @@
"""
if not hasattr(self, '_alerts_manager') or not self._alerts_manager:
self._alerts_manager = Registry().get('alerts_manager')
- return self._alerts_manager
\ No newline at end of file
+ return self._alerts_manager
=== modified file 'openlp/core/common/uistrings.py'
--- openlp/core/common/uistrings.py 2013-12-24 08:56:50 +0000
+++ openlp/core/common/uistrings.py 2014-03-21 21:59:15 +0000
@@ -73,8 +73,9 @@
self.Default = translate('OpenLP.Ui', 'Default')
self.DefaultColor = translate('OpenLP.Ui', 'Default Color:')
self.DefaultServiceName = translate('OpenLP.Ui', 'Service %Y-%m-%d %H-%M',
- 'This may not contain any of the following characters: /\\?*|<>\[\]":+\n'
- 'See http://docs.python.org/library/datetime.html#strftime-strptime-behavior for more information.')
+ 'This may not contain any of the following characters: /\\?*|<>\[\]":+\n'
+ 'See http://docs.python.org/library/datetime'
+ '.html#strftime-strptime-behavior for more information.')
self.Delete = translate('OpenLP.Ui', '&Delete')
self.DisplayStyle = translate('OpenLP.Ui', 'Display style:')
self.Duplicate = translate('OpenLP.Ui', 'Duplicate Error')
@@ -132,7 +133,7 @@
self.Service = translate('OpenLP.Ui', 'Service')
self.Split = translate('OpenLP.Ui', 'Optional &Split')
self.SplitToolTip = translate('OpenLP.Ui',
- 'Split a slide into two only if it does not fit on the screen as one slide.')
+ 'Split a slide into two only if it does not fit on the screen as one slide.')
self.StartTimeCode = translate('OpenLP.Ui', 'Start %s')
self.StopPlaySlidesInLoop = translate('OpenLP.Ui', 'Stop Play Slides in Loop')
self.StopPlaySlidesToEnd = translate('OpenLP.Ui', 'Stop Play Slides to End')
=== modified file 'openlp/core/lib/filedialog.py'
--- openlp/core/lib/filedialog.py 2013-12-24 08:56:50 +0000
+++ openlp/core/lib/filedialog.py 2014-03-21 21:59:15 +0000
@@ -63,4 +63,4 @@
UiStrings().FileNotFoundMessage % file)
continue
file_list.append(file)
- return file_list
\ No newline at end of file
+ return file_list
=== modified file 'openlp/core/lib/htmlbuilder.py'
--- openlp/core/lib/htmlbuilder.py 2014-03-17 19:05:55 +0000
+++ openlp/core/lib/htmlbuilder.py 2014-03-21 21:59:15 +0000
@@ -117,7 +117,9 @@
display: table-cell;
word-wrap: break-word;
-webkit-transition: opacity 0.4s ease;
- white-space:pre-wrap; word-wrap: break-word; text-align: left; vertical-align: top; font-family: Nimbus Sans L; font-size: 40pt; color: #FFFFFF; line-height: 100%; margin: 0;padding: 0; padding-bottom: 0; padding-left: 4px; width: 1580px; height: 810px;
+ white-space:pre-wrap; word-wrap: break-word; text-align: left; vertical-align: top; font-family: Nimbus
+ Sans L; font-size: 40pt; color: #FFFFFF; line-height: 100%; margin: 0;padding: 0; padding-bottom: 0;
+ padding-left: 4px; width: 1580px; height: 810px;
}
.lyricsmain {
-webkit-text-stroke: 0.125em #000000; -webkit-text-fill-color: #FFFFFF; text-shadow: #000000 5px 5px;
@@ -720,12 +722,12 @@
else:
padding_bottom = '0'
lyrics = '%s word-wrap: break-word; ' \
- 'text-align: %s; vertical-align: %s; font-family: %s; ' \
- 'font-size: %spt; color: %s; line-height: %d%%; margin: 0;' \
- 'padding: 0; padding-bottom: %s; padding-left: %spx; width: %spx; height: %spx; ' % \
+ 'text-align: %s; vertical-align: %s; font-family: %s; ' \
+ 'font-size: %spt; color: %s; line-height: %d%%; margin: 0;' \
+ 'padding: 0; padding-bottom: %s; padding-left: %spx; width: %spx; height: %spx; ' % \
(justify, align, valign, theme_data.font_main_name, theme_data.font_main_size,
- theme_data.font_main_color, 100 + int(theme_data.font_main_line_adjustment), padding_bottom,
- left_margin, width, height)
+ theme_data.font_main_color, 100 + int(theme_data.font_main_line_adjustment), padding_bottom,
+ left_margin, width, height)
if theme_data.font_main_italics:
lyrics += 'font-style:italic; '
if theme_data.font_main_bold:
=== modified file 'openlp/core/lib/imagemanager.py'
--- openlp/core/lib/imagemanager.py 2014-03-17 19:05:55 +0000
+++ openlp/core/lib/imagemanager.py 2014-03-21 21:59:15 +0000
@@ -113,8 +113,8 @@
:param path: The image's file path. This should be an existing file path.
:param source: The source describes the image's origin. Possible values are described in the
:class:`~openlp.core.lib.ImageSource` class.
- :param background: A ``QtGui.QColor`` object specifying the colour to be used to fill the gabs if the image's ratio does not
- match with the display ratio.
+ :param background: A ``QtGui.QColor`` object specifying the colour to be used to fill the gabs if the image's
+ ratio does not match with the display ratio.
"""
self.path = path
=== modified file 'openlp/core/lib/plugin.py'
--- openlp/core/lib/plugin.py 2014-03-18 20:36:02 +0000
+++ openlp/core/lib/plugin.py 2014-03-21 21:59:15 +0000
@@ -393,4 +393,4 @@
"""
The plugin's needs to handle a new song creation
"""
- pass
\ No newline at end of file
+ pass
=== modified file 'openlp/core/lib/searchedit.py'
--- openlp/core/lib/searchedit.py 2014-03-17 19:05:55 +0000
+++ openlp/core/lib/searchedit.py 2014-03-21 21:59:15 +0000
@@ -120,9 +120,8 @@
A list of tuples to be used in the search type menu. The first item in the list will be preselected as the
default.
- :param items: The list of tuples to use. The tuples should contain an integer identifier, an icon (QIcon instance or
-
- string) and a title for the item in the menu. In short, they should look like this::
+ :param items: The list of tuples to use. The tuples should contain an integer identifier, an icon (QIcon
+ instance or string) and a title for the item in the menu. In short, they should look like this::
(<identifier>, <icon>, <title>, <place holder text>)
=== modified file 'openlp/core/ui/aboutdialog.py'
--- openlp/core/ui/aboutdialog.py 2013-12-24 08:56:50 +0000
+++ openlp/core/ui/aboutdialog.py 2014-03-21 21:59:15 +0000
@@ -92,578 +92,574 @@
Dynamically translate the UI.
"""
about_dialog.setWindowTitle('%s OpenLP' % UiStrings().About)
- self.about_text_edit.setPlainText(translate('OpenLP.AboutForm',
- 'OpenLP <version><revision> - Open Source Lyrics '
- 'Projection\n'
- '\n'
- 'OpenLP is free church presentation software, or lyrics '
- 'projection software, used to display slides of songs, Bible '
- 'verses, videos, images, and even presentations (if '
- 'Impress, PowerPoint or PowerPoint Viewer is installed) '
- 'for church worship using a computer and a data projector.\n'
- '\n'
- 'Find out more about OpenLP: http://openlp.org/\n'
- '\n'
- 'OpenLP is written and maintained by volunteers. If you would '
- 'like to see more free Christian software being written, please '
- 'consider volunteering by using the button below.'
- ))
+ self.about_text_edit.setPlainText(
+ translate('OpenLP.AboutForm',
+ 'OpenLP <version><revision> - Open Source Lyrics Projection\n'
+ '\n'
+ 'OpenLP is free church presentation software, or lyrics '
+ 'projection software, used to display slides of songs, Bible '
+ 'verses, videos, images, and even presentations (if '
+ 'Impress, PowerPoint or PowerPoint Viewer is installed) '
+ 'for church worship using a computer and a data projector.\n'
+ '\n'
+ 'Find out more about OpenLP: http://openlp.org/\n'
+ '\n'
+ 'OpenLP is written and maintained by volunteers. If you would '
+ 'like to see more free Christian software being written, please '
+ 'consider volunteering by using the button below.'))
self.about_notebook.setTabText(self.about_notebook.indexOf(self.about_tab), UiStrings().About)
lead = 'Raoul "superfly" Snyman'
developers = ['Tim "TRB143" Bentley', 'Jonathan "gushie" Corwin',
- 'Michael "cocooncrash" Gorven',
- 'Andreas "googol" Preikschat', 'Raoul "superfly" Snyman',
- 'Martin "mijiti" Thompson', 'Jon "Meths" Tibble']
+ 'Michael "cocooncrash" Gorven',
+ 'Andreas "googol" Preikschat', 'Raoul "superfly" Snyman',
+ 'Martin "mijiti" Thompson', 'Jon "Meths" Tibble']
contributors = ['Gerald "jerryb" Britton',
- 'Samuel "MrGamgee" Findlay', 'Scott "sguerrieri" Guerrieri',
- 'Matthias "matthub" Hub', 'Meinert "m2j" Jordan',
- 'Armin "orangeshirt" K\xf6hler', 'Erik "luen" Lundin',
- 'Edwin "edwinlunando" Lunando', 'Brian "brianmeyer" Meyer',
- 'Joshua "milleja46" Miller', 'Stevan "ElderP" Pettit',
- 'Mattias "mahfiaz" P\xf5ldaru', 'Christian "crichter" Richter',
- 'Philip "Phill" Ridout', 'Simon "samscudder" Scudder',
- 'Jeffrey "whydoubt" Smith', 'Maikel Stuivenberg',
- 'Dave "Dave42W" Warnock', 'Frode "frodus" Woldsund',
- 'Martin "matysek" Zibricky', 'Patrick "mohij" Zimmermann']
+ 'Samuel "MrGamgee" Findlay', 'Scott "sguerrieri" Guerrieri',
+ 'Matthias "matthub" Hub', 'Meinert "m2j" Jordan',
+ 'Armin "orangeshirt" K\xf6hler', 'Erik "luen" Lundin',
+ 'Edwin "edwinlunando" Lunando', 'Brian "brianmeyer" Meyer',
+ 'Joshua "milleja46" Miller', 'Stevan "ElderP" Pettit',
+ 'Mattias "mahfiaz" P\xf5ldaru', 'Christian "crichter" Richter',
+ 'Philip "Phill" Ridout', 'Simon "samscudder" Scudder',
+ 'Jeffrey "whydoubt" Smith', 'Maikel Stuivenberg',
+ 'Dave "Dave42W" Warnock', 'Frode "frodus" Woldsund',
+ 'Martin "matysek" Zibricky', 'Patrick "mohij" Zimmermann']
testers = ['Philip "Phill" Ridout', 'Wesley "wrst" Stout',
- 'John "jseagull1" Cegalis (lead)']
+ 'John "jseagull1" Cegalis (lead)']
packagers = ['Thomas "tabthorpe" Abthorpe (FreeBSD)',
- 'Tim "TRB143" Bentley (Fedora and Android)',
- 'Matthias "matthub" Hub (Mac OS X)',
- 'Joseph "jdmulloy" Mulloy (openSUSE)',
- 'Stevan "ElderP" Pettit (Windows)',
- 'Raoul "superfly" Snyman (Debian, Ubuntu)',
- 'Garrett "floft" Wilson (Arch Linux)']
+ 'Tim "TRB143" Bentley (Fedora and Android)',
+ 'Matthias "matthub" Hub (Mac OS X)',
+ 'Joseph "jdmulloy" Mulloy (openSUSE)',
+ 'Stevan "ElderP" Pettit (Windows)',
+ 'Raoul "superfly" Snyman (Debian, Ubuntu)',
+ 'Garrett "floft" Wilson (Arch Linux)']
translators = {
'af': ['Johan "nuvolari" Mynhardt'],
'cs': ['Martin "matysek" Zibricky'],
'da': ['Henrik "Hsonesson" Sonesson'],
- 'de': ['Patrick "madmuffin" Br\xfcckner',
- 'Meinert "m2j" Jordan', 'Andreas "googol" Preikschat',
- 'Christian "crichter" Richter'],
+ 'de': ['Patrick "madmuffin" Br\xfcckner', 'Meinert "m2j" Jordan', 'Andreas "googol" Preikschat',
+ 'Christian "crichter" Richter'],
'en_GB': ['Tim "TRB143" Bentley', 'Jonathan "gushie" Corwin'],
- 'en_ZA': ['Raoul "superfly" Snyman',
- 'Johan "nuvolari" Mynhardt'],
+ 'en_ZA': ['Raoul "superfly" Snyman', 'Johan "nuvolari" Mynhardt'],
'el': ['Alexander Siozos'],
'es': ['Josu\xe9 Z\xfa\xf1iga', 'Christian Gonzalez'],
'et': ['Mattias "mahfiaz" P\xf5ldaru'],
'fi': ['Jori "joribu" Brander', 'Tobbe "tobbeb" Bildo'],
- 'fr': ['Stephan\xe9 "stbrunner" Brunner', 'Jeremie "jnau05"',
- 'Carl "carl.fischer" Fischer'],
+ 'fr': ['Stephan\xe9 "stbrunner" Brunner', 'Jeremie "jnau05"', 'Carl "carl.fischer" Fischer'],
'hu': ['Gyuris Gell\xe9rt'],
'id': ['Mico "bangmico" Siahaan', ' ign_christian'],
'ja': ['Kunio "Kunio" Nakamaru', 'Chris Haris'],
'nb': ['Atle "pendlaren" Weibell', 'Frode "frodus" Woldsund'],
'nl': ['Arjen "typovar" van Voorst'],
- 'pt_BR': ['David Mederiros', 'Rafael "rafaellerm" Lerm',
- 'Eduardo Levi Chaves',
- 'Gustavo Bim', 'Rog\xeanio Bel\xe9m', 'Samuel'
- 'Simon "samscudder" Scudder', 'Van Der Fran'],
+ 'pt_BR': ['David Mederiros', 'Rafael "rafaellerm" Lerm', 'Eduardo Levi Chaves',
+ 'Gustavo Bim', 'Rog\xeanio Bel\xe9m', 'Samuel Simon "samscudder" Scudder', 'Van Der Fran'],
'ru': ['Sergey "ratz" Ratz'],
'sv': ['Erik "luen" Lundin'],
'ta_LK': ['"Prasad"'],
'zh_CN': [' "executor" ']
}
- documentors = ['Wesley "wrst" Stout',
- 'John "jseagull1" Cegalis (lead)']
- self.credits_text_edit.setPlainText(translate('OpenLP.AboutForm',
- 'Project Lead\n'
- ' %s\n'
- '\n'
- 'Developers\n'
- ' %s\n'
- '\n'
- 'Contributors\n'
- ' %s\n'
- '\n'
- 'Testers\n'
- ' %s\n'
- '\n'
- 'Packagers\n'
- ' %s\n'
- '\n'
- 'Translators\n'
- ' Afrikaans (af)\n'
- ' %s\n'
- ' Czech (cs)\n'
- ' %s\n'
- ' Danish (da)\n'
- ' %s\n'
- ' German (de)\n'
- ' %s\n'
- ' Greek (el)\n'
- ' %s\n'
- ' English, United Kingdom (en_GB)\n'
- ' %s\n'
- ' English, South Africa (en_ZA)\n'
- ' %s\n'
- ' Spanish (es)\n'
- ' %s\n'
- ' Estonian (et)\n'
- ' %s\n'
- ' Finnish (fi)\n'
- ' %s\n'
- ' French (fr)\n'
- ' %s\n'
- ' Hungarian (hu)\n'
- ' %s\n'
- ' Indonesian (id)\n'
- ' %s\n'
- ' Japanese (ja)\n'
- ' %s\n'
- ' Norwegian Bokm\xe5l (nb)\n'
- ' %s\n'
- ' Dutch (nl)\n'
- ' %s\n'
- ' Portuguese, Brazil (pt_BR)\n'
- ' %s\n'
- ' Russian (ru)\n'
- ' %s\n'
- ' Swedish (sv)\n'
- ' %s\n'
- ' Tamil(Sri-Lanka) (ta_LK)\n'
- ' %s\n'
- ' Chinese(China) (zh_CN)\n'
- ' %s\n'
- '\n'
- 'Documentation\n'
- ' %s\n'
- '\n'
- 'Built With\n'
- ' Python: http://www.python.org/\n'
- ' Qt4: http://qt.digia.com/\n'
- ' PyQt4: http://www.riverbankcomputing.co.uk/software/pyqt/'
- 'intro\n'
- ' Oxygen Icons: http://oxygen-icons.org/\n'
- '\n'
- 'Final Credit\n'
- ' "For God so loved the world that He gave\n'
- ' His one and only Son, so that whoever\n'
- ' believes in Him will not perish but inherit\n'
- ' eternal life." -- John 3:16\n\n'
- ' And last but not least, final credit goes to\n'
- ' God our Father, for sending His Son to die\n'
- ' on the cross, setting us free from sin. We\n'
- ' bring this software to you for free because\n'
- ' He has set us free.') % (lead, '\n '.join(developers),
- '\n '.join(contributors), '\n '.join(testers),
- '\n '.join(packagers), '\n '.join(translators['af']),
- '\n '.join(translators['cs']),
- '\n '.join(translators['da']),
- '\n '.join(translators['de']),
- '\n '.join(translators['el']),
- '\n '.join(translators['en_GB']),
- '\n '.join(translators['en_ZA']),
- '\n '.join(translators['es']),
- '\n '.join(translators['et']),
- '\n '.join(translators['fi']),
- '\n '.join(translators['fr']),
- '\n '.join(translators['hu']),
- '\n '.join(translators['id']),
- '\n '.join(translators['ja']),
- '\n '.join(translators['nb']),
- '\n '.join(translators['nl']),
- '\n '.join(translators['pt_BR']),
- '\n '.join(translators['ru']),
- '\n '.join(translators['sv']),
- '\n '.join(translators['ta_LK']),
- '\n '.join(translators['zh_CN']),
- '\n '.join(documentors)))
+ documentors = ['Wesley "wrst" Stout', 'John "jseagull1" Cegalis (lead)']
+ self.credits_text_edit.setPlainText(
+ translate('OpenLP.AboutForm',
+ 'Project Lead\n'
+ ' %s\n'
+ '\n'
+ 'Developers\n'
+ ' %s\n'
+ '\n'
+ 'Contributors\n'
+ ' %s\n'
+ '\n'
+ 'Testers\n'
+ ' %s\n'
+ '\n'
+ 'Packagers\n'
+ ' %s\n'
+ '\n'
+ 'Translators\n'
+ ' Afrikaans (af)\n'
+ ' %s\n'
+ ' Czech (cs)\n'
+ ' %s\n'
+ ' Danish (da)\n'
+ ' %s\n'
+ ' German (de)\n'
+ ' %s\n'
+ ' Greek (el)\n'
+ ' %s\n'
+ ' English, United Kingdom (en_GB)\n'
+ ' %s\n'
+ ' English, South Africa (en_ZA)\n'
+ ' %s\n'
+ ' Spanish (es)\n'
+ ' %s\n'
+ ' Estonian (et)\n'
+ ' %s\n'
+ ' Finnish (fi)\n'
+ ' %s\n'
+ ' French (fr)\n'
+ ' %s\n'
+ ' Hungarian (hu)\n'
+ ' %s\n'
+ ' Indonesian (id)\n'
+ ' %s\n'
+ ' Japanese (ja)\n'
+ ' %s\n'
+ ' Norwegian Bokm\xe5l (nb)\n'
+ ' %s\n'
+ ' Dutch (nl)\n'
+ ' %s\n'
+ ' Portuguese, Brazil (pt_BR)\n'
+ ' %s\n'
+ ' Russian (ru)\n'
+ ' %s\n'
+ ' Swedish (sv)\n'
+ ' %s\n'
+ ' Tamil(Sri-Lanka) (ta_LK)\n'
+ ' %s\n'
+ ' Chinese(China) (zh_CN)\n'
+ ' %s\n'
+ '\n'
+ 'Documentation\n'
+ ' %s\n'
+ '\n'
+ 'Built With\n'
+ ' Python: http://www.python.org/\n'
+ ' Qt4: http://qt.digia.com/\n'
+ ' PyQt4: http://www.riverbankcomputing.co.uk/software/pyqt/'
+ 'intro\n'
+ ' Oxygen Icons: http://oxygen-icons.org/\n'
+ '\n'
+ 'Final Credit\n'
+ ' "For God so loved the world that He gave\n'
+ ' His one and only Son, so that whoever\n'
+ ' believes in Him will not perish but inherit\n'
+ ' eternal life." -- John 3:16\n\n'
+ ' And last but not least, final credit goes to\n'
+ ' God our Father, for sending His Son to die\n'
+ ' on the cross, setting us free from sin. We\n'
+ ' bring this software to you for free because\n'
+ ' He has set us free.') %
+ (lead, '\n '.join(developers),
+ '\n '.join(contributors), '\n '.join(testers),
+ '\n '.join(packagers), '\n '.join(translators['af']),
+ '\n '.join(translators['cs']),
+ '\n '.join(translators['da']),
+ '\n '.join(translators['de']),
+ '\n '.join(translators['el']),
+ '\n '.join(translators['en_GB']),
+ '\n '.join(translators['en_ZA']),
+ '\n '.join(translators['es']),
+ '\n '.join(translators['et']),
+ '\n '.join(translators['fi']),
+ '\n '.join(translators['fr']),
+ '\n '.join(translators['hu']),
+ '\n '.join(translators['id']),
+ '\n '.join(translators['ja']),
+ '\n '.join(translators['nb']),
+ '\n '.join(translators['nl']),
+ '\n '.join(translators['pt_BR']),
+ '\n '.join(translators['ru']),
+ '\n '.join(translators['sv']),
+ '\n '.join(translators['ta_LK']),
+ '\n '.join(translators['zh_CN']),
+ '\n '.join(documentors)))
self.about_notebook.setTabText(self.about_notebook.indexOf(self.credits_tab),
- translate('OpenLP.AboutForm', 'Credits'))
+ translate('OpenLP.AboutForm', 'Credits'))
copyright_note = translate('OpenLP.AboutForm',
- 'Copyright \xa9 2004-2014 %s\n'
- 'Portions copyright \xa9 2004-2014 %s') % ('Raoul Snyman',
- 'Tim Bentley, Gerald Britton, Jonathan Corwin, Samuel Findlay, '
- 'Michael Gorven, Scott Guerrieri, Matthias Hub, Meinert Jordan, '
- 'Armin K\xf6hler, Erik Lundin, Edwin Lunando, Joshua Miller, '
- 'Brian T. Meyer, Stevan Pettit, Andreas Preikschat, '
- 'Mattias P\xf5ldaru, Christian Richter, '
- 'Philip Ridout, Simon Scudder, Jeffrey Smith, Maikel Stuivenberg, '
- 'Martin Thompson, Jon Tibble, Dave Warnock, Frode Woldsund, '
- 'Martin Zibricky, Patrick Zimmermann')
+ 'Copyright \xa9 2004-2014 %s\n'
+ 'Portions copyright \xa9 2004-2014 %s') % \
+ ('Raoul Snyman',
+ 'Tim Bentley, Gerald Britton, Jonathan Corwin, Samuel Findlay, '
+ 'Michael Gorven, Scott Guerrieri, Matthias Hub, Meinert Jordan, '
+ 'Armin K\xf6hler, Erik Lundin, Edwin Lunando, Joshua Miller, '
+ 'Brian T. Meyer, Stevan Pettit, Andreas Preikschat, '
+ 'Mattias P\xf5ldaru, Christian Richter, '
+ 'Philip Ridout, Simon Scudder, Jeffrey Smith, Maikel Stuivenberg, '
+ 'Martin Thompson, Jon Tibble, Dave Warnock, Frode Woldsund, '
+ 'Martin Zibricky, Patrick Zimmermann')
licence = translate('OpenLP.AboutForm',
- '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 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.')
disclaimer = translate('OpenLP.AboutForm',
- '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 below '
- 'for more details.')
+ '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 below '
+ 'for more details.')
gpl_text = ('GNU GENERAL PUBLIC LICENSE\n'
- 'Version 2, June 1991\n'
- '\n'
- 'Copyright (C) 1989, 1991 Free Software Foundation, Inc., 51 '
- 'Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. '
- 'Everyone is permitted to copy and distribute verbatim copies of '
- 'this license document, but changing it is not allowed.\n'
- '\n'
- 'Preamble\n'
- '\n'
- 'The licenses for most software are designed to take away your '
- 'freedom to share and change it. By contrast, the GNU General '
- 'Public License is intended to guarantee your freedom to share '
- 'and change free software--to make sure the software is free for '
- 'all its users. This General Public License applies to most of '
- 'the Free Software Foundation\'s software and to any other '
- 'program whose authors commit to using it. (Some other Free '
- 'Software Foundation software is covered by the GNU Lesser '
- 'General Public License instead.) You can apply it to your '
- 'programs, too.\n'
- '\n'
- 'When we speak of free software, we are referring to freedom, not '
- 'price. Our General Public Licenses are designed to make sure '
- 'that you have the freedom to distribute copies of free software '
- '(and charge for this service if you wish), that you receive '
- 'source code or can get it if you want it, that you can change '
- 'the software or use pieces of it in new free programs; and that '
- 'you know you can do these things.\n'
- '\n'
- 'To protect your rights, we need to make restrictions that forbid '
- 'anyone to deny you these rights or to ask you to surrender the '
- 'rights. These restrictions translate to certain responsibilities '
- 'for you if you distribute copies of the software, or if you '
- 'modify it.\n'
- '\n'
- 'For example, if you distribute copies of such a program, whether '
- 'gratis or for a fee, you must give the recipients all the rights '
- 'that you have. You must make sure that they, too, receive or '
- 'can get the source code. And you must show them these terms so '
- 'they know their rights.\n'
- '\n'
- 'We protect your rights with two steps: (1) copyright the '
- 'software, and (2) offer you this license which gives you legal '
- 'permission to copy, distribute and/or modify the software.\n'
- '\n'
- 'Also, for each author\'s protection and ours, we want to make '
- 'certain that everyone understands that there is no warranty for '
- 'this free software. If the software is modified by someone else '
- 'and passed on, we want its recipients to know that what they '
- 'have is not the original, so that any problems introduced by '
- 'others will not reflect on the original authors\' reputations.\n'
- '\n'
- 'Finally, any free program is threatened constantly by software '
- 'patents. We wish to avoid the danger that redistributors of a '
- 'free program will individually obtain patent licenses, in effect '
- 'making the program proprietary. To prevent this, we have made '
- 'it clear that any patent must be licensed for everyone\'s free '
- 'use or not licensed at all.\n'
- '\n'
- 'The precise terms and conditions for copying, distribution and '
- 'modification follow.\n'
- '\n'
- 'GNU GENERAL PUBLIC LICENSE\n'
- 'TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION\n'
- '\n'
- '0. This License applies to any program or other work which '
- 'contains a notice placed by the copyright holder saying it may '
- 'be distributed under the terms of this General Public License. '
- 'The "Program", below, refers to any such program or work, and a '
- '"work based on the Program" means either the Program or any '
- 'derivative work under copyright law: that is to say, a work '
- 'containing the Program or a portion of it, either verbatim or '
- 'with modifications and/or translated into another language. '
- '(Hereinafter, translation is included without limitation in the '
- 'term "modification".) Each licensee is addressed as "you".\n'
- '\n'
- 'Activities other than copying, distribution and modification are '
- 'not covered by this License; they are outside its scope. The '
- 'act of running the Program is not restricted, and the output '
- 'from the Program is covered only if its contents constitute a '
- 'work based on the Program (independent of having been made by '
- 'running the Program). Whether that is true depends on what the '
- 'Program does.\n'
- '\n'
- '1. You may copy and distribute verbatim copies of the Program\'s '
- 'source code as you receive it, in any medium, provided that you '
- 'conspicuously and appropriately publish on each copy an '
- 'appropriate copyright notice and disclaimer of warranty; keep '
- 'intact all the notices that refer to this License and to the '
- 'absence of any warranty; and give any other recipients of the '
- 'Program a copy of this License along with the Program.\n'
- '\n'
- 'You may charge a fee for the physical act of transferring a '
- 'copy, and you may at your option offer warranty protection in '
- 'exchange for a fee.\n'
- '\n'
- '2. You may modify your copy or copies of the Program or any '
- 'portion of it, thus forming a work based on the Program, and '
- 'copy and distribute such modifications or work under the terms '
- 'of Section 1 above, provided that you also meet all of these '
- 'conditions:\n'
- '\n'
- 'a) You must cause the modified files to carry prominent notices '
- 'stating that you changed the files and the date of any change.\n'
- '\n'
- 'b) You must cause any work that you distribute or publish, that '
- 'in whole or in part contains or is derived from the Program or '
- 'any part thereof, to be licensed as a whole at no charge to all '
- 'third parties under the terms of this License.\n'
- '\n'
- 'c) If the modified program normally reads commands interactively '
- 'when run, you must cause it, when started running for such '
- 'interactive use in the most ordinary way, to print or display an '
- 'announcement including an appropriate copyright notice and a '
- 'notice that there is no warranty (or else, saying that you '
- 'provide a warranty) and that users may redistribute the program '
- 'under these conditions, and telling the user how to view a copy '
- 'of this License. (Exception: if the Program itself is '
- 'interactive but does not normally print such an announcement, '
- 'your work based on the Program is not required to print an '
- 'announcement.)\n'
- '\n'
- 'These requirements apply to the modified work as a whole. If '
- 'identifiable sections of that work are not derived from the '
- 'Program, and can be reasonably considered independent and '
- 'separate works in themselves, then this License, and its terms, '
- 'do not apply to those sections when you distribute them as '
- 'separate works. But when you distribute the same sections as '
- 'part of a whole which is a work based on the Program, the '
- 'distribution of the whole must be on the terms of this License, '
- 'whose permissions for other licensees extend to the entire '
- 'whole, and thus to each and every part regardless of who wrote '
- 'it.\n'
- '\n'
- 'Thus, it is not the intent of this section to claim rights or '
- 'contest your rights to work written entirely by you; rather, the '
- 'intent is to exercise the right to control the distribution of '
- 'derivative or collective works based on the Program.\n'
- '\n'
- 'In addition, mere aggregation of another work not based on the '
- 'Program with the Program (or with a work based on the Program) '
- 'on a volume of a storage or distribution medium does not bring '
- 'the other work under the scope of this License.\n'
- '\n'
- '3. You may copy and distribute the Program (or a work based on '
- 'it, under Section 2) in object code or executable form under the '
- 'terms of Sections 1 and 2 above provided that you also do one of '
- 'the following:\n'
- '\n'
- 'a) Accompany it with the complete corresponding machine-readable '
- 'source code, which must be distributed under the terms of '
- 'Sections 1 and 2 above on a medium customarily used for software '
- 'interchange; or,\n'
- '\n'
- 'b) Accompany it with a written offer, valid for at least three '
- 'years, to give any third party, for a charge no more than your '
- 'cost of physically performing source distribution, a complete '
- 'machine-readable copy of the corresponding source code, to be '
- 'distributed under the terms of Sections 1 and 2 above on a '
- 'medium customarily used for software interchange; or,\n'
- '\n'
- 'c) Accompany it with the information you received as to the '
- 'offer to distribute corresponding source code. (This '
- 'alternative is allowed only for noncommercial distribution and '
- 'only if you received the program in object code or executable '
- 'form with such an offer, in accord with Subsection b above.)\n'
- '\n'
- 'The source code for a work means the preferred form of the work '
- 'for making modifications to it. For an executable work, '
- 'complete source code means all the source code for all modules '
- 'it contains, plus any associated interface definition files, '
- 'plus the scripts used to control compilation and installation of '
- 'the executable. However, as a special exception, the source '
- 'code distributed need not include anything that is normally '
- 'distributed (in either source or binary form) with the major '
- 'components (compiler, kernel, and so on) of the operating system '
- 'on which the executable runs, unless that component itself '
- 'accompanies the executable.\n'
- '\n'
- 'If distribution of executable or object code is made by offering '
- 'access to copy from a designated place, then offering equivalent '
- 'access to copy the source code from the same place counts as '
- 'distribution of the source code, even though third parties are '
- 'not compelled to copy the source along with the object code.\n'
- '\n'
- '4. You may not copy, modify, sublicense, or distribute the '
- 'Program except as expressly provided under this License. Any '
- 'attempt otherwise to copy, modify, sublicense or distribute the '
- 'Program is void, and will automatically terminate your rights '
- 'under this License. However, parties who have received copies, '
- 'or rights, from you under this License will not have their '
- 'licenses terminated so long as such parties remain in full '
- 'compliance.\n'
- '\n'
- '5. You are not required to accept this License, since you have '
- 'not signed it. However, nothing else grants you permission to '
- 'modify or distribute the Program or its derivative works. These '
- 'actions are prohibited by law if you do not accept this '
- 'License. Therefore, by modifying or distributing the Program '
- '(or any work based on the Program), you indicate your acceptance '
- 'of this License to do so, and all its terms and conditions for '
- 'copying, distributing or modifying the Program or works based on '
- 'it.\n'
- '\n'
- '6. Each time you redistribute the Program (or any work based on '
- 'the Program), the recipient automatically receives a license '
- 'from the original licensor to copy, distribute or modify the '
- 'Program subject to these terms and conditions. You may not '
- 'impose any further restrictions on the recipients\' exercise of '
- 'the rights granted herein. You are not responsible for enforcing '
- 'compliance by third parties to this License.\n'
- '\n'
- '7. If, as a consequence of a court judgment or allegation of '
- 'patent infringement or for any other reason (not limited to '
- 'patent issues), conditions are imposed on you (whether by court '
- 'order, agreement or otherwise) that contradict the conditions of '
- 'this License, they do not excuse you from the conditions of this '
- 'License. If you cannot distribute so as to satisfy '
- 'simultaneously your obligations under this License and any other '
- 'pertinent obligations, then as a consequence you may not '
- 'distribute the Program at all. For example, if a patent license '
- 'would not permit royalty-free redistribution of the Program by '
- 'all those who receive copies directly or indirectly through you, '
- 'then the only way you could satisfy both it and this License '
- 'would be to refrain entirely from distribution of the Program.\n'
- '\n'
- 'If any portion of this section is held invalid or unenforceable '
- 'under any particular circumstance, the balance of the section is '
- 'intended to apply and the section as a whole is intended to '
- 'apply in other circumstances.\n'
- '\n'
- 'It is not the purpose of this section to induce you to infringe '
- 'any patents or other property right claims or to contest '
- 'validity of any such claims; this section has the sole purpose '
- 'of protecting the integrity of the free software distribution '
- 'system, which is implemented by public license practices. Many '
- 'people have made generous contributions to the wide range of '
- 'software distributed through that system in reliance on '
- 'consistent application of that system; it is up to the '
- 'author/donor to decide if he or she is willing to distribute '
- 'software through any other system and a licensee cannot impose '
- 'that choice.\n'
- '\n'
- 'This section is intended to make thoroughly clear what is '
- 'believed to be a consequence of the rest of this License.\n'
- '\n'
- '8. If the distribution and/or use of the Program is restricted '
- 'in certain countries either by patents or by copyrighted '
- 'interfaces, the original copyright holder who places the Program '
- 'under this License may add an explicit geographical distribution '
- 'limitation excluding those countries, so that distribution is '
- 'permitted only in or among countries not thus excluded. In such '
- 'case, this License incorporates the limitation as if written in '
- 'the body of this License.\n'
- '\n'
- '9. The Free Software Foundation may publish revised and/or new '
- 'versions of the General Public License from time to time. Such '
- 'new versions will be similar in spirit to the present version, '
- 'but may differ in detail to address new problems or concerns.\n'
- '\n'
- 'Each version is given a distinguishing version number. If the '
- 'Program specifies a version number of this License which applies '
- 'to it and "any later version", you have the option of '
- 'following the terms and conditions either of that version or of '
- 'any later version published by the Free Software Foundation. If '
- 'the Program does not specify a version number of this License, '
- 'you may choose any version ever published by the Free Software '
- 'Foundation.\n'
- '\n'
- '10. If you wish to incorporate parts of the Program into other '
- 'free programs whose distribution conditions are different, write '
- 'to the author to ask for permission. For software which is '
- 'copyrighted by the Free Software Foundation, write to the Free '
- 'Software Foundation; we sometimes make exceptions for this. Our '
- 'decision will be guided by the two goals of preserving the free '
- 'status of all derivatives of our free software and of promoting '
- 'the sharing and reuse of software generally.\n'
- '\n'
- 'NO WARRANTY\n'
- '\n'
- '11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO '
- 'WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE '
- 'LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT '
- 'HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT '
- 'WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, '
- 'BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY '
- 'AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE '
- 'QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE '
- 'PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY '
- 'SERVICING, REPAIR OR CORRECTION.\n'
- '\n'
- '12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO '
- 'IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY '
- 'MODIFY AND/OR REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE '
- 'LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, '
- 'INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR '
- 'INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS '
- 'OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY '
- 'YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH '
- 'ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN '
- 'ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.\n'
- '\n'
- 'END OF TERMS AND CONDITIONS\n'
- '\n'
- 'How to Apply These Terms to Your New Programs\n'
- '\n'
- 'If you develop a new program, and you want it to be of the '
- 'greatest possible use to the public, the best way to achieve '
- 'this is to make it free software which everyone can redistribute '
- 'and change under these terms.\n'
- '\n'
- 'To do so, attach the following notices to the program. It is '
- 'safest to attach them to the start of each source file to most '
- 'effectively convey the exclusion of warranty; and each file '
- 'should have at least the "copyright" line and a pointer to where '
- 'the full notice is found.\n'
- '\n'
- '<one line to give the program\'s name and a brief idea of what '
- 'it does.>\n'
- 'Copyright (C) <year> <name of author>\n'
- '\n'
- '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; either version 2 of '
- 'the License, or (at your option) any later version.\n'
- '\n'
- '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.\n'
- '\n'
- '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., 51 Franklin Street, Fifth Floor, '
- 'Boston, MA 02110-1301 USA.\n'
- '\n'
- 'Also add information on how to contact you by electronic and '
- 'paper mail.\n'
- '\n'
- 'If the program is interactive, make it output a short notice '
- 'like this when it starts in an interactive mode:\n'
- '\n'
- 'Gnomovision version 69, Copyright (C) year name of author\n'
- 'Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type '
- '"show w".\n'
- 'This is free software, and you are welcome to redistribute it '
- 'under certain conditions; type "show c" for details.\n'
- '\n'
- 'The hypothetical commands "show w" and "show c" should show '
- 'the appropriate parts of the General Public License. Of course, '
- 'the commands you use may be called something other than "show '
- 'w" and "show c"; they could even be mouse-clicks or menu items--'
- 'whatever suits your program.\n'
- '\n'
- 'You should also get your employer (if you work as a programmer) '
- 'or your school, if any, to sign a "copyright disclaimer" for the '
- 'program, if necessary. Here is a sample; alter the names:\n'
- '\n'
- 'Yoyodyne, Inc., hereby disclaims all copyright interest in the '
- 'program "Gnomovision" (which makes passes at compilers) written '
- 'by James Hacker.\n'
- '\n'
- '<signature of Ty Coon>, 1 April 1989\n'
- 'Ty Coon, President of Vice\n'
- '\n'
- 'This General Public License does not permit incorporating your '
- 'program into proprietary programs. If your program is a '
- 'subroutine library, you may consider it more useful to permit '
- 'linking proprietary applications with the library. If this is '
- 'what you want to do, use the GNU Lesser General Public License '
- 'instead of this License.')
+ 'Version 2, June 1991\n'
+ '\n'
+ 'Copyright (C) 1989, 1991 Free Software Foundation, Inc., 51 '
+ 'Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. '
+ 'Everyone is permitted to copy and distribute verbatim copies of '
+ 'this license document, but changing it is not allowed.\n'
+ '\n'
+ 'Preamble\n'
+ '\n'
+ 'The licenses for most software are designed to take away your '
+ 'freedom to share and change it. By contrast, the GNU General '
+ 'Public License is intended to guarantee your freedom to share '
+ 'and change free software--to make sure the software is free for '
+ 'all its users. This General Public License applies to most of '
+ 'the Free Software Foundation\'s software and to any other '
+ 'program whose authors commit to using it. (Some other Free '
+ 'Software Foundation software is covered by the GNU Lesser '
+ 'General Public License instead.) You can apply it to your '
+ 'programs, too.\n'
+ '\n'
+ 'When we speak of free software, we are referring to freedom, not '
+ 'price. Our General Public Licenses are designed to make sure '
+ 'that you have the freedom to distribute copies of free software '
+ '(and charge for this service if you wish), that you receive '
+ 'source code or can get it if you want it, that you can change '
+ 'the software or use pieces of it in new free programs; and that '
+ 'you know you can do these things.\n'
+ '\n'
+ 'To protect your rights, we need to make restrictions that forbid '
+ 'anyone to deny you these rights or to ask you to surrender the '
+ 'rights. These restrictions translate to certain responsibilities '
+ 'for you if you distribute copies of the software, or if you '
+ 'modify it.\n'
+ '\n'
+ 'For example, if you distribute copies of such a program, whether '
+ 'gratis or for a fee, you must give the recipients all the rights '
+ 'that you have. You must make sure that they, too, receive or '
+ 'can get the source code. And you must show them these terms so '
+ 'they know their rights.\n'
+ '\n'
+ 'We protect your rights with two steps: (1) copyright the '
+ 'software, and (2) offer you this license which gives you legal '
+ 'permission to copy, distribute and/or modify the software.\n'
+ '\n'
+ 'Also, for each author\'s protection and ours, we want to make '
+ 'certain that everyone understands that there is no warranty for '
+ 'this free software. If the software is modified by someone else '
+ 'and passed on, we want its recipients to know that what they '
+ 'have is not the original, so that any problems introduced by '
+ 'others will not reflect on the original authors\' reputations.\n'
+ '\n'
+ 'Finally, any free program is threatened constantly by software '
+ 'patents. We wish to avoid the danger that redistributors of a '
+ 'free program will individually obtain patent licenses, in effect '
+ 'making the program proprietary. To prevent this, we have made '
+ 'it clear that any patent must be licensed for everyone\'s free '
+ 'use or not licensed at all.\n'
+ '\n'
+ 'The precise terms and conditions for copying, distribution and '
+ 'modification follow.\n'
+ '\n'
+ 'GNU GENERAL PUBLIC LICENSE\n'
+ 'TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION\n'
+ '\n'
+ '0. This License applies to any program or other work which '
+ 'contains a notice placed by the copyright holder saying it may '
+ 'be distributed under the terms of this General Public License. '
+ 'The "Program", below, refers to any such program or work, and a '
+ '"work based on the Program" means either the Program or any '
+ 'derivative work under copyright law: that is to say, a work '
+ 'containing the Program or a portion of it, either verbatim or '
+ 'with modifications and/or translated into another language. '
+ '(Hereinafter, translation is included without limitation in the '
+ 'term "modification".) Each licensee is addressed as "you".\n'
+ '\n'
+ 'Activities other than copying, distribution and modification are '
+ 'not covered by this License; they are outside its scope. The '
+ 'act of running the Program is not restricted, and the output '
+ 'from the Program is covered only if its contents constitute a '
+ 'work based on the Program (independent of having been made by '
+ 'running the Program). Whether that is true depends on what the '
+ 'Program does.\n'
+ '\n'
+ '1. You may copy and distribute verbatim copies of the Program\'s '
+ 'source code as you receive it, in any medium, provided that you '
+ 'conspicuously and appropriately publish on each copy an '
+ 'appropriate copyright notice and disclaimer of warranty; keep '
+ 'intact all the notices that refer to this License and to the '
+ 'absence of any warranty; and give any other recipients of the '
+ 'Program a copy of this License along with the Program.\n'
+ '\n'
+ 'You may charge a fee for the physical act of transferring a '
+ 'copy, and you may at your option offer warranty protection in '
+ 'exchange for a fee.\n'
+ '\n'
+ '2. You may modify your copy or copies of the Program or any '
+ 'portion of it, thus forming a work based on the Program, and '
+ 'copy and distribute such modifications or work under the terms '
+ 'of Section 1 above, provided that you also meet all of these '
+ 'conditions:\n'
+ '\n'
+ 'a) You must cause the modified files to carry prominent notices '
+ 'stating that you changed the files and the date of any change.\n'
+ '\n'
+ 'b) You must cause any work that you distribute or publish, that '
+ 'in whole or in part contains or is derived from the Program or '
+ 'any part thereof, to be licensed as a whole at no charge to all '
+ 'third parties under the terms of this License.\n'
+ '\n'
+ 'c) If the modified program normally reads commands interactively '
+ 'when run, you must cause it, when started running for such '
+ 'interactive use in the most ordinary way, to print or display an '
+ 'announcement including an appropriate copyright notice and a '
+ 'notice that there is no warranty (or else, saying that you '
+ 'provide a warranty) and that users may redistribute the program '
+ 'under these conditions, and telling the user how to view a copy '
+ 'of this License. (Exception: if the Program itself is '
+ 'interactive but does not normally print such an announcement, '
+ 'your work based on the Program is not required to print an '
+ 'announcement.)\n'
+ '\n'
+ 'These requirements apply to the modified work as a whole. If '
+ 'identifiable sections of that work are not derived from the '
+ 'Program, and can be reasonably considered independent and '
+ 'separate works in themselves, then this License, and its terms, '
+ 'do not apply to those sections when you distribute them as '
+ 'separate works. But when you distribute the same sections as '
+ 'part of a whole which is a work based on the Program, the '
+ 'distribution of the whole must be on the terms of this License, '
+ 'whose permissions for other licensees extend to the entire '
+ 'whole, and thus to each and every part regardless of who wrote '
+ 'it.\n'
+ '\n'
+ 'Thus, it is not the intent of this section to claim rights or '
+ 'contest your rights to work written entirely by you; rather, the '
+ 'intent is to exercise the right to control the distribution of '
+ 'derivative or collective works based on the Program.\n'
+ '\n'
+ 'In addition, mere aggregation of another work not based on the '
+ 'Program with the Program (or with a work based on the Program) '
+ 'on a volume of a storage or distribution medium does not bring '
+ 'the other work under the scope of this License.\n'
+ '\n'
+ '3. You may copy and distribute the Program (or a work based on '
+ 'it, under Section 2) in object code or executable form under the '
+ 'terms of Sections 1 and 2 above provided that you also do one of '
+ 'the following:\n'
+ '\n'
+ 'a) Accompany it with the complete corresponding machine-readable '
+ 'source code, which must be distributed under the terms of '
+ 'Sections 1 and 2 above on a medium customarily used for software '
+ 'interchange; or,\n'
+ '\n'
+ 'b) Accompany it with a written offer, valid for at least three '
+ 'years, to give any third party, for a charge no more than your '
+ 'cost of physically performing source distribution, a complete '
+ 'machine-readable copy of the corresponding source code, to be '
+ 'distributed under the terms of Sections 1 and 2 above on a '
+ 'medium customarily used for software interchange; or,\n'
+ '\n'
+ 'c) Accompany it with the information you received as to the '
+ 'offer to distribute corresponding source code. (This '
+ 'alternative is allowed only for noncommercial distribution and '
+ 'only if you received the program in object code or executable '
+ 'form with such an offer, in accord with Subsection b above.)\n'
+ '\n'
+ 'The source code for a work means the preferred form of the work '
+ 'for making modifications to it. For an executable work, '
+ 'complete source code means all the source code for all modules '
+ 'it contains, plus any associated interface definition files, '
+ 'plus the scripts used to control compilation and installation of '
+ 'the executable. However, as a special exception, the source '
+ 'code distributed need not include anything that is normally '
+ 'distributed (in either source or binary form) with the major '
+ 'components (compiler, kernel, and so on) of the operating system '
+ 'on which the executable runs, unless that component itself '
+ 'accompanies the executable.\n'
+ '\n'
+ 'If distribution of executable or object code is made by offering '
+ 'access to copy from a designated place, then offering equivalent '
+ 'access to copy the source code from the same place counts as '
+ 'distribution of the source code, even though third parties are '
+ 'not compelled to copy the source along with the object code.\n'
+ '\n'
+ '4. You may not copy, modify, sublicense, or distribute the '
+ 'Program except as expressly provided under this License. Any '
+ 'attempt otherwise to copy, modify, sublicense or distribute the '
+ 'Program is void, and will automatically terminate your rights '
+ 'under this License. However, parties who have received copies, '
+ 'or rights, from you under this License will not have their '
+ 'licenses terminated so long as such parties remain in full '
+ 'compliance.\n'
+ '\n'
+ '5. You are not required to accept this License, since you have '
+ 'not signed it. However, nothing else grants you permission to '
+ 'modify or distribute the Program or its derivative works. These '
+ 'actions are prohibited by law if you do not accept this '
+ 'License. Therefore, by modifying or distributing the Program '
+ '(or any work based on the Program), you indicate your acceptance '
+ 'of this License to do so, and all its terms and conditions for '
+ 'copying, distributing or modifying the Program or works based on '
+ 'it.\n'
+ '\n'
+ '6. Each time you redistribute the Program (or any work based on '
+ 'the Program), the recipient automatically receives a license '
+ 'from the original licensor to copy, distribute or modify the '
+ 'Program subject to these terms and conditions. You may not '
+ 'impose any further restrictions on the recipients\' exercise of '
+ 'the rights granted herein. You are not responsible for enforcing '
+ 'compliance by third parties to this License.\n'
+ '\n'
+ '7. If, as a consequence of a court judgment or allegation of '
+ 'patent infringement or for any other reason (not limited to '
+ 'patent issues), conditions are imposed on you (whether by court '
+ 'order, agreement or otherwise) that contradict the conditions of '
+ 'this License, they do not excuse you from the conditions of this '
+ 'License. If you cannot distribute so as to satisfy '
+ 'simultaneously your obligations under this License and any other '
+ 'pertinent obligations, then as a consequence you may not '
+ 'distribute the Program at all. For example, if a patent license '
+ 'would not permit royalty-free redistribution of the Program by '
+ 'all those who receive copies directly or indirectly through you, '
+ 'then the only way you could satisfy both it and this License '
+ 'would be to refrain entirely from distribution of the Program.\n'
+ '\n'
+ 'If any portion of this section is held invalid or unenforceable '
+ 'under any particular circumstance, the balance of the section is '
+ 'intended to apply and the section as a whole is intended to '
+ 'apply in other circumstances.\n'
+ '\n'
+ 'It is not the purpose of this section to induce you to infringe '
+ 'any patents or other property right claims or to contest '
+ 'validity of any such claims; this section has the sole purpose '
+ 'of protecting the integrity of the free software distribution '
+ 'system, which is implemented by public license practices. Many '
+ 'people have made generous contributions to the wide range of '
+ 'software distributed through that system in reliance on '
+ 'consistent application of that system; it is up to the '
+ 'author/donor to decide if he or she is willing to distribute '
+ 'software through any other system and a licensee cannot impose '
+ 'that choice.\n'
+ '\n'
+ 'This section is intended to make thoroughly clear what is '
+ 'believed to be a consequence of the rest of this License.\n'
+ '\n'
+ '8. If the distribution and/or use of the Program is restricted '
+ 'in certain countries either by patents or by copyrighted '
+ 'interfaces, the original copyright holder who places the Program '
+ 'under this License may add an explicit geographical distribution '
+ 'limitation excluding those countries, so that distribution is '
+ 'permitted only in or among countries not thus excluded. In such '
+ 'case, this License incorporates the limitation as if written in '
+ 'the body of this License.\n'
+ '\n'
+ '9. The Free Software Foundation may publish revised and/or new '
+ 'versions of the General Public License from time to time. Such '
+ 'new versions will be similar in spirit to the present version, '
+ 'but may differ in detail to address new problems or concerns.\n'
+ '\n'
+ 'Each version is given a distinguishing version number. If the '
+ 'Program specifies a version number of this License which applies '
+ 'to it and "any later version", you have the option of '
+ 'following the terms and conditions either of that version or of '
+ 'any later version published by the Free Software Foundation. If '
+ 'the Program does not specify a version number of this License, '
+ 'you may choose any version ever published by the Free Software '
+ 'Foundation.\n'
+ '\n'
+ '10. If you wish to incorporate parts of the Program into other '
+ 'free programs whose distribution conditions are different, write '
+ 'to the author to ask for permission. For software which is '
+ 'copyrighted by the Free Software Foundation, write to the Free '
+ 'Software Foundation; we sometimes make exceptions for this. Our '
+ 'decision will be guided by the two goals of preserving the free '
+ 'status of all derivatives of our free software and of promoting '
+ 'the sharing and reuse of software generally.\n'
+ '\n'
+ 'NO WARRANTY\n'
+ '\n'
+ '11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO '
+ 'WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE '
+ 'LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT '
+ 'HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT '
+ 'WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, '
+ 'BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY '
+ 'AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE '
+ 'QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE '
+ 'PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY '
+ 'SERVICING, REPAIR OR CORRECTION.\n'
+ '\n'
+ '12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO '
+ 'IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY '
+ 'MODIFY AND/OR REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE '
+ 'LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, '
+ 'INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR '
+ 'INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS '
+ 'OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY '
+ 'YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH '
+ 'ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN '
+ 'ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.\n'
+ '\n'
+ 'END OF TERMS AND CONDITIONS\n'
+ '\n'
+ 'How to Apply These Terms to Your New Programs\n'
+ '\n'
+ 'If you develop a new program, and you want it to be of the '
+ 'greatest possible use to the public, the best way to achieve '
+ 'this is to make it free software which everyone can redistribute '
+ 'and change under these terms.\n'
+ '\n'
+ 'To do so, attach the following notices to the program. It is '
+ 'safest to attach them to the start of each source file to most '
+ 'effectively convey the exclusion of warranty; and each file '
+ 'should have at least the "copyright" line and a pointer to where '
+ 'the full notice is found.\n'
+ '\n'
+ '<one line to give the program\'s name and a brief idea of what '
+ 'it does.>\n'
+ 'Copyright (C) <year> <name of author>\n'
+ '\n'
+ '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; either version 2 of '
+ 'the License, or (at your option) any later version.\n'
+ '\n'
+ '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.\n'
+ '\n'
+ '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., 51 Franklin Street, Fifth Floor, '
+ 'Boston, MA 02110-1301 USA.\n'
+ '\n'
+ 'Also add information on how to contact you by electronic and '
+ 'paper mail.\n'
+ '\n'
+ 'If the program is interactive, make it output a short notice '
+ 'like this when it starts in an interactive mode:\n'
+ '\n'
+ 'Gnomovision version 69, Copyright (C) year name of author\n'
+ 'Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type '
+ '"show w".\n'
+ 'This is free software, and you are welcome to redistribute it '
+ 'under certain conditions; type "show c" for details.\n'
+ '\n'
+ 'The hypothetical commands "show w" and "show c" should show '
+ 'the appropriate parts of the General Public License. Of course, '
+ 'the commands you use may be called something other than "show '
+ 'w" and "show c"; they could even be mouse-clicks or menu items--'
+ 'whatever suits your program.\n'
+ '\n'
+ 'You should also get your employer (if you work as a programmer) '
+ 'or your school, if any, to sign a "copyright disclaimer" for the '
+ 'program, if necessary. Here is a sample; alter the names:\n'
+ '\n'
+ 'Yoyodyne, Inc., hereby disclaims all copyright interest in the '
+ 'program "Gnomovision" (which makes passes at compilers) written '
+ 'by James Hacker.\n'
+ '\n'
+ '<signature of Ty Coon>, 1 April 1989\n'
+ 'Ty Coon, President of Vice\n'
+ '\n'
+ 'This General Public License does not permit incorporating your '
+ 'program into proprietary programs. If your program is a '
+ 'subroutine library, you may consider it more useful to permit '
+ 'linking proprietary applications with the library. If this is '
+ 'what you want to do, use the GNU Lesser General Public License '
+ 'instead of this License.')
self.license_text_edit.setPlainText('%s\n\n%s\n\n%s\n\n\n%s' % (copyright_note, licence, disclaimer, gpl_text))
self.about_notebook.setTabText(self.about_notebook.indexOf(self.license_tab),
- translate('OpenLP.AboutForm', 'License'))
+ translate('OpenLP.AboutForm', 'License'))
self.volunteer_button.setText(translate('OpenLP.AboutForm', 'Volunteer'))
=== modified file 'openlp/core/ui/advancedtab.py'
--- openlp/core/ui/advancedtab.py 2014-03-17 19:05:55 +0000
+++ openlp/core/ui/advancedtab.py 2014-03-21 21:59:15 +0000
@@ -263,7 +263,7 @@
"""
Setup the interface translation strings.
"""
- self.tabTitleVisible = UiStrings().Advanced
+ self.tab_title_visible = UiStrings().Advanced
self.ui_group_box.setTitle(translate('OpenLP.AdvancedTab', 'UI Settings'))
self.data_directory_group_box.setTitle(translate('OpenLP.AdvancedTab', 'Data Location'))
self.recent_label.setText(translate('OpenLP.AdvancedTab', 'Number of recent files to display:'))
@@ -319,7 +319,7 @@
translate('OpenLP.AdvancedTab', '<strong>WARNING:</strong> New data directory location contains '
'OpenLP data files. These files WILL be replaced during a copy.'))
self.display_workaround_group_box.setTitle(translate('OpenLP.AdvancedTab', 'Display Workarounds'))
- self.x11_bypass_check_box.setText(translate('OpenLP.AdvancedTab','Bypass X11 Window Manager'))
+ self.x11_bypass_check_box.setText(translate('OpenLP.AdvancedTab', 'Bypass X11 Window Manager'))
self.alternate_rows_check_box.setText(translate('OpenLP.AdvancedTab', 'Use alternating row colours in lists'))
# Slide Limits
self.slide_group_box.setTitle(translate('OpenLP.GeneralTab', 'Service Item Slide Limits'))
@@ -375,7 +375,8 @@
self.current_data_path = AppLocation.get_data_path()
if not os.path.exists(self.current_data_path):
log.error('Data path not found %s' % self.current_data_path)
- answer = QtGui.QMessageBox.critical(self, translate('OpenLP.AdvancedTab', 'Data Directory Error'),
+ answer = QtGui.QMessageBox.critical(
+ self, translate('OpenLP.AdvancedTab', 'Data Directory Error'),
translate('OpenLP.AdvancedTab', 'OpenLP data directory was not found\n\n%s\n\n'
'This data directory was previously changed from the OpenLP '
'default location. If the new location was on removable '
@@ -537,8 +538,9 @@
# Make sure they want to change the data.
answer = QtGui.QMessageBox.question(self, translate('OpenLP.AdvancedTab', 'Confirm Data Directory Change'),
translate('OpenLP.AdvancedTab', 'Are you sure you want to change the '
- 'location of the OpenLP data directory to:\n\n%s\n\nThe data directory '
- 'will be changed when OpenLP is closed.').replace('%s', new_data_path),
+ 'location of the OpenLP data directory to:\n\n%s\n\nThe data '
+ 'directory will be changed when OpenLP is closed.').
+ replace('%s', new_data_path),
QtGui.QMessageBox.StandardButtons(QtGui.QMessageBox.Yes |
QtGui.QMessageBox.No),
QtGui.QMessageBox.No)
@@ -561,8 +563,9 @@
# default.
answer = QtGui.QMessageBox.question(self, translate('OpenLP.AdvancedTab', 'Reset Data Directory'),
translate('OpenLP.AdvancedTab', 'Are you sure you want to change the '
- 'location of the OpenLP data directory to the default location?\n\nThis'
- ' location will be used after OpenLP is closed.'),
+ 'location of the OpenLP data directory to the default '
+ 'location?\n\nThis location will be used after OpenLP is '
+ 'closed.'),
QtGui.QMessageBox.StandardButtons(QtGui.QMessageBox.Yes |
QtGui.QMessageBox.No),
QtGui.QMessageBox.No)
@@ -588,7 +591,7 @@
else:
self.new_data_directory_has_files_label.hide()
- def check_data_overwrite(self, data_path ):
+ def check_data_overwrite(self, data_path):
"""
Check if there's already data in the target directory.
"""
@@ -602,8 +605,8 @@
translate('OpenLP.AdvancedTab',
'WARNING: \n\nThe location you have selected \n\n%s\n\n'
'appears to contain OpenLP data files. Do you wish to '
- 'replace these files with the current data files?').replace
- ('%s', os.path.abspath(data_path,)),
+ 'replace these files with the current data files?').
+ replace('%s', os.path.abspath(data_path,)),
QtGui.QMessageBox.StandardButtons(QtGui.QMessageBox.Yes |
QtGui.QMessageBox.No),
QtGui.QMessageBox.No)
=== modified file 'openlp/core/ui/exceptiondialog.py'
--- openlp/core/ui/exceptiondialog.py 2013-12-24 11:32:38 +0000
+++ openlp/core/ui/exceptiondialog.py 2014-03-21 21:59:15 +0000
@@ -83,9 +83,8 @@
self.attach_tile_button = create_button(exception_dialog, 'attach_tile_button',
icon=':/general/general_open.png',
click=self.on_attach_file_button_clicked)
- self.button_box = create_button_box(exception_dialog, 'button_box',
- ['close'], [self.send_report_button,
- self.save_report_button, self.attach_tile_button])
+ self.button_box = create_button_box(exception_dialog, 'button_box', ['close'],
+ [self.send_report_button, self.save_report_button, self.attach_tile_button])
self.exception_layout.addWidget(self.button_box)
self.retranslateUi(exception_dialog)
=== modified file 'openlp/core/ui/exceptionform.py'
--- openlp/core/ui/exceptionform.py 2014-03-16 21:25:23 +0000
+++ openlp/core/ui/exceptionform.py 2014-03-21 21:59:15 +0000
@@ -157,7 +157,8 @@
'--- Exception Traceback ---\n%s\n'
'--- System information ---\n%s\n'
'--- Library Versions ---\n%s\n')
- filename = QtGui.QFileDialog.getSaveFileName(self,
+ filename = QtGui.QFileDialog.getSaveFileName(
+ self,
translate('OpenLP.ExceptionForm', 'Save Crash Report'),
Settings().value(self.settings_section + '/last directory'),
translate('OpenLP.ExceptionForm', 'Text files (*.txt *.log *.text)'))
@@ -185,14 +186,13 @@
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.')
+ '*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 = ''
=== modified file 'openlp/core/ui/filerenameform.py'
--- openlp/core/ui/filerenameform.py 2014-03-16 21:25:23 +0000
+++ openlp/core/ui/filerenameform.py 2014-03-21 21:59:15 +0000
@@ -57,4 +57,4 @@
else:
self.setWindowTitle(translate('OpenLP.FileRenameForm', 'File Rename'))
self.file_name_edit.setFocus()
- return QtGui.QDialog.exec_(self)
\ No newline at end of file
+ return QtGui.QDialog.exec_(self)
=== modified file 'openlp/core/ui/firsttimeform.py'
--- openlp/core/ui/firsttimeform.py 2014-03-18 20:36:02 +0000
+++ openlp/core/ui/firsttimeform.py 2014-03-21 21:59:15 +0000
@@ -468,4 +468,4 @@
Set the status of a plugin.
"""
status = PluginStatus.Active if field.checkState() == QtCore.Qt.Checked else PluginStatus.Inactive
- Settings().setValue(tag, status)
\ No newline at end of file
+ Settings().setValue(tag, status)
=== modified file 'openlp/core/ui/formattingtagcontroller.py'
--- openlp/core/ui/formattingtagcontroller.py 2013-12-24 15:55:01 +0000
+++ openlp/core/ui/formattingtagcontroller.py 2014-03-21 21:59:15 +0000
@@ -174,4 +174,4 @@
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
- return None, None
\ No newline at end of file
+ return None, None
=== modified file 'openlp/core/ui/formattingtagdialog.py'
--- openlp/core/ui/formattingtagdialog.py 2013-12-24 08:56:50 +0000
+++ openlp/core/ui/formattingtagdialog.py 2014-03-21 21:59:15 +0000
@@ -102,8 +102,7 @@
self.edit_button_layout.addWidget(self.delete_button)
self.edit_button_layout.addStretch()
self.list_data_grid_layout.addLayout(self.edit_button_layout)
- self.button_box = create_button_box(formatting_tag_dialog, 'button_box',
- ['cancel', 'save', 'defaults'])
+ self.button_box = create_button_box(formatting_tag_dialog, 'button_box', ['cancel', 'save', 'defaults'])
self.save_button = self.button_box.button(QtGui.QDialogButtonBox.Save)
self.save_button.setObjectName('save_button')
self.restore_button = self.button_box.button(QtGui.QDialogButtonBox.RestoreDefaults)
=== modified file 'openlp/core/ui/formattingtagform.py'
--- openlp/core/ui/formattingtagform.py 2013-12-24 15:55:01 +0000
+++ openlp/core/ui/formattingtagform.py 2014-03-21 21:59:15 +0000
@@ -204,4 +204,3 @@
QtGui.QMessageBox.Ok)
#self.tag_table_widget.selectRow(pre_row - 1)
self.tag_table_widget.resizeRowsToContents()
-
=== modified file 'openlp/core/ui/generaltab.py'
--- openlp/core/ui/generaltab.py 2014-03-17 19:05:55 +0000
+++ openlp/core/ui/generaltab.py 2014-03-21 21:59:15 +0000
@@ -223,7 +223,8 @@
self.save_check_service_check_box.setText(translate('OpenLP.GeneralTab',
'Prompt to save before starting a new service'))
self.auto_unblank_check_box.setText(translate('OpenLP.GeneralTab', 'Unblank display when adding new live item'))
- self.auto_preview_check_box.setText(translate('OpenLP.GeneralTab', 'Automatically preview next item in service'))
+ self.auto_preview_check_box.setText(translate('OpenLP.GeneralTab',
+ 'Automatically preview next item in service'))
self.timeout_label.setText(translate('OpenLP.GeneralTab', 'Timed slide interval:'))
self.timeout_spin_box.setSuffix(translate('OpenLP.GeneralTab', ' sec'))
self.ccli_group_box.setTitle(translate('OpenLP.GeneralTab', 'CCLI Details'))
=== modified file 'openlp/core/ui/listpreviewwidget.py'
--- openlp/core/ui/listpreviewwidget.py 2014-03-16 21:25:23 +0000
+++ openlp/core/ui/listpreviewwidget.py 2014-03-21 21:59:15 +0000
@@ -160,4 +160,4 @@
"""
Returns the number of slides this widget holds.
"""
- return super(ListPreviewWidget, self).rowCount()
\ No newline at end of file
+ return super(ListPreviewWidget, self).rowCount()
=== modified file 'openlp/core/ui/maindisplay.py'
--- openlp/core/ui/maindisplay.py 2014-03-18 20:36:02 +0000
+++ openlp/core/ui/maindisplay.py 2014-03-21 21:59:15 +0000
@@ -601,4 +601,3 @@
:param signal: The signal to be fired
"""
QtCore.QObject.connect(self.media_object, signal, slot)
-
=== modified file 'openlp/core/ui/mainwindow.py'
--- openlp/core/ui/mainwindow.py 2014-03-18 20:36:02 +0000
+++ openlp/core/ui/mainwindow.py 2014-03-21 21:59:15 +0000
@@ -887,7 +887,7 @@
# application terminates normally. We need to exit without saving configuration.
QtGui.QMessageBox.information(self, translate('OpenLP.MainWindow', 'Import settings'),
translate('OpenLP.MainWindow', 'OpenLP will now close. Imported settings will '
- 'be applied the next time you start OpenLP.'),
+ 'be applied the next time you start OpenLP.'),
QtGui.QMessageBox.StandardButtons(QtGui.QMessageBox.Ok))
self.settings_imported = True
self.clean_up()
@@ -1042,8 +1042,8 @@
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.StandardButtons(QtGui.QMessageBox.Yes |
+ QtGui.QMessageBox.No),
QtGui.QMessageBox.Yes)
if ret == QtGui.QMessageBox.Yes:
self.clean_up()
@@ -1234,16 +1234,15 @@
self.recent_files_menu.clear()
for file_id, filename in enumerate(recent_files_to_display):
log.debug('Recent file name: %s', filename)
- action = create_action(self, '',
- text='&%d %s' % (file_id + 1,
+ action = create_action(self, '', text='&%d %s' % (file_id + 1,
os.path.splitext(os.path.basename(str(filename)))[0]), data=filename,
triggers=self.service_manager_contents.on_recent_service_clicked)
self.recent_files_menu.addAction(action)
clear_recent_files_action = create_action(self, '',
text=translate('OpenLP.MainWindow', 'Clear List', 'Clear List of '
- 'recent files'),
+ 'recent files'),
statustip=translate('OpenLP.MainWindow', 'Clear the list of recent '
- 'files.'),
+ 'files.'),
enabled=bool(self.recent_files),
triggers=self.clear_recent_file_menu)
add_actions(self.recent_files_menu, (None, clear_recent_files_action))
@@ -1352,8 +1351,8 @@
self.application.set_normal_cursor()
log.exception('Data copy failed %s' % str(why))
QtGui.QMessageBox.critical(self, translate('OpenLP.MainWindow', 'New Data Directory Error'),
- translate('OpenLP.MainWindow',
- 'OpenLP Data directory copy failed\n\n%s').replace('%s', str(why)),
+ translate('OpenLP.MainWindow', 'OpenLP Data directory copy failed\n\n%s').
+ replace('%s', str(why)),
QtGui.QMessageBox.StandardButtons(QtGui.QMessageBox.Ok))
return False
else:
@@ -1365,5 +1364,3 @@
if self.new_data_path == AppLocation.get_directory(AppLocation.DataDir):
settings.remove('advanced/data path')
self.application.set_normal_cursor()
-
-
=== modified file 'openlp/core/ui/media/mediacontroller.py'
--- openlp/core/ui/media/mediacontroller.py 2014-03-18 20:36:02 +0000
+++ openlp/core/ui/media/mediacontroller.py 2014-03-21 21:59:15 +0000
@@ -383,7 +383,7 @@
if not is_valid:
# Media could not be loaded correctly
critical_error_message_box(translate('MediaPlugin.MediaItem', 'Unsupported File'),
- translate('MediaPlugin.MediaItem', 'Unsupported File'))
+ translate('MediaPlugin.MediaItem', 'Unsupported File'))
return False
# dont care about actual theme, set a black background
if controller.is_live and not controller.media_info.is_background:
@@ -402,7 +402,7 @@
if autoplay:
if not self.media_play(controller):
critical_error_message_box(translate('MediaPlugin.MediaItem', 'Unsupported File'),
- translate('MediaPlugin.MediaItem', 'Unsupported File'))
+ translate('MediaPlugin.MediaItem', 'Unsupported File'))
return False
self.set_controls_visible(controller, True)
log.debug('use %s controller' % self.current_media_players[controller.controller_type])
@@ -644,9 +644,9 @@
return
display = self._define_display(self.live_controller)
if self.live_controller.controller_type in self.current_media_players and \
- self.current_media_players[self.live_controller.controller_type].state == MediaState.Playing:
- self.current_media_players[self.live_controller.controller_type].pause(display)
- self.current_media_players[self.live_controller.controller_type].set_visible(display, False)
+ self.current_media_players[self.live_controller.controller_type].state == MediaState.Playing:
+ self.current_media_players[self.live_controller.controller_type].pause(display)
+ self.current_media_players[self.live_controller.controller_type].set_visible(display, False)
def media_blank(self, msg):
"""
@@ -701,4 +701,4 @@
"""
if controller.is_live:
return controller.display
- return controller.preview_display
\ No newline at end of file
+ return controller.preview_display
=== modified file 'openlp/core/ui/media/mediaplayer.py'
--- openlp/core/ui/media/mediaplayer.py 2014-03-16 21:25:23 +0000
+++ openlp/core/ui/media/mediaplayer.py 2014-03-21 21:59:15 +0000
@@ -150,4 +150,4 @@
"""
Returns Information about the player
"""
- return ''
\ No newline at end of file
+ return ''
=== modified file 'openlp/core/ui/media/phononplayer.py'
--- openlp/core/ui/media/phononplayer.py 2014-03-17 19:05:55 +0000
+++ openlp/core/ui/media/phononplayer.py 2014-03-21 21:59:15 +0000
@@ -105,7 +105,7 @@
if ext not in mime_type_list:
mime_type_list.append(ext)
log.info('MediaPlugin: %s additional extensions: %s' %
- (mimetype, ' '.join(self.additional_extensions[mimetype])))
+ (mimetype, ' '.join(self.additional_extensions[mimetype])))
def setup(self, display):
"""
=== modified file 'openlp/core/ui/media/vlcplayer.py'
--- openlp/core/ui/media/vlcplayer.py 2013-12-31 20:29:03 +0000
+++ openlp/core/ui/media/vlcplayer.py 2014-03-21 21:59:15 +0000
@@ -291,4 +291,4 @@
'<br/> <strong>' + translate('Media.player', 'Audio') +
'</strong><br/>' + str(AUDIO_EXT) + '<br/><strong>' +
translate('Media.player', 'Video') + '</strong><br/>' +
- str(VIDEO_EXT) + '<br/>')
\ No newline at end of file
+ str(VIDEO_EXT) + '<br/>')
=== modified file 'openlp/core/ui/pluginform.py'
--- openlp/core/ui/pluginform.py 2014-03-16 21:25:23 +0000
+++ openlp/core/ui/pluginform.py 2014-03-21 21:59:15 +0000
@@ -154,4 +154,4 @@
elif self.active_plugin.status == PluginStatus.Disabled:
status_text = translate('OpenLP.PluginForm', '%s (Disabled)')
self.plugin_list_widget.currentItem().setText(
- status_text % self.active_plugin.name_strings['singular'])
\ No newline at end of file
+ status_text % self.active_plugin.name_strings['singular'])
=== modified file 'openlp/core/ui/printserviceform.py'
--- openlp/core/ui/printserviceform.py 2014-03-18 20:36:02 +0000
+++ openlp/core/ui/printserviceform.py 2014-03-21 21:59:15 +0000
@@ -394,4 +394,4 @@
return
for item in self.service_manager.service_items:
# Trigger Audit requests
- Registry().register_function('print_service_started', [item['service_item']])
\ No newline at end of file
+ Registry().register_function('print_service_started', [item['service_item']])
=== modified file 'openlp/core/ui/servicemanager.py'
--- openlp/core/ui/servicemanager.py 2014-03-16 21:25:23 +0000
+++ openlp/core/ui/servicemanager.py 2014-03-21 21:59:15 +0000
@@ -689,8 +689,8 @@
if self._file_name.endswith('oszl') or self.service_has_all_original_files:
file_name = QtGui.QFileDialog.getSaveFileName(self.main_window, UiStrings().SaveService, path,
translate('OpenLP.ServiceManager',
- 'OpenLP Service Files (*.osz);; OpenLP Service Files - lite '
- '(*.oszl)'))
+ 'OpenLP Service Files (*.osz);; OpenLP Service '
+ 'Files - lite (*.oszl)'))
else:
file_name = QtGui.QFileDialog.getSaveFileName(self.main_window, UiStrings().SaveService, path,
translate('OpenLP.ServiceManager',
@@ -783,7 +783,8 @@
self.log_exception('Service file is cannot be extracted as zip: %s' % file_name)
QtGui.QMessageBox.information(self, translate('OpenLP.ServiceManager', 'Corrupt File'),
translate('OpenLP.ServiceManager',
- 'This file is either corrupt or it is not an OpenLP 2 service file.'))
+ 'This file is either corrupt or it is not an OpenLP 2 service '
+ 'file.'))
self.application.set_normal_cursor()
return
finally:
@@ -1253,8 +1254,7 @@
tree_widget_item.setText(0, service_item_from_item.get_display_title())
tips = []
if service_item_from_item.temporary_edit:
- tips.append('<strong>%s:</strong> <em>%s</em>' %
- (translate('OpenLP.ServiceManager', 'Edit'),
+ tips.append('<strong>%s:</strong> <em>%s</em>' % (translate('OpenLP.ServiceManager', 'Edit'),
(translate('OpenLP.ServiceManager', 'Service copy only'))))
if service_item_from_item.theme and service_item_from_item.theme != -1:
tips.append('<strong>%s:</strong> <em>%s</em>' %
@@ -1492,9 +1492,9 @@
def find_service_item(self):
"""
- Finds the first selected ServiceItem in the list and returns the position of the service_item_from_item and its selected
- child item. For example, if the third child item (in the Slidecontroller known as slide) in the second service
- item is selected this will return::
+ Finds the first selected ServiceItem in the list and returns the position of the service_item_from_item and its
+ selected child item. For example, if the third child item (in the Slidecontroller known as slide) in the
+ second service item is selected this will return::
(1, 2)
"""
@@ -1632,4 +1632,4 @@
Print a Service Order Sheet.
"""
setting_dialog = PrintServiceForm()
- setting_dialog.exec_()
\ No newline at end of file
+ setting_dialog.exec_()
=== modified file 'openlp/core/ui/servicenoteform.py'
--- openlp/core/ui/servicenoteform.py 2014-03-16 21:25:23 +0000
+++ openlp/core/ui/servicenoteform.py 2014-03-21 21:59:15 +0000
@@ -74,4 +74,4 @@
"""
Translate the UI on the fly
"""
- self.setWindowTitle(translate('OpenLP.ServiceNoteForm', 'Service Item Notes'))
\ No newline at end of file
+ self.setWindowTitle(translate('OpenLP.ServiceNoteForm', 'Service Item Notes'))
=== modified file 'openlp/core/ui/settingsform.py'
--- openlp/core/ui/settingsform.py 2014-03-18 20:36:02 +0000
+++ openlp/core/ui/settingsform.py 2014-03-21 21:59:15 +0000
@@ -151,4 +151,4 @@
:param function: The function to be called
"""
if not function in self.processes:
- self.processes.append(function)
\ No newline at end of file
+ self.processes.append(function)
=== modified file 'openlp/core/ui/shortcutlistform.py'
--- openlp/core/ui/shortcutlistform.py 2014-03-18 20:36:02 +0000
+++ openlp/core/ui/shortcutlistform.py 2014-03-21 21:59:15 +0000
@@ -285,7 +285,7 @@
if QtGui.QMessageBox.question(self, translate('OpenLP.ShortcutListDialog', 'Restore Default Shortcuts'),
translate('OpenLP.ShortcutListDialog', 'Do you want to restore all '
'shortcuts to their defaults?'),
- QtGui.QMessageBox.StandardButtons(QtGui.QMessageBox.Yes |
+ QtGui.QMessageBox.StandardButtons(QtGui.QMessageBox.Yes |
QtGui.QMessageBox.No)) == QtGui.QMessageBox.No:
return
self._adjust_button(self.primary_push_button, False, text='')
=== modified file 'openlp/core/ui/slidecontroller.py'
--- openlp/core/ui/slidecontroller.py 2014-03-13 20:08:47 +0000
+++ openlp/core/ui/slidecontroller.py 2014-03-21 21:59:15 +0000
@@ -170,14 +170,14 @@
size_toolbar_policy.setHeightForWidth(self.toolbar.sizePolicy().hasHeightForWidth())
self.toolbar.setSizePolicy(size_toolbar_policy)
self.previous_item = create_action(self, 'previousItem_' + self.type_prefix,
- text=translate('OpenLP.SlideController', 'Previous Slide'),
+ text=translate('OpenLP.SlideController', 'Previous Slide'),
icon=':/slides/slide_previous.png',
tooltip=translate('OpenLP.SlideController', 'Move to previous.'),
can_shortcuts=True, context=QtCore.Qt.WidgetWithChildrenShortcut,
category=self.category, triggers=self.on_slide_selected_previous)
self.toolbar.addAction(self.previous_item)
self.next_item = create_action(self, 'nextItem_' + self.type_prefix,
- text=translate('OpenLP.SlideController', 'Next Slide'),
+ text=translate('OpenLP.SlideController', 'Next Slide'),
icon=':/slides/slide_next.png',
tooltip=translate('OpenLP.SlideController', 'Move to next.'),
can_shortcuts=True, context=QtCore.Qt.WidgetWithChildrenShortcut,
@@ -195,17 +195,17 @@
self.hide_menu.setMenu(QtGui.QMenu(translate('OpenLP.SlideController', 'Hide'), self.toolbar))
self.toolbar.add_toolbar_widget(self.hide_menu)
self.blank_screen = create_action(self, 'blankScreen',
- text=translate('OpenLP.SlideController', 'Blank Screen'),
+ text=translate('OpenLP.SlideController', 'Blank Screen'),
icon=':/slides/slide_blank.png',
- checked=False, can_shortcuts=True, category=self.category,
+ checked=False, can_shortcuts=True, category=self.category,
triggers=self.on_blank_display)
self.theme_screen = create_action(self, 'themeScreen',
- text=translate('OpenLP.SlideController', 'Blank to Theme'),
+ text=translate('OpenLP.SlideController', 'Blank to Theme'),
icon=':/slides/slide_theme.png',
checked=False, can_shortcuts=True, category=self.category,
triggers=self.on_theme_display)
self.desktop_screen = create_action(self, 'desktopScreen',
- text=translate('OpenLP.SlideController', 'Show Desktop'),
+ text=translate('OpenLP.SlideController', 'Show Desktop'),
icon=':/slides/slide_desktop.png',
checked=False, can_shortcuts=True, category=self.category,
triggers=self.on_hide_display)
@@ -255,15 +255,16 @@
self.toolbar.add_toolbar_widget(self.delay_spin_box)
else:
self.toolbar.add_toolbar_action('goLive', icon=':/general/general_live.png',
- tooltip=translate('OpenLP.SlideController', 'Move to live.'),
+ tooltip=translate('OpenLP.SlideController', 'Move to live.'),
triggers=self.on_go_live)
self.toolbar.add_toolbar_action('addToService', icon=':/general/general_add.png',
- tooltip=translate('OpenLP.SlideController', 'Add to Service.'),
+ tooltip=translate('OpenLP.SlideController', 'Add to Service.'),
triggers=self.on_preview_add_to_service)
self.toolbar.addSeparator()
self.toolbar.add_toolbar_action('editSong', icon=':/general/general_edit.png',
- tooltip=translate('OpenLP.SlideController', 'Edit and reload song preview.')
- , triggers=self.on_edit_song)
+ tooltip=translate('OpenLP.SlideController',
+ 'Edit and reload song preview.'),
+ triggers=self.on_edit_song)
self.controller_layout.addWidget(self.toolbar)
# Build the Media Toolbar
self.media_controller.register_controller(self)
@@ -355,7 +356,7 @@
{'key': 'O', 'configurable': True, 'text': translate('OpenLP.SlideController', 'Go to "Other"')}
]
shortcuts.extend([{'key': str(number)} for number in range(10)])
- self.controller.addActions([create_action(self, 'shortcutAction_%s' % s['key'],
+ self.controller.addActions([create_action(self, 'shortcutAction_%s' % s['key'],
text=s.get('text'),
can_shortcuts=True,
context=QtCore.Qt.WidgetWithChildrenShortcut,
@@ -394,9 +395,9 @@
"""
Called, when a shortcut has been activated to jump to a chorus, verse, etc.
- **Note**: This implementation is based on shortcuts. But it rather works like "key sequenes". You have to
+ **Note**: This implementation is based on shortcuts. But it rather works like "key sequenes". You have to
press one key after the other and **not** at the same time.
- For example to jump to "V3" you have to press "V" and afterwards but within a time frame of 350ms
+ For example to jump to "V3" you have to press "V" and afterwards but within a time frame of 350ms
you have to press "3".
"""
try:
@@ -456,17 +457,17 @@
"""
self.previous_service = create_action(parent, 'previousService',
text=translate('OpenLP.SlideController', 'Previous Service'),
- can_shortcuts=True, context=QtCore.Qt.WidgetWithChildrenShortcut,
+ can_shortcuts=True, context=QtCore.Qt.WidgetWithChildrenShortcut,
category=self.category,
triggers=self.service_previous)
self.next_service = create_action(parent, 'nextService',
text=translate('OpenLP.SlideController', 'Next Service'),
- can_shortcuts=True, context=QtCore.Qt.WidgetWithChildrenShortcut,
+ can_shortcuts=True, context=QtCore.Qt.WidgetWithChildrenShortcut,
category=self.category,
triggers=self.service_next)
self.escape_item = create_action(parent, 'escapeItem',
text=translate('OpenLP.SlideController', 'Escape Item'),
- can_shortcuts=True, context=QtCore.Qt.WidgetWithChildrenShortcut,
+ can_shortcuts=True, context=QtCore.Qt.WidgetWithChildrenShortcut,
category=self.category,
triggers=self.live_escape)
@@ -1325,7 +1326,7 @@
"""
Update how much time is remaining
- :param time: the time remainings
+ :param time: the time remaining
"""
seconds = self.display.audio_player.media_object.remainingTime() // 1000
minutes = seconds // 60
=== modified file 'openlp/core/ui/starttimeform.py'
--- openlp/core/ui/starttimeform.py 2014-03-16 21:25:23 +0000
+++ openlp/core/ui/starttimeform.py 2014-03-21 21:59:15 +0000
@@ -74,12 +74,12 @@
self.minute_finish_spin_box.value() * 60 + self.second_finish_spin_box.value()
if end > self.item['service_item'].media_length:
critical_error_message_box(title=translate('OpenLP.StartTime_form', 'Time Validation Error'),
- message=translate('OpenLP.StartTime_form',
+ message=translate('OpenLP.StartTime_form',
'Finish time is set after the end of the media item'))
return
elif start > end:
critical_error_message_box(title=translate('OpenLP.StartTime_form', 'Time Validation Error'),
- message=translate('OpenLP.StartTime_form',
+ message=translate('OpenLP.StartTime_form',
'Start time is after the finish time of the media item'))
return
self.item['service_item'].start_time = start
@@ -94,4 +94,4 @@
seconds -= 3600 * hours
minutes = seconds // 60
seconds -= 60 * minutes
- return hours, minutes, seconds
\ No newline at end of file
+ return hours, minutes, seconds
=== modified file 'openlp/core/ui/themeform.py'
--- openlp/core/ui/themeform.py 2014-03-18 20:36:02 +0000
+++ openlp/core/ui/themeform.py 2014-03-21 21:59:15 +0000
@@ -180,7 +180,7 @@
self.theme.background_type == background_image and is_not_image_file(self.theme.background_filename):
QtGui.QMessageBox.critical(self, translate('OpenLP.ThemeWizard', 'Background Image Empty'),
translate('OpenLP.ThemeWizard', '_you have not selected a '
- 'background image. Please select one before continuing.'))
+ 'background image. Please select one before continuing.'))
return False
else:
return True
@@ -540,4 +540,4 @@
new_color = QtGui.QColorDialog.getColor(QtGui.QColor(field), self)
if new_color.isValid():
field = new_color.name()
- return field
\ No newline at end of file
+ return field
=== modified file 'openlp/core/ui/thememanager.py'
--- openlp/core/ui/thememanager.py 2014-03-16 21:25:23 +0000
+++ openlp/core/ui/thememanager.py 2014-03-21 21:59:15 +0000
@@ -517,7 +517,7 @@
"""
ret = QtGui.QMessageBox.question(self, translate('OpenLP.ThemeManager', 'Theme Already Exists'),
translate('OpenLP.ThemeManager',
- 'Theme %s already exists. Do you want to replace it?')
+ 'Theme %s already exists. Do you want to replace it?')
.replace('%s', theme_name),
QtGui.QMessageBox.StandardButtons(QtGui.QMessageBox.Yes |
QtGui.QMessageBox.No),
@@ -753,4 +753,4 @@
% (theme, plugin.name))
return False
return True
- return False
\ No newline at end of file
+ return False
=== modified file 'openlp/core/ui/themewizard.py'
--- openlp/core/ui/themewizard.py 2013-12-26 17:36:00 +0000
+++ openlp/core/ui/themewizard.py 2014-03-21 21:59:15 +0000
@@ -385,10 +385,10 @@
QtCore.SLOT('setDisabled(bool)'))
QtCore.QObject.connect(self.footer_position_check_box, QtCore.SIGNAL('toggled(bool)'), self.footer_y_spin_box,
QtCore.SLOT('setDisabled(bool)'))
- QtCore.QObject.connect(self.footer_position_check_box, QtCore.SIGNAL('toggled(bool)'), self.footer_width_spin_box,
- QtCore.SLOT('setDisabled(bool)'))
- QtCore.QObject.connect(self.footer_position_check_box, QtCore.SIGNAL('toggled(bool)'), self.footer_height_spin_box,
- QtCore.SLOT('setDisabled(bool)'))
+ QtCore.QObject.connect(self.footer_position_check_box, QtCore.SIGNAL('toggled(bool)'),
+ self.footer_width_spin_box, QtCore.SLOT('setDisabled(bool)'))
+ QtCore.QObject.connect(self.footer_position_check_box, QtCore.SIGNAL('toggled(bool)'),
+ self.footer_height_spin_box, QtCore.SLOT('setDisabled(bool)'))
def retranslateUi(self, themeWizard):
"""
@@ -409,15 +409,18 @@
self.background_combo_box.setItemText(BackgroundType.Gradient,
translate('OpenLP.ThemeWizard', 'Gradient'))
self.background_combo_box.setItemText(BackgroundType.Image, UiStrings().Image)
- self.background_combo_box.setItemText(BackgroundType.Transparent, translate('OpenLP.ThemeWizard', 'Transparent'))
+ self.background_combo_box.setItemText(BackgroundType.Transparent,
+ translate('OpenLP.ThemeWizard', 'Transparent'))
self.color_label.setText(translate('OpenLP.ThemeWizard', 'color:'))
self.gradient_start_label.setText(translate('OpenLP.ThemeWizard', 'Starting color:'))
self.gradient_end_label.setText(translate('OpenLP.ThemeWizard', 'Ending color:'))
self.gradient_type_label.setText(translate('OpenLP.ThemeWizard', 'Gradient:'))
self.gradient_combo_box.setItemText(BackgroundGradientType.Horizontal,
translate('OpenLP.ThemeWizard', 'Horizontal'))
- self.gradient_combo_box.setItemText(BackgroundGradientType.Vertical, translate('OpenLP.ThemeWizard', 'Vertical'))
- self.gradient_combo_box.setItemText(BackgroundGradientType.Circular, translate('OpenLP.ThemeWizard', 'Circular'))
+ self.gradient_combo_box.setItemText(BackgroundGradientType.Vertical,
+ translate('OpenLP.ThemeWizard', 'Vertical'))
+ self.gradient_combo_box.setItemText(BackgroundGradientType.Circular,
+ translate('OpenLP.ThemeWizard', 'Circular'))
self.gradient_combo_box.setItemText(BackgroundGradientType.LeftTop,
translate('OpenLP.ThemeWizard', 'Top Left - Bottom Right'))
self.gradient_combo_box.setItemText(BackgroundGradientType.LeftBottom,
@@ -486,6 +489,6 @@
self.preview_page.setSubTitle(translate('OpenLP.ThemeWizard', 'Preview the theme and save it.'))
self.theme_name_label.setText(translate('OpenLP.ThemeWizard', 'Theme name:'))
# Align all QFormLayouts towards each other.
- label_width = max(self.background_label.minimumSizeHint().width(),
+ label_width = max(self.background_label.minimumSizeHint().width(),
self.horizontal_label.minimumSizeHint().width())
self.spacer.changeSize(label_width, 0, QtGui.QSizePolicy.Fixed, QtGui.QSizePolicy.Fixed)
=== modified file 'openlp/core/ui/wizard.py'
--- openlp/core/ui/wizard.py 2014-03-18 20:36:02 +0000
+++ openlp/core/ui/wizard.py 2014-03-21 21:59:15 +0000
@@ -303,4 +303,4 @@
QtGui.QFileDialog.ShowDirsOnly)
if folder:
editbox.setText(folder)
- Settings().setValue(self.plugin.settings_section + '/' + setting_name, folder)
\ No newline at end of file
+ Settings().setValue(self.plugin.settings_section + '/' + setting_name, folder)
=== modified file 'openlp/core/utils/__init__.py'
--- openlp/core/utils/__init__.py 2014-03-17 19:05:55 +0000
+++ openlp/core/utils/__init__.py 2014-03-21 21:59:15 +0000
@@ -72,13 +72,18 @@
'Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/28.0.1500.71 Safari/537.36'
],
'darwin': [
- 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_3) AppleWebKit/537.31 (KHTML, like Gecko) Chrome/26.0.1410.43 Safari/537.31',
- 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_3) AppleWebKit/536.11 (KHTML, like Gecko) Chrome/20.0.1132.57 Safari/536.11',
- 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_6_8) AppleWebKit/536.11 (KHTML, like Gecko) Chrome/20.0.1132.47 Safari/536.11',
+ 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_3) AppleWebKit/537.31 (KHTML, like Gecko) '
+ 'Chrome/26.0.1410.43 Safari/537.31',
+ 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_3) AppleWebKit/536.11 (KHTML, like Gecko) '
+ 'Chrome/20.0.1132.57 Safari/536.11',
+ 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_6_8) AppleWebKit/536.11 (KHTML, like Gecko) '
+ 'Chrome/20.0.1132.47 Safari/536.11',
],
'linux2': [
- 'Mozilla/5.0 (X11; Linux i686) AppleWebKit/537.22 (KHTML, like Gecko) Ubuntu Chromium/25.0.1364.160 Chrome/25.0.1364.160 Safari/537.22',
- 'Mozilla/5.0 (X11; CrOS armv7l 2913.260.0) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.99 Safari/537.11',
+ 'Mozilla/5.0 (X11; Linux i686) AppleWebKit/537.22 (KHTML, like Gecko) Ubuntu Chromium/25.0.1364.160 '
+ 'Chrome/25.0.1364.160 Safari/537.22',
+ 'Mozilla/5.0 (X11; CrOS armv7l 2913.260.0) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.99 '
+ 'Safari/537.11',
'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.27 (KHTML, like Gecko) Chrome/26.0.1389.0 Safari/537.27'
],
'default': [
@@ -144,9 +149,9 @@
# If they are equal, then this tree is tarball with the source for the release. We do not want the revision
# number in the full version.
if tree_revision == tag_revision:
- full_version = tag_version
+ full_version = tag_version
else:
- full_version = '%s-bzr%s' % (tag_version, tree_revision)
+ full_version = '%s-bzr%s' % (tag_version, tree_revision)
else:
# We're not running the development version, let's use the file.
filepath = AppLocation.get_directory(AppLocation.VersionDir)
=== modified file 'openlp/core/utils/actions.py'
--- openlp/core/utils/actions.py 2014-03-17 19:05:55 +0000
+++ openlp/core/utils/actions.py 2014-03-21 21:59:15 +0000
@@ -295,7 +295,7 @@
ActionList.shortcut_map[shortcuts[1]] = actions
else:
log.warn('Shortcut "%s" is removed from "%s" because another action already uses this shortcut.' %
- (shortcuts[1], action.objectName()))
+ (shortcuts[1], action.objectName()))
shortcuts.remove(shortcuts[1])
# Check the primary shortcut.
existing_actions = ActionList.shortcut_map.get(shortcuts[0], [])
@@ -306,7 +306,7 @@
ActionList.shortcut_map[shortcuts[0]] = actions
else:
log.warn('Shortcut "%s" is removed from "%s" because another action already uses this shortcut.' %
- (shortcuts[0], action.objectName()))
+ (shortcuts[0], action.objectName()))
shortcuts.remove(shortcuts[0])
action.setShortcuts([QtGui.QKeySequence(shortcut) for shortcut in shortcuts])
=== modified file 'openlp/core/utils/languagemanager.py'
--- openlp/core/utils/languagemanager.py 2014-03-17 19:05:55 +0000
+++ openlp/core/utils/languagemanager.py 2014-03-21 21:59:15 +0000
@@ -126,8 +126,9 @@
log.info('Language file: \'%s\' written to conf file' % language)
if message:
QtGui.QMessageBox.information(None,
- translate('OpenLP.LanguageManager', 'Language'),
- translate('OpenLP.LanguageManager', 'Please restart OpenLP to use your new language setting.'))
+ translate('OpenLP.LanguageManager', 'Language'),
+ translate('OpenLP.LanguageManager', 'Please restart OpenLP to use your new '
+ 'language setting.'))
@staticmethod
def init_qm_list():
=== modified file 'openlp/plugins/alerts/alertsplugin.py'
--- openlp/plugins/alerts/alertsplugin.py 2014-03-16 21:25:23 +0000
+++ openlp/plugins/alerts/alertsplugin.py 2014-03-21 21:59:15 +0000
@@ -246,4 +246,4 @@
align = VerticalType.Names[self.settings_tab.location]
frame.evaluateJavaScript('update_css("%s", "%s", "%s", "%s", "%s")' %
(align, self.settings_tab.font_face, self.settings_tab.font_size,
- self.settings_tab.font_color, self.settings_tab.background_color))
+ self.settings_tab.font_color, self.settings_tab.background_color))
=== modified file 'openlp/plugins/alerts/forms/alertform.py'
--- openlp/plugins/alerts/forms/alertform.py 2014-01-11 21:46:20 +0000
+++ openlp/plugins/alerts/forms/alertform.py 2014-03-21 21:59:15 +0000
@@ -46,7 +46,7 @@
self.manager = plugin.manager
self.plugin = plugin
self.item_id = None
- super(AlertForm, self).__init__( Registry().get('main_window'))
+ super(AlertForm, self).__init__(Registry().get('main_window'))
self.setupUi(self)
self.display_button.clicked.connect(self.on_display_clicked)
self.display_close_button.clicked.connect(self.on_display_close_clicked)
=== modified file 'openlp/plugins/alerts/lib/alertsmanager.py'
--- openlp/plugins/alerts/lib/alertsmanager.py 2014-03-16 21:25:23 +0000
+++ openlp/plugins/alerts/lib/alertsmanager.py 2014-03-21 21:59:15 +0000
@@ -97,4 +97,4 @@
self.live_controller.display.alert('', alert_tab.location)
self.killTimer(self.timer_id)
self.timer_id = 0
- self.generate_alert()
\ No newline at end of file
+ self.generate_alert()
=== modified file 'openlp/plugins/bibles/bibleplugin.py'
--- openlp/plugins/bibles/bibleplugin.py 2014-03-17 19:05:55 +0000
+++ openlp/plugins/bibles/bibleplugin.py 2014-03-21 21:59:15 +0000
@@ -113,8 +113,8 @@
"""
super(BiblePlugin, self).app_startup()
if self.manager.old_bible_databases:
- if QtGui.QMessageBox.information(self.main_window,
- translate('OpenLP', 'Information'),
+ if QtGui.QMessageBox.information(
+ self.main_window, translate('OpenLP', 'Information'),
translate('OpenLP', 'Bible format has changed.\nYou have to upgrade your existing Bibles.\n'
'Should OpenLP upgrade now?'),
QtGui.QMessageBox.StandardButtons(QtGui.QMessageBox.Yes | QtGui.QMessageBox.No)) == \
=== modified file 'openlp/plugins/bibles/forms/bibleimportform.py'
--- openlp/plugins/bibles/forms/bibleimportform.py 2014-03-17 19:05:55 +0000
+++ openlp/plugins/bibles/forms/bibleimportform.py 2014-03-21 21:59:15 +0000
@@ -44,6 +44,7 @@
log = logging.getLogger(__name__)
+
class WebDownload(object):
"""
Provides an enumeration for the web bible types available to OpenLP.
@@ -81,258 +82,257 @@
Set up the UI for the bible wizard.
"""
super(BibleImportForm, self).setupUi(image)
- self.formatComboBox.currentIndexChanged.connect(self.onCurrentIndexChanged)
+ self.format_combo_box.currentIndexChanged.connect(self.on_current_index_changed)
- def onCurrentIndexChanged(self, index):
+ def on_current_index_changed(self, index):
"""
Called when the format combo box's index changed. We have to check if
the import is available and accordingly to disable or enable the next
button.
"""
- self.selectStack.setCurrentIndex(index)
+ self.select_stack.setCurrentIndex(index)
def custom_init(self):
"""
Perform any custom initialisation for bible importing.
"""
self.manager.set_process_dialog(self)
- self.loadWebBibles()
+ self.load_Web_Bibles()
self.restart()
- self.selectStack.setCurrentIndex(0)
+ self.select_stack.setCurrentIndex(0)
def custom_signals(self):
"""
Set up the signals used in the bible importer.
"""
- self.webSourceComboBox.currentIndexChanged.connect(self.onWebSourceComboBoxIndexChanged)
- self.osisBrowseButton.clicked.connect(self.onOsisBrowseButtonClicked)
- self.csvBooksButton.clicked.connect(self.onCsvBooksBrowseButtonClicked)
- self.csvVersesButton.clicked.connect(self.onCsvVersesBrowseButtonClicked)
- self.openSongBrowseButton.clicked.connect(self.onOpenSongBrowseButtonClicked)
+ self.web_source_combo_box.currentIndexChanged.connect(self.on_web_source_combo_box_index_changed)
+ self.osis_browse_button.clicked.connect(self.on_osis_browse_button_clicked)
+ self.csv_books_button.clicked.connect(self.on_csv_books_browse_button_clicked)
+ self.csv_verses_button.clicked.connect(self.on_csv_verses_browse_button_clicked)
+ self.open_song_browse_button.clicked.connect(self.on_open_song_browse_button_clicked)
def add_custom_pages(self):
"""
Add the bible import specific wizard pages.
"""
# Select Page
- self.selectPage = QtGui.QWizardPage()
- self.selectPage.setObjectName('SelectPage')
- self.selectPageLayout = QtGui.QVBoxLayout(self.selectPage)
- self.selectPageLayout.setObjectName('SelectPageLayout')
- self.formatLayout = QtGui.QFormLayout()
- self.formatLayout.setObjectName('FormatLayout')
- self.formatLabel = QtGui.QLabel(self.selectPage)
- self.formatLabel.setObjectName('FormatLabel')
- self.formatComboBox = QtGui.QComboBox(self.selectPage)
- self.formatComboBox.addItems(['', '', '', ''])
- self.formatComboBox.setObjectName('FormatComboBox')
- self.formatLayout.addRow(self.formatLabel, self.formatComboBox)
+ self.select_page = QtGui.QWizardPage()
+ self.select_page.setObjectName('SelectPage')
+ self.select_page_layout = QtGui.QVBoxLayout(self.select_page)
+ self.select_page_layout.setObjectName('SelectPageLayout')
+ self.format_layout = QtGui.QFormLayout()
+ self.format_layout.setObjectName('FormatLayout')
+ self.format_label = QtGui.QLabel(self.select_page)
+ self.format_label.setObjectName('FormatLabel')
+ self.format_combo_box = QtGui.QComboBox(self.select_page)
+ self.format_combo_box.addItems(['', '', '', ''])
+ self.format_combo_box.setObjectName('FormatComboBox')
+ self.format_layout.addRow(self.format_label, self.format_combo_box)
self.spacer = QtGui.QSpacerItem(10, 0, QtGui.QSizePolicy.Fixed, QtGui.QSizePolicy.Minimum)
- self.formatLayout.setItem(1, QtGui.QFormLayout.LabelRole, self.spacer)
- self.selectPageLayout.addLayout(self.formatLayout)
- self.selectStack = QtGui.QStackedLayout()
- self.selectStack.setObjectName('SelectStack')
- self.osisWidget = QtGui.QWidget(self.selectPage)
- self.osisWidget.setObjectName('OsisWidget')
- self.osisLayout = QtGui.QFormLayout(self.osisWidget)
- self.osisLayout.setMargin(0)
- self.osisLayout.setObjectName('OsisLayout')
- self.osisFileLabel = QtGui.QLabel(self.osisWidget)
- self.osisFileLabel.setObjectName('OsisFileLabel')
- self.osisFileLayout = QtGui.QHBoxLayout()
- self.osisFileLayout.setObjectName('OsisFileLayout')
- self.osisFileEdit = QtGui.QLineEdit(self.osisWidget)
- self.osisFileEdit.setObjectName('OsisFileEdit')
- self.osisFileLayout.addWidget(self.osisFileEdit)
- self.osisBrowseButton = QtGui.QToolButton(self.osisWidget)
- self.osisBrowseButton.setIcon(self.open_icon)
- self.osisBrowseButton.setObjectName('OsisBrowseButton')
- self.osisFileLayout.addWidget(self.osisBrowseButton)
- self.osisLayout.addRow(self.osisFileLabel, self.osisFileLayout)
- self.osisLayout.setItem(1, QtGui.QFormLayout.LabelRole, self.spacer)
- self.selectStack.addWidget(self.osisWidget)
- self.csvWidget = QtGui.QWidget(self.selectPage)
- self.csvWidget.setObjectName('CsvWidget')
- self.csvLayout = QtGui.QFormLayout(self.csvWidget)
- self.csvLayout.setMargin(0)
- self.csvLayout.setObjectName('CsvLayout')
- self.csvBooksLabel = QtGui.QLabel(self.csvWidget)
- self.csvBooksLabel.setObjectName('CsvBooksLabel')
- self.csvBooksLayout = QtGui.QHBoxLayout()
- self.csvBooksLayout.setObjectName('CsvBooksLayout')
- self.csvBooksEdit = QtGui.QLineEdit(self.csvWidget)
- self.csvBooksEdit.setObjectName('CsvBooksEdit')
- self.csvBooksLayout.addWidget(self.csvBooksEdit)
- self.csvBooksButton = QtGui.QToolButton(self.csvWidget)
- self.csvBooksButton.setIcon(self.open_icon)
- self.csvBooksButton.setObjectName('CsvBooksButton')
- self.csvBooksLayout.addWidget(self.csvBooksButton)
- self.csvLayout.addRow(self.csvBooksLabel, self.csvBooksLayout)
- self.csvVersesLabel = QtGui.QLabel(self.csvWidget)
- self.csvVersesLabel.setObjectName('CsvVersesLabel')
- self.csvVersesLayout = QtGui.QHBoxLayout()
- self.csvVersesLayout.setObjectName('CsvVersesLayout')
- self.csvVersesEdit = QtGui.QLineEdit(self.csvWidget)
- self.csvVersesEdit.setObjectName('CsvVersesEdit')
- self.csvVersesLayout.addWidget(self.csvVersesEdit)
- self.csvVersesButton = QtGui.QToolButton(self.csvWidget)
- self.csvVersesButton.setIcon(self.open_icon)
- self.csvVersesButton.setObjectName('CsvVersesButton')
- self.csvVersesLayout.addWidget(self.csvVersesButton)
- self.csvLayout.addRow(self.csvVersesLabel, self.csvVersesLayout)
- self.csvLayout.setItem(3, QtGui.QFormLayout.LabelRole, self.spacer)
- self.selectStack.addWidget(self.csvWidget)
- self.openSongWidget = QtGui.QWidget(self.selectPage)
- self.openSongWidget.setObjectName('OpenSongWidget')
- self.openSongLayout = QtGui.QFormLayout(self.openSongWidget)
- self.openSongLayout.setMargin(0)
- self.openSongLayout.setObjectName('OpenSongLayout')
- self.openSongFileLabel = QtGui.QLabel(self.openSongWidget)
- self.openSongFileLabel.setObjectName('OpenSongFileLabel')
- self.openSongFileLayout = QtGui.QHBoxLayout()
- self.openSongFileLayout.setObjectName('OpenSongFileLayout')
- self.openSongFileEdit = QtGui.QLineEdit(self.openSongWidget)
- self.openSongFileEdit.setObjectName('OpenSongFileEdit')
- self.openSongFileLayout.addWidget(self.openSongFileEdit)
- self.openSongBrowseButton = QtGui.QToolButton(self.openSongWidget)
- self.openSongBrowseButton.setIcon(self.open_icon)
- self.openSongBrowseButton.setObjectName('OpenSongBrowseButton')
- self.openSongFileLayout.addWidget(self.openSongBrowseButton)
- self.openSongLayout.addRow(self.openSongFileLabel, self.openSongFileLayout)
- self.openSongLayout.setItem(1, QtGui.QFormLayout.LabelRole, self.spacer)
- self.selectStack.addWidget(self.openSongWidget)
- self.webTabWidget = QtGui.QTabWidget(self.selectPage)
- self.webTabWidget.setObjectName('WebTabWidget')
- self.webBibleTab = QtGui.QWidget()
- self.webBibleTab.setObjectName('WebBibleTab')
- self.webBibleLayout = QtGui.QFormLayout(self.webBibleTab)
- self.webBibleLayout.setObjectName('WebBibleLayout')
- self.webSourceLabel = QtGui.QLabel(self.webBibleTab)
- self.webSourceLabel.setObjectName('WebSourceLabel')
- self.webBibleLayout.setWidget(0, QtGui.QFormLayout.LabelRole, self.webSourceLabel)
- self.webSourceComboBox = QtGui.QComboBox(self.webBibleTab)
- self.webSourceComboBox.setObjectName('WebSourceComboBox')
- self.webSourceComboBox.addItems(['', '', ''])
- self.webBibleLayout.setWidget(0, QtGui.QFormLayout.FieldRole, self.webSourceComboBox)
- self.webTranslationLabel = QtGui.QLabel(self.webBibleTab)
- self.webTranslationLabel.setObjectName('webTranslationLabel')
- self.webBibleLayout.setWidget(1, QtGui.QFormLayout.LabelRole, self.webTranslationLabel)
- self.webTranslationComboBox = QtGui.QComboBox(self.webBibleTab)
- self.webTranslationComboBox.setSizeAdjustPolicy(QtGui.QComboBox.AdjustToContents)
- self.webTranslationComboBox.setObjectName('WebTranslationComboBox')
- self.webBibleLayout.setWidget(1, QtGui.QFormLayout.FieldRole, self.webTranslationComboBox)
- self.webTabWidget.addTab(self.webBibleTab, '')
- self.webProxyTab = QtGui.QWidget()
- self.webProxyTab.setObjectName('WebProxyTab')
- self.webProxyLayout = QtGui.QFormLayout(self.webProxyTab)
- self.webProxyLayout.setObjectName('WebProxyLayout')
- self.webServerLabel = QtGui.QLabel(self.webProxyTab)
- self.webServerLabel.setObjectName('WebServerLabel')
- self.webProxyLayout.setWidget(0, QtGui.QFormLayout.LabelRole, self.webServerLabel)
- self.webServerEdit = QtGui.QLineEdit(self.webProxyTab)
- self.webServerEdit.setObjectName('WebServerEdit')
- self.webProxyLayout.setWidget(0, QtGui.QFormLayout.FieldRole, self.webServerEdit)
- self.webUserLabel = QtGui.QLabel(self.webProxyTab)
- self.webUserLabel.setObjectName('WebUserLabel')
- self.webProxyLayout.setWidget(1, QtGui.QFormLayout.LabelRole, self.webUserLabel)
- self.webUserEdit = QtGui.QLineEdit(self.webProxyTab)
- self.webUserEdit.setObjectName('WebUserEdit')
- self.webProxyLayout.setWidget(1, QtGui.QFormLayout.FieldRole, self.webUserEdit)
- self.webPasswordLabel = QtGui.QLabel(self.webProxyTab)
- self.webPasswordLabel.setObjectName('WebPasswordLabel')
- self.webProxyLayout.setWidget(2, QtGui.QFormLayout.LabelRole, self.webPasswordLabel)
- self.webPasswordEdit = QtGui.QLineEdit(self.webProxyTab)
- self.webPasswordEdit.setObjectName('WebPasswordEdit')
- self.webProxyLayout.setWidget(2, QtGui.QFormLayout.FieldRole, self.webPasswordEdit)
- self.webTabWidget.addTab(self.webProxyTab, '')
- self.selectStack.addWidget(self.webTabWidget)
- self.selectPageLayout.addLayout(self.selectStack)
- self.addPage(self.selectPage)
+ self.format_layout.setItem(1, QtGui.QFormLayout.LabelRole, self.spacer)
+ self.select_page_layout.addLayout(self.format_layout)
+ self.select_stack = QtGui.QStackedLayout()
+ self.select_stack.setObjectName('SelectStack')
+ self.osis_widget = QtGui.QWidget(self.select_page)
+ self.osis_widget.setObjectName('OsisWidget')
+ self.osis_layout = QtGui.QFormLayout(self.osis_widget)
+ self.osis_layout.setMargin(0)
+ self.osis_layout.setObjectName('OsisLayout')
+ self.osis_file_label = QtGui.QLabel(self.osis_widget)
+ self.osis_file_label.setObjectName('OsisFileLabel')
+ self.osis_file_layout = QtGui.QHBoxLayout()
+ self.osis_file_layout.setObjectName('OsisFileLayout')
+ self.osis_file_edit = QtGui.QLineEdit(self.osis_widget)
+ self.osis_file_edit.setObjectName('OsisFileEdit')
+ self.osis_file_layout.addWidget(self.osis_file_edit)
+ self.osis_browse_button = QtGui.QToolButton(self.osis_widget)
+ self.osis_browse_button.setIcon(self.open_icon)
+ self.osis_browse_button.setObjectName('OsisBrowseButton')
+ self.osis_file_layout.addWidget(self.osis_browse_button)
+ self.osis_layout.addRow(self.osis_file_label, self.osis_file_layout)
+ self.osis_layout.setItem(1, QtGui.QFormLayout.LabelRole, self.spacer)
+ self.select_stack.addWidget(self.osis_widget)
+ self.csv_widget = QtGui.QWidget(self.select_page)
+ self.csv_widget.setObjectName('CsvWidget')
+ self.csv_layout = QtGui.QFormLayout(self.csv_widget)
+ self.csv_layout.setMargin(0)
+ self.csv_layout.setObjectName('CsvLayout')
+ self.csv_books_label = QtGui.QLabel(self.csv_widget)
+ self.csv_books_label.setObjectName('CsvBooksLabel')
+ self.csv_books_layout = QtGui.QHBoxLayout()
+ self.csv_books_layout.setObjectName('CsvBooksLayout')
+ self.csv_books_edit = QtGui.QLineEdit(self.csv_widget)
+ self.csv_books_edit.setObjectName('CsvBooksEdit')
+ self.csv_books_layout.addWidget(self.csv_books_edit)
+ self.csv_books_button = QtGui.QToolButton(self.csv_widget)
+ self.csv_books_button.setIcon(self.open_icon)
+ self.csv_books_button.setObjectName('CsvBooksButton')
+ self.csv_books_layout.addWidget(self.csv_books_button)
+ self.csv_layout.addRow(self.csv_books_label, self.csv_books_layout)
+ self.csv_verses_label = QtGui.QLabel(self.csv_widget)
+ self.csv_verses_label.setObjectName('CsvVersesLabel')
+ self.csv_verses_layout = QtGui.QHBoxLayout()
+ self.csv_verses_layout.setObjectName('CsvVersesLayout')
+ self.csv_verses_edit = QtGui.QLineEdit(self.csv_widget)
+ self.csv_verses_edit.setObjectName('CsvVersesEdit')
+ self.csv_verses_layout.addWidget(self.csv_verses_edit)
+ self.csv_verses_button = QtGui.QToolButton(self.csv_widget)
+ self.csv_verses_button.setIcon(self.open_icon)
+ self.csv_verses_button.setObjectName('CsvVersesButton')
+ self.csv_verses_layout.addWidget(self.csv_verses_button)
+ self.csv_layout.addRow(self.csv_verses_label, self.csv_verses_layout)
+ self.csv_layout.setItem(3, QtGui.QFormLayout.LabelRole, self.spacer)
+ self.select_stack.addWidget(self.csv_widget)
+ self.open_song_widget = QtGui.QWidget(self.select_page)
+ self.open_song_widget.setObjectName('OpenSongWidget')
+ self.open_song_layout = QtGui.QFormLayout(self.open_song_widget)
+ self.open_song_layout.setMargin(0)
+ self.open_song_layout.setObjectName('OpenSongLayout')
+ self.open_song_file_label = QtGui.QLabel(self.open_song_widget)
+ self.open_song_file_label.setObjectName('OpenSongFileLabel')
+ self.open_song_file_layout = QtGui.QHBoxLayout()
+ self.open_song_file_layout.setObjectName('OpenSongFileLayout')
+ self.open_song_file_edit = QtGui.QLineEdit(self.open_song_widget)
+ self.open_song_file_edit.setObjectName('OpenSongFileEdit')
+ self.open_song_file_layout.addWidget(self.open_song_file_edit)
+ self.open_song_browse_button = QtGui.QToolButton(self.open_song_widget)
+ self.open_song_browse_button.setIcon(self.open_icon)
+ self.open_song_browse_button.setObjectName('OpenSongBrowseButton')
+ self.open_song_file_layout.addWidget(self.open_song_browse_button)
+ self.open_song_layout.addRow(self.open_song_file_label, self.open_song_file_layout)
+ self.open_song_layout.setItem(1, QtGui.QFormLayout.LabelRole, self.spacer)
+ self.select_stack.addWidget(self.open_song_widget)
+ self.web_tab_widget = QtGui.QTabWidget(self.select_page)
+ self.web_tab_widget.setObjectName('WebTabWidget')
+ self.web_bible_tab = QtGui.QWidget()
+ self.web_bible_tab.setObjectName('WebBibleTab')
+ self.web_bible_layout = QtGui.QFormLayout(self.web_bible_tab)
+ self.web_bible_layout.setObjectName('WebBibleLayout')
+ self.web_source_label = QtGui.QLabel(self.web_bible_tab)
+ self.web_source_label.setObjectName('WebSourceLabel')
+ self.web_bible_layout.setWidget(0, QtGui.QFormLayout.LabelRole, self.web_source_label)
+ self.web_source_combo_box = QtGui.QComboBox(self.web_bible_tab)
+ self.web_source_combo_box.setObjectName('WebSourceComboBox')
+ self.web_source_combo_box.addItems(['', '', ''])
+ self.web_bible_layout.setWidget(0, QtGui.QFormLayout.FieldRole, self.web_source_combo_box)
+ self.web_translation_label = QtGui.QLabel(self.web_bible_tab)
+ self.web_translation_label.setObjectName('web_translation_label')
+ self.web_bible_layout.setWidget(1, QtGui.QFormLayout.LabelRole, self.web_translation_label)
+ self.web_translation_combo_box = QtGui.QComboBox(self.web_bible_tab)
+ self.web_translation_combo_box.setSizeAdjustPolicy(QtGui.QComboBox.AdjustToContents)
+ self.web_translation_combo_box.setObjectName('WebTranslationComboBox')
+ self.web_bible_layout.setWidget(1, QtGui.QFormLayout.FieldRole, self.web_translation_combo_box)
+ self.web_tab_widget.addTab(self.web_bible_tab, '')
+ self.web_proxy_tab = QtGui.QWidget()
+ self.web_proxy_tab.setObjectName('WebProxyTab')
+ self.web_proxy_layout = QtGui.QFormLayout(self.web_proxy_tab)
+ self.web_proxy_layout.setObjectName('WebProxyLayout')
+ self.web_server_label = QtGui.QLabel(self.web_proxy_tab)
+ self.web_server_label.setObjectName('WebServerLabel')
+ self.web_proxy_layout.setWidget(0, QtGui.QFormLayout.LabelRole, self.web_server_label)
+ self.web_server_edit = QtGui.QLineEdit(self.web_proxy_tab)
+ self.web_server_edit.setObjectName('WebServerEdit')
+ self.web_proxy_layout.setWidget(0, QtGui.QFormLayout.FieldRole, self.web_server_edit)
+ self.web_user_label = QtGui.QLabel(self.web_proxy_tab)
+ self.web_user_label.setObjectName('WebUserLabel')
+ self.web_proxy_layout.setWidget(1, QtGui.QFormLayout.LabelRole, self.web_user_label)
+ self.web_user_edit = QtGui.QLineEdit(self.web_proxy_tab)
+ self.web_user_edit.setObjectName('WebUserEdit')
+ self.web_proxy_layout.setWidget(1, QtGui.QFormLayout.FieldRole, self.web_user_edit)
+ self.web_password_label = QtGui.QLabel(self.web_proxy_tab)
+ self.web_password_label.setObjectName('WebPasswordLabel')
+ self.web_proxy_layout.setWidget(2, QtGui.QFormLayout.LabelRole, self.web_password_label)
+ self.web_password_edit = QtGui.QLineEdit(self.web_proxy_tab)
+ self.web_password_edit.setObjectName('WebPasswordEdit')
+ self.web_proxy_layout.setWidget(2, QtGui.QFormLayout.FieldRole, self.web_password_edit)
+ self.web_tab_widget.addTab(self.web_proxy_tab, '')
+ self.select_stack.addWidget(self.web_tab_widget)
+ self.select_page_layout.addLayout(self.select_stack)
+ self.addPage(self.select_page)
# License Page
- self.licenseDetailsPage = QtGui.QWizardPage()
- self.licenseDetailsPage.setObjectName('LicenseDetailsPage')
- self.licenseDetailsLayout = QtGui.QFormLayout(self.licenseDetailsPage)
- self.licenseDetailsLayout.setObjectName('LicenseDetailsLayout')
- self.versionNameLabel = QtGui.QLabel(self.licenseDetailsPage)
- self.versionNameLabel.setObjectName('VersionNameLabel')
- self.licenseDetailsLayout.setWidget(0, QtGui.QFormLayout.LabelRole, self.versionNameLabel)
- self.versionNameEdit = QtGui.QLineEdit(self.licenseDetailsPage)
- self.versionNameEdit.setObjectName('VersionNameEdit')
- self.licenseDetailsLayout.setWidget(0, QtGui.QFormLayout.FieldRole, self.versionNameEdit)
- self.copyrightLabel = QtGui.QLabel(self.licenseDetailsPage)
- self.copyrightLabel.setObjectName('CopyrightLabel')
- self.licenseDetailsLayout.setWidget(1, QtGui.QFormLayout.LabelRole, self.copyrightLabel)
- self.copyrightEdit = QtGui.QLineEdit(self.licenseDetailsPage)
- self.copyrightEdit.setObjectName('CopyrightEdit')
- self.licenseDetailsLayout.setWidget(1, QtGui.QFormLayout.FieldRole, self.copyrightEdit)
- self.permissionsLabel = QtGui.QLabel(self.licenseDetailsPage)
- self.permissionsLabel.setObjectName('PermissionsLabel')
- self.licenseDetailsLayout.setWidget(2, QtGui.QFormLayout.LabelRole,
- self.permissionsLabel)
- self.permissionsEdit = QtGui.QLineEdit(self.licenseDetailsPage)
- self.permissionsEdit.setObjectName('PermissionsEdit')
- self.licenseDetailsLayout.setWidget(2, QtGui.QFormLayout.FieldRole, self.permissionsEdit)
- self.addPage(self.licenseDetailsPage)
+ self.license_details_page = QtGui.QWizardPage()
+ self.license_details_page.setObjectName('LicenseDetailsPage')
+ self.license_details_layout = QtGui.QFormLayout(self.license_details_page)
+ self.license_details_layout.setObjectName('LicenseDetailsLayout')
+ self.version_name_label = QtGui.QLabel(self.license_details_page)
+ self.version_name_label.setObjectName('VersionNameLabel')
+ self.license_details_layout.setWidget(0, QtGui.QFormLayout.LabelRole, self.version_name_label)
+ self.version_name_edit = QtGui.QLineEdit(self.license_details_page)
+ self.version_name_edit.setObjectName('VersionNameEdit')
+ self.license_details_layout.setWidget(0, QtGui.QFormLayout.FieldRole, self.version_name_edit)
+ self.copyright_label = QtGui.QLabel(self.license_details_page)
+ self.copyright_label.setObjectName('CopyrightLabel')
+ self.license_details_layout.setWidget(1, QtGui.QFormLayout.LabelRole, self.copyright_label)
+ self.copyright_edit = QtGui.QLineEdit(self.license_details_page)
+ self.copyright_edit.setObjectName('CopyrightEdit')
+ self.license_details_layout.setWidget(1, QtGui.QFormLayout.FieldRole, self.copyright_edit)
+ self.permissions_label = QtGui.QLabel(self.license_details_page)
+ self.permissions_label.setObjectName('PermissionsLabel')
+ self.license_details_layout.setWidget(2, QtGui.QFormLayout.LabelRole, self.permissions_label)
+ self.permissions_edit = QtGui.QLineEdit(self.license_details_page)
+ self.permissions_edit.setObjectName('PermissionsEdit')
+ self.license_details_layout.setWidget(2, QtGui.QFormLayout.FieldRole, self.permissions_edit)
+ self.addPage(self.license_details_page)
def retranslateUi(self):
"""
Allow for localisation of the bible import wizard.
"""
self.setWindowTitle(translate('BiblesPlugin.ImportWizardForm', 'Bible Import Wizard'))
- self.title_label.setText(WizardStrings.HeaderStyle %
- translate('OpenLP.Ui', 'Welcome to the Bible Import Wizard'))
+ self.title_label.setText(WizardStrings.HeaderStyle % translate('OpenLP.Ui',
+ 'Welcome to the Bible Import Wizard'))
self.information_label.setText(
translate('BiblesPlugin.ImportWizardForm',
- 'This wizard will help you to import Bibles from a variety of '
- 'formats. Click the next button below to start the process by '
- 'selecting a format to import from.'))
- self.selectPage.setTitle(WizardStrings.ImportSelect)
- self.selectPage.setSubTitle(WizardStrings.ImportSelectLong)
- self.formatLabel.setText(WizardStrings.FormatLabel)
- self.formatComboBox.setItemText(BibleFormat.OSIS, WizardStrings.OSIS)
- self.formatComboBox.setItemText(BibleFormat.CSV, WizardStrings.CSV)
- self.formatComboBox.setItemText(BibleFormat.OpenSong, WizardStrings.OS)
- self.formatComboBox.setItemText(BibleFormat.WebDownload,
- translate('BiblesPlugin.ImportWizardForm', 'Web Download'))
- self.osisFileLabel.setText(translate('BiblesPlugin.ImportWizardForm', 'Bible file:'))
- self.csvBooksLabel.setText(translate('BiblesPlugin.ImportWizardForm', 'Books file:'))
- self.csvVersesLabel.setText(translate('BiblesPlugin.ImportWizardForm', 'Verses file:'))
- self.openSongFileLabel.setText(translate('BiblesPlugin.ImportWizardForm', 'Bible file:'))
- self.webSourceLabel.setText(translate('BiblesPlugin.ImportWizardForm', 'Location:'))
- self.webSourceComboBox.setItemText(WebDownload.Crosswalk,
- translate('BiblesPlugin.ImportWizardForm', 'Crosswalk'))
- self.webSourceComboBox.setItemText(WebDownload.BibleGateway,
- translate('BiblesPlugin.ImportWizardForm', 'BibleGateway'))
- self.webSourceComboBox.setItemText(WebDownload.Bibleserver,
- translate('BiblesPlugin.ImportWizardForm', 'Bibleserver'))
- self.webTranslationLabel.setText(translate('BiblesPlugin.ImportWizardForm', 'Bible:'))
- self.webTabWidget.setTabText(self.webTabWidget.indexOf(self.webBibleTab),
- translate('BiblesPlugin.ImportWizardForm', 'Download Options'))
- self.webServerLabel.setText(translate('BiblesPlugin.ImportWizardForm', 'Server:'))
- self.webUserLabel.setText(translate('BiblesPlugin.ImportWizardForm', 'Username:'))
- self.webPasswordLabel.setText(translate('BiblesPlugin.ImportWizardForm', 'Password:'))
- self.webTabWidget.setTabText(self.webTabWidget.indexOf(self.webProxyTab),
- translate('BiblesPlugin.ImportWizardForm',
- 'Proxy Server (Optional)'))
- self.licenseDetailsPage.setTitle(
+ 'This wizard will help you to import Bibles from a variety of '
+ 'formats. Click the next button below to start the process by '
+ 'selecting a format to import from.'))
+ self.select_page.setTitle(WizardStrings.ImportSelect)
+ self.select_page.setSubTitle(WizardStrings.ImportSelectLong)
+ self.format_label.setText(WizardStrings.FormatLabel)
+ self.format_combo_box.setItemText(BibleFormat.OSIS, WizardStrings.OSIS)
+ self.format_combo_box.setItemText(BibleFormat.CSV, WizardStrings.CSV)
+ self.format_combo_box.setItemText(BibleFormat.OpenSong, WizardStrings.OS)
+ self.format_combo_box.setItemText(BibleFormat.WebDownload, translate('BiblesPlugin.ImportWizardForm',
+ 'Web Download'))
+ self.osis_file_label.setText(translate('BiblesPlugin.ImportWizardForm', 'Bible file:'))
+ self.csv_books_label.setText(translate('BiblesPlugin.ImportWizardForm', 'Books file:'))
+ self.csv_verses_label.setText(translate('BiblesPlugin.ImportWizardForm', 'Verses file:'))
+ self.open_song_file_label.setText(translate('BiblesPlugin.ImportWizardForm', 'Bible file:'))
+ self.web_source_label.setText(translate('BiblesPlugin.ImportWizardForm', 'Location:'))
+ self.web_source_combo_box.setItemText(WebDownload.Crosswalk, translate('BiblesPlugin.ImportWizardForm',
+ 'Crosswalk'))
+ self.web_source_combo_box.setItemText(WebDownload.BibleGateway, translate('BiblesPlugin.ImportWizardForm',
+ 'BibleGateway'))
+ self.web_source_combo_box.setItemText(WebDownload.Bibleserver, translate('BiblesPlugin.ImportWizardForm',
+ 'Bibleserver'))
+ self.web_translation_label.setText(translate('BiblesPlugin.ImportWizardForm', 'Bible:'))
+ self.web_tab_widget.setTabText(self.web_tab_widget.indexOf(self.web_bible_tab),
+ translate('BiblesPlugin.ImportWizardForm', 'Download Options'))
+ self.web_server_label.setText(translate('BiblesPlugin.ImportWizardForm', 'Server:'))
+ self.web_user_label.setText(translate('BiblesPlugin.ImportWizardForm', 'Username:'))
+ self.web_password_label.setText(translate('BiblesPlugin.ImportWizardForm', 'Password:'))
+ self.web_tab_widget.setTabText(
+ self.web_tab_widget.indexOf(self.web_proxy_tab), translate('BiblesPlugin.ImportWizardForm',
+ 'Proxy Server (Optional)'))
+ self.license_details_page.setTitle(
translate('BiblesPlugin.ImportWizardForm', 'License Details'))
- self.licenseDetailsPage.setSubTitle(translate('BiblesPlugin.ImportWizardForm',
- 'Set up the Bible\'s license details.'))
- self.versionNameLabel.setText(translate('BiblesPlugin.ImportWizardForm', 'Version name:'))
- self.copyrightLabel.setText(translate('BiblesPlugin.ImportWizardForm', 'Copyright:'))
- self.permissionsLabel.setText(translate('BiblesPlugin.ImportWizardForm', 'Permissions:'))
+ self.license_details_page.setSubTitle(translate('BiblesPlugin.ImportWizardForm',
+ 'Set up the Bible\'s license details.'))
+ self.version_name_label.setText(translate('BiblesPlugin.ImportWizardForm', 'Version name:'))
+ self.copyright_label.setText(translate('BiblesPlugin.ImportWizardForm', 'Copyright:'))
+ self.permissions_label.setText(translate('BiblesPlugin.ImportWizardForm', 'Permissions:'))
self.progress_page.setTitle(WizardStrings.Importing)
self.progress_page.setSubTitle(translate('BiblesPlugin.ImportWizardForm',
- 'Please wait while your Bible is imported.'))
+ 'Please wait while your Bible is imported.'))
self.progress_label.setText(WizardStrings.Ready)
self.progress_bar.setFormat('%p%')
# Align all QFormLayouts towards each other.
- labelWidth = max(self.formatLabel.minimumSizeHint().width(),
- self.osisFileLabel.minimumSizeHint().width(),
- self.csvBooksLabel.minimumSizeHint().width(),
- self.csvVersesLabel.minimumSizeHint().width(),
- self.openSongFileLabel.minimumSizeHint().width())
- self.spacer.changeSize(labelWidth, 0, QtGui.QSizePolicy.Fixed, QtGui.QSizePolicy.Fixed)
+ label_width = max(self.format_label.minimumSizeHint().width(),
+ self.osis_file_label.minimumSizeHint().width(),
+ self.csv_books_label.minimumSizeHint().width(),
+ self.csv_verses_label.minimumSizeHint().width(),
+ self.open_song_file_label.minimumSizeHint().width())
+ self.spacer.changeSize(label_width, 0, QtGui.QSizePolicy.Fixed, QtGui.QSizePolicy.Fixed)
def validateCurrentPage(self):
"""
@@ -340,122 +340,130 @@
"""
if self.currentPage() == self.welcome_page:
return True
- elif self.currentPage() == self.selectPage:
+ elif self.currentPage() == self.select_page:
if self.field('source_format') == BibleFormat.OSIS:
if not self.field('osis_location'):
critical_error_message_box(UiStrings().NFSs, WizardStrings.YouSpecifyFile % WizardStrings.OSIS)
- self.osisFileEdit.setFocus()
+ self.osis_file_edit.setFocus()
return False
elif self.field('source_format') == BibleFormat.CSV:
if not self.field('csv_booksfile'):
- critical_error_message_box(UiStrings().NFSs, translate('BiblesPlugin.ImportWizardForm',
- 'You need to specify a file with books of the Bible to use in the import.'))
- self.csvBooksEdit.setFocus()
+ critical_error_message_box(
+ UiStrings().NFSs, translate('BiblesPlugin.ImportWizardForm',
+ 'You need to specify a file with books of the Bible to use in the '
+ 'import.'))
+ self.csv_books_edit.setFocus()
return False
elif not self.field('csv_versefile'):
- critical_error_message_box(UiStrings().NFSs,
- translate('BiblesPlugin.ImportWizardForm',
- 'You need to specify a file of Bible verses to import.'))
- self.csvVersesEdit.setFocus()
+ critical_error_message_box(
+ UiStrings().NFSs,
+ translate('BiblesPlugin.ImportWizardForm', 'You need to specify a file of Bible verses to '
+ 'import.'))
+ self.csv_verses_edit.setFocus()
return False
elif self.field('source_format') == BibleFormat.OpenSong:
if not self.field('opensong_file'):
critical_error_message_box(UiStrings().NFSs, WizardStrings.YouSpecifyFile % WizardStrings.OS)
- self.openSongFileEdit.setFocus()
+ self.open_song_file_edit.setFocus()
return False
elif self.field('source_format') == BibleFormat.WebDownload:
- self.versionNameEdit.setText(self.webTranslationComboBox.currentText())
+ self.version_name_edit.setText(self.web_translation_combo_box.currentText())
return True
return True
- elif self.currentPage() == self.licenseDetailsPage:
+ elif self.currentPage() == self.license_details_page:
license_version = self.field('license_version')
license_copyright = self.field('license_copyright')
path = AppLocation.get_section_data_path('bibles')
if not license_version:
- critical_error_message_box(UiStrings().EmptyField,
+ critical_error_message_box(
+ UiStrings().EmptyField,
translate('BiblesPlugin.ImportWizardForm', 'You need to specify a version name for your Bible.'))
- self.versionNameEdit.setFocus()
+ self.version_name_edit.setFocus()
return False
elif not license_copyright:
- critical_error_message_box(UiStrings().EmptyField,
+ critical_error_message_box(
+ UiStrings().EmptyField,
translate('BiblesPlugin.ImportWizardForm', 'You need to set a copyright for your Bible. '
- 'Bibles in the Public Domain need to be marked as such.'))
- self.copyrightEdit.setFocus()
+ 'Bibles in the Public Domain need to be marked as such.'))
+ self.copyright_edit.setFocus()
return False
elif self.manager.exists(license_version):
- critical_error_message_box(translate('BiblesPlugin.ImportWizardForm', 'Bible Exists'),
+ critical_error_message_box(
+ translate('BiblesPlugin.ImportWizardForm', 'Bible Exists'),
translate('BiblesPlugin.ImportWizardForm',
- 'This Bible already exists. Please import a different Bible or first delete the existing one.'))
- self.versionNameEdit.setFocus()
+ 'This Bible already exists. Please import a different Bible or first delete the '
+ 'existing one.'))
+ self.version_name_edit.setFocus()
return False
- elif os.path.exists(os.path.join(path, clean_filename(
- license_version))):
+ elif os.path.exists(os.path.join(path, clean_filename(license_version))):
critical_error_message_box(
translate('BiblesPlugin.ImportWizardForm', 'Bible Exists'),
translate('BiblesPlugin.ImportWizardForm', 'This Bible already exists. Please import '
- 'a different Bible or first delete the existing one.'))
- self.versionNameEdit.setFocus()
+ 'a different Bible or first delete the existing one.'))
+ self.version_name_edit.setFocus()
return False
return True
if self.currentPage() == self.progress_page:
return True
- def onWebSourceComboBoxIndexChanged(self, index):
+ def on_web_source_combo_box_index_changed(self, index):
"""
- Setup the list of Bibles when you select a different source on the web
- download page.
+ Setup the list of Bibles when you select a different source on the web download page.
- ``index``
- The index of the combo box.
+ :param index: The index of the combo box.
"""
- self.webTranslationComboBox.clear()
+ self.web_translation_combo_box.clear()
bibles = list(self.web_bible_list[index].keys())
bibles.sort(key=get_locale_key)
- self.webTranslationComboBox.addItems(bibles)
+ self.web_translation_combo_box.addItems(bibles)
- def onOsisBrowseButtonClicked(self):
+ def on_osis_browse_button_clicked(self):
"""
Show the file open dialog for the OSIS file.
"""
- self.get_file_name(WizardStrings.OpenTypeFile % WizardStrings.OSIS, self.osisFileEdit, 'last directory import')
+ self.get_file_name(WizardStrings.OpenTypeFile % WizardStrings.OSIS, self.osis_file_edit,
+ 'last directory import')
- def onCsvBooksBrowseButtonClicked(self):
+ def on_csv_books_browse_button_clicked(self):
"""
Show the file open dialog for the books CSV file.
"""
- self.get_file_name(WizardStrings.OpenTypeFile % WizardStrings.CSV, self.csvBooksEdit, 'last directory import',
- '%s (*.csv)' % translate('BiblesPlugin.ImportWizardForm', 'CSV File'))
+ self.get_file_name(
+ WizardStrings.OpenTypeFile % WizardStrings.CSV, self.csv_books_edit, 'last directory import', '%s (*.csv)' %
+ translate('BiblesPlugin.ImportWizardForm', 'CSV File'))
- def onCsvVersesBrowseButtonClicked(self):
+ def on_csv_verses_browse_button_clicked(self):
"""
Show the file open dialog for the verses CSV file.
"""
- self.get_file_name(WizardStrings.OpenTypeFile % WizardStrings.CSV, self.csvVersesEdit, 'last directory import',
- '%s (*.csv)' % translate('BiblesPlugin.ImportWizardForm', 'CSV File'))
+ self.get_file_name(WizardStrings.OpenTypeFile % WizardStrings.CSV, self.csv_verses_edit,
+ 'last directory import', '%s (*.csv)' %
+ translate('BiblesPlugin.ImportWizardForm', 'CSV File'))
- def onOpenSongBrowseButtonClicked(self):
+ def on_open_song_browse_button_clicked(self):
"""
Show the file open dialog for the OpenSong file.
"""
- self.get_file_name(WizardStrings.OpenTypeFile % WizardStrings.OS, self.openSongFileEdit, 'last directory import')
+ self.get_file_name(WizardStrings.OpenTypeFile % WizardStrings.OS, self.open_song_file_edit,
+ 'last directory import')
def register_fields(self):
"""
Register the bible import wizard fields.
"""
- self.selectPage.registerField('source_format', self.formatComboBox)
- self.selectPage.registerField('osis_location', self.osisFileEdit)
- self.selectPage.registerField('csv_booksfile', self.csvBooksEdit)
- self.selectPage.registerField('csv_versefile', self.csvVersesEdit)
- self.selectPage.registerField('opensong_file', self.openSongFileEdit)
- self.selectPage.registerField('web_location', self.webSourceComboBox)
- self.selectPage.registerField('web_biblename', self.webTranslationComboBox)
- self.selectPage.registerField('proxy_server', self.webServerEdit)
- self.selectPage.registerField('proxy_username', self.webUserEdit)
- self.selectPage.registerField('proxy_password', self.webPasswordEdit)
- self.licenseDetailsPage.registerField('license_version', self.versionNameEdit)
- self.licenseDetailsPage.registerField('license_copyright', self.copyrightEdit)
- self.licenseDetailsPage.registerField('license_permissions', self.permissionsEdit)
+ self.select_page.registerField('source_format', self.format_combo_box)
+ self.select_page.registerField('osis_location', self.osis_file_edit)
+ self.select_page.registerField('csv_booksfile', self.csv_books_edit)
+ self.select_page.registerField('csv_versefile', self.csv_verses_edit)
+ self.select_page.registerField('opensong_file', self.open_song_file_edit)
+ self.select_page.registerField('web_location', self.web_source_combo_box)
+ self.select_page.registerField('web_biblename', self.web_translation_combo_box)
+ self.select_page.registerField('proxy_server', self.web_server_edit)
+ self.select_page.registerField('proxy_username', self.web_user_edit)
+ self.select_page.registerField('proxy_password', self.web_password_edit)
+ self.license_details_page.registerField('license_version', self.version_name_edit)
+ self.license_details_page.registerField('license_copyright', self.copyright_edit)
+ self.license_details_page.registerField('license_permissions', self.permissions_edit)
def setDefaults(self):
"""
@@ -472,33 +480,32 @@
self.setField('csv_versefile', '')
self.setField('opensong_file', '')
self.setField('web_location', WebDownload.Crosswalk)
- self.setField('web_biblename', self.webTranslationComboBox.currentIndex())
+ self.setField('web_biblename', self.web_translation_combo_box.currentIndex())
self.setField('proxy_server', settings.value('proxy address'))
self.setField('proxy_username', settings.value('proxy username'))
self.setField('proxy_password', settings.value('proxy password'))
- self.setField('license_version', self.versionNameEdit.text())
- self.setField('license_copyright', self.copyrightEdit.text())
- self.setField('license_permissions', self.permissionsEdit.text())
- self.onWebSourceComboBoxIndexChanged(WebDownload.Crosswalk)
+ self.setField('license_version', self.version_name_edit.text())
+ self.setField('license_copyright', self.copyright_edit.text())
+ self.setField('license_permissions', self.permissions_edit.text())
+ self.on_web_source_combo_box_index_changed(WebDownload.Crosswalk)
settings.endGroup()
- def loadWebBibles(self):
+ def load_Web_Bibles(self):
"""
Load the lists of Crosswalk, BibleGateway and Bibleserver bibles.
"""
# Load Crosswalk Bibles.
- self.loadBibleResource(WebDownload.Crosswalk)
+ self.load_Bible_Resource(WebDownload.Crosswalk)
# Load BibleGateway Bibles.
- self.loadBibleResource(WebDownload.BibleGateway)
+ self.load_Bible_Resource(WebDownload.BibleGateway)
# Load and Bibleserver Bibles.
- self.loadBibleResource(WebDownload.Bibleserver)
+ self.load_Bible_Resource(WebDownload.Bibleserver)
- def loadBibleResource(self, download_type):
+ def load_Bible_Resource(self, download_type):
"""
Loads a web bible from bible_resources.sqlite.
- ``download_type``
- The WebDownload type e.g. bibleserver.
+ :param download_type: The WebDownload type e.g. bibleserver.
"""
self.web_bible_list[download_type] = {}
bibles = BiblesResourcesDB.get_webbibles(WebDownload.Names[download_type])
@@ -530,28 +537,22 @@
importer = None
if bible_type == BibleFormat.OSIS:
# Import an OSIS bible.
- importer = self.manager.import_bible(BibleFormat.OSIS,
- name=license_version,
- filename=self.field('osis_location')
- )
+ importer = self.manager.import_bible(BibleFormat.OSIS, name=license_version,
+ filename=self.field('osis_location'))
elif bible_type == BibleFormat.CSV:
# Import a CSV bible.
- importer = self.manager.import_bible(BibleFormat.CSV,
- name=license_version,
- booksfile=self.field('csv_booksfile'),
- versefile=self.field('csv_versefile')
- )
+ importer = self.manager.import_bible(BibleFormat.CSV, name=license_version,
+ booksfile=self.field('csv_booksfile'),
+ versefile=self.field('csv_versefile'))
elif bible_type == BibleFormat.OpenSong:
# Import an OpenSong bible.
- importer = self.manager.import_bible(BibleFormat.OpenSong,
- name=license_version,
- filename=self.field('opensong_file')
- )
+ importer = self.manager.import_bible(BibleFormat.OpenSong, name=license_version,
+ filename=self.field('opensong_file'))
elif bible_type == BibleFormat.WebDownload:
# Import a bible from the web.
self.progress_bar.setMaximum(1)
download_location = self.field('web_location')
- bible_version = self.webTranslationComboBox.currentText()
+ bible_version = self.web_translation_combo_box.currentText()
bible = self.web_bible_list[download_location][bible_version]
importer = self.manager.import_bible(
BibleFormat.WebDownload, name=license_version,
@@ -562,13 +563,12 @@
proxy_password=self.field('proxy_password')
)
if importer.do_import(license_version):
- self.manager.save_meta_data(license_version, license_version,
- license_copyright, license_permissions)
+ self.manager.save_meta_data(license_version, license_version, license_copyright, license_permissions)
self.manager.reload_bibles()
if bible_type == BibleFormat.WebDownload:
self.progress_label.setText(
translate('BiblesPlugin.ImportWizardForm', 'Registered Bible. Please note, that verses will be '
- 'downloaded on\ndemand and thus an internet connection is required.'))
+ 'downloaded on\ndemand and thus an internet connection is required.'))
else:
self.progress_label.setText(WizardStrings.FinishedImport)
else:
=== modified file 'openlp/plugins/bibles/forms/bibleupgradeform.py'
--- openlp/plugins/bibles/forms/bibleupgradeform.py 2014-03-17 19:05:55 +0000
+++ openlp/plugins/bibles/forms/bibleupgradeform.py 2014-03-21 21:59:15 +0000
@@ -96,34 +96,34 @@
if not self.currentPage() == self.progress_page:
self.done(QtGui.QDialog.Rejected)
- def onCurrentIdChanged(self, pageId):
+ def onCurrentIdChanged(self, page_id):
"""
Perform necessary functions depending on which wizard page is active.
"""
- if self.page(pageId) == self.progress_page:
+ if self.page(page_id) == self.progress_page:
self.pre_wizard()
self.perform_wizard()
self.post_wizard()
- elif self.page(pageId) == self.selectPage and not self.files:
+ elif self.page(page_id) == self.selectPage and not self.files:
self.next()
- def onBackupBrowseButtonClicked(self):
+ def on_backup_browse_button_clicked(self):
"""
Show the file open dialog for the OSIS file.
"""
- filename = QtGui.QFileDialog.getExistingDirectory(self,
- translate('BiblesPlugin.UpgradeWizardForm', 'Select a Backup Directory'), '')
+ filename = QtGui.QFileDialog.getExistingDirectory(self, translate('BiblesPlugin.UpgradeWizardForm',
+ 'Select a Backup Directory'), '')
if filename:
self.backupDirectoryEdit.setText(filename)
- def onNoBackupCheckBoxToggled(self, checked):
+ def on_no_backup_check_box_toggled(self, checked):
"""
Enable or disable the backup directory widgets.
"""
self.backupDirectoryEdit.setEnabled(not checked)
self.backupBrowseButton.setEnabled(not checked)
- def backupOldBibles(self, backup_directory):
+ def backup_old_bibles(self, backup_directory):
"""
Backup old bible databases in a given folder.
"""
@@ -147,8 +147,8 @@
"""
Set up the signals used in the bible importer.
"""
- self.backupBrowseButton.clicked.connect(self.onBackupBrowseButtonClicked)
- self.noBackupCheckBox.toggled.connect(self.onNoBackupCheckBoxToggled)
+ self.backupBrowseButton.clicked.connect(self.on_backup_browse_button_clicked)
+ self.noBackupCheckBox.toggled.connect(self.on_no_backup_check_box_toggled)
def add_custom_pages(self):
"""
@@ -238,32 +238,34 @@
Allow for localisation of the bible import wizard.
"""
self.setWindowTitle(translate('BiblesPlugin.UpgradeWizardForm', 'Bible Upgrade Wizard'))
- self.title_label.setText(WizardStrings.HeaderStyle %
- translate('OpenLP.Ui', 'Welcome to the Bible Upgrade Wizard'))
- self.information_label.setText(translate('BiblesPlugin.UpgradeWizardForm',
- 'This wizard will help you to upgrade your existing Bibles from a prior version of OpenLP 2. '
- 'Click the next button below to start the upgrade process.'))
+ self.title_label.setText(WizardStrings.HeaderStyle % translate('OpenLP.Ui',
+ 'Welcome to the Bible Upgrade Wizard'))
+ self.information_label.setText(
+ translate('BiblesPlugin.UpgradeWizardForm',
+ 'This wizard will help you to upgrade your existing Bibles from a prior version of OpenLP 2. '
+ 'Click the next button below to start the upgrade process.'))
self.backup_page.setTitle(translate('BiblesPlugin.UpgradeWizardForm', 'Select Backup Directory'))
- self.backup_page.setSubTitle(translate('BiblesPlugin.UpgradeWizardForm',
- 'Please select a backup directory for your Bibles'))
- self.backupInfoLabel.setText(translate('BiblesPlugin.UpgradeWizardForm',
- 'Previous releases of OpenLP 2.0 are unable to use upgraded Bibles.'
- ' This will create a backup of your current Bibles so that you can '
- 'simply copy the files back to your OpenLP data directory if you '
- 'need to revert to a previous release of OpenLP. Instructions on '
- 'how to restore the files can be found in our <a href="'
- 'http://wiki.openlp.org/faq">Frequently Asked Questions</a>.'))
- self.selectLabel.setText(translate('BiblesPlugin.UpgradeWizardForm',
- 'Please select a backup location for your Bibles.'))
+ self.backup_page.setSubTitle(
+ translate('BiblesPlugin.UpgradeWizardForm', 'Please select a backup directory for your Bibles'))
+ self.backupInfoLabel.setText(
+ translate('BiblesPlugin.UpgradeWizardForm',
+ 'Previous releases of OpenLP 2.0 are unable to use upgraded Bibles.'
+ ' This will create a backup of your current Bibles so that you can '
+ 'simply copy the files back to your OpenLP data directory if you '
+ 'need to revert to a previous release of OpenLP. Instructions on '
+ 'how to restore the files can be found in our <a href="'
+ 'http://wiki.openlp.org/faq">Frequently Asked Questions</a>.'))
+ self.selectLabel.setText(
+ translate('BiblesPlugin.UpgradeWizardForm', 'Please select a backup location for your Bibles.'))
self.backupDirectoryLabel.setText(translate('BiblesPlugin.UpgradeWizardForm', 'Backup Directory:'))
self.noBackupCheckBox.setText(
translate('BiblesPlugin.UpgradeWizardForm', 'There is no need to backup my Bibles'))
self.selectPage.setTitle(translate('BiblesPlugin.UpgradeWizardForm', 'Select Bibles'))
- self.selectPage.setSubTitle(translate('BiblesPlugin.UpgradeWizardForm',
- 'Please select the Bibles to upgrade'))
+ self.selectPage.setSubTitle(
+ translate('BiblesPlugin.UpgradeWizardForm', 'Please select the Bibles to upgrade'))
self.progress_page.setTitle(translate('BiblesPlugin.UpgradeWizardForm', 'Upgrading'))
- self.progress_page.setSubTitle(translate('BiblesPlugin.UpgradeWizardForm',
- 'Please wait while your Bibles are upgraded.'))
+ self.progress_page.setSubTitle(
+ translate('BiblesPlugin.UpgradeWizardForm', 'Please wait while your Bibles are upgraded.'))
self.progress_label.setText(WizardStrings.Ready)
self.progress_bar.setFormat('%p%')
@@ -277,16 +279,18 @@
if not self.noBackupCheckBox.checkState() == QtCore.Qt.Checked:
backup_path = self.backupDirectoryEdit.text()
if not backup_path:
- critical_error_message_box(UiStrings().EmptyField,
- translate('BiblesPlugin.UpgradeWizardForm',
- 'You need to specify a backup directory for your Bibles.'))
+ critical_error_message_box(
+ UiStrings().EmptyField,
+ translate('BiblesPlugin.UpgradeWizardForm', 'You need to specify a backup directory for '
+ 'your Bibles.'))
self.backupDirectoryEdit.setFocus()
return False
else:
- if not self.backupOldBibles(backup_path):
- critical_error_message_box(UiStrings().Error,
- translate('BiblesPlugin.UpgradeWizardForm', 'The backup was not successful.\nTo backup your '
- 'Bibles you need permission to write to the given directory.'))
+ if not self.backup_old_bibles(backup_path):
+ critical_error_message_box(
+ UiStrings().Error,
+ translate('BiblesPlugin.UpgradeWizardForm', 'The backup was not successful.\nTo backup '
+ 'your Bibles you need permission to write to the given directory.'))
return False
return True
elif self.currentPage() == self.selectPage:
@@ -340,8 +344,8 @@
self.includeWebBible = False
proxy_server = None
if not self.files:
- self.progress_label.setText(translate('BiblesPlugin.UpgradeWizardForm',
- 'There are no Bibles that need to be upgraded.'))
+ self.progress_label.setText(
+ translate('BiblesPlugin.UpgradeWizardForm', 'There are no Bibles that need to be upgraded.'))
self.progress_bar.hide()
return
max_bibles = 0
@@ -363,11 +367,11 @@
self.success[number] = False
continue
self.progress_bar.reset()
- old_bible = OldBibleDB(self.media_item, path=self.temp_dir,
- file=filename[0])
+ old_bible = OldBibleDB(self.media_item, path=self.temp_dir, file=filename[0])
name = filename[1]
- self.progress_label.setText(translate('BiblesPlugin.UpgradeWizardForm',
- 'Upgrading Bible %s of %s: "%s"\nUpgrading ...') % (number + 1, max_bibles, name))
+ self.progress_label.setText(
+ translate('BiblesPlugin.UpgradeWizardForm',
+ 'Upgrading Bible %s of %s: "%s"\nUpgrading ...') % (number + 1, max_bibles, name))
self.new_bibles[number] = BibleDB(self.media_item, path=self.path, name=name, file=filename[0])
self.new_bibles[number].register(self.plugin.upgrade_wizard)
metadata = old_bible.get_metadata()
@@ -404,7 +408,7 @@
critical_error_message_box(
translate('BiblesPlugin.UpgradeWizardForm', 'Download Error'),
translate('BiblesPlugin.UpgradeWizardForm',
- 'To upgrade your Web Bibles an Internet connection is required.'))
+ 'To upgrade your Web Bibles an Internet connection is required.'))
self.increment_progress_bar(translate(
'BiblesPlugin.UpgradeWizardForm', 'Upgrading Bible %s of %s: "%s"\nFailed') %
(number + 1, max_bibles, name), self.progress_bar.maximum() - self.progress_bar.value())
@@ -415,16 +419,16 @@
meta_data['download_source'].lower())
if bible and bible['language_id']:
language_id = bible['language_id']
- self.new_bibles[number].save_meta('language_id',
- language_id)
+ self.new_bibles[number].save_meta('language_id', language_id)
else:
language_id = self.new_bibles[number].get_language(name)
if not language_id:
log.warn('Upgrading from "%s" failed' % filename[0])
self.new_bibles[number].session.close()
del self.new_bibles[number]
- self.increment_progress_bar(translate('BiblesPlugin.UpgradeWizardForm',
- 'Upgrading Bible %s of %s: "%s"\nFailed') % (number + 1, max_bibles, name),
+ self.increment_progress_bar(
+ translate('BiblesPlugin.UpgradeWizardForm',
+ 'Upgrading Bible %s of %s: "%s"\nFailed') % (number + 1, max_bibles, name),
self.progress_bar.maximum() - self.progress_bar.value())
self.success[number] = False
continue
@@ -433,8 +437,10 @@
if self.stop_import_flag:
self.success[number] = False
break
- self.increment_progress_bar(translate('BiblesPlugin.UpgradeWizardForm',
- 'Upgrading Bible %s of %s: "%s"\nUpgrading %s ...') % (number + 1, max_bibles, name, book))
+ self.increment_progress_bar(
+ translate('BiblesPlugin.UpgradeWizardForm',
+ 'Upgrading Bible %s of %s: "%s"\nUpgrading %s ...') %
+ (number + 1, max_bibles, name, book))
book_ref_id = self.new_bibles[number].\
get_book_ref_id_by_name(book, len(books), language_id)
if not book_ref_id:
@@ -445,8 +451,7 @@
self.success[number] = False
break
book_details = BiblesResourcesDB.get_book_by_id(book_ref_id)
- db_book = self.new_bibles[number].create_book(book,
- book_ref_id, book_details['testament_id'])
+ db_book = self.new_bibles[number].create_book(book, book_ref_id, book_details['testament_id'])
# Try to import already downloaded verses.
oldbook = old_bible.get_book(book)
if oldbook:
@@ -458,9 +463,8 @@
if self.stop_import_flag:
self.success[number] = False
break
- self.new_bibles[number].create_verse(db_book.id,
- int(verse['chapter']),
- int(verse['verse']), str(verse['text']))
+ self.new_bibles[number].create_verse(db_book.id, int(verse['chapter']),
+ int(verse['verse']), str(verse['text']))
self.application.process_events()
self.new_bibles[number].session.commit()
else:
@@ -471,8 +475,9 @@
log.warn('Upgrading books from "%s" failed' % name)
self.new_bibles[number].session.close()
del self.new_bibles[number]
- self.increment_progress_bar(translate('BiblesPlugin.UpgradeWizardForm',
- 'Upgrading Bible %s of %s: "%s"\nFailed') % (number + 1, max_bibles, name),
+ self.increment_progress_bar(
+ translate('BiblesPlugin.UpgradeWizardForm',
+ 'Upgrading Bible %s of %s: "%s"\nFailed') % (number + 1, max_bibles, name),
self.progress_bar.maximum() - self.progress_bar.value())
self.success[number] = False
continue
@@ -482,8 +487,9 @@
if self.stop_import_flag:
self.success[number] = False
break
- self.increment_progress_bar(translate('BiblesPlugin.UpgradeWizardForm',
- 'Upgrading Bible %s of %s: "%s"\nUpgrading %s ...') %
+ self.increment_progress_bar(
+ translate('BiblesPlugin.UpgradeWizardForm',
+ 'Upgrading Bible %s of %s: "%s"\nUpgrading %s ...') %
(number + 1, max_bibles, name, book['name']))
book_ref_id = self.new_bibles[number].get_book_ref_id_by_name(book['name'], len(books), language_id)
if not book_ref_id:
@@ -493,8 +499,8 @@
self.success[number] = False
break
book_details = BiblesResourcesDB.get_book_by_id(book_ref_id)
- db_book = self.new_bibles[number].create_book(book['name'],
- book_ref_id, book_details['testament_id'])
+ db_book = self.new_bibles[number].create_book(book['name'], book_ref_id,
+ book_details['testament_id'])
verses = old_bible.get_verses(book['id'])
if not verses:
log.warn('No verses found to import for book "%s"', book['name'])
@@ -504,20 +510,21 @@
if self.stop_import_flag:
self.success[number] = False
break
- self.new_bibles[number].create_verse(db_book.id,
- int(verse['chapter']),
- int(verse['verse']), str(verse['text']))
+ self.new_bibles[number].create_verse(db_book.id, int(verse['chapter']), int(verse['verse']),
+ str(verse['text']))
self.application.process_events()
self.new_bibles[number].session.commit()
if not self.success.get(number, True):
- self.increment_progress_bar(translate('BiblesPlugin.UpgradeWizardForm',
- 'Upgrading Bible %s of %s: "%s"\nFailed') % (number + 1, max_bibles, name),
+ self.increment_progress_bar(
+ translate('BiblesPlugin.UpgradeWizardForm',
+ 'Upgrading Bible %s of %s: "%s"\nFailed') % (number + 1, max_bibles, name),
self.progress_bar.maximum() - self.progress_bar.value())
else:
self.success[number] = True
self.new_bibles[number].save_meta('name', name)
- self.increment_progress_bar(translate('BiblesPlugin.UpgradeWizardForm',
- 'Upgrading Bible %s of %s: "%s"\nComplete') % (number + 1, max_bibles, name))
+ self.increment_progress_bar(
+ translate('BiblesPlugin.UpgradeWizardForm',
+ 'Upgrading Bible %s of %s: "%s"\nComplete') % (number + 1, max_bibles, name))
if number in self.new_bibles:
self.new_bibles[number].session.close()
# Close the last bible's connection if possible.
@@ -545,12 +552,15 @@
failed_import_text = ''
if successful_import > 0:
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))
+ 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))
else:
- self.progress_label.setText(translate('BiblesPlugin.UpgradeWizardForm',
- 'Upgrading Bible(s): %s successful%s') % (successful_import, failed_import_text))
+ self.progress_label.setText(
+ translate('BiblesPlugin.UpgradeWizardForm', 'Upgrading Bible(s): %s successful%s') % (
+ successful_import, failed_import_text))
else:
self.progress_label.setText(translate('BiblesPlugin.UpgradeWizardForm', 'Upgrade failed.'))
# Remove temp directory.
=== modified file 'openlp/plugins/bibles/forms/booknamedialog.py'
--- openlp/plugins/bibles/forms/booknamedialog.py 2013-12-24 08:56:50 +0000
+++ openlp/plugins/bibles/forms/booknamedialog.py 2014-03-21 21:59:15 +0000
@@ -32,6 +32,7 @@
from openlp.core.common import translate
from openlp.core.lib.ui import create_button_box
+
class Ui_BookNameDialog(object):
def setupUi(self, book_name_dialog):
book_name_dialog.setObjectName('book_name_dialog')
@@ -48,15 +49,15 @@
self.corresponding_layout.setColumnStretch(1, 1)
self.corresponding_layout.setSpacing(8)
self.corresponding_layout.setObjectName('corresponding_layout')
- self.currentLabel = QtGui.QLabel(book_name_dialog)
- self.currentLabel.setObjectName('currentLabel')
- self.corresponding_layout.addWidget(self.currentLabel, 0, 0, 1, 1)
+ self.current_label = QtGui.QLabel(book_name_dialog)
+ self.current_label.setObjectName('current_label')
+ self.corresponding_layout.addWidget(self.current_label, 0, 0, 1, 1)
self.current_book_label = QtGui.QLabel(book_name_dialog)
self.current_book_label.setObjectName('current_book_label')
self.corresponding_layout.addWidget(self.current_book_label, 0, 1, 1, 1)
- self.correspondingLabel = QtGui.QLabel(book_name_dialog)
- self.correspondingLabel.setObjectName('correspondingLabel')
- self.corresponding_layout.addWidget(self.correspondingLabel, 1, 0, 1, 1)
+ self.corresponding_label = QtGui.QLabel(book_name_dialog)
+ self.corresponding_label.setObjectName('corresponding_label')
+ self.corresponding_layout.addWidget(self.corresponding_label, 1, 0, 1, 1)
self.corresponding_combo_box = QtGui.QComboBox(book_name_dialog)
self.corresponding_combo_box.setObjectName('corresponding_combo_box')
self.corresponding_layout.addWidget(self.corresponding_combo_box, 1, 1, 1, 1)
@@ -87,11 +88,11 @@
def retranslateUi(self, book_name_dialog):
book_name_dialog.setWindowTitle(translate('BiblesPlugin.BookNameDialog', 'Select Book Name'))
- self.info_label.setText(translate('BiblesPlugin.BookNameDialog',
- 'The following book name cannot be matched up internally. '
- 'Please select the corresponding name from the list.'))
- self.currentLabel.setText(translate('BiblesPlugin.BookNameDialog', 'Current name:'))
- self.correspondingLabel.setText(translate('BiblesPlugin.BookNameDialog', 'Corresponding name:'))
+ self.info_label.setText(
+ translate('BiblesPlugin.BookNameDialog', 'The following book name cannot be matched up internally. '
+ 'Please select the corresponding name from the list.'))
+ self.current_label.setText(translate('BiblesPlugin.BookNameDialog', 'Current name:'))
+ self.corresponding_label.setText(translate('BiblesPlugin.BookNameDialog', 'Corresponding name:'))
self.options_group_box.setTitle(translate('BiblesPlugin.BookNameDialog', 'Show Books From'))
self.old_testament_check_box.setText(translate('BiblesPlugin.BookNameDialog', 'Old Testament'))
self.new_testament_check_box.setText(translate('BiblesPlugin.BookNameDialog', 'New Testament'))
=== modified file 'openlp/plugins/bibles/forms/booknameform.py'
--- openlp/plugins/bibles/forms/booknameform.py 2013-12-24 08:56:50 +0000
+++ openlp/plugins/bibles/forms/booknameform.py 2014-03-21 21:59:15 +0000
@@ -52,7 +52,7 @@
"""
log.info('BookNameForm loaded')
- def __init__(self, parent = None):
+ def __init__(self, parent=None):
"""
Constructor
"""
@@ -66,11 +66,11 @@
"""
Set up the signals used in the booknameform.
"""
- self.old_testament_check_box.stateChanged.connect(self.onCheckBoxIndexChanged)
- self.new_testament_check_box.stateChanged.connect(self.onCheckBoxIndexChanged)
- self.apocrypha_check_box.stateChanged.connect(self.onCheckBoxIndexChanged)
+ self.old_testament_check_box.stateChanged.connect(self.on_check_box_index_changed)
+ self.new_testament_check_box.stateChanged.connect(self.on_check_box_index_changed)
+ self.apocrypha_check_box.stateChanged.connect(self.on_check_box_index_changed)
- def onCheckBoxIndexChanged(self, index):
+ def on_check_box_index_changed(self, index):
"""
Reload Combobox if CheckBox state has changed
"""
@@ -119,7 +119,8 @@
cor_book = self.corresponding_combo_box.currentText()
for character in '\\.^$*+?{}[]()':
cor_book = cor_book.replace(character, '\\' + character)
- books = [key for key in list(self.book_names.keys()) if re.match(cor_book, str(self.book_names[key]), re.UNICODE)]
+ books = [key for key in list(self.book_names.keys()) if re.match(cor_book, str(self.book_names[key]),
+ re.UNICODE)]
books = [_f for _f in map(BiblesResourcesDB.get_book, books) if _f]
if books:
self.book_id = books[0]['id']
=== modified file 'openlp/plugins/bibles/forms/editbibledialog.py'
--- openlp/plugins/bibles/forms/editbibledialog.py 2013-12-24 08:56:50 +0000
+++ openlp/plugins/bibles/forms/editbibledialog.py 2014-03-21 21:59:15 +0000
@@ -107,7 +107,7 @@
self.book_name_widget_layout = QtGui.QFormLayout(self.book_name_widget)
self.book_name_widget_layout.setObjectName('book_name_widget_layout')
self.book_name_label = {}
- self.book_name_edit= {}
+ self.book_name_edit = {}
for book in BiblesResourcesDB.get_books():
self.book_name_label[book['abbreviation']] = QtGui.QLabel(self.book_name_widget)
self.book_name_label[book['abbreviation']].setObjectName('book_name_label[%s]' % book['abbreviation'])
@@ -131,24 +131,28 @@
self.book_names = BibleStrings().BookNames
edit_bible_dialog.setWindowTitle(translate('BiblesPlugin.EditBibleForm', 'Bible Editor'))
# Meta tab
- self.bible_tab_widget.setTabText( self.bible_tab_widget.indexOf(self.meta_tab),
- translate('SongsPlugin.EditBibleForm', 'Meta Data'))
+ self.bible_tab_widget.setTabText(
+ self.bible_tab_widget.indexOf(self.meta_tab), translate('SongsPlugin.EditBibleForm', 'Meta Data'))
self.license_details_group_box.setTitle(translate('BiblesPlugin.EditBibleForm', 'License Details'))
self.version_name_label.setText(translate('BiblesPlugin.EditBibleForm', 'Version name:'))
self.copyright_label.setText(translate('BiblesPlugin.EditBibleForm', 'Copyright:'))
self.permissions_label.setText(translate('BiblesPlugin.EditBibleForm', 'Permissions:'))
self.language_selection_group_box.setTitle(translate('BiblesPlugin.EditBibleForm', 'Default Bible Language'))
- self.language_selection_label.setText(translate('BiblesPlugin.EditBibleForm',
- 'Book name language in search field, search results and on display:'))
+ self.language_selection_label.setText(
+ translate('BiblesPlugin.EditBibleForm', 'Book name language in search field, search results and '
+ 'on display:'))
self.language_selection_combo_box.setItemText(0, translate('BiblesPlugin.EditBibleForm', 'Global Settings'))
- self.language_selection_combo_box.setItemText(LanguageSelection.Bible + 1,
+ self.language_selection_combo_box.setItemText(
+ LanguageSelection.Bible + 1,
translate('BiblesPlugin.EditBibleForm', 'Bible Language'))
- self.language_selection_combo_box.setItemText(LanguageSelection.Application + 1,
- translate('BiblesPlugin.EditBibleForm', 'Application Language'))
- self.language_selection_combo_box.setItemText(LanguageSelection.English + 1,
+ self.language_selection_combo_box.setItemText(
+ LanguageSelection.Application + 1, translate('BiblesPlugin.EditBibleForm', 'Application Language'))
+ self.language_selection_combo_box.setItemText(
+ LanguageSelection.English + 1,
translate('BiblesPlugin.EditBibleForm', 'English'))
# Book name tab
- self.bible_tab_widget.setTabText(self.bible_tab_widget.indexOf(self.book_name_tab),
+ self.bible_tab_widget.setTabText(
+ self.bible_tab_widget.indexOf(self.book_name_tab),
translate('SongsPlugin.EditBibleForm', 'Custom Book Names'))
for book in BiblesResourcesDB.get_books():
self.book_name_label[book['abbreviation']].setText('%s:' % str(self.book_names[book['abbreviation']]))
=== modified file 'openlp/plugins/bibles/forms/editbibleform.py'
--- openlp/plugins/bibles/forms/editbibleform.py 2014-03-18 20:36:02 +0000
+++ openlp/plugins/bibles/forms/editbibleform.py 2014-03-21 21:59:15 +0000
@@ -176,7 +176,7 @@
critical_error_message_box(
UiStrings().EmptyField,
translate('BiblesPlugin.BibleEditForm', 'You need to specify a book name for "%s".') %
- self.book_names[abbreviation])
+ self.book_names[abbreviation])
return False
elif not book_regex.match(new_book_name):
self.book_name_edit[abbreviation].setFocus()
=== modified file 'openlp/plugins/bibles/forms/languagedialog.py'
--- openlp/plugins/bibles/forms/languagedialog.py 2013-12-24 08:56:50 +0000
+++ openlp/plugins/bibles/forms/languagedialog.py 2014-03-21 21:59:15 +0000
@@ -32,6 +32,7 @@
from openlp.core.common import translate
from openlp.core.lib.ui import create_button_box
+
class Ui_LanguageDialog(object):
def setupUi(self, language_dialog):
language_dialog.setObjectName('language_dialog')
@@ -54,11 +55,11 @@
self.language_label.setObjectName('language_label')
self.language_h_box_layout.addWidget(self.language_label)
self.language_combo_box = QtGui.QComboBox(language_dialog)
- sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.MinimumExpanding, QtGui.QSizePolicy.Fixed)
- sizePolicy.setHorizontalStretch(0)
- sizePolicy.setVerticalStretch(0)
- sizePolicy.setHeightForWidth(self.language_combo_box.sizePolicy().hasHeightForWidth())
- self.language_combo_box.setSizePolicy(sizePolicy)
+ size_policy = QtGui.QSizePolicy(QtGui.QSizePolicy.MinimumExpanding, QtGui.QSizePolicy.Fixed)
+ size_policy.setHorizontalStretch(0)
+ size_policy.setVerticalStretch(0)
+ size_policy.setHeightForWidth(self.language_combo_box.sizePolicy().hasHeightForWidth())
+ self.language_combo_box.setSizePolicy(size_policy)
self.language_combo_box.setObjectName('language_combo_box')
self.language_h_box_layout.addWidget(self.language_combo_box)
self.language_layout.addLayout(self.language_h_box_layout)
@@ -70,7 +71,8 @@
def retranslateUi(self, language_dialog):
language_dialog.setWindowTitle(translate('BiblesPlugin.LanguageDialog', 'Select Language'))
self.bible_label.setText(translate('BiblesPlugin.LanguageDialog', ''))
- self.info_label.setText(translate('BiblesPlugin.LanguageDialog',
- 'OpenLP is unable to determine the language of this translation of the Bible. Please select the language '
- 'from the list below.'))
+ self.info_label.setText(
+ translate('BiblesPlugin.LanguageDialog',
+ 'OpenLP is unable to determine the language of this translation of the Bible. Please select '
+ 'the language from the list below.'))
self.language_label.setText(translate('BiblesPlugin.LanguageDialog', 'Language:'))
=== modified file 'openlp/plugins/bibles/forms/languageform.py'
--- openlp/plugins/bibles/forms/languageform.py 2013-12-24 08:56:50 +0000
+++ openlp/plugins/bibles/forms/languageform.py 2014-03-21 21:59:15 +0000
@@ -36,8 +36,7 @@
from openlp.core.common import translate
from openlp.core.lib.ui import critical_error_message_box
-from openlp.plugins.bibles.forms.languagedialog import \
- Ui_LanguageDialog
+from openlp.plugins.bibles.forms.languagedialog import Ui_LanguageDialog
from openlp.plugins.bibles.lib.db import BiblesResourcesDB
=== modified file 'openlp/plugins/bibles/lib/__init__.py'
--- openlp/plugins/bibles/lib/__init__.py 2014-03-11 20:10:46 +0000
+++ openlp/plugins/bibles/lib/__init__.py 2014-03-21 21:59:15 +0000
@@ -218,9 +218,10 @@
REFERENCE_MATCHES['range'] = re.compile('^\s*%s\s*$' % range_regex, re.UNICODE)
REFERENCE_MATCHES['range_separator'] = re.compile(REFERENCE_SEPARATORS['sep_l'], re.UNICODE)
# full reference match: <book>(<range>(,(?!$)|(?=$)))+
- REFERENCE_MATCHES['full'] = re.compile('^\s*(?!\s)(?P<book>[\d]*[^\d]+)(?<!\s)\s*'
- '(?P<ranges>(?:%(range_regex)s(?:%(sep_l)s(?!\s*$)|(?=\s*$)))+)\s*$' \
- % dict(list(REFERENCE_SEPARATORS.items()) + [('range_regex', range_regex)]), re.UNICODE)
+ REFERENCE_MATCHES['full'] = \
+ re.compile('^\s*(?!\s)(?P<book>[\d]*[^\d]+)(?<!\s)\s*'
+ '(?P<ranges>(?:%(range_regex)s(?:%(sep_l)s(?!\s*$)|(?=\s*$)))+)\s*$'
+ % dict(list(REFERENCE_SEPARATORS.items()) + [('range_regex', range_regex)]), re.UNICODE)
def get_reference_separator(separator_type):
=== modified file 'openlp/plugins/bibles/lib/biblestab.py'
--- openlp/plugins/bibles/lib/biblestab.py 2014-03-08 22:02:34 +0000
+++ openlp/plugins/bibles/lib/biblestab.py 2014-03-21 21:59:15 +0000
@@ -422,7 +422,7 @@
color.setAlpha(128)
palette.setColor(QtGui.QPalette.Active, QtGui.QPalette.Text, color)
return palette
-
+
def check_is_verse_number_visible(self):
"""
Enables / Disables verse settings dependent on is_verse_number_visible
@@ -430,4 +430,3 @@
self.new_chapters_check_box.setEnabled(self.is_verse_number_visible)
self.display_style_label.setEnabled(self.is_verse_number_visible)
self.display_style_combo_box.setEnabled(self.is_verse_number_visible)
-
=== modified file 'openlp/plugins/bibles/lib/db.py'
--- openlp/plugins/bibles/lib/db.py 2014-03-18 20:36:02 +0000
+++ openlp/plugins/bibles/lib/db.py 2014-03-21 21:59:15 +0000
@@ -80,23 +80,20 @@
meta_table = Table('metadata', metadata,
Column('key', types.Unicode(255), primary_key=True, index=True),
- Column('value', types.Unicode(255)),
- )
+ Column('value', types.Unicode(255)),)
book_table = Table('book', metadata,
Column('id', types.Integer, primary_key=True),
Column('book_reference_id', types.Integer, index=True),
Column('testament_reference_id', types.Integer),
- Column('name', types.Unicode(50), index=True),
- )
+ Column('name', types.Unicode(50), index=True),)
verse_table = Table('verse', metadata,
Column('id', types.Integer, primary_key=True, index=True),
Column('book_id', types.Integer, ForeignKey(
'book.id'), index=True),
Column('chapter', types.Integer, index=True),
Column('verse', types.Integer, index=True),
- Column('text', types.UnicodeText, index=True),
- )
+ Column('text', types.UnicodeText, index=True),)
try:
class_mapper(BibleMeta)
@@ -225,7 +222,8 @@
:param book_id: The id of the book being appended.
:param chapter: The chapter number.
- :param text_list: A dict of the verses to be inserted. The key is the verse number, and the value is the verse text.
+ :param text_list: A dict of the verses to be inserted. The key is the verse number, and the value is the
+ verse text.
"""
log.debug('BibleDBcreate_chapter("%s", "%s")', book_id, chapter)
# Text list has book and chapter as first two elements of the array.
@@ -437,7 +435,7 @@
"""
log.debug('BibleDB.get_chapter_count("%s")', book.name)
count = self.session.query(func.max(Verse.chapter)).join(Book).filter(
- Book.book_reference_id==book.book_reference_id).scalar()
+ Book.book_reference_id == book.book_reference_id).scalar()
if not count:
return 0
return count
@@ -718,8 +716,8 @@
if not isinstance(source, str):
source = str(source)
source = BiblesResourcesDB.get_download_source(source)
- bibles = BiblesResourcesDB.run_sql('SELECT id, name, abbreviation, '
- 'language_id, download_source_id FROM webbibles WHERE download_source_id = ?', (source['id'],))
+ bibles = BiblesResourcesDB.run_sql('SELECT id, name, abbreviation, language_id, download_source_id '
+ 'FROM webbibles WHERE download_source_id = ?', (source['id'],))
if bibles:
return [{
'id': bible[0],
@@ -824,10 +822,9 @@
log.debug('BiblesResourcesDB.get_testament_reference()')
testaments = BiblesResourcesDB.run_sql('SELECT id, name FROM testament_reference ORDER BY id')
return [
- {
- 'id': testament[0],
- 'name': str(testament[1])
- }
+ {'id': testament[0],
+ 'name': str(testament[1])
+ }
for testament in testaments
]
@@ -934,7 +931,7 @@
QtCore.QObject.__init__(self)
if 'path' not in kwargs:
raise KeyError('Missing keyword argument "path".')
- if 'file' not in kwargs:
+ if 'file' not in kwargs:
raise KeyError('Missing keyword argument "file".')
if 'path' in kwargs:
self.path = kwargs['path']
=== modified file 'openlp/plugins/bibles/lib/http.py'
--- openlp/plugins/bibles/lib/http.py 2014-03-18 20:36:02 +0000
+++ openlp/plugins/bibles/lib/http.py 2014-03-21 21:59:15 +0000
@@ -32,7 +32,9 @@
import logging
import re
import socket
-import urllib.request, urllib.parse, urllib.error
+import urllib.request
+import urllib.parse
+import urllib.error
from html.parser import HTMLParseError
from bs4 import BeautifulSoup, NavigableString, Tag
@@ -487,7 +489,7 @@
(self.download_source, self.download_name))
return False
self.wizard.progress_bar.setMaximum(len(books) + 2)
- self.wizard.increment_progress_bar(translate( 'BiblesPlugin.HTTPBible', 'Registering Language...'))
+ self.wizard.increment_progress_bar(translate('BiblesPlugin.HTTPBible', 'Registering Language...'))
bible = BiblesResourcesDB.get_webbible(self.download_name, self.download_source.lower())
if bible['language_id']:
language_id = bible['language_id']
=== modified file 'openlp/plugins/bibles/lib/mediaitem.py'
--- openlp/plugins/bibles/lib/mediaitem.py 2014-03-17 19:05:55 +0000
+++ openlp/plugins/bibles/lib/mediaitem.py 2014-03-21 21:59:15 +0000
@@ -664,7 +664,7 @@
db_book = bibles[second_bible].get_book_by_book_ref_id(verse.book.book_reference_id)
if not db_book:
log.debug('Passage "%s %d:%d" not found in Second Bible' %
- (verse.book.name, verse.chapter, verse.verse))
+ (verse.book.name, verse.chapter, verse.verse))
passage_not_found = True
count += 1
continue
@@ -910,8 +910,8 @@
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.plugin.manager.get_verse_count(old_bible, old_book, old_chapter)):
+ elif old_chapter + 1 == chapter and (verse != 1 or old_verse !=
+ self.plugin.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 chapter or the current verse is not the
# first one of the chapter.
=== modified file 'openlp/plugins/custom/forms/editcustomslidedialog.py'
--- openlp/plugins/custom/forms/editcustomslidedialog.py 2013-12-24 08:56:50 +0000
+++ openlp/plugins/custom/forms/editcustomslidedialog.py 2014-03-21 21:59:15 +0000
@@ -33,6 +33,7 @@
from openlp.core.lib import SpellTextEdit
from openlp.core.lib.ui import create_button, create_button_box
+
class Ui_CustomSlideEditDialog(object):
def setupUi(self, custom_slide_edit_dialog):
custom_slide_edit_dialog.setObjectName('custom_slide_edit_dialog')
@@ -45,7 +46,7 @@
self.insert_button = create_button(custom_slide_edit_dialog, 'insertButton',
icon=':/general/general_add.png')
self.button_box = create_button_box(custom_slide_edit_dialog, 'button_box', ['cancel', 'save'],
- [self.split_button, self.insert_button])
+ [self.split_button, self.insert_button])
self.dialog_layout.addWidget(self.button_box)
self.retranslateUi(custom_slide_edit_dialog)
=== modified file 'openlp/plugins/custom/lib/mediaitem.py'
--- openlp/plugins/custom/lib/mediaitem.py 2014-01-01 10:56:23 +0000
+++ openlp/plugins/custom/lib/mediaitem.py 2014-03-21 21:59:15 +0000
@@ -33,8 +33,8 @@
from sqlalchemy.sql import or_, func, and_
from openlp.core.common import Registry, Settings, UiStrings, translate
-from openlp.core.lib import MediaManagerItem, ItemCapabilities, ServiceItemContext, PluginStatus,\
- check_item_selected
+from openlp.core.lib import MediaManagerItem, ItemCapabilities, ServiceItemContext, PluginStatus, \
+ check_item_selected
from openlp.plugins.custom.forms.editcustomform import EditCustomForm
from openlp.plugins.custom.lib import CustomXMLParser, CustomXMLBuilder
from openlp.plugins.custom.lib.db import CustomSlide
@@ -105,12 +105,10 @@
"""
Initialise the UI so it can provide Searches
"""
- self.search_text_edit.set_search_types([(CustomSearch.Titles, ':/songs/song_search_title.png',
- translate('SongsPlugin.MediaItem', 'Titles'),
- translate('SongsPlugin.MediaItem', 'Search Titles...')),
- (CustomSearch.Themes, ':/slides/slide_theme.png', UiStrings().Themes,
- UiStrings().SearchThemes)
- ])
+ self.search_text_edit.set_search_types(
+ [(CustomSearch.Titles, ':/songs/song_search_title.png', translate('SongsPlugin.MediaItem', 'Titles'),
+ translate('SongsPlugin.MediaItem', 'Search Titles...')),
+ (CustomSearch.Themes, ':/slides/slide_theme.png', UiStrings().Themes, UiStrings().SearchThemes)])
self.search_text_edit.set_current_search_type(Settings().value('%s/last search type' % self.settings_section))
self.load_list(self.plugin.db_manager.get_all_objects(CustomSlide, order_by_ref=CustomSlide.title))
self.config_update()
@@ -191,10 +189,9 @@
if QtGui.QMessageBox.question(self, UiStrings().ConfirmDelete,
translate('CustomPlugin.MediaItem',
'Are you sure you want to delete the %n selected custom slide(s)?',
- '',
- QtCore.QCoreApplication.CodecForTr, len(items)),
- QtGui.QMessageBox.StandardButtons(QtGui.QMessageBox.Yes
- | QtGui.QMessageBox.No),
+ '', QtCore.QCoreApplication.CodecForTr, len(items)),
+ QtGui.QMessageBox.StandardButtons(
+ QtGui.QMessageBox.Yes | QtGui.QMessageBox.No),
QtGui.QMessageBox.Yes) == QtGui.QMessageBox.No:
return
row_list = [item.row() for item in self.list_view.selectedIndexes()]
@@ -348,4 +345,3 @@
func.lower(CustomSlide.text).like(search)),
order_by_ref=CustomSlide.title)
return [[custom.id, custom.title] for custom in search_results]
-
=== modified file 'openlp/plugins/images/forms/addgroupform.py'
--- openlp/plugins/images/forms/addgroupform.py 2014-03-08 20:39:36 +0000
+++ openlp/plugins/images/forms/addgroupform.py 2014-03-21 21:59:15 +0000
@@ -50,7 +50,8 @@
Show the form.
:param clear: Set to False if the text input box should not be cleared when showing the dialog (default: True).
- :param show_top_level_group: Set to True when "-- Top level group --" should be showed as first item (default: False).
+ :param show_top_level_group: Set to True when "-- Top level group --" should be showed as first item
+ (default: False).
:param selected_group: The ID of the group that should be selected by default when showing the dialog.
"""
if clear:
=== modified file 'openlp/plugins/images/lib/mediaitem.py'
--- openlp/plugins/images/lib/mediaitem.py 2014-03-08 20:53:22 +0000
+++ openlp/plugins/images/lib/mediaitem.py 2014-03-21 21:59:15 +0000
@@ -327,7 +327,8 @@
:param images: A List of Image Filenames objects that will be used to reload the mediamanager list.
:param initial_load: When set to False, the busy cursor and progressbar will be shown while loading images.
- :param open_group: ImageGroups object of the group that must be expanded after reloading the list in the interface.
+ :param open_group: ImageGroups object of the group that must be expanded after reloading the list in the
+ interface.
"""
if not initial_load:
self.application.set_busy_cursor()
@@ -462,7 +463,8 @@
:param images_list: A List of strings containing image filenames
:param group_id: The ID of the group to save the images in
- :param reload_list: This boolean is set to True when the list in the interface should be reloaded after saving the new images
+ :param reload_list: This boolean is set to True when the list in the interface should be reloaded after saving
+ the new images
"""
for filename in images_list:
if not isinstance(filename, str):
=== modified file 'openlp/plugins/media/lib/mediaitem.py'
--- openlp/plugins/media/lib/mediaitem.py 2014-03-17 07:14:51 +0000
+++ openlp/plugins/media/lib/mediaitem.py 2014-03-21 21:59:15 +0000
@@ -34,7 +34,7 @@
from openlp.core.common import Registry, RegistryProperties, AppLocation, Settings, check_directory_exists, UiStrings,\
translate
-from openlp.core.lib import ItemCapabilities, MediaManagerItem,MediaType, ServiceItem, ServiceItemContext, \
+from openlp.core.lib import ItemCapabilities, MediaManagerItem, MediaType, ServiceItem, ServiceItemContext, \
build_icon, check_item_selected
from openlp.core.lib.ui import critical_error_message_box, create_horizontal_adjusting_combo_box
from openlp.core.ui import DisplayController, Display, DisplayControllerType
@@ -161,7 +161,7 @@
Called to replace Live background with the media selected.
"""
if check_item_selected(self.list_view,
- translate('MediaPlugin.MediaItem',
+ translate('MediaPlugin.MediaItem',
'You must select a media file to replace the background with.')):
item = self.list_view.currentItem()
filename = item.data(QtCore.Qt.UserRole)
@@ -170,12 +170,12 @@
service_item.title = 'webkit'
service_item.processor = 'webkit'
(path, name) = os.path.split(filename)
- service_item.add_from_command(path, name,CLAPPERBOARD)
+ service_item.add_from_command(path, name, CLAPPERBOARD)
if self.media_controller.video(DisplayControllerType.Live, service_item, video_behind_text=True):
self.reset_action.setVisible(True)
else:
critical_error_message_box(UiStrings().LiveBGError,
- translate('MediaPlugin.MediaItem',
+ translate('MediaPlugin.MediaItem',
'There was no display item to amend.'))
else:
critical_error_message_box(UiStrings().LiveBGError,
=== modified file 'openlp/plugins/presentations/lib/impresscontroller.py'
--- openlp/plugins/presentations/lib/impresscontroller.py 2014-03-08 21:23:47 +0000
+++ openlp/plugins/presentations/lib/impresscontroller.py 2014-03-21 21:59:15 +0000
@@ -29,7 +29,8 @@
# OOo API documentation:
# http://api.openoffice.org/docs/common/ref/com/sun/star/presentation/XSlideShowController.html
-# http://wiki.services.openoffice.org/wiki/Documentation/DevGuide/ProUNO/Basic/Getting_Information_about_UNO_Objects#Inspecting_interfaces_during_debugging
+# http://wiki.services.openoffice.org/wiki/Documentation/DevGuide/ProUNO/Basic
+# /Getting_Information_about_UNO_Objects#Inspecting_interfaces_during_debugging
# http://docs.go-oo.org/sd/html/classsd_1_1SlideShow.html
# http://www.oooforum.org/forum/viewtopic.phtml?t=5252
# http://wiki.services.openoffice.org/wiki/Documentation/DevGuide/Working_with_Presentations
@@ -45,6 +46,7 @@
from win32com.client import Dispatch
import pywintypes
# Declare an empty exception to match the exception imported from UNO
+
class ErrorCodeIOException(Exception):
pass
else:
@@ -204,7 +206,7 @@
Class which holds information and controls a single presentation.
"""
- def __init__ (self, controller, presentation):
+ def __init__(self, controller, presentation):
"""
Constructor, store information about the file and initialise.
"""
@@ -353,7 +355,7 @@
log.debug('unblank screen OpenOffice')
return self.control.resume()
- def blank_screen (self):
+ def blank_screen(self):
"""
Blanks the screen.
"""
=== modified file 'openlp/plugins/presentations/lib/pdfcontroller.py'
--- openlp/plugins/presentations/lib/pdfcontroller.py 2014-03-14 17:34:36 +0000
+++ openlp/plugins/presentations/lib/pdfcontroller.py 2014-03-21 21:59:15 +0000
@@ -132,7 +132,8 @@
DEVNULL = open(os.devnull, 'wb')
# First try to find mupdf
try:
- self.mudrawbin = check_output(['which', 'mudraw'], stderr=DEVNULL).decode(encoding='UTF-8').rstrip('\n')
+ self.mudrawbin = check_output(['which', 'mudraw'],
+ stderr=DEVNULL).decode(encoding='UTF-8').rstrip('\n')
except CalledProcessError:
self.mudrawbin = ''
# if mupdf isn't installed, fallback to ghostscript
@@ -192,7 +193,8 @@
:return: The resolution dpi to be used.
"""
# Use a postscript script to get size of the pdf. It is assumed that all pages have same size
- gs_resolution_script = AppLocation.get_directory(AppLocation.PluginsDir) + '/presentations/lib/ghostscript_get_resolution.ps'
+ gs_resolution_script = AppLocation.get_directory(
+ AppLocation.PluginsDir) + '/presentations/lib/ghostscript_get_resolution.ps'
# Run the script on the pdf to get the size
runlog = []
try:
=== modified file 'openlp/plugins/presentations/lib/pptviewlib/ppttest.py'
--- openlp/plugins/presentations/lib/pptviewlib/ppttest.py 2013-12-24 08:56:50 +0000
+++ openlp/plugins/presentations/lib/pptviewlib/ppttest.py 2014-03-21 21:59:15 +0000
@@ -32,6 +32,7 @@
from ctypes import *
from ctypes.wintypes import RECT
+
class PPTViewer(QtGui.QWidget):
"""
Standalone Test Harness for the pptviewlib library
@@ -169,16 +170,16 @@
app.processEvents()
def openClick(self):
- oldid = self.pptid;
+ oldid = self.pptid
rect = RECT(int(self.xEdit.text()), int(self.yEdit.text()),
- int(self.widthEdit.text()), int(self.heightEdit.text()))
+ int(self.widthEdit.text()), int(self.heightEdit.text()))
filename = str(self.pptEdit.text().replace('/', '\\'))
folder = str(self.folderEdit.text().replace('/', '\\'))
print(filename, folder)
self.pptid = self.pptdll.OpenPPT(filename, None, rect, folder)
print('id: ' + str(self.pptid))
if oldid >= 0:
- self.pptdll.ClosePPT(oldid);
+ self.pptdll.ClosePPT(oldid)
slides = self.pptdll.GetSlideCount(self.pptid)
print('slidecount: ' + str(slides))
self.total.setNum(self.pptdll.GetSlideCount(self.pptid))
@@ -201,8 +202,7 @@
app.processEvents()
def openDialog(self):
- self.pptEdit.setText(QtGui.QFileDialog.getOpenFileName(self,
- 'Open file'))
+ self.pptEdit.setText(QtGui.QFileDialog.getOpenFileName(self, 'Open file'))
if __name__ == '__main__':
pptdll = cdll.LoadLibrary(r'pptviewlib.dll')
=== modified file 'openlp/plugins/remotes/lib/httpserver.py'
--- openlp/plugins/remotes/lib/httpserver.py 2014-03-17 19:05:55 +0000
+++ openlp/plugins/remotes/lib/httpserver.py 2014-03-21 21:59:15 +0000
@@ -144,6 +144,3 @@
server_side=True)
self.server_bind()
self.server_activate()
-
-
-
=== modified file 'openlp/plugins/remotes/lib/remotetab.py'
--- openlp/plugins/remotes/lib/remotetab.py 2014-03-17 19:05:55 +0000
+++ openlp/plugins/remotes/lib/remotetab.py 2014-03-21 21:59:15 +0000
@@ -225,7 +225,8 @@
continue
for address in interface.addressEntries():
ip = address.ip()
- if ip.protocol() == QtNetwork.QAbstractSocket.IPv4Protocol and ip != QtNetwork.QHostAddress.LocalHost:
+ if ip.protocol() == QtNetwork.QAbstractSocket.IPv4Protocol and \
+ ip != QtNetwork.QHostAddress.LocalHost:
return ip.toString()
return ip_address
@@ -262,9 +263,9 @@
Settings().value(self.settings_section + '/port') != self.port_spin_box.value() or \
Settings().value(self.settings_section + '/https port') != self.https_port_spin_box.value() or \
Settings().value(self.settings_section + '/https enabled') != \
- self.https_settings_group_box.isChecked() or \
+ self.https_settings_group_box.isChecked() or \
Settings().value(self.settings_section + '/authentication enabled') != \
- self.user_login_group_box.isChecked():
+ self.user_login_group_box.isChecked():
self.settings_form.register_post_process('remotes_config_updated')
Settings().setValue(self.settings_section + '/port', self.port_spin_box.value())
Settings().setValue(self.settings_section + '/https port', self.https_port_spin_box.value())
=== modified file 'openlp/plugins/remotes/remoteplugin.py'
--- openlp/plugins/remotes/remoteplugin.py 2014-03-17 19:05:55 +0000
+++ openlp/plugins/remotes/remoteplugin.py 2014-03-21 21:59:15 +0000
@@ -36,14 +36,14 @@
log = logging.getLogger(__name__)
__default_settings__ = {
- 'remotes/twelve hour': True,
- 'remotes/port': 4316,
- 'remotes/https port': 4317,
- 'remotes/https enabled': False,
- 'remotes/user id': 'openlp',
- 'remotes/password': 'password',
- 'remotes/authentication enabled': False,
- 'remotes/ip address': '0.0.0.0'
+ 'remotes/twelve hour': True,
+ 'remotes/port': 4316,
+ 'remotes/https port': 4317,
+ 'remotes/https enabled': False,
+ 'remotes/user id': 'openlp',
+ 'remotes/password': 'password',
+ 'remotes/authentication enabled': False,
+ 'remotes/ip address': '0.0.0.0'
}
=== modified file 'openlp/plugins/songs/forms/duplicatesongremovalform.py'
--- openlp/plugins/songs/forms/duplicatesongremovalform.py 2014-03-16 21:25:23 +0000
+++ openlp/plugins/songs/forms/duplicatesongremovalform.py 2014-03-21 21:59:15 +0000
@@ -64,8 +64,8 @@
# Used to interrupt ongoing searches when cancel is clicked.
self.break_search = False
super(DuplicateSongRemovalForm, self).__init__(
- Registry().get('main_window'), plugin, 'duplicateSongRemovalWizard', ':/wizards/wizard_duplicateremoval.bmp'
- , False)
+ Registry().get('main_window'), plugin, 'duplicateSongRemovalWizard',
+ ':/wizards/wizard_duplicateremoval.bmp', False)
self.setMinimumWidth(730)
def custom_signals(self):
@@ -327,4 +327,4 @@
self.button(QtGui.QWizard.FinishButton).show()
self.button(QtGui.QWizard.FinishButton).setEnabled(True)
self.button(QtGui.QWizard.NextButton).hide()
- self.button(QtGui.QWizard.CancelButton).hide()
\ No newline at end of file
+ self.button(QtGui.QWizard.CancelButton).hide()
=== modified file 'openlp/plugins/songs/forms/editsongform.py'
--- openlp/plugins/songs/forms/editsongform.py 2014-03-16 21:25:23 +0000
+++ openlp/plugins/songs/forms/editsongform.py 2014-03-21 21:59:15 +0000
@@ -185,11 +185,11 @@
if len(invalid_verses) > 1:
msg = translate('SongsPlugin.EditSongForm', 'There are no verses corresponding to "%(invalid)s".'
'Valid entries are %(valid)s.\nPlease enter the verses separated by spaces.') % \
- {'invalid': ', '.join(invalid_verses), 'valid' : valid}
+ {'invalid': ', '.join(invalid_verses), 'valid': valid}
else:
msg = translate('SongsPlugin.EditSongForm', 'There is no verse corresponding to "%(invalid)s".'
'Valid entries are %(valid)s.\nPlease enter the verses separated by spaces.') % \
- {'invalid': invalid_verses[0], 'valid' : valid}
+ {'invalid': invalid_verses[0], 'valid': valid}
critical_error_message_box(title=translate('SongsPlugin.EditSongForm', 'Invalid Verse Order'),
message=msg)
return len(invalid_verses) == 0
@@ -257,7 +257,7 @@
self.song.lyrics = str(sxml.extract_xml(), 'utf-8')
for verse in multiple:
self.song.verse_order = re.sub('([' + verse.upper() + verse.lower() + '])(\W|$)',
- r'\g<1>1\2', self.song.verse_order)
+ r'\g<1>1\2', self.song.verse_order)
except:
log.exception('Problem processing song Lyrics \n%s', sxml.dump_xml())
raise
@@ -955,4 +955,4 @@
log.exception('Could not remove directory: %s', save_path)
clean_song(self.manager, self.song)
self.manager.save_object(self.song)
- self.media_item.auto_select_id = self.song.id
\ No newline at end of file
+ self.media_item.auto_select_id = self.song.id
=== modified file 'openlp/plugins/songs/forms/mediafilesdialog.py'
--- openlp/plugins/songs/forms/mediafilesdialog.py 2014-03-04 18:49:30 +0000
+++ openlp/plugins/songs/forms/mediafilesdialog.py 2014-03-21 21:59:15 +0000
@@ -71,4 +71,3 @@
self.select_label.setText(translate('SongsPlugin.MediaFilesForm',
'Select one or more audio files from the list below, and click OK to import them '
'into this song.'))
-
=== modified file 'openlp/plugins/songs/forms/mediafilesform.py'
--- openlp/plugins/songs/forms/mediafilesform.py 2014-03-04 18:49:30 +0000
+++ openlp/plugins/songs/forms/mediafilesform.py 2014-03-21 21:59:15 +0000
@@ -56,4 +56,3 @@
def get_selected_files(self):
return [item.data(QtCore.Qt.UserRole) for item in self.file_list_widget.selectedItems()]
-
=== modified file 'openlp/plugins/songs/forms/songimportform.py'
--- openlp/plugins/songs/forms/songimportform.py 2014-03-17 07:14:51 +0000
+++ openlp/plugins/songs/forms/songimportform.py 2014-03-21 21:59:15 +0000
@@ -99,7 +99,8 @@
self.format_widgets[song_format]['removeButton'].clicked.connect(self.on_remove_button_clicked)
else:
self.format_widgets[song_format]['browseButton'].clicked.connect(self.on_browse_button_clicked)
- self.format_widgets[song_format]['file_path_edit'].textChanged.connect(self.on_filepath_edit_text_changed)
+ self.format_widgets[song_format]['file_path_edit'].textChanged.\
+ connect(self.on_filepath_edit_text_changed)
def add_custom_pages(self):
"""
@@ -163,7 +164,8 @@
f_label = 'Filename:'
if select_mode == SongFormatSelect.SingleFolder:
f_label = 'Folder:'
- self.format_widgets[format_list]['filepathLabel'].setText(translate('SongsPlugin.ImportWizardForm', f_label))
+ self.format_widgets[format_list]['filepathLabel'].setText(
+ translate('SongsPlugin.ImportWizardForm', f_label))
for format_list in self.disablable_formats:
self.format_widgets[format_list]['disabled_label'].setText(SongFormat.get(format_list, 'disabledLabelText'))
self.progress_page.setTitle(WizardStrings.Importing)
@@ -244,7 +246,7 @@
if file_names:
listbox.addItems(file_names)
Settings().setValue(self.plugin.settings_section + '/last directory import',
- os.path.split(str(file_names[0]))[0])
+ os.path.split(str(file_names[0]))[0])
def get_list_of_files(self, list_box):
"""
=== modified file 'openlp/plugins/songs/forms/songmaintenancedialog.py'
--- openlp/plugins/songs/forms/songmaintenancedialog.py 2014-03-04 18:49:30 +0000
+++ openlp/plugins/songs/forms/songmaintenancedialog.py 2014-03-21 21:59:15 +0000
@@ -162,6 +162,6 @@
self.edit_book_button.setText(UiStrings().Edit)
self.delete_book_button.setText(UiStrings().Delete)
type_list_width = max(self.fontMetrics().width(SongStrings.Authors),
- self.fontMetrics().width(SongStrings.Topics),
- self.fontMetrics().width(SongStrings.SongBooks))
+ self.fontMetrics().width(SongStrings.Topics),
+ self.fontMetrics().width(SongStrings.SongBooks))
self.type_list_widget.setFixedWidth(type_list_width + self.type_list_widget.iconSize().width() + 32)
=== modified file 'openlp/plugins/songs/forms/songmaintenanceform.py'
--- openlp/plugins/songs/forms/songmaintenanceform.py 2014-03-18 20:36:02 +0000
+++ openlp/plugins/songs/forms/songmaintenanceform.py 2014-03-21 21:59:15 +0000
@@ -531,4 +531,4 @@
edit_button.setEnabled(False)
else:
delete_button.setEnabled(True)
- edit_button.setEnabled(True)
\ No newline at end of file
+ edit_button.setEnabled(True)
=== modified file 'openlp/plugins/songs/forms/songreviewwidget.py'
--- openlp/plugins/songs/forms/songreviewwidget.py 2014-03-17 19:05:55 +0000
+++ openlp/plugins/songs/forms/songreviewwidget.py 2014-03-21 21:59:15 +0000
@@ -191,7 +191,7 @@
self.song_remove_button.setObjectName('song_remove_button')
self.song_remove_button.setIcon(build_icon(':/songs/song_delete.png'))
self.song_remove_button.setSizePolicy(QtGui.QSizePolicy.Fixed, QtGui.QSizePolicy.Fixed)
- self.song_vertical_layout.addWidget(self.song_remove_button, alignment = QtCore.Qt.AlignHCenter)
+ self.song_vertical_layout.addWidget(self.song_remove_button, alignment=QtCore.Qt.AlignHCenter)
def retranslateUi(self):
self.song_remove_button.setText('Remove')
=== modified file 'openlp/plugins/songs/lib/__init__.py'
--- openlp/plugins/songs/lib/__init__.py 2014-03-11 20:17:18 +0000
+++ openlp/plugins/songs/lib/__init__.py 2014-03-21 21:59:15 +0000
@@ -549,4 +549,3 @@
except OSError:
log.exception('Could not remove directory: %s', save_path)
song_plugin.manager.delete_object(Song, song_id)
-
=== modified file 'openlp/plugins/songs/lib/cclifileimport.py'
--- openlp/plugins/songs/lib/cclifileimport.py 2014-03-06 20:40:08 +0000
+++ openlp/plugins/songs/lib/cclifileimport.py 2014-03-21 21:59:15 +0000
@@ -89,8 +89,8 @@
if not self.do_import_txt_file(lines):
self.log_error(filename)
else:
- self.log_error(filename,
- translate('SongsPlugin.CCLIFileImport', 'The file does not have a valid extension.'))
+ self.log_error(filename, translate('SongsPlugin.CCLIFileImport', 'The file does not have a valid '
+ 'extension.'))
log.info('Extension %s is not valid', filename)
if self.stop_import_flag:
return
=== modified file 'openlp/plugins/songs/lib/db.py'
--- openlp/plugins/songs/lib/db.py 2014-03-17 19:05:55 +0000
+++ openlp/plugins/songs/lib/db.py 2014-03-21 21:59:15 +0000
@@ -172,7 +172,8 @@
session, metadata = init_db(url)
# Definition of the "authors" table
- authors_table = Table('authors', metadata,
+ authors_table = Table(
+ 'authors', metadata,
Column('id', types.Integer(), primary_key=True),
Column('first_name', types.Unicode(128)),
Column('last_name', types.Unicode(128)),
@@ -180,7 +181,8 @@
)
# Definition of the "media_files" table
- media_files_table = Table('media_files', metadata,
+ media_files_table = Table(
+ 'media_files', metadata,
Column('id', types.Integer(), primary_key=True),
Column('song_id', types.Integer(), ForeignKey('songs.id'), default=None),
Column('file_name', types.Unicode(255), nullable=False),
@@ -189,14 +191,16 @@
)
# Definition of the "song_books" table
- song_books_table = Table('song_books', metadata,
+ song_books_table = Table(
+ 'song_books', metadata,
Column('id', types.Integer(), primary_key=True),
Column('name', types.Unicode(128), nullable=False),
Column('publisher', types.Unicode(128))
)
# Definition of the "songs" table
- songs_table = Table('songs', metadata,
+ songs_table = Table(
+ 'songs', metadata,
Column('id', types.Integer(), primary_key=True),
Column('song_book_id', types.Integer(), ForeignKey('song_books.id'), default=None),
Column('title', types.Unicode(255), nullable=False),
@@ -216,19 +220,22 @@
)
# Definition of the "topics" table
- topics_table = Table('topics', metadata,
+ topics_table = Table(
+ 'topics', metadata,
Column('id', types.Integer(), primary_key=True),
Column('name', types.Unicode(128), index=True, nullable=False)
)
# Definition of the "authors_songs" table
- authors_songs_table = Table('authors_songs', metadata,
+ authors_songs_table = Table(
+ 'authors_songs', metadata,
Column('author_id', types.Integer(), ForeignKey('authors.id'), primary_key=True),
Column('song_id', types.Integer(), ForeignKey('songs.id'), primary_key=True)
)
# Definition of the "songs_topics" table
- songs_topics_table = Table('songs_topics', metadata,
+ songs_topics_table = Table(
+ 'songs_topics', metadata,
Column('song_id', types.Integer(), ForeignKey('songs.id'), primary_key=True),
Column('topic_id', types.Integer(), ForeignKey('topics.id'), primary_key=True)
)
@@ -236,13 +243,12 @@
mapper(Author, authors_table)
mapper(Book, song_books_table)
mapper(MediaFile, media_files_table)
- mapper(Song, songs_table,
- properties={
- 'authors': relation(Author, backref='songs', secondary=authors_songs_table, lazy=False),
- 'book': relation(Book, backref='songs'),
- 'media_files': relation(MediaFile, backref='songs', order_by=media_files_table.c.weight),
- 'topics': relation(Topic, backref='songs', secondary=songs_topics_table)
- })
+ mapper(Song, songs_table, properties={
+ 'authors': relation(Author, backref='songs', secondary=authors_songs_table, lazy=False),
+ 'book': relation(Book, backref='songs'),
+ 'media_files': relation(MediaFile, backref='songs', order_by=media_files_table.c.weight),
+ 'topics': relation(Topic, backref='songs', secondary=songs_topics_table)
+ })
mapper(Topic, topics_table)
metadata.create_all(checkfirst=True)
=== modified file 'openlp/plugins/songs/lib/dreambeamimport.py'
--- openlp/plugins/songs/lib/dreambeamimport.py 2014-03-06 20:40:08 +0000
+++ openlp/plugins/songs/lib/dreambeamimport.py 2014-03-21 21:59:15 +0000
@@ -120,7 +120,7 @@
author_copyright = song_xml.Author.text
if hasattr(song_xml, 'SongLyrics'):
for lyrics_item in song_xml.SongLyrics.iterchildren():
- verse_type = lyrics_item.get('Type')
+ verse_type = lyrics_item.get('Type')
verse_number = lyrics_item.get('Number')
verse_text = str(lyrics_item.text)
self.add_verse(verse_text, ('%s%s' % (verse_type[:1], verse_number)))
@@ -145,8 +145,7 @@
author_copyright = song_xml.Text2.Text.text
if author_copyright:
author_copyright = str(author_copyright)
- if author_copyright.find(
- str(SongStrings.CopyrightSymbol)) >= 0:
+ if author_copyright.find(str(SongStrings.CopyrightSymbol)) >= 0:
self.add_copyright(author_copyright)
else:
self.parse_author(author_copyright)
=== modified file 'openlp/plugins/songs/lib/foilpresenterimport.py'
--- openlp/plugins/songs/lib/foilpresenterimport.py 2014-03-17 19:05:55 +0000
+++ openlp/plugins/songs/lib/foilpresenterimport.py 2014-03-21 21:59:15 +0000
@@ -298,10 +298,10 @@
temp = copyright.partition('Rechte')
copyright = temp[0]
markers = ['Text +u\.?n?d? +Melodie[\w\,\. ]*:',
- 'Text +u\.?n?d? +Musik', 'T & M', 'Melodie und Satz',
- 'Text[\w\,\. ]*:', 'Melodie', 'Musik', 'Satz',
- 'Weise', '[dD]eutsch', '[dD]t[\.\:]', 'Englisch',
- '[oO]riginal', 'Bearbeitung', '[R|r]efrain']
+ 'Text +u\.?n?d? +Musik', 'T & M', 'Melodie und Satz',
+ 'Text[\w\,\. ]*:', 'Melodie', 'Musik', 'Satz',
+ 'Weise', '[dD]eutsch', '[dD]t[\.\:]', 'Englisch',
+ '[oO]riginal', 'Bearbeitung', '[R|r]efrain']
for marker in markers:
copyright = re.compile(marker).sub('<marker>', copyright, re.U)
copyright = re.compile('(?<=<marker>) *:').sub('', copyright)
@@ -324,12 +324,9 @@
for tempx in temp:
author_temp.append(tempx)
for author in author_temp:
- regex = '^[\/,;\-\s\.]+|[\/,;\-\s\.]+$|'\
- '\s*[0-9]{4}\s*[\-\/]?\s*([0-9]{4})?[\/,;\-\s\.]*$'
+ regex = '^[\/,;\-\s\.]+|[\/,;\-\s\.]+$|\s*[0-9]{4}\s*[\-\/]?\s*([0-9]{4})?[\/,;\-\s\.]*$'
author = re.compile(regex).sub('', author)
- author = re.compile(
- '[0-9]{1,2}\.\s?J(ahr)?h\.|um\s*$|vor\s*$').sub('',
- author)
+ author = re.compile('[0-9]{1,2}\.\s?J(ahr)?h\.|um\s*$|vor\s*$').sub('', author)
author = re.compile('[N|n]ach.*$').sub('', author)
author = author.strip()
if re.search('\w+\.?\s+\w{3,}\s+[a|u]nd\s|\w+\.?\s+\w{3,}\s+&\s', author, re.U):
=== modified file 'openlp/plugins/songs/lib/mediaitem.py'
--- openlp/plugins/songs/lib/mediaitem.py 2014-03-06 22:05:15 +0000
+++ openlp/plugins/songs/lib/mediaitem.py 2014-03-21 21:59:15 +0000
@@ -493,9 +493,9 @@
# FIXME: This file seems to be an old one (prior to 1.9.5), which means, that the search title
# (data_string[u'title']) is probably wrong. We add "@" to search title and hope that we do not add any
# duplicate. This should work for songs without alternate title.
- search_results = self.plugin.manager.get_all_objects(Song,
- Song.search_title == (re.compile(r'\W+', re.UNICODE).sub(' ',
- item.data_string['title'].strip()) + '@').strip().lower(), Song.search_title.asc())
+ temp = (re.compile(r'\W+', re.UNICODE).sub(' ', item.data_string['title'].strip()) + '@').strip().lower()
+ search_results = \
+ self.plugin.manager.get_all_objects(Song, Song.search_title == temp, Song.search_title.asc())
else:
search_results = self.plugin.manager.get_all_objects(
Song, Song.search_title == item.data_string['title'], Song.search_title.asc())
=== modified file 'openlp/plugins/songs/lib/olpimport.py'
--- openlp/plugins/songs/lib/olpimport.py 2014-03-17 19:05:55 +0000
+++ openlp/plugins/songs/lib/olpimport.py 2014-03-21 21:59:15 +0000
@@ -128,11 +128,9 @@
except UnmappedClassError:
mapper(OldMediaFile, source_media_files_table)
song_props = {
- 'authors': relation(OldAuthor, backref='songs',
- secondary=source_authors_songs_table),
+ 'authors': relation(OldAuthor, backref='songs', secondary=source_authors_songs_table),
'book': relation(OldBook, backref='songs'),
- 'topics': relation(OldTopic, backref='songs',
- secondary=source_songs_topics_table)
+ 'topics': relation(OldTopic, backref='songs', secondary=source_songs_topics_table)
}
if has_media_files:
if isinstance(source_media_files_songs_table, Table):
=== modified file 'openlp/plugins/songs/lib/openlyricsexport.py'
--- openlp/plugins/songs/lib/openlyricsexport.py 2014-03-17 07:14:51 +0000
+++ openlp/plugins/songs/lib/openlyricsexport.py 2014-03-21 21:59:15 +0000
@@ -68,8 +68,8 @@
self.application.process_events()
if self.parent.stop_export_flag:
return False
- self.parent.increment_progress_bar(translate('SongsPlugin.OpenLyricsExport', 'Exporting "%s"...') %
- song.title)
+ self.parent.increment_progress_bar(
+ translate('SongsPlugin.OpenLyricsExport', 'Exporting "%s"...') % song.title)
xml = open_lyrics.song_to_xml(song)
tree = etree.ElementTree(etree.fromstring(xml.encode()))
filename = '%s (%s)' % (song.title, ', '.join([author.display_name for author in song.authors]))
@@ -81,4 +81,3 @@
tree.write(open(os.path.join(self.save_path, filename), 'wb'), encoding='utf-8', xml_declaration=True,
pretty_print=True)
return True
-
=== modified file 'openlp/plugins/songs/lib/powersongimport.py'
--- openlp/plugins/songs/lib/powersongimport.py 2014-03-06 22:05:15 +0000
+++ openlp/plugins/songs/lib/powersongimport.py 2014-03-21 21:59:15 +0000
@@ -122,7 +122,7 @@
parse_error = True
self.log_error(os.path.basename(file), str(
translate('SongsPlugin.PowerSongImport', 'Invalid %s file. Unexpected byte value.')) %
- ps_string)
+ ps_string)
break
else:
if label == 'TITLE':
@@ -145,7 +145,7 @@
if not found_copyright:
self.log_error(self.title, str(
translate('SongsPlugin.PowerSongImport', 'Invalid %s file. Missing "COPYRIGHTLINE" header.')) %
- ps_string)
+ ps_string)
continue
# Check that file had at least one verse
if not self.verses:
=== modified file 'openlp/plugins/songs/lib/sofimport.py'
--- openlp/plugins/songs/lib/sofimport.py 2014-03-08 19:58:58 +0000
+++ openlp/plugins/songs/lib/sofimport.py 2014-03-21 21:59:15 +0000
@@ -287,8 +287,7 @@
:param text: The verse text
"""
- if self.italics != self.is_chorus and ((len(self.verses) > 0) or
- (self.current__verse.count('\n') > 1)):
+ if self.italics != self.is_chorus and ((len(self.verses) > 0) or (self.current__verse.count('\n') > 1)):
self.finish_verse()
if self.italics:
self.is_chorus = True
@@ -348,10 +347,10 @@
for i in range(1, len(text_arr)):
# Do not translate these. Fixed strings in SOF song file
if text_arr[i] in ('JESUS', 'CHRIST', 'KING', 'ALMIGHTY', 'REDEEMER', 'SHEPHERD', 'SON', 'GOD', 'LORD',
- 'FATHER', 'HOLY', 'SPIRIT', 'LAMB', 'YOU', 'YOUR', 'I', 'I\'VE', 'I\'M', 'I\'LL',
- 'SAVIOUR', 'O', 'YOU\'RE', 'HE', 'HIS', 'HIM', 'ZION', 'EMMANUEL', 'MAJESTY', 'JESUS\'',
- 'JIREH', 'JUDAH', 'LION', 'LORD\'S', 'ABRAHAM', 'GOD\'S', 'FATHER\'S', 'ELIJAH' 'MARTHA',
- 'CHRISTMAS', 'ALPHA', 'OMEGA'):
+ 'FATHER', 'HOLY', 'SPIRIT', 'LAMB', 'YOU', 'YOUR', 'I', 'I\'VE', 'I\'M', 'I\'LL',
+ 'SAVIOUR', 'O', 'YOU\'RE', 'HE', 'HIS', 'HIM', 'ZION', 'EMMANUEL', 'MAJESTY', 'JESUS\'',
+ 'JIREH', 'JUDAH', 'LION', 'LORD\'S', 'ABRAHAM', 'GOD\'S', 'FATHER\'S',
+ 'ELIJAH' 'MARTHA', 'CHRISTMAS', 'ALPHA', 'OMEGA'):
text_arr[i] = text_arr[i].capitalize()
else:
text_arr[i] = text_arr[i].lower()
=== modified file 'openlp/plugins/songs/lib/songcompare.py'
--- openlp/plugins/songs/lib/songcompare.py 2014-03-08 19:58:58 +0000
+++ openlp/plugins/songs/lib/songcompare.py 2014-03-21 21:59:15 +0000
@@ -113,7 +113,7 @@
if len(diff) >= 3:
for index in range(len(diff) - 3, -1, -1):
if _op_length(diff[index]) >= MIN_FRAGMENT_SIZE and diff[index + 1][0] != "equal" and \
- _op_length(diff[index + 1]) <= MAX_TYPO_SIZE and _op_length(diff[index + 2]) >= MIN_FRAGMENT_SIZE:
+ _op_length(diff[index + 1]) <= MAX_TYPO_SIZE and _op_length(diff[index + 2]) >= MIN_FRAGMENT_SIZE:
del diff[index + 1]
# Remove typo at the end of the string.
if len(diff) >= 2:
=== modified file 'openlp/plugins/songs/lib/songimport.py'
--- openlp/plugins/songs/lib/songimport.py 2014-03-08 19:58:58 +0000
+++ openlp/plugins/songs/lib/songimport.py 2014-03-21 21:59:15 +0000
@@ -364,7 +364,7 @@
"""
if not hasattr(self, 'save_path'):
self.save_path = os.path.join(AppLocation.get_section_data_path(self.import_wizard.plugin.name),
- 'audio', str(song_id))
+ 'audio', str(song_id))
check_directory_exists(self.save_path)
if not filename.startswith(self.save_path):
old_file, filename = filename, os.path.join(self.save_path, os.path.split(filename)[1])
=== modified file 'openlp/plugins/songs/lib/songshowplusimport.py'
--- openlp/plugins/songs/lib/songshowplusimport.py 2014-03-08 19:58:58 +0000
+++ openlp/plugins/songs/lib/songshowplusimport.py 2014-03-21 21:59:15 +0000
@@ -140,7 +140,7 @@
elif block_key == AUTHOR:
authors = self.decode(data).split(" / ")
for author in authors:
- if author.find(",") !=-1:
+ if author.find(",") != -1:
author_parts = author.split(", ")
author = author_parts[1] + " " + author_parts[0]
self.parse_author(author)
@@ -220,4 +220,4 @@
try:
return str(data, chardet.detect(data)['encoding'])
except:
- return str(data, retrieve_windows_encoding())
\ No newline at end of file
+ return str(data, retrieve_windows_encoding())
=== modified file 'openlp/plugins/songs/lib/sundayplusimport.py'
--- openlp/plugins/songs/lib/sundayplusimport.py 2014-03-08 19:58:58 +0000
+++ openlp/plugins/songs/lib/sundayplusimport.py 2014-03-21 21:59:15 +0000
@@ -138,7 +138,7 @@
elif name == 'Copyright':
self.copyright = self.decode(self.unescape(value))
elif name[0:4] == 'CELL':
- self.parse(value, cell = name[4:])
+ self.parse(value, cell=name[4:])
# We are in a verse group.
else:
if name == 'MARKER_NAME':
@@ -207,4 +207,3 @@
text = text.replace('^^', '"')
text = text.replace('^', '\'')
return text.strip()
-
=== removed directory 'openlp/plugins/songs/lib/test'
=== removed file 'openlp/plugins/songs/lib/test/test.opensong'
--- openlp/plugins/songs/lib/test/test.opensong 2010-09-19 08:47:00 +0000
+++ openlp/plugins/songs/lib/test/test.opensong 1970-01-01 00:00:00 +0000
@@ -1,72 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<song>
- <title>Martins Test</title>
- <author>MartiÑ & Martin2 Thómpson</author>
- <copyright>2010 Martin Thompson</copyright>
- <hymn_number>1</hymn_number>
- <presentation>V1 C V2 C2 3a B1 V1 T U Rap1 Rap2 Rap3</presentation>
- <ccli>Blah</ccli>
- <capo print="false"></capo>
- <key></key>
- <aka></aka>
- <key_line></key_line>
- <user1></user1>
- <user2></user2>
- <user3></user3>
- <theme>TestTheme</theme>
- <alttheme>TestAltTheme</alttheme>
- <tempo></tempo>
- <time_sig></time_sig>
- <lyrics>[3a]
-. G A B
- V3 Line 1
-. G A B
- V3 Line 2
-
-. A B C
-1 v1 Line 1___
-2 v2 Line 1___
-. A B C7
-1 V1 Line 2
-2 V2 Line 2
-
-[b1]
- Bridge 1
----
--!!
- Bridge 1 line 2
-
-[C]
- . A B
- Chorus 1
-
-[C2]
-. A B
- Chorus 2
-
-[T]
- T Line 1
-
-[Rap]
-1 Rap 1 Line 1
-2 Rap 2 Line 1
-1 Rap 1 Line 2
-2 Rap 2 Line 2
-
-[rap3]
- Rap 3 Line 1
- Rap 3 Line 2
-
-
-[X]
- Unreferenced verse line 1
- </lyrics>
- <style index="default_style">
- <title enabled="true" valign="bottom" align="center" include_verse="false" margin-left="0" margin-right="0" margin-top="0" margin-bottom="0" font="Helvetica" size="26" bold="true" italic="true" underline="false" color="#FFFFFF" border="true" border_color="#000000" shadow="true" shadow_color="#000000" fill="false" fill_color="#000000"/>
- <subtitle enabled="true" valign="bottom" align="center" descriptive="false" margin-left="0" margin-right="0" margin-top="0" margin-bottom="0" font="Helvetica" size="18" bold="true" italic="true" underline="false" color="#FFFFFF" border="true" border_color="#000000" shadow="true" shadow_color="#000000" fill="false" fill_color="#000000"/>
- <song_subtitle>author</song_subtitle>
- <body enabled="true" auto_scale="false" valign="middle" align="center" highlight_chorus="true" margin-left="0" margin-right="0" margin-top="0" margin-bottom="0" font="Helvetica" size="34" bold="true" italic="false" underline="false" color="#FFFFFF" border="true" border_color="#000000" shadow="true" shadow_color="#000000" fill="false" fill_color="#FF0000">
- <tabs/>
-</body>
- <background strip_footer="0" color="#408080" position="1"/>
-</style></song>
=== removed file 'openlp/plugins/songs/lib/test/test.opensong.zip'
Binary files openlp/plugins/songs/lib/test/test.opensong.zip 2010-09-14 18:18:47 +0000 and openlp/plugins/songs/lib/test/test.opensong.zip 1970-01-01 00:00:00 +0000 differ
=== removed file 'openlp/plugins/songs/lib/test/test2.opensong'
--- openlp/plugins/songs/lib/test/test2.opensong 2010-09-14 18:18:47 +0000
+++ openlp/plugins/songs/lib/test/test2.opensong 1970-01-01 00:00:00 +0000
@@ -1,45 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<song>
- <title>Martins 2nd Test</title>
- <author>Martin Thompson</author>
- <copyright>2010 Martin Thompson</copyright>
- <hymn_number>2</hymn_number>
- <presentation></presentation>
- <ccli>Blah</ccli>
- <capo print="false"></capo>
- <key></key>
- <aka></aka>
- <key_line></key_line>
- <user1></user1>
- <user2></user2>
- <user3></user3>
- <theme></theme>
- <tempo></tempo>
- <time_sig></time_sig>
- <lyrics>;Comment
-[V]
-. A B C
-1 v1 Line 1___
-2 v2 Line 1___
-. A B C7
-1 V1 Line 2
-2 V2 Line 2
-
-[b1]
- Bridge 1
- Bridge 1 line 2
-[C1]
- Chorus 1
-
-[C2]
- Chorus 2
- </lyrics>
- <style index="default_style">
- <title enabled="true" valign="bottom" align="center" include_verse="false" margin-left="0" margin-right="0" margin-top="0" margin-bottom="0" font="Helvetica" size="26" bold="true" italic="true" underline="false" color="#FFFFFF" border="true" border_color="#000000" shadow="true" shadow_color="#000000" fill="false" fill_color="#000000"/>
- <subtitle enabled="true" valign="bottom" align="center" descriptive="false" margin-left="0" margin-right="0" margin-top="0" margin-bottom="0" font="Helvetica" size="18" bold="true" italic="true" underline="false" color="#FFFFFF" border="true" border_color="#000000" shadow="true" shadow_color="#000000" fill="false" fill_color="#000000"/>
- <song_subtitle>author</song_subtitle>
- <body enabled="true" auto_scale="false" valign="middle" align="center" highlight_chorus="true" margin-left="0" margin-right="0" margin-top="0" margin-bottom="0" font="Helvetica" size="34" bold="true" italic="false" underline="false" color="#FFFFFF" border="true" border_color="#000000" shadow="true" shadow_color="#000000" fill="false" fill_color="#FF0000">
- <tabs/>
-</body>
- <background strip_footer="0" color="#408080" position="1"/>
-</style></song>
=== removed file 'openlp/plugins/songs/lib/test/test3.opensong'
--- openlp/plugins/songs/lib/test/test3.opensong 2010-09-27 18:34:40 +0000
+++ openlp/plugins/songs/lib/test/test3.opensong 1970-01-01 00:00:00 +0000
@@ -1,10 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<song>
- <title>Test single verse</title>
- <author>Martin Thompson</author>
- <copyright>2010</copyright>
- <ccli>123456</ccli>
- <theme>Worship: Declaration</theme>
- <lyrics> Line 1
-Line 2
-</lyrics></song>
=== removed file 'openlp/plugins/songs/lib/test/test_import_file.py'
--- openlp/plugins/songs/lib/test/test_import_file.py 2013-12-24 08:56:50 +0000
+++ openlp/plugins/songs/lib/test/test_import_file.py 1970-01-01 00:00:00 +0000
@@ -1,50 +0,0 @@
-# -*- coding: utf-8 -*-
-# vim: autoindent shiftwidth=4 expandtab textwidth=120 tabstop=4 softtabstop=4
-
-###############################################################################
-# OpenLP - Open Source Lyrics Projection #
-# --------------------------------------------------------------------------- #
-# Copyright (c) 2008-2014 Raoul Snyman #
-# Portions copyright (c) 2008-2014 Tim Bentley, Gerald Britton, Jonathan #
-# Corwin, Samuel Findlay, Michael Gorven, Scott Guerrieri, Matthias Hub, #
-# Meinert Jordan, Armin Köhler, Erik Lundin, Edwin Lunando, Brian T. Meyer. #
-# Joshua Miller, Stevan Pettit, Andreas Preikschat, Mattias Põldaru, #
-# Christian Richter, Philip Ridout, Simon Scudder, Jeffrey Smith, #
-# Maikel Stuivenberg, Martin Thompson, Jon Tibble, Dave Warnock, #
-# Frode Woldsund, Martin Zibricky, Patrick Zimmermann #
-# --------------------------------------------------------------------------- #
-# 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 sys
-
-from openlp.plugins.songs.lib.opensongimport import OpenSongImport
-from openlp.core.lib.db import Manager
-from openlp.plugins.songs.lib.db import init_schema
-
-import logging
-LOG_FILENAME = 'test_import_file.log'
-logging.basicConfig(filename=LOG_FILENAME,level=logging.INFO)
-
-from test_opensongimport import wizard_stub
-
-def test(filenames):
- manager = Manager('songs', init_schema)
- o = OpenSongImport(manager, filenames=filenames)
- o.import_wizard = wizard_stub()
- o.commit = False
- o.do_import()
- o.print_song()
-
-if __name__ == "__main__":
- test(sys.argv[1:])
=== removed file 'openlp/plugins/songs/lib/test/test_importing_lots.py'
--- openlp/plugins/songs/lib/test/test_importing_lots.py 2013-12-24 08:56:50 +0000
+++ openlp/plugins/songs/lib/test/test_importing_lots.py 1970-01-01 00:00:00 +0000
@@ -1,61 +0,0 @@
-# -*- coding: utf-8 -*-
-# vim: autoindent shiftwidth=4 expandtab textwidth=120 tabstop=4 softtabstop=4
-
-###############################################################################
-# OpenLP - Open Source Lyrics Projection #
-# --------------------------------------------------------------------------- #
-# Copyright (c) 2008-2014 Raoul Snyman #
-# Portions copyright (c) 2008-2014 Tim Bentley, Gerald Britton, Jonathan #
-# Corwin, Samuel Findlay, Michael Gorven, Scott Guerrieri, Matthias Hub, #
-# Meinert Jordan, Armin Köhler, Erik Lundin, Edwin Lunando, Brian T. Meyer. #
-# Joshua Miller, Stevan Pettit, Andreas Preikschat, Mattias Põldaru, #
-# Christian Richter, Philip Ridout, Simon Scudder, Jeffrey Smith, #
-# Maikel Stuivenberg, Martin Thompson, Jon Tibble, Dave Warnock, #
-# Frode Woldsund, Martin Zibricky, Patrick Zimmermann #
-# --------------------------------------------------------------------------- #
-# 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 openlp.plugins.songs.lib.opensongimport import OpenSongImport
-from openlp.plugins.songs.lib.db import init_schema
-from openlp.core.lib.db import Manager
-import os
-import codecs
-
-import logging
-LOG_FILENAME = 'import.log'
-logging.basicConfig(filename=LOG_FILENAME,level=logging.INFO)
-
-from test_opensongimport import wizard_stub
-
-# Useful test function for importing a variety of different files
-# Uncomment below depending on what problem trying to make occur!
-
-def opensong_import_lots():
- ziploc = '/home/mjt/openlp/OpenSong_Data/'
- files = []
- files = [os.path.join(ziploc, 'RaoulSongs', 'Songs', 'Jesus Freak')]
- # files.extend(glob(ziploc+u'Songs.zip'))
- # files.extend(glob(ziploc+u'RaoulSongs.zip'))
- # files.extend(glob(ziploc+u'SOF.zip'))
- # files.extend(glob(ziploc+u'spanish_songs_for_opensong.zip'))
- # files.extend(glob(ziploc+u'opensong_*.zip'))
- errfile = codecs.open('import_lots_errors.txt', 'w', 'utf8')
- manager = Manager('songs', init_schema)
- o = OpenSongImport(manager, filenames=files)
- o.import_wizard=wizard_stub()
- o.do_import()
-
-if __name__ == "__main__":
- opensong_import_lots()
=== modified file 'openlp/plugins/songs/lib/ui.py'
--- openlp/plugins/songs/lib/ui.py 2013-12-24 08:56:50 +0000
+++ openlp/plugins/songs/lib/ui.py 2014-03-21 21:59:15 +0000
@@ -40,11 +40,11 @@
# These strings should need a good reason to be retranslated elsewhere.
Author = translate('OpenLP.Ui', 'Author', 'Singular')
Authors = translate('OpenLP.Ui', 'Authors', 'Plural')
- AuthorUnknown = 'Author Unknown' # Used to populate the database.
+ AuthorUnknown = 'Author Unknown' # Used to populate the database.
CopyrightSymbol = translate('OpenLP.Ui', '\xa9', 'Copyright symbol.')
SongBook = translate('OpenLP.Ui', 'Song Book', 'Singular')
SongBooks = translate('OpenLP.Ui', 'Song Books', 'Plural')
- SongIncomplete = translate('OpenLP.Ui','Title and/or verses not found')
+ SongIncomplete = translate('OpenLP.Ui', 'Title and/or verses not found')
SongMaintenance = translate('OpenLP.Ui', 'Song Maintenance')
Topic = translate('OpenLP.Ui', 'Topic', 'Singular')
Topics = translate('OpenLP.Ui', 'Topics', 'Plural')
=== modified file 'openlp/plugins/songs/lib/upgrade.py'
--- openlp/plugins/songs/lib/upgrade.py 2013-12-24 08:56:50 +0000
+++ openlp/plugins/songs/lib/upgrade.py 2014-03-21 21:59:15 +0000
@@ -82,4 +82,3 @@
op.add_column('songs', Column('temporary', types.Boolean(create_constraint=False), server_default=false()))
else:
op.add_column('songs', Column('temporary', types.Boolean(), server_default=false()))
-
=== modified file 'openlp/plugins/songs/lib/worshipcenterproimport.py'
--- openlp/plugins/songs/lib/worshipcenterproimport.py 2014-03-06 20:40:08 +0000
+++ openlp/plugins/songs/lib/worshipcenterproimport.py 2014-03-21 21:59:15 +0000
@@ -56,12 +56,12 @@
Receive a single file to import.
"""
try:
- conn = pyodbc.connect('DRIVER={Microsoft Access Driver (*.mdb)};DBQ=%s' % self.import_source)
+ conn = pyodbc.connect('DRIVER={Microsoft Access Driver (*.mdb)};DBQ=%s' % self.import_source)
except (pyodbc.DatabaseError, pyodbc.IntegrityError, pyodbc.InternalError, pyodbc.OperationalError) as e:
log.warn('Unable to connect the WorshipCenter Pro database %s. %s', self.import_source, str(e))
# Unfortunately no specific exception type
- self.log_error(self.import_source,
- translate('SongsPlugin.WorshipCenterProImport', 'Unable to connect the WorshipCenter Pro database.'))
+ self.log_error(self.import_source, translate('SongsPlugin.WorshipCenterProImport',
+ 'Unable to connect the WorshipCenter Pro database.'))
return
cursor = conn.cursor()
cursor.execute('SELECT ID, Field, Value FROM __SONGDATA')
=== modified file 'openlp/plugins/songs/lib/xml.py'
--- openlp/plugins/songs/lib/xml.py 2014-03-08 19:58:58 +0000
+++ openlp/plugins/songs/lib/xml.py 2014-03-21 21:59:15 +0000
@@ -340,7 +340,8 @@
The first unicode string are the start tags (for the next slide). The second unicode string are the end tags.
- :param text: The text to test. The text must **not** contain html tags, only OpenLP formatting tags are allowed::
+ :param text: The text to test. The text must **not** contain html tags, only OpenLP formatting tags
+ are allowed::
{st}{r}Text text text
"""
=== modified file 'openlp/plugins/songs/lib/zionworximport.py'
--- openlp/plugins/songs/lib/zionworximport.py 2014-03-08 19:58:58 +0000
+++ openlp/plugins/songs/lib/zionworximport.py 2014-03-21 21:59:15 +0000
@@ -39,7 +39,7 @@
log = logging.getLogger(__name__)
# Used to strip control chars (except 10=LF, 13=CR)
-CONTROL_CHARS_MAP = dict.fromkeys(list(range(10)) + [11, 12] + list(range(14,32)) + [127])
+CONTROL_CHARS_MAP = dict.fromkeys(list(range(10)) + [11, 12] + list(range(14, 32)) + [127])
class ZionWorxImport(SongImport):
=== modified file 'openlp/plugins/songs/songsplugin.py'
--- openlp/plugins/songs/songsplugin.py 2014-03-11 20:17:18 +0000
+++ openlp/plugins/songs/songsplugin.py 2014-03-21 21:59:15 +0000
@@ -342,7 +342,7 @@
"""
Remove temporary songs from the database
"""
- songs = self.manager.get_all_objects(Song, Song.temporary == True)
+ songs = self.manager.get_all_objects(Song, Song.temporary is True)
for song in songs:
self.manager.delete_object(Song, song.id)
=== modified file 'openlp/plugins/songusage/forms/songusagedeleteform.py'
--- openlp/plugins/songusage/forms/songusagedeleteform.py 2014-03-16 21:25:23 +0000
+++ openlp/plugins/songusage/forms/songusagedeleteform.py 2014-03-21 21:59:15 +0000
@@ -70,4 +70,4 @@
)
self.accept()
else:
- self.reject()
\ No newline at end of file
+ self.reject()
=== modified file 'openlp/plugins/songusage/forms/songusagedetailform.py'
--- openlp/plugins/songusage/forms/songusagedetailform.py 2014-03-16 21:25:23 +0000
+++ openlp/plugins/songusage/forms/songusagedetailform.py 2014-03-21 21:59:15 +0000
@@ -87,15 +87,14 @@
)
return
check_directory_exists(path)
- file_name = translate('SongUsagePlugin.SongUsageDetailForm', 'usage_detail_%s_%s.txt') % (
- self.from_date_calendar.selectedDate().toString('ddMMyyyy'),
- self.to_date_calendar.selectedDate().toString('ddMMyyyy'))
+ file_name = translate('SongUsagePlugin.SongUsageDetailForm', 'usage_detail_%s_%s.txt') % \
+ (self.from_date_calendar.selectedDate().toString('ddMMyyyy'),
+ self.to_date_calendar.selectedDate().toString('ddMMyyyy'))
Settings().setValue(self.plugin.settings_section + '/from date', self.from_date_calendar.selectedDate())
Settings().setValue(self.plugin.settings_section + '/to date', self.to_date_calendar.selectedDate())
usage = self.plugin.manager.get_all_objects(
- SongUsageItem, and_(
- SongUsageItem.usagedate >= self.from_date_calendar.selectedDate().toPyDate(),
- SongUsageItem.usagedate < self.to_date_calendar.selectedDate().toPyDate()),
+ SongUsageItem, and_(SongUsageItem.usagedate >= self.from_date_calendar.selectedDate().toPyDate(),
+ SongUsageItem.usagedate < self.to_date_calendar.selectedDate().toPyDate()),
[SongUsageItem.usagedate, SongUsageItem.usagetime])
report_file_name = os.path.join(path, file_name)
file_handle = None
@@ -103,9 +102,9 @@
file_handle = open(report_file_name, 'w')
for instance in usage:
record = '\"%s\",\"%s\",\"%s\",\"%s\",\"%s\",\"%s\",' \
- '\"%s\",\"%s\"\n' % (instance.usagedate,
- instance.usagetime, instance.title, instance.copyright,
- instance.ccl_number, instance.authors, instance.plugin_name, instance.source)
+ '\"%s\",\"%s\"\n' % \
+ (instance.usagedate, instance.usagetime, instance.title, instance.copyright,
+ instance.ccl_number, instance.authors, instance.plugin_name, instance.source)
file_handle.write(record.encode('utf-8'))
self.main_window.information_message(
translate('SongUsagePlugin.SongUsageDetailForm', 'Report Creation'),
=== modified file 'openlp/plugins/songusage/lib/db.py'
--- openlp/plugins/songusage/lib/db.py 2014-01-11 22:01:41 +0000
+++ openlp/plugins/songusage/lib/db.py 2014-03-21 21:59:15 +0000
@@ -62,7 +62,7 @@
Column('ccl_number', types.Unicode(65)),
Column('plugin_name', types.Unicode(20)),
Column('source', types.Unicode(10))
- )
+ )
mapper(SongUsageItem, songusage_table)
Follow ups