40 void consoleToggleRequested();
44 void mousePressEvent(QMouseEvent* event)
override;
45 void mouseMoveEvent(QMouseEvent* event)
override;
46 void mouseDoubleClickEvent(QMouseEvent* event)
override;
47 void paintEvent(QPaintEvent* event)
override;
50 void onRecordToggle();
51 void onPauseResumeToggle();
56 void onRecordingStarted();
57 void onRecordingStopped();
58 void onRecordingPaused();
59 void onRecordingResumed();
60 void onStepRecorded(
int index,
const std::string& description);
62 void onReplayStepStarted(
int index,
const std::string& description);
63 void onReplayStepCompleted(
int index,
const std::string& result);
64 void onReplayStepFailed(
int index,
const std::string& error);
65 void onReplayFinished();
68 enum class EState { Idle, Recording, Paused, Stopped, Replaying };
71 void applyState(EState state);
72 void updateElapsedDisplay();
73 void scrollToBottom();
74 void rebuildStepListFromRecorder();
82 QLabel* recIndicator_{};
83 QLabel* elapsedLabel_{};
84 QLabel* stepStatLabel_{};
87 QListWidget* stepList_{};
90 QPushButton* recordBtn_{};
91 QPushButton* pauseBtn_{};
92 QPushButton* replayBtn_{};
93 QPushButton* polishBtn_{};
94 QPushButton* copyBtn_{};
97 QTimer* elapsedTimer_{};
98 QElapsedTimer recordingStart_{};
100 EState state_ = EState::Idle;
103 QPoint dragStartPos_{};
104 bool dragging_ =
false;