Added backward and forward nav buttons
This commit is contained in:
+54
-5
@@ -577,6 +577,7 @@ class GuiDocViewHistory():
|
||||
self._prevPos = self._currPos
|
||||
self._currPos = len(self._navHistory) - 1
|
||||
self._updateScrollBar()
|
||||
self._updateNavButtons()
|
||||
|
||||
self._dumpHistory()
|
||||
|
||||
@@ -596,6 +597,7 @@ class GuiDocViewHistory():
|
||||
self.docViewer.loadText(self._navHistory[newPos], updateHistory=False)
|
||||
self.docViewer.setScrollPosition(self._posHistory[newPos])
|
||||
self._currPos = newPos
|
||||
self._updateNavButtons()
|
||||
|
||||
self._dumpHistory()
|
||||
|
||||
@@ -613,6 +615,7 @@ class GuiDocViewHistory():
|
||||
self.docViewer.loadText(self._navHistory[newPos], updateHistory=False)
|
||||
self.docViewer.setScrollPosition(self._posHistory[newPos])
|
||||
self._currPos = newPos
|
||||
self._updateNavButtons()
|
||||
|
||||
self._dumpHistory()
|
||||
|
||||
@@ -629,10 +632,16 @@ class GuiDocViewHistory():
|
||||
self._posHistory[self._prevPos] = self.docViewer.getScrollPosition()
|
||||
return
|
||||
|
||||
def _updateNavButtons(self):
|
||||
"""Update the navigation buttons in the document header.
|
||||
"""
|
||||
self.docViewer.docHeader.updateNavButtons(0, len(self._navHistory) - 1, self._currPos)
|
||||
return
|
||||
|
||||
def _truncateHistory(self, atPos):
|
||||
"""Truncate the navigation history to the given position.
|
||||
"""
|
||||
nSkip = 1 if atPos > 49 else 0
|
||||
nSkip = 1 if atPos > 19 else 0
|
||||
|
||||
self._navHistory = self._navHistory[nSkip:atPos + 1]
|
||||
self._posHistory = self._posHistory[nSkip:atPos + 1]
|
||||
@@ -643,8 +652,15 @@ class GuiDocViewHistory():
|
||||
return
|
||||
|
||||
def _dumpHistory(self):
|
||||
for i, (h, p) in enumerate(zip(self._navHistory, self._posHistory)):
|
||||
print("%s %3d %13s %6d" % (">" if i == self._currPos else " ", i, h, p))
|
||||
"""Debug function to dump history. Since it is a for loop, it is
|
||||
skipped entirely if log level isn't VERBOSE.
|
||||
"""
|
||||
if logger.getEffectiveLevel() < logging.DEBUG:
|
||||
for i, (h, p) in enumerate(zip(self._navHistory, self._posHistory)):
|
||||
logger.verbose(
|
||||
"History: %s %2d %13s %5d" % (">" if i == self._currPos else " ", i, h, p)
|
||||
)
|
||||
return
|
||||
|
||||
# END Class GuiDocViewHistory
|
||||
|
||||
@@ -674,10 +690,8 @@ class GuiDocViewHeader(QWidget):
|
||||
|
||||
fPx = int(0.9*self.theTheme.fontPixelSize)
|
||||
hSp = self.mainConf.pxInt(6)
|
||||
self.buttonSize = fPx + hSp
|
||||
|
||||
# Main Widget Settings
|
||||
self.setContentsMargins(2*self.buttonSize, 0, 0, 0)
|
||||
self.setAutoFillBackground(True)
|
||||
self.setPalette(self.thePalette)
|
||||
|
||||
@@ -702,6 +716,28 @@ class GuiDocViewHeader(QWidget):
|
||||
).format(*self.theTheme.colText)
|
||||
|
||||
# Buttons
|
||||
self.backButton = QToolButton(self)
|
||||
self.backButton.setIcon(self.theTheme.getIcon("backward"))
|
||||
self.backButton.setContentsMargins(0, 0, 0, 0)
|
||||
self.backButton.setIconSize(QSize(fPx, fPx))
|
||||
self.backButton.setFixedSize(fPx, fPx)
|
||||
self.backButton.setStyleSheet(buttonStyle)
|
||||
self.backButton.setToolButtonStyle(Qt.ToolButtonIconOnly)
|
||||
self.backButton.setVisible(False)
|
||||
self.backButton.setToolTip("Go backward")
|
||||
self.backButton.clicked.connect(self.docViewer.navBackward)
|
||||
|
||||
self.forwardButton = QToolButton(self)
|
||||
self.forwardButton.setIcon(self.theTheme.getIcon("forward"))
|
||||
self.forwardButton.setContentsMargins(0, 0, 0, 0)
|
||||
self.forwardButton.setIconSize(QSize(fPx, fPx))
|
||||
self.forwardButton.setFixedSize(fPx, fPx)
|
||||
self.forwardButton.setStyleSheet(buttonStyle)
|
||||
self.forwardButton.setToolButtonStyle(Qt.ToolButtonIconOnly)
|
||||
self.forwardButton.setVisible(False)
|
||||
self.forwardButton.setToolTip("Go forward")
|
||||
self.forwardButton.clicked.connect(self.docViewer.navForward)
|
||||
|
||||
self.refreshButton = QToolButton(self)
|
||||
self.refreshButton.setIcon(self.theTheme.getIcon("refresh"))
|
||||
self.refreshButton.setContentsMargins(0, 0, 0, 0)
|
||||
@@ -727,6 +763,8 @@ class GuiDocViewHeader(QWidget):
|
||||
# Assemble Layout
|
||||
self.outerBox = QHBoxLayout()
|
||||
self.outerBox.setSpacing(hSp)
|
||||
self.outerBox.addWidget(self.backButton, 0)
|
||||
self.outerBox.addWidget(self.forwardButton, 0)
|
||||
self.outerBox.addWidget(self.theTitle, 1)
|
||||
self.outerBox.addWidget(self.refreshButton, 0)
|
||||
self.outerBox.addWidget(self.closeButton, 0)
|
||||
@@ -747,6 +785,8 @@ class GuiDocViewHeader(QWidget):
|
||||
self.theHandle = tHandle
|
||||
if tHandle is None:
|
||||
self.theTitle.setText("")
|
||||
self.backButton.setVisible(False)
|
||||
self.forwardButton.setVisible(False)
|
||||
self.closeButton.setVisible(False)
|
||||
self.refreshButton.setVisible(False)
|
||||
return True
|
||||
@@ -766,11 +806,20 @@ class GuiDocViewHeader(QWidget):
|
||||
return False
|
||||
self.theTitle.setText(nwItem.itemName)
|
||||
|
||||
self.backButton.setVisible(True)
|
||||
self.forwardButton.setVisible(True)
|
||||
self.closeButton.setVisible(True)
|
||||
self.refreshButton.setVisible(True)
|
||||
|
||||
return True
|
||||
|
||||
def updateNavButtons(self, firstIdx, lastIdx, currIdx):
|
||||
"""Enable and disable nav buttons based on index in history.
|
||||
"""
|
||||
self.backButton.setEnabled(currIdx > firstIdx)
|
||||
self.forwardButton.setEnabled(currIdx < lastIdx)
|
||||
return
|
||||
|
||||
##
|
||||
# Slots
|
||||
##
|
||||
|
||||
@@ -554,6 +554,8 @@ class GuiIcons:
|
||||
"minimise" : (None, None),
|
||||
"refresh" : (None, None),
|
||||
"reference" : (None, None),
|
||||
"backward" : (None, None),
|
||||
"forward" : (None, None),
|
||||
|
||||
## Switches
|
||||
"sticky-on" : (None, None),
|
||||
|
||||
Reference in New Issue
Block a user