From 8c0c4918f0396b6dca7000b96e26a3fde0410ad2 Mon Sep 17 00:00:00 2001 From: Marat Fayzullin Date: Thu, 26 Oct 2023 20:34:53 -0400 Subject: [PATCH] Adding clean themes branch --- htdocs/index.html | 1 + htdocs/openwebrx.js | 20 ++++++++++++++++++++ owrx/config/defaults.py | 1 + owrx/connection.py | 1 + owrx/controllers/settings/general.py | 13 +++++++++++++ 5 files changed, 36 insertions(+) diff --git a/htdocs/index.html b/htdocs/index.html index 55941201..3df55809 100644 --- a/htdocs/index.html +++ b/htdocs/index.html @@ -35,6 +35,7 @@ + diff --git a/htdocs/openwebrx.js b/htdocs/openwebrx.js index ffe4c16f..632ece16 100644 --- a/htdocs/openwebrx.js +++ b/htdocs/openwebrx.js @@ -1141,6 +1141,10 @@ function on_ws_recv(evt) { Utils.setVesselUrl(config['vessel_url']); } + if ('ui_scheme' in config) { + set_ui_scheme(config['ui_scheme']); + } + break; case "secondary_config": var s = json['value']; @@ -2023,3 +2027,19 @@ function nr_changed() { } })); } + +function set_ui_scheme(theme) { + const themes = ['brown', 'red', 'green', 'khaki', 'blue', 'navy']; + var $panels = $('.openwebrx-panel'); + var $buttons = $('.openwebrx-button'); + + themes.forEach(function(theme) { + $panels.removeClass('openwebrx-panel-' + theme); + $buttons.removeClass('openwebrx-button-' + theme); + }); + + if (theme && (theme != '') && (theme != 'default')) { + $panels.addClass('openwebrx-panel-' + theme); + $buttons.addClass('openwebrx-button-' + theme); + } +} diff --git a/owrx/config/defaults.py b/owrx/config/defaults.py index f73aa95c..bc845d6f 100644 --- a/owrx/config/defaults.py +++ b/owrx/config/defaults.py @@ -153,6 +153,7 @@ defaultConfig = PropertyLayer( waterfall_auto_level_default_mode=False, waterfall_auto_min_range=50, key_locked=False, + ui_scheme="default", ui_opacity=100, ui_frame=False, ui_swap_wheel=False, diff --git a/owrx/connection.py b/owrx/connection.py index ce802bff..5de48b82 100644 --- a/owrx/connection.py +++ b/owrx/connection.py @@ -140,6 +140,7 @@ class OpenWebRxReceiverClient(OpenWebRxClient, SdrSourceEventClient): "fft_compression", "max_clients", "tuning_precision", + "ui_scheme", "ui_opacity", "ui_frame", "ui_swap_wheel", diff --git a/owrx/controllers/settings/general.py b/owrx/controllers/settings/general.py index 0400f75d..9193a7bf 100644 --- a/owrx/controllers/settings/general.py +++ b/owrx/controllers/settings/general.py @@ -184,6 +184,19 @@ class GeneralSettingsController(SettingsFormController): ), Section( "Display settings", + DropdownInput( + "ui_scheme", + "User interface color scheme", + options=[ + Option("default", "Default"), + Option("brown", "Brown"), + Option("red", "Red"), + Option("green", "Green"), + Option("khaki", "Khaki"), + Option("blue", "Blue"), + Option("navy", "Navy"), + ], + ), NumberInput( "ui_opacity", "User interface opacity",