X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=synfig-core%2Ftrunk%2Fsrc%2Fsynfig%2Fvaluenode.cpp;h=3c537d3fb280c362ed6d491f5d7375e65648ff5b;hb=791af4d0deaf3da6360107ffee4cde1862a3d8c1;hp=dce62ab72628c3afc58aae52c401019c6e66033a;hpb=6c27d1b6cf4694a873542cb264c650893f2c6e0e;p=synfig.git diff --git a/synfig-core/trunk/src/synfig/valuenode.cpp b/synfig-core/trunk/src/synfig/valuenode.cpp index dce62ab..3c537d3 100644 --- a/synfig-core/trunk/src/synfig/valuenode.cpp +++ b/synfig-core/trunk/src/synfig/valuenode.cpp @@ -201,6 +201,17 @@ LinkableValueNode::create(const String &name, const ValueBase& x) { if(!book().count(name)) return 0; + + if (!check_type(name, x.get_type()) && + // the Duplicate ValueNode is an exception - we don't want the + // user creating it for themselves, so check_type() fails for + // it even when it is valid + !(name == "duplicate" && x.get_type() == ValueBase::TYPE_REAL)) + { + error(_("Bad type: ValueNode '%s' doesn't accept type '%s'"), book()[name].local_name.c_str(), ValueBase::type_local_name(x.get_type()).c_str()); + return 0; + } + return book()[name].factory(x); } @@ -255,8 +266,6 @@ ValueNode::~ValueNode() value_node_count--; begin_delete(); - - //DEBUGPOINT(); } void