When a new document is made and saved, register it in the canvas map as if it had...
[synfig.git] / synfig-core / trunk / src / synfig / loadcanvas.cpp
index 5482fd9..28dff3e 100644 (file)
@@ -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());