X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=synfig-core%2Ftrunk%2Fsrc%2Ftool%2Fmain.cpp;h=7fa7357b251ac90b0b94605eb824a59a66072776;hb=55323d29e72ab09cb29414e861458ed0713b97be;hp=370e8bbb4d39006f23e7b0a2ba70d88a8ba97349;hpb=5342158a872bf2c3ffbc34f52847ddadfc171307;p=synfig.git diff --git a/synfig-core/trunk/src/tool/main.cpp b/synfig-core/trunk/src/tool/main.cpp index 370e8bb..7fa7357 100644 --- a/synfig-core/trunk/src/tool/main.cpp +++ b/synfig-core/trunk/src/tool/main.cpp @@ -258,6 +258,7 @@ struct Job int quality; bool sifout; + bool list_canvases; }; typedef list arg_list_t; @@ -267,9 +268,7 @@ void guid_test() { cout<<"GUID Test"<",_("Set the physical resolution (dots-per-inch)")); Argument("--dpi-x","",_("Set the physical X resolution (dots-per-inch")); Argument("--dpi-y","",_("Set the physical Y resolution (dots-per-inch)")); + + Argument("--list-canvases",NULL,_("List the exported canvases in the composition")); Argument("--append","",_("Append layers in to composition")); + Argument("--layer-info","",_("Print out layer's description, parameter info, etc.")); Argument("--layers",NULL,_("Print out the list of available layers")); Argument("--targets",NULL,_("Print out the list of available targets")); @@ -418,7 +420,8 @@ int process_global_flags(arg_list_t &arg_list) Progress p(PACKAGE); synfig::Main synfig_main(dirname(progname),&p); iter=next++; - if (iter==arg_list.end()) { + if (iter==arg_list.end()) + { error("The `%s' flag requires a value. Use --help for a list of options.", "--layer-info"); return SYNFIGTOOL_MISSINGARGUMENT; } @@ -529,7 +532,8 @@ int process_global_flags(arg_list_t &arg_list) } /* true if the given flag takes an extra parameter */ -bool flag_requires_value(String flag) { +bool flag_requires_value(String flag) +{ return (flag=="-a" || flag=="-c" || flag=="-g" || flag=="-h" || flag=="-o" || flag=="-Q" || flag=="-s" || flag=="-t" || flag=="-T" || flag=="-w" || flag=="--append" || flag=="--begin-time" || flag=="--dpi" || flag=="--dpi-x" || flag=="--dpi-y" || @@ -553,7 +557,8 @@ int extract_arg_cluster(arg_list_t &arg_list,arg_list_t &cluster) cluster.push_back(*iter); arg_list.erase(iter); iter=next++; - if (iter==arg_list.end()) { + if (iter==arg_list.end()) + { error("The `%s' flag requires a value. Use --help for a list of options.", cluster.back().c_str()); return SYNFIGTOOL_MISSINGARGUMENT; } @@ -826,6 +831,30 @@ int extract_canvasid(arg_list_t &arg_list,string &canvasid) return SYNFIGTOOL_OK; } +int extract_list_canvases(arg_list_t &arg_list,bool &list_canvases) +{ + arg_list_t::iterator iter, next; + + for(next=arg_list.begin(),iter=next++;iter!=arg_list.end();iter=next++) + if(*iter=="--list-canvases") + { + list_canvases = true; + arg_list.erase(iter); + } + + return SYNFIGTOOL_OK; +} + +void list_child_canvases(string prefix, Canvas::Handle canvas) +{ + Canvas::Children children(canvas->children()); + for (Canvas::Children::iterator iter = children.begin(); iter != children.end(); iter++) + { + cout << prefix << ":" << (*iter)->get_id() << endl; + list_child_canvases(prefix + ":" + (*iter)->get_id(), *iter); + } +} + /* === M E T H O D S ======================================================= */ /* === E N T R Y P O I N T ================================================= */ @@ -851,6 +880,7 @@ int main(int argc, char *argv[]) cerr<<_("FATAL: Synfig Version Mismatch")<set_time(0); string canvasid; @@ -922,7 +956,6 @@ int main(int argc, char *argv[]) cerr<<_("Throwing out job...")<set_threads(threads); - } if(imageargs.size()) { @@ -1092,29 +1121,32 @@ int main(int argc, char *argv[]) RenderProgress p; p.task(job_list.front().filename+" ==> "+job_list.front().outfilename); - if(!job_list.front().sifout) + if(job_list.front().sifout) { - VERBOSE_OUT(1)<<_("Rendering...")<render(&p)) + if(!save_canvas(job_list.front().outfilename,job_list.front().canvas)) { cerr<<"Render Failure."<render(&p)) { cerr<<"Render Failure."<