Fix 1778930: TCB is the default waypoint type except for angles, which default to...
authordooglus <dooglus@1f10aa63-cdf2-0310-b900-c93c546f37ac>
Mon, 17 Sep 2007 15:43:30 +0000 (15:43 +0000)
committerdooglus <dooglus@1f10aa63-cdf2-0310-b900-c93c546f37ac>
Mon, 17 Sep 2007 15:43:30 +0000 (15:43 +0000)
git-svn-id: http://svn.voria.com/code@692 1f10aa63-cdf2-0310-b900-c93c546f37ac

synfig-core/trunk/src/synfig/savecanvas.cpp

index 690277c..18224df 100644 (file)
@@ -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)