Uncomment and fix Layer::simple_clone() to clone a layer without cloning all its...
[synfig.git] / synfig-core / trunk / src / synfig / layer.cpp
index e6e8237..7643883 100644 (file)
@@ -102,7 +102,7 @@ Layer::subsys_init()
                BookEntry(class::create,                                                                \
                                  class::name__,                                                                \
                                  dgettext("synfig", class::local_name__),              \
-                                 dgettext("synfig", class::category__),                \
+                                 class::category__,                                                    \
                                  class::cvs_id__,                                                              \
                                  class::version__)
 
@@ -276,8 +276,7 @@ void
 Layer::on_changed()
 {
        dirty_time_=Time::end();
-       if(active())
-               Node::on_changed();
+       Node::on_changed();
 }
 
 bool
@@ -305,18 +304,20 @@ Layer::get_z_depth(const synfig::Time& t)const
        return (*dynamic_param_list().find("z_depth")->second)(t).get(Real());
 }
 
-#ifdef THIS_CODE_IS_NOT_USED
-Layer*
+Layer::Handle
 Layer::simple_clone()const
 {
        if(!book().count(get_name())) return 0;
-       Layer *ret = create(get_name()).get();
-       ret->set_canvas(get_canvas());
+       Handle ret = create(get_name()).get();
+       ret->group_=group_;
+       //ret->set_canvas(get_canvas());
        ret->set_description(get_description());
+       ret->set_active(active());
        ret->set_param_list(get_param_list());
+       for(DynamicParamList::const_iterator iter=dynamic_param_list().begin();iter!=dynamic_param_list().end();++iter)
+               ret->connect_dynamic_param(iter->first, iter->second);
        return ret;
 }
-#endif /* THIS_CODE_IS_NOT_USED */
 
 Layer::Handle
 Layer::clone(const GUID& deriv_guid) const
@@ -340,7 +341,6 @@ Layer::clone(const GUID& deriv_guid) const
        {
                if(dynamic_param_list().count(iter->first)==0 && iter->second.get_type()==ValueBase::TYPE_CANVAS)
                {
-
                        // This parameter is a canvas.  We need a close look.
                        Canvas::Handle canvas(iter->second.get(Canvas::Handle()));
                        if(canvas && canvas->is_inline())