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 |
+
+
+
+
+
+
+
+
+
+
+
+
+ |
+
+
+
+
+ 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();