diff --git a/package.nw/gt_bandactivity.html b/package.nw/gt_bandactivity.html
index 286ab260..5776978f 100644
--- a/package.nw/gt_bandactivity.html
+++ b/package.nw/gt_bandactivity.html
@@ -38,6 +38,7 @@ document.body.addEventListener('contextmenu', function(ev) {
});
+
diff --git a/package.nw/gt_chat.html b/package.nw/gt_chat.html
index 3ea48790..558aadfe 100644
--- a/package.nw/gt_chat.html
+++ b/package.nw/gt_chat.html
@@ -106,6 +106,7 @@ tr:hover td{ box-shadow: inset 0px 11px 6px -8px #888,
+
diff --git a/package.nw/gt_conditions.html b/package.nw/gt_conditions.html
index 1c6ea056..92984347 100644
--- a/package.nw/gt_conditions.html
+++ b/package.nw/gt_conditions.html
@@ -128,6 +128,7 @@ function onMyKeyDown(event)
window.opener.onMyKeyDown(event);
}
+
diff --git a/package.nw/gt_lookup.html b/package.nw/gt_lookup.html
index 4a4228b1..c088dc0d 100644
--- a/package.nw/gt_lookup.html
+++ b/package.nw/gt_lookup.html
@@ -5,6 +5,7 @@
GridTracker Callsign Lookup
+
diff --git a/package.nw/gt_popup.html b/package.nw/gt_popup.html
index f5ed6e96..e237f60f 100644
--- a/package.nw/gt_popup.html
+++ b/package.nw/gt_popup.html
@@ -56,6 +56,7 @@ document.oncontextmenu = function() {
}
+
diff --git a/package.nw/gt_roster.html b/package.nw/gt_roster.html
index 820de2b1..ad9964d0 100644
--- a/package.nw/gt_roster.html
+++ b/package.nw/gt_roster.html
@@ -7,6 +7,7 @@
+
@@ -47,7 +48,7 @@
New
New+Unconfirmed
All Traffic
-
All Traffic (Only Hits)
+
All Traffic/Only Wanted
diff --git a/package.nw/gt_stats.html b/package.nw/gt_stats.html
index 904b2ec1..272d9ab0 100644
--- a/package.nw/gt_stats.html
+++ b/package.nw/gt_stats.html
@@ -6,6 +6,7 @@
+
diff --git a/package.nw/gt_update.html b/package.nw/gt_update.html
index b612fa6c..e7c5214e 100644
--- a/package.nw/gt_update.html
+++ b/package.nw/gt_update.html
@@ -1,5 +1,5 @@
-
+
This is a bug fix and look-and-feel update.
@@ -14,24 +14,30 @@ Here is a link to our Discord server.
Fixes:
- QSO Log Event:
- When a QSO was completed in WSJT-X:
- the map was not updating with the new QSO data
- fixed again
+ Right-click on empty grid flickering
- Lookups:
- Open lookup window on transmit working properly when enabled
- fixed again
-
- Close Lookup window after QSO working correctly
-
- US Callsign Database:
- truncation of incomplete loads due to program restart, revisted
-
- 630m band properly recognized and added to "Band Activity Graph"
-
Update:
- "All Grid Overlay" hotkey "B" has a new panel button
+ Call Roster:
+ Band and Mode columns added to the right-click menu
+ when enabled columns remain sticky
+ when not enabled columns appear automatically as needed
+
+ US Counties:
+ Counties are "best guess" based on the zipcode of the station
+ the roster will rotate in unworked then unconfirmed counties as needed
+ until I can get a database of US Callsigns with county info
+
+ Window(s):
+ For "Energy Star" complaint monitors that shutdown to save power
+ position of window(s) restored on return of display
+ does not work if you close GridTracker when a display is off
+
+ Lookups:
+ Added "DXCC" worked/confirmed status by band below last "QSO" date
+
+ Lookup and Chat windows now scale too!
+ ctrl-minus / ctrl-plus / reset with ctrl-zero
+
@@ -48,7 +54,7 @@ Update:
-Thank you for reading the entire update! limbo-fish
+Thank you for reading the entire update!
@@ -56,6 +62,14 @@ Thank you for reading the entire update! limbo-fish
+
+
+
+
+
+
+
+crab-pot
diff --git a/package.nw/img/energy-star.svg b/package.nw/img/energy-star.svg
new file mode 100644
index 00000000..503be8a5
--- /dev/null
+++ b/package.nw/img/energy-star.svg
@@ -0,0 +1,2 @@
+
+
diff --git a/package.nw/lib/callsigns.js b/package.nw/lib/callsigns.js
index bdfa1c50..5d63ee4d 100644
--- a/package.nw/lib/callsigns.js
+++ b/package.nw/lib/callsigns.js
@@ -705,6 +705,8 @@ function lookupUsCallsign( object , writeState = false)
cntyString = g_countyData[counties[county]].geo["properties"]["st"]+","+ g_countyData[counties[county]].geo["properties"]["n"].toUpperCase();
if ( !(cntyString in g_tracker.worked.cnty) )
break;
+ if ( !(cntyString in g_tracker.confirmed.cnty) )
+ break;
}
object.cnty = cntyString;
}
diff --git a/package.nw/lib/gt.js b/package.nw/lib/gt.js
index 43a8e866..c8c65195 100644
--- a/package.nw/lib/gt.js
+++ b/package.nw/lib/gt.js
@@ -1,7 +1,7 @@
// GridTracker ©2020 N0TTL
var gtComment1 = "GridTracker is not open source, you may not change, modify or 'borrow' code for your needs that is redistributed in any form without first asking and receiving permission from N0TTL *and* N2VFL";
var gtComment2 = "Third party libraries and functions used are seperated to third-party.js or their respective lib .js files, the GT close-source directive does not apply to these files of course";
-var gtVersion = 1200831;
+var gtVersion = 1200903;
var gtBeta = "";
var g_startVersion = 0;
@@ -294,6 +294,7 @@ function saveAndCloseApp()
if ( g_statsWindowHandle ) g_statsWindowHandle.close(true);
if ( g_lookupWindowHandle ) g_lookupWindowHandle.close(true);
if ( g_baWindowHandle ) g_baWindowHandle.close(true);
+ nw.App.closeAllWindows();
}
catch (e) {
console.log(e);
@@ -3967,8 +3968,13 @@ function dimGridsquare() {
function updateCountStats() {
- callsignCount.innerHTML = Object.keys(g_liveCallsigns).length;
-
+ var count = Object.keys(g_liveCallsigns).length;
+
+ if ( myDEcall in g_liveCallsigns )
+ count--;
+
+ callsignCount.innerHTML = count;
+
qsoCount.innerHTML = g_QSOcount;
qslCount.innerHTML = g_QSLcount;
@@ -4002,7 +4008,7 @@ function clearGrids() {
g_liveGrids = {};
- updateCountStats();
+
}
function clearQsoGrids() {
@@ -4085,7 +4091,7 @@ function clearCalls() {
g_liveCallsigns = {};
g_dxccCount = {};
redrawGrids();
- updateCountStats();
+
}
function clearLive() {
@@ -4105,7 +4111,7 @@ function clearLive() {
clearTempGrids();
setHomeGridsquare();
redrawGrids();
- updateCountStats();
+
updateRosterWorked();
goProcessRoster();
}
@@ -4124,7 +4130,7 @@ function clearAll() {
redrawGrids();
- updateCountStats();
+
g_callRoster = {};
updateRosterWorked();
goProcessRoster();
@@ -4151,11 +4157,11 @@ function clearAndLoadQSOs()
g_QSOcount = 0;
setTrophyOverlay(g_currentOverlay);
redrawGrids();
- updateCountStats();
+
updateLogbook();
updateRosterWorked();
goProcessRoster();
- updateCountStats();
+
startupAdifLoadCheck();
}
@@ -4167,7 +4173,7 @@ function clearQSOs() {
g_QSOcount = 0;
setTrophyOverlay(g_currentOverlay);
redrawGrids();
- updateCountStats();
+
updateLogbook();
updateRosterWorked();
goProcessRoster();
@@ -4798,7 +4804,7 @@ function initMap() {
});
- mapDiv.addEventListener('mouseout', mapLoseFocus, false);
+ //mapDiv.addEventListener('mouseout', mapLoseFocus, false);
mapDiv.addEventListener('mouseleave', mapLoseFocus, false);
g_map.on('pointerdown', function (event) {
@@ -11171,6 +11177,11 @@ function loadAdifSettings()
}
function startupVersionInit() {
+
+ document.body.addEventListener('contextmenu', function(ev) {
+ ev.preventDefault();
+ });
+
imSureCheck.checked = false;
stopAskingCheckbox.checked = g_appSettings.stopAskingVersion;
if (stopAskingCheckbox.checked == false) {
@@ -11234,8 +11245,6 @@ function startupEventsAndTimers() {
document.addEventListener('keydown', onMyKeyDown, true);
document.addEventListener('keyup', onMyKeyUp, false);
- mapDiv.addEventListener('mouseleave', mapLoseFocus, false);
-
displayTimeInterval = setInterval(displayTime, 1000);
}
@@ -12606,6 +12615,7 @@ function searchLogForCallsign( call )
var conf = {};
var lastTime = 0;
var lastRow = null;
+ var dxcc = list[0].dxcc;
for ( row in list )
{
@@ -12652,7 +12662,20 @@ function searchLogForCallsign( call )
worker += "";
}
- worker += "
";
+ worker += "
"+ g_dxccToAltName[dxcc] + " (" + g_worldGeoData[g_dxccToGeoData[dxcc]].pp +") ";
+ for ( var band in g_colorBands )
+ {
+ if ( String(dxcc) + g_colorBands[band] in g_tracker.worked.dxcc )
+ {
+ var strike = "";
+ if ( String(dxcc) + g_colorBands[band] in g_tracker.confirmed.dxcc )
+ strike = "text-decoration: line-through;";
+ worker += "" + g_colorBands[band] + "
" ;
+ }
+
+ }
+
+ worker += " ";
setLookupDiv("lookupLocalDiv", worker);
}
@@ -13420,8 +13443,9 @@ window.addEventListener("load", function(){
});
});
-process.on('uncaughtException', function (e) {
- console.error('uncaughtException:', e);
- console.error(e.stack);
+var g_process = require('process');
+
+g_process.on('uncaughtException', function (e) {
});
+
diff --git a/package.nw/lib/roster.js b/package.nw/lib/roster.js
index 59806ea6..64241b8f 100644
--- a/package.nw/lib/roster.js
+++ b/package.nw/lib/roster.js
@@ -99,6 +99,8 @@ var g_defaultSettings =
"huntOAMS":false
},
"columns":{
+ "Band": false,
+ "Mode" : false,
"Calling":true,
"Msg":false,
"DXCC":true,
@@ -125,7 +127,8 @@ var g_defaultSettings =
"reference":0,
"controls":true,
"compact": false,
- "fontSize":12,
+ "screenScale":12,
+ "screenScale":0.0,
"settingProfiles":false,
"lastSortIndex":6,
"lastSortReverse":1
@@ -1279,8 +1282,8 @@ function viewRoster()
}
- var showBands = (Object.keys(bands).length > 1?true:false);
- var showModes = (Object.keys(modes).length > 1?true:false);
+ var showBands = (Object.keys(bands).length > 1?true:false)||g_rosterSettings.columns.Band;
+ var showModes = (Object.keys(modes).length > 1?true:false)||g_rosterSettings.columns.Mode;
@@ -2598,45 +2601,30 @@ function openIgnoreEdit()
}
-function setFontSize()
+function setScreenScale()
{
- if ( g_styleFont )
- {
- g_styleFont.parentNode.removeChild(g_styleFont);
- g_styleFont = null;
- }
- g_styleFont = document.createElement('style');
- g_styleFont.innerHTML = "table, th, td, select, .compact {font-size: "+g_rosterSettings.fontSize+"px;}";
- document.body.appendChild(g_styleFont);
- resize();
+ nw.Window.get().zoomLevel = g_rosterSettings.screenScale;
}
function reduceFont()
{
- if ( g_rosterSettings.fontSize > 10 )
- {
- g_rosterSettings.fontSize--;
- writeRosterSettings();
- setFontSize();
- }
+ g_rosterSettings.screenScale-=0.1;
+ writeRosterSettings();
+ setScreenScale();
}
function increaseFont()
{
- if ( g_rosterSettings.fontSize < 50 )
- {
- g_rosterSettings.fontSize++;
- writeRosterSettings();
- setFontSize();
- }
+ g_rosterSettings.screenScale+= 0.1;
+ writeRosterSettings();
+ setScreenScale();
}
function resetFont()
{
-
- g_rosterSettings.fontSize = g_defaultSettings.fontSize;
+ g_rosterSettings.screenScale = g_defaultSettings.screenScale;
writeRosterSettings();
- setFontSize();
+ setScreenScale();
}
function onMyKeyDown(event)
@@ -3209,7 +3197,7 @@ function init()
g_timerInterval = setInterval(realtimeRoster,1000);
updateInstances();
- setFontSize();
+ setScreenScale();
}
@@ -4300,4 +4288,10 @@ function doubleCompile(award, firstLevel)
}
return singleCompile(award,firstLevel);
-}
\ No newline at end of file
+}
+
+var g_process = require('process');
+
+g_process.on('uncaughtException', function (e) {
+ console.error(e.stack);
+});
diff --git a/package.nw/lib/screens.js b/package.nw/lib/screens.js
new file mode 100644
index 00000000..25d793a4
--- /dev/null
+++ b/package.nw/lib/screens.js
@@ -0,0 +1,89 @@
+
+nw.Screen.Init();
+
+var g_screenLost = false;
+var g_windowInfo = {};
+var g_initialScreenCount = nw.Screen.screens.length;
+
+function setWindowInfo()
+{
+ // if we've lost a screen, stop saving our info
+ if ( g_screenLost )
+ return;
+ var win = nw.Window.get();
+ var windowInfo = {};
+ windowInfo.x = win.x;
+ windowInfo.y = win.y;
+ windowInfo.width = win.width;
+ windowInfo.height = win.height;
+ g_windowInfo = windowInfo;
+
+}
+
+function clearAllScreenTimers()
+{
+ if ( g_windowMoveTimer != null )
+ {
+ clearTimeout(g_windowMoveTimer);
+ g_windowMoveTimer = null;
+ }
+ if ( g_windowResizeTimer != null )
+ {
+ clearTimeout(g_windowResizeTimer);
+ g_windowResizeTimer = null;
+ }
+}
+
+
+var screenCB = {
+
+ onDisplayAdded: function(screen) {
+ clearAllScreenTimers();
+ if ( g_screenLost == true && g_initialScreenCount == nw.Screen.screens.length)
+ {
+ // Lets restore the position now
+ var win = nw.Window.get();
+ win.x = g_windowInfo.x;
+ win.y = g_windowInfo.y;
+ win.width = g_windowInfo.width;
+ win.height = g_windowInfo.height;
+ g_screenLost = false;
+ }
+ },
+
+ onDisplayRemoved: function(screen) {
+ clearAllScreenTimers();
+ if ( g_initialScreenCount != nw.Screen.screens.length )
+ {
+ g_screenLost = true;
+ }
+ }
+};
+
+// listen to screen events
+nw.Screen.on('displayAdded', screenCB.onDisplayAdded);
+nw.Screen.on('displayRemoved', screenCB.onDisplayRemoved);
+
+nw.Window.get().on('loaded', function () {
+ g_initialScreenCount = nw.Screen.screens.length;
+ setWindowInfo();
+ });
+
+var g_windowMoveTimer = null;
+nw.Window.get().on('move', function (x,y) {
+ if ( g_windowMoveTimer != null )
+ {
+ clearTimeout(g_windowMoveTimer);
+ }
+ g_windowMoveTimer = setTimeout(setWindowInfo,1000);
+ });
+
+var g_windowResizeTimer = null;
+nw.Window.get().on('resize', function (w,h) {
+ if ( g_windowResizeTimer != null )
+ {
+ clearTimeout(g_windowResizeTimer);
+ }
+ g_windowResizeTimer = setTimeout(setWindowInfo,1000);
+ });
+
\ No newline at end of file