diff --git a/src/extension.js b/src/extension.js index 9c37ee9..cdc17cb 100644 --- a/src/extension.js +++ b/src/extension.js @@ -63,7 +63,8 @@ const WEATHER_REFRESH_INTERVAL = 'refresh-interval'; // Keep enums in sync with GSettings schemas const WeatherUnits = { CELSIUS: 0, - FAHRENHEIT: 1 + FAHRENHEIT: 1, + KELVIN: 2 } const WeatherWindSpeedUnits = { @@ -478,7 +479,12 @@ WeatherMenuButton.prototype = { }, unit_to_unicode: function() { - return this._units == WeatherUnits.FAHRENHEIT ? '\u2109' : '\u2103'; + if(this._units == WeatherUnits.FAHRENHEIT) + return '\u2109'; + else if(this._units == WeatherUnits.KELVIN) + return 'K'; + else + return '\u2103'; }, get_weather_url: function() { @@ -704,6 +710,10 @@ WeatherMenuButton.prototype = { } }, + toKelvin: function(c) { + return String(Math.round(Number(c)+273.15)); + }, + parse_day: function(abr) { let yahoo_days = ['monday', 'tuesday', 'wednesday', 'thursday', 'friday', 'saturday', 'sunday']; for (var i = 0; i < yahoo_days.length; i++) { @@ -813,6 +823,12 @@ WeatherMenuButton.prototype = { let d = Math.floor((actualDate.getTime()-lastBuildDate.getTime())/86400000); let date_string = [_('Today'), _('Tomorrow')]; + if(this._units == WeatherUnits.KELVIN) + { + temperature = this.toKelvin(temperature); + chill = this.toKelvin(chill); + } + if(this._clockFormat == "24h") { sunrise = new Date("3 Mar 1999 "+sunrise); @@ -917,6 +933,12 @@ WeatherMenuButton.prototype = { let t_low = forecastData.low; let t_high = forecastData.high; + if(this._units == WeatherUnits.KELVIN) + { + t_low = this.toKelvin(t_low); + t_high = this.toKelvin(t_high); + } + let comment = forecastData.text; if (this._translate_condition) comment = this.get_weather_condition(code); diff --git a/src/org.gnome.shell.extensions.weather.gschema.xml.in b/src/org.gnome.shell.extensions.weather.gschema.xml.in index 58a0a1c..e341533 100644 --- a/src/org.gnome.shell.extensions.weather.gschema.xml.in +++ b/src/org.gnome.shell.extensions.weather.gschema.xml.in @@ -2,6 +2,7 @@ + diff --git a/src/weather-settings.js.in b/src/weather-settings.js.in index c5e8503..6f7f5ba 100644 --- a/src/weather-settings.js.in +++ b/src/weather-settings.js.in @@ -606,7 +606,7 @@ WeatherSetting.prototype = this.initConfigWidget(); this.addLabel(_("Temperature Unit")); - this.addComboBox(["°C","°F"],"units"); + this.addComboBox(["°C","°F","K"],"units"); this.addLabel(_("Wind Speed Unit")); this.addComboBox(["km/h","mph","m/s","knots"],"wind_speed_unit"); this.addLabel(_("Position in Panel"));