diff --git a/openlp/core/lib/mediamanageritem.py b/openlp/core/lib/mediamanageritem.py index 457249b35..3752ffc4d 100644 --- a/openlp/core/lib/mediamanageritem.py +++ b/openlp/core/lib/mediamanageritem.py @@ -96,7 +96,7 @@ class MediaManagerItem(QtGui.QWidget): #TODO: plugin should not be the parent in future self.plugin = parent # plugin visible_title = self.plugin.getString(StringContent.VisibleName) - self.title = visible_title[u'title'] + self.title = unicode(visible_title[u'title']) self.settingsSection = self.plugin.name.lower() if isinstance(icon, QtGui.QIcon): self.icon = icon diff --git a/openlp/core/lib/plugin.py b/openlp/core/lib/plugin.py index 3fda09676..37ac3d74a 100644 --- a/openlp/core/lib/plugin.py +++ b/openlp/core/lib/plugin.py @@ -303,7 +303,7 @@ class Plugin(QtCore.QObject): The new name the plugin should now use. """ pass - + def getString(self, name): """ encapsulate access of plugins translated text strings @@ -314,4 +314,4 @@ class Plugin(QtCore.QObject): """ Called to define all translatable texts of the plugin """ - pass \ No newline at end of file + pass diff --git a/openlp/core/lib/serviceitem.py b/openlp/core/lib/serviceitem.py index b4dc263e9..663328d95 100644 --- a/openlp/core/lib/serviceitem.py +++ b/openlp/core/lib/serviceitem.py @@ -101,9 +101,9 @@ class ServiceItem(object): self.main = None self.footer = None self.bg_image_bytes = None - self._new_item() self.search_string = u'' self.data_string = u'' + self._new_item() def _new_item(self): """ diff --git a/openlp/core/ui/advancedtab.py b/openlp/core/ui/advancedtab.py index 2bc8b2f6d..22c133e9e 100644 --- a/openlp/core/ui/advancedtab.py +++ b/openlp/core/ui/advancedtab.py @@ -85,6 +85,9 @@ class AdvancedTab(SettingsTab): self.expandServiceItemCheckBox.setObjectName(u'expandServiceItemCheckBox') self.uiLayout.addWidget(self.expandServiceItemCheckBox) self.leftLayout.addWidget(self.uiGroupBox) + self.expandServiceItemCheckBox = QtGui.QCheckBox(self.uiGroupBox) + self.expandServiceItemCheckBox.setObjectName(u'expandServiceItemCheckBox') + self.uiLayout.addWidget(self.expandServiceItemCheckBox) # self.sharedDirGroupBox = QtGui.QGroupBox(self.leftWidget) # self.sharedDirGroupBox.setObjectName(u'sharedDirGroupBox') # self.sharedDirGroupBox.setGeometry(QtCore.QRect(0, 65, 500, 85)) diff --git a/openlp/core/ui/servicemanager.py b/openlp/core/ui/servicemanager.py index 10c2a11a6..c2ce99b2d 100644 --- a/openlp/core/ui/servicemanager.py +++ b/openlp/core/ui/servicemanager.py @@ -107,6 +107,7 @@ class ServiceManager(QtGui.QWidget): self.serviceName = u'' self.suffixes = [] self.droppos = 0 + self.expandTabs = False #is a new service and has not been saved self.isNew = True self.serviceNoteForm = ServiceNoteForm(self.parent) @@ -643,6 +644,7 @@ class ServiceManager(QtGui.QWidget): zip = None file = None try: + write_list = [] zip = zipfile.ZipFile(unicode(filename), 'w') for item in self.serviceItems: service.append({u'serviceitem':item[u'service_item'] @@ -652,7 +654,10 @@ class ServiceManager(QtGui.QWidget): path_from = unicode(os.path.join( frame[u'path'], frame[u'title'])) - zip.write(path_from.encode(u'utf-8')) + # On write a file once + if not path_from in write_list: + write_list.append(path_from) + zip.write(path_from.encode(u'utf-8')) file = open(servicefile, u'wb') cPickle.dump(service, file) file.close() @@ -884,6 +889,8 @@ class ServiceManager(QtGui.QWidget): if expand == None: expand = self.expandTabs log.debug(u'addServiceItem') + if expand == None: + expand = self.expandTabs sitem = self.findServiceItem()[0] item.render() if replace: diff --git a/openlp/plugins/songs/forms/songimportform.py b/openlp/plugins/songs/forms/songimportform.py index ef655a12a..3e5b41e46 100644 --- a/openlp/plugins/songs/forms/songimportform.py +++ b/openlp/plugins/songs/forms/songimportform.py @@ -248,18 +248,24 @@ class ImportWizardForm(QtGui.QWizard, Ui_SongImportWizard): # Progress page return True - def getFileName(self, title, editbox): + def getFileName(self, title, editbox, + filters = '%s (*)' % translate('SongsPlugin.ImportWizardForm', + 'All Files')): filename = QtGui.QFileDialog.getOpenFileName(self, title, - SettingsManager.get_last_dir(self.plugin.settingsSection, 1)) + SettingsManager.get_last_dir(self.plugin.settingsSection, 1), + filters) if filename: editbox.setText(filename) SettingsManager.set_last_dir( self.plugin.settingsSection, os.path.split(unicode(filename))[0], 1) - def getFiles(self, title, listbox): + def getFiles(self, title, listbox, + filters = u'%s (*)' % translate('SongsPlugin.ImportWizardForm', + 'All Files')): filenames = QtGui.QFileDialog.getOpenFileNames(self, title, - SettingsManager.get_last_dir(self.plugin.settingsSection, 1)) + SettingsManager.get_last_dir(self.plugin.settingsSection, 1), + filters) if filenames: listbox.addItems(filenames) SettingsManager.set_last_dir( @@ -281,14 +287,24 @@ class ImportWizardForm(QtGui.QWizard, Ui_SongImportWizard): self.getFileName( translate('SongsPlugin.ImportWizardForm', 'Select OpenLP 2.0 Database File'), - self.openLP2FilenameEdit + self.openLP2FilenameEdit, + u'%s (*.sqlite);;%s (*)' + % (translate('SongsPlugin.ImportWizardForm', + 'OpenLP 2.0 Databases'), + translate('SongsPlugin.ImportWizardForm', + 'All Files')) ) def onOpenLP1BrowseButtonClicked(self): self.getFileName( translate('SongsPlugin.ImportWizardForm', 'Select openlp.org 1.x Database File'), - self.openLP1FilenameEdit + self.openLP1FilenameEdit, + u'%s (*.olp);;%s (*)' + % (translate('SongsPlugin.ImportWizardForm', + 'openlp.org v1.x Databases'), + translate('SongsPlugin.ImportWizardForm', + 'All Files')) ) #def onOpenLyricsAddButtonClicked(self): @@ -315,7 +331,12 @@ class ImportWizardForm(QtGui.QWizard, Ui_SongImportWizard): self.getFiles( translate('SongsPlugin.ImportWizardForm', 'Select Words of Worship Files'), - self.wordsOfWorshipFileListWidget + self.wordsOfWorshipFileListWidget, + u'%s (*.wsg *.wow-song);;%s (*)' + % (translate('SongsPlugin.ImportWizardForm', + 'Words Of Worship Song Files'), + translate('SongsPlugin.ImportWizardForm', + 'All Files')) ) def onWordsOfWorshipRemoveButtonClicked(self): @@ -335,7 +356,12 @@ class ImportWizardForm(QtGui.QWizard, Ui_SongImportWizard): self.getFiles( translate('SongsPlugin.ImportWizardForm', 'Select Songs of Fellowship Files'), - self.songsOfFellowshipFileListWidget + self.songsOfFellowshipFileListWidget, + u'%s (*.rtf);;%s (*)' + % (translate('SongsPlugin.ImportWizardForm', + 'Songs Of Felloship Song Files'), + translate('SongsPlugin.ImportWizardForm', + 'All Files')) ) def onSongsOfFellowshipRemoveButtonClicked(self): diff --git a/openlp/plugins/songs/lib/wowimport.py b/openlp/plugins/songs/lib/wowimport.py index 474a9b19d..879d56704 100644 --- a/openlp/plugins/songs/lib/wowimport.py +++ b/openlp/plugins/songs/lib/wowimport.py @@ -116,16 +116,16 @@ class WowImport(SongImport): self.import_wizard.importProgressBar.setMaximum( len(self.import_source)) for file in self.import_source: - # TODO: check that it is a valid words of worship file (could - # check header for WoW File Song Word) self.author = u'' self.copyright = u'' - # Get the song title self.file_name = os.path.split(file)[1] self.import_wizard.incrementProgressBar( "Importing %s" % (self.file_name), 0) + # Get the song title self.title = self.file_name.rpartition(u'.')[0] self.songData = open(file, 'rb') + if self.songData.read(19) != u'WoW File\nSong Words': + continue # Seek to byte which stores number of blocks in the song self.songData.seek(56) self.no_of_blocks = ord(self.songData.read(1))