Improve navigate option to scroll_page()

This commit is contained in:
Martin Tournoij 2015-05-29 21:18:44 +02:00
parent c7dcaff025
commit 8c80f99a32

View File

@ -643,21 +643,27 @@ class CommandDispatcher:
@cmdutils.register(instance='command-dispatcher', hide=True, @cmdutils.register(instance='command-dispatcher', hide=True,
scope='window', count='count') scope='window', count='count')
def scroll_page(self, x: {'type': float}, y: {'type': float}, def scroll_page(self, x: {'type': float}, y: {'type': float}, *,
navigate=None, count=1): top_navigate: {'type': ('prev', 'decrement')}=None,
bottom_navigate: {'type': ('next', 'increment')}=None,
count=1):
"""Scroll the frame page-wise. """Scroll the frame page-wise.
Args: Args:
x: How many pages to scroll to the right. x: How many pages to scroll to the right.
y: How many pages to scroll down. y: How many pages to scroll down.
navigate: :navigate to the next page on bottom bottom_navigate: :navigate to the next page on bottom
top_navigate: :navigate to the previous page on top
count: multiplier count: multiplier
""" """
frame = self._current_widget().page().currentFrame() frame = self._current_widget().page().currentFrame()
if (navigate is not None and if (bottom_navigate is not None and
frame.scrollPosition().y() >= frame.scrollPosition().y() >=
frame.scrollBarMaximum(Qt.Vertical)): frame.scrollBarMaximum(Qt.Vertical)):
self.navigate(navigate) self.navigate(bottom_navigate)
return
elif top_navigate is not None and frame.scrollPosition().y() == 0:
self.navigate(top_navigate)
return return
mult_x = count * x mult_x = count * x