From 443ad478c1c308d59d6d6d9c945bc9fd44f7f855 Mon Sep 17 00:00:00 2001 From: Philip Ridout Date: Fri, 2 Nov 2012 18:54:42 +0000 Subject: [PATCH] Added validate function to serviceitem --- openlp/core/lib/serviceitem.py | 17 +++++++++++++++++ openlp/core/ui/servicemanager.py | 9 ++------- 2 files changed, 19 insertions(+), 7 deletions(-) diff --git a/openlp/core/lib/serviceitem.py b/openlp/core/lib/serviceitem.py index dbb69c5b4..7fb4607f9 100644 --- a/openlp/core/lib/serviceitem.py +++ b/openlp/core/lib/serviceitem.py @@ -508,3 +508,20 @@ class ServiceItem(object): self._new_item() self.render() + def remove_invalid_frames(self, invalid_paths=None): + """ + Remove invalid frames, such as ones where the file no longer exists. + """ + if self.uses_file(): + for frame in self.get_frames(): + if self.get_frame_path(frame=frame) in invalid_paths: + self.remove_frame(frame) + + def validate(self): + """ + Validates this service item + """ + if not self._raw_frames: + self.is_valid = False + return self.is_valid + diff --git a/openlp/core/ui/servicemanager.py b/openlp/core/ui/servicemanager.py index 0f51f1416..4f75ad3e5 100644 --- a/openlp/core/ui/servicemanager.py +++ b/openlp/core/ui/servicemanager.py @@ -520,13 +520,8 @@ class ServiceManager(QtGui.QWidget): # Check if item contains a missing file. for item in list(self.serviceItems): self.mainwindow.incrementProgressBar() - if item[u'service_item'].uses_file(): - for frame in item[u'service_item'].get_frames(): - path_from = item[u'service_item'].get_frame_path( - frame=frame) - if path_from in missing_list: - item[u'service_item'].remove_frame(frame) - if not item[u'service_item'].get_frames(): + item[u'service_item'].remove_invalid_frames(missing_list) + if not item[u'service_item'].validate(): self.serviceItems.remove(item) else: service_item = item[u'service_item'].get_service_repr()