mirror of https://gitlab.com/openlp/openlp.git
Merge branch 'presentation-blank' into 'master'
Fix presentations not being able to return from Display Screen See merge request openlp/openlp!632
This commit is contained in:
commit
8a31048381
|
@ -61,10 +61,10 @@ class Controller(object):
|
|||
if not self.doc.load_presentation():
|
||||
# Display error message to user
|
||||
# Inform slidecontroller that the action failed?
|
||||
self.doc.slidenumber = 0
|
||||
self.doc.ui_slidenumber = 0
|
||||
return
|
||||
PresentationList().add(self.doc, unique_id)
|
||||
self.doc.slidenumber = slide_no
|
||||
self.doc.ui_slidenumber = slide_no
|
||||
self.hide_mode = hide_mode
|
||||
log.debug('add_handler, slide_number: {slide:d}'.format(slide=slide_no))
|
||||
if self.is_live:
|
||||
|
@ -78,7 +78,7 @@ class Controller(object):
|
|||
else:
|
||||
self.doc.start_presentation()
|
||||
Registry().execute('live_display_hide', HideMode.Screen)
|
||||
self.doc.slidenumber = 1
|
||||
self.doc.ui_slidenumber = 1
|
||||
if slide_no > 1:
|
||||
self.slide(slide_no)
|
||||
|
||||
|
@ -97,10 +97,10 @@ class Controller(object):
|
|||
return False
|
||||
if self.is_live:
|
||||
self.doc.start_presentation()
|
||||
if self.doc.slidenumber > 1:
|
||||
if self.doc.slidenumber > self.doc.get_slide_count():
|
||||
self.doc.slidenumber = self.doc.get_slide_count()
|
||||
self.doc.goto_slide(self.doc.slidenumber)
|
||||
if self.doc.ui_slidenumber > 1:
|
||||
if self.doc.ui_slidenumber > self.doc.get_slide_count():
|
||||
self.doc.ui_slidenumber = self.doc.get_slide_count()
|
||||
self.doc.goto_slide(self.doc.ui_slidenumber)
|
||||
if self.doc.is_active():
|
||||
return True
|
||||
else:
|
||||
|
@ -116,8 +116,8 @@ class Controller(object):
|
|||
return
|
||||
if not self.is_live:
|
||||
return
|
||||
self.doc.ui_slidenumber = int(slide) + 1
|
||||
if self.hide_mode:
|
||||
self.doc.slidenumber = int(slide) + 1
|
||||
self.poll()
|
||||
return
|
||||
if not self.activate():
|
||||
|
@ -134,8 +134,8 @@ class Controller(object):
|
|||
return
|
||||
if not self.is_live:
|
||||
return
|
||||
self.doc.ui_slidenumber = 1
|
||||
if self.hide_mode:
|
||||
self.doc.slidenumber = 1
|
||||
self.poll()
|
||||
return
|
||||
if not self.activate():
|
||||
|
@ -152,8 +152,8 @@ class Controller(object):
|
|||
return
|
||||
if not self.is_live:
|
||||
return
|
||||
self.doc.ui_slidenumber = self.doc.get_slide_count()
|
||||
if self.hide_mode:
|
||||
self.doc.slidenumber = self.doc.get_slide_count()
|
||||
self.poll()
|
||||
return
|
||||
if not self.activate():
|
||||
|
@ -170,12 +170,12 @@ class Controller(object):
|
|||
return False
|
||||
if not self.is_live:
|
||||
return False
|
||||
if not self.doc.is_active():
|
||||
return False
|
||||
if self.doc.ui_slidenumber < self.doc.get_slide_count():
|
||||
self.doc.ui_slidenumber += 1
|
||||
if self.hide_mode:
|
||||
if not self.doc.is_active():
|
||||
return False
|
||||
if self.doc.slidenumber < self.doc.get_slide_count():
|
||||
self.doc.slidenumber += 1
|
||||
self.poll()
|
||||
self.poll()
|
||||
return False
|
||||
if not self.activate():
|
||||
return False
|
||||
|
@ -192,12 +192,12 @@ class Controller(object):
|
|||
return False
|
||||
if not self.is_live:
|
||||
return False
|
||||
if not self.doc.is_active():
|
||||
return False
|
||||
if self.doc.ui_slidenumber > 1:
|
||||
self.doc.ui_slidenumber -= 1
|
||||
if self.hide_mode:
|
||||
if not self.doc.is_active():
|
||||
return False
|
||||
if self.doc.slidenumber > 1:
|
||||
self.doc.slidenumber -= 1
|
||||
self.poll()
|
||||
self.poll()
|
||||
return False
|
||||
if not self.activate():
|
||||
return False
|
||||
|
@ -235,6 +235,8 @@ class Controller(object):
|
|||
if not self.activate():
|
||||
return
|
||||
self.doc.blank_screen()
|
||||
elif hide_mode == HideMode.Screen:
|
||||
self.stop()
|
||||
|
||||
def stop(self):
|
||||
"""
|
||||
|
@ -247,7 +249,7 @@ class Controller(object):
|
|||
return
|
||||
# Save the current slide number to be able to return to this slide if the presentation is activated again.
|
||||
if self.doc.is_active():
|
||||
self.doc.slidenumber = self.doc.get_slide_number()
|
||||
self.doc.ui_slidenumber = self.doc.get_slide_number()
|
||||
self.hide_mode = HideMode.Screen
|
||||
if not self.doc:
|
||||
return
|
||||
|
@ -271,6 +273,8 @@ class Controller(object):
|
|||
return
|
||||
if not self.activate():
|
||||
return
|
||||
# if a different slide has been selected while blank, this will transfer to the correct slide
|
||||
self.doc.goto_slide(self.doc.ui_slidenumber)
|
||||
self.doc.unblank_screen()
|
||||
Registry().execute('live_display_hide', HideMode.Screen)
|
||||
|
||||
|
|
|
@ -112,6 +112,7 @@ class PresentationDocument(object):
|
|||
:rtype: None
|
||||
"""
|
||||
self.slide_number = 0
|
||||
self.ui_slidenumber = 0
|
||||
self.file_path = document_path
|
||||
create_paths(self.get_thumbnail_folder())
|
||||
|
||||
|
@ -317,8 +318,16 @@ class PresentationDocument(object):
|
|||
if not hide_mode:
|
||||
current = self.get_slide_number()
|
||||
if current == self.slide_number:
|
||||
# if the latest reported slide number is the same as the current, return here and skip sending an update
|
||||
return
|
||||
self.slide_number = current
|
||||
else:
|
||||
# when in blank mode the slide selected in the live slidecontroller overrules the slide
|
||||
# currently selected in the blanked presentation.
|
||||
if self.slide_number == self.ui_slidenumber:
|
||||
# if the latest reported slide number is the same as the current, return here and skip sending an update
|
||||
return
|
||||
self.slide_number = self.ui_slidenumber
|
||||
if is_live:
|
||||
prefix = 'live'
|
||||
else:
|
||||
|
|
|
@ -128,5 +128,5 @@ def test_add_handler_failure():
|
|||
# WHEN: calling add_handler that fails
|
||||
controller.add_handler(mocked_doc_controller, MagicMock(), True, 0, "uuid")
|
||||
|
||||
# THEN: slidenumber should be 0
|
||||
assert controller.doc.slidenumber == 0, 'doc.slidenumber should be 0'
|
||||
# THEN: ui_slidenumber should be 0
|
||||
assert controller.doc.ui_slidenumber == 0, 'doc.ui_slidenumber should be 0'
|
||||
|
|
Loading…
Reference in New Issue