2010-04-02 12:23:40 +00:00
|
|
|
# -*- coding: utf-8 -*-
|
|
|
|
# vim: autoindent shiftwidth=4 expandtab textwidth=80 tabstop=4 softtabstop=4
|
|
|
|
|
|
|
|
###############################################################################
|
|
|
|
# OpenLP - Open Source Lyrics Projection #
|
|
|
|
# --------------------------------------------------------------------------- #
|
2010-12-26 11:04:47 +00:00
|
|
|
# Copyright (c) 2008-2011 Raoul Snyman #
|
|
|
|
# Portions copyright (c) 2008-2011 Tim Bentley, Jonathan Corwin, Michael #
|
2010-07-24 22:10:47 +00:00
|
|
|
# Gorven, Scott Guerrieri, Meinert Jordan, Andreas Preikschat, Christian #
|
|
|
|
# Richter, Philip Ridout, Maikel Stuivenberg, Martin Thompson, Jon Tibble, #
|
|
|
|
# Carsten Tinggaard, Frode Woldsund #
|
2010-04-02 12:23:40 +00:00
|
|
|
# --------------------------------------------------------------------------- #
|
|
|
|
# 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 PyQt4 import QtCore, QtGui
|
|
|
|
|
2010-07-08 11:46:03 +00:00
|
|
|
from openlp.core.lib import build_icon, translate
|
2010-05-31 22:06:16 +00:00
|
|
|
|
2010-04-02 12:23:40 +00:00
|
|
|
class Ui_SongImportWizard(object):
|
2010-08-20 19:40:07 +00:00
|
|
|
def setupUi(self, songImportWizard):
|
2010-09-22 15:01:37 +00:00
|
|
|
self.openIcon = build_icon(u':/general/general_open.png')
|
|
|
|
self.deleteIcon = build_icon(u':/general/general_delete.png')
|
2010-08-20 19:40:07 +00:00
|
|
|
songImportWizard.setObjectName(u'songImportWizard')
|
|
|
|
songImportWizard.setModal(True)
|
|
|
|
songImportWizard.setWizardStyle(QtGui.QWizard.ModernStyle)
|
|
|
|
songImportWizard.setOptions(
|
2010-04-02 20:03:51 +00:00
|
|
|
QtGui.QWizard.IndependentPages |
|
|
|
|
QtGui.QWizard.NoBackButtonOnStartPage |
|
|
|
|
QtGui.QWizard.NoBackButtonOnLastPage)
|
2010-12-27 18:23:46 +00:00
|
|
|
# Welcome Page
|
2010-08-22 19:50:30 +00:00
|
|
|
self.welcomePage = QtGui.QWizardPage()
|
|
|
|
self.welcomePage.setPixmap(QtGui.QWizard.WatermarkPixmap,
|
2010-04-02 20:03:51 +00:00
|
|
|
QtGui.QPixmap(u':/wizards/wizard_importsong.bmp'))
|
2010-12-27 18:23:46 +00:00
|
|
|
self.welcomePage.setObjectName(u'WelcomePage')
|
|
|
|
self.welcomeLayout = QtGui.QVBoxLayout(self.welcomePage)
|
|
|
|
self.welcomeLayout.setObjectName(u'WelcomeLayout')
|
2010-08-22 19:50:30 +00:00
|
|
|
self.titleLabel = QtGui.QLabel(self.welcomePage)
|
|
|
|
self.titleLabel.setObjectName(u'TitleLabel')
|
2010-12-27 18:23:46 +00:00
|
|
|
self.welcomeLayout.addWidget(self.titleLabel)
|
|
|
|
self.welcomeLayout.addSpacing(40)
|
2010-08-22 19:50:30 +00:00
|
|
|
self.informationLabel = QtGui.QLabel(self.welcomePage)
|
|
|
|
self.informationLabel.setWordWrap(True)
|
|
|
|
self.informationLabel.setObjectName(u'InformationLabel')
|
2010-12-27 18:23:46 +00:00
|
|
|
self.welcomeLayout.addWidget(self.informationLabel)
|
|
|
|
self.welcomeLayout.addStretch()
|
2010-08-22 19:50:30 +00:00
|
|
|
songImportWizard.addPage(self.welcomePage)
|
2010-12-27 18:23:46 +00:00
|
|
|
# Source Page
|
2010-08-22 19:50:30 +00:00
|
|
|
self.sourcePage = QtGui.QWizardPage()
|
|
|
|
self.sourcePage.setObjectName(u'SourcePage')
|
|
|
|
self.sourceLayout = QtGui.QVBoxLayout(self.sourcePage)
|
|
|
|
self.sourceLayout.setObjectName(u'SourceLayout')
|
2010-12-27 18:23:46 +00:00
|
|
|
self.formatLayout = QtGui.QFormLayout()
|
2010-08-22 19:50:30 +00:00
|
|
|
self.formatLayout.setObjectName(u'FormatLayout')
|
|
|
|
self.formatLabel = QtGui.QLabel(self.sourcePage)
|
|
|
|
self.formatLabel.setObjectName(u'FormatLabel')
|
|
|
|
self.formatComboBox = QtGui.QComboBox(self.sourcePage)
|
2010-12-27 18:23:46 +00:00
|
|
|
self.formatComboBox.setObjectName(u'FormatComboBox')
|
|
|
|
self.formatLayout.addRow(self.formatLabel, self.formatComboBox)
|
|
|
|
self.formatSpacer = QtGui.QSpacerItem(10, 0, QtGui.QSizePolicy.Fixed,
|
|
|
|
QtGui.QSizePolicy.Minimum)
|
|
|
|
self.formatLayout.setItem(1, QtGui.QFormLayout.LabelRole,
|
|
|
|
self.formatSpacer)
|
2010-08-22 19:50:30 +00:00
|
|
|
self.sourceLayout.addLayout(self.formatLayout)
|
2010-12-27 18:23:46 +00:00
|
|
|
self.formatStack = QtGui.QStackedLayout()
|
|
|
|
self.formatStack.setObjectName(u'FormatStack')
|
2010-08-20 19:40:07 +00:00
|
|
|
# OpenLP 2.0
|
2010-09-22 15:01:37 +00:00
|
|
|
self.addSingleFileSelectItem(u'openLP2')
|
2010-08-20 19:40:07 +00:00
|
|
|
# openlp.org 1.x
|
2010-09-23 19:23:56 +00:00
|
|
|
self.addSingleFileSelectItem(u'openLP1', None, True)
|
2010-08-20 19:40:07 +00:00
|
|
|
# OpenLyrics
|
2010-09-22 15:01:37 +00:00
|
|
|
self.addMultiFileSelectItem(u'openLyrics', u'OpenLyrics', True)
|
|
|
|
# set OpenLyrics to disabled by default
|
|
|
|
self.openLyricsDisabledWidget.setVisible(True)
|
|
|
|
self.openLyricsImportWidget.setVisible(False)
|
2010-08-20 19:40:07 +00:00
|
|
|
# Open Song
|
2010-09-22 15:01:37 +00:00
|
|
|
self.addMultiFileSelectItem(u'openSong', u'OpenSong')
|
2010-08-20 19:40:07 +00:00
|
|
|
# Words of Worship
|
2010-09-22 15:01:37 +00:00
|
|
|
self.addMultiFileSelectItem(u'wordsOfWorship')
|
2010-08-22 19:50:30 +00:00
|
|
|
# CCLI File import
|
2010-09-22 15:01:37 +00:00
|
|
|
self.addMultiFileSelectItem(u'ccli')
|
2010-08-20 19:40:07 +00:00
|
|
|
# Songs of Fellowship
|
2010-09-23 19:23:56 +00:00
|
|
|
self.addMultiFileSelectItem(u'songsOfFellowship', None, True)
|
2010-08-22 19:50:30 +00:00
|
|
|
# Generic Document/Presentation import
|
2010-09-23 19:23:56 +00:00
|
|
|
self.addMultiFileSelectItem(u'generic', None, True)
|
2010-09-20 18:22:57 +00:00
|
|
|
# EasyWorship
|
2010-09-22 15:01:37 +00:00
|
|
|
self.addSingleFileSelectItem(u'ew')
|
2010-09-23 19:01:52 +00:00
|
|
|
# Words of Worship
|
2010-09-27 04:51:16 +00:00
|
|
|
self.addMultiFileSelectItem(u'songBeamer')
|
2010-08-20 19:40:07 +00:00
|
|
|
# Commented out for future use.
|
2010-09-22 15:01:37 +00:00
|
|
|
# self.addSingleFileSelectItem(u'csv', u'CSV')
|
2010-12-27 18:23:46 +00:00
|
|
|
self.sourceLayout.addLayout(self.formatStack)
|
2010-08-22 19:50:30 +00:00
|
|
|
songImportWizard.addPage(self.sourcePage)
|
2010-12-27 18:23:46 +00:00
|
|
|
# Import Page
|
2010-08-22 19:50:30 +00:00
|
|
|
self.importPage = QtGui.QWizardPage()
|
2010-12-27 18:23:46 +00:00
|
|
|
self.importPage.setObjectName(u'ImportPage')
|
2010-08-22 19:50:30 +00:00
|
|
|
self.importLayout = QtGui.QVBoxLayout(self.importPage)
|
2010-12-27 18:23:46 +00:00
|
|
|
self.importLayout.setMargin(48)
|
|
|
|
self.importLayout.setObjectName(u'ImportLayout')
|
2010-08-22 19:50:30 +00:00
|
|
|
self.importProgressLabel = QtGui.QLabel(self.importPage)
|
2010-12-27 18:23:46 +00:00
|
|
|
self.importProgressLabel.setObjectName(u'ImportProgressLabel')
|
2010-08-22 19:50:30 +00:00
|
|
|
self.importLayout.addWidget(self.importProgressLabel)
|
|
|
|
self.importProgressBar = QtGui.QProgressBar(self.importPage)
|
2010-12-27 18:23:46 +00:00
|
|
|
self.importProgressBar.setObjectName(u'ImportProgressBar')
|
2010-08-22 19:50:30 +00:00
|
|
|
self.importLayout.addWidget(self.importProgressBar)
|
|
|
|
songImportWizard.addPage(self.importPage)
|
2010-08-20 19:40:07 +00:00
|
|
|
self.retranslateUi(songImportWizard)
|
2010-12-27 18:23:46 +00:00
|
|
|
self.formatStack.setCurrentIndex(0)
|
2010-08-22 19:50:30 +00:00
|
|
|
QtCore.QObject.connect(self.formatComboBox,
|
2010-04-02 12:23:40 +00:00
|
|
|
QtCore.SIGNAL(u'currentIndexChanged(int)'),
|
2010-12-27 18:23:46 +00:00
|
|
|
self.formatStack.setCurrentIndex)
|
2010-08-20 19:40:07 +00:00
|
|
|
QtCore.QMetaObject.connectSlotsByName(songImportWizard)
|
2010-04-02 12:23:40 +00:00
|
|
|
|
2010-08-20 19:40:07 +00:00
|
|
|
def retranslateUi(self, songImportWizard):
|
|
|
|
songImportWizard.setWindowTitle(
|
2010-08-23 19:29:39 +00:00
|
|
|
translate('SongsPlugin.ImportWizardForm', 'Song Import Wizard'))
|
2010-08-22 19:50:30 +00:00
|
|
|
self.titleLabel.setText(
|
2010-06-21 16:43:59 +00:00
|
|
|
u'<span style="font-size:14pt; font-weight:600;">%s</span>' % \
|
|
|
|
translate('SongsPlugin.ImportWizardForm',
|
2010-08-23 19:29:39 +00:00
|
|
|
'Welcome to the Song Import Wizard'))
|
2010-08-22 19:50:30 +00:00
|
|
|
self.informationLabel.setText(
|
2010-06-21 16:43:59 +00:00
|
|
|
translate('SongsPlugin.ImportWizardForm',
|
|
|
|
'This wizard will help you to import songs from a variety of '
|
|
|
|
'formats. Click the next button below to start the process by '
|
|
|
|
'selecting a format to import from.'))
|
2010-08-22 19:50:30 +00:00
|
|
|
self.sourcePage.setTitle(
|
2010-08-23 19:29:39 +00:00
|
|
|
translate('SongsPlugin.ImportWizardForm', 'Select Import Source'))
|
2010-08-22 19:50:30 +00:00
|
|
|
self.sourcePage.setSubTitle(
|
2010-06-21 16:43:59 +00:00
|
|
|
translate('SongsPlugin.ImportWizardForm',
|
|
|
|
'Select the import format, and where to import from.'))
|
2010-08-22 19:50:30 +00:00
|
|
|
self.formatLabel.setText(
|
2010-06-21 16:43:59 +00:00
|
|
|
translate('SongsPlugin.ImportWizardForm', 'Format:'))
|
2010-08-22 19:50:30 +00:00
|
|
|
self.formatComboBox.setItemText(0,
|
2010-08-20 19:40:07 +00:00
|
|
|
translate('SongsPlugin.ImportWizardForm', 'OpenLP 2.0'))
|
2010-08-22 19:50:30 +00:00
|
|
|
self.formatComboBox.setItemText(1,
|
2010-08-20 19:40:07 +00:00
|
|
|
translate('SongsPlugin.ImportWizardForm', 'openlp.org 1.x'))
|
2010-08-22 19:50:30 +00:00
|
|
|
self.formatComboBox.setItemText(2,
|
2010-08-20 19:40:07 +00:00
|
|
|
translate('SongsPlugin.ImportWizardForm', 'OpenLyrics'))
|
2010-08-22 19:50:30 +00:00
|
|
|
self.formatComboBox.setItemText(3,
|
2010-08-20 19:40:07 +00:00
|
|
|
translate('SongsPlugin.ImportWizardForm', 'OpenSong'))
|
2010-08-22 19:50:30 +00:00
|
|
|
self.formatComboBox.setItemText(4,
|
2010-08-20 19:40:07 +00:00
|
|
|
translate('SongsPlugin.ImportWizardForm', 'Words of Worship'))
|
2010-08-22 19:50:30 +00:00
|
|
|
self.formatComboBox.setItemText(5,
|
2010-08-23 19:29:39 +00:00
|
|
|
translate('SongsPlugin.ImportWizardForm', 'CCLI/SongSelect'))
|
2010-08-22 19:50:30 +00:00
|
|
|
self.formatComboBox.setItemText(6,
|
2010-08-20 19:40:07 +00:00
|
|
|
translate('SongsPlugin.ImportWizardForm', 'Songs of Fellowship'))
|
2010-08-22 19:50:30 +00:00
|
|
|
self.formatComboBox.setItemText(7,
|
2010-08-20 19:40:07 +00:00
|
|
|
translate('SongsPlugin.ImportWizardForm',
|
|
|
|
'Generic Document/Presentation'))
|
2010-09-20 18:22:57 +00:00
|
|
|
self.formatComboBox.setItemText(8,
|
|
|
|
translate('SongsPlugin.ImportWizardForm', 'EasyWorship'))
|
2010-09-23 19:01:52 +00:00
|
|
|
self.formatComboBox.setItemText(9,
|
|
|
|
translate('SongsPlugin.ImportWizardForm', 'SongBeamer'))
|
2010-09-20 18:22:57 +00:00
|
|
|
# self.formatComboBox.setItemText(9,
|
2010-08-20 19:40:07 +00:00
|
|
|
# translate('SongsPlugin.ImportWizardForm', 'CSV'))
|
|
|
|
self.openLP2FilenameLabel.setText(
|
|
|
|
translate('SongsPlugin.ImportWizardForm', 'Filename:'))
|
|
|
|
self.openLP2BrowseButton.setText(
|
|
|
|
translate('SongsPlugin.ImportWizardForm', 'Browse...'))
|
|
|
|
self.openLP1FilenameLabel.setText(
|
|
|
|
translate('SongsPlugin.ImportWizardForm', 'Filename:'))
|
|
|
|
self.openLP1BrowseButton.setText(
|
|
|
|
translate('SongsPlugin.ImportWizardForm', 'Browse...'))
|
2010-09-13 21:09:13 +00:00
|
|
|
self.openLP1DisabledLabel.setText(
|
|
|
|
translate('SongsPlugin.ImportWizardForm', 'The openlp.org 1.x '
|
|
|
|
'importer has been disabled due to a missing Python module. If '
|
|
|
|
'you want to use this importer, you will need to install the '
|
|
|
|
'"python-sqlite" module.'))
|
|
|
|
#self.openLyricsAddButton.setText(
|
|
|
|
# translate('SongsPlugin.ImportWizardForm', 'Add Files...'))
|
|
|
|
#self.openLyricsRemoveButton.setText(
|
|
|
|
# translate('SongsPlugin.ImportWizardForm', 'Remove File(s)'))
|
|
|
|
self.openLyricsDisabledLabel.setText(
|
|
|
|
translate('SongsPlugin.ImportWizardForm', 'The OpenLyrics '
|
|
|
|
'importer has not yet been developed, but as you can see, we are '
|
2010-09-17 20:06:41 +00:00
|
|
|
'still intending to do so. Hopefully it will be in the next '
|
2010-09-13 21:09:13 +00:00
|
|
|
'release.'))
|
2010-08-20 19:40:07 +00:00
|
|
|
self.openSongAddButton.setText(
|
2010-06-21 16:43:59 +00:00
|
|
|
translate('SongsPlugin.ImportWizardForm', 'Add Files...'))
|
2010-08-20 19:40:07 +00:00
|
|
|
self.openSongRemoveButton.setText(
|
2010-06-21 16:43:59 +00:00
|
|
|
translate('SongsPlugin.ImportWizardForm', 'Remove File(s)'))
|
2010-08-20 19:40:07 +00:00
|
|
|
self.wordsOfWorshipAddButton.setText(
|
2010-06-21 16:43:59 +00:00
|
|
|
translate('SongsPlugin.ImportWizardForm', 'Add Files...'))
|
2010-08-20 19:40:07 +00:00
|
|
|
self.wordsOfWorshipRemoveButton.setText(
|
2010-06-21 16:43:59 +00:00
|
|
|
translate('SongsPlugin.ImportWizardForm', 'Remove File(s)'))
|
2010-08-22 19:50:30 +00:00
|
|
|
self.ccliAddButton.setText(
|
2010-06-21 16:43:59 +00:00
|
|
|
translate('SongsPlugin.ImportWizardForm', 'Add Files...'))
|
2010-08-22 19:50:30 +00:00
|
|
|
self.ccliRemoveButton.setText(
|
2010-06-21 16:43:59 +00:00
|
|
|
translate('SongsPlugin.ImportWizardForm', 'Remove File(s)'))
|
2010-08-23 17:36:42 +00:00
|
|
|
self.songsOfFellowshipAddButton.setText(
|
2010-06-21 16:43:59 +00:00
|
|
|
translate('SongsPlugin.ImportWizardForm', 'Add Files...'))
|
2010-08-23 17:36:42 +00:00
|
|
|
self.songsOfFellowshipRemoveButton.setText(
|
2010-06-21 16:43:59 +00:00
|
|
|
translate('SongsPlugin.ImportWizardForm', 'Remove File(s)'))
|
2010-09-13 21:09:13 +00:00
|
|
|
self.songsOfFellowshipDisabledLabel.setText(
|
|
|
|
translate('SongsPlugin.ImportWizardForm', 'The Songs of '
|
|
|
|
'Fellowship importer has been disabled because OpenLP cannot '
|
|
|
|
'find OpenOffice.org on your computer.'))
|
2010-08-23 19:29:39 +00:00
|
|
|
self.genericAddButton.setText(
|
|
|
|
translate('SongsPlugin.ImportWizardForm', 'Add Files...'))
|
|
|
|
self.genericRemoveButton.setText(
|
|
|
|
translate('SongsPlugin.ImportWizardForm', 'Remove File(s)'))
|
2010-09-13 21:09:13 +00:00
|
|
|
self.genericDisabledLabel.setText(
|
|
|
|
translate('SongsPlugin.ImportWizardForm', 'The generic document/'
|
|
|
|
'presentation importer has been disabled because OpenLP cannot '
|
|
|
|
'find OpenOffice.org on your computer.'))
|
2010-09-20 18:22:57 +00:00
|
|
|
self.ewFilenameLabel.setText(
|
|
|
|
translate('SongsPlugin.ImportWizardForm', 'Filename:'))
|
|
|
|
self.ewBrowseButton.setText(
|
|
|
|
translate('SongsPlugin.ImportWizardForm', 'Browse...'))
|
2010-09-23 19:01:52 +00:00
|
|
|
self.songBeamerAddButton.setText(
|
|
|
|
translate('SongsPlugin.ImportWizardForm', 'Add Files...'))
|
|
|
|
self.songBeamerRemoveButton.setText(
|
|
|
|
translate('SongsPlugin.ImportWizardForm', 'Remove File(s)'))
|
2010-08-22 19:50:30 +00:00
|
|
|
# self.csvFilenameLabel.setText(
|
2010-08-20 19:40:07 +00:00
|
|
|
# translate('SongsPlugin.ImportWizardForm', 'Filename:'))
|
2010-08-22 19:50:30 +00:00
|
|
|
# self.csvBrowseButton.setText(
|
2010-08-20 19:40:07 +00:00
|
|
|
# translate('SongsPlugin.ImportWizardForm', 'Browse...'))
|
2010-08-22 19:50:30 +00:00
|
|
|
self.importPage.setTitle(
|
2010-08-23 19:29:39 +00:00
|
|
|
translate('SongsPlugin.ImportWizardForm', 'Importing'))
|
2010-08-22 19:50:30 +00:00
|
|
|
self.importPage.setSubTitle(
|
2010-06-21 16:43:59 +00:00
|
|
|
translate('SongsPlugin.ImportWizardForm',
|
|
|
|
'Please wait while your songs are imported.'))
|
2010-08-22 19:50:30 +00:00
|
|
|
self.importProgressLabel.setText(
|
2010-06-21 16:43:59 +00:00
|
|
|
translate('SongsPlugin.ImportWizardForm', 'Ready.'))
|
2010-08-22 19:50:30 +00:00
|
|
|
self.importProgressBar.setFormat(
|
2010-07-27 09:32:52 +00:00
|
|
|
translate('SongsPlugin.ImportWizardForm', '%p%'))
|
2010-12-27 18:23:46 +00:00
|
|
|
# Align all QFormLayouts towards each other.
|
|
|
|
width = max(self.formatLabel.minimumSizeHint().width(),
|
|
|
|
self.openLP2FilenameLabel.minimumSizeHint().width())
|
|
|
|
self.formatSpacer.changeSize(width, 0, 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.ewFormLabelSpacer.changeSize(width, 0, QtGui.QSizePolicy.Fixed,
|
|
|
|
QtGui.QSizePolicy.Fixed)
|
|
|
|
# self.csvFormLabelSpacer.changeSize(width, 0, QtGui.QSizePolicy.Fixed,
|
|
|
|
# QtGui.QSizePolicy.Fixed)
|
2010-09-22 15:01:37 +00:00
|
|
|
|
2010-09-23 19:23:56 +00:00
|
|
|
def addSingleFileSelectItem(self, prefix, obj_prefix=None,
|
|
|
|
can_disable=False):
|
|
|
|
if not obj_prefix:
|
2010-09-22 15:01:37 +00:00
|
|
|
obj_prefix = prefix
|
|
|
|
page = QtGui.QWidget()
|
|
|
|
page.setObjectName(obj_prefix + u'Page')
|
2010-09-23 19:23:56 +00:00
|
|
|
if can_disable:
|
2010-09-22 15:01:37 +00:00
|
|
|
importWidget = self.disablableWidget(page, prefix, obj_prefix)
|
|
|
|
else:
|
|
|
|
importWidget = page
|
|
|
|
importLayout = QtGui.QFormLayout(importWidget)
|
|
|
|
importLayout.setMargin(0)
|
2010-09-23 19:23:56 +00:00
|
|
|
if can_disable:
|
2010-09-22 15:01:37 +00:00
|
|
|
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)
|
2010-12-27 18:23:46 +00:00
|
|
|
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)
|
2010-09-22 15:01:37 +00:00
|
|
|
setattr(self, prefix + u'Page', page)
|
|
|
|
setattr(self, prefix + u'FilenameLabel', filenameLabel)
|
2010-12-27 18:23:46 +00:00
|
|
|
setattr(self, prefix + u'FormLabelSpacer', formSpacer)
|
2010-09-22 15:01:37 +00:00
|
|
|
setattr(self, prefix + u'FileLayout', fileLayout)
|
|
|
|
setattr(self, prefix + u'FilenameEdit', filenameEdit)
|
|
|
|
setattr(self, prefix + u'BrowseButton', browseButton)
|
2010-09-23 19:23:56 +00:00
|
|
|
if can_disable:
|
2010-09-22 15:01:37 +00:00
|
|
|
setattr(self, prefix + u'ImportLayout', importLayout)
|
|
|
|
else:
|
|
|
|
setattr(self, prefix + u'Layout', importLayout)
|
|
|
|
self.formatComboBox.addItem(u'')
|
|
|
|
|
2010-09-23 19:23:56 +00:00
|
|
|
def addMultiFileSelectItem(self, prefix, obj_prefix=None,
|
|
|
|
can_disable=False):
|
|
|
|
if not obj_prefix:
|
2010-09-22 15:01:37 +00:00
|
|
|
obj_prefix = prefix
|
|
|
|
page = QtGui.QWidget()
|
|
|
|
page.setObjectName(obj_prefix + u'Page')
|
2010-09-23 19:23:56 +00:00
|
|
|
if can_disable:
|
2010-09-22 15:01:37 +00:00
|
|
|
importWidget = self.disablableWidget(page, prefix, obj_prefix)
|
|
|
|
else:
|
|
|
|
importWidget = page
|
|
|
|
importLayout = QtGui.QVBoxLayout(importWidget)
|
|
|
|
importLayout.setMargin(0)
|
2010-09-23 19:23:56 +00:00
|
|
|
if can_disable:
|
2010-09-22 15:01:37 +00:00
|
|
|
importLayout.setObjectName(obj_prefix + u'ImportLayout')
|
|
|
|
else:
|
|
|
|
importLayout.setObjectName(obj_prefix + u'Layout')
|
|
|
|
fileListWidget = QtGui.QListWidget(importWidget)
|
|
|
|
fileListWidget.setSelectionMode(
|
|
|
|
QtGui.QAbstractItemView.ExtendedSelection)
|
|
|
|
fileListWidget.setObjectName(obj_prefix + u'FileListWidget')
|
|
|
|
importLayout.addWidget(fileListWidget)
|
|
|
|
buttonLayout = QtGui.QHBoxLayout()
|
|
|
|
buttonLayout.setObjectName(obj_prefix + u'ButtonLayout')
|
|
|
|
addButton = QtGui.QPushButton(importWidget)
|
|
|
|
addButton.setIcon(self.openIcon)
|
|
|
|
addButton.setObjectName(obj_prefix + u'AddButton')
|
|
|
|
buttonLayout.addWidget(addButton)
|
2010-12-27 18:23:46 +00:00
|
|
|
buttonLayout.addStretch()
|
2010-09-22 15:01:37 +00:00
|
|
|
removeButton = QtGui.QPushButton(importWidget)
|
|
|
|
removeButton.setIcon(self.deleteIcon)
|
|
|
|
removeButton.setObjectName(obj_prefix + u'RemoveButton')
|
|
|
|
buttonLayout.addWidget(removeButton)
|
|
|
|
importLayout.addLayout(buttonLayout)
|
2010-12-27 18:23:46 +00:00
|
|
|
self.formatStack.addWidget(page)
|
2010-09-22 15:01:37 +00:00
|
|
|
setattr(self, prefix + u'Page', page)
|
|
|
|
setattr(self, prefix + u'FileListWidget', fileListWidget)
|
|
|
|
setattr(self, prefix + u'ButtonLayout', buttonLayout)
|
|
|
|
setattr(self, prefix + u'AddButton', addButton)
|
|
|
|
setattr(self, prefix + u'RemoveButton', removeButton)
|
2010-09-23 19:23:56 +00:00
|
|
|
if can_disable:
|
2010-09-22 15:01:37 +00:00
|
|
|
setattr(self, prefix + u'ImportLayout', importLayout)
|
|
|
|
else:
|
|
|
|
setattr(self, prefix + u'Layout', importLayout)
|
|
|
|
self.formatComboBox.addItem(u'')
|
2010-12-11 12:07:38 +00:00
|
|
|
|
2010-09-22 15:01:37 +00:00
|
|
|
def disablableWidget(self, page, prefix, obj_prefix):
|
|
|
|
layout = QtGui.QVBoxLayout(page)
|
|
|
|
layout.setMargin(0)
|
|
|
|
layout.setSpacing(0)
|
|
|
|
layout.setObjectName(obj_prefix + u'Layout')
|
|
|
|
disabledWidget = QtGui.QWidget(page)
|
|
|
|
disabledWidget.setVisible(False)
|
|
|
|
disabledWidget.setObjectName(obj_prefix + u'DisabledWidget')
|
|
|
|
disabledLayout = QtGui.QVBoxLayout(disabledWidget)
|
|
|
|
disabledLayout.setMargin(0)
|
|
|
|
disabledLayout.setObjectName(obj_prefix + u'DisabledLayout')
|
|
|
|
disabledLabel = QtGui.QLabel(disabledWidget)
|
|
|
|
disabledLabel.setWordWrap(True)
|
|
|
|
disabledLabel.setObjectName(obj_prefix + u'DisabledLabel')
|
|
|
|
disabledLayout.addWidget(disabledLabel)
|
|
|
|
layout.addWidget(disabledWidget)
|
|
|
|
importWidget = QtGui.QWidget(page)
|
|
|
|
importWidget.setObjectName(obj_prefix + u'ImportWidget')
|
|
|
|
layout.addWidget(importWidget)
|
|
|
|
setattr(self, prefix + u'Layout', layout)
|
|
|
|
setattr(self, prefix + u'DisabledWidget', disabledWidget)
|
|
|
|
setattr(self, prefix + u'DisabledLayout', disabledLayout)
|
|
|
|
setattr(self, prefix + u'DisabledLabel', disabledLabel)
|
|
|
|
setattr(self, prefix + u'ImportWidget', importWidget)
|
2010-12-27 18:23:46 +00:00
|
|
|
return importWidget
|