X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=synfig-core%2Ftrunk%2Fsrc%2Fsynfig%2Fsavecanvas.cpp;h=58d40ede4044a8b980f644f7e534e0f10252bd2b;hb=a0e8f6b53d454929feade1d9f768e66ef0d76d88;hp=bff17b0a38d2a482990eeb055c0335fed9a5bd40;hpb=01665fbe64b429c0c752c4d02eedd6c12532a44a;p=synfig.git diff --git a/synfig-core/trunk/src/synfig/savecanvas.cpp b/synfig-core/trunk/src/synfig/savecanvas.cpp index bff17b0..58d40ed 100644 --- a/synfig-core/trunk/src/synfig/savecanvas.cpp +++ b/synfig-core/trunk/src/synfig/savecanvas.cpp @@ -6,6 +6,7 @@ ** ** \legal ** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley +** Copyright (c) 2007 Chris Moore ** ** This package is free software; you can redistribute it and/or ** modify it under the terms of the GNU General Public License as @@ -57,6 +58,10 @@ #include "gradient.h" #include +extern "C" { +#include +} + #endif /* === U S I N G =========================================================== */ @@ -287,9 +292,7 @@ xmlpp::Element* encode_animated(xmlpp::Element* root,ValueNode_Animated::ConstHa waypoint_node->set_attribute("before","halt"); break; case INTERPOLATION_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"); + waypoint_node->set_attribute("before","linear"); break; case INTERPOLATION_MANUAL: waypoint_node->set_attribute("before","manual"); @@ -298,9 +301,7 @@ 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 (unless it's an angle - they default to linear) - if (value_node->get_type() == ValueBase::TYPE_ANGLE) - waypoint_node->set_attribute("before","auto"); + waypoint_node->set_attribute("before","auto"); break; default: error("Unknown waypoint type for \"before\" attribute"); @@ -312,9 +313,7 @@ xmlpp::Element* encode_animated(xmlpp::Element* root,ValueNode_Animated::ConstHa waypoint_node->set_attribute("after","halt"); break; case INTERPOLATION_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"); + waypoint_node->set_attribute("after","linear"); break; case INTERPOLATION_MANUAL: waypoint_node->set_attribute("after","manual"); @@ -323,9 +322,7 @@ 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 (unless it's an angle - they default to linear) - if (value_node->get_type() == ValueBase::TYPE_ANGLE) - waypoint_node->set_attribute("after","auto"); + waypoint_node->set_attribute("after","auto"); break; default: error("Unknown waypoint type for \"after\" attribute"); @@ -747,6 +744,11 @@ synfig::save_canvas(const String &filename, Canvas::ConstHandle canvas) synfig::String tmp_filename(filename+".TMP"); + if (filename_extension(filename) == ".sifz") + xmlSetCompressMode(9); + else + xmlSetCompressMode(0); + try { assert(canvas);