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)
{
{
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());
catch(Exception::IDAlreadyExists) { synfig::error("IDAlreadyExists Thrown"); }
catch(xmlpp::internal_error x)
{
- printf("caught internal error\n");
if (!strcmp(x.what(), "Couldn't create parsing context"))
throw runtime_error(String(" * ") + _("Can't open file") + " \"" + file + "\"");
throw;