projects
/
synfig.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Fix 1778930: TCB is the default waypoint type except for angles, which default to...
[synfig.git]
/
synfig-core
/
trunk
/
src
/
synfig
/
savecanvas.cpp
diff --git
a/synfig-core/trunk/src/synfig/savecanvas.cpp
b/synfig-core/trunk/src/synfig/savecanvas.cpp
index
690277c
..
18224df
100644
(file)
--- a/
synfig-core/trunk/src/synfig/savecanvas.cpp
+++ b/
synfig-core/trunk/src/synfig/savecanvas.cpp
@@
-287,7
+287,9
@@
xmlpp::Element* encode_animated(xmlpp::Element* root,ValueNode_Animated::ConstHa
waypoint_node->set_attribute("before","halt");
break;
case INTERPOLATION_LINEAR:
waypoint_node->set_attribute("before","halt");
break;
case INTERPOLATION_LINEAR:
- waypoint_node->set_attribute("before","linear");
+ // This is the default value for angles, so don't add a new attribute for them
+ if (value_node->get_type() != ValueBase::TYPE_ANGLE)
+ waypoint_node->set_attribute("before","linear");
break;
case INTERPOLATION_MANUAL:
waypoint_node->set_attribute("before","manual");
break;
case INTERPOLATION_MANUAL:
waypoint_node->set_attribute("before","manual");
@@
-296,7
+298,9
@@
xmlpp::Element* encode_animated(xmlpp::Element* root,ValueNode_Animated::ConstHa
waypoint_node->set_attribute("before","constant");
break;
case INTERPOLATION_TCB:
waypoint_node->set_attribute("before","constant");
break;
case INTERPOLATION_TCB:
- // This is the default value, so don't add a new attribute
+ // This is the default value, so don't add a new attribute (unless it's an angle - they default to linear)
+ if (value_node->get_type() == ValueBase::TYPE_ANGLE)
+ waypoint_node->set_attribute("before","tcb");
break;
default:
error("Unknown waypoint type for \"before\" attribute");
break;
default:
error("Unknown waypoint type for \"before\" attribute");
@@
-308,7
+312,9
@@
xmlpp::Element* encode_animated(xmlpp::Element* root,ValueNode_Animated::ConstHa
waypoint_node->set_attribute("after","halt");
break;
case INTERPOLATION_LINEAR:
waypoint_node->set_attribute("after","halt");
break;
case INTERPOLATION_LINEAR:
- waypoint_node->set_attribute("after","linear");
+ // This is the default value for angles, so don't add a new attribute for them
+ if (value_node->get_type() != ValueBase::TYPE_ANGLE)
+ waypoint_node->set_attribute("after","linear");
break;
case INTERPOLATION_MANUAL:
waypoint_node->set_attribute("after","manual");
break;
case INTERPOLATION_MANUAL:
waypoint_node->set_attribute("after","manual");
@@
-317,10
+323,12
@@
xmlpp::Element* encode_animated(xmlpp::Element* root,ValueNode_Animated::ConstHa
waypoint_node->set_attribute("after","constant");
break;
case INTERPOLATION_TCB:
waypoint_node->set_attribute("after","constant");
break;
case INTERPOLATION_TCB:
- // This is the default value, so don't add a new attribute
+ // This is the default value, so don't add a new attribute (unless it's an angle - they default to linear)
+ if (value_node->get_type() == ValueBase::TYPE_ANGLE)
+ waypoint_node->set_attribute("after","tcb");
break;
default:
break;
default:
- error("Unknown waypoint type for \"
before
\" attribute");
+ error("Unknown waypoint type for \"
after
\" attribute");
}
if(iter->get_tension()!=0.0)
}
if(iter->get_tension()!=0.0)