Added optional descriptionLabel for song format to import wizard

This commit is contained in:
Samuel Findlay 2012-06-07 22:11:47 +10:00
parent 837fc1c726
commit cc90096534
2 changed files with 41 additions and 6 deletions

View File

@ -133,6 +133,9 @@ class SongImportForm(OpenLPWizard):
self.formatLayout.setItem(1, QtGui.QFormLayout.LabelRole,
self.formatSpacer)
self.sourceLayout.addLayout(self.formatLayout)
self.formatHSpacing = self.formatLayout.horizontalSpacing()
self.formatVSpacing = self.formatLayout.verticalSpacing()
self.formatLayout.setVerticalSpacing(0)
self.stackSpacer = QtGui.QSpacerItem(10, 0, QtGui.QSizePolicy.Fixed,
QtGui.QSizePolicy.Expanding)
self.formatStack = QtGui.QStackedLayout()
@ -160,12 +163,15 @@ class SongImportForm(OpenLPWizard):
self.sourcePage.setSubTitle(WizardStrings.ImportSelectLong)
self.formatLabel.setText(WizardStrings.FormatLabel)
for format in SongFormat.get_format_list():
format_name, custom_combo_text, select_mode = SongFormat.get(
format, SongFormat.Name, SongFormat.ComboBoxText,
format_name, custom_combo_text, description_text, select_mode = SongFormat.get(
format, SongFormat.Name, SongFormat.ComboBoxText, SongFormat.DescriptionText,
SongFormat.SelectMode)
combo_box_text = custom_combo_text if custom_combo_text \
else format_name
self.formatComboBox.setItemText(format, combo_box_text)
if description_text is not None:
self.formatWidgets[format][u'descriptionLabel'].setText(
description_text)
if select_mode == SongFormatSelect.MultipleFiles:
self.formatWidgets[format][u'addButton'].setText(
translate('SongsPlugin.ImportWizardForm', 'Add Files...'))
@ -206,6 +212,12 @@ class SongImportForm(OpenLPWizard):
spacer.changeSize(
max_label_width - labels[index].minimumSizeHint().width(), 0,
QtGui.QSizePolicy.Fixed, QtGui.QSizePolicy.Fixed)
# Align descriptionLabels with rest of layout
for format in SongFormat.get_format_list():
if SongFormat.get(format, SongFormat.DescriptionText) is not None:
self.formatWidgets[format][u'descriptionSpacer'].changeSize(
max_label_width + self.formatHSpacing, 0,
QtGui.QSizePolicy.Fixed, QtGui.QSizePolicy.Fixed)
def customPageChanged(self, pageId):
"""
@ -397,8 +409,9 @@ class SongImportForm(OpenLPWizard):
def addFileSelectItem(self):
format = self.currentFormat
prefix, can_disable, select_mode = SongFormat.get(format,
SongFormat.Prefix, SongFormat.CanDisable, SongFormat.SelectMode)
prefix, can_disable, description_text, select_mode = SongFormat.get(
format, SongFormat.Prefix, SongFormat.CanDisable,
SongFormat.DescriptionText, SongFormat.SelectMode)
page = QtGui.QWidget()
page.setObjectName(prefix + u'Page')
if can_disable:
@ -408,10 +421,24 @@ class SongImportForm(OpenLPWizard):
importLayout = QtGui.QVBoxLayout(importWidget)
importLayout.setMargin(0)
importLayout.setObjectName(prefix + u'ImportLayout')
if description_text is not None:
descriptionLayout = QtGui.QHBoxLayout()
descriptionLayout.setObjectName(prefix + u'DescriptionLayout')
descriptionSpacer = QtGui.QSpacerItem(0, 0, QtGui.QSizePolicy.Fixed,
QtGui.QSizePolicy.Fixed)
descriptionLayout.addSpacerItem(descriptionSpacer)
descriptionLabel = QtGui.QLabel(importWidget)
descriptionLabel.setWordWrap(True)
descriptionLabel.setObjectName(prefix + u'DescriptionLabel')
descriptionLayout.addWidget(descriptionLabel)
importLayout.addLayout(descriptionLayout)
self.formatWidgets[format][u'descriptionLabel'] = descriptionLabel
self.formatWidgets[format][u'descriptionSpacer'] = descriptionSpacer
if select_mode == SongFormatSelect.SingleFile or \
select_mode == SongFormatSelect.SingleFolder:
filepathLayout = QtGui.QHBoxLayout()
filepathLayout.setObjectName(prefix + u'FilepathLayout')
filepathLayout.setContentsMargins(0, self.formatVSpacing, 0, 0)
filepathLabel = QtGui.QLabel(importWidget)
filepathLabel.setObjectName(prefix + u'FilepathLabel')
filepathLayout.addWidget(filepathLabel)

View File

@ -112,6 +112,8 @@ class SongFormat(object):
Title for ``QFileDialog`` (default includes the format's ``Name``).
``InvalidSourceMsg``
Message displayed if ``Class.isValidSource()`` returns ``False``.
``DescriptionText``
Short description (1-2 lines) about the song format.
"""
# Enumeration of song formats and their attributes
# * Numerical order of song formats is significant as it determines the
@ -154,6 +156,7 @@ class SongFormat(object):
DisabledLabelText = -31
GetFilesTitle = -32
InvalidSourceMsg = -33
DescriptionText = -34
# Set optional attribute defaults
_defaults = {
@ -164,7 +167,8 @@ class SongFormat(object):
ComboBoxText: None,
DisabledLabelText: u'',
GetFilesTitle: None,
InvalidSourceMsg: None
InvalidSourceMsg: None,
DescriptionText: None
}
# Set attribute values for each Song Format
@ -293,7 +297,11 @@ class SongFormat(object):
Prefix: u'zionWorx',
SelectMode: SongFormatSelect.SingleFile,
ComboBoxText: translate('SongsPlugin.ImportWizardForm',
'ZionWorx (CSV database dump)')
'ZionWorx (CSV)'),
DescriptionText: translate('SongsPlugin.ImportWizardForm',
'First dump your ZionWorx database to a CSV file, using '
'freeware tool "TurboDB Data Exchange" (TdbDataX) from dataWeb '
'(see the User Manual).')
# },
# CSV: {
# class_: CSVImport,