timelinewidget: show cache status in timeline too

This commit is contained in:
itsmattkc
2020-02-22 14:45:50 +11:00
parent 9cb04b0020
commit 0e7b051228
7 changed files with 20 additions and 2 deletions
+5
View File
@@ -91,6 +91,11 @@ ViewerOutput *TimeBasedPanel::GetConnectedViewer() const
return widget_->GetConnectedNode(); return widget_->GetConnectedNode();
} }
TimeRuler *TimeBasedPanel::ruler() const
{
return widget_->ruler();
}
void TimeBasedPanel::ConnectViewerNode(ViewerOutput *node) void TimeBasedPanel::ConnectViewerNode(ViewerOutput *node)
{ {
if (widget_->GetConnectedNode()) { if (widget_->GetConnectedNode()) {
+2
View File
@@ -18,6 +18,8 @@ public:
ViewerOutput* GetConnectedViewer() const; ViewerOutput* GetConnectedViewer() const;
TimeRuler* ruler() const;
virtual void ZoomIn() override; virtual void ZoomIn() override;
virtual void ZoomOut() override; virtual void ZoomOut() override;
+5
View File
@@ -32,3 +32,8 @@ void ViewerPanelBase::ConnectTimeBasedPanel(TimeBasedPanel *panel)
connect(panel, &TimeBasedPanel::ShuttleStopRequested, this, &ViewerPanelBase::ShuttleStop); connect(panel, &TimeBasedPanel::ShuttleStopRequested, this, &ViewerPanelBase::ShuttleStop);
connect(panel, &TimeBasedPanel::ShuttleRightRequested, this, &ViewerPanelBase::ShuttleRight); connect(panel, &TimeBasedPanel::ShuttleRightRequested, this, &ViewerPanelBase::ShuttleRight);
} }
VideoRenderBackend *ViewerPanelBase::video_renderer() const
{
return static_cast<ViewerWidget*>(GetTimeBasedWidget())->video_renderer();
}
+2
View File
@@ -20,6 +20,8 @@ public:
void ConnectTimeBasedPanel(TimeBasedPanel* panel); void ConnectTimeBasedPanel(TimeBasedPanel* panel);
VideoRenderBackend* video_renderer() const;
}; };
#endif // VIEWERPANELBASE_H #endif // VIEWERPANELBASE_H
+2 -2
View File
@@ -48,12 +48,12 @@ public slots:
void GoToNextCut(); void GoToNextCut();
TimeRuler* ruler() const;
protected slots: protected slots:
void SetTimeAndSignal(const int64_t& t); void SetTimeAndSignal(const int64_t& t);
protected: protected:
TimeRuler* ruler() const;
QScrollBar* scrollbar() const; QScrollBar* scrollbar() const;
virtual void TimebaseChangedEvent(const rational&) override; virtual void TimebaseChangedEvent(const rational&) override;
@@ -205,6 +205,7 @@ void TimelineWidget::ConnectNodeInternal(ViewerOutput *n)
connect(n, &ViewerOutput::TrackHeightChanged, this, &TimelineWidget::TrackHeightChanged); connect(n, &ViewerOutput::TrackHeightChanged, this, &TimelineWidget::TrackHeightChanged);
SetTimebase(n->video_params().time_base()); SetTimebase(n->video_params().time_base());
UpdateTimelineLength(n->Length());
for (int i=0;i<views_.size();i++) { for (int i=0;i<views_.size();i++) {
Timeline::TrackType track_type = static_cast<Timeline::TrackType>(i); Timeline::TrackType track_type = static_cast<Timeline::TrackType>(i);
@@ -566,6 +567,7 @@ void TimelineWidget::UpdateTimelineLength(const rational &length)
foreach (TimelineAndTrackView* view, views_) { foreach (TimelineAndTrackView* view, views_) {
view->view()->SetEndTime(length); view->view()->SetEndTime(length);
} }
ruler()->SetCacheStatusLength(length);
} }
TimelineWidget::Tool *TimelineWidget::GetActiveTool() TimelineWidget::Tool *TimelineWidget::GetActiveTool()
+2
View File
@@ -90,6 +90,8 @@ MainWindow::MainWindow(QWidget *parent) :
connect(curve_panel_, &CurvePanel::TimeChanged, viewer_panel_, &ViewerPanel::SetTime); connect(curve_panel_, &CurvePanel::TimeChanged, viewer_panel_, &ViewerPanel::SetTime);
connect(curve_panel_, &CurvePanel::TimeChanged, timeline_panel_, &TimelinePanel::SetTime); connect(curve_panel_, &CurvePanel::TimeChanged, timeline_panel_, &TimelinePanel::SetTime);
connect(curve_panel_, &CurvePanel::TimeChanged, param_panel_, &ParamPanel::SetTime); connect(curve_panel_, &CurvePanel::TimeChanged, param_panel_, &ParamPanel::SetTime);
connect(viewer_panel_->video_renderer(), &VideoRenderBackend::CachedTimeReady, timeline_panel_->ruler(), &TimeRuler::CacheTimeReady);
connect(viewer_panel_->video_renderer(), &VideoRenderBackend::RangeInvalidated, timeline_panel_->ruler(), &TimeRuler::CacheInvalidatedRange);
viewer_panel_->ConnectTimeBasedPanel(timeline_panel_); viewer_panel_->ConnectTimeBasedPanel(timeline_panel_);
viewer_panel_->ConnectTimeBasedPanel(param_panel_); viewer_panel_->ConnectTimeBasedPanel(param_panel_);