diff --git a/app/widget/nodeparamview/nodeparamviewwidgetbridge.cpp b/app/widget/nodeparamview/nodeparamviewwidgetbridge.cpp index 5ce8eb24d..6f96d1073 100644 --- a/app/widget/nodeparamview/nodeparamviewwidgetbridge.cpp +++ b/app/widget/nodeparamview/nodeparamviewwidgetbridge.cpp @@ -242,24 +242,24 @@ void NodeParamViewWidgetBridge::CreateWidgets() } } -void NodeParamViewWidgetBridge::SetInputValue(NodeInput *input, const QVariant &value) +void NodeParamViewWidgetBridge::SetInputValue(const QVariant &value) { QUndoCommand* command = new QUndoCommand(); - if (input->is_keyframing()) { - NodeKeyframePtr existing_key = input->get_keyframe_at_time(time_); + if (input_->is_keyframing()) { + NodeKeyframePtr existing_key = input_->get_keyframe_at_time(time_); if (existing_key) { new NodeParamSetKeyframeValueCommand(existing_key, value, command); } else { // No existing key, create a new one - NodeKeyframePtr closest_key = input->get_closest_keyframe_to_time(time_); + NodeKeyframePtr closest_key = input_->get_closest_keyframe_to_time(time_); NodeKeyframePtr new_key = std::make_shared(time_, value, closest_key->type()); - new NodeParamInsertKeyframeCommand(input, new_key, command); + new NodeParamInsertKeyframeCommand(input_, new_key, command); } } else { - new NodeParamSetKeyframeValueCommand(input->keyframes().first(), value, command); + new NodeParamSetKeyframeValueCommand(input_->keyframes().first(), value, command); } olive::undo_stack.pushIfHasChildren(command); @@ -285,78 +285,38 @@ void NodeParamViewWidgetBridge::WidgetCallback() case NodeParam::kInt: { // Widget is a IntegerSlider -// IntegerSlider* int_slider = static_cast(sender()); -// input->set_default_value(time_, int_slider->GetValue()); + SetInputValue(static_cast(sender())->GetValue()); break; } case NodeParam::kFloat: { // Widget is a FloatSlider - FloatSlider* float_slider = static_cast(sender()); - SetInputValue(input_, float_slider->GetValue()); + SetInputValue(static_cast(sender())->GetValue()); break; } case NodeParam::kVec2: - { - // Widgets are two FloatSliders - FloatSlider* slider = static_cast(sender()); - - QVector2D val = input_->get_value_at_time(0).value(); - - if (slider == widgets_.at(0)) { - // Slider is X slider - val.setX(static_cast(slider->GetValue())); - } else { - // Slider is Y slider - val.setY(static_cast(slider->GetValue())); - } - -// input->set_default_value(0, val); + SetInputValue(QVector2D( + static_cast(static_cast(widgets_.at(0))->GetValue()), + static_cast(static_cast(widgets_.at(1))->GetValue()) + )); break; - } case NodeParam::kVec3: - { // Widgets are three FloatSliders - FloatSlider* slider = static_cast(sender()); - - QVector3D val = input_->get_value_at_time(0).value(); - - if (slider == widgets_.at(0)) { - // Slider is X slider - val.setX(static_cast(slider->GetValue())); - } else if (slider == widgets_.at(1)) { - // Slider is Y slider - val.setY(static_cast(slider->GetValue())); - } else { - // Slider is Z slider - val.setZ(static_cast(slider->GetValue())); - } - -// input->set_default_value(0, val); + SetInputValue(QVector3D( + static_cast(static_cast(widgets_.at(0))->GetValue()), + static_cast(static_cast(widgets_.at(1))->GetValue()), + static_cast(static_cast(widgets_.at(2))->GetValue()) + )); break; - } case NodeParam::kVec4: { // Widgets are three FloatSliders - FloatSlider* slider = static_cast(sender()); - - QVector4D val = input_->get_value_at_time(0).value(); - - if (slider == widgets_.at(0)) { - // Slider is X slider - val.setX(static_cast(slider->GetValue())); - } else if (slider == widgets_.at(1)) { - // Slider is Y slider - val.setY(static_cast(slider->GetValue())); - } else if (slider == widgets_.at(2)) { - // Slider is Z slider - val.setZ(static_cast(slider->GetValue())); - } else { - // Slider is W slider - val.setW(static_cast(slider->GetValue())); - } - -// input->set_default_value(0, val); + SetInputValue(QVector4D( + static_cast(static_cast(widgets_.at(0))->GetValue()), + static_cast(static_cast(widgets_.at(1))->GetValue()), + static_cast(static_cast(widgets_.at(2))->GetValue()), + static_cast(static_cast(widgets_.at(3))->GetValue()) + )); break; } case NodeParam::kFile: @@ -368,29 +328,25 @@ void NodeParamViewWidgetBridge::WidgetCallback() case NodeParam::kText: { // Sender is a QLineEdit -// QLineEdit* line_edit = static_cast(sender()); -// input->set_default_value(time_, line_edit->text()); + SetInputValue(static_cast(sender())->text()); break; } case NodeParam::kBoolean: { // Widget is a QCheckBox -// QCheckBox* check_box = static_cast(sender()); -// input->set_default_value(0, check_box->isChecked()); + SetInputValue(static_cast(sender())->isChecked()); break; } case NodeParam::kFont: { // Widget is a QFontComboBox -// QFontComboBox* font_combobox = static_cast(sender()); -// input->set_default_value(time_, font_combobox->currentFont()); + SetInputValue(static_cast(sender())->currentFont()); break; } case NodeParam::kFootage: { // Widget is a FootageComboBox -// FootageComboBox* footage_combobox = static_cast(sender()); -// input->set_default_value(time_, QVariant::fromValue(footage_combobox->SelectedFootage())); + SetInputValue(QVariant::fromValue(static_cast(sender())->SelectedFootage())); break; } }