X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=synfig-studio%2Fsrc%2Fsynfigapp%2Factions%2Fvaluedescset.cpp;h=35f6d26ea0d996eb744095db1c8690bbdbc21ece;hb=d43ed398fd84b93b96eb91d91dafdf65c80537e6;hp=7bb44f4ac1232c78db4cce700f5162cb2a4e9682;hpb=4fe456129199147675877ee0033b584da5084e45;p=synfig.git diff --git a/synfig-studio/src/synfigapp/actions/valuedescset.cpp b/synfig-studio/src/synfigapp/actions/valuedescset.cpp index 7bb44f4..35f6d26 100644 --- a/synfig-studio/src/synfigapp/actions/valuedescset.cpp +++ b/synfig-studio/src/synfigapp/actions/valuedescset.cpp @@ -156,7 +156,8 @@ Action::ValueDescSet::prepare() // tangent. if( value_desc.parent_is_value_node() && value_desc.get_parent_value_node()->get_type()==ValueBase::TYPE_BLINEPOINT && - (value_desc.get_index()==4 || value_desc.get_index()==5) && + (value_desc.get_name()=="t1" || value_desc.get_name()=="t2") && + //(value_desc.get_index()==4 || value_desc.get_index()==5) && (*value_desc.get_parent_value_node())(time).get(BLinePoint()).get_split_tangent_flag()==false) { { @@ -168,7 +169,8 @@ Action::ValueDescSet::prepare() Vector t2((*parent_value_node->get_link("t2"))(time)); } - if (value_desc.get_index()==4) { + //if (value_desc.get_index()==4) { + if (value_desc.get_name()=="t1") { ValueNode_Composite::Handle parent_value_node; parent_value_node=parent_value_node.cast_dynamic(value_desc.get_parent_value_node()); @@ -183,7 +185,7 @@ Action::ValueDescSet::prepare() action->set_param("canvas_interface",get_canvas_interface()); action->set_param("time",time); action->set_param("new_value",value); - action->set_param("value_desc",ValueDesc(parent_value_node,5)); + action->set_param("value_desc",ValueDesc(parent_value_node, parent_value_node->get_link_index_from_name("t2"))); if(!action->is_ready()) throw Error(Error::TYPE_NOTREADY); @@ -300,7 +302,7 @@ Action::ValueDescSet::prepare() case ValueBase::TYPE_VECTOR: { Angle old_angle = (*(ValueNode_RadialComposite::Handle::cast_dynamic( - value_desc.get_value_node())->get_link(1)))(time).get(Angle()); + value_desc.get_value_node())->get_link("theta")))(time).get(Angle()); Vector vect(value.get(Vector())); components[0]=vect.mag(); Angle change = Angle(Angle::tan(vect[1],vect[0])) - old_angle; @@ -371,7 +373,7 @@ Action::ValueDescSet::prepare() action->set_param("canvas_interface",get_canvas_interface()); action->set_param("time",time); action->set_param("new_value",(*parent_value_node->get_link("t1"))(time)); - action->set_param("value_desc",ValueDesc(parent_value_node,5)); + action->set_param("value_desc",ValueDesc(parent_value_node,parent_value_node->get_link_index_from_name("t2"))); if(!action->is_ready()) throw Error(Error::TYPE_NOTREADY); @@ -396,7 +398,7 @@ Action::ValueDescSet::prepare() action->set_param("canvas_interface",get_canvas_interface()); action->set_param("time",time); action->set_param("new_value",average); - action->set_param("value_desc",ValueDesc(parent_value_node,4)); + action->set_param("value_desc",ValueDesc(parent_value_node,parent_value_node->get_link_index_from_name("t1"))); if(!action->is_ready()) throw Error(Error::TYPE_NOTREADY); @@ -414,7 +416,7 @@ Action::ValueDescSet::prepare() action->set_param("canvas_interface",get_canvas_interface()); action->set_param("time",time); action->set_param("new_value",average); - action->set_param("value_desc",ValueDesc(parent_value_node,5)); + action->set_param("value_desc",ValueDesc(parent_value_node,parent_value_node->get_link_index_from_name("t2"))); if(!action->is_ready()) throw Error(Error::TYPE_NOTREADY); @@ -444,9 +446,17 @@ Action::ValueDescSet::prepare() } */ - + ValueBase local_value; + local_value.set_static(false); + if(!value_desc.is_value_node() || ValueNode_Const::Handle::cast_dynamic(value_desc.get_value_node())) + { + if(value_desc.is_value_node()) + local_value=ValueNode_Const::Handle::cast_dynamic(value_desc.get_value_node())->get_value(); + else + local_value=value_desc.get_value(); + } // If we are in animate editing mode - if(get_edit_mode()&MODE_ANIMATE) + if(get_edit_mode()&MODE_ANIMATE && !local_value.get_static()) { ValueNode_Animated::Handle& value_node(value_node_animated); @@ -525,7 +535,8 @@ Action::ValueDescSet::prepare() if(ValueNode_Const::Handle::cast_dynamic(value_desc.get_value_node())) { Action::Handle action(ValueNodeConstSet::create()); - + synfig::ValueNode_Const::Handle localvaluenode(ValueNode_Const::Handle::cast_dynamic(value_desc.get_value_node())); + value.set_static(localvaluenode->get_static()); action->set_param("canvas",get_canvas()); action->set_param("canvas_interface",get_canvas_interface()); action->set_param("value_node",value_desc.get_value_node()); @@ -547,7 +558,8 @@ Action::ValueDescSet::prepare() if(value_desc.parent_is_layer_param() && !value_desc.is_value_node()) { Action::Handle layer_param_set(LayerParamSet::create()); - + synfig::ValueBase localvalue(value_desc.get_value()); + value.set_static(local_value.get_static()); layer_param_set->set_param("canvas",get_canvas()); layer_param_set->set_param("canvas_interface",get_canvas_interface()); layer_param_set->set_param("layer",value_desc.get_layer());