[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    KDE/kdebase/workspace/plasma/dataengines/weather/ions
From:       Shawn Starr <shawn.starr () rogers ! com>
Date:       2007-10-15 2:34:36
Message-ID: 1192415676.538369.20486.nullmailer () svn ! kde ! org
[Download RAW message or body]

SVN commit 725236 by spstarr:

Return units also for: temperature, dewpoint, visibility and pressure. Add some logic \
not to set the units if the base value is N/A

 M  +34 -8     ion_noaa.cpp  
 M  +1 -1      ion_noaa.h  


--- trunk/KDE/kdebase/workspace/plasma/dataengines/weather/ions/ion_noaa.cpp \
#725235:725236 @@ -383,6 +383,7 @@
     setData(source, "Current Conditions", this->condition(source));
     dataFields = this->temperature(source);
     setData(source, "Temperature", dataFields["temperature"]);
+    setData(source, "Temperature Unit", dataFields["temperatureUnit"]);
 
     // Do we have a comfort temperature? if so display it
     if (dataFields["comfortTemperature"] != "N/A") {
@@ -395,18 +396,36 @@
      }
 
      setData(source, "Dewpoint", this->dewpoint(source));
-     setData(source, "Pressure", this->pressure(source));
+     setData(source, "Dewpoint Unit", dataFields["temperatureUnit"]);
+ 
+     dataFields = this->pressure(source);
+     setData(source, "Pressure", dataFields["pressure"]);
+
+     if (dataFields["pressure"] != "N/A") {
+         setData(source, "Pressure Unit", dataFields["pressureUnit"]);
+     }
+
      dataFields = this->visibility(source);
      setData(source, "Visibility", dataFields["visibility"]);
-     setData(source, "Visibility Unit", dataFields["visibilityUnit"]);
 
+     if (dataFields["visibility"] != "N/A") {
+         setData(source, "Visibility Unit", dataFields["visibilityUnit"]);
+     }
+
      setData(source, "Humidity", this->humidity(source));
 
      dataFields = this->wind(source);
      setData(source, "Wind Speed", dataFields["windSpeed"]);
-     setData(source, "Wind Speed Unit", dataFields["windUnit"]);
+
+     if (dataFields["windSpeed"] != "Calm") {
+         setData(source, "Wind Speed Unit", dataFields["windUnit"]);
+     }
+
      setData(source, "Wind Gust", dataFields["windGust"]);
-     setData(source, "Wind Gust Unit", dataFields["windGustUnit"]);
+     if (dataFields["windGust"] != "N/A") {
+         setData(source, "Wind Gust Unit", dataFields["windGustUnit"]);
+     }
+
      setData(source, "Wind Direction", dataFields["windDirection"]);
 
      setData(source, "Credit", "NOAA National Weather Service");
@@ -477,8 +496,10 @@
     QMap<QString, QString> temperatureInfo;
     if (d->m_useMetric) {
         temperatureInfo.insert("temperature", \
QString("%1").arg(d->m_weatherData[source].temperature_C)); +        \
temperatureInfo.insert("temperatureUnit", QString("%1C").arg(QChar(176)));  } else {
         temperatureInfo.insert("temperature", \
QString("%1").arg(d->m_weatherData[source].temperature_F)); +        \
temperatureInfo.insert("temperatureUnit", QString("%1F").arg(QChar(176)));  }
     temperatureInfo.insert("comfortTemperature", "N/A");
 
@@ -500,16 +521,21 @@
     return temperatureInfo;
 }
 
-QString NOAAIon::pressure(const QString& source)
+QMap<QString, QString> NOAAIon::pressure(const QString& source)
 {
+    QMap<QString, QString> pressureInfo;
     if (d->m_weatherData[source].pressure.isEmpty()) {
-        return QString("N/A");
+        pressureInfo.insert("pressure", "N/A");
+        return pressureInfo;
     } 
     if (d->m_useMetric) {
-        return QString("%1").arg(QString::number(d->m_formula.inchesToKilopascals(d->m_weatherData[source].pressure.toFloat()), \
'f', 1)); +        pressureInfo.insert("pressure", \
QString("%1").arg(QString::number(d->m_formula.inchesToKilopascals(d->m_weatherData[source].pressure.toFloat()), \
'f', 1))); +        pressureInfo.insert("pressureUnit", "kPa");
     } else {
-        return QString("%1").arg(d->m_weatherData[source].pressure);
+        pressureInfo.insert("pressure", \
QString("%1").arg(d->m_weatherData[source].pressure)); +        \
pressureInfo.insert("pressureUnit", "in");  }
+    return pressureInfo;
 }
 
 QMap<QString, QString> NOAAIon::wind(const QString& source)
--- trunk/KDE/kdebase/workspace/plasma/dataengines/weather/ions/ion_noaa.h \
#725235:725236 @@ -96,7 +96,7 @@
     QString dewpoint(const QString& source);
     QString humidity(const QString& source);
     QMap<QString, QString> visibility(const QString& source);
-    QString pressure(const QString& source);
+    QMap<QString, QString> pressure(const QString& source);
     QMap<QString, QString> wind(const QString& source);
 
     // Load and Parse the place XML listing


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic