Brief description of class still missing. More...
#include <TargetMerge.h>
Public Member Functions | |
| virtual int | execute () |
| virtual bool | setOptions (int &argc, char **argv) |
| TargetMerge () | |
Brief description of class still missing.
Full description of class still missing
| int TargetMerge::execute | ( | ) | [virtual] |
Description still missing
Implements AbstractTarget.
References DinverDCCore::TargetList2D::addTarget(), QGpCoreTools::endl(), AbstractTarget::fileName(), DinverDCCore::TargetList::isEmpty(), QGpCoreTools::tr(), TRACE, QGpCoreTools::XMLHeader::xml_restoreFile(), and QGpCoreTools::XMLHeader::xml_saveFile().
{
TRACE;
TargetList2D tl;
QFileInfo fi(fileName());
if(fi.exists()) {
XMLVirtualPlugin plugin(&tl, "DispersionCurve2D");
XMLDinverHeader hdr(&plugin);
if(hdr.xml_restoreFile(fileName())!=XMLClass::NoError) {
App::stream() << tr("gptarget: error reading file %1").arg(fileName()) << endl;
return 2;
}
}
foreach(QString fn, _targets) {
TargetList * t=new TargetList;
XMLVirtualPlugin plugin(t, "DispersionCurve");
XMLDinverHeader hdr(&plugin);
if(hdr.xml_restoreFile(fn)!=XMLClass::NoError) {
App::stream() << tr("gptarget: error reading file %1").arg(fn) << endl;
delete t;
return 2;
}
if(t->isEmpty()) {
App::stream() << tr("gptarget: empty target %1").arg(fn) << endl;
delete t;
return 2;
}
tl.addTarget(t);
}
XMLVirtualPlugin plugin(&tl, "DispersionCurve2D");
XMLDinverHeader hdr(&plugin);
if(hdr.xml_saveFile(fileName())!=XMLClass::NoError) {
App::stream() << tr("gptarget: error writing to file %1").arg(fileName()) << endl;
return 2;
}
return 0;
}
| bool TargetMerge::setOptions | ( | int & | argc, |
| char ** | argv | ||
| ) | [virtual] |
Description still missing
Implements AbstractTarget.
References QGpCoreTools::endl(), AbstractTarget::setFileName(), QGpCoreTools::tr(), and TRACE.
{
TRACE;
int j=1;
for(int i=1; i<argc; i++) {
QByteArray arg=argv[i];
if(arg[0]=='-') {
if(arg=="-o") {
CoreApplication::checkOptionArg(i, argc, argv);
setFileName(argv[i]);
} else {
App::stream() << tr("gptarget: bad option %1, see -help").arg(argv[i]) << endl;
return false;
}
} else {
argv[j++]=argv[i];
}
}
if(j < argc) {
argv[j]=0;
argc=j;
}
for(int i=1; i<argc; i++) {
_targets.append(argv[i]);
}
if(_targets.isEmpty()) {
App::stream() << tr("gptarget: missing 1D targets to merge") << endl;
return false;
}
return true;
}