forked from openlp/openlp
Always make sure the powerpoint slide index map is created
This commit is contained in:
parent
89ecdf2a96
commit
3d8d573389
@ -975,8 +975,10 @@ class ServiceManager(QtWidgets.QWidget, RegistryBase, Ui_ServiceManager, LogMixi
|
|||||||
prev_item_last_slide = None
|
prev_item_last_slide = None
|
||||||
service_iterator = QtWidgets.QTreeWidgetItemIterator(self.service_manager_list)
|
service_iterator = QtWidgets.QTreeWidgetItemIterator(self.service_manager_list)
|
||||||
while service_iterator.value():
|
while service_iterator.value():
|
||||||
|
# Found the selected/current service item
|
||||||
if service_iterator.value() == selected:
|
if service_iterator.value() == selected:
|
||||||
if last_slide and prev_item_last_slide:
|
if last_slide and prev_item_last_slide:
|
||||||
|
# Go to the last slide of the previous service item
|
||||||
pos = prev_item.data(0, QtCore.Qt.UserRole)
|
pos = prev_item.data(0, QtCore.Qt.UserRole)
|
||||||
check_expanded = self.service_items[pos - 1]['expanded']
|
check_expanded = self.service_items[pos - 1]['expanded']
|
||||||
self.service_manager_list.setCurrentItem(prev_item_last_slide)
|
self.service_manager_list.setCurrentItem(prev_item_last_slide)
|
||||||
@ -985,13 +987,17 @@ class ServiceManager(QtWidgets.QWidget, RegistryBase, Ui_ServiceManager, LogMixi
|
|||||||
self.make_live()
|
self.make_live()
|
||||||
self.service_manager_list.setCurrentItem(prev_item)
|
self.service_manager_list.setCurrentItem(prev_item)
|
||||||
elif prev_item:
|
elif prev_item:
|
||||||
|
# Go to the first slide of the previous service item
|
||||||
self.service_manager_list.setCurrentItem(prev_item)
|
self.service_manager_list.setCurrentItem(prev_item)
|
||||||
self.make_live()
|
self.make_live()
|
||||||
return
|
return
|
||||||
|
# Found the previous service item root
|
||||||
if service_iterator.value().parent() is None:
|
if service_iterator.value().parent() is None:
|
||||||
prev_item = service_iterator.value()
|
prev_item = service_iterator.value()
|
||||||
|
# Found the last slide of the previous item
|
||||||
if service_iterator.value().parent() is prev_item:
|
if service_iterator.value().parent() is prev_item:
|
||||||
prev_item_last_slide = service_iterator.value()
|
prev_item_last_slide = service_iterator.value()
|
||||||
|
# Go to next item in the tree
|
||||||
service_iterator += 1
|
service_iterator += 1
|
||||||
|
|
||||||
def on_set_item(self, message):
|
def on_set_item(self, message):
|
||||||
|
@ -170,14 +170,17 @@ class PowerpointDocument(PresentationDocument):
|
|||||||
However, for the moment, we want a physical file since it makes life easier elsewhere.
|
However, for the moment, we want a physical file since it makes life easier elsewhere.
|
||||||
"""
|
"""
|
||||||
log.debug('create_thumbnails')
|
log.debug('create_thumbnails')
|
||||||
|
generate_thumbs = True
|
||||||
if self.check_thumbnails():
|
if self.check_thumbnails():
|
||||||
return
|
# No need for thumbnails but we still need the index
|
||||||
|
generate_thumbs = False
|
||||||
key = 1
|
key = 1
|
||||||
for num in range(self.presentation.Slides.Count):
|
for num in range(self.presentation.Slides.Count):
|
||||||
if not self.presentation.Slides(num + 1).SlideShowTransition.Hidden:
|
if not self.presentation.Slides(num + 1).SlideShowTransition.Hidden:
|
||||||
self.index_map[key] = num + 1
|
self.index_map[key] = num + 1
|
||||||
self.presentation.Slides(num + 1).Export(
|
if generate_thumbs:
|
||||||
str(self.get_thumbnail_folder() / 'slide{key:d}.png'.format(key=key)), 'png', 320, 240)
|
self.presentation.Slides(num + 1).Export(
|
||||||
|
str(self.get_thumbnail_folder() / 'slide{key:d}.png'.format(key=key)), 'png', 320, 240)
|
||||||
key += 1
|
key += 1
|
||||||
self.slide_count = key - 1
|
self.slide_count = key - 1
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user