10 #include "programsensor.h" 12 #include <tqstringlist.h> 13 ProgramSensor::ProgramSensor(
const TQString &progName,
int interval, TQString encoding )
16 if( !encoding.isEmpty())
18 codec = TQTextCodec::codecForName( encoding.ascii() );
20 codec = TQTextCodec::codecForLocale();
23 codec = TQTextCodec::codecForLocale();
26 programName = progName;
28 connect(&ksp, TQ_SIGNAL(receivedStdout(TDEProcess *,
char *,
int )),
29 this,TQ_SLOT(receivedStdout(TDEProcess *,
char *,
int )));
30 connect(&ksp, TQ_SIGNAL(processExited(TDEProcess *)),
31 this,TQ_SLOT(processExited( TDEProcess * )));
34 ProgramSensor::~ProgramSensor()
37 void ProgramSensor::receivedStdout(TDEProcess *,
char *buffer,
int len)
40 sensorResult += codec->toUnicode( TQCString(buffer) );
43 void ProgramSensor::processExited(TDEProcess *)
48 TQValueVector<TQString> lines;
49 TQStringList stringList = TQStringList::split(
'\n',sensorResult,
true);
50 TQStringList::ConstIterator end( stringList.end() );
51 for ( TQStringList::ConstIterator it = stringList.begin(); it != end; ++it )
56 int count = (int) lines.size();
57 TQObjectListIt it( *objList );
61 meter = sp->getMeter();
64 lineNbr = (sp->getParam(
"LINE")).toInt();
65 if ( lineNbr >= 1 && lineNbr <= (
int) count )
67 meter->setValue(lines[lineNbr-1]);
69 if ( -lineNbr >= 1 && -lineNbr <= (
int) count )
71 meter->setValue(lines[count+lineNbr]);
75 meter->setValue(sensorResult);
84 void ProgramSensor::update()
90 ksp.start( TDEProcIO::NotifyOnExit,TDEProcIO::Stdout);
93 #include "programsensor.moc"