author | insilmaril |
Mon, 18 Jun 2007 15:10:18 +0000 | |
changeset 505 | 244e309b4047 |
parent 431 | c2ffbc9b832d |
child 518 | 07f35022646d |
permissions | -rw-r--r-- |
insilmaril@205 | 1 |
#include "xsltproc.h" |
insilmaril@205 | 2 |
|
insilmaril@205 | 3 |
#include <iostream> |
insilmaril@205 | 4 |
#include <qmessagebox.h> |
insilmaril@205 | 5 |
|
insilmaril@205 | 6 |
#include "process.h" |
insilmaril@205 | 7 |
|
insilmaril@205 | 8 |
|
insilmaril@205 | 9 |
XSLTProc::XSLTProc () |
insilmaril@205 | 10 |
{ |
insilmaril@205 | 11 |
xsltprocessor="xsltproc"; |
insilmaril@205 | 12 |
showOutput=false; |
insilmaril@205 | 13 |
dia=new ShowTextDialog; |
insilmaril@205 | 14 |
} |
insilmaril@205 | 15 |
|
insilmaril@205 | 16 |
XSLTProc::~XSLTProc () |
insilmaril@205 | 17 |
{ |
insilmaril@205 | 18 |
delete (dia); |
insilmaril@205 | 19 |
} |
insilmaril@205 | 20 |
|
insilmaril@205 | 21 |
void XSLTProc::addStringParam (const QString & k, const QString &v) |
insilmaril@205 | 22 |
{ |
insilmaril@205 | 23 |
stringParamKey.append (k); |
insilmaril@205 | 24 |
stringParamVal.append (v); |
insilmaril@205 | 25 |
} |
insilmaril@205 | 26 |
|
insilmaril@205 | 27 |
void XSLTProc::setOutputFile (const QString &s) |
insilmaril@205 | 28 |
{ |
insilmaril@205 | 29 |
outputFile=s; |
insilmaril@205 | 30 |
} |
insilmaril@205 | 31 |
|
insilmaril@205 | 32 |
void XSLTProc::setXSLFile(const QString &s) |
insilmaril@205 | 33 |
{ |
insilmaril@205 | 34 |
xslFile=s; |
insilmaril@205 | 35 |
} |
insilmaril@205 | 36 |
|
insilmaril@205 | 37 |
void XSLTProc::setInputFile (const QString &s) |
insilmaril@205 | 38 |
{ |
insilmaril@205 | 39 |
inputFile=s; |
insilmaril@205 | 40 |
} |
insilmaril@205 | 41 |
|
insilmaril@205 | 42 |
void XSLTProc::addOutput (const QString &s) |
insilmaril@205 | 43 |
{ |
insilmaril@205 | 44 |
dia->append (s); |
insilmaril@205 | 45 |
} |
insilmaril@205 | 46 |
|
insilmaril@205 | 47 |
void XSLTProc::process() |
insilmaril@205 | 48 |
{ |
insilmaril@205 | 49 |
ShowTextDialog dia; |
insilmaril@408 | 50 |
QStringList args; |
insilmaril@205 | 51 |
Process *xsltProc=new Process (); |
insilmaril@205 | 52 |
|
insilmaril@205 | 53 |
QStringList::Iterator itk; |
insilmaril@205 | 54 |
QStringList::Iterator itv=stringParamVal.begin(); |
insilmaril@205 | 55 |
|
insilmaril@205 | 56 |
for ( itk = stringParamKey.begin(); itk != stringParamKey.end(); ++itk ) |
insilmaril@205 | 57 |
{ |
insilmaril@408 | 58 |
args << "--stringparam"; |
insilmaril@408 | 59 |
args << *itk; |
insilmaril@408 | 60 |
args << *itv; |
insilmaril@205 | 61 |
++itv; |
insilmaril@205 | 62 |
} |
insilmaril@205 | 63 |
|
insilmaril@408 | 64 |
args << "--output"; |
insilmaril@408 | 65 |
args << outputFile; |
insilmaril@408 | 66 |
args << xslFile; |
insilmaril@408 | 67 |
args << inputFile; |
insilmaril@430 | 68 |
QString com=xsltprocessor+" "+args.join(" "); |
insilmaril@431 | 69 |
cout <<com.ascii()<<endl; |
insilmaril@430 | 70 |
dia.append ("vym is executing: \n" + com ); |
insilmaril@408 | 71 |
xsltProc->start(xsltprocessor,args); |
insilmaril@408 | 72 |
if (!xsltProc->waitForStarted() ) |
insilmaril@205 | 73 |
{ |
insilmaril@205 | 74 |
QMessageBox::critical( 0, QObject::tr( "Critical Error" ), |
insilmaril@205 | 75 |
QObject::tr("Could not start %1").arg(xsltprocessor) ); |
insilmaril@205 | 76 |
} else |
insilmaril@205 | 77 |
{ |
insilmaril@430 | 78 |
if (!xsltProc->waitForFinished()) |
insilmaril@205 | 79 |
QMessageBox::critical( 0, QObject::tr( "Critical Error" ), |
insilmaril@205 | 80 |
QObject::tr("%1 didn't exit normally").arg(xsltprocessor) + |
insilmaril@205 | 81 |
xsltProc->getErrout() ); |
insilmaril@205 | 82 |
else |
insilmaril@205 | 83 |
if (xsltProc->exitStatus()>0) showOutput=true; |
insilmaril@205 | 84 |
|
insilmaril@205 | 85 |
} |
insilmaril@205 | 86 |
dia.append ("\n"); |
insilmaril@205 | 87 |
dia.append (xsltProc->getErrout()); |
insilmaril@205 | 88 |
dia.append (xsltProc->getStdout()); |
insilmaril@205 | 89 |
|
insilmaril@205 | 90 |
if (showOutput) dia.exec(); |
insilmaril@205 | 91 |
} |
insilmaril@205 | 92 |