The sent info template is no longer forced to uppercase when inserted into a QSO record. Thanks GØDVJ.
The Rcvd column in the log table may now be resized much larger (10x) than the previous constraint. Thanks GØDVJ.
The duplicate QSO test now runs on every keystroke in the call entry field and immediately colors all dupes in the partials list. The entered call is identified as a duplicate (or not) in the status line when you tab or space-bar out of the call entry field. Note that duplicate testing that requires information beyond call and radio state cannot succeed until the requisite information is supplied. For example, QSO parties typically allow QSOs with the same station in multiple counties, so the location field must be filled before SL can determine duplicate status.
Major bugfix: SkookumLogger was crashing when attempting to run on a computer with no network connection. The bug was introduced in 0.9.23; the UDP code was handling the case of no network by deliberately aborting. Many thanks GØDVJ for discovering the bug and providing Console log information.
The guesses file for RSGB Club Calls contains a mixture of CRLF and LF. The parser was separating lines by detecting LF; the extra CRs were retained at the ends of lines that had them, and became part of the club name. The consequence was empty lines in the Cabrillo file. Fixed; the guesses file parser now detects both types of line ends. Thanks GØDVJ.
SkookumLogger had a formatter attached to the rcvd column in the log table. That formatter was applied whenever a received exchange field in an existing QSO was edited. One consequence was that mixed-case club names were forced to uppercase in the RSGB Club Calls contest. Fixed, by removing the formatter. Thanks GØDVJ.
SkookumLogger assigns “000” as the default received serial number when the entry field is empty. The is-QSO-complete test for RSGB Club Calls was accepting this as valid; it is now rejected.
Assorted bug fixes and refinements for RSGB Club Calls. Thanks GØDVJ.
Cleaned up things on the Antenna menu to make them less specific to my own station. Show Great Circle Map open the window without any antenna pattern overlay when there is no active antenna controller. The window title shows your call and Maidenhead grid, to identify the center of the map. SkookumLogger remembers the window visibility across runs. Antenna selection commands are enabled only when there is an active antenna controller. The new Select Receive Antenna from QSO Information chooses one of my four beverages using the bearing shown in the QSO Information window, via a Green Heron Everyware antenna controller.
Completion in the club name field for the RSGB Club Calls contest was broken by “simplifications” made in the previous release. Thanks GØDVJ.
The Refuse to log incomplete QSOs feature was broken for the RSGB Club Calls contest for the case where the club name field contained one or more space characters. Thanks GØDVJ.
Insert In Activity Table now copies the received exchange from the Log data entry field(s) into the info field for the broadcast activity. This feature automatically picks up whatever pre-fill is available for a given call if you tap the space bar before invoking the Insert In Activity Table command. Thanks GØDVJ.
The Activity window context menu has a new item, Show Only Spotted By Me. This filters the table content to only activities added via the Insert In Activity Table command, and DX Cluster spots sent by you. The items on this menu choose mutually-exclusive filters. Select the checked item to turn off all filtering. Be patient; for technical reasons the table doesn’t update immediately when you change the filter. Thanks GØDVJ.
The name of the Log > Truncate command (introduced in 0.9.21) has been changed to Log > Reset.
SkookumLogger now uses the enhanced countries database by AD1C, named cty_wt.dat. That file has many, many specializations for cq zone, itu zone, lat/lon, and UT offset, based on either prefix (e.g., call area), or on exact call signs (e.g., AD1C). The QSO Information window displays this information for a given call (well, UT offset isn’t used by SkookumLogger). The additional data improves the location of the target dot on the antenna pattern map. Thanks AD1C!
Added QSO points computation for Stew Perry contest. Score does not include power-class multiplier.
The logging status line was displaying bogus ***MULTIPLIER*** information. Thanks GØDVJ.
The antenna pattern map (Antenna -> Beverages -> Show Map) now plots a red dot at the coordinates shown in the QSO Information window. The map is assumed to be an azimuthal equidistant projection centered on your location, commonly called a great-circle map. The radius of the map is assumed to equal earth’s circumference. Note that the red dot is only updated when the QSO Information window is open.
The default map is centered on my coordinates. I made it using GeoCart. To override the default, create a TIFF file named azimuthEquidistantMap.tif and place it in the SkookumLogger application support folder (~/Library/Application Support/SkookumLogger/).
The new Truncate command in the Log menu deletes all of the QSOs in the current log, resets the serial number to 1, and rebuilds the checksheet data structures. This feature is intended to make life simpler for those who set up a contest log before a contest, make some test QSOs, then want to start with a pristine log for the real event. Thanks W2RU.
SkookumLogger now uses UDP broadcasts on port 7373 to communicate internal activity announcements to all instances of SkookumLogger on a local network. An internal activity announcement is created by the Insert In Activity Table command in the Log menu, and results in the activity showing up in the Activity tables on all computers. The Source field for the activity is the content of the Call field of Me preferences for the computer originating the activity announcement. Thanks GØDVJ.
Relocated the downloaded Countries and SuperCheckPartial databases into the user’s Application Support directory. These files are preferred over the databases embedded in SkookumLogger. The net effect is that responsibility for updating the databases is transferred to the user instead of the application developer (me).
The Export to Numbers command in the File menu writes a log file in comma-separated-value (CSV) format that can be brought into a Numbers table (drag the file icon onto a table). QSOs are written in ascending chronological order. Only the currently-visible QSO fields in the SkookumLogger log table are output to the CSV file. Each QSO record in the file always includes a consecutively-numbered index as the last field, beginning with number 1. Export to Numbers is intended to support post-contest analysis and report generation by users, without over-burdening SkookumLogger. Thanks W2RU.
There is a new radio type “Two K3s” that manages two Elecraft K3s as a separate receiver/transmitter pair. Contact me if you have any interest in this configuration.
Repaired a bug that confused the CQ beacon timer when the beacon mode was turned off while playing a message. Thanks W2RU.
Editing the Login Call in DX Cluster preferences no longer requires a return key press to take effect. Thanks W2RU.
KL and KH6 are now marked appropriately in the Multipliers checksheet for the CQP in CA contest. Thanks K7GQ.
Accept Winkeyer version 20 or greater, to support (without testing) the new version 23 IC. Thanks W2RU.
Repaired numerous issues with the New York QSO Party in NY contest rules. Thanks W2RU.
Modifications and bug fixes for RSGB Club Calls contest. Thanks GØDVJ.
Activity tables no longer auto-scroll to center on radio frequency unless the table is sorted on the frequency column.
Activity table needed flags are now automatically updated when the radio mode changes. This affects contests where needed state depends on mode, as for most QSO parties. Ideally, activities would contain information about mode, but DX Clusters do not provide that data.
The serial number field behavior now conforms to Mac OS X standard behavior: when the field acquires keyboard focus, existing content is selected.
Modifications and bug fixes for RSGB Club Calls contest. Thanks GØDVJ.
Refined support for RSGB Club Calls contest. Includes architectural changes to support exchange-guessing based on user-supplied data. After this scheme is debugged for the Club Calls contest, I’ll document it and add it to other contests.
Hacked-in support for an RSGB-specific Cabrillo tag, CLUB-CATEGORY. Choose one of the “RSGB Club Calls …” items in the Overlay popup on the log settings sheet to generate the tag in your Cabrillo export.
Initial implementation of support for RSGB Club Calls contest. This release posted for testing of usability, and correctness of scoring and Cabrillo export.
Corrected errors in Cabrillo export for both sides in Scandinavian Activity Contest.
Command-double-click on a row in an Activity table sets the radio subreceiver frequency to the spot frequency, if the radio has a subreceiver. Command-return with focus on an Activity table entry has the same effect. The K3 module handles this function by setting VFO B (accounting for RIT offset), unless the radio is in split mode. A trial implementation is present for the FT2000 module; no other radio types support this feature as yet. Thanks, GØDVJ.
Repaired damage done to logic for determining country from callsigns by the previous release.
Also removed CT-vestigial “Define Run” command in the Radio menu; it’s not needed. Thanks GØDVJ.
Cache fonts and colors for Activity tables, to improve performance. Changes to the preferences for those items now require a restart to take effect.
Modified how often needed flags are updated in Activity tables to improve performance. Use the Log -> Update Activity Needed Flags menu item if you think the table is showing stale needed status.
Replaced DX Cluster and skimmer message sanity tests with exception handlers. That exposed a single reverse beacon net source (EA8CAC-#) that is filling the information field differently than all the others.
Added California QSO Party contest, for both in-California and outside-California participants. Supports basic stuff in the rules except 2m QSOs, 10-minute rule and similar esoterica. Does include the odd list of Canadian provinces, and the awkward rule requiring that in-CA participants must log the county code for in-CA QSOs, yet the logging software must count them all as a single potential (state) multiplier. Thanks N6RNO, W6FB, W6SX for help with Cabrillo specification.
Added Tennessee QSO Party contest. Not a full implementation; doesn’t handle bonus points, doesn’t handle VHF bands, digital modes.
The partials calls list is now updated when focus leaves the Location data entry field, to update fonts/colors, which may depend on the content of the field. For example, for most QSO parties, the multiplier status cannot be determined before the location field content is completed.
Revised K3 interface to use auto-inform rather than high-rate polling. Otherwise, connection fails when P3 is on.
Added checks to prevent possible indexing errors caused by malformed messages from DXSpider or Skimmer connections. Previously, when an indexing error occurred, SkookumLogger seemed to continue operating, but began behaving oddly. One example: the radio connection would be lost and reconnection attempts would fail until SkookumLogger was restarted. Now, the bad message is written to Console log, and otherwise ignored.
Refactored code to consolidate formation of the structurally-invariant portion of a Cabrillo QSO: record.
I’ve changed to a preview version of the new Xcode development environment. This has entailed quite a bit of internal restructuring, making things much better organized, but may have as-yet-undetected side-effects. Please let me know if you find something that used to work and now doesn’t work.
Grabbing a spot from an Activity window was failing to clear all QSO data entry fields. Thanks GØDVJ.
Fixed link to bogus web site on the top-level help page.
Updated IOTA contest to correctly identify multipliers, and to stop flagging QSOs with hyphens in the location field as suspect. Thanks GØDVJ.
Updated IOTA contest to determine QSO points correctly. Was defaulting to 1 point for every non-duplicate QSO.
Allow entering hyphens in the log’s received exchange field, so the exchange for IOTA QSOs with non-island stations can be fully edited.
In the IOTA contest, there was no way to deal with a non-island entity in the location field, other than to leave it blank and accept the INCOMPLETE warning. Implemented this hack: the location field now accepts the hyphen character; enter one hyphen to signify a not-IOTA location. It will be expanded appropriately (to 6 hyphens) in Cabrillo exports. Thanks GØDVJ.
Fixed duplicate QSO logic for RSGB-Sprint contest. Thanks GØDVJ.
Updated IOTA contest rules to the serial number field for QSO data entry, and to generate Cabrillo files with the RSGB-specified format.
Added direct frequency entry for 6m, and 6m Activity window.
Added Yaesu FT897 radio support. Modified FT100, FT950, FT1000, FT2000 to handle “data” mode. Thanks GØDVJ.
Added RSGB-Sprint contest.
Fixed Cabrillo contest ID for RSGB-CC contest. Thanks GØDVJ.
Utility windows associated with a particular log window, such as the QSO Information window, now vanish when the log window is closed. Thanks GØDVJ.
Expanded widths of frequency “readout” strings to accommodate 3-digit MHz values. Blame GØDVJ.
For technical reasons (i.e., programmer convenience), SkookumLogger is now a 64-bit-only application.
Added a Rate display at top center of Log windows. The value is the number of QSOs you made in the last 5 minutes multiplied by 12; i.e., QSOs per hour. The value is recomputed every second so you can watch the rate change as you add new QSOs and old ones fall out of the 5 minute averaging window. With this averaging interval, the minimum non-zero rate is 12 QSOs per hour. I’ll make the averaging interval accessible via preferences if anyone wants it.
Modified Activity table behavior so that the <radio> entry is hidden when an activity is selected. A selected activity indicates the frequency of the radio, and the prior behavior was annoying as the <radio> item jumped above and below the selected item with slight changes in radio frequency. Also made several other internal refinements to this code, trying to manage selections and scrolling more cleanly. When an activity window has keyboard focus, additions to that table no longer clobber the selection. However, when the table is scanned for over-age items (once per minute), the selection is lost; sorry about that.
Added Log>Focus Log command. This moves keyboard focus from wherever it may be in SkookumLogger to the last-focused QSO data entry field. The escape key does that as well, but escape in Mac OS X means “cancel” and thus has other effects, such as aborting CW messages.
Added All Asian DX Contest (outside Asia).
Modified “is needed QSO” algorithm to answer no if the qso would be a zero-pointer according to the contest rules. Now, for example, non-asian calls in an Activity window are never highlighted as needed in the AA contest.
Added QSO entry field pre-fill. When you tab or spacebar out of the callsign entry field and the call has been worked before in the current log, SkookumLogger fills empty exchange entry fields using corresponding values from a previous QSO.
Rarely, SkookumLogger would loose comm with my K3 and refuse to reconnect without restarting the application. I believe that was a side-effect of an error (reported in Console) having to do with modifying an array (of activities) while iterating over its content. That error might be fixed. It is difficult to reproduce; please let me know if you see it.
Enabled Radio->Band commands for None radio type. Thanks GØDVJ.
After loading an Activity table from a saved file, immediately discard old entries instead of waiting for the one-minute timer to fire.
When spots received from a DX cluster connection have time-tags in the future, set the activity time-tag to now so that activity age is never negative.
Cleaned up multiplier hash code for all contests. Some corner cases were not handled properly due to unprofessional programming, resulting in mis-identified multipliers.
Added a third radio mode, named Data, supported by the K3 radio driver and by Cabrillo export. QSOs made in Data mode are labeled “RY” in Cabrillo QSO records.
Added IARU HF Championship contest. The location field is expected to contain either an IARU zone or an IARU society abbreviation. SkookumLogger has a table of all society abbreviations, laboriously created from Wikipedia data. Unhappily, the abbreviations are not unique. The consequence is that SkookumLogger may miss a multiplier, or may mislabel the society in the QSO Information window. Fixing this would be a lot more tedium; I’m not motivated.
Added computation of qso points for CQ WPX contest.
Fixed an error that caused, for example, SV5/SM8C to be tagged as a dupe although not in log, because an SV5 was in the log. Affected only duplicate QSO detection for calls containing the “/” character.
Added Correct mode. If the Correct mode logging preference is checked in the General pane, then, on CW, if the call that was sent is different from the call entry field content when you trigger the Acknowledge and Logit command, the call entry field content is sent before the acknowledge message. If the call entry field is empty, the logic uses the call for the most recent QSO. This sounds more complicated to use than it is: the idea is that if you edit the call after it is sent, the edited call will be sent automatically when you ack the exchange. The default preference value is off.
The Score window now shows On time. The value is computed only when Log > Rebuild runs, which happens automatically when you open a log. Choose the Rebuild command at the end of a contest to get a number for 3830 reports. The algorithm assumes that any two QSOs separated by less than 15 minutes are part of the same on-air interval. In other words, gaps larger than 15 minutes are considered off time.
Generalized the hasMultipliers contest rule to couldBeMultiplier, handling contests where some stations are multipliers and some aren’t but are valid QSOs. Example: NA stations in Manchester Minera can work other NA stations for QSO points, but only SA stations for multiplier credit.
Added validation of location QSO location entry for Manchester Minera, because I could. Invalid QSOs are marked suspect and explained by Log > Explain Suspect.
Typing into the call entry field while beacon CQ is active now turns it off and aborts sending. I thought it always worked this way…
Tapping the WinKeyer paddle now turns off beacon CQ mode.
Now track the current log better when more than one is open, so that punching F2 while in keyboard mode sends the correct exchange. This change also does a better job of associating the Activities windows with the current log.
The Message Repeat Interval preference in the Messages pane now specifies the interval between the end of a CQ (F1) message and the start of the next one when beacon mode is active. Before, the preference specified the interval between message starts. Implementing this change wasn’t as easy as you may think. There is no way to know when a CQ message has ended, so SkookumLogger can only know when it starts. Now, SkookumLogger computes the duration of the CQ message by summing the CW speed-durations of all its characters each time the message repeats, adds on the repeat interval, and creates a timer for starting the next CQ message. Note that this algorithm won’t notice a speed change until the next time a CQ message starts.
Add Manchester Minera contest.
Added Radio > Band menu item with submenu items for changing the radio to the HF contest bands. Uses a new K3 CAT feature. Requires K3 firmware 3.57; otherwise the commands do nothing. Not implemented for other radio types.
Added highlighting (bold font) to indicate current radio band in QSO Information, Score, Countries, Multipliers windows.
Log > Explain Suspect is grayed out when none of the selected rows in the current log are marked as suspect. Thanks GØDVJ. Note: you may see a crash when you use this feature. If you do, please let me know the contest type.
The Commands button in the DX Cluster window now remembers you last choice. These commands are typically used to set complex spot filters, which you could do manually behind SkookumLogger’s back, so the button label still may not reflect the actual state of things, but it almost certainly wasn’t before this change. Thanks GØDVJ.
Simplified the Skimmers window and added Skimmers preferences pane. Similarly simplified the DX Cluster window and preferences.
Force score computation (by showing the Score window) when doing Cabrillo export. Otherwise, the CLAIMED-SCORE record may be empty or incorrect, because the score computation isn’t done when the window isn’t open.
The Message > Serial Number command sends the current serial number if the radio mode is CW. When the QSO call entry data field is empty, the command sends the serial number for the previous QSO.
The Log > Explain Suspect command presents an alert dialog with (hopefully) lucid text describing why a QSO is marked as suspect. The command applies to the selected QSO(s) in the log table. If you select more than one that is marked, you will see more than one alert dialog, with no means for associating dialogs with QSOs, so don’t do that. I’m too old to create logs containing all the possible errors for all contest types in my remaining lifetime. So, please let me know if you use this command and see something amiss (it will help if you can also send me the SkookumLogger log file as well).
Set the default font for the text to/from DX Cluster to Menlo 11 point, and decreased the minimum size of the window.
Try a little harder to set the Activity window titles and needed states to something sensible when first opened.
Discard activities with negative ages during the age-thinning task. Otherwise they were never removed.
Removed remaining code supporting integration of SkookumLogger with CT.
It was possible to “tune” the CW spacing of elements in your sent exchange using the WinKeyer gap character, “|”, in the Sent Info Template field of your log settings sheet. However, this affected how the sent exchange field was constructed for each QSO, causing trouble when exporting your log in Cabrillo format. The problem arises because SkookumLogger uses spaces to separate the elements of the sent and received exchanges, as a general means for supporting the immense variety of exchanges. Tuning “CARNH” as “CAR|||NH” results in “CAR NH” in the QSO record, instead of “CARNH.” This misfeature has been removed. Instead, tune spacing directly in your CW Exchange messages.
Updated Scandinavian Activity Contest for both in-Scandinavia and outside participants. Needs testing. Anyone?
Messages > His Call did nothing if chosen with Morse keyboard mode active and the keyboard text entry field not empty.
First pass at implementing support for the RSGB National Field Day contest.
Cabrillo export now includes the CLAIMED-SCORE optional record.
Added a secret boolean preference controlling whether or not the receive antenna map is shown initially.
Repaired logic affecting whether a multiplier shows up in the Multiplier check sheet or the Country check sheet. For example, the TI canton was showing up as a Costa Rica country multiplier instead of Ticano in the Helvetia in Switzerland contest. Thanks HB9CEY.
Fixed logic for NEQP in New England so that KL and KH6 show up as domestic instead of country multipliers, and so that text completion in the location field shows NEQP country-state abbreviations.
Added a new flag to support tracking a QSO as a “special” entity multiplier. This flag is used to mark QSOs that are both country and canton multipliers in the Helvetia in Switzerland contest. Tested with HB9CEY’s log; thanks Gerald! Note that special multipliers don’t have a corresponding checkmark in either the Country or Multipliers check sheets, or in the Log table (the flag is an internal thing to support correct scoring).
Fixed a bug in QSO Information logic that finds QSOs with the same multiplier as the target QSO. Example: in NEQP K5ECI in OK was matching OK1FCA on another band, because the logic was comparing multiplier codes instead of multiplier names.
Completion is available in the location QSO entry field. Type something and press the completion shortcut key (option-escape); a list of location codes beginning with what you have typed is presented. Use up/down arrow to select a choice, return to place the choice in the entry field. Hit escape to dismiss the list without changing the location field content.
Allow # placeholder character (current serial number) in any CW message.
The QSO Information panel was failing to update when a new QSO was committed.
Repaired a typo that prevented applying the proper multiplier rule for Florida QSO Party. This fix cut my score in half.
Fixed the skimmer login logic to use the Login Call DX Cluster preference, instead of the Me Call preference. Somebody was bumping me off the reverse beacon network last weekend by logging in with my call, so I needed to change it myself.
Repaired qso points for NEQP in New England. Duh!
Corrected a rare race condition that created an unstoppable Beacon CQ. Removed the item from the Messages menu; command-F1 is bound to the checkbox in the Log window. Added tooltip for that checkbox. Thanks K7GQ.
Default for Use Skimmers preference is now NO.
Some changes to Attributes and Skimmers to ameliorate UI blockage when handling input from skimmers.
Multiplier name in QSO Information is canton instead of Switzerland for Helvetica contest outside Switzerland.
DX Cluster now auto-connects without requiring that you open the window. Bugs remain; the window state is wrong when you do open it.
Find QSO is now a toggle action. Press it to filter the log table to show only QSOs with the call in the QSO call entry field. Press it again to remove the filter and scroll to the end of the log. Also, Find QSO uses the call for the previous QSO if the QSO call entry field is empty. And, when a log is loaded or rebuilt, the previous QSO call is set to the last log entry. I found this feature very handy during the NEQP contest last weekend.
Changed the user interface for Ratio in WinKeyer preferences to a stepper, reflecting the quantized nature of the parameter. Thanks W2RU.
Was failing to count cantons as multipliers for the Helvetia In Switzerland contest. Thanks HB9CEY. Note: HB also counts as a multiplier, but SkookumLogger data structures allow for no more than one location-based multiplier per QSO. So, the score will be off by one multiplier on each band where at least one canton was worked.
The Score panel was failing to update when a new QSO was committed. Thanks HB9CEY.
Modify the “is needed QSO” logic to consider zero-point QSOs as not needed. This will help thin out Activity tables, for example, by tagging all not-HB spots as not needed for the Helvetia contest (outside Switzerland), or all not-K spots as not needed for USA QSO parties outside the QSO target state(s). So far this feature has been implemented for Helvetia and Florida QSO Party.
Now do not highlight the <radio> item in Activity tables, to reduce the useless flashing of highlight as you tune across the band. Highlighting now appears only for spots (one at a time) near the radio frequency, where “near” is determined the by Frequency Matching Tolerance in the Activity preference pane.
Added (untested) support for Yaesu FT-950, using code provided by GØDVJ.
Window > Skimmers opens a window for managing one or more skimmer connections. If the Use Skimmers preference is set (either in the Activities preferences or in the Skimmers window), SkookumLogger will attempt to connect to every skimmer in a persistent list of skimmer descriptions. The information received from each skimmer is intermingled into the upper text pane of the Skimmers window. If the information is a spot, it is added to the appropriate Activity table, with the Info field changed to “Not in SCP” if the spotted call doesn’t exist in the Super Check Partial database.
The Edit Skimmer List button opens a window showing a table of skimmer attributes. Use the buttons below the table to add or delete entries. The table content is stored in a file named “skimmers” in the SkookumLogger folder inside your Application Support folder. The general idea is that you will use one external skimmer node (for example, the Reverse Beacon Network (RBN), which is the single default entry in the list), and any number of your own skimmers.
Currently, text entered in the lower text pane is sent to every skimmer in the list. Use this to tailor the skimmer (for example, to set filters on the RBN node). I’ll devise a scheme for directing commands to specific nodes later, if necessary.
Even on a weekday, the combination of a DX cluster connection and RBN generates a 20m Activity table with more rows than fit on a 1920 x 1080 display, even with a 15 minute age limit. Reducing the age limit helps. If you use this feature and see obvious filters that could be applied to thin the list (and/or to denote spot quality), please let me know.
For now, the Activity filtering logic always passes every spot it sees for you own call (the Call item in Me preferences). This allows you to see your relative signal strength at each of the skimmers that hears you.
Completed massive edits to source code to migrate from the “band map” terminology to the “activity” terminology. Everything should work as before, with minor refinements.
Renamed the Beverage menu to Antennas and fussed with its menu items. Some day there may appear items for controlling transmit antenna selection.
Reduced the font size in the Activity tables, so that more rows will fit on-screen. Also changed a table view attribute so that text baselines aren’t affected by changing the font face from Monaco to Menlo in General preferences.
Reduced the content size and changed the behavior of the Multipliers and Countries windows to be utility windows. Also changed the QSO Information and Score (was Summary) windows to utility windows. These utility windows are associated with a specific log. That is, if you have more than one log open in SkookumLogger, you will have separate utility windows for each log. The titles of the utility windows now duplicate the title of the log window so you can deduce the association.
If you close a log or deactivate SkookumLogger, the utility windows vanish. The General preferences pane has checkboxes that determine whether or not each of the four utility windows opens automatically when you open a log.
Fiddled with keyboard shortcuts for opening windows. All except the modal Keyboard window are opened with a command-option-<key> shortcut. Also removed useless items in the Format menu and changed its name to Font; some of the default shortcuts caused conflicts.
The QSO Information window now defaults to showing last QSO in log, instead of first.
New logging preference in the General pane, “Refuse to log incomplete QSOs.” When this item is checked, SkookumLogger will create new log entries (when you press return) only if all of the QSO data entry fields are non-empty. Clearly this test is inappropriate for contests where some fields are optional, such as Helvetia in Switzerland where the location field is empty for QSOs with stations outside Switzerland.
The term “band map” has been replaced by “activity table,” to more accurately reflect the role of these tables, and to prepare for future features. Only the name has changed; behavior is the same. Exception: existing preferences for window sizes and table column visibilities will be lost, because they depend on the window title. Sorry about that. Please let me know if you find “band map” in the user interface or help documentation. I’m reserving that term to refer to a graphical display of call signs along a frequency axis — a feature that may or may not appear some day in SkookumLogger.
Extended the root-callsign duplicate test to apply in all supported contests.
Corrected yet another misspelling, this time the AI multiplier code in the list of Helvetia contest multipliers (cantons). It was AL. Thanks HB9CEY.