diff --git a/fixtracks/widgets/tracks.py b/fixtracks/widgets/tracks.py index 6e33acb..d82456f 100644 --- a/fixtracks/widgets/tracks.py +++ b/fixtracks/widgets/tracks.py @@ -543,36 +543,21 @@ class FixTracks(QWidget): self._controls_widget.setSelectedTracks(tracks) self.update() - def on_forward(self, stepsize): - logging.debug("Tracks: receive forward command with step-size: %.2f", stepsize) + def moveWindow(self, stepsize): max_frames = self._data.max("frame") - if stepsize >= 1.0: - self._clear_detections = True - newx = self._timeline.rangeStart + self._windowspinner.value() / max_frames - self._timeline.setWindowPos(newx) - else: - self._clear_detections = True - step = stepsize * (self._windowspinner.value() / max_frames) - stop_pos = self._timeline.rangeStop + step - self._timeline.setWindowWidth(stop_pos - self._timeline.rangeStart) - self._windowspinner.setValue(int(self._windowspinner.value() + int(step * max_frames))) + self._clear_detections = True + step = stepsize * (self._windowspinner.value() / max_frames) + newx = self._timeline.rangeStart + step + self._timeline.setWindowPos(newx) self.update() + def on_forward(self, stepsize): + logging.debug("Tracks: receive forward command with step-size: %.2f", stepsize) + self.moveWindow(stepsize) + def on_backward(self, stepsize): logging.debug("Tracks: receive backward command with step-size: %.2f", stepsize) - max_frames = self._data.max("frame") - if stepsize >= 1.0: - self._clear_detections = True - newx = self._timeline.rangeStart - self._windowspinner.value() / max_frames - self._timeline.setWindowPos(newx) - else: - self._clear_detections = True - step = stepsize * (self._windowspinner.value() / max_frames) - start_pos = self._timeline.rangeStart - step - newwindowwidth = (self._timeline.rangeStop - self._timeline.rangeStart) + step - self._timeline.setWindow(start_pos, newwindowwidth) - self._windowspinner.setValue(int(newwindowwidth *max_frames)) - self.update() + self.moveWindow(-stepsize) def main():