forked from openlp/openlp
Merge refactor-song-import r1994
This commit is contained in:
commit
837fc1c726
@ -217,8 +217,7 @@ class SongImportForm(OpenLPWizard):
|
|||||||
def validateCurrentPage(self):
|
def validateCurrentPage(self):
|
||||||
"""
|
"""
|
||||||
Validate the current page before moving on to the next page.
|
Validate the current page before moving on to the next page.
|
||||||
|
Provide each song format class with a chance to validate its input by
|
||||||
Provides each song format class with a chance to validate its input by
|
|
||||||
overriding isValidSource().
|
overriding isValidSource().
|
||||||
"""
|
"""
|
||||||
if self.currentPage() == self.welcomePage:
|
if self.currentPage() == self.welcomePage:
|
||||||
@ -491,16 +490,16 @@ class SongImportForm(OpenLPWizard):
|
|||||||
|
|
||||||
class SongImportSourcePage(QtGui.QWizardPage):
|
class SongImportSourcePage(QtGui.QWizardPage):
|
||||||
"""
|
"""
|
||||||
Subclass QtGui.QWizardPage in order to reimplement isComplete().
|
Subclass of QtGui.QWizardPage to override isComplete() for Source Page.
|
||||||
"""
|
"""
|
||||||
|
|
||||||
def isComplete(self):
|
def isComplete(self):
|
||||||
"""
|
"""
|
||||||
Returns True if:
|
Return True if:
|
||||||
* an available format is selected, and
|
|
||||||
* if MultipleFiles mode, at least one file is selected
|
* an available format is selected, and
|
||||||
* or if SingleFile mode, the specified file exists
|
* if MultipleFiles mode, at least one file is selected
|
||||||
* or if SingleFolder mode, the specified folder exists
|
* or if SingleFile mode, the specified file exists
|
||||||
|
* or if SingleFolder mode, the specified folder exists
|
||||||
|
|
||||||
When this method returns True, the wizard's Next button is enabled.
|
When this method returns True, the wizard's Next button is enabled.
|
||||||
"""
|
"""
|
||||||
|
@ -80,28 +80,47 @@ class SongFormat(object):
|
|||||||
song formats handled by the importer, the attributes of each song format,
|
song formats handled by the importer, the attributes of each song format,
|
||||||
and a few helper functions.
|
and a few helper functions.
|
||||||
|
|
||||||
|
|
||||||
Required attributes for each song format:
|
Required attributes for each song format:
|
||||||
* ``Class`` Import class, e.g. OpenLyricsImport
|
|
||||||
* ``Name`` Name of the format, e.g. u'OpenLyrics'
|
``Class``
|
||||||
* ``Prefix`` Prefix for Qt objects. Use camelCase, e.g. u'openLyrics'
|
Import class, e.g. ``OpenLyricsImport``
|
||||||
See ``SongImportForm.addFileSelectItem()``.
|
``Name``
|
||||||
|
Name of the format, e.g. ``u'OpenLyrics'``
|
||||||
|
``Prefix``
|
||||||
|
Prefix for Qt objects. Use mixedCase, e.g. ``u'openLyrics'``
|
||||||
|
See ``SongImportForm.addFileSelectItem()``
|
||||||
|
|
||||||
Optional attributes for each song format:
|
Optional attributes for each song format:
|
||||||
* ``CanDisable`` Whether song format importer is disablable.
|
|
||||||
* ``Availability`` Whether song format importer is available.
|
|
||||||
* ``SelectMode`` Whether format accepts single file, multiple files, or
|
|
||||||
single folder (as per SongFormatSelect options).
|
|
||||||
* ``Filter`` File extension filter for QFileDialog.
|
|
||||||
|
|
||||||
Optional/custom text Strings for SongImportForm widgets:
|
``CanDisable``
|
||||||
* ``ComboBoxText`` Combo box selector (default value is format Name).
|
Whether song format importer is disablable.
|
||||||
* ``DisabledLabelText`` Required for disablable song formats.
|
``Availability``
|
||||||
* ``GetFilesTitle`` Title for QFileDialog (default includes format Name).
|
Whether song format importer is available.
|
||||||
* ``InvalidSourceMsg`` Message displayed when source does not validate with
|
``SelectMode``
|
||||||
Class.isValidSource().
|
Whether format accepts single file, multiple files, or single folder
|
||||||
|
(as per ``SongFormatSelect`` options).
|
||||||
|
``Filter``
|
||||||
|
File extension filter for ``QFileDialog``.
|
||||||
|
|
||||||
|
Optional/custom text Strings for ``SongImportForm`` widgets:
|
||||||
|
|
||||||
|
``ComboBoxText``
|
||||||
|
Combo box selector (default value is the format's ``Name``).
|
||||||
|
``DisabledLabelText``
|
||||||
|
Required for disablable song formats.
|
||||||
|
``GetFilesTitle``
|
||||||
|
Title for ``QFileDialog`` (default includes the format's ``Name``).
|
||||||
|
``InvalidSourceMsg``
|
||||||
|
Message displayed if ``Class.isValidSource()`` returns ``False``.
|
||||||
"""
|
"""
|
||||||
# Song Formats
|
# Enumeration of song formats and their attributes
|
||||||
|
# * Numerical order of song formats is significant as it determines the
|
||||||
|
# order used by formatComboBox.
|
||||||
|
# * Attribute ints are negative so they don't clash with song format ints.
|
||||||
|
# * Each group of attribute values increments by 10 to facilitate addition
|
||||||
|
# of more attributes in future.
|
||||||
|
|
||||||
|
# Song formats (ordered alphabetically after Generic)
|
||||||
Unknown = -1
|
Unknown = -1
|
||||||
OpenLyrics = 0
|
OpenLyrics = 0
|
||||||
OpenLP2 = 1
|
OpenLP2 = 1
|
||||||
@ -320,9 +339,9 @@ class SongFormat(object):
|
|||||||
Zero or more song format attributes from SongFormat.
|
Zero or more song format attributes from SongFormat.
|
||||||
|
|
||||||
Return type depends on number of supplied attributes:
|
Return type depends on number of supplied attributes:
|
||||||
* 0 : Return dict containing all defined attributes for the format.
|
:0: Return dict containing all defined attributes for the format.
|
||||||
* 1 : Return the attribute value.
|
:1: Return the attribute value.
|
||||||
* >1 : Return tuple of requested attribute values.
|
:>1: Return tuple of requested attribute values.
|
||||||
"""
|
"""
|
||||||
if not attributes:
|
if not attributes:
|
||||||
return SongFormat._attributes.get(format)
|
return SongFormat._attributes.get(format)
|
||||||
|
Loading…
Reference in New Issue
Block a user