minor refactoring and signalling panel subtitle by node change
Fixes issue where Footage Viewer subtitle wouldn't update when dropping footage in.
This commit is contained in:
@@ -111,27 +111,7 @@ void TimeBasedPanel::ShuttleRight()
|
||||
|
||||
void TimeBasedPanel::ConnectViewerNode(ViewerOutput *node)
|
||||
{
|
||||
if (widget_->GetConnectedNode() == node) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (widget_->GetConnectedNode()) {
|
||||
disconnect(widget_->GetConnectedNode(), &ViewerOutput::LabelChanged, this, &TimeBasedPanel::SetSubtitle);
|
||||
}
|
||||
|
||||
widget_->ConnectViewerNode(node);
|
||||
|
||||
if (node) {
|
||||
connect(node, &ViewerOutput::LabelChanged, this, &TimeBasedPanel::SetSubtitle);
|
||||
|
||||
if (show_and_raise_on_connect_) {
|
||||
this->show();
|
||||
this->raise();
|
||||
}
|
||||
}
|
||||
|
||||
// Update strings
|
||||
Retranslate();
|
||||
}
|
||||
|
||||
void TimeBasedPanel::SetTimeBasedWidget(TimeBasedWidget *widget)
|
||||
@@ -139,6 +119,7 @@ void TimeBasedPanel::SetTimeBasedWidget(TimeBasedWidget *widget)
|
||||
if (widget_) {
|
||||
disconnect(widget_, &TimeBasedWidget::TimeChanged, this, &TimeBasedPanel::TimeChanged);
|
||||
disconnect(widget_, &TimeBasedWidget::TimebaseChanged, this, &TimeBasedPanel::TimebaseChanged);
|
||||
disconnect(widget_, &TimeBasedWidget::ConnectedNodeChanged, this, &TimeBasedPanel::ConnectedNodeChanged);
|
||||
}
|
||||
|
||||
widget_ = widget;
|
||||
@@ -146,6 +127,7 @@ void TimeBasedPanel::SetTimeBasedWidget(TimeBasedWidget *widget)
|
||||
if (widget_) {
|
||||
connect(widget_, &TimeBasedWidget::TimeChanged, this, &TimeBasedPanel::TimeChanged);
|
||||
connect(widget_, &TimeBasedWidget::TimebaseChanged, this, &TimeBasedPanel::TimebaseChanged);
|
||||
connect(widget_, &TimeBasedWidget::ConnectedNodeChanged, this, &TimeBasedPanel::ConnectedNodeChanged);
|
||||
}
|
||||
|
||||
SetWidgetWithPadding(widget_);
|
||||
@@ -160,6 +142,25 @@ void TimeBasedPanel::Retranslate()
|
||||
}
|
||||
}
|
||||
|
||||
void TimeBasedPanel::ConnectedNodeChanged(ViewerOutput *old, ViewerOutput *now)
|
||||
{
|
||||
if (old) {
|
||||
disconnect(old, &ViewerOutput::LabelChanged, this, &TimeBasedPanel::SetSubtitle);
|
||||
}
|
||||
|
||||
if (now) {
|
||||
connect(now, &ViewerOutput::LabelChanged, this, &TimeBasedPanel::SetSubtitle);
|
||||
|
||||
if (show_and_raise_on_connect_) {
|
||||
this->show();
|
||||
this->raise();
|
||||
}
|
||||
}
|
||||
|
||||
// Update strings
|
||||
Retranslate();
|
||||
}
|
||||
|
||||
void TimeBasedPanel::SetIn()
|
||||
{
|
||||
GetTimeBasedWidget()->SetInAtPlayhead();
|
||||
|
||||
Reference in New Issue
Block a user