waterfall config fine-adjustments
* hide the waterfall colors input when pre-defined color scheme is selected * skip unparseable lines on custom color input * fallback to black and white if custom color config is unusable * always use the waterfall classes when sending changes to the client
This commit is contained in:
parent
9aebeb51f8
commit
691d88f841
11
htdocs/lib/settings/WaterfallDropdown.js
Normal file
11
htdocs/lib/settings/WaterfallDropdown.js
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
$.fn.waterfallDropdown = function(){
|
||||||
|
this.each(function(){
|
||||||
|
var $select = $(this);
|
||||||
|
var setVisibility = function() {
|
||||||
|
var show = $select.val() === 'CUSTOM';
|
||||||
|
$('#waterfall_colors').parents('.form-group')[show ? 'show' : 'hide']();
|
||||||
|
}
|
||||||
|
$select.on('change', setVisibility);
|
||||||
|
setVisibility();
|
||||||
|
})
|
||||||
|
}
|
@ -4,4 +4,5 @@ $(function(){
|
|||||||
$('.imageupload').imageUpload();
|
$('.imageupload').imageUpload();
|
||||||
$('.bookmarks').bookmarktable();
|
$('.bookmarks').bookmarktable();
|
||||||
$('.wsjt-decoding-depths').wsjtDecodingDepthsInput();
|
$('.wsjt-decoding-depths').wsjtDecodingDepthsInput();
|
||||||
|
$('#waterfall_scheme').waterfallDropdown();
|
||||||
});
|
});
|
@ -207,8 +207,8 @@ class OpenWebRxReceiverClient(OpenWebRxClient, SdrSourceEventClient):
|
|||||||
def writeConfig(changes):
|
def writeConfig(changes):
|
||||||
# TODO it would be nicer to have all options available and switchable in the client
|
# TODO it would be nicer to have all options available and switchable in the client
|
||||||
# this restores the existing functionality for now, but there is lots of potential
|
# this restores the existing functionality for now, but there is lots of potential
|
||||||
if "waterfall_scheme" in changes:
|
if "waterfall_scheme" in changes or "waterfall_colors" in changes:
|
||||||
scheme = WaterfallOptions(changes["waterfall_scheme"]).instantiate()
|
scheme = WaterfallOptions(globalConfig["waterfall_scheme"]).instantiate()
|
||||||
changes["waterfall_colors"] = scheme.getColors()
|
changes["waterfall_colors"] = scheme.getColors()
|
||||||
self.write_config(changes)
|
self.write_config(changes)
|
||||||
|
|
||||||
|
@ -151,6 +151,7 @@ class CompiledAssetsController(GzipMixin, ModificationAwareController):
|
|||||||
"lib/settings/ImageUpload.js",
|
"lib/settings/ImageUpload.js",
|
||||||
"lib/settings/BookmarkTable.js",
|
"lib/settings/BookmarkTable.js",
|
||||||
"lib/settings/WsjtDecodingDepthsInput.js",
|
"lib/settings/WsjtDecodingDepthsInput.js",
|
||||||
|
"lib/settings/WaterfallDropdown.js",
|
||||||
"settings.js",
|
"settings.js",
|
||||||
],
|
],
|
||||||
}
|
}
|
||||||
|
@ -76,10 +76,14 @@ class WaterfallColorsConverter(Converter):
|
|||||||
|
|
||||||
def convert_from_form(self, value):
|
def convert_from_form(self, value):
|
||||||
def parseString(s):
|
def parseString(s):
|
||||||
|
try:
|
||||||
if s.startswith("#"):
|
if s.startswith("#"):
|
||||||
return int(s[1:], 16)
|
return int(s[1:], 16)
|
||||||
# int() with base 0 can accept "0x" prefixed hex strings, or int numbers
|
# int() with base 0 can accept "0x" prefixed hex strings, or int numbers
|
||||||
return int(s, 0)
|
return int(s, 0)
|
||||||
|
except ValueError:
|
||||||
|
return None
|
||||||
|
|
||||||
# \r\n or \n? this should work with both.
|
# \r\n or \n? this should work with both.
|
||||||
return [parseString(v.strip("\r ")) for v in value.split("\n")]
|
values = [parseString(v.strip("\r ")) for v in value.split("\n")]
|
||||||
|
return [v for v in values if v is not None]
|
||||||
|
@ -287,7 +287,12 @@ class Ha7ilmWaterfall(Waterfall):
|
|||||||
class CustomWaterfall(Waterfall):
|
class CustomWaterfall(Waterfall):
|
||||||
def __init__(self):
|
def __init__(self):
|
||||||
config = Config.get()
|
config = Config.get()
|
||||||
super().__init__(config["waterfall_colors"])
|
if "waterfall_colors" in config and config["waterfall_colors"]:
|
||||||
|
colors = config["waterfall_colors"]
|
||||||
|
else:
|
||||||
|
# fallback: black and white
|
||||||
|
colors = [0x000000, 0xffffff]
|
||||||
|
super().__init__(colors)
|
||||||
|
|
||||||
|
|
||||||
class WaterfallOptions(DropdownEnum):
|
class WaterfallOptions(DropdownEnum):
|
||||||
|
Loading…
Reference in New Issue
Block a user