X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;ds=sidebyside;f=synfig-core%2Ftrunk%2Fsrc%2Fsynfig%2Floadcanvas.cpp;h=28dff3eea9b12b86c96a430d89c1dd4abc092fa8;hb=99e2b11a81d17de6155de18e0c91ae5efe08613f;hp=5482fd90fd29c6dba2dad437d5e84deb211d08b5;hpb=cba72b25145dee544dcc8b8bee96f1aaa4f53abf;p=synfig.git diff --git a/synfig-core/trunk/src/synfig/loadcanvas.cpp b/synfig-core/trunk/src/synfig/loadcanvas.cpp index 5482fd9..28dff3e 100644 --- a/synfig-core/trunk/src/synfig/loadcanvas.cpp +++ b/synfig-core/trunk/src/synfig/loadcanvas.cpp @@ -2120,6 +2120,14 @@ CanvasParser::parse_canvas(xmlpp::Element *element,Canvas::Handle parent,bool in return canvas; } +void +CanvasParser::register_canvas_in_map(Canvas::Handle canvas, String as) +{ + get_open_canvas_map()[etl::absolute_path(as)]=canvas; + canvas->signal_deleted().connect(sigc::bind(sigc::ptr_fun(_remove_from_open_canvas_map),canvas.get())); + canvas->signal_file_name_changed().connect(sigc::bind(sigc::ptr_fun(_canvas_file_name_changed),canvas.get())); +} + Canvas::Handle CanvasParser::parse_from_file_as(const String &file_,const String &as_,String &errors) { @@ -2139,9 +2147,7 @@ CanvasParser::parse_from_file_as(const String &file_,const String &as_,String &e { Canvas::Handle canvas(parse_canvas(parser.get_document()->get_root_node(),0,false,as)); if (!canvas) return canvas; - get_open_canvas_map()[etl::absolute_path(as)]=canvas; - canvas->signal_deleted().connect(sigc::bind(sigc::ptr_fun(_remove_from_open_canvas_map),canvas.get())); - canvas->signal_file_name_changed().connect(sigc::bind(sigc::ptr_fun(_canvas_file_name_changed),canvas.get())); + register_canvas_in_map(canvas, as); const ValueNodeList& value_node_list(canvas->value_node_list());