diff --git a/src/octoprint/settings.py b/src/octoprint/settings.py index 6b29ef12..4b5635ea 100644 --- a/src/octoprint/settings.py +++ b/src/octoprint/settings.py @@ -207,6 +207,7 @@ default_settings = { "color": "default", "colorTransparent": False, "defaultLanguage": "_default", + "showFahrenheitAlso": False, "components": { "order": { "navbar": ["settings", "systemmenu", "login"], diff --git a/src/octoprint/static/js/app/helpers.js b/src/octoprint/static/js/app/helpers.js index 9c47abbc..f691acb4 100644 --- a/src/octoprint/static/js/app/helpers.js +++ b/src/octoprint/static/js/app/helpers.js @@ -411,9 +411,13 @@ function cleanTemperature(temp) { return temp; } -function formatTemperature(temp) { +function formatTemperature(temp, showF) { if (!temp || temp < 10) return gettext("off"); - return _.sprintf("%.1f°C (%.1f°F)", temp, temp * 9 / 5 + 32); + if (showF) { + return _.sprintf("%.1f°C (%.1f°F)", temp, temp * 9 / 5 + 32); + } else { + return _.sprintf("%.1f°C", temp); + } } function pnotifyAdditionalInfo(inner) { diff --git a/src/octoprint/static/js/app/viewmodels/settings.js b/src/octoprint/static/js/app/viewmodels/settings.js index 3d6f63ae..63384bca 100644 --- a/src/octoprint/static/js/app/viewmodels/settings.js +++ b/src/octoprint/static/js/app/viewmodels/settings.js @@ -100,6 +100,7 @@ $(function() { self.appearance_color = ko.observable(undefined); self.appearance_colorTransparent = ko.observable(); self.appearance_defaultLanguage = ko.observable(); + self.appearance_showFahrenheitAlso = ko.observable(undefined); self.printer_defaultExtrusionLength = ko.observable(undefined); diff --git a/src/octoprint/static/js/app/viewmodels/temperature.js b/src/octoprint/static/js/app/viewmodels/temperature.js index 9a4ea651..17cec93f 100644 --- a/src/octoprint/static/js/app/viewmodels/temperature.js +++ b/src/octoprint/static/js/app/viewmodels/temperature.js @@ -248,8 +248,9 @@ $(function() { targets = self.temperatures[type].target; } - var actualTemp = actuals && actuals.length ? formatTemperature(actuals[actuals.length - 1][1]) : "-"; - var targetTemp = targets && targets.length ? formatTemperature(targets[targets.length - 1][1]) : "-"; + var showFahrenheit = self.settingsViewModel.settings.appearance.showFahrenheitAlso(); + var actualTemp = actuals && actuals.length ? formatTemperature(actuals[actuals.length - 1][1], showFahrenheit) : "-"; + var targetTemp = targets && targets.length ? formatTemperature(targets[targets.length - 1][1], showFahrenheit) : "-"; data.push({ label: gettext("Actual") + " " + heaterOptions[type].name + ": " + actualTemp, diff --git a/src/octoprint/templates/dialogs/settings/appearance.jinja2 b/src/octoprint/templates/dialogs/settings/appearance.jinja2 index 48f7d60b..ea7111ca 100644 --- a/src/octoprint/templates/dialogs/settings/appearance.jinja2 +++ b/src/octoprint/templates/dialogs/settings/appearance.jinja2 @@ -36,6 +36,13 @@ {{ _('Changes to the default interface language will only become active after a reload of the page and only be active if not overridden by the user''s language settings.') }} +