X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=synfig-core%2Ftrunk%2Fsrc%2Fsynfig%2Floadcanvas.cpp;h=d93dc092b0dbeb6bdf801753294c1f10a807fff1;hb=d991deef90e07575e0b975282213d0a5550caf06;hp=5b4fe8684e87da17832691982f9fd92947a587d8;hpb=e6efdb6732204cb498c236208321011c7cb3b709;p=synfig.git diff --git a/synfig-core/trunk/src/synfig/loadcanvas.cpp b/synfig-core/trunk/src/synfig/loadcanvas.cpp index 5b4fe86..d93dc09 100644 --- a/synfig-core/trunk/src/synfig/loadcanvas.cpp +++ b/synfig-core/trunk/src/synfig/loadcanvas.cpp @@ -995,7 +995,7 @@ CanvasParser::parse_animated(xmlpp::Element *element,Canvas::Handle canvas) if(child->get_attribute("temporal-tension")) { synfig::String str(child->get_attribute("temporal-tension")->get_value()); - waypoint->set_time_tension(atof(str.c_str())); + waypoint->set_temporal_tension(atof(str.c_str())); } if(child->get_attribute("continuity")) { @@ -1275,12 +1275,35 @@ CanvasParser::parse_linkable_value_node(xmlpp::Element *element,Canvas::Handle c } } + String version(canvas->get_version()); for (int i = 0; i < value_node->link_count(); i++) { - if (!c[i] && - // the 'width' parameter of wasn't always present, so it won't be in old .sif files - !(element->get_name() == "stripes" && value_node->link_name(i) == "width")) + if (!c[i]) { + // the 'width' parameter of wasn't always present in version 0.1 canvases + if (version == "0.1" && element->get_name() == "stripes" && value_node->link_name(i) == "width") + continue; + + // these 3 blinecalctangent parameters didn't appear until canvas version 0.5 + if ((version == "0.1" || version == "0.2" || version == "0.3" || version == "0.4") && + element->get_name() == "blinecalctangent" && + (value_node->link_name(i) == "offset" || + value_node->link_name(i) == "scale" || + value_node->link_name(i) == "fixed_length")) + continue; + + // 'scale' was added while canvas version 0.5 was in use + if ((version == "0.3" || version == "0.4" || version == "0.5") && + element->get_name() == "blinecalcwidth" && + value_node->link_name(i) == "scale") + continue; + + // 'loop' was added while canvas version 0.5 was in use, as was the 'gradientcolor' node type + if (version == "0.5" && + element->get_name() == "gradientcolor" && + value_node->link_name(i) == "loop") + continue; + error(element, strprintf(_("<%s> is missing link %d (%s)"), element->get_name().c_str(), i, @@ -1292,7 +1315,6 @@ CanvasParser::parse_linkable_value_node(xmlpp::Element *element,Canvas::Handle c // pre 0.4 canvases had *calctangent outputs scaled down by 0.5 for some reason if (element->get_name() == "blinecalctangent" || element->get_name() == "segcalctangent") { - String version(canvas->get_version()); if (version == "0.1" || version == "0.2" || version == "0.3") { handle scale_value_node=LinkableValueNode::create("scale",type); @@ -1697,6 +1719,11 @@ CanvasParser::parse_layer(xmlpp::Element *element,Canvas::Handle canvas) String param_name=child->get_attribute("name")->get_value(); + // SVN r2013 and r2014 renamed all 'pos' and 'offset' parameters to 'origin' + // 'pos' and 'offset' will appear in old .sif files; handle them correctly + if (param_name == "pos" || param_name == "offset") + param_name = "origin"; + if(child->get_attribute("use")) { // If the "use" attribute is used, then the @@ -1720,6 +1747,12 @@ CanvasParser::parse_layer(xmlpp::Element *element,Canvas::Handle canvas) handle value_node=canvas->surefind_value_node(str); // Assign the value_node to the dynamic parameter list + if (param_name == "segment_list" && (layer->get_name() == "region" || layer->get_name() == "outline")) + { + synfig::warning("%s: Updated valuenode connection to use the \"bline\" parameter instead of \"segment_list\".", + layer->get_name().c_str()); + param_name = "bline"; + } layer->connect_dynamic_param(param_name,value_node); } catch(Exception::IDNotFound) @@ -1760,7 +1793,9 @@ CanvasParser::parse_layer(xmlpp::Element *element,Canvas::Handle canvas) // the layer liked it if(!layer->set_param(param_name,data)) { - warning((*iter),_("Layer rejected value for ")); + warning((*iter),strprintf(_("Layer '%s' rejected value for parameter '%s'"), + element->get_attribute("type")->get_value().c_str(), + param_name.c_str())); continue; } }