X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=synfig-core%2Ftrunk%2Fsrc%2Ftool%2Fmain.cpp;h=7fa7357b251ac90b0b94605eb824a59a66072776;hb=dcf97b6d6d96b755b8199f32658ba057388a27a8;hp=238d23a84e892ff50576d3df9f0c8c2718a0d51b;hpb=c96b60b2dfad806d2b69829afa9ae2098b4f85ea;p=synfig.git diff --git a/synfig-core/trunk/src/tool/main.cpp b/synfig-core/trunk/src/tool/main.cpp index 238d23a..7fa7357 100644 --- a/synfig-core/trunk/src/tool/main.cpp +++ b/synfig-core/trunk/src/tool/main.cpp @@ -268,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")); @@ -420,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; } @@ -531,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" || @@ -555,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; } @@ -842,6 +845,16 @@ int extract_list_canvases(arg_list_t &arg_list,bool &list_canvases) 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 ================================================= */ @@ -867,6 +880,7 @@ int main(int argc, char *argv[]) cerr<<_("FATAL: Synfig Version Mismatch")<set_threads(threads); - } if(imageargs.size()) { @@ -1122,10 +1131,8 @@ int main(int argc, char *argv[]) } else if (job_list.front().list_canvases) { - cerr << "Listing Canvases:" << endl; - Canvas::Children children(job_list.front().canvas->children()); - for (Canvas::Children::iterator iter = children.begin(); iter != children.end(); iter++) - cout << " " << job_list.front().filename << "#:" << (*iter)->get_id() << endl; + list_child_canvases(job_list.front().filename + "#", job_list.front().canvas); + cerr << endl; } else { @@ -1139,9 +1146,7 @@ int main(int argc, char *argv[]) return SYNFIGTOOL_RENDERFAILURE; } if(print_benchmarks) - { cout<