diff --git a/package.nw/gt_roster.html b/package.nw/gt_roster.html index 5eacc40..0d086d5 100644 --- a/package.nw/gt_roster.html +++ b/package.nw/gt_roster.html @@ -519,6 +519,121 @@
+
+ + + + + + + + + + + +
Screen Filters
+ +
+ + + + + + + + + + +
Brightness
+ +
+
+
+ + + + + + + + + + +
Contrast
+ +
+
+
+ + + + + + + + + + +
Saturate
+ +
+
+
+
+ + + + + + + + + + +
Invert
+ +
+
+
+ + + + + + + + + + +
Sepia
+ +
+
+
+ + + + + + + + + + +
Hue Rotate
+ +
+
+
+
+
Reset Filters (Ctrl-R)
+ + +
+
+ + +
diff --git a/package.nw/lib/roster.js b/package.nw/lib/roster.js index c7d715f..06b02a9 100644 --- a/package.nw/lib/roster.js +++ b/package.nw/lib/roster.js @@ -145,10 +145,10 @@ var g_defaultSettings = { brightness: 100, contrast: 100, saturate: 100, - hueRotate: 0, invert: 0, + grayscale: 0, sepia: 0, - grayscale: 0 + huerotate: 0 }, reference: 0, controls: true, @@ -168,10 +168,9 @@ g_def_displayFilters = { brightness: 100, contrast: 100, saturate: 100, - hueRotate: 0, invert: 0, sepia: 0, - grayscale: 0 + huerotate: 0 }; const LOGBOOK_LIVE_BAND_LIVE_MODE = "0"; @@ -1062,7 +1061,7 @@ function setVisual() if (window.opener.g_callsignLookups.eqslUseEnable == true) { - useseQSLDiv.style.display = ""; + useseQSLDiv.style.display = ""; } else { @@ -1195,9 +1194,58 @@ function valuesChanged() window.opener.goProcessRoster(); } +function loadFilterSettings() +{ + var filters = ""; + for (const filter in g_rosterSettings.displayFilters) + { + var slider = document.getElementById("filter" + filter + "Slider"); + + if (slider) + { + slider.value = g_rosterSettings.displayFilters[filter]; + var td = document.getElementById("filter" + filter + "Td"); + if (filter != "huerotate") + { + td.innerHTML = slider.value + "%"; + filters += filter + "(" + slider.value + "%) "; + } + else + { + td.innerHTML = slider.value + " deg"; + filters += "hue-rotate(" + slider.value + "deg) "; + } + } + } + document.documentElement.style.filter = filters; +} + function filtersChanged() { + for (const filter in g_rosterSettings.displayFilters) + { + var slider = document.getElementById("filter" + filter + "Slider"); + if (slider) + { + g_rosterSettings.displayFilters[filter] = slider.value; + } + else + { + // no longer a filter, get rid of it + delete g_rosterSettings.displayFilters[filter]; + } + } + loadFilterSettings(); +} + +function resetFilters() +{ + for (const filter in g_rosterSettings.displayFilters) + { + g_rosterSettings.displayFilters[filter] = g_def_displayFilters[filter]; + } + loadFilterSettings(); } function getBuffer(file_url, callback, flag, mode, port, cookie) @@ -1617,6 +1665,10 @@ function onMyKeyDown(event) { openSettings(); } + else if (event.code == "KeyR" && event.ctrlKey == true) + { + resetFilters(); + } else { window.opener.onMyKeyDown(event); @@ -1665,6 +1717,7 @@ function init() ); } loadSettings(); + loadFilterSettings(); updateInstances(); // callback to addControls();