Add type checking to almost all the linkable ValueNodes.
[synfig.git] / synfig-core / trunk / src / synfig / valuenode_integer.cpp
index a9becdd..ab5dc20 100644 (file)
@@ -75,7 +75,7 @@ ValueNode_Integer::ValueNode_Integer(const ValueBase &x):
                break;
        default:
                assert(0);
-               throw runtime_error(_("synfig::ValueNode_Integer:Bad type ")+ValueBase::type_local_name(x.get_type()));
+               throw runtime_error(get_local_name()+_(":Bad type ")+ValueBase::type_local_name(x.get_type()));
        }
 }
 
@@ -97,19 +97,15 @@ ValueNode_Integer::~ValueNode_Integer()
 }
 
 bool
-ValueNode_Integer::set_link_vfunc(int i,ValueNode::Handle x)
+ValueNode_Integer::set_link_vfunc(int i,ValueNode::Handle value)
 {
        assert(i>=0 && i<link_count());
 
        switch(i)
        {
-       case 0:  integer_ = x; break;
-       default: return false;
+       case 0: CHECK_TYPE_AND_SET_VALUE(integer_, get_type());
        }
-
-       signal_child_changed()(i);
-       signal_value_changed()();
-       return true;
+       return false;
 }
 
 ValueNode::LooseHandle
@@ -171,7 +167,7 @@ ValueNode_Integer::operator()(Time t)const
                return Time(integer);
        default:
                assert(0);
-               throw runtime_error(_("synfig::ValueNode_Integer:Bad type ")+ValueBase::type_local_name(get_type()));
+               throw runtime_error(get_local_name()+_(":Bad type ")+ValueBase::type_local_name(get_type()));
        }
 }