feat: add rollback button
This commit is contained in:
		| @@ -9,7 +9,7 @@ from PyQt6.QtCore import QObject, QThread, QTimer, pyqtSignal, pyqtSlot | ||||
| from PyQt6.QtGui import QKeyEvent | ||||
| from PyQt6.QtWidgets import QMainWindow | ||||
|  | ||||
| from src.command import CarControl, Command, ControlCommand, RecordingCommand | ||||
| from src.command import ApplySnapshotCommand, CarControl, Command, ControlCommand, RecordingCommand, ResetCommand | ||||
| from src.record_file import RecordFile | ||||
| from src.recorder_ui import Ui_Recorder | ||||
| from src.snapshot import Snapshot | ||||
| @@ -203,7 +203,19 @@ class RecorderWindow(Ui_Recorder, QMainWindow): | ||||
|         self.send_command(RecordingCommand(self.recording)) | ||||
|  | ||||
|     def rollback(self): | ||||
|         pass | ||||
|         rollback_by: int = self.forgetSnapshotNumber.value() | ||||
|         rollback_by = max(0, min(rollback_by, len(self.snapshots) - 1)) | ||||
|  | ||||
|         self.snapshots = self.snapshots[:-rollback_by] | ||||
|         self.nbrSnapshotSaved.setText(str(len(self.snapshots))) | ||||
|  | ||||
|         if len(self.snapshots) == 0: | ||||
|             self.send_command(ResetCommand()) | ||||
|         else: | ||||
|             self.send_command(ApplySnapshotCommand(self.snapshots[-1])) | ||||
|  | ||||
|         if self.recording: | ||||
|             self.toggle_record() | ||||
|  | ||||
|     def toggle_autopilot(self): | ||||
|         self.autopiloting = not self.autopiloting | ||||
|   | ||||
		Reference in New Issue
	
	Block a user