From 0f9ceff3703a03265112e8bcfb2b31d959aa99d6 Mon Sep 17 00:00:00 2001 From: dooglus Date: Mon, 17 Sep 2007 15:43:30 +0000 Subject: [PATCH] Fix 1778930: TCB is the default waypoint type except for angles, which default to linear. Also fixed a copy/paste typo in an error message. Still need to get angle waypoints to default to linear interpolation on creation. git-svn-id: http://svn.voria.com/code@692 1f10aa63-cdf2-0310-b900-c93c546f37ac --- synfig-core/trunk/src/synfig/savecanvas.cpp | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) diff --git a/synfig-core/trunk/src/synfig/savecanvas.cpp b/synfig-core/trunk/src/synfig/savecanvas.cpp index 690277c..18224df 100644 --- 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","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"); @@ -296,7 +298,9 @@ xmlpp::Element* encode_animated(xmlpp::Element* root,ValueNode_Animated::ConstHa 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"); @@ -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","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"); @@ -317,10 +323,12 @@ xmlpp::Element* encode_animated(xmlpp::Element* root,ValueNode_Animated::ConstHa 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: - error("Unknown waypoint type for \"before\" attribute"); + error("Unknown waypoint type for \"after\" attribute"); } if(iter->get_tension()!=0.0) -- 2.7.4