bool Action::LayerEmbed::is_candidate(const ParamList &x) { if (!candidate_check(get_param_vocab(),x)) return false; Layer::Handle layer=x.find("layer")->second.get_layer(); if(!layer) return false; etl::handle<synfig::Layer_PasteCanvas> layer_pastecanvas = etl::handle<synfig::Layer_PasteCanvas>::cast_dynamic(layer); if (layer_pastecanvas) { Canvas::Handle canvas = layer_pastecanvas->get_sub_canvas();; if (canvas && canvas->is_root()) return true; } Layer::Handle layer_import = layer; if (layer_import->get_param_list().count("filename") != 0) { String filename = layer_import->get_param("filename").get(String()); // TODO: literal "container:" if (!filename.empty() && filename.substr(0, String("#").size()) != "#" && layer_import->dynamic_param_list().count("filename") == 0) return true; } return false; }
bool Action::LayerEmbed::is_candidate(const ParamList &x) { if (!candidate_check(get_param_vocab(),x)) return false; Layer::Handle layer=x.find("layer")->second.get_layer(); if(!layer) return false; etl::handle<synfig::Layer_PasteCanvas> layer_pastecanvas = etl::handle<synfig::Layer_PasteCanvas>::cast_dynamic(layer); if (layer_pastecanvas) { Canvas::Handle canvas = layer_pastecanvas->get_sub_canvas();; if (canvas && canvas->is_root()) return true; } Layer::Handle layer_import = layer; if (layer_import->get_param_list().count("filename") != 0) { String filename = layer_import->get_param("filename").get(String()); if ( !CanvasFileNaming::is_embeded(filename) && !layer_import->dynamic_param_list().count("filename") ) return true; } return false; }
bool Action::LayerEmbed::set_param(const synfig::String& name, const Action::Param ¶m) { if(name=="layer" && param.get_type()==Param::TYPE_LAYER) { Layer::Handle layer = param.get_layer(); etl::handle<synfig::Layer_PasteCanvas> layer_pastecanvas = etl::handle<synfig::Layer_PasteCanvas>::cast_dynamic(layer); if (layer_pastecanvas) { Canvas::Handle canvas = layer_pastecanvas->get_sub_canvas(); if (canvas && canvas->is_root()) { this->layer_pastecanvas = layer_pastecanvas; return true; } } Layer::Handle layer_import = layer; if (layer_import->get_param_list().count("filename") != 0) { String filename = layer_import->get_param("filename").get(String()); // TODO: literal "container:" if (!filename.empty() && filename.substr(0, String("#").size()) != "#" && layer_import->dynamic_param_list().count("filename") == 0) { this->layer_import = layer_import; return true; } } return false; } return Action::CanvasSpecific::set_param(name,param); }
bool Action::LayerEmbed::set_param(const synfig::String& name, const Action::Param ¶m) { if(name=="layer" && param.get_type()==Param::TYPE_LAYER) { Layer::Handle layer = param.get_layer(); etl::handle<synfig::Layer_PasteCanvas> layer_pastecanvas = etl::handle<synfig::Layer_PasteCanvas>::cast_dynamic(layer); if (layer_pastecanvas) { Canvas::Handle canvas = layer_pastecanvas->get_sub_canvas(); if (canvas && canvas->is_root()) { this->layer_pastecanvas = layer_pastecanvas; return true; } } Layer::Handle layer_import = layer; if (layer_import->get_param_list().count("filename") != 0) { String filename = layer_import->get_param("filename").get(String()); if ( !CanvasFileNaming::is_embeded(filename) && !layer_import->dynamic_param_list().count("filename") ) { this->layer_import = layer_import; return true; } } return false; } return Action::CanvasSpecific::set_param(name,param); }