Deduplication, naming and various cleanups

bzr-revno: 1261
This commit is contained in:
Jon Tibble 2011-02-02 18:51:26 +00:00
commit 59abbcf277
9 changed files with 160 additions and 202 deletions

View File

@ -93,15 +93,15 @@ class SearchEdit(QtGui.QLineEdit):
``event`` ``event``
The event that happened. The event that happened.
""" """
sz = self.clearButton.size() size = self.clearButton.size()
frameWidth = self.style().pixelMetric( frameWidth = self.style().pixelMetric(
QtGui.QStyle.PM_DefaultFrameWidth) QtGui.QStyle.PM_DefaultFrameWidth)
self.clearButton.move(self.rect().right() - frameWidth - sz.width(), self.clearButton.move(self.rect().right() - frameWidth - size.width(),
(self.rect().bottom() + 1 - sz.height()) / 2) (self.rect().bottom() + 1 - size.height()) / 2)
if hasattr(self, u'menuButton'): if hasattr(self, u'menuButton'):
sz = self.menuButton.size() size = self.menuButton.size()
self.menuButton.move(self.rect().left() + frameWidth + 2, self.menuButton.move(self.rect().left() + frameWidth + 2,
(self.rect().bottom() + 1 - sz.height()) / 2) (self.rect().bottom() + 1 - size.height()) / 2)
def currentSearchType(self): def currentSearchType(self):
""" """

View File

@ -91,21 +91,30 @@ class ThemeLevel(object):
Song = 3 Song = 3
class BackgroundType(object): class BackgroundType(object):
"""
Type enumeration for backgrounds.
"""
Solid = 0 Solid = 0
Gradient = 1 Gradient = 1
Image = 2 Image = 2
@staticmethod @staticmethod
def to_string(type): def to_string(background_type):
if type == BackgroundType.Solid: """
Return a string representation of a background type.
"""
if background_type == BackgroundType.Solid:
return u'solid' return u'solid'
elif type == BackgroundType.Gradient: elif background_type == BackgroundType.Gradient:
return u'gradient' return u'gradient'
elif type == BackgroundType.Image: elif background_type == BackgroundType.Image:
return u'image' return u'image'
@staticmethod @staticmethod
def from_string(type_string): def from_string(type_string):
"""
Return a background type for the given string.
"""
if type_string == u'solid': if type_string == u'solid':
return BackgroundType.Solid return BackgroundType.Solid
elif type_string == u'gradient': elif type_string == u'gradient':
@ -114,6 +123,9 @@ class BackgroundType(object):
return BackgroundType.Image return BackgroundType.Image
class BackgroundGradientType(object): class BackgroundGradientType(object):
"""
Type enumeration for background gradients.
"""
Horizontal = 0 Horizontal = 0
Vertical = 1 Vertical = 1
Circular = 2 Circular = 2
@ -121,20 +133,26 @@ class BackgroundGradientType(object):
LeftBottom = 4 LeftBottom = 4
@staticmethod @staticmethod
def to_string(type): def to_string(gradient_type):
if type == BackgroundGradientType.Horizontal: """
Return a string representation of a background gradient type.
"""
if gradient_type == BackgroundGradientType.Horizontal:
return u'horizontal' return u'horizontal'
elif type == BackgroundGradientType.Vertical: elif gradient_type == BackgroundGradientType.Vertical:
return u'vertical' return u'vertical'
elif type == BackgroundGradientType.Circular: elif gradient_type == BackgroundGradientType.Circular:
return u'circular' return u'circular'
elif type == BackgroundGradientType.LeftTop: elif gradient_type == BackgroundGradientType.LeftTop:
return u'leftTop' return u'leftTop'
elif type == BackgroundGradientType.LeftBottom: elif gradient_type == BackgroundGradientType.LeftBottom:
return u'leftBottom' return u'leftBottom'
@staticmethod @staticmethod
def from_string(type_string): def from_string(type_string):
"""
Return a background gradient type for the given string.
"""
if type_string == u'horizontal': if type_string == u'horizontal':
return BackgroundGradientType.Horizontal return BackgroundGradientType.Horizontal
elif type_string == u'vertical': elif type_string == u'vertical':
@ -147,19 +165,25 @@ class BackgroundGradientType(object):
return BackgroundGradientType.LeftBottom return BackgroundGradientType.LeftBottom
class HorizontalType(object): class HorizontalType(object):
"""
Type enumeration for horizontal alignment.
"""
Left = 0 Left = 0
Center = 1 Center = 1
Right = 2 Right = 2
class VerticalType(object): class VerticalType(object):
"""
Type enumeration for vertical alignment.
"""
Top = 0 Top = 0
Middle = 1 Middle = 1
Bottom = 2 Bottom = 2
boolean_list = [u'bold', u'italics', u'override', u'outline', u'shadow', BOOLEAN_LIST = [u'bold', u'italics', u'override', u'outline', u'shadow',
u'slide_transition'] u'slide_transition']
integer_list = [u'size', u'line_adjustment', u'x', u'height', u'y', INTEGER_LIST = [u'size', u'line_adjustment', u'x', u'height', u'y',
u'width', u'shadow_size', u'outline_size', u'horizontal_align', u'width', u'shadow_size', u'outline_size', u'horizontal_align',
u'vertical_align', u'wrap_style'] u'vertical_align', u'wrap_style']
@ -514,9 +538,9 @@ class ThemeXML(object):
return return
field = self._de_hump(element) field = self._de_hump(element)
tag = master + u'_' + field tag = master + u'_' + field
if field in boolean_list: if field in BOOLEAN_LIST:
setattr(self, tag, str_to_bool(value)) setattr(self, tag, str_to_bool(value))
elif field in integer_list: elif field in INTEGER_LIST:
setattr(self, tag, int(value)) setattr(self, tag, int(value))
else: else:
# make string value unicode # make string value unicode

View File

@ -141,7 +141,8 @@ class AdvancedTab(SettingsTab):
'Hide the mouse cursor when moved over the display window')) 'Hide the mouse cursor when moved over the display window'))
self.serviceOrderGroupBox.setTitle(translate('OpenLP.AdvancedTab', self.serviceOrderGroupBox.setTitle(translate('OpenLP.AdvancedTab',
'Service Order Print')) 'Service Order Print'))
self.detailedServicePrintCheckBox.setText(translate('OpenLP.AdvancedTab', self.detailedServicePrintCheckBox.setText(
translate('OpenLP.AdvancedTab',
'Print slide texts and service item notes as well')) 'Print slide texts and service item notes as well'))
# self.sharedDirGroupBox.setTitle( # self.sharedDirGroupBox.setTitle(
# translate('AdvancedTab', 'Central Data Store')) # translate('AdvancedTab', 'Central Data Store'))

View File

@ -771,34 +771,29 @@ class MainWindow(QtGui.QMainWindow, Ui_MainWindow):
""" """
Put OpenLP into "Default" view mode. Put OpenLP into "Default" view mode.
""" """
settings = QtCore.QSettings() self.setViewMode(True, True, True, True, True, u'default')
settings.setValue(u'%s/view mode' % self.generalSettingsSection,
u'default')
self.setViewMode(True, True, True, True, True)
def onModeSetupItemClicked(self): def onModeSetupItemClicked(self):
""" """
Put OpenLP into "Setup" view mode. Put OpenLP into "Setup" view mode.
""" """
settings = QtCore.QSettings() self.setViewMode(True, True, False, True, False, u'setup')
settings.setValue(u'%s/view mode' % self.generalSettingsSection,
u'setup')
self.setViewMode(True, True, False, True, False)
def onModeLiveItemClicked(self): def onModeLiveItemClicked(self):
""" """
Put OpenLP into "Live" view mode. Put OpenLP into "Live" view mode.
""" """
settings = QtCore.QSettings() self.setViewMode(False, True, False, False, True, u'live')
settings.setValue(u'%s/view mode' % self.generalSettingsSection,
u'live')
self.setViewMode(False, True, False, False, True)
def setViewMode(self, media=True, service=True, theme=True, preview=True, def setViewMode(self, media=True, service=True, theme=True, preview=True,
live=True): live=True, mode=u''):
""" """
Set OpenLP to a different view mode. Set OpenLP to a different view mode.
""" """
if mode:
settings = QtCore.QSettings()
settings.setValue(u'%s/view mode' % self.generalSettingsSection,
mode)
self.MediaManagerDock.setVisible(media) self.MediaManagerDock.setVisible(media)
self.ServiceManagerDock.setVisible(service) self.ServiceManagerDock.setVisible(service)
self.ThemeManagerDock.setVisible(theme) self.ThemeManagerDock.setVisible(theme)

View File

@ -526,7 +526,7 @@ class ServiceManager(QtGui.QWidget):
'File is not a valid service.')) 'File is not a valid service.'))
log.exception(u'File contains no service data') log.exception(u'File contains no service data')
except (IOError, NameError): except (IOError, NameError):
log.exception(u'Problem loading a service file') log.exception(u'Problem loading service file %s' % fileName)
finally: finally:
if fileTo: if fileTo:
fileTo.close() fileTo.close()

View File

@ -27,6 +27,7 @@
from PyQt4 import QtCore, QtGui from PyQt4 import QtCore, QtGui
from openlp.core.lib import translate, build_icon from openlp.core.lib import translate, build_icon
from openlp.core.ui.wizard import addWelcomePage
class Ui_ThemeWizard(object): class Ui_ThemeWizard(object):
def setupUi(self, themeWizard): def setupUi(self, themeWizard):
@ -36,22 +37,7 @@ class Ui_ThemeWizard(object):
themeWizard.setOptions(QtGui.QWizard.IndependentPages | themeWizard.setOptions(QtGui.QWizard.IndependentPages |
QtGui.QWizard.NoBackButtonOnStartPage) QtGui.QWizard.NoBackButtonOnStartPage)
# Welcome Page # Welcome Page
self.welcomePage = QtGui.QWizardPage() addWelcomePage(themeWizard, u':/wizards/wizard_createtheme.bmp')
self.welcomePage.setPixmap(QtGui.QWizard.WatermarkPixmap,
QtGui.QPixmap(u':/wizards/wizard_createtheme.bmp'))
self.welcomePage.setObjectName(u'WelcomePage')
self.welcomeLayout = QtGui.QVBoxLayout(self.welcomePage)
self.welcomeLayout.setObjectName(u'WelcomeLayout')
self.titleLabel = QtGui.QLabel(self.welcomePage)
self.titleLabel.setObjectName(u'TitleLabel')
self.welcomeLayout.addWidget(self.titleLabel)
self.welcomeLayout.addSpacing(40)
self.informationLabel = QtGui.QLabel(self.welcomePage)
self.informationLabel.setWordWrap(True)
self.informationLabel.setObjectName(u'InformationLabel')
self.welcomeLayout.addWidget(self.informationLabel)
self.welcomeLayout.addStretch()
themeWizard.addPage(self.welcomePage)
# Background Page # Background Page
self.backgroundPage = QtGui.QWizardPage() self.backgroundPage = QtGui.QWizardPage()
self.backgroundPage.setObjectName(u'BackgroundPage') self.backgroundPage.setObjectName(u'BackgroundPage')

View File

@ -63,36 +63,12 @@ class OpenLPWizard(QtGui.QWizard):
self.setOptions(QtGui.QWizard.IndependentPages | self.setOptions(QtGui.QWizard.IndependentPages |
QtGui.QWizard.NoBackButtonOnStartPage | QtGui.QWizard.NoBackButtonOnStartPage |
QtGui.QWizard.NoBackButtonOnLastPage) QtGui.QWizard.NoBackButtonOnLastPage)
self.addWelcomePage(image) addWelcomePage(self, image)
self.addCustomPages() self.addCustomPages()
self.addProgressPage() self.addProgressPage()
self.retranslateUi() self.retranslateUi()
QtCore.QMetaObject.connectSlotsByName(self) QtCore.QMetaObject.connectSlotsByName(self)
def addWelcomePage(self, image):
"""
Add the opening welcome page to the wizard.
``image``
A splash image for the wizard
"""
self.welcomePage = QtGui.QWizardPage()
self.welcomePage.setPixmap(QtGui.QWizard.WatermarkPixmap,
QtGui.QPixmap(image))
self.welcomePage.setObjectName(u'WelcomePage')
self.welcomeLayout = QtGui.QVBoxLayout(self.welcomePage)
self.welcomeLayout.setObjectName(u'WelcomeLayout')
self.titleLabel = QtGui.QLabel(self.welcomePage)
self.titleLabel.setObjectName(u'TitleLabel')
self.welcomeLayout.addWidget(self.titleLabel)
self.welcomeLayout.addSpacing(40)
self.informationLabel = QtGui.QLabel(self.welcomePage)
self.informationLabel.setWordWrap(True)
self.informationLabel.setObjectName(u'InformationLabel')
self.welcomeLayout.addWidget(self.informationLabel)
self.welcomeLayout.addStretch()
self.addPage(self.welcomePage)
def addProgressPage(self): def addProgressPage(self):
""" """
Add the progress page for the wizard. This page informs the user how Add the progress page for the wizard. This page informs the user how
@ -169,3 +145,27 @@ class OpenLPWizard(QtGui.QWizard):
self.finishButton.setVisible(True) self.finishButton.setVisible(True)
self.cancelButton.setVisible(False) self.cancelButton.setVisible(False)
Receiver.send_message(u'openlp_process_events') Receiver.send_message(u'openlp_process_events')
def addWelcomePage(parent, image):
"""
Generate an opening welcome page for a wizard using a provided image.
``image``
A splash image for the wizard.
"""
parent.welcomePage = QtGui.QWizardPage()
parent.welcomePage.setPixmap(QtGui.QWizard.WatermarkPixmap,
QtGui.QPixmap(image))
parent.welcomePage.setObjectName(u'WelcomePage')
parent.welcomeLayout = QtGui.QVBoxLayout(parent.welcomePage)
parent.welcomeLayout.setObjectName(u'WelcomeLayout')
parent.titleLabel = QtGui.QLabel(parent.welcomePage)
parent.titleLabel.setObjectName(u'TitleLabel')
parent.welcomeLayout.addWidget(parent.titleLabel)
parent.welcomeLayout.addSpacing(40)
parent.informationLabel = QtGui.QLabel(parent.welcomePage)
parent.informationLabel.setWordWrap(True)
parent.informationLabel.setObjectName(u'InformationLabel')
parent.welcomeLayout.addWidget(parent.informationLabel)
parent.welcomeLayout.addStretch()
parent.addPage(parent.welcomePage)

View File

@ -111,14 +111,8 @@ class Ui_EditSongDialog(object):
self.authorsLayout.setObjectName(u'authorsLayout') self.authorsLayout.setObjectName(u'authorsLayout')
self.authorAddLayout = QtGui.QHBoxLayout() self.authorAddLayout = QtGui.QHBoxLayout()
self.authorAddLayout.setObjectName(u'authorAddLayout') self.authorAddLayout.setObjectName(u'authorAddLayout')
self.authorsComboBox = QtGui.QComboBox(self.authorsGroupBox) self.authorsComboBox = editSongDialogComboBox(
self.authorsComboBox.setSizeAdjustPolicy( self.authorsGroupBox, u'authorsComboBox')
QtGui.QComboBox.AdjustToMinimumContentsLength)
self.authorsComboBox.setSizePolicy(
QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Fixed)
self.authorsComboBox.setEditable(True)
self.authorsComboBox.setInsertPolicy(QtGui.QComboBox.NoInsert)
self.authorsComboBox.setObjectName(u'authorsComboBox')
self.authorAddLayout.addWidget(self.authorsComboBox) self.authorAddLayout.addWidget(self.authorsComboBox)
self.authorAddButton = QtGui.QPushButton(self.authorsGroupBox) self.authorAddButton = QtGui.QPushButton(self.authorsGroupBox)
self.authorAddButton.setObjectName(u'authorAddButton') self.authorAddButton.setObjectName(u'authorAddButton')
@ -152,14 +146,8 @@ class Ui_EditSongDialog(object):
self.topicsLayout.setObjectName(u'topicsLayout') self.topicsLayout.setObjectName(u'topicsLayout')
self.topicAddLayout = QtGui.QHBoxLayout() self.topicAddLayout = QtGui.QHBoxLayout()
self.topicAddLayout.setObjectName(u'topicAddLayout') self.topicAddLayout.setObjectName(u'topicAddLayout')
self.topicsComboBox = QtGui.QComboBox(self.topicsGroupBox) self.topicsComboBox = editSongDialogComboBox(
self.topicsComboBox.setSizeAdjustPolicy( self.topicsGroupBox, u'topicsComboBox')
QtGui.QComboBox.AdjustToMinimumContentsLength)
self.topicsComboBox.setSizePolicy(
QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Fixed)
self.topicsComboBox.setEditable(True)
self.topicsComboBox.setInsertPolicy(QtGui.QComboBox.NoInsert)
self.topicsComboBox.setObjectName(u'topicsComboBox')
self.topicAddLayout.addWidget(self.topicsComboBox) self.topicAddLayout.addWidget(self.topicsComboBox)
self.topicAddButton = QtGui.QPushButton(self.topicsGroupBox) self.topicAddButton = QtGui.QPushButton(self.topicsGroupBox)
self.topicAddButton.setObjectName(u'topicAddButton') self.topicAddButton.setObjectName(u'topicAddButton')
@ -183,14 +171,8 @@ class Ui_EditSongDialog(object):
self.songBookLayout.setObjectName(u'songBookLayout') self.songBookLayout.setObjectName(u'songBookLayout')
self.songBookNameLabel = QtGui.QLabel(self.songBookGroupBox) self.songBookNameLabel = QtGui.QLabel(self.songBookGroupBox)
self.songBookNameLabel.setObjectName(u'songBookNameLabel') self.songBookNameLabel.setObjectName(u'songBookNameLabel')
self.songBookComboBox = QtGui.QComboBox(self.songBookGroupBox) self.songBookComboBox = editSongDialogComboBox(
self.songBookComboBox.setSizeAdjustPolicy( self.songBookGroupBox, u'songBookComboBox')
QtGui.QComboBox.AdjustToMinimumContentsLength)
self.songBookComboBox.setSizePolicy(
QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Fixed)
self.songBookComboBox.setEditable(True)
self.songBookComboBox.setInsertPolicy(QtGui.QComboBox.NoInsert)
self.songBookComboBox.setObjectName(u'songBookComboBox')
self.songBookNameLabel.setBuddy(self.songBookComboBox) self.songBookNameLabel.setBuddy(self.songBookComboBox)
self.songBookLayout.addRow(self.songBookNameLabel, self.songBookLayout.addRow(self.songBookNameLabel,
self.songBookComboBox) self.songBookComboBox)
@ -215,14 +197,8 @@ class Ui_EditSongDialog(object):
self.themeGroupBox.setObjectName(u'themeGroupBox') self.themeGroupBox.setObjectName(u'themeGroupBox')
self.themeLayout = QtGui.QHBoxLayout(self.themeGroupBox) self.themeLayout = QtGui.QHBoxLayout(self.themeGroupBox)
self.themeLayout.setObjectName(u'themeLayout') self.themeLayout.setObjectName(u'themeLayout')
self.themeComboBox = QtGui.QComboBox(self.themeGroupBox) self.themeComboBox = editSongDialogComboBox(
self.themeComboBox.setSizeAdjustPolicy( self.themeGroupBox, u'themeComboBox')
QtGui.QComboBox.AdjustToMinimumContentsLength)
self.themeComboBox.setSizePolicy(
QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Fixed)
self.themeComboBox.setEditable(True)
self.themeComboBox.setInsertPolicy(QtGui.QComboBox.NoInsert)
self.themeComboBox.setObjectName(u'themeComboBox')
self.themeLayout.addWidget(self.themeComboBox) self.themeLayout.addWidget(self.themeComboBox)
self.themeAddButton = QtGui.QPushButton(self.themeGroupBox) self.themeAddButton = QtGui.QPushButton(self.themeGroupBox)
self.themeAddButton.setObjectName(u'themeAddButton') self.themeAddButton.setObjectName(u'themeAddButton')
@ -331,3 +307,15 @@ class Ui_EditSongDialog(object):
self.songTabWidget.indexOf(self.themeTab), self.songTabWidget.indexOf(self.themeTab),
translate('SongsPlugin.EditSongForm', translate('SongsPlugin.EditSongForm',
'Theme, Copyright Info && Comments')) 'Theme, Copyright Info && Comments'))
def editSongDialogComboBox(parent, name):
"""
Utility method to generate a standard combo box for this dialog.
"""
comboBox = QtGui.QComboBox(parent)
comboBox.setSizeAdjustPolicy(QtGui.QComboBox.AdjustToMinimumContentsLength)
comboBox.setSizePolicy(QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Fixed)
comboBox.setEditable(True)
comboBox.setInsertPolicy(QtGui.QComboBox.NoInsert)
comboBox.setObjectName(name)
return comboBox

View File

@ -165,29 +165,29 @@ class SongImportForm(OpenLPWizard):
self.formatStack = QtGui.QStackedLayout() self.formatStack = QtGui.QStackedLayout()
self.formatStack.setObjectName(u'FormatStack') self.formatStack.setObjectName(u'FormatStack')
# OpenLP 2.0 # OpenLP 2.0
self.addSingleFileSelectItem(u'openLP2') self.addFileSelectItem(u'openLP2', single_select=True)
# openlp.org 1.x # openlp.org 1.x
self.addSingleFileSelectItem(u'openLP1', None, True) self.addFileSelectItem(u'openLP1', None, True, True)
# OpenLyrics # OpenLyrics
self.addMultiFileSelectItem(u'openLyrics', u'OpenLyrics', True) self.addFileSelectItem(u'openLyrics', u'OpenLyrics', True)
# Open Song # Open Song
self.addMultiFileSelectItem(u'openSong', u'OpenSong') self.addFileSelectItem(u'openSong', u'OpenSong')
# Words of Worship # Words of Worship
self.addMultiFileSelectItem(u'wordsOfWorship') self.addFileSelectItem(u'wordsOfWorship')
# CCLI File import # CCLI File import
self.addMultiFileSelectItem(u'ccli') self.addFileSelectItem(u'ccli')
# Songs of Fellowship # Songs of Fellowship
self.addMultiFileSelectItem(u'songsOfFellowship', None, True) self.addFileSelectItem(u'songsOfFellowship', None, True)
# Generic Document/Presentation import # Generic Document/Presentation import
self.addMultiFileSelectItem(u'generic', None, True) self.addFileSelectItem(u'generic', None, True)
# EasySlides # EasySlides
self.addSingleFileSelectItem(u'easiSlides') self.addFileSelectItem(u'easiSlides', single_select=True)
# EasyWorship # EasyWorship
self.addSingleFileSelectItem(u'ew') self.addFileSelectItem(u'ew', single_select=True)
# Words of Worship # Words of Worship
self.addMultiFileSelectItem(u'songBeamer') self.addFileSelectItem(u'songBeamer')
# Commented out for future use. # Commented out for future use.
# self.addSingleFileSelectItem(u'csv', u'CSV') # self.addFileSelectItem(u'csv', u'CSV', single_select=True)
self.sourceLayout.addLayout(self.formatStack) self.sourceLayout.addLayout(self.formatStack)
self.addPage(self.sourcePage) self.addPage(self.sourcePage)
@ -318,16 +318,6 @@ class SongImportForm(OpenLPWizard):
self.openLP2FilenameLabel.minimumSizeHint().width()) self.openLP2FilenameLabel.minimumSizeHint().width())
self.formatSpacer.changeSize(width, 0, QtGui.QSizePolicy.Fixed, self.formatSpacer.changeSize(width, 0, QtGui.QSizePolicy.Fixed,
QtGui.QSizePolicy.Fixed) QtGui.QSizePolicy.Fixed)
self.openLP2FormLabelSpacer.changeSize(width, 0,
QtGui.QSizePolicy.Fixed, QtGui.QSizePolicy.Fixed)
self.openLP1FormLabelSpacer.changeSize(width, 0,
QtGui.QSizePolicy.Fixed, QtGui.QSizePolicy.Fixed)
self.easiSlidesFormLabelSpacer.changeSize(width, 0,
QtGui.QSizePolicy.Fixed, QtGui.QSizePolicy.Fixed)
self.ewFormLabelSpacer.changeSize(width, 0, QtGui.QSizePolicy.Fixed,
QtGui.QSizePolicy.Fixed)
# self.csvFormLabelSpacer.changeSize(width, 0, QtGui.QSizePolicy.Fixed,
# QtGui.QSizePolicy.Fixed)
def validateCurrentPage(self): def validateCurrentPage(self):
""" """
@ -791,52 +781,8 @@ class SongImportForm(OpenLPWizard):
translate('SongsPlugin.SongImportForm', translate('SongsPlugin.SongImportForm',
'Your song import failed.')) 'Your song import failed.'))
def addSingleFileSelectItem(self, prefix, obj_prefix=None, def addFileSelectItem(self, prefix, obj_prefix=None, can_disable=False,
can_disable=False): single_select=False):
if not obj_prefix:
obj_prefix = prefix
page = QtGui.QWidget()
page.setObjectName(obj_prefix + u'Page')
if can_disable:
importWidget = self.disablableWidget(page, prefix, obj_prefix)
else:
importWidget = page
importLayout = QtGui.QFormLayout(importWidget)
importLayout.setMargin(0)
if can_disable:
importLayout.setObjectName(obj_prefix + u'ImportLayout')
else:
importLayout.setObjectName(obj_prefix + u'Layout')
filenameLabel = QtGui.QLabel(importWidget)
filenameLabel.setObjectName(obj_prefix + u'FilenameLabel')
fileLayout = QtGui.QHBoxLayout()
fileLayout.setObjectName(obj_prefix + u'FileLayout')
filenameEdit = QtGui.QLineEdit(importWidget)
filenameEdit.setObjectName(obj_prefix + u'FilenameEdit')
fileLayout.addWidget(filenameEdit)
browseButton = QtGui.QToolButton(importWidget)
browseButton.setIcon(self.openIcon)
browseButton.setObjectName(obj_prefix + u'BrowseButton')
fileLayout.addWidget(browseButton)
importLayout.addRow(filenameLabel, fileLayout)
formSpacer = QtGui.QSpacerItem(10, 0, QtGui.QSizePolicy.Fixed,
QtGui.QSizePolicy.Minimum)
importLayout.setItem(1, QtGui.QFormLayout.LabelRole, formSpacer)
self.formatStack.addWidget(page)
setattr(self, prefix + u'Page', page)
setattr(self, prefix + u'FilenameLabel', filenameLabel)
setattr(self, prefix + u'FormLabelSpacer', formSpacer)
setattr(self, prefix + u'FileLayout', fileLayout)
setattr(self, prefix + u'FilenameEdit', filenameEdit)
setattr(self, prefix + u'BrowseButton', browseButton)
if can_disable:
setattr(self, prefix + u'ImportLayout', importLayout)
else:
setattr(self, prefix + u'Layout', importLayout)
self.formatComboBox.addItem(u'')
def addMultiFileSelectItem(self, prefix, obj_prefix=None,
can_disable=False):
if not obj_prefix: if not obj_prefix:
obj_prefix = prefix obj_prefix = prefix
page = QtGui.QWidget() page = QtGui.QWidget()
@ -847,37 +793,55 @@ class SongImportForm(OpenLPWizard):
importWidget = page importWidget = page
importLayout = QtGui.QVBoxLayout(importWidget) importLayout = QtGui.QVBoxLayout(importWidget)
importLayout.setMargin(0) importLayout.setMargin(0)
if can_disable: importLayout.setObjectName(obj_prefix + u'ImportLayout')
importLayout.setObjectName(obj_prefix + u'ImportLayout') if single_select:
fileLayout = QtGui.QHBoxLayout()
fileLayout.setObjectName(obj_prefix + u'FileLayout')
filenameLabel = QtGui.QLabel(importWidget)
filenameLabel.setObjectName(obj_prefix + u'FilenameLabel')
fileLayout.addWidget(filenameLabel)
filenameEdit = QtGui.QLineEdit(importWidget)
filenameEdit.setObjectName(obj_prefix + u'FilenameEdit')
fileLayout.addWidget(filenameEdit)
browseButton = QtGui.QToolButton(importWidget)
browseButton.setIcon(self.openIcon)
browseButton.setObjectName(obj_prefix + u'BrowseButton')
fileLayout.addWidget(browseButton)
formSpacer = QtGui.QSpacerItem(10, 0, QtGui.QSizePolicy.Fixed,
QtGui.QSizePolicy.Expanding)
importLayout.addLayout(fileLayout)
importLayout.addSpacerItem(formSpacer)
else: else:
importLayout.setObjectName(obj_prefix + u'Layout') fileListWidget = QtGui.QListWidget(importWidget)
fileListWidget = QtGui.QListWidget(importWidget) fileListWidget.setSelectionMode(
fileListWidget.setSelectionMode( QtGui.QAbstractItemView.ExtendedSelection)
QtGui.QAbstractItemView.ExtendedSelection) fileListWidget.setObjectName(obj_prefix + u'FileListWidget')
fileListWidget.setObjectName(obj_prefix + u'FileListWidget') importLayout.addWidget(fileListWidget)
importLayout.addWidget(fileListWidget) buttonLayout = QtGui.QHBoxLayout()
buttonLayout = QtGui.QHBoxLayout() buttonLayout.setObjectName(obj_prefix + u'ButtonLayout')
buttonLayout.setObjectName(obj_prefix + u'ButtonLayout') addButton = QtGui.QPushButton(importWidget)
addButton = QtGui.QPushButton(importWidget) addButton.setIcon(self.openIcon)
addButton.setIcon(self.openIcon) addButton.setObjectName(obj_prefix + u'AddButton')
addButton.setObjectName(obj_prefix + u'AddButton') buttonLayout.addWidget(addButton)
buttonLayout.addWidget(addButton) buttonLayout.addStretch()
buttonLayout.addStretch() removeButton = QtGui.QPushButton(importWidget)
removeButton = QtGui.QPushButton(importWidget) removeButton.setIcon(self.deleteIcon)
removeButton.setIcon(self.deleteIcon) removeButton.setObjectName(obj_prefix + u'RemoveButton')
removeButton.setObjectName(obj_prefix + u'RemoveButton') buttonLayout.addWidget(removeButton)
buttonLayout.addWidget(removeButton) importLayout.addLayout(buttonLayout)
importLayout.addLayout(buttonLayout)
self.formatStack.addWidget(page) self.formatStack.addWidget(page)
setattr(self, prefix + u'Page', page) setattr(self, prefix + u'Page', page)
setattr(self, prefix + u'FileListWidget', fileListWidget) if single_select:
setattr(self, prefix + u'ButtonLayout', buttonLayout) setattr(self, prefix + u'FilenameLabel', filenameLabel)
setattr(self, prefix + u'AddButton', addButton) setattr(self, prefix + u'FileLayout', fileLayout)
setattr(self, prefix + u'RemoveButton', removeButton) setattr(self, prefix + u'FilenameEdit', filenameEdit)
if can_disable: setattr(self, prefix + u'BrowseButton', browseButton)
setattr(self, prefix + u'ImportLayout', importLayout)
else: else:
setattr(self, prefix + u'Layout', importLayout) setattr(self, prefix + u'FileListWidget', fileListWidget)
setattr(self, prefix + u'ButtonLayout', buttonLayout)
setattr(self, prefix + u'AddButton', addButton)
setattr(self, prefix + u'RemoveButton', removeButton)
setattr(self, prefix + u'ImportLayout', importLayout)
self.formatComboBox.addItem(u'') self.formatComboBox.addItem(u'')
def disablableWidget(self, page, prefix, obj_prefix): def disablableWidget(self, page, prefix, obj_prefix):