mahfiaz has proposed merging lp:~mahfiaz/openlp/some_fixes into lp:openlp. Requested reviews: Tim Bentley (trb143) Related bugs: Bug #819271 in OpenLP: "Web NIV download from Bibleserver crashes if book only has 1 chapter eg Philemon" https://bugs.launchpad.net/openlp/+bug/819271
For more details, see: https://code.launchpad.net/~mahfiaz/openlp/some_fixes/+merge/73230 This seems to fix #819271, web NIV download from Bibleserver crash. No crash (#257) and performance jump and reduced memory usage on loading services with huge files. Fixed filename comparison on drag and drop. -- https://code.launchpad.net/~mahfiaz/openlp/some_fixes/+merge/73230 Your team OpenLP Core is subscribed to branch lp:openlp.
=== modified file 'openlp/core/lib/mediamanageritem.py' --- openlp/core/lib/mediamanageritem.py 2011-08-02 18:17:07 +0000 +++ openlp/core/lib/mediamanageritem.py 2011-08-29 13:16:25 +0000 @@ -377,7 +377,7 @@ """ names = [] for count in range(0, self.listView.count()): - names.append(self.listView.item(count).text()) + names.append(unicode(self.listView.item(count).text())) newFiles = [] duplicatesFound = False for file in files: @@ -396,7 +396,7 @@ critical_error_message_box( UiStrings().Duplicate, unicode(translate('OpenLP.MediaManagerItem', - 'Duplicate files found on import and ignored.'))) + 'Duplicate files were found on import and were ignored.'))) def contextMenu(self, point): item = self.listView.itemAt(point) === modified file 'openlp/core/ui/servicemanager.py' --- openlp/core/ui/servicemanager.py 2011-08-25 12:15:31 +0000 +++ openlp/core/ui/servicemanager.py 2011-08-29 13:16:25 +0000 @@ -586,8 +586,8 @@ fileTo = None try: zip = zipfile.ZipFile(fileName) - for file in zip.namelist(): - ucsfile = file_is_unicode(file) + for zipinfo in zip.infolist(): + ucsfile = file_is_unicode(zipinfo.filename) if not ucsfile: critical_error_message_box( message=translate('OpenLP.ServiceManager', @@ -595,14 +595,11 @@ 'The content encoding is not UTF-8.')) continue osfile = unicode(QtCore.QDir.toNativeSeparators(ucsfile)) - filePath = os.path.join(self.servicePath, - os.path.split(osfile)[1]) - fileTo = open(filePath, u'wb') - fileTo.write(zip.read(file)) - fileTo.flush() - fileTo.close() - if filePath.endswith(u'osd'): - p_file = filePath + filename_only = os.path.split(osfile)[1] + zipinfo.filename = filename_only + zip.extract(zipinfo, self.servicePath) + if filename_only.endswith(u'osd'): + p_file = os.path.join(self.servicePath, filename_only) if 'p_file' in locals(): Receiver.send_message(u'cursor_busy') fileTo = open(p_file, u'r') === modified file 'openlp/plugins/bibles/lib/http.py' --- openlp/plugins/bibles/lib/http.py 2011-07-14 18:42:38 +0000 +++ openlp/plugins/bibles/lib/http.py 2011-08-29 13:16:25 +0000 @@ -218,7 +218,7 @@ send_error_message(u'parse') return None content = content.find(u'div').findAll(u'div') - verse_number = re.compile(r'v(\d{1,2})(\d{3})(\d{3}) verse') + verse_number = re.compile(r'v(\d{1,2})(\d{3})(\d{3}) verse.*') verses = {} for verse in content: Receiver.send_message(u'openlp_process_events') === modified file 'openlp/plugins/songs/lib/__init__.py' --- openlp/plugins/songs/lib/__init__.py 2011-07-08 06:40:50 +0000 +++ openlp/plugins/songs/lib/__init__.py 2011-08-29 13:16:25 +0000 @@ -184,10 +184,11 @@ verse_index = VerseType.from_translated_string(verse_name) if verse_index is None: verse_index = VerseType.from_string(verse_name) - if verse_index is None: - verse_index = VerseType.from_translated_tag(verse_name) - if verse_index is None: - verse_index = VerseType.from_tag(verse_name) + elif len(verse_name) == 1: + if verse_index is None: + verse_index = VerseType.from_translated_tag(verse_name) + if verse_index is None: + verse_index = VerseType.from_tag(verse_name) return verse_index def retrieve_windows_encoding(recommendation=None): === modified file 'openlp/plugins/songs/lib/opensongimport.py' --- openlp/plugins/songs/lib/opensongimport.py 2011-07-17 12:59:26 +0000 +++ openlp/plugins/songs/lib/opensongimport.py 2011-08-29 13:16:25 +0000 @@ -190,7 +190,10 @@ # the verse tag verse_tag = content verse_num = u'1' - verse_index = VerseType.from_loose_input(verse_tag) + if len(verse_tag) == 0: + verse_index = 0 + else: + verse_index = VerseType.from_loose_input(verse_tag) verse_tag = VerseType.Tags[verse_index] inst = 1 if [verse_tag, verse_num, inst] in our_verse_order \ === modified file 'openlp/plugins/songs/lib/songshowplusimport.py' --- openlp/plugins/songs/lib/songshowplusimport.py 2011-08-16 21:19:57 +0000 +++ openlp/plugins/songs/lib/songshowplusimport.py 2011-08-29 13:16:25 +0000 @@ -103,6 +103,8 @@ return self.import_wizard.progressBar.setMaximum(len(self.import_source)) for file in self.import_source: + if self.stop_import_flag: + return self.sspVerseOrderList = [] otherCount = 0 otherList = {} === modified file 'openlp/plugins/songs/lib/wowimport.py' --- openlp/plugins/songs/lib/wowimport.py 2011-07-07 18:03:12 +0000 +++ openlp/plugins/songs/lib/wowimport.py 2011-08-29 13:16:25 +0000 @@ -105,6 +105,8 @@ if isinstance(self.import_source, list): self.import_wizard.progressBar.setMaximum(len(self.import_source)) for file in self.import_source: + if self.stop_import_flag: + return file_name = os.path.split(file)[1] # Get the song title self.title = file_name.rpartition(u'.')[0]
_______________________________________________ Mailing list: https://launchpad.net/~openlp-core Post to : openlp-core@lists.launchpad.net Unsubscribe : https://launchpad.net/~openlp-core More help : https://help.launchpad.net/ListHelp