SVN commit 925816 by tdfischer: FEATURE: systemmonitor dataengine now gives ranges, translated names, and translated units for all sensors M +29 -10 systemmonitor.cpp --- trunk/KDE/kdebase/workspace/plasma/dataengines/systemmonitor/systemmonitor.cpp #925815:925816 @@ -48,11 +48,13 @@ } bool SystemMonitorEngine::sourceRequestEvent(const QString &name) { + Q_UNUSED(name); return false; } bool SystemMonitorEngine::updateSourceEvent(const QString &sensorName) { KSGRD::SensorMgr->sendRequest( "localhost", sensorName, (KSGRD::SensorClient*)this, m_sensors.indexOf(sensorName)); + KSGRD::SensorMgr->sendRequest( "localhost", QString("%1?").arg(sensorName), (KSGRD::SensorClient*)this, -m_sensors.indexOf(sensorName)-1); return false; } @@ -66,22 +68,39 @@ while (it != sources.end()) { m_waitingFor++; QString sensorName = it.key(); - KSGRD::SensorMgr->sendRequest( "localhost", sensorName, (KSGRD::SensorClient*)this, -1); - ++it; + KSGRD::SensorMgr->sendRequest( "localhost", sensorName, (KSGRD::SensorClient*)this, -1); + ++it; } } void SystemMonitorEngine::answerReceived( int id, const QList&answer ) { + if (id<-1) { + QStringList newSensorInfo = QString::fromUtf8(answer[0]).split('\t'); + QString sensorName = newSensorInfo[0]; + QString min = newSensorInfo[1]; + QString max = newSensorInfo[2]; + QString unit = newSensorInfo[3]; + DataEngine::SourceDict sources = containerDict(); + DataEngine::SourceDict::const_iterator it = sources.constFind(m_sensors.value(-id-1)); + if (it != sources.constEnd()) { + it.value()->setData("name", sensorName); + it.value()->setData("min", min); + it.value()->setData("max", max); + it.value()->setData("units", unit); + } + return; + } if(id==-1) { QStringList sensors; - foreach(const QByteArray &sens, answer) { - QStringList newSensorInfo = QString::fromUtf8(sens).split('\t'); - QString newSensor = newSensorInfo[0]; - sensors.append(newSensor); - setData(newSensor, "value", QVariant()); - } - m_sensors = sensors; - return; + foreach(const QByteArray &sens, answer) { + QStringList newSensorInfo = QString::fromUtf8(sens).split('\t'); + QString newSensor = newSensorInfo[0]; + sensors.append(newSensor); + setData(newSensor, "value", QVariant()); + setData(newSensor, "type", newSensorInfo[1]); + } + m_sensors = sensors; + return; } m_waitingFor--; QString reply;