not1mm 24.10.27.1__tar.gz → 24.11.2__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {not1mm-24.10.27.1 → not1mm-24.11.2}/PKG-INFO +2 -30
- {not1mm-24.10.27.1 → not1mm-24.11.2}/README.md +1 -29
- {not1mm-24.10.27.1 → not1mm-24.11.2}/not1mm/__main__.py +138 -8
- {not1mm-24.10.27.1 → not1mm-24.11.2}/not1mm/data/configuration.ui +617 -612
- {not1mm-24.10.27.1 → not1mm-24.11.2}/not1mm/data/main.ui +34 -7
- {not1mm-24.10.27.1 → not1mm-24.11.2}/not1mm/lib/database.py +97 -0
- {not1mm-24.10.27.1 → not1mm-24.11.2}/not1mm/lib/settings.py +8 -1
- not1mm-24.11.2/not1mm/lib/version.py +3 -0
- {not1mm-24.10.27.1 → not1mm-24.11.2}/not1mm/plugins/arrl_ss_cw.py +10 -0
- not1mm-24.11.2/not1mm/test.py +61 -0
- {not1mm-24.10.27.1 → not1mm-24.11.2}/not1mm.egg-info/PKG-INFO +2 -30
- {not1mm-24.10.27.1 → not1mm-24.11.2}/not1mm.egg-info/top_level.txt +0 -1
- {not1mm-24.10.27.1 → not1mm-24.11.2}/pyproject.toml +2 -2
- not1mm-24.10.27.1/not1mm/lib/version.py +0 -3
- not1mm-24.10.27.1/not1mm/test.py +0 -11
- {not1mm-24.10.27.1 → not1mm-24.11.2}/LICENSE +0 -0
- {not1mm-24.10.27.1 → not1mm-24.11.2}/not1mm/__init__.py +0 -0
- {not1mm-24.10.27.1 → not1mm-24.11.2}/not1mm/bandmap.py +0 -0
- {not1mm-24.10.27.1 → not1mm-24.11.2}/not1mm/checkwindow.py +0 -0
- {not1mm-24.10.27.1 → not1mm-24.11.2}/not1mm/data/JetBrainsMono-ExtraLight.ttf +0 -0
- {not1mm-24.10.27.1 → not1mm-24.11.2}/not1mm/data/MASTER.SCP +0 -0
- {not1mm-24.10.27.1 → not1mm-24.11.2}/not1mm/data/about.ui +0 -0
- {not1mm-24.10.27.1 → not1mm-24.11.2}/not1mm/data/alpha bravo charlie delta.txt +0 -0
- {not1mm-24.10.27.1 → not1mm-24.11.2}/not1mm/data/bandmap.ui +0 -0
- {not1mm-24.10.27.1 → not1mm-24.11.2}/not1mm/data/check.png +0 -0
- {not1mm-24.10.27.1 → not1mm-24.11.2}/not1mm/data/checkwindow.ui +0 -0
- {not1mm-24.10.27.1 → not1mm-24.11.2}/not1mm/data/contests.sql +0 -0
- {not1mm-24.10.27.1 → not1mm-24.11.2}/not1mm/data/cty.json +0 -0
- {not1mm-24.10.27.1 → not1mm-24.11.2}/not1mm/data/cwmacros.txt +0 -0
- {not1mm-24.10.27.1 → not1mm-24.11.2}/not1mm/data/donors.html +0 -0
- {not1mm-24.10.27.1 → not1mm-24.11.2}/not1mm/data/editcontact.ui +0 -0
- {not1mm-24.10.27.1 → not1mm-24.11.2}/not1mm/data/editmacro.ui +0 -0
- {not1mm-24.10.27.1 → not1mm-24.11.2}/not1mm/data/greendot.png +0 -0
- {not1mm-24.10.27.1 → not1mm-24.11.2}/not1mm/data/k6gte-not1mm.desktop +0 -0
- {not1mm-24.10.27.1 → not1mm-24.11.2}/not1mm/data/k6gte.not1mm-128.png +0 -0
- {not1mm-24.10.27.1 → not1mm-24.11.2}/not1mm/data/k6gte.not1mm-32.png +0 -0
- {not1mm-24.10.27.1 → not1mm-24.11.2}/not1mm/data/k6gte.not1mm-64.png +0 -0
- {not1mm-24.10.27.1 → not1mm-24.11.2}/not1mm/data/logwindow.ui +0 -0
- {not1mm-24.10.27.1 → not1mm-24.11.2}/not1mm/data/logwindowx.ui +0 -0
- {not1mm-24.10.27.1 → not1mm-24.11.2}/not1mm/data/new_contest.ui +0 -0
- {not1mm-24.10.27.1 → not1mm-24.11.2}/not1mm/data/not1mm.html +0 -0
- {not1mm-24.10.27.1 → not1mm-24.11.2}/not1mm/data/opon.ui +0 -0
- {not1mm-24.10.27.1 → not1mm-24.11.2}/not1mm/data/phonetics/0.wav +0 -0
- {not1mm-24.10.27.1 → not1mm-24.11.2}/not1mm/data/phonetics/1.wav +0 -0
- {not1mm-24.10.27.1 → not1mm-24.11.2}/not1mm/data/phonetics/2.wav +0 -0
- {not1mm-24.10.27.1 → not1mm-24.11.2}/not1mm/data/phonetics/3.wav +0 -0
- {not1mm-24.10.27.1 → not1mm-24.11.2}/not1mm/data/phonetics/4.wav +0 -0
- {not1mm-24.10.27.1 → not1mm-24.11.2}/not1mm/data/phonetics/5.wav +0 -0
- {not1mm-24.10.27.1 → not1mm-24.11.2}/not1mm/data/phonetics/6.wav +0 -0
- {not1mm-24.10.27.1 → not1mm-24.11.2}/not1mm/data/phonetics/7.wav +0 -0
- {not1mm-24.10.27.1 → not1mm-24.11.2}/not1mm/data/phonetics/73.wav +0 -0
- {not1mm-24.10.27.1 → not1mm-24.11.2}/not1mm/data/phonetics/8.wav +0 -0
- {not1mm-24.10.27.1 → not1mm-24.11.2}/not1mm/data/phonetics/9.wav +0 -0
- {not1mm-24.10.27.1 → not1mm-24.11.2}/not1mm/data/phonetics/a.wav +0 -0
- {not1mm-24.10.27.1 → not1mm-24.11.2}/not1mm/data/phonetics/again.wav +0 -0
- {not1mm-24.10.27.1 → not1mm-24.11.2}/not1mm/data/phonetics/b.wav +0 -0
- {not1mm-24.10.27.1 → not1mm-24.11.2}/not1mm/data/phonetics/c.wav +0 -0
- {not1mm-24.10.27.1 → not1mm-24.11.2}/not1mm/data/phonetics/contest.wav +0 -0
- {not1mm-24.10.27.1 → not1mm-24.11.2}/not1mm/data/phonetics/cq.wav +0 -0
- {not1mm-24.10.27.1 → not1mm-24.11.2}/not1mm/data/phonetics/cq2.wav +0 -0
- {not1mm-24.10.27.1 → not1mm-24.11.2}/not1mm/data/phonetics/d.wav +0 -0
- {not1mm-24.10.27.1 → not1mm-24.11.2}/not1mm/data/phonetics/e.wav +0 -0
- {not1mm-24.10.27.1 → not1mm-24.11.2}/not1mm/data/phonetics/f.wav +0 -0
- {not1mm-24.10.27.1 → not1mm-24.11.2}/not1mm/data/phonetics/g.wav +0 -0
- {not1mm-24.10.27.1 → not1mm-24.11.2}/not1mm/data/phonetics/h.wav +0 -0
- {not1mm-24.10.27.1 → not1mm-24.11.2}/not1mm/data/phonetics/i.wav +0 -0
- {not1mm-24.10.27.1 → not1mm-24.11.2}/not1mm/data/phonetics/j.wav +0 -0
- {not1mm-24.10.27.1 → not1mm-24.11.2}/not1mm/data/phonetics/k.wav +0 -0
- {not1mm-24.10.27.1 → not1mm-24.11.2}/not1mm/data/phonetics/k6gte.wav +0 -0
- {not1mm-24.10.27.1 → not1mm-24.11.2}/not1mm/data/phonetics/l.wav +0 -0
- {not1mm-24.10.27.1 → not1mm-24.11.2}/not1mm/data/phonetics/m.wav +0 -0
- {not1mm-24.10.27.1 → not1mm-24.11.2}/not1mm/data/phonetics/mynumber.wav +0 -0
- {not1mm-24.10.27.1 → not1mm-24.11.2}/not1mm/data/phonetics/n.wav +0 -0
- {not1mm-24.10.27.1 → not1mm-24.11.2}/not1mm/data/phonetics/nil.wav +0 -0
- {not1mm-24.10.27.1 → not1mm-24.11.2}/not1mm/data/phonetics/o.wav +0 -0
- {not1mm-24.10.27.1 → not1mm-24.11.2}/not1mm/data/phonetics/p.wav +0 -0
- {not1mm-24.10.27.1 → not1mm-24.11.2}/not1mm/data/phonetics/q.wav +0 -0
- {not1mm-24.10.27.1 → not1mm-24.11.2}/not1mm/data/phonetics/r.wav +0 -0
- {not1mm-24.10.27.1 → not1mm-24.11.2}/not1mm/data/phonetics/roger.wav +0 -0
- {not1mm-24.10.27.1 → not1mm-24.11.2}/not1mm/data/phonetics/s.wav +0 -0
- {not1mm-24.10.27.1 → not1mm-24.11.2}/not1mm/data/phonetics/space.wav +0 -0
- {not1mm-24.10.27.1 → not1mm-24.11.2}/not1mm/data/phonetics/t.wav +0 -0
- {not1mm-24.10.27.1 → not1mm-24.11.2}/not1mm/data/phonetics/thankyou.wav +0 -0
- {not1mm-24.10.27.1 → not1mm-24.11.2}/not1mm/data/phonetics/thankyouqrz.wav +0 -0
- {not1mm-24.10.27.1 → not1mm-24.11.2}/not1mm/data/phonetics/u.wav +0 -0
- {not1mm-24.10.27.1 → not1mm-24.11.2}/not1mm/data/phonetics/v.wav +0 -0
- {not1mm-24.10.27.1 → not1mm-24.11.2}/not1mm/data/phonetics/w.wav +0 -0
- {not1mm-24.10.27.1 → not1mm-24.11.2}/not1mm/data/phonetics/x.wav +0 -0
- {not1mm-24.10.27.1 → not1mm-24.11.2}/not1mm/data/phonetics/y.wav +0 -0
- {not1mm-24.10.27.1 → not1mm-24.11.2}/not1mm/data/phonetics/yourcall.wav +0 -0
- {not1mm-24.10.27.1 → not1mm-24.11.2}/not1mm/data/phonetics/z.wav +0 -0
- {not1mm-24.10.27.1 → not1mm-24.11.2}/not1mm/data/pickcontest.ui +0 -0
- {not1mm-24.10.27.1 → not1mm-24.11.2}/not1mm/data/radio_green.png +0 -0
- {not1mm-24.10.27.1 → not1mm-24.11.2}/not1mm/data/radio_grey.png +0 -0
- {not1mm-24.10.27.1 → not1mm-24.11.2}/not1mm/data/radio_red.png +0 -0
- {not1mm-24.10.27.1 → not1mm-24.11.2}/not1mm/data/reddot.png +0 -0
- {not1mm-24.10.27.1 → not1mm-24.11.2}/not1mm/data/rttymacros.txt +0 -0
- {not1mm-24.10.27.1 → not1mm-24.11.2}/not1mm/data/settings.ui +0 -0
- {not1mm-24.10.27.1 → not1mm-24.11.2}/not1mm/data/splash.png +0 -0
- {not1mm-24.10.27.1 → not1mm-24.11.2}/not1mm/data/ssbmacros.txt +0 -0
- {not1mm-24.10.27.1 → not1mm-24.11.2}/not1mm/data/vfo.ui +0 -0
- {not1mm-24.10.27.1 → not1mm-24.11.2}/not1mm/fsutils.py +0 -0
- {not1mm-24.10.27.1 → not1mm-24.11.2}/not1mm/lib/__init__.py +0 -0
- {not1mm-24.10.27.1 → not1mm-24.11.2}/not1mm/lib/about.py +0 -0
- {not1mm-24.10.27.1 → not1mm-24.11.2}/not1mm/lib/cat_interface.py +0 -0
- {not1mm-24.10.27.1 → not1mm-24.11.2}/not1mm/lib/cwinterface.py +0 -0
- {not1mm-24.10.27.1 → not1mm-24.11.2}/not1mm/lib/edit_contact.py +0 -0
- {not1mm-24.10.27.1 → not1mm-24.11.2}/not1mm/lib/edit_macro.py +0 -0
- {not1mm-24.10.27.1 → not1mm-24.11.2}/not1mm/lib/edit_opon.py +0 -0
- {not1mm-24.10.27.1 → not1mm-24.11.2}/not1mm/lib/edit_station.py +0 -0
- {not1mm-24.10.27.1 → not1mm-24.11.2}/not1mm/lib/fldigi_sendstring.py +0 -0
- {not1mm-24.10.27.1 → not1mm-24.11.2}/not1mm/lib/fldigi_watcher.py +0 -0
- {not1mm-24.10.27.1 → not1mm-24.11.2}/not1mm/lib/ft8_watcher.py +0 -0
- {not1mm-24.10.27.1 → not1mm-24.11.2}/not1mm/lib/ham_utility.py +0 -0
- {not1mm-24.10.27.1 → not1mm-24.11.2}/not1mm/lib/lookup.py +0 -0
- {not1mm-24.10.27.1 → not1mm-24.11.2}/not1mm/lib/multicast.py +0 -0
- {not1mm-24.10.27.1 → not1mm-24.11.2}/not1mm/lib/n1mm.py +0 -0
- {not1mm-24.10.27.1 → not1mm-24.11.2}/not1mm/lib/new_contest.py +0 -0
- {not1mm-24.10.27.1 → not1mm-24.11.2}/not1mm/lib/playsound.py +0 -0
- {not1mm-24.10.27.1 → not1mm-24.11.2}/not1mm/lib/plugin_common.py +0 -0
- {not1mm-24.10.27.1 → not1mm-24.11.2}/not1mm/lib/select_contest.py +0 -0
- {not1mm-24.10.27.1 → not1mm-24.11.2}/not1mm/lib/super_check_partial.py +0 -0
- {not1mm-24.10.27.1 → not1mm-24.11.2}/not1mm/lib/versiontest.py +0 -0
- {not1mm-24.10.27.1 → not1mm-24.11.2}/not1mm/logwindow.py +0 -0
- {not1mm-24.10.27.1 → not1mm-24.11.2}/not1mm/lookupservice.py +0 -0
- {not1mm-24.10.27.1 → not1mm-24.11.2}/not1mm/plugins/10_10_fall_cw.py +0 -0
- {not1mm-24.10.27.1 → not1mm-24.11.2}/not1mm/plugins/10_10_spring_cw.py +0 -0
- {not1mm-24.10.27.1 → not1mm-24.11.2}/not1mm/plugins/10_10_summer_phone.py +0 -0
- {not1mm-24.10.27.1 → not1mm-24.11.2}/not1mm/plugins/10_10_winter_phone.py +0 -0
- {not1mm-24.10.27.1 → not1mm-24.11.2}/not1mm/plugins/__init__.py +0 -0
- {not1mm-24.10.27.1 → not1mm-24.11.2}/not1mm/plugins/arrl_10m.py +0 -0
- {not1mm-24.10.27.1 → not1mm-24.11.2}/not1mm/plugins/arrl_dx_cw.py +0 -0
- {not1mm-24.10.27.1 → not1mm-24.11.2}/not1mm/plugins/arrl_dx_ssb.py +0 -0
- {not1mm-24.10.27.1 → not1mm-24.11.2}/not1mm/plugins/arrl_field_day.py +0 -0
- {not1mm-24.10.27.1 → not1mm-24.11.2}/not1mm/plugins/arrl_rtty_ru.py +0 -0
- {not1mm-24.10.27.1 → not1mm-24.11.2}/not1mm/plugins/arrl_ss_phone.py +0 -0
- {not1mm-24.10.27.1 → not1mm-24.11.2}/not1mm/plugins/arrl_vhf_jan.py +0 -0
- {not1mm-24.10.27.1 → not1mm-24.11.2}/not1mm/plugins/arrl_vhf_jun.py +0 -0
- {not1mm-24.10.27.1 → not1mm-24.11.2}/not1mm/plugins/arrl_vhf_sep.py +0 -0
- {not1mm-24.10.27.1 → not1mm-24.11.2}/not1mm/plugins/canada_day.py +0 -0
- {not1mm-24.10.27.1 → not1mm-24.11.2}/not1mm/plugins/cq_160_cw.py +0 -0
- {not1mm-24.10.27.1 → not1mm-24.11.2}/not1mm/plugins/cq_160_ssb.py +0 -0
- {not1mm-24.10.27.1 → not1mm-24.11.2}/not1mm/plugins/cq_wpx_cw.py +0 -0
- {not1mm-24.10.27.1 → not1mm-24.11.2}/not1mm/plugins/cq_wpx_rtty.py +0 -0
- {not1mm-24.10.27.1 → not1mm-24.11.2}/not1mm/plugins/cq_wpx_ssb.py +0 -0
- {not1mm-24.10.27.1 → not1mm-24.11.2}/not1mm/plugins/cq_ww_cw.py +0 -0
- {not1mm-24.10.27.1 → not1mm-24.11.2}/not1mm/plugins/cq_ww_rtty.py +0 -0
- {not1mm-24.10.27.1 → not1mm-24.11.2}/not1mm/plugins/cq_ww_ssb.py +0 -0
- {not1mm-24.10.27.1 → not1mm-24.11.2}/not1mm/plugins/cwt.py +0 -0
- {not1mm-24.10.27.1 → not1mm-24.11.2}/not1mm/plugins/general_logging.py +0 -0
- {not1mm-24.10.27.1 → not1mm-24.11.2}/not1mm/plugins/helvetia.py +0 -0
- {not1mm-24.10.27.1 → not1mm-24.11.2}/not1mm/plugins/iaru_fieldday_r1_cw.py +0 -0
- {not1mm-24.10.27.1 → not1mm-24.11.2}/not1mm/plugins/iaru_fieldday_r1_ssb.py +0 -0
- {not1mm-24.10.27.1 → not1mm-24.11.2}/not1mm/plugins/iaru_hf.py +0 -0
- {not1mm-24.10.27.1 → not1mm-24.11.2}/not1mm/plugins/icwc_mst.py +0 -0
- {not1mm-24.10.27.1 → not1mm-24.11.2}/not1mm/plugins/jidx_cw.py +0 -0
- {not1mm-24.10.27.1 → not1mm-24.11.2}/not1mm/plugins/jidx_ph.py +0 -0
- {not1mm-24.10.27.1 → not1mm-24.11.2}/not1mm/plugins/k1usn_sst.py +0 -0
- {not1mm-24.10.27.1 → not1mm-24.11.2}/not1mm/plugins/naqp_cw.py +0 -0
- {not1mm-24.10.27.1 → not1mm-24.11.2}/not1mm/plugins/naqp_rtty.py +0 -0
- {not1mm-24.10.27.1 → not1mm-24.11.2}/not1mm/plugins/naqp_ssb.py +0 -0
- {not1mm-24.10.27.1 → not1mm-24.11.2}/not1mm/plugins/phone_weekly_test.py +0 -0
- {not1mm-24.10.27.1 → not1mm-24.11.2}/not1mm/plugins/ref_cw.py +0 -0
- {not1mm-24.10.27.1 → not1mm-24.11.2}/not1mm/plugins/ref_ssb.py +0 -0
- {not1mm-24.10.27.1 → not1mm-24.11.2}/not1mm/plugins/stew_perry_topband.py +0 -0
- {not1mm-24.10.27.1 → not1mm-24.11.2}/not1mm/plugins/weekly_rtty.py +0 -0
- {not1mm-24.10.27.1 → not1mm-24.11.2}/not1mm/plugins/winter_field_day.py +0 -0
- {not1mm-24.10.27.1 → not1mm-24.11.2}/not1mm/radio.py +0 -0
- {not1mm-24.10.27.1 → not1mm-24.11.2}/not1mm/vfo.py +0 -0
- {not1mm-24.10.27.1 → not1mm-24.11.2}/not1mm/voice_keying.py +0 -0
- {not1mm-24.10.27.1 → not1mm-24.11.2}/not1mm.egg-info/SOURCES.txt +0 -0
- {not1mm-24.10.27.1 → not1mm-24.11.2}/not1mm.egg-info/dependency_links.txt +0 -0
- {not1mm-24.10.27.1 → not1mm-24.11.2}/not1mm.egg-info/entry_points.txt +0 -0
- {not1mm-24.10.27.1 → not1mm-24.11.2}/not1mm.egg-info/requires.txt +0 -0
- {not1mm-24.10.27.1 → not1mm-24.11.2}/setup.cfg +0 -0
- {not1mm-24.10.27.1 → not1mm-24.11.2}/test/contests.py +0 -0
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: not1mm
|
3
|
-
Version: 24.
|
3
|
+
Version: 24.11.2
|
4
4
|
Summary: NOT1MM Logger
|
5
5
|
Author-email: Michael Bridak <michael.bridak@gmail.com>
|
6
6
|
Project-URL: Homepage, https://github.com/mbridak/not1mm
|
@@ -232,35 +232,7 @@ generated, 'cause I'm lazy, list of those who've submitted PR's.
|
|
232
232
|
|
233
233
|
## Recent Changes (Polishing the Turd)
|
234
234
|
|
235
|
-
- [24-
|
236
|
-
- [24-10-27] Fix bug where a contacts info could be carried over to new contact if no new value was written.
|
237
|
-
- [24-10-26] Clear inputs when seeking to a call from the bandmap via the arrow up and down. Fixed bandmap crash from bad telnet data. Drop beacons from bandmap.
|
238
|
-
- [24-10-25] Add File Menu option to create either an ASCII or UTF8 Cabrillo.
|
239
|
-
- [24-10-24-1] Make all Cabrillo files with UTF-8.
|
240
|
-
- [24-10-24] Forgot to convert the VFO dockwidget along with the rest. CQ WW CW, Dupes now score 0.
|
241
|
-
- [24-10-23] Remove duplicate marked calls in the bandmap.
|
242
|
-
- [24-10-22] Added ESM to RAC Canada Day. Added French REF.
|
243
|
-
- [24-10-21] Scaled back the hits returned from the check window from 25 to 20. Seems less resource hungry now.
|
244
|
-
- [24-10-20-1] ReWrote how the widgets interact. I probably broke a thing or two. Let me know.
|
245
|
-
- [24-10-20] Add ESM to ARRL DX.
|
246
|
-
- [24-10-19-1] Rewrite part of CAT control.
|
247
|
-
- [24-10-19] Change ESM button states when the run state is toggled. Add ESM to ARRL Field Day and Winter Field Day.
|
248
|
-
- [24-10-18] Fixed marked spots showing the correct time.
|
249
|
-
- [24-10-17-2] Add ESM to ARRL Sweepstakes.
|
250
|
-
- [24-10-17-1] Fix dupe check. Reordered change mode and interface update sequence. Resend mode if rigctld does not report back `RPRT 0`
|
251
|
-
- [24-10-17] Increased max CW speed to 99, 'cause people be crazy. Trying smaller timeout for the rigctlsocket. Not having the checkwindow process events while not visible since it's a resource hog.
|
252
|
-
- [24-10-15-1] Fix callsigns with a slash failing check during ESM.
|
253
|
-
- [24-10-15] Add NAQP RTTY, Added ESM to NAQP.
|
254
|
-
- [24-10-14] Add ESM to CQ WPX.
|
255
|
-
- [24-10-13] Added ESM to Weekly RTTY, K1USN and CWT.
|
256
|
-
- [24-10-11] added ESM to CQWW SSB and RTTY.
|
257
|
-
- [24-10-10] Add ESM to CQ WW CW to test it out.
|
258
|
-
- [24-10-8] Fix crash on Tune to spot. Change placeholder text for the CW port for those unable to read documentation.
|
259
|
-
- [24-10-6] Removed 60, 30, 17 and 12M from the default list of bands.
|
260
|
-
- [24-10-5-1] Store the bandmap spots age timer in the preferences.
|
261
|
-
- [24-10-5] Force reselction of contest after different DB opened.
|
262
|
-
- [24-10-2] Add WPX RTTY.
|
263
|
-
- [24-10-1] Merged PR removing leading zeros from serial numbers. Merged PR correcting the parsing of lookups for previous name and state in the CWT.
|
235
|
+
- [24-11-2] Add beginning of call history files. Add command buttons.
|
264
236
|
|
265
237
|
See [CHANGELOG.md](CHANGELOG.md) for prior changes.
|
266
238
|
|
@@ -201,35 +201,7 @@ generated, 'cause I'm lazy, list of those who've submitted PR's.
|
|
201
201
|
|
202
202
|
## Recent Changes (Polishing the Turd)
|
203
203
|
|
204
|
-
- [24-
|
205
|
-
- [24-10-27] Fix bug where a contacts info could be carried over to new contact if no new value was written.
|
206
|
-
- [24-10-26] Clear inputs when seeking to a call from the bandmap via the arrow up and down. Fixed bandmap crash from bad telnet data. Drop beacons from bandmap.
|
207
|
-
- [24-10-25] Add File Menu option to create either an ASCII or UTF8 Cabrillo.
|
208
|
-
- [24-10-24-1] Make all Cabrillo files with UTF-8.
|
209
|
-
- [24-10-24] Forgot to convert the VFO dockwidget along with the rest. CQ WW CW, Dupes now score 0.
|
210
|
-
- [24-10-23] Remove duplicate marked calls in the bandmap.
|
211
|
-
- [24-10-22] Added ESM to RAC Canada Day. Added French REF.
|
212
|
-
- [24-10-21] Scaled back the hits returned from the check window from 25 to 20. Seems less resource hungry now.
|
213
|
-
- [24-10-20-1] ReWrote how the widgets interact. I probably broke a thing or two. Let me know.
|
214
|
-
- [24-10-20] Add ESM to ARRL DX.
|
215
|
-
- [24-10-19-1] Rewrite part of CAT control.
|
216
|
-
- [24-10-19] Change ESM button states when the run state is toggled. Add ESM to ARRL Field Day and Winter Field Day.
|
217
|
-
- [24-10-18] Fixed marked spots showing the correct time.
|
218
|
-
- [24-10-17-2] Add ESM to ARRL Sweepstakes.
|
219
|
-
- [24-10-17-1] Fix dupe check. Reordered change mode and interface update sequence. Resend mode if rigctld does not report back `RPRT 0`
|
220
|
-
- [24-10-17] Increased max CW speed to 99, 'cause people be crazy. Trying smaller timeout for the rigctlsocket. Not having the checkwindow process events while not visible since it's a resource hog.
|
221
|
-
- [24-10-15-1] Fix callsigns with a slash failing check during ESM.
|
222
|
-
- [24-10-15] Add NAQP RTTY, Added ESM to NAQP.
|
223
|
-
- [24-10-14] Add ESM to CQ WPX.
|
224
|
-
- [24-10-13] Added ESM to Weekly RTTY, K1USN and CWT.
|
225
|
-
- [24-10-11] added ESM to CQWW SSB and RTTY.
|
226
|
-
- [24-10-10] Add ESM to CQ WW CW to test it out.
|
227
|
-
- [24-10-8] Fix crash on Tune to spot. Change placeholder text for the CW port for those unable to read documentation.
|
228
|
-
- [24-10-6] Removed 60, 30, 17 and 12M from the default list of bands.
|
229
|
-
- [24-10-5-1] Store the bandmap spots age timer in the preferences.
|
230
|
-
- [24-10-5] Force reselction of contest after different DB opened.
|
231
|
-
- [24-10-2] Add WPX RTTY.
|
232
|
-
- [24-10-1] Merged PR removing leading zeros from serial numbers. Merged PR correcting the parsing of lookups for previous name and state in the CWT.
|
204
|
+
- [24-11-2] Add beginning of call history files. Add command buttons.
|
233
205
|
|
234
206
|
See [CHANGELOG.md](CHANGELOG.md) for prior changes.
|
235
207
|
|
@@ -37,6 +37,7 @@ from PyQt6 import QtCore, QtGui, QtWidgets, uic
|
|
37
37
|
from PyQt6.QtCore import QDir, Qt, QThread, QSettings, QCoreApplication
|
38
38
|
from PyQt6.QtGui import QFontDatabase, QColorConstants, QPalette, QColor, QPixmap
|
39
39
|
from PyQt6.QtWidgets import QFileDialog, QSplashScreen, QApplication
|
40
|
+
from PyQt6.QtCore import QT_VERSION_STR, PYQT_VERSION_STR
|
40
41
|
|
41
42
|
from not1mm.lib.about import About
|
42
43
|
from not1mm.lib.cwinterface import CW
|
@@ -163,6 +164,7 @@ class MainWindow(QtWidgets.QMainWindow):
|
|
163
164
|
text_color = QColorConstants.Black
|
164
165
|
current_palette = None
|
165
166
|
use_esm = False
|
167
|
+
use_call_history = False
|
166
168
|
esm_dict = {}
|
167
169
|
|
168
170
|
radio_thread = QThread()
|
@@ -198,6 +200,7 @@ class MainWindow(QtWidgets.QMainWindow):
|
|
198
200
|
self.setCorner(Qt.Corner.TopLeftCorner, Qt.DockWidgetArea.LeftDockWidgetArea)
|
199
201
|
self.setCorner(Qt.Corner.BottomLeftCorner, Qt.DockWidgetArea.LeftDockWidgetArea)
|
200
202
|
uic.loadUi(fsutils.APP_DATA_PATH / "main.ui", self)
|
203
|
+
self.history_info.hide()
|
201
204
|
QApplication.instance().focusObjectChanged.connect(self.on_focus_changed)
|
202
205
|
self.inputs_dict = {
|
203
206
|
self.callsign: "callsign",
|
@@ -223,12 +226,15 @@ class MainWindow(QtWidgets.QMainWindow):
|
|
223
226
|
|
224
227
|
self.actionCW_Macros.triggered.connect(self.cw_macros_state_changed)
|
225
228
|
self.actionDark_Mode_2.triggered.connect(self.dark_mode_state_changed)
|
226
|
-
self.
|
229
|
+
self.actionCommand_Buttons_2.triggered.connect(
|
230
|
+
self.command_buttons_state_change
|
231
|
+
)
|
227
232
|
self.actionLog_Window.triggered.connect(self.launch_log_window)
|
228
233
|
self.actionBandmap.triggered.connect(self.launch_bandmap_window)
|
229
234
|
self.actionCheck_Window.triggered.connect(self.launch_check_window)
|
230
235
|
self.actionVFO.triggered.connect(self.launch_vfo)
|
231
236
|
self.actionRecalculate_Mults.triggered.connect(self.recalculate_mults)
|
237
|
+
self.actionLoad_Call_History_File.triggered.connect(self.load_call_history)
|
232
238
|
|
233
239
|
self.actionGenerate_Cabrillo_ASCII.triggered.connect(
|
234
240
|
lambda x: self.generate_cabrillo("ascii")
|
@@ -289,6 +295,12 @@ class MainWindow(QtWidgets.QMainWindow):
|
|
289
295
|
self.radio_green = QtGui.QPixmap(str(icon_path / "radio_green.png"))
|
290
296
|
self.radio_icon.setPixmap(self.radio_grey)
|
291
297
|
|
298
|
+
self.log_it.clicked.connect(self.save_contact)
|
299
|
+
self.wipe.clicked.connect(self.clearinputs)
|
300
|
+
self.esc_stop.clicked.connect(self.stop_cw)
|
301
|
+
self.mark.clicked.connect(self.mark_spot)
|
302
|
+
self.spot_it.clicked.connect(self.spot_dx)
|
303
|
+
|
292
304
|
self.F1.setContextMenuPolicy(QtCore.Qt.ContextMenuPolicy.CustomContextMenu)
|
293
305
|
self.F1.customContextMenuRequested.connect(lambda x: self.edit_macro(self.F1))
|
294
306
|
self.F1.clicked.connect(lambda x: self.process_function_key(self.F1))
|
@@ -589,7 +601,21 @@ class MainWindow(QtWidgets.QMainWindow):
|
|
589
601
|
self.voice_process.current_op = self.current_op
|
590
602
|
self.make_op_dir()
|
591
603
|
|
592
|
-
|
604
|
+
logger.debug(f"{QT_VERSION_STR=} {PYQT_VERSION_STR=}")
|
605
|
+
x = PYQT_VERSION_STR.split(".")
|
606
|
+
old_Qt = True
|
607
|
+
# test if pyqt version is at least 6.7.1
|
608
|
+
if len(x) == 1:
|
609
|
+
if int(x[0]) > 6:
|
610
|
+
old_Qt = False
|
611
|
+
elif len(x) == 2:
|
612
|
+
if int(x[0]) >= 6 and int(x[1]) > 8:
|
613
|
+
old_Qt = False
|
614
|
+
elif len(x) == 3:
|
615
|
+
if int(x[0]) >= 6 and int(x[1]) >= 7 and int(x[2]) >= 2:
|
616
|
+
old_Qt = False
|
617
|
+
|
618
|
+
# Featureset for wayland if pyqt is older that 6.7.1
|
593
619
|
dockfeatures = (
|
594
620
|
QtWidgets.QDockWidget.DockWidgetFeature.DockWidgetClosable
|
595
621
|
| QtWidgets.QDockWidget.DockWidgetFeature.DockWidgetMovable
|
@@ -598,7 +624,7 @@ class MainWindow(QtWidgets.QMainWindow):
|
|
598
624
|
self.show_splash_msg("Setting up BandMapWindow.")
|
599
625
|
self.bandmap_window = BandMapWindow()
|
600
626
|
self.bandmap_window.setObjectName("bandmap-window")
|
601
|
-
if os.environ.get("WAYLAND_DISPLAY"):
|
627
|
+
if os.environ.get("WAYLAND_DISPLAY") and old_Qt is True:
|
602
628
|
self.bandmap_window.setFeatures(dockfeatures)
|
603
629
|
self.addDockWidget(Qt.DockWidgetArea.LeftDockWidgetArea, self.bandmap_window)
|
604
630
|
self.bandmap_window.hide()
|
@@ -609,7 +635,7 @@ class MainWindow(QtWidgets.QMainWindow):
|
|
609
635
|
self.show_splash_msg("Setting up CheckWindow.")
|
610
636
|
self.check_window = CheckWindow()
|
611
637
|
self.check_window.setObjectName("check-window")
|
612
|
-
if os.environ.get("WAYLAND_DISPLAY"):
|
638
|
+
if os.environ.get("WAYLAND_DISPLAY") and old_Qt is True:
|
613
639
|
self.check_window.setFeatures(dockfeatures)
|
614
640
|
self.addDockWidget(Qt.DockWidgetArea.RightDockWidgetArea, self.check_window)
|
615
641
|
self.check_window.hide()
|
@@ -618,7 +644,7 @@ class MainWindow(QtWidgets.QMainWindow):
|
|
618
644
|
self.show_splash_msg("Setting up VFOWindow.")
|
619
645
|
self.vfo_window = VfoWindow()
|
620
646
|
self.vfo_window.setObjectName("vfo-window")
|
621
|
-
if os.environ.get("WAYLAND_DISPLAY"):
|
647
|
+
if os.environ.get("WAYLAND_DISPLAY") and old_Qt is True:
|
622
648
|
self.vfo_window.setFeatures(dockfeatures)
|
623
649
|
self.addDockWidget(Qt.DockWidgetArea.RightDockWidgetArea, self.vfo_window)
|
624
650
|
self.vfo_window.hide()
|
@@ -626,7 +652,7 @@ class MainWindow(QtWidgets.QMainWindow):
|
|
626
652
|
self.show_splash_msg("Setting up LogWindow.")
|
627
653
|
self.log_window = LogWindow()
|
628
654
|
self.log_window.setObjectName("log-window")
|
629
|
-
if os.environ.get("WAYLAND_DISPLAY"):
|
655
|
+
if os.environ.get("WAYLAND_DISPLAY") and old_Qt is True:
|
630
656
|
self.log_window.setFeatures(dockfeatures)
|
631
657
|
self.addDockWidget(Qt.DockWidgetArea.TopDockWidgetArea, self.log_window)
|
632
658
|
self.log_window.hide()
|
@@ -688,6 +714,45 @@ class MainWindow(QtWidgets.QMainWindow):
|
|
688
714
|
"You can udate to the current version by using:\npip install -U not1mm"
|
689
715
|
)
|
690
716
|
|
717
|
+
def load_call_history(self) -> None:
|
718
|
+
""""""
|
719
|
+
filename = self.filepicker("other")
|
720
|
+
if filename:
|
721
|
+
self.database.create_callhistory_table()
|
722
|
+
self.database.delete_callhistory()
|
723
|
+
|
724
|
+
try:
|
725
|
+
with open(filename, "rt", encoding="utf-8") as file_descriptor:
|
726
|
+
lines = file_descriptor.readlines()
|
727
|
+
if "!!Order!!" in lines[0]:
|
728
|
+
item_names = lines[0].strip().split(",")
|
729
|
+
# ['!!Order!!', 'Call', 'Sect', 'State', 'CK', 'UserText', '']
|
730
|
+
item_names = item_names[1:-1]
|
731
|
+
# ['Call', 'Sect', 'State', 'CK', 'UserText']
|
732
|
+
lines = lines[1:]
|
733
|
+
group_list = []
|
734
|
+
for line in lines:
|
735
|
+
if line.startswith("#"):
|
736
|
+
continue
|
737
|
+
group = {}
|
738
|
+
fields = line.strip().split(",")
|
739
|
+
# ['4U1WB','MDC','DC','89','']
|
740
|
+
count = 0
|
741
|
+
try:
|
742
|
+
for item in item_names:
|
743
|
+
if item == "":
|
744
|
+
continue
|
745
|
+
group[item] = fields[count]
|
746
|
+
count += 1
|
747
|
+
group_list.append(group)
|
748
|
+
# database.add_callhistory_item(group)
|
749
|
+
# print(f"{group=}")
|
750
|
+
except IndexError:
|
751
|
+
...
|
752
|
+
self.database.add_callhistory_items(group_list)
|
753
|
+
except FileNotFoundError as err:
|
754
|
+
self.show_message_box(f"{err}")
|
755
|
+
|
691
756
|
def on_focus_changed(self, new):
|
692
757
|
""""""
|
693
758
|
if self.use_esm:
|
@@ -1713,6 +1778,14 @@ class MainWindow(QtWidgets.QMainWindow):
|
|
1713
1778
|
"Database (*.db)",
|
1714
1779
|
options=options,
|
1715
1780
|
)
|
1781
|
+
if action == "other":
|
1782
|
+
file, _ = QFileDialog.getOpenFileName(
|
1783
|
+
self,
|
1784
|
+
"Choose a File",
|
1785
|
+
"~/",
|
1786
|
+
"Any (*.*)",
|
1787
|
+
options=options,
|
1788
|
+
)
|
1716
1789
|
return file
|
1717
1790
|
|
1718
1791
|
def recalculate_mults(self) -> None:
|
@@ -1892,6 +1965,43 @@ class MainWindow(QtWidgets.QMainWindow):
|
|
1892
1965
|
if self.rig_control.interface == "flrig":
|
1893
1966
|
self.rig_control.cat.set_flrig_cw_speed(self.cw_speed.value())
|
1894
1967
|
|
1968
|
+
def stop_cw(self):
|
1969
|
+
""""""
|
1970
|
+
if self.cw is not None:
|
1971
|
+
if self.cw.servertype == 1:
|
1972
|
+
self.cw.sendcw("\x1b4")
|
1973
|
+
return
|
1974
|
+
if self.rig_control:
|
1975
|
+
if self.rig_control.online:
|
1976
|
+
if self.pref.get("cwtype") == 3 and self.rig_control is not None:
|
1977
|
+
if self.rig_control.interface == "flrig":
|
1978
|
+
self.rig_control.cat.set_flrig_cw_send(False)
|
1979
|
+
self.rig_control.cat.set_flrig_cw_send(True)
|
1980
|
+
|
1981
|
+
def mark_spot(self):
|
1982
|
+
""""""
|
1983
|
+
freq = self.radio_state.get("vfoa")
|
1984
|
+
dx = self.callsign.text()
|
1985
|
+
if freq and dx:
|
1986
|
+
cmd = {}
|
1987
|
+
cmd["cmd"] = "MARKDX"
|
1988
|
+
cmd["dx"] = dx
|
1989
|
+
cmd["freq"] = float(int(freq) / 1000)
|
1990
|
+
if self.bandmap_window:
|
1991
|
+
self.bandmap_window.msg_from_main(cmd)
|
1992
|
+
|
1993
|
+
def spot_dx(self):
|
1994
|
+
""""""
|
1995
|
+
freq = self.radio_state.get("vfoa")
|
1996
|
+
dx = self.callsign.text()
|
1997
|
+
if freq and dx:
|
1998
|
+
cmd = {}
|
1999
|
+
cmd["cmd"] = "SPOTDX"
|
2000
|
+
cmd["dx"] = dx
|
2001
|
+
cmd["freq"] = float(int(freq) / 1000)
|
2002
|
+
if self.bandmap_window:
|
2003
|
+
self.bandmap_window.msg_from_main(cmd)
|
2004
|
+
|
1895
2005
|
def keyPressEvent(self, event) -> None: # pylint: disable=invalid-name
|
1896
2006
|
"""
|
1897
2007
|
This overrides Qt key event.
|
@@ -1906,6 +2016,12 @@ class MainWindow(QtWidgets.QMainWindow):
|
|
1906
2016
|
None
|
1907
2017
|
"""
|
1908
2018
|
modifier = event.modifiers()
|
2019
|
+
if (
|
2020
|
+
event.key() == Qt.Key.Key_Equal
|
2021
|
+
and modifier == Qt.KeyboardModifier.ControlModifier
|
2022
|
+
):
|
2023
|
+
self.save_contact()
|
2024
|
+
return
|
1909
2025
|
if event.key() == Qt.Key.Key_K:
|
1910
2026
|
self.toggle_cw_entry()
|
1911
2027
|
return
|
@@ -2886,6 +3002,9 @@ class MainWindow(QtWidgets.QMainWindow):
|
|
2886
3002
|
"DISABLED": None,
|
2887
3003
|
}
|
2888
3004
|
|
3005
|
+
self.use_call_history = self.pref.get("use_call_history", False)
|
3006
|
+
if self.use_call_history:
|
3007
|
+
self.history_info.show()
|
2889
3008
|
self.use_esm = self.pref.get("use_esm", False)
|
2890
3009
|
self.esm_dict["CQ"] = fkey_dict.get(self.pref.get("esm_cq", "DISABLED"))
|
2891
3010
|
self.esm_dict["EXCH"] = fkey_dict.get(self.pref.get("esm_exch", "DISABLED"))
|
@@ -2953,7 +3072,7 @@ class MainWindow(QtWidgets.QMainWindow):
|
|
2953
3072
|
None
|
2954
3073
|
"""
|
2955
3074
|
|
2956
|
-
self.pref["command_buttons"] = self.
|
3075
|
+
self.pref["command_buttons"] = self.actionCommand_Buttons_2.isChecked()
|
2957
3076
|
self.write_preference()
|
2958
3077
|
self.show_command_buttons()
|
2959
3078
|
|
@@ -3109,6 +3228,13 @@ class MainWindow(QtWidgets.QMainWindow):
|
|
3109
3228
|
if self.lookup_service:
|
3110
3229
|
self.lookup_service.msg_from_main(cmd)
|
3111
3230
|
self.next_field.setFocus()
|
3231
|
+
if self.contest:
|
3232
|
+
if self.use_call_history and hasattr(
|
3233
|
+
self.contest, "check_call_history"
|
3234
|
+
):
|
3235
|
+
self.contest.check_call_history(self)
|
3236
|
+
if "CQ WW" in self.contest.name or "IARU HF" in self.contest.name:
|
3237
|
+
self.contest.prefill(self)
|
3112
3238
|
return
|
3113
3239
|
cmd = {}
|
3114
3240
|
cmd["cmd"] = "CALLCHANGED"
|
@@ -3278,7 +3404,11 @@ class MainWindow(QtWidgets.QMainWindow):
|
|
3278
3404
|
)
|
3279
3405
|
if len(callsign) > 2:
|
3280
3406
|
if self.contest:
|
3281
|
-
|
3407
|
+
if (
|
3408
|
+
"CQ WW" not in self.contest.name
|
3409
|
+
and "IARU HF" not in self.contest.name
|
3410
|
+
):
|
3411
|
+
self.contest.prefill(self)
|
3282
3412
|
|
3283
3413
|
def check_dupe(self, call: str) -> bool:
|
3284
3414
|
"""Checks if a callsign is a dupe on current band/mode."""
|