Improved PowerSong import wizard validation

This commit is contained in:
Samuel Findlay 2012-05-07 23:26:52 +10:00
parent 3483231a32
commit 31debbe238
1 changed files with 13 additions and 1 deletions

View File

@ -28,6 +28,7 @@
The song import functions for OpenLP.
"""
import codecs
import fnmatch
import logging
import os
@ -399,7 +400,8 @@ class SongImportForm(OpenLPWizard):
return False
elif source_format == SongFormat.PowerSong:
if self.powerSongFilenameEdit.text().isEmpty() or \
not os.path.isdir(self.powerSongFilenameEdit.text()):
not self.isPowerSongFolder(
self.powerSongFilenameEdit.text()):
critical_error_message_box(UiStrings().NFdSs,
WizardStrings.YouSpecifyFolder % WizardStrings.PS)
self.powerSongBrowseButton.setFocus()
@ -482,6 +484,16 @@ class SongImportForm(OpenLPWizard):
elif self.currentPage() == self.progressPage:
return True
def isPowerSongFolder(self, dir):
"""
Checks if a folder is a PowerSong 1.0 folder
"""
if os.path.isdir(dir):
for file in os.listdir(dir):
if fnmatch.fnmatch(file, u'*.song'):
return True
return False
def getFiles(self, title, listbox, filters=u''):
"""
Opens a QFileDialog and writes the filenames to the given listbox.