not1mm 25.4.1__tar.gz → 25.4.5__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.
Files changed (187) hide show
  1. {not1mm-25.4.1 → not1mm-25.4.5}/PKG-INFO +16 -7
  2. {not1mm-25.4.1 → not1mm-25.4.5}/README.md +14 -5
  3. {not1mm-25.4.1 → not1mm-25.4.5}/not1mm/__main__.py +9 -33
  4. {not1mm-25.4.1 → not1mm-25.4.5}/not1mm/data/MASTER.SCP +4353 -4553
  5. {not1mm-25.4.1 → not1mm-25.4.5}/not1mm/data/bandmap.ui +29 -11
  6. {not1mm-25.4.1 → not1mm-25.4.5}/not1mm/data/cty.json +1 -1
  7. {not1mm-25.4.1 → not1mm-25.4.5}/not1mm/data/main.ui +39 -30
  8. {not1mm-25.4.1 → not1mm-25.4.5}/not1mm/data/new_contest.ui +5 -0
  9. {not1mm-25.4.1 → not1mm-25.4.5}/not1mm/data/ratewindow.ui +2 -2
  10. {not1mm-25.4.1 → not1mm-25.4.5}/not1mm/lib/version.py +1 -1
  11. not1mm-25.4.5/not1mm/plugins/spdx.py +510 -0
  12. {not1mm-25.4.1 → not1mm-25.4.5}/not1mm/ratewindow.py +2 -2
  13. {not1mm-25.4.1 → not1mm-25.4.5}/not1mm.egg-info/PKG-INFO +16 -7
  14. {not1mm-25.4.1 → not1mm-25.4.5}/not1mm.egg-info/SOURCES.txt +1 -0
  15. {not1mm-25.4.1 → not1mm-25.4.5}/pyproject.toml +2 -2
  16. {not1mm-25.4.1 → not1mm-25.4.5}/LICENSE +0 -0
  17. {not1mm-25.4.1 → not1mm-25.4.5}/not1mm/__init__.py +0 -0
  18. {not1mm-25.4.1 → not1mm-25.4.5}/not1mm/bandmap.py +0 -0
  19. {not1mm-25.4.1 → not1mm-25.4.5}/not1mm/checkwindow.py +0 -0
  20. {not1mm-25.4.1 → not1mm-25.4.5}/not1mm/data/JetBrainsMono-ExtraLight.ttf +0 -0
  21. {not1mm-25.4.1 → not1mm-25.4.5}/not1mm/data/about.ui +0 -0
  22. {not1mm-25.4.1 → not1mm-25.4.5}/not1mm/data/alpha bravo charlie delta.txt +0 -0
  23. {not1mm-25.4.1 → not1mm-25.4.5}/not1mm/data/check.png +0 -0
  24. {not1mm-25.4.1 → not1mm-25.4.5}/not1mm/data/checkwindow.ui +0 -0
  25. {not1mm-25.4.1 → not1mm-25.4.5}/not1mm/data/configuration.ui +0 -0
  26. {not1mm-25.4.1 → not1mm-25.4.5}/not1mm/data/contests.sql +0 -0
  27. {not1mm-25.4.1 → not1mm-25.4.5}/not1mm/data/cwmacros.txt +0 -0
  28. {not1mm-25.4.1 → not1mm-25.4.5}/not1mm/data/donors.html +0 -0
  29. {not1mm-25.4.1 → not1mm-25.4.5}/not1mm/data/editcontact.ui +0 -0
  30. {not1mm-25.4.1 → not1mm-25.4.5}/not1mm/data/editmacro.ui +0 -0
  31. {not1mm-25.4.1 → not1mm-25.4.5}/not1mm/data/greendot.png +0 -0
  32. {not1mm-25.4.1 → not1mm-25.4.5}/not1mm/data/k6gte-not1mm.desktop +0 -0
  33. {not1mm-25.4.1 → not1mm-25.4.5}/not1mm/data/k6gte.not1mm-128.png +0 -0
  34. {not1mm-25.4.1 → not1mm-25.4.5}/not1mm/data/k6gte.not1mm-32.png +0 -0
  35. {not1mm-25.4.1 → not1mm-25.4.5}/not1mm/data/k6gte.not1mm-64.png +0 -0
  36. {not1mm-25.4.1 → not1mm-25.4.5}/not1mm/data/logwindow.ui +0 -0
  37. {not1mm-25.4.1 → not1mm-25.4.5}/not1mm/data/logwindowx.ui +0 -0
  38. {not1mm-25.4.1 → not1mm-25.4.5}/not1mm/data/not1mm.html +0 -0
  39. {not1mm-25.4.1 → not1mm-25.4.5}/not1mm/data/opon.ui +0 -0
  40. {not1mm-25.4.1 → not1mm-25.4.5}/not1mm/data/phonetics/0.wav +0 -0
  41. {not1mm-25.4.1 → not1mm-25.4.5}/not1mm/data/phonetics/1.wav +0 -0
  42. {not1mm-25.4.1 → not1mm-25.4.5}/not1mm/data/phonetics/2.wav +0 -0
  43. {not1mm-25.4.1 → not1mm-25.4.5}/not1mm/data/phonetics/3.wav +0 -0
  44. {not1mm-25.4.1 → not1mm-25.4.5}/not1mm/data/phonetics/4.wav +0 -0
  45. {not1mm-25.4.1 → not1mm-25.4.5}/not1mm/data/phonetics/5.wav +0 -0
  46. {not1mm-25.4.1 → not1mm-25.4.5}/not1mm/data/phonetics/6.wav +0 -0
  47. {not1mm-25.4.1 → not1mm-25.4.5}/not1mm/data/phonetics/7.wav +0 -0
  48. {not1mm-25.4.1 → not1mm-25.4.5}/not1mm/data/phonetics/73.wav +0 -0
  49. {not1mm-25.4.1 → not1mm-25.4.5}/not1mm/data/phonetics/8.wav +0 -0
  50. {not1mm-25.4.1 → not1mm-25.4.5}/not1mm/data/phonetics/9.wav +0 -0
  51. {not1mm-25.4.1 → not1mm-25.4.5}/not1mm/data/phonetics/a.wav +0 -0
  52. {not1mm-25.4.1 → not1mm-25.4.5}/not1mm/data/phonetics/again.wav +0 -0
  53. {not1mm-25.4.1 → not1mm-25.4.5}/not1mm/data/phonetics/b.wav +0 -0
  54. {not1mm-25.4.1 → not1mm-25.4.5}/not1mm/data/phonetics/c.wav +0 -0
  55. {not1mm-25.4.1 → not1mm-25.4.5}/not1mm/data/phonetics/contest.wav +0 -0
  56. {not1mm-25.4.1 → not1mm-25.4.5}/not1mm/data/phonetics/cq.wav +0 -0
  57. {not1mm-25.4.1 → not1mm-25.4.5}/not1mm/data/phonetics/cq2.wav +0 -0
  58. {not1mm-25.4.1 → not1mm-25.4.5}/not1mm/data/phonetics/d.wav +0 -0
  59. {not1mm-25.4.1 → not1mm-25.4.5}/not1mm/data/phonetics/e.wav +0 -0
  60. {not1mm-25.4.1 → not1mm-25.4.5}/not1mm/data/phonetics/f.wav +0 -0
  61. {not1mm-25.4.1 → not1mm-25.4.5}/not1mm/data/phonetics/g.wav +0 -0
  62. {not1mm-25.4.1 → not1mm-25.4.5}/not1mm/data/phonetics/h.wav +0 -0
  63. {not1mm-25.4.1 → not1mm-25.4.5}/not1mm/data/phonetics/i.wav +0 -0
  64. {not1mm-25.4.1 → not1mm-25.4.5}/not1mm/data/phonetics/j.wav +0 -0
  65. {not1mm-25.4.1 → not1mm-25.4.5}/not1mm/data/phonetics/k.wav +0 -0
  66. {not1mm-25.4.1 → not1mm-25.4.5}/not1mm/data/phonetics/k6gte.wav +0 -0
  67. {not1mm-25.4.1 → not1mm-25.4.5}/not1mm/data/phonetics/l.wav +0 -0
  68. {not1mm-25.4.1 → not1mm-25.4.5}/not1mm/data/phonetics/m.wav +0 -0
  69. {not1mm-25.4.1 → not1mm-25.4.5}/not1mm/data/phonetics/mynumber.wav +0 -0
  70. {not1mm-25.4.1 → not1mm-25.4.5}/not1mm/data/phonetics/n.wav +0 -0
  71. {not1mm-25.4.1 → not1mm-25.4.5}/not1mm/data/phonetics/nil.wav +0 -0
  72. {not1mm-25.4.1 → not1mm-25.4.5}/not1mm/data/phonetics/o.wav +0 -0
  73. {not1mm-25.4.1 → not1mm-25.4.5}/not1mm/data/phonetics/p.wav +0 -0
  74. {not1mm-25.4.1 → not1mm-25.4.5}/not1mm/data/phonetics/q.wav +0 -0
  75. {not1mm-25.4.1 → not1mm-25.4.5}/not1mm/data/phonetics/r.wav +0 -0
  76. {not1mm-25.4.1 → not1mm-25.4.5}/not1mm/data/phonetics/roger.wav +0 -0
  77. {not1mm-25.4.1 → not1mm-25.4.5}/not1mm/data/phonetics/s.wav +0 -0
  78. {not1mm-25.4.1 → not1mm-25.4.5}/not1mm/data/phonetics/space.wav +0 -0
  79. {not1mm-25.4.1 → not1mm-25.4.5}/not1mm/data/phonetics/t.wav +0 -0
  80. {not1mm-25.4.1 → not1mm-25.4.5}/not1mm/data/phonetics/thankyou.wav +0 -0
  81. {not1mm-25.4.1 → not1mm-25.4.5}/not1mm/data/phonetics/thankyouqrz.wav +0 -0
  82. {not1mm-25.4.1 → not1mm-25.4.5}/not1mm/data/phonetics/u.wav +0 -0
  83. {not1mm-25.4.1 → not1mm-25.4.5}/not1mm/data/phonetics/v.wav +0 -0
  84. {not1mm-25.4.1 → not1mm-25.4.5}/not1mm/data/phonetics/w.wav +0 -0
  85. {not1mm-25.4.1 → not1mm-25.4.5}/not1mm/data/phonetics/x.wav +0 -0
  86. {not1mm-25.4.1 → not1mm-25.4.5}/not1mm/data/phonetics/y.wav +0 -0
  87. {not1mm-25.4.1 → not1mm-25.4.5}/not1mm/data/phonetics/yourcall.wav +0 -0
  88. {not1mm-25.4.1 → not1mm-25.4.5}/not1mm/data/phonetics/z.wav +0 -0
  89. {not1mm-25.4.1 → not1mm-25.4.5}/not1mm/data/pickcontest.ui +0 -0
  90. {not1mm-25.4.1 → not1mm-25.4.5}/not1mm/data/radio_green.png +0 -0
  91. {not1mm-25.4.1 → not1mm-25.4.5}/not1mm/data/radio_grey.png +0 -0
  92. {not1mm-25.4.1 → not1mm-25.4.5}/not1mm/data/radio_red.png +0 -0
  93. {not1mm-25.4.1 → not1mm-25.4.5}/not1mm/data/reddot.png +0 -0
  94. {not1mm-25.4.1 → not1mm-25.4.5}/not1mm/data/rttymacros.txt +0 -0
  95. {not1mm-25.4.1 → not1mm-25.4.5}/not1mm/data/settings.ui +0 -0
  96. {not1mm-25.4.1 → not1mm-25.4.5}/not1mm/data/splash.png +0 -0
  97. {not1mm-25.4.1 → not1mm-25.4.5}/not1mm/data/ssbmacros.txt +0 -0
  98. {not1mm-25.4.1 → not1mm-25.4.5}/not1mm/data/statistics.ui +0 -0
  99. {not1mm-25.4.1 → not1mm-25.4.5}/not1mm/data/vfo.ui +0 -0
  100. {not1mm-25.4.1 → not1mm-25.4.5}/not1mm/fsutils.py +0 -0
  101. {not1mm-25.4.1 → not1mm-25.4.5}/not1mm/lib/__init__.py +0 -0
  102. {not1mm-25.4.1 → not1mm-25.4.5}/not1mm/lib/about.py +0 -0
  103. {not1mm-25.4.1 → not1mm-25.4.5}/not1mm/lib/cat_interface.py +0 -0
  104. {not1mm-25.4.1 → not1mm-25.4.5}/not1mm/lib/cwinterface.py +0 -0
  105. {not1mm-25.4.1 → not1mm-25.4.5}/not1mm/lib/database.py +0 -0
  106. {not1mm-25.4.1 → not1mm-25.4.5}/not1mm/lib/edit_contact.py +0 -0
  107. {not1mm-25.4.1 → not1mm-25.4.5}/not1mm/lib/edit_macro.py +0 -0
  108. {not1mm-25.4.1 → not1mm-25.4.5}/not1mm/lib/edit_opon.py +0 -0
  109. {not1mm-25.4.1 → not1mm-25.4.5}/not1mm/lib/edit_station.py +0 -0
  110. {not1mm-25.4.1 → not1mm-25.4.5}/not1mm/lib/fldigi_sendstring.py +0 -0
  111. {not1mm-25.4.1 → not1mm-25.4.5}/not1mm/lib/ft8_watcher.py +0 -0
  112. {not1mm-25.4.1 → not1mm-25.4.5}/not1mm/lib/ham_utility.py +0 -0
  113. {not1mm-25.4.1 → not1mm-25.4.5}/not1mm/lib/lookup.py +0 -0
  114. {not1mm-25.4.1 → not1mm-25.4.5}/not1mm/lib/multicast.py +0 -0
  115. {not1mm-25.4.1 → not1mm-25.4.5}/not1mm/lib/n1mm.py +0 -0
  116. {not1mm-25.4.1 → not1mm-25.4.5}/not1mm/lib/new_contest.py +0 -0
  117. {not1mm-25.4.1 → not1mm-25.4.5}/not1mm/lib/plugin_common.py +0 -0
  118. {not1mm-25.4.1 → not1mm-25.4.5}/not1mm/lib/select_contest.py +0 -0
  119. {not1mm-25.4.1 → not1mm-25.4.5}/not1mm/lib/settings.py +0 -0
  120. {not1mm-25.4.1 → not1mm-25.4.5}/not1mm/lib/super_check_partial.py +0 -0
  121. {not1mm-25.4.1 → not1mm-25.4.5}/not1mm/lib/versiontest.py +0 -0
  122. {not1mm-25.4.1 → not1mm-25.4.5}/not1mm/logwindow.py +0 -0
  123. {not1mm-25.4.1 → not1mm-25.4.5}/not1mm/lookupservice.py +0 -0
  124. {not1mm-25.4.1 → not1mm-25.4.5}/not1mm/plugins/10_10_fall_cw.py +0 -0
  125. {not1mm-25.4.1 → not1mm-25.4.5}/not1mm/plugins/10_10_spring_cw.py +0 -0
  126. {not1mm-25.4.1 → not1mm-25.4.5}/not1mm/plugins/10_10_summer_phone.py +0 -0
  127. {not1mm-25.4.1 → not1mm-25.4.5}/not1mm/plugins/10_10_winter_phone.py +0 -0
  128. {not1mm-25.4.1 → not1mm-25.4.5}/not1mm/plugins/__init__.py +0 -0
  129. {not1mm-25.4.1 → not1mm-25.4.5}/not1mm/plugins/arrl_10m.py +0 -0
  130. {not1mm-25.4.1 → not1mm-25.4.5}/not1mm/plugins/arrl_160m.py +0 -0
  131. {not1mm-25.4.1 → not1mm-25.4.5}/not1mm/plugins/arrl_dx_cw.py +0 -0
  132. {not1mm-25.4.1 → not1mm-25.4.5}/not1mm/plugins/arrl_dx_ssb.py +0 -0
  133. {not1mm-25.4.1 → not1mm-25.4.5}/not1mm/plugins/arrl_field_day.py +0 -0
  134. {not1mm-25.4.1 → not1mm-25.4.5}/not1mm/plugins/arrl_rtty_ru.py +0 -0
  135. {not1mm-25.4.1 → not1mm-25.4.5}/not1mm/plugins/arrl_ss_cw.py +0 -0
  136. {not1mm-25.4.1 → not1mm-25.4.5}/not1mm/plugins/arrl_ss_phone.py +0 -0
  137. {not1mm-25.4.1 → not1mm-25.4.5}/not1mm/plugins/arrl_vhf_jan.py +0 -0
  138. {not1mm-25.4.1 → not1mm-25.4.5}/not1mm/plugins/arrl_vhf_jun.py +0 -0
  139. {not1mm-25.4.1 → not1mm-25.4.5}/not1mm/plugins/arrl_vhf_sep.py +0 -0
  140. {not1mm-25.4.1 → not1mm-25.4.5}/not1mm/plugins/canada_day.py +0 -0
  141. {not1mm-25.4.1 → not1mm-25.4.5}/not1mm/plugins/cq_160_cw.py +0 -0
  142. {not1mm-25.4.1 → not1mm-25.4.5}/not1mm/plugins/cq_160_ssb.py +0 -0
  143. {not1mm-25.4.1 → not1mm-25.4.5}/not1mm/plugins/cq_wpx_cw.py +0 -0
  144. {not1mm-25.4.1 → not1mm-25.4.5}/not1mm/plugins/cq_wpx_rtty.py +0 -0
  145. {not1mm-25.4.1 → not1mm-25.4.5}/not1mm/plugins/cq_wpx_ssb.py +0 -0
  146. {not1mm-25.4.1 → not1mm-25.4.5}/not1mm/plugins/cq_ww_cw.py +0 -0
  147. {not1mm-25.4.1 → not1mm-25.4.5}/not1mm/plugins/cq_ww_rtty.py +0 -0
  148. {not1mm-25.4.1 → not1mm-25.4.5}/not1mm/plugins/cq_ww_ssb.py +0 -0
  149. {not1mm-25.4.1 → not1mm-25.4.5}/not1mm/plugins/cwt.py +0 -0
  150. {not1mm-25.4.1 → not1mm-25.4.5}/not1mm/plugins/darc_vhf.py +0 -0
  151. {not1mm-25.4.1 → not1mm-25.4.5}/not1mm/plugins/darc_xmas.py +0 -0
  152. {not1mm-25.4.1 → not1mm-25.4.5}/not1mm/plugins/ea_majistad_cw.py +0 -0
  153. {not1mm-25.4.1 → not1mm-25.4.5}/not1mm/plugins/ea_majistad_ssb.py +0 -0
  154. {not1mm-25.4.1 → not1mm-25.4.5}/not1mm/plugins/ea_rtty.py +0 -0
  155. {not1mm-25.4.1 → not1mm-25.4.5}/not1mm/plugins/general_logging.py +0 -0
  156. {not1mm-25.4.1 → not1mm-25.4.5}/not1mm/plugins/helvetia.py +0 -0
  157. {not1mm-25.4.1 → not1mm-25.4.5}/not1mm/plugins/iaru_fieldday_r1_cw.py +0 -0
  158. {not1mm-25.4.1 → not1mm-25.4.5}/not1mm/plugins/iaru_fieldday_r1_ssb.py +0 -0
  159. {not1mm-25.4.1 → not1mm-25.4.5}/not1mm/plugins/iaru_hf.py +0 -0
  160. {not1mm-25.4.1 → not1mm-25.4.5}/not1mm/plugins/icwc_mst.py +0 -0
  161. {not1mm-25.4.1 → not1mm-25.4.5}/not1mm/plugins/jidx_cw.py +0 -0
  162. {not1mm-25.4.1 → not1mm-25.4.5}/not1mm/plugins/jidx_ph.py +0 -0
  163. {not1mm-25.4.1 → not1mm-25.4.5}/not1mm/plugins/k1usn_sst.py +0 -0
  164. {not1mm-25.4.1 → not1mm-25.4.5}/not1mm/plugins/labre_rs_digi.py +0 -0
  165. {not1mm-25.4.1 → not1mm-25.4.5}/not1mm/plugins/lz-dx.py +0 -0
  166. {not1mm-25.4.1 → not1mm-25.4.5}/not1mm/plugins/naqp_cw.py +0 -0
  167. {not1mm-25.4.1 → not1mm-25.4.5}/not1mm/plugins/naqp_rtty.py +0 -0
  168. {not1mm-25.4.1 → not1mm-25.4.5}/not1mm/plugins/naqp_ssb.py +0 -0
  169. {not1mm-25.4.1 → not1mm-25.4.5}/not1mm/plugins/phone_weekly_test.py +0 -0
  170. {not1mm-25.4.1 → not1mm-25.4.5}/not1mm/plugins/raem.py +0 -0
  171. {not1mm-25.4.1 → not1mm-25.4.5}/not1mm/plugins/randomgram.py +0 -0
  172. {not1mm-25.4.1 → not1mm-25.4.5}/not1mm/plugins/ref_cw.py +0 -0
  173. {not1mm-25.4.1 → not1mm-25.4.5}/not1mm/plugins/ref_ssb.py +0 -0
  174. {not1mm-25.4.1 → not1mm-25.4.5}/not1mm/plugins/stew_perry_topband.py +0 -0
  175. {not1mm-25.4.1 → not1mm-25.4.5}/not1mm/plugins/weekly_rtty.py +0 -0
  176. {not1mm-25.4.1 → not1mm-25.4.5}/not1mm/plugins/winter_field_day.py +0 -0
  177. {not1mm-25.4.1 → not1mm-25.4.5}/not1mm/radio.py +0 -0
  178. {not1mm-25.4.1 → not1mm-25.4.5}/not1mm/rtc_service.py +0 -0
  179. {not1mm-25.4.1 → not1mm-25.4.5}/not1mm/statistics.py +0 -0
  180. {not1mm-25.4.1 → not1mm-25.4.5}/not1mm/test.py +0 -0
  181. {not1mm-25.4.1 → not1mm-25.4.5}/not1mm/vfo.py +0 -0
  182. {not1mm-25.4.1 → not1mm-25.4.5}/not1mm/voice_keying.py +0 -0
  183. {not1mm-25.4.1 → not1mm-25.4.5}/not1mm.egg-info/dependency_links.txt +0 -0
  184. {not1mm-25.4.1 → not1mm-25.4.5}/not1mm.egg-info/entry_points.txt +0 -0
  185. {not1mm-25.4.1 → not1mm-25.4.5}/not1mm.egg-info/requires.txt +0 -0
  186. {not1mm-25.4.1 → not1mm-25.4.5}/not1mm.egg-info/top_level.txt +0 -0
  187. {not1mm-25.4.1 → not1mm-25.4.5}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: not1mm
3
- Version: 25.4.1
3
+ Version: 25.4.5
4
4
  Summary: NOT1MM Logger
5
5
  Author-email: Michael Bridak <michael.bridak@gmail.com>
6
6
  License: GPL-3.0-or-later
@@ -13,7 +13,7 @@ Classifier: Operating System :: POSIX :: Linux
13
13
  Classifier: Intended Audience :: End Users/Desktop
14
14
  Classifier: Natural Language :: English
15
15
  Classifier: Topic :: Communications :: Ham Radio
16
- Requires-Python: >=3.9
16
+ Requires-Python: >=3.10
17
17
  Description-Content-Type: text/markdown
18
18
  License-File: LICENSE
19
19
  Requires-Dist: PyQt6
@@ -39,7 +39,7 @@ Dynamic: license-file
39
39
 
40
40
  [![PyPI](https://img.shields.io/pypi/v/not1mm)](https://pypi.org/project/not1mm/)
41
41
  [![License: GPL v3](https://img.shields.io/badge/License-GPLv3-blue.svg)](https://www.gnu.org/licenses/gpl-3.0)
42
- [![Python: 3.10+](https://img.shields.io/badge/python-3.9+-blue.svg)](https://www.python.org/downloads/)
42
+ [![Python: 3.10+](https://img.shields.io/badge/python-3.10+-blue.svg)](https://www.python.org/downloads/)
43
43
  [![Made With:PyQt6](https://img.shields.io/badge/Made%20with-PyQt6-blue)](https://pypi.org/project/PyQt6/)
44
44
  [![Code Maturity:Snot Nosed](https://img.shields.io/badge/Code%20Maturity-Snot%20Nosed-red)](https://xkcd.com/1695/)
45
45
  [![PyPI - Downloads](https://img.shields.io/pypi/dm/not1mm)](https://pypi.org/project/not1mm/)
@@ -247,6 +247,8 @@ generated, 'cause I'm lazy, list of those who've submitted PR's.
247
247
 
248
248
  ## Recent Changes
249
249
 
250
+ - [25-4-5] Add SPDX.
251
+ - [25-4-2] Add some tool tips to bandmap and main. Updated Zoom buttons on bandmap. Updated minimum Python version to 3.10.
250
252
  - [25-4-1] Fix: statistics window not populating when initially activated from the window menu. Removed unused code chucks. Removed some unused and hidden visual elements.
251
253
 
252
254
  See [CHANGELOG.md](CHANGELOG.md) for prior changes.
@@ -264,7 +266,7 @@ clue me into the black magic needed to get it to work.
264
266
 
265
267
  Not1MM requires:
266
268
 
267
- - Python 3.9+
269
+ - Python 3.10+
268
270
  - PyQt6
269
271
  - libportaudio2
270
272
  - libxcb-cursor0 (maybe... Depends on the distro)
@@ -617,12 +619,18 @@ appear. Those without will not.
617
619
 
618
620
  On the Options TAB you can:
619
621
 
620
- - Select to use Enter Sends Message (ESM), and configure it's function keys.
621
- - Select whether or not to use Call History info.
622
+ - Select to use Enter Sends Message ([ESM](#esm)), and configure it's function keys.
623
+ - Select whether or not to use [Call History](#call-history-files) info.
622
624
  - Select whether or not to send XML score info to online scoreboards.
623
625
 
624
626
  ![Options Screen](https://github.com/mbridak/not1mm/blob/master/pic/configuration_options.png?raw=true)
625
627
 
628
+ Three realtime score boards are supported:
629
+
630
+ - Real Time Contest Server at hamscore.com
631
+ - Contest Online ScoreBoard at contestonlinescore.com
632
+ - LiveScore at contest.run
633
+
626
634
  ## Logging WSJT-X FT8/FT4/ETC and FLDIGI RTTY contacts
627
635
 
628
636
  Not1MM listens for WSJT-X UDP traffic on the Multicast address 224.0.0.1:2237.
@@ -651,7 +659,8 @@ pressing F1 - F12. See next section on Editing macro keys.
651
659
 
652
660
  If you press `SHIFT-F1` The Auto CQ mode will be activated and the F1 macro will be resent
653
661
  after each Auto CQ Delay interval has passed. The delay can be changed by going to the
654
- `Options` TAB in the Configuration dialog.
662
+ `Options` TAB in the Configuration dialog. If you are in S&P mode, you will be automatically
663
+ switched into RUN mode.
655
664
 
656
665
  The auto CQ can be cancelled by either typing in the call sign field, or by pressing ESC.
657
666
 
@@ -7,7 +7,7 @@
7
7
 
8
8
  [![PyPI](https://img.shields.io/pypi/v/not1mm)](https://pypi.org/project/not1mm/)
9
9
  [![License: GPL v3](https://img.shields.io/badge/License-GPLv3-blue.svg)](https://www.gnu.org/licenses/gpl-3.0)
10
- [![Python: 3.10+](https://img.shields.io/badge/python-3.9+-blue.svg)](https://www.python.org/downloads/)
10
+ [![Python: 3.10+](https://img.shields.io/badge/python-3.10+-blue.svg)](https://www.python.org/downloads/)
11
11
  [![Made With:PyQt6](https://img.shields.io/badge/Made%20with-PyQt6-blue)](https://pypi.org/project/PyQt6/)
12
12
  [![Code Maturity:Snot Nosed](https://img.shields.io/badge/Code%20Maturity-Snot%20Nosed-red)](https://xkcd.com/1695/)
13
13
  [![PyPI - Downloads](https://img.shields.io/pypi/dm/not1mm)](https://pypi.org/project/not1mm/)
@@ -215,6 +215,8 @@ generated, 'cause I'm lazy, list of those who've submitted PR's.
215
215
 
216
216
  ## Recent Changes
217
217
 
218
+ - [25-4-5] Add SPDX.
219
+ - [25-4-2] Add some tool tips to bandmap and main. Updated Zoom buttons on bandmap. Updated minimum Python version to 3.10.
218
220
  - [25-4-1] Fix: statistics window not populating when initially activated from the window menu. Removed unused code chucks. Removed some unused and hidden visual elements.
219
221
 
220
222
  See [CHANGELOG.md](CHANGELOG.md) for prior changes.
@@ -232,7 +234,7 @@ clue me into the black magic needed to get it to work.
232
234
 
233
235
  Not1MM requires:
234
236
 
235
- - Python 3.9+
237
+ - Python 3.10+
236
238
  - PyQt6
237
239
  - libportaudio2
238
240
  - libxcb-cursor0 (maybe... Depends on the distro)
@@ -585,12 +587,18 @@ appear. Those without will not.
585
587
 
586
588
  On the Options TAB you can:
587
589
 
588
- - Select to use Enter Sends Message (ESM), and configure it's function keys.
589
- - Select whether or not to use Call History info.
590
+ - Select to use Enter Sends Message ([ESM](#esm)), and configure it's function keys.
591
+ - Select whether or not to use [Call History](#call-history-files) info.
590
592
  - Select whether or not to send XML score info to online scoreboards.
591
593
 
592
594
  ![Options Screen](https://github.com/mbridak/not1mm/blob/master/pic/configuration_options.png?raw=true)
593
595
 
596
+ Three realtime score boards are supported:
597
+
598
+ - Real Time Contest Server at hamscore.com
599
+ - Contest Online ScoreBoard at contestonlinescore.com
600
+ - LiveScore at contest.run
601
+
594
602
  ## Logging WSJT-X FT8/FT4/ETC and FLDIGI RTTY contacts
595
603
 
596
604
  Not1MM listens for WSJT-X UDP traffic on the Multicast address 224.0.0.1:2237.
@@ -619,7 +627,8 @@ pressing F1 - F12. See next section on Editing macro keys.
619
627
 
620
628
  If you press `SHIFT-F1` The Auto CQ mode will be activated and the F1 macro will be resent
621
629
  after each Auto CQ Delay interval has passed. The delay can be changed by going to the
622
- `Options` TAB in the Configuration dialog.
630
+ `Options` TAB in the Configuration dialog. If you are in S&P mode, you will be automatically
631
+ switched into RUN mode.
623
632
 
624
633
  The auto CQ can be cancelled by either typing in the call sign field, or by pressing ESC.
625
634
 
@@ -240,8 +240,6 @@ class MainWindow(QtWidgets.QMainWindow):
240
240
  self.cw_entry.returnPressed.connect(self.toggle_cw_entry)
241
241
 
242
242
  self.actionCW_Macros.triggered.connect(self.cw_macros_state_changed)
243
- # self.actionDark_Mode_2.hide()
244
- # self.actionDark_Mode_2.triggered.connect(self.dark_mode_state_changed)
245
243
  self.actionCommand_Buttons_2.triggered.connect(
246
244
  self.command_buttons_state_change
247
245
  )
@@ -1025,18 +1023,9 @@ class MainWindow(QtWidgets.QMainWindow):
1025
1023
  cmd = {}
1026
1024
  cmd["cmd"] = "DARKMODE"
1027
1025
  cmd["state"] = setdarkmode
1028
- # if self.log_window:
1029
- # self.log_window.msg_from_main(cmd)
1030
1026
  if self.bandmap_window:
1031
1027
  self.bandmap_window.msg_from_main(cmd)
1032
- # if self.check_window:
1033
- # self.check_window.msg_from_main(cmd)
1034
- # if self.vfo_window:
1035
- # self.vfo_window.msg_from_main(cmd)
1036
- # if self.rate_window:
1037
- # self.rate_window.msg_from_main(cmd)
1038
- # if self.statistics_window:
1039
- # self.statistics_window.msg_from_main(cmd)
1028
+
1040
1029
 
1041
1030
  if setdarkmode:
1042
1031
  darkPalette = QPalette()
@@ -3038,22 +3027,22 @@ class MainWindow(QtWidgets.QMainWindow):
3038
3027
  except (IOError, TypeError, ValueError) as exception:
3039
3028
  logger.critical("Error: %s", exception)
3040
3029
 
3041
- if self.pref.get("run_state"):
3030
+ if self.pref.get("run_state", False) is True:
3042
3031
  self.radioButton_run.setChecked(True)
3043
3032
  else:
3044
3033
  self.radioButton_sp.setChecked(True)
3045
3034
 
3046
- if self.pref.get("command_buttons"):
3035
+ if self.pref.get("command_buttons", False) is True:
3047
3036
  self.actionCommand_Buttons.setChecked(True)
3048
3037
  else:
3049
3038
  self.actionCommand_Buttons.setChecked(False)
3050
3039
 
3051
- if self.pref.get("cw_macros"):
3040
+ if self.pref.get("cw_macros", False) is True:
3052
3041
  self.actionCW_Macros.setChecked(True)
3053
3042
  else:
3054
3043
  self.actionCW_Macros.setChecked(False)
3055
3044
 
3056
- if self.pref.get("bands_modes"):
3045
+ if self.pref.get("bands_modes", False) is True:
3057
3046
  self.actionMode_and_Bands.setChecked(True)
3058
3047
  else:
3059
3048
  self.actionMode_and_Bands.setChecked(False)
@@ -3063,13 +3052,6 @@ class MainWindow(QtWidgets.QMainWindow):
3063
3052
  if self.lookup_service:
3064
3053
  self.lookup_service.msg_from_main(cmd)
3065
3054
 
3066
- # if self.pref.get("darkmode"):
3067
- # self.actionDark_Mode_2.setChecked(True)
3068
- # self.setDarkMode(True)
3069
- # else:
3070
- # self.setDarkMode(False)
3071
- # self.actionDark_Mode_2.setChecked(False)
3072
-
3073
3055
  try:
3074
3056
  if self.rtc_thread.isRunning():
3075
3057
  self.rtc_service.time_to_quit = True
@@ -3092,7 +3074,7 @@ class MainWindow(QtWidgets.QMainWindow):
3092
3074
  except ValueError:
3093
3075
  self.auto_cq_delay = 15000
3094
3076
 
3095
- if self.pref.get("send_rtc_scores", False):
3077
+ if self.pref.get("send_rtc_scores", False) is True:
3096
3078
  self.rtc_service = RTCService()
3097
3079
  self.rtc_service.moveToThread(self.rtc_thread)
3098
3080
  self.rtc_thread.started.connect(self.rtc_service.run)
@@ -3112,7 +3094,7 @@ class MainWindow(QtWidgets.QMainWindow):
3112
3094
  self.rig_control = None
3113
3095
  self.fldigi_util = FlDigi_Comm()
3114
3096
 
3115
- if self.pref.get("useflrig", False):
3097
+ if self.pref.get("useflrig", False) is True:
3116
3098
  logger.debug(
3117
3099
  "Using flrig: %s",
3118
3100
  f"{self.pref.get('CAT_ip')} {self.pref.get('CAT_port')}",
@@ -3129,7 +3111,7 @@ class MainWindow(QtWidgets.QMainWindow):
3129
3111
  self.rig_control.poll_callback.connect(self.poll_radio)
3130
3112
  self.radio_thread.start()
3131
3113
 
3132
- elif self.pref.get("userigctld", False):
3114
+ elif self.pref.get("userigctld", False) is True:
3133
3115
  logger.debug(
3134
3116
  "Using rigctld: %s",
3135
3117
  f"{self.pref.get('CAT_ip')} {self.pref.get('CAT_port')}",
@@ -3250,12 +3232,6 @@ class MainWindow(QtWidgets.QMainWindow):
3250
3232
 
3251
3233
  self.update_rtc_xml()
3252
3234
 
3253
- def dark_mode_state_changed(self) -> None:
3254
- """Called when the Dark Mode menu state is changed."""
3255
- # self.pref["darkmode"] = self.actionDark_Mode_2.isChecked()
3256
- # self.write_preference()
3257
- # # self.setDarkMode(self.actionDark_Mode_2.isChecked())
3258
-
3259
3235
  def rtc_response(self, response):
3260
3236
  print(f"{response=}")
3261
3237
 
@@ -3326,7 +3302,7 @@ class MainWindow(QtWidgets.QMainWindow):
3326
3302
 
3327
3303
  """
3328
3304
 
3329
- if self.pref.get("command_buttons"):
3305
+ if self.pref.get("command_buttons", False) is True:
3330
3306
  self.Command_Buttons.show()
3331
3307
  else:
3332
3308
  self.Command_Buttons.hide()