From 7fc84ad2b2bfc541e276c49b3e2cdd0d07f43ef0 Mon Sep 17 00:00:00 2001 From: Tim Bentley Date: Sat, 19 Mar 2011 11:50:48 +0000 Subject: [PATCH] Enter and save end times --- openlp/core/lib/serviceitem.py | 6 +++++- openlp/core/ui/servicemanager.py | 6 +----- openlp/core/ui/starttimeform.py | 27 +++++++++++++++++++++++++-- 3 files changed, 31 insertions(+), 8 deletions(-) diff --git a/openlp/core/lib/serviceitem.py b/openlp/core/lib/serviceitem.py index b360ab13d..ec0dceb65 100644 --- a/openlp/core/lib/serviceitem.py +++ b/openlp/core/lib/serviceitem.py @@ -109,6 +109,7 @@ class ServiceItem(object): self.edit_id = None self.xml_version = None self.start_time = 0 + self.end_time = 0 self.media_length = 0 self._new_item() @@ -260,6 +261,7 @@ class ServiceItem(object): u'data': self.data_string, u'xml_version': self.xml_version, u'start_time': self.start_time, + u'end_time': self.end_time, u'media_length': self.media_length } service_data = [] @@ -306,6 +308,8 @@ class ServiceItem(object): self.xml_version = header[u'xml_version'] if u'start_time' in header: self.start_time = header[u'start_time'] + if u'end_time' in header: + self.end_time = header[u'end_time'] if u'media_length' in header: self.media_length = header[u'media_length'] if self.service_item_type == ServiceItemType.Text: @@ -447,4 +451,4 @@ class ServiceItem(object): elif not start and end: return end else: - return u'%s : %s' % (start, end) \ No newline at end of file + return u'%s : %s' % (start, end) diff --git a/openlp/core/ui/servicemanager.py b/openlp/core/ui/servicemanager.py index 56aa1bea1..d6d675e1e 100644 --- a/openlp/core/ui/servicemanager.py +++ b/openlp/core/ui/servicemanager.py @@ -652,10 +652,6 @@ class ServiceManager(QtGui.QWidget): item = self.findServiceItem()[0] self.startTimeForm.item = self.serviceItems[item] if self.startTimeForm.exec_(): - self.serviceItems[item][u'service_item'].start_time = \ - self.startTimeForm.hourSpinBox.value() * 3600 + \ - self.startTimeForm.minuteSpinBox.value() * 60 + \ - self.startTimeForm.secondSpinBox.value() self.repaintServiceList(item, -1) def onServiceItemEditForm(self): @@ -1256,4 +1252,4 @@ class ServiceManager(QtGui.QWidget): Print a Service Order Sheet. """ settingDialog = PrintServiceForm(self.mainwindow, self) - settingDialog.exec_() \ No newline at end of file + settingDialog.exec_() diff --git a/openlp/core/ui/starttimeform.py b/openlp/core/ui/starttimeform.py index 42298772d..eb70536cb 100644 --- a/openlp/core/ui/starttimeform.py +++ b/openlp/core/ui/starttimeform.py @@ -27,7 +27,9 @@ from PyQt4 import QtGui from starttimedialog import Ui_StartTimeDialog -from openlp.core.lib.ui import UiStrings + +from openlp.core.lib import translate +from openlp.core.lib.ui import UiStrings, critical_error_message_box class StartTimeForm(QtGui.QDialog, Ui_StartTimeDialog): """ @@ -59,6 +61,28 @@ class StartTimeForm(QtGui.QDialog, Ui_StartTimeDialog): return QtGui.QDialog.exec_(self) def accept(self): + start = self.hourSpinBox.value() * 3600 + \ + self.minuteSpinBox.value() * 60 + \ + self.secondSpinBox.value() + end = self.hourFinishSpinBox.value() * 3600 + \ + self.minuteFinishSpinBox.value() * 60 + \ + self.secondFinishSpinBox.value() + if end > self.item[u'service_item'].media_length: + critical_error_message_box( + title=translate('OpenLP.StartTimeForm', + 'Time Validation Error'), + message=translate('OpenLP.StartTimeForm', + 'End time is after the end of the Media Item')) + return + elif start > end: + critical_error_message_box( + title=translate('OpenLP.StartTimeForm', + 'Time Validation Error'), + message=translate('OpenLP.StartTimeForm', + 'Start time is after the End of the Media Item')) + return + self.item[u'service_item'].start_time = start + self.item[u'service_item'].end_time = end return QtGui.QDialog.accept(self) def _time_split(self, seconds): @@ -67,4 +91,3 @@ class StartTimeForm(QtGui.QDialog, Ui_StartTimeDialog): minutes = seconds / 60 seconds -= 60 * minutes return hours, minutes, seconds -