cabana: sync play button state (#26917)

sync play button
old-commit-hash: 9884957e3e
beeps
Dean Lee 2 years ago committed by GitHub
parent 15261cedde
commit 1a5867b973
  1. 5
      tools/cabana/canmessages.cc
  2. 4
      tools/cabana/canmessages.h
  3. 13
      tools/cabana/videowidget.cc
  4. 1
      tools/cabana/videowidget.h

@ -91,6 +91,11 @@ void CANMessages::seekTo(double ts) {
emit updated();
}
void CANMessages::pause(bool pause) {
replay->pause(pause);
emit (pause ? paused() : resume());
}
void CANMessages::settingChanged() {
replay->setSegmentCacheLimit(settings.cached_segment_limit);
}

@ -38,10 +38,12 @@ public:
inline const std::vector<Event *> *events() const { return replay->events(); }
inline void setSpeed(float speed) { replay->setSpeed(speed); }
inline bool isPaused() const { return replay->isPaused(); }
inline void pause(bool pause) { replay->pause(pause); }
void pause(bool pause);
inline const std::vector<std::tuple<int, int, TimelineType>> getTimeline() { return replay->getTimeline(); }
signals:
void paused();
void resume();
void seekedTo(double sec);
void streamStarted();
void eventsMerged();

@ -63,22 +63,19 @@ VideoWidget::VideoWidget(QWidget *parent) : QFrame(parent) {
}
main_layout->addLayout(control_layout);
QObject::connect(can, &CANMessages::updated, this, &VideoWidget::updateState);
QObject::connect(slider, &QSlider::sliderReleased, [this]() { can->seekTo(slider->value() / 1000.0); });
QObject::connect(slider, &QSlider::valueChanged, [=](int value) { time_label->setText(formatTime(value / 1000)); });
QObject::connect(cam_widget, &CameraWidget::clicked, [this]() { pause(!can->isPaused()); });
QObject::connect(play_btn, &QPushButton::clicked, [=]() { pause(!can->isPaused()); });
QObject::connect(cam_widget, &CameraWidget::clicked, []() { can->pause(!can->isPaused()); });
QObject::connect(play_btn, &QPushButton::clicked, []() { can->pause(!can->isPaused()); });
QObject::connect(can, &CANMessages::updated, this, &VideoWidget::updateState);
QObject::connect(can, &CANMessages::paused, [this]() { play_btn->setText(""); });
QObject::connect(can, &CANMessages::resume, [this]() { play_btn->setText(""); });
QObject::connect(can, &CANMessages::streamStarted, [this]() {
end_time_label->setText(formatTime(can->totalSeconds()));
slider->setRange(0, can->totalSeconds() * 1000);
});
}
void VideoWidget::pause(bool pause) {
play_btn->setText(!pause ? "" : "");
can->pause(pause);
}
void VideoWidget::rangeChanged(double min, double max, bool is_zoomed) {
if (!is_zoomed) {
min = 0;

@ -44,7 +44,6 @@ public:
protected:
void updateState();
void pause(bool pause);
CameraWidget *cam_widget;
QLabel *end_time_label;

Loading…
Cancel
Save