From f9b423f73124b2698f2ccf3a9b0b9fcf1230cc40 Mon Sep 17 00:00:00 2001 From: Thomas Wilshaw Date: Wed, 7 Apr 2021 18:04:06 +0100 Subject: [PATCH] Link RationalSlider timebase with nodeparamview --- app/widget/nodeparamview/nodeparamview.cpp | 4 ++++ app/widget/nodeparamview/nodeparamviewitem.cpp | 11 +++++++++++ app/widget/nodeparamview/nodeparamviewitem.h | 4 ++++ .../nodeparamview/nodeparamviewwidgetbridge.cpp | 7 +++++++ app/widget/nodeparamview/nodeparamviewwidgetbridge.h | 2 ++ 5 files changed, 28 insertions(+) diff --git a/app/widget/nodeparamview/nodeparamview.cpp b/app/widget/nodeparamview/nodeparamview.cpp index 2df568671..28466f778 100644 --- a/app/widget/nodeparamview/nodeparamview.cpp +++ b/app/widget/nodeparamview/nodeparamview.cpp @@ -214,6 +214,10 @@ void NodeParamView::TimebaseChangedEvent(const rational &timebase) keyframe_view_->SetTimebase(timebase); + foreach (NodeParamViewItem* item, items_) { + item->SetTimebase(timebase); + } + UpdateItemTime(GetTimestamp()); } diff --git a/app/widget/nodeparamview/nodeparamviewitem.cpp b/app/widget/nodeparamview/nodeparamviewitem.cpp index 70b96e1c4..1d9b16f15 100644 --- a/app/widget/nodeparamview/nodeparamviewitem.cpp +++ b/app/widget/nodeparamview/nodeparamviewitem.cpp @@ -81,6 +81,11 @@ void NodeParamViewItem::SetTime(const rational &time) body_->SetTime(time_); } +void NodeParamViewItem::SetTimebase(const rational& timebase) +{ + body_->SetTimebase(timebase); +} + Node *NodeParamViewItem::GetNode() const { return node_; @@ -505,6 +510,12 @@ void NodeParamViewItemBody::ToggleArrayExpanded() } } +void NodeParamViewItemBody::SetTimebase(const rational& timebase) { + foreach (const InputUI& ui_obj, input_ui_map_) { + ui_obj.widget_bridge->SetTimebase(timebase); + } +} + NodeParamViewItemBody::InputUI::InputUI() : main_label(nullptr), widget_bridge(nullptr), diff --git a/app/widget/nodeparamview/nodeparamviewitem.h b/app/widget/nodeparamview/nodeparamviewitem.h index 2a72134ef..0b4729bd0 100644 --- a/app/widget/nodeparamview/nodeparamviewitem.h +++ b/app/widget/nodeparamview/nodeparamviewitem.h @@ -85,6 +85,8 @@ public: int GetElementY(NodeInput c) const; + void SetTimebase(const rational& timebase); + signals: void RequestSetTime(const rational& time); @@ -159,6 +161,8 @@ public: void SetTime(const rational& time); + void SetTimebase(const rational& timebase); + Node* GetNode() const; bool IsExpanded() const; diff --git a/app/widget/nodeparamview/nodeparamviewwidgetbridge.cpp b/app/widget/nodeparamview/nodeparamviewwidgetbridge.cpp index e27059353..b0469d8d0 100644 --- a/app/widget/nodeparamview/nodeparamviewwidgetbridge.cpp +++ b/app/widget/nodeparamview/nodeparamviewwidgetbridge.cpp @@ -526,6 +526,13 @@ rational NodeParamViewWidgetBridge::GetCurrentTimeAsNodeTime() const return GetAdjustedTime(GetTimeTarget(), input_.node(), time_, true); } +void NodeParamViewWidgetBridge::SetTimebase(const rational& timebase) +{ + if (input_.GetDataType() == NodeValue::kRational) { + static_cast(widgets_.first())->SetTimebase(timebase); + } +} + void NodeParamViewWidgetBridge::InputValueChanged(const NodeInput &input, const TimeRange &range) { if (input_ == input diff --git a/app/widget/nodeparamview/nodeparamviewwidgetbridge.h b/app/widget/nodeparamview/nodeparamviewwidgetbridge.h index 7b191f143..d985eb52d 100644 --- a/app/widget/nodeparamview/nodeparamviewwidgetbridge.h +++ b/app/widget/nodeparamview/nodeparamviewwidgetbridge.h @@ -49,6 +49,8 @@ public: return widgets_; } + void SetTimebase(const rational& timebase); + signals: void ArrayWidgetDoubleClicked();