forked from openlp/openlp
Fixes #730459 and 4 unreported bugs.
This commit is contained in:
parent
ffca971bb0
commit
562a88a993
@ -349,11 +349,11 @@ class MediaManagerItem(QtGui.QWidget):
|
||||
Validates whether an image still exists and, if it does, is the
|
||||
thumbnail representation of the image up to date.
|
||||
"""
|
||||
if not os.path.exists(image):
|
||||
if not os.path.exists(unicode(image)):
|
||||
return False
|
||||
if os.path.exists(thumb):
|
||||
imageDate = os.stat(image).st_mtime
|
||||
thumbDate = os.stat(thumb).st_mtime
|
||||
imageDate = os.stat(unicode(image)).st_mtime
|
||||
thumbDate = os.stat(unicode(thumb)).st_mtime
|
||||
# If image has been updated rebuild icon
|
||||
if imageDate > thumbDate:
|
||||
self.iconFromFile(image, thumb)
|
||||
|
@ -416,36 +416,37 @@ class ServiceManager(QtGui.QWidget):
|
||||
if not self.fileName():
|
||||
return self.saveFileAs()
|
||||
else:
|
||||
fileName = self.fileName()
|
||||
log.debug(u'ServiceManager.saveFile - %s' % fileName)
|
||||
path_file_name = unicode(self.fileName())
|
||||
(path, file_name) = os.path.split(path_file_name)
|
||||
basename = file_name[0:file_name.rfind(u'.')-1]
|
||||
file_name = basename + '.osz'
|
||||
service_file_name = basename + '.osd'
|
||||
log.debug(u'ServiceManager.saveFile - %s' % path_file_name)
|
||||
SettingsManager.set_last_dir(self.mainwindow.serviceSettingsSection,
|
||||
split_filename(fileName)[0])
|
||||
path)
|
||||
service = []
|
||||
serviceFileName = fileName.replace(u'.osz', u'.osd')
|
||||
zip = None
|
||||
file = None
|
||||
try:
|
||||
write_list = []
|
||||
zip = zipfile.ZipFile(unicode(fileName), 'w')
|
||||
zip = zipfile.ZipFile(path_file_name, 'w')
|
||||
for item in self.serviceItems:
|
||||
service.append({u'serviceitem': \
|
||||
service.append({u'serviceitem':
|
||||
item[u'service_item'].get_service_repr()})
|
||||
if item[u'service_item'].uses_file():
|
||||
for frame in item[u'service_item'].get_frames():
|
||||
if item[u'service_item'].is_image():
|
||||
path_from = frame[u'path']
|
||||
else:
|
||||
path_from = unicode(os.path.join(
|
||||
frame[u'path'],
|
||||
frame[u'title']))
|
||||
path_from = os.path.join(frame[u'path'],
|
||||
frame[u'title'])
|
||||
# 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(serviceFileName, u'wb')
|
||||
cPickle.dump(service, file)
|
||||
file.close()
|
||||
zip.write(serviceFileName.encode(u'utf-8'))
|
||||
zip.write(path_from,
|
||||
path_from.encode(u'utf-8'))
|
||||
zip.writestr(service_file_name.encode(u'utf-8'),
|
||||
cPickle.dumps(service))
|
||||
except IOError:
|
||||
log.exception(u'Failed to save service to disk')
|
||||
finally:
|
||||
@ -453,8 +454,7 @@ class ServiceManager(QtGui.QWidget):
|
||||
file.close()
|
||||
if zip:
|
||||
zip.close()
|
||||
delete_file(serviceFileName)
|
||||
self.mainwindow.addRecentFile(fileName)
|
||||
self.mainwindow.addRecentFile(path_file_name)
|
||||
self.setModified(False)
|
||||
return True
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user